USPatent applicationPatented

Autodetection of a PCI express device operating at a wireless RF mitigation frequency

Granted 18 Oct 2011 · 7 office actions

Life of the application

21 dated events
⤢ drag to zoom2006200820102012201420162018202020222024ProsecutionOwnershipTerm & fees
ProsecutionOwnershipTerm & feeshover for detail · click to open

Abstract

A computer system that detects for a PCI Express compliant endpoint device is described. Specifically, the computer system clocks transmit and receive circuits at a first frequency and initiates a training sequence. If the endpoint device successfully trains at the first frequency, the endpoint device is PCI Express compliant. Otherwise, the computer system initiates another training sequence at a second frequency.

Description

6 parts
›FIELD

The present invention pertains to the field of computer system design. More particularly, the present invention relates to a root port that detects whether an attached device is operating at a PCI Express frequency or an alternative wireless extension frequency.

›BACKGROUND

Peripheral Component Interconnect (PCI) is a computer bus design standard for connecting peripheral components to computers. A PCI bus typically routes signals between a central processing unit (CPU), various other chips on the motherboard, and cards that are plugged into PCI bus slot connectors. The PCI bus, however, is independent of the CPU chip implemented in a computer system. Thus, the PCI bus is adapted for use in many different kinds of computers or other high-tech hardware. Earlier versions of the PCI standard included PCI 2.2 and PCI-X.

PCI Express is the third generation of PCI architecture. PCI Express offers higher input/output (I/O) bandwidth than its predecessors. Traditional PCI attributes, such as its usage model and software interfaces, are maintained. However, the previous parallel bus implementation has been replaced by a link-to-link serial interface. Further, a split-transaction protocol is implemented with attributed packets that are prioritized and optimally delivered to their target.

›BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an embodiment of a computer system that supports both PCI Express compliant devices and non-PCI Express compliant devices.

FIG. 2 is an embodiment of a flowchart to auto-detect a non-PCI Express compliant wireless extension device.

FIG. 3 is a block diagram of an embodiment of a device for detecting PCI Express compliant and non-PCI compliant devices.

›DETAILED DESCRIPTION · 1 of 3

In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the invention. However, it will be understood by those skilled in the art that the present invention may be practiced without these specific details. In other instances, well-known methods, procedures, components and circuits have not been described in detail so as not to obscure the present invention.

The PCI Express architecture is typically composed of a plurality of layers. For example, a software layer generates PCI Express read and write requests. A transaction layer, coupled to the software layer, transports the software-generated requests to I/O devices using a packet-based, split-transaction protocol. A link layer coupled to the transaction layer adds sequence numbers and a cyclical redundancy check (CRC) number to the packets to create a highly reliable data transfer mechanism. Finally, a physical layer coupled to the link layer transports the packets to another PCI Express device.

The PCI Express 1.0a specification supports a frequency of 2.5 gigahertz (GHz). This frequency may be referred to as the Gen 1 frequency. The Gen 1 frequency is similar to the wireless 2.4 GHz spectrum. As a result, the Gen 1 frequency potentially causes radio frequency (RF) interference with wireless communications.

To reduce the RF interference of a wireless endpoint, a mechanism in a PCI Express port may reduce the data transfer rate. As an example, the data transfer rate is reduced to 833 megahertz (MHz), or one-third the Gen 1 frequency. A mechanism to reduce the data transfer rate is described in more detail in co-pending application with Ser. No. 10/629,967 entitled, “RF Interference Mitigation by Spectral Shaping Using Adaptive Data Rate Adjustment for PCI Express Interconnect.” The 833 MHz transfer rate is also known as the wireless extension frequency.

By definition of the PCI Express 1.0a specification, a computer system that communicates only with a device that operates at the wireless extension frequency is not PCI Express compliant. To maintain PCI Express compliance, a computer system that is able to communicate with non-PCI Express compliant devices also communicates with PCI Express compliant devices.

FIG. 1 depicts a PCI Express compliant computer system that is able to communicate with both a device operating at the Gen 1 frequency and a device operating at the wireless extension frequency. The computer system 100 of FIG. 1 comprises a processor 110 , a chipset 120 , and a memory 150 . Computer system 100 , which refers to processor 110 , chipset 120 , and memory 150 , is coupled to device 160 . However, a computer system may include device 160 .

In one embodiment, device 160 is either a PCI Express compliant or non-PCI Express compliant device. Coupling of device 160 to chipset 120 may comprise physically coupling device 160 to chipset 120 or wirelessly coupling device 160 to chipset 120 . As an example, chipset 120 has a transmitter to transmit data to and a receiver to receive data from coupled device 160 . Device 160 , as illustrated, further comprises port 170 , which is discussed in more detail below.

Chipset 120 is coupled to processor 110 , memory 150 , and device 160 . Chipset 120 is illustrated as a single block; however, chipset 120 is not so limited. In fact, often chipset 120 comprises a plurality of controller hubs or integrated circuits. As a specific example, chipset 120 comprises a memory controller hub (MCH) coupled to processor 110 and memory 150 , as well as an interconnect controller hub (ICH), also referred to as an input/output hub (IOH), coupled to the MCH and I/O devices through a bus, such as PCI Express. Using typical memory bus protocols, chipset 120 delivers data between the processor 110 and memory 150 .

Also shown in chipset 120 is PCI Express switch 130 . In one embodiment, PCI Express switch 130 adjusts a frequency of the data transmitted by a transmitter present in chipset 120 . Moreover, the PCI Express switch 130 may adjust the clock frequency of its receiver. For example, PCI Express switch 130 adjusts the receiver clock from the Gen 1 frequency to the wireless extension frequency.

In one embodiment, root port 140 , also illustrated in chipset 120 , attempts to establish communication with a connected device at the Gen 1 frequency. If the communication is unsuccessful after N attempts, root port 140 auto-detects for a connected device operating at a wireless extension frequency. The root port 140 and PCI Express switch 130 may be part of the physical layer or any other layer present in a PCI Express bus/protocol.

FIG. 2 depicts a flowchart of an algorithm for auto-detecting a connected device operating at a wireless extension frequency. In one embodiment, the algorithm is implemented by root port 140 . As stated above root port 140 is illustrated in chipset 120 ; however, root port 140 is not so limited, as root port 140 may also be present in a separate controller hub, integrated circuit, switch, or bridge in the hierarchical connection of a peripheral bus.

In operation 210 , root port 140 attempts to “train” a connected endpoint device at a first frequency. In a first embodiment, data is transmitted at a first frequency. As another example, in addition to transmitting data at the first frequency, the root port receiver is also clocked at the first frequency. As a specific example, the first frequency is the Gen 1 frequency. Training may comprise a “bit-lock” and a “K-align lock” of the physical layers of each device. However training is not so limited. For example, training may also include exchanging training sequences between devices. Bit-lock refers to the ability of the receiver to properly lock onto specific bits within a bit-stream by identifying bit transition edges. K-align lock refers to the ability of the receiver to determine symbol boundaries within a bit pattern.

If root port 140 is able to train the endpoint device within X attempts in operation 220 , the endpoint device is PCI Express compliant and the link negotiation is terminated in operation 270 . The number of attempts, X, may be a software programmable value with a hardware default. Furthermore, X may be an integer greater than or equal to one.

›DETAILED DESCRIPTION · 2 of 3

However, if root port 140 is unable to train the endpoint device within X attempts, the receiver is clocked at a second frequency in operation 230 . The receiver then attempts to K-align at the second frequency. As a specific example, root port 140 continues to transport/transmit data at the first frequency. The receiver may attempt to K-align at the second frequency for Y attempts in operation 240 . The number of attempts, Y, may be a software programmable value with a hardware default, as well as an integer equal to or greater than one. Both the number of attempts X and Y may also be a predetermined number of attempts in hardware or in software, as well as any combination of hardware and software.

Yet, if the receiver fails to K-align at the second frequency in operation 240 , the root port 140 returns to operation 210 and again attempts to train the endpoint device at the first frequency.

On the other hand, if the receiver successfully K-aligns at the second frequency, the transmitter is adjusted to transmit data at the second frequency in operation 250 . Root port 140 next attempts to train the endpoint device within Z attempts at the second frequency in operation 260 . Thus, the receiver attempts to bit-lock, i.e. properly lock, onto specific bits within a bit-stream, and to K-align lock to determine symbol boundaries within a bit pattern. As stated above for X and Y, Z may also be a predetermined or programmable integer implemented in hardware, software, or firmware.

Nevertheless, if the receiver fails to train the endpoint device at the second frequency within Z attempts in operation 260 , the root port 140 returns to operation 210 and again attempts to train the endpoint device at the first frequency. Otherwise, if the receiver successfully trains at the second frequency within Z attempts, the link negotiation is terminated in operation 270 .

FIG. 3 depicts a block diagram of an embodiment of a device for detecting PCI Express compliant and non-PCI compliant devices. FIG. 3 comprises a wireless extension state machine 305 , a receive circuit interface 310 , a receive physical layer 320 , a clock divider 330 , a multiplexer 335 , a link training and status state machine 340 , a transmit circuit interface 350 , a transmit physical layer 360 , a phase locked loop 365 , a clock divider 370 , and a multiplexer 375 .

Receive circuit interface 310 is coupled to receive physical layer 320 , clock divider 330 , and multiplexer 335 . Clock divider 330 is coupled to multiplexer 335 . Receive physical layer 320 is coupled to link training and status state machine 340 . Link training and status state machine 340 and multiplexer 335 are coupled to wireless extension state machine 305 . Phase locked loop 365 is coupled to clock divider 370 . Clock divider 370 is coupled to multiplexer 375 . Multiplexer 375 is coupled to link training and status state machine 340 .

In one embodiment, receive circuit interface 310 receives a signal from a wireless extension endpoint. In another embodiment, receive circuit interface 310 receives a signal from a PCI Express endpoint. Receive circuit interface 310 may comprise an I/O buffer. The signal input to receive circuit interface 310 may comprise a clock and a data signal. In one embodiment the clock signal is extracted from the data signal. Receive circuit interface 310 may extract the clock from the signal and transmit the clock to clock divider 330 and multiplexer 335 . Receive circuit interface 310 transmits the data to receive physical layer 320 for processing. The data is subsequently passed from the receive physical layer 320 to link training and status state machine 340 and to the link layer.

The clock extracted from the signal received by the endpoint device may have a Gen 1 frequency. As a specific example, clock divider 330 divides the clock by three. Thus, the inputs to the multiplexer 335 may be a Gen 1 frequency and a wireless extension frequency. The wireless extension state machine 305 transfers a signal to the multiplexer 335 to select whether the Gen 1 frequency or the wireless extension frequency is output from the multiplexer 335 . For one embodiment, the wireless extension state machine 305 selects the Gen 1 frequency, if the wireless extension state machine 305 determines that a PCI Express device is coupled to the receive circuit interface 310 and the transmit circuit interface 350 . However, the wireless extension frequency may be selected by the wireless extension state machine 305 , if the wireless extension state machine 305 determines that a wireless extension device is coupled to the receive circuit interface 310 and the transmit circuit interface 350 .

Besides selecting the receiver clock, in one embodiment, the wireless extension state machine 305 also selects the transmitter clock. It is apparent that another state machine may select the transmitter clock. Wireless extension state machine 305 provides a select signal to multiplexer 375 . Multiplexer 375 receives a first clock and a second clock as inputs. A clock having a Gen 1 frequency may be generated by phase locked loop 365 . The clock having a Gen 1 frequency is provided to the first input of multiplexer 375 . The second input to multiplexer 375 is provided by the output of clock divider 370 . Consequently, in a specific embodiment, the two inputs to multiplexer 335 are the Gen 1 frequency and the wireless extension frequency, the Gen 1 frequency generated by a PLL and the wireless extension frequency being based on the Gen 1 frequency, i.e. the Gen 1 frequency divided by 3.

In another embodiment, the wireless extension state machine 305 initially selects the Gen 1 frequency for both the receiver and the transmitter clocks. However, the wireless extension frequency or other frequency may be selected as the default for the receive and transmitter, as well as selecting the receiver and transmitter clocks individually. Receive physical layer 320 receives a clock having a Gen 1 frequency. Receive physical layer 320 also receives data from receive circuit interface 310 . The data is passed to link training and status state machine 340 at the selected frequency rate.

›DETAILED DESCRIPTION · 3 of 3

Similarly, transmit physical layer 360 receives a clock having a Gen 1 frequency. Data is transmitted from the link layer to the physical layer, which may include status state machine 340 . Moreover, data is transmitted to the endpoint device at the Gen 1 frequency. As an example, data transmitted to the endpoint device is generated by the link layer. Transmit circuit interface 350 may comprise an I/O buffer to transmit the data to the endpoint device.

After receiving data from the endpoint device, receive physical layer 320 and link training and status state machine 340 attempt to train the endpoint device at the Gen 1 frequency. Training is initiated by link training and status state machine 340 . If the receive physical layer 320 and link training and status state machine 340 are successful in training the endpoint device at the Gen 1 frequency, the link training and status state machine 340 provides a signal to the wireless extension state machine 305 to let the wireless extension state machine 305 know that the endpoint device is PCI Express compliant. As a result, wireless extension state machine 305 will continue to select clocks having Gen 1 frequencies for multiplexers 335 and 375 .

However, if receive physical layer 320 and link training and status state machine 340 fail to train the endpoint device at the Gen 1 rate, wireless extension state machine 305 may select the wireless extension clock input for multiplexer 335 . Receive physical layer 320 and link training and status state machine 340 may then attempt to K-align the data. For example, receive physical layer 320 may determine symbol boundaries within the bit pattern by looking for a COM symbol. The COM symbol may be a unique K-code character within a bit-sequence. If receive physical layer 320 and link training and status state machine 340 successfully K-align the data, the link training and status state machine 340 may select the wireless extension clock for multiplexer 375 and attempt to train the endpoint device at the wireless extension rate.

In the foregoing specification the invention has been described with reference to specific exemplary embodiments thereof. It will, however, be evident that various modification and changes may be made thereto without departure from the broader spirit and scope of the invention as set forth in the appended claims. The specification and drawings are, accordingly, to be regarded in an illustrative rather than restrictive sense.

Claims as granted

18 claims

Log in to read the claims of this application.

Log in to unlock

Classifications

24 codes
IPC · International Patent Classification
Section G — Physics
  • G06F13/00
  • G06F3/00
  • G06F5/00
  • G06F1/24
Section H — Electricity
  • H04M1/00
  • H03H7/30
  • H04B7/14
  • H04B3/20
  • H04B1/38
  • H04B3/36
  • H04B1/18
  • H04M11/00
USPC · US Patent Classification
710/8455/15455/193.3710/33710/61713/100710/60370/292455/7375/231379/93.8455/557

Claim changes

Soon
Coming soonHow the claims changed between publication and grant

See which claims were amended, added or cancelled during examination, with every added and removed word marked.

AmendedAddedCancelledUnchanged

The published claims of this application are not paired with the granted ones in what we hold.

File wrapper

⤢ drag to zoom20052006200720082009201020112012USPTOApplicantNon-final rejectionResponse after non-finalRequest for continued examinationResponse after non-finalRequest for continued examinationResponse after non-finalResponse after non-final
USPTOApplicanthover for detail · click to open
Pendency
6.8 y
2,484 days filing → grant
Office actions
7
non-final + final
Responses
4
3 RCE
Interviews
1
examiner interview summaries
Examiner
Tariq Hafiz
art unit 2182 · TC 2100
Citations: 36 back · 1 forward

See the full prosecution history — every USPTO and applicant action on this file, in order.

Log in to unlock

Documents

Log in to open the documents of this file: the application as filed, every office action and response, the notice of allowance.

Log in to unlock

Chain of title

⤢ drag to zoom2006200820102012201420162018202020222024Owner 1liens, releases & corrections
Titlehover for detail · click to open

See the full assignment history — every owner this patent has passed through, with recordation dates and reel/frame numbers.

Log in to unlock