This disclosure relates generally to sideband signaling. Specifically, this disclosure relates to a serial sideband signaling link.
In today's computing industry, signaling link technologies may have a main signaling link and be associated with sideband signals that are not configured to propagate over the main signaling link. Sideband link input/output (I/O) technologies provide a way for a sideband signal to be provided from one component within a computing device to another component without being propagated on the main signaling link. For example, in Peripheral Component Interconnect Express (PCIe) main signaling link technology, sideband signals may be propagated through a number of different sideband I/OP technologies such as a Card Electromechanical (CEM) sideband link, a mini CEM, a System Management Bus (SMBus), and the like. However, many times motherboard manufacturers may desire to modify existing sideband technologies by using glue logic. Glue logic, as referred to herein, is one or more custom logic modifications made to a sideband signaling link. In some cases, glue logic is difficult to implement with existing sideband I/O technologies as design and operation of these technologies may be sophisticated in comparison to the glue logic.
In some cases, the same numbers are used throughout the disclosure and the figures to reference like components and features. Numbers in the 100 series refer to features originally found in
The techniques described herein include a serial sideband link. The serial sideband link includes a first serial sideband link module configured to propagate signals in one direction, and a second serial sideband link module configured to propagate signals in another direction. In embodiments, the serial sideband link may be used to consolidate other sideband link I/O technologies, such as CEM, Mini CEM, and the like, into a single serial sideband link, thereby potentially reducing pin count on any given connected components. The serial sideband link may also enable a scalable number of sideband signals to be added without adding pin count.
For example, the main signaling link 106 may be a PCIe fabric, and sideband signals are propagated on the serial sideband signaling link 108. In embodiments, the downstream port 104 is a controller, such as a system on chip (SoC), and the upstream port 102 may be a device, such as an expansion card communicatively coupled to a SoC.
In any case, the first serial sideband link module 110 is to propagate signals from the upstream port 102 to the downstream port 104 on a first signaling lane 114. The second serial sideband link module 112 is to propagate signals from the downstream port 104 to the upstream port 102 via a second signaling lane 116.
In some cases, glue logic may not be used to connect the connector to the serial sideband link 108, as indicated at 214. In this scenario, the serial sideband link 108 may directly interface with the connector 208. In yet other cases, the serial sideband link 108 may communicatively couple the SoC 204 to the device 206 via integrated components of the serial sideband link 108 within the SoC 204 and the device 206, as indicated at 216.
As illustrated in
The initiator 302 initiates the asynchronous handshake by asserting a sideband signal of a predetermined high voltage. The responder 304 acknowledges the start of the asynchronous handshake by asserting a sideband signal of the predetermined high voltage. The initiator 302 keeps the signal asserted for a first time period, indicated by TMIN_ACTIVE in
A byte value is transmitted using pulse width modulation (PWM) encoding to help the responder 304 recover a clock, as indicated at 306. In embodiments, the byte value is an 8 bit value, wherein the first seven bits are of a value of 1 and the last bit is of a value of 0. This simple value may enable relatively quick clock recovery. A profile negotiation, and/or a serial sideband signal packet may follow, as indicated at 308. If the serial sideband link is idle for a second time period, indicated by TMAX_IDLE in
In some scenarios, both sides may initiate a handshake simultaneously. In this case, an upstream port, such as the upstream port 102 of
A byte value is transmitted using PWM encoding to help either side recover a clock, as indicated at 310. In embodiments, the byte value is an 8 bit value, wherein the first seven bits are of a value of 1 and the last bit is of a value of 0. A profile negotiation, and/or a serial sideband signal packet may follow, as indicated at 312. If the serial sideband link is idle for a second time period, indicated by TMAX_IDLE in
In some scenarios, the asynchronous handshake, as discussed above, may be used during power on reset, hot plug events, and the like. A hot plug event may also include a hot unplug event. Hot plug and hot unplug events include adding or removing components, such as an upstream port 102 of an expansion card, from connection with a downstream port 104 without prior indication. In these scenarios, an asynchronous handshake may be performed, and a profile negotiation may follow, as discussed in more detail below. If either side does not support certain bits in a given profile, they are to be ignored by the receiving side.
The serial sideband link 108 may be configured to perform a profile negotiation every time there is a hot plug event, state changes, or any combination thereof. In these circumstances, a profile negotiation is performed following the very first asynchronous handshake after these events.
As illustrated in
As illustrated in Table 2, existing sideband link I/O technologies may be identified in the profile register of the serial sideband link 108. In embodiments, the identification is performed by logic of the one or more of the serial sideband link modules 110 and 112, discussed above with regard to
A packet format 602 of the serial sideband link 108 is illustrated in
As illustrated in Table 3, OBFF messages have been encoded as a 2 bit code instead of relying on rising and falling edges. Different values in the profile bits may lead to different number of bits causing different sideband signals to be propagated on the serial sideband link 108.
As illustrated in
In some embodiments, the downstream port 104 may be configured to refrain from transmitting another profile negotiation packet until it receives an ACK packet for the last profile negotiation packet it has transmitted at 702. If the downstream port 104 receives a non-acknowledgement (NAK) packet, or after two milliseconds, the same profile negotiation packet will be retransmitted.
In some cases, the downstream port 104 is configured to transmit a value of 0 in an “L” field, such the L field indicated in
After receiving the final profile of the plurality of profiles from the downstream port 104, the upstream port may be configured to transit an ACK packet as indicated at 708. The upstream port 102 may be further configured to transmit a profile negotiation packet, as indicated at 710, indicating one or more profiles supported by the upstream port 102. At 712, the downstream port 104 may be configured to send an ACK packet. Similar to the downstream port 104, the upstream port may be configured to send a plurality of profile negotiation packets, wherein a value of 1 will indicate a last profile in supported by the upstream port 102, as indicated at 714.
The profile negotiation continues at
Referring back to
As illustrated in Table 4, a set of profiles may be identified in the 3 bit field defining 8 sets, and wherein each set may have up to 12 profiles.
The serial sideband link 108 is idle when no signals are being sent. A start symbol, or start of packet (SOP), is sent to start the transmission followed by sideband signals having high latency sensitivity in comparison to other sideband signals. Based on the profile selected, some of the bits will have a predefined meaning. For example, the SOP may have a value of 2′b01, indicated at 802. The bits b 0 to bn 01 are then configured to have a predefined meaning. The packet may then end with a stop symbol with a value of 2′b10, as indicated at 804.
For example, a transmitting end may be a downstream port, such as the downstream port 104 of
As illustrated in
For example, each bit consists of two periods: a negative voltage period followed by a positive voltage period as illustrated in
It may be important to note that PWM encoding described herein includes self-clocking properties. The rise time and fall time are defined as the time it takes for the signal to transition between about 20% and 80% signal levels of a differential output signal. Electrical parameters for PWM may be illustrated in Table 5 below:
In some cases, the serial sideband link described above is configured to operate at 19.2 MegaTransfers per second (MT/s). In this scenario, one unit interval will be 52 nanoseconds (ns). If the encode/decode logic is running a 100 Megahertz (MHz) clock, 1 clock cycle will be about 10 ns. Assuming one flop stage on the transmit side as well as the receive side, a total latency for encoding, transmitting, and decoding 1 bit may be about TLAT_BIT defined in Equation 1 below:
T
LAT
_
BIT=52 s+20 ns+propagation delay=72 ns+propagation delay Eq. 1
During initial power on, a sideband link, such as any one of the serial sideband links 1202-1212, may be configured to initialize in a legacy mode where a signal lane from a downstream port and a signal lane from an upstream port are used propagate legacy PCIe packets. For example, a signal lane from a downstream port is used as PERST#, and the signal lane from an upstream port is used as CLKREQ#. A Basic Input Output System (BIOS) (not shown) or other software associated with the switch hierarchy illustrated in
In the example illustration of
In some cases, the AIC 1302 may be susceptible to hot plug and unplug events discussed above in regard to
Other method steps are considered. For example, the method 1700 may include initiating an asynchronous handshake via the first serial sideband link module, the second sideband link module, or both sideband link modules to wake up a serial sideband link, and performing an asynchronous handshake each time a state change is indicated for a main signaling link with which the sideband signaling is associated. The method 1700 may also include encoding the packets propagate using pulse width modulation (PWM) without propagation of a separate clock signal. In some cases, the method 1700 includes interfacing the serial sideband link modules with one or more sideband link input/output (I/O) technologies.
Example 1 includes an apparatus for sideband signaling. The apparatus includes a first serial sideband link module to propagate packets from an upstream port to a downstream port via a first signaling lane. The apparatus also includes a second serial sideband link module to propagate packets from the downstream port to the upstream port via a second signaling lane.
Example 1 may incorporate additional subject matter. For example, an asynchronous handshake is initiated by the first serial sideband link module, the second sideband link module, or both sideband link modules to wake up a serial sideband link. As another example packets propagate using pulse width modulation (PWM) encoding without propagation of a separate clock signal. In general, the sideband signaling is asynchronous on the serial sideband link. The serial sideband link modules are configured to interface with one or more sideband link input/output (I/O) technologies. In some cases, the signaling lanes are connected to Universal Serial Bus (USB) future use pins. Further, the apparatus is connectable to one or more apparatuses for serial sideband signaling in a daisy chain configuration. An asynchronous handshake received at the second serial sideband link module indicates a presence of a logical entity at another port. The sideband link signaling may be communicated over a connector having pins associated with the sideband link that are shorter than other pins of the connector. The sideband link modules are to communicate state changes for a main signaling link with which the sideband signaling is associated by performing an asynchronous handshake each time a state change is indicated.
Example 2 includes a method for sideband signaling. The method includes propagating packets from an upstream port to a downstream port via first signaling lane of a first serial sideband link module. The method also includes propagating packets from the downstream port to the upstream port via a second signaling lane of a second serial sideband link module.
Example 2 may incorporate additional subject matter. For example, the method may include initiating an asynchronous handshake via the first serial sideband link module, the second sideband link module, or both sideband link modules to wake up a serial sideband link. The method may also include encoding the packets propagate using pulse width modulation (PWM) without propagation of a separate clock signal. The sideband signaling is asynchronous in general. The method may also include interfacing the serial sideband link modules with one or more sideband link input/output (I/O) technologies. In some cases, the signaling lanes are connected to Universal Serial Bus (USB) future use pins. The method may further include connecting each of the signaling lanes to one or more additional serial sideband signaling links in a daisy chain configuration. In some cases, the method may include receiving an asynchronous handshake at the second serial sideband link module indicating a presence of a logical entity at another port. Further, in some scenarios, the sideband link signaling is communicated over a connector comprising pins associated with the sideband link that are shorter than other pins of the connector. Further, the method may include performing an asynchronous handshake each time a state change is indicated for a main signaling link with which the sideband signaling is associated.
Example 3 describes a system for sideband signaling. The system includes a first signaling lane, a first serial sideband link module to propagate packets from an upstream port to a downstream port via the first signaling lane, a second signaling lane, and a second serial sideband link module to propagate packets from the downstream port to the upstream port via the second signaling lane.
Example 3 may incorporate additional subject matter similar to the subject matter of Example 1. For example, an asynchronous handshake is initiated by the first serial sideband link module, the second sideband link module, or both sideband link modules to wake up a serial sideband link. As another example packets propagate using pulse width modulation (PWM) encoding without propagation of a separate clock signal. In general, the sideband signaling is asynchronous on the serial sideband link. The serial sideband link modules are configured to interface with one or more sideband link input/output (I/O) technologies. In some cases, the signaling lanes are connected to Universal Serial Bus (USB) future use pins. Further, the system is connectable to one or more other systems for serial sideband signaling in a daisy chain configuration. An asynchronous handshake received at the second serial sideband link module indicates a presence of a logical entity at another port. The sideband link signaling may be communicated over a connector having pins associated with the sideband link that are shorter than other pins of the connector. The sideband link modules are to communicate state changes for a main signaling link with which the sideband signaling is associated by performing an asynchronous handshake each time a state change is indicated.
Example 4 includes an apparatus for sideband signaling. The apparatus includes a first means to propagate packets from an upstream port to a downstream port via a first signaling lane, and a second means to propagate packets from the downstream port to the upstream port via a second signaling lane.
In some cases, the first and second means include any type of logic, such as electrical circuits, configured to propagate packets in the manner described in Example 4. Other means may include computer-readable medium instructions, that when executed by a processing device may cause the apparatus to perform actions according to the method of Example 2.
Example 4 may incorporate additional subject matter similar to the subject matter of Example 1. For example, an asynchronous handshake is initiated by the first means, the second means, or both means to wake up a serial sideband link. As another example packets propagate using pulse width modulation (PWM) encoding without propagation of a separate clock signal. In general, the sideband signaling is asynchronous on the serial sideband link. The serial sideband link modules are configured to interface with one or more sideband link input/output (I/O) technologies. In some cases, the signaling lanes are connected to Universal Serial Bus (USB) future use pins. Further, the system is connectable to one or more other systems for serial sideband signaling in a daisy chain configuration. An asynchronous handshake received at the second means indicates a presence of a logical entity at another port. The sideband link signaling may be communicated over a connector having pins associated with the sideband link that are shorter than other pins of the connector. The first and second means are to communicate state changes for a main signaling link with which the sideband signaling is associated by performing an asynchronous handshake each time a state change is indicated.
Example 5 includes a sideband signaling link including a first serial sideband link module to propagate packets from an upstream port to a downstream port via a first signaling lane. The sideband signaling link also includes a second serial sideband link module to propagate packets from the downstream port to the upstream port via a second signaling lane.
Example 5 may incorporate additional subject matter. In some cases, Example 5 may incorporate the additional subject matter of Example 1.
An embodiment is an implementation or example. Reference in the specification to “an embodiment,” “one embodiment,” “some embodiments,” “various embodiments,” or “other embodiments” means that a particular feature, structure, or characteristic described in connection with the embodiments is included in at least some embodiments, but not necessarily all embodiments, of the present techniques. The various appearances of “an embodiment,” “one embodiment,” or “some embodiments” are not necessarily all referring to the same embodiments.
Not all components, features, structures, characteristics, etc. described and illustrated herein need be included in a particular embodiment or embodiments. If the specification states a component, feature, structure, or characteristic “may”, “might”, “can” or “could” be included, for example, that particular component, feature, structure, or characteristic is not required to be included. If the specification or claim refers to “a” or “an” element, that does not mean there is only one of the element. If the specification or claims refer to “an additional” element, that does not preclude there being more than one of the additional element.
It is to be noted that, although some embodiments have been described in reference to particular implementations, other implementations are possible according to some embodiments. Additionally, the arrangement and/or order of circuit elements or other features illustrated in the drawings and/or described herein need not be arranged in the particular way illustrated and described. Many other arrangements are possible according to some embodiments.
In each system shown in a figure, the elements in some cases may each have a same reference number or a different reference number to suggest that the elements represented could be different and/or similar. However, an element may be flexible enough to have different implementations and work with some or all of the systems shown or described herein. The various elements shown in the figures may be the same or different. Which one is referred to as a first element and which is called a second element is arbitrary.
It is to be understood that specifics in the aforementioned examples may be used anywhere in one or more embodiments. For instance, all optional features of the computing device described above may also be implemented with respect to either of the methods or the computer-readable medium described herein. Furthermore, although flow diagrams and/or state diagrams may have been used herein to describe embodiments, the techniques are not limited to those diagrams or to corresponding descriptions herein. For example, flow need not move through each illustrated box or state or in exactly the same order as illustrated and described herein.
The present techniques are not restricted to the particular details listed herein. Indeed, those skilled in the art having the benefit of this disclosure will appreciate that many other variations from the foregoing description and drawings may be made within the scope of the present techniques. Accordingly, it is the following claims including any amendments thereto that define the scope of the present techniques.
Number | Date | Country | Kind |
---|---|---|---|
PI 2014702585 | Sep 2014 | MY | national |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US2014/072389 | 12/24/2014 | WO | 00 |