US20130246680A1 - Hot plug process in a distributed interconnect bus - Google Patents

Hot plug process in a distributed interconnect bus Download PDF

Info

Publication number
US20130246680A1
US20130246680A1 US13/891,861 US201313891861A US2013246680A1 US 20130246680 A1 US20130246680 A1 US 20130246680A1 US 201313891861 A US201313891861 A US 201313891861A US 2013246680 A1 US2013246680 A1 US 2013246680A1
Authority
US
United States
Prior art keywords
configuration space
hot
plug
bus unit
distributed
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US13/891,861
Inventor
Yaron Elboim
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Wilocity Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wilocity Ltd filed Critical Wilocity Ltd
Priority to US13/891,861 priority Critical patent/US20130246680A1/en
Publication of US20130246680A1 publication Critical patent/US20130246680A1/en
Assigned to QUALCOMM ATHEROS, INC. reassignment QUALCOMM ATHEROS, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: WILOCITY LTD.
Assigned to QUALCOMM INCORPORATED reassignment QUALCOMM INCORPORATED ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: QUALCOMM ATHEROS, INC.
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • G06F13/4081Live connection to bus, e.g. hot-plugging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Definitions

  • the present invention generally relates to hot-plug processes, and more particularly, for enabling a hot-plug process in a distributed interconnect bus.
  • PCI Express Peripheral Component Interconnect Express
  • PCIe Peripheral Component Interconnect Express
  • PCIe implements a serial, full duplex, multi-lane, point-to-point interconnect, packet-based, and switch based technology.
  • Current versions of PCIe buses allow for a transfer rate of 2.5 Giga bit per second (Gbps) or 5 Gbps, per lane, with up to 32 lanes.
  • Gbps giga bit per second
  • the PCIe bus protocol communication is encapsulated in packets.
  • the packetizing and depacketizing data and status-message traffic is handled by the transaction layer of a PCIe port.
  • PCIe is used as a motherboard-level interconnect and an expansion board interface for add-in cards.
  • a PCIe bus 100 interconnects the card 110 to the motherboard 120 and further connects expansion cards 130 and 140 through a host 160 .
  • the host 160 is connected to the motherboard 120 .
  • the PCIe bus 100 allows connectivity between the various cards to a CPU sub system 170 of the computing device.
  • An expansion card is typically inserted into a slot.
  • the host and/or the motherboard are referred to as PCIe roots and the cards are PCIe endpoints.
  • An internal memory 180 is also coupled to the motherboard 120 .
  • the PCIe is a layered protocol bus, consisting of a transaction layer 210 , a data link layer 220 , and a physical layer 230 .
  • the PCIe implements split transactions, i.e., transactions with request and response separated by time, allowing the link to carry other traffic while the target device gathers data for the response.
  • the primary function of the transaction layer 210 is to assemble and disassemble transaction layer packets (TLPs). TLPs are used to carry transactions, where each TLP has a unique identifier that enables a response directed at the originator.
  • the data link layer 220 acts as an intermediate between the transaction layer 210 and the physical layer 230 and provides a reliable mechanism for exchanging TLPs.
  • the data link layer 220 implements error checking (known as “LCRC”) and retransmission mechanisms. LCRC and sequencing are applied on received TLPs and if an error is detected, a data link retry is activated.
  • the physical layer 230 consists of an electrical sub-layer 234 and logical sub-layer 232 .
  • the logical sub-layer 232 is a transmitter and receiver pair implementing symbol mapping, serialization, and de-serialization of data.
  • each lane utilizes two unidirectional low-voltage differential signaling (LVDS) pairs for transmitting and receiving symbols from the logical sub-block 232 .
  • LVDS low-voltage differential signaling
  • the PCIe bus protocol supports a hot-plug process, i.e., replacing system components without shutting down the power. This feature is highly important in blade servers where cards are frequently removed and inserted without powering on/off the server.
  • a hot-plug process is supported in a current implementation of the PCIe buses and controllers.
  • the PCIe standard defines a Slot Capabilities Register, Slot Control Register, and Slot Status Register to support the hot-plug process. These registers and the standard hot-plug process are described in detail in the PCI ExpressTM base Specification reversion 1.0a, sections 6.7, 7.8.9, 7.8.10, and 7.8.11 published on Apr. 15, 2003, by the PCI-SIG.
  • the Slot Capabilities Register identifies specific capabilities of a PCIe slot.
  • the Slot Capabilities Register includes several bits, two of which are: Hot-Plug Surprise bit that indicates that a card in a designated slot can be removed without any prior notification and Hot-Plug Capable bit that indicates that a designated slot is capable of supporting hot-plug operations.
  • the Slot Control Register includes bits, that when set, define if a hot-plug interrupt can be asserted, e.g., if a power fault or a presence of card in the slot is detected.
  • the Slot Status Register provides information about slot specific parameters, e.g., if a power fault or a presence of the card is detected. These registers will be referred to hereinafter as “Hot-Plug Registers” or “HP R”.
  • the hot-plug operation as currently implemented includes generating an interrupt when the slot status changes, i.e., from connected to disconnected and vice versa.
  • the operating system captures the interrupt and allocates/reallocates resources to the inserted/removed device.
  • OS operating system
  • the OS enumerates the card in the order it appears on the PCIe bus.
  • a distributed interconnect bus connects the root to endpoints over a distributed medium, e.g., a wireless medium, a computer network, and the like.
  • the distributed interconnect bus includes two bridges that implement the PCIe protocol. A first bridge is coupled to the root and a second bridge is connected to an endpoint. The first and second bridge communicate over the distributed medium.
  • An example of a distributed bus can be found in US Patent Application Publication No. 2009/0024782, entitled “Distributed Interconnect Bus Apparatus,” assigned to the common assignee, and incorporated herein by reference in its entirety merely for the useful understanding of the background of the invention.
  • the connectivity between the endpoints and the root is unreliable.
  • the wireless link may frequently be idle for a short period of time, and then operational again.
  • Such an event may be treated as a hot-plug event (i.e., a card is removed and inserted).
  • the above-referenced standard defines the hot-plug process in a standard PCIe bus where the root and endpoints are physically coupled to the bus, and the connectivity medium is entirely integrated in the computing device (e.g., server or PC).
  • the computing device e.g., server or PC
  • Data transfers between the root and endpoint(s) are performed by encapsulating the TLPs in data structures compliant with the distributed medium. Further, the signaling definitions and protocol of a standard PCIe do not apply for communication over the distributed medium. Thus, if a bridge coupled to the endpoint generates a hot-plug interrupt signal, the signal cannot be transferred to the root (which informs the OS).
  • Certain embodiments disclosed herein include a method for performing a hot-plug removal process in a distributed peripheral component interconnect express (PCIe) bus.
  • the method comprises receiving a hot-plug interrupt asserted by a shadow configuration space when a distributed link established over the distributed PCIe is unavailable, wherein the shadow configuration space is a copy of a configuration space of at least one endpoint component wirelessly connected to a host device over the distributed PCIe; reading a hot-plug status from the shadow configuration space; writing to the shadow configuration space to turn off at least one peripheral device connected to the at least one endpoint component; and de-allocating resources allocated to a driver of the at least one peripheral.
  • PCIe peripheral component interconnect express
  • Certain embodiments disclosed herein also include a method for performing a hot-plug insertion process in a distributed peripheral component interconnect express (PCIe) bus.
  • the method comprises receiving a hot-plug interrupt asserted by a shadow configuration space when a distributed link established over the distributed PCIe is available, the hot-plug interrupt informing on detection of a hot-plug insertion event; reading a hot-plug status from a configuration space of at least one endpoint component wirelessly connected to a host device over the distributed PCIe, wherein the configuration space is a copy of the shadow configuration space updated to designate the hot-plug insertion event; writing to the configuration space to turn on at least one peripheral device connected to the at least one endpoint component; and asserting a message indicating that the host device and the at least one peripheral can communicate over the distributed PCIe bus.
  • PCIe peripheral component interconnect express
  • Certain embodiments disclosed herein also include a wireless communication system.
  • the system comprises a root component connected in a host device and directly coupled to an upstream bus unit, wherein the upstream bus unit is configured to maintain a first configuration space and a copy of a second configuration space, the first configuration space bridge includes at least hot-plug registers specifying at least capabilities and status of a slot of the upstream bus unit; and at least one endpoint component connected to at least one peripheral device and directly coupled to a downstream bus unit that communicates with the host bridge over a distributed link established over a distributed peripheral component interconnect express (PCIe) bus, wherein the downstream bus unit is configured to maintain the second configuration space; the second configuration space includes at least hot-plug registers specifying at least capabilities and status of a slot of the downstream bus unit.
  • PCIe peripheral component interconnect express
  • FIG. 1 is a diagram illustrating a PCIe bus connectivity
  • FIG. 2 is a schematic diagram illustrating the operation of a PCIe protocol
  • FIG. 3 is a block diagram of a distributed interconnect bus apparatus utilized to describe the embodiments of the invention.
  • FIG. 4 is a flowchart illustrating a hot-plug removal method in a distributed PCIe bus in accordance with an embodiment of the invention.
  • FIG. 5 a flowchart illustrating a hot-plug insertion method in a distributed PCIe bus in accordance with an embodiment of the invention.
  • FIG. 3 shows a non-limiting and exemplary diagram of a distributed interconnect bus apparatus 300 utilized to describe the embodiments of the invention.
  • the apparatus 300 comprises an upstream bus unit 305 that includes a first bridge 310 connected to a root component 320 and a second bridge 330 connected to an endpoint component 340 .
  • the upstream bus unit 305 and bridge 330 communicate over a link 370 which is the distributed medium used to transfer the data between the components 320 and 340 .
  • the medium may be, but is not limited to, a wireless medium, a copper cable, a fiber optic, and so on.
  • the interconnect bus apparatus 300 forms a distributed bus for transferring data between remote peripheral devices connected to endpoint component 340 and a motherboard connected to the root component 320 .
  • the transport protocol used to carry data over the link 370 is defined according to the type of the medium.
  • the transport protocol may be, but is not limited to, IEEE 802.11x (Wi-Fi), Ethernet, Infiniband, and the like.
  • the root component 320 may be either a PCIe root or a PCIe switch; the endpoint component 340 is a PCIe endpoint, and the bridges 310 and 330 are PCIe bridges.
  • the root component 320 and first bridge 310 communicate by means of the PCIe protocol, and the communication between the endpoint component 340 and the second bridge 330 is similar.
  • the communication over the link 370 is not compliant with the PCIe protocol.
  • a hot-plug process should be performed when the link 370 transits from an operational state to an idle state (up/down) and vice versa.
  • the root component 320 should receive a hot-plug indication on such events to inform the OS of the changes that occurred at the other end of the bus.
  • the OS correctly handles the hot-plug events to avoid crashes in the computing device and the software which is associated with it.
  • the second bridge 330 implements a configuration space 332 that includes the hot-plug registers (HPR).
  • a configuration space includes a setting for performing auto configuration of an endpoint connected to a slot of a bridge.
  • Each of bridges 310 and 330 maintains its configuration space that includes at least the HPR described above, i.e., the capabilities and status of the slot. It should be noted that the structure of the configuration space is similar to all bridges, but the content of which may be different.
  • the HPR includes Slot Control Register, Slot Status Register, and Slot Capabilities Register described above.
  • the configuration space 332 of the second bridge 330 is shadowed in the upstream bus unit 305 . That is, an exact copy of the configuration space 332 is copied and saved in the upstream bus unit 305 .
  • the shadow configuration space in the upstream bus unit 305 is labeled as 332-S. Whenever the content of the configuration space 332 -S and more specifically the status of the HPR is changed, a newer version of the shadow configuration space 332 -S is saved in the upstream bus unit 305 .
  • the shadow configuration space of 332-S is updated using a configuration write packet generated by the second bridge 330 . This provides the root component 320 , and hence the OS an access the most updated configuration space of a device connected to the endpoint component 340 .
  • the first bridge 310 also maintains its configuration space 312 .
  • the shadow configuration space 332 -S asserts a hot-plug interrupt indicating the endpoint component 340 has been removed. Further, the root component 320 updates the HPR in configuration space 332 -S on the status of the hot-plug events.
  • the OS executed over the CPU accesses the HPR to read the hot-plug events and deallocates resources of a device connected to the endpoint component 340 . For example, the values of the “presence detect status” and “presence detect changed” in the Slot Status Register is read.
  • the OS can read status information from the shadowed configuration space 332 -S, actions related to a card removal can be performed without any errors. Further, the OS always has a complete and updated status of the distributed PCIe bus. Without having the shadow configuration space 332 -S, the OS would have tried accessing to the second bridge 330 to write/read to the configuration space. However, as the link 370 is idle such information would not be accessible. This would result in an OS error and a crash of the computing device.
  • the upstream bus unit 305 copies the shadow configuration space 332 -S to the bridge 330 , updates the HPR in the configuration space 312 of the first bridge 310 and the shadow configuration space 332 -S.
  • the shadow configuration space 332 -S asserts a hot-plug interrupt to the OS. Specifically, a signal is transferred from the configuration space 332 -S to the root component 320 through the upstream bus unit 305 . It should be appreciated that copying the shadow configuration space 332 -S provides coherency between the two bridges and allows the OS to resume communication with the endpoint component 340 without the need to reconfigure the fields of the configuration space 332 of the second bridge 330 .
  • FIG. 4 shows an exemplary and non-limiting flowchart 400 illustrating the process of a hot-plug removal in a distributed PCIe bus in accordance with an embodiment of the invention.
  • a hot-plug removal is performed when the data cannot be transferred over the link of the distributed medium (e.g., link 370 ).
  • a second bridge e.g., bridge 330
  • the configuration space of the second bridge is shadowed to an upstream bus unit 305 connected to the root component 320 .
  • the configuration space from the second bridge is copied to the upstream bus unit 305 forming a shadow configuration at the upstream bus unit 305 and any subsequent changes are written to the shadow configuration space.
  • the configuration space includes HPR that provide at least the bridge's slot status and capabilities.
  • a check is made to determine if data can be transferred over the link, i.e., if the link is available. In an embodiment of the invention, this check is performed by the root component. If S 420 results with an affirmative answer, execution returns to S 410 ; otherwise, execution continues with S 430 , where a hot-plug interrupt is asserted by the shadow configuration space 332 -S. The interrupt indicates a hot card removal event.
  • the HPR in the shadow configuration space 332 -S is updated with the status of the hot-plug event.
  • the OS performs a hot-plug removal process during which, the OS reads and writes to the shadow configuration space 332 -S.
  • a hot-plug process performed by Windows based OS includes, in part, reading the hot-plug status bits from the Slot Status Register, requesting a plug-and-play system to eject the device connected to the endpoint, querying drivers for functions of the device, unloading the drivers of the device, writing to the shadow configuration space to turn off the device, and de-allocating resources used by driver(s).
  • FIG. 5 shows an exemplary and non-limiting flowchart 500 illustrating the hot-plug insertion method in a distributed PCIe bus in accordance with an embodiment of the invention.
  • the hot-plug insertion process is initiated when the data can be transferred over the link of the distributed medium (e.g., link 370 ), and the link is established.
  • the second bridge 330 and the endpoint 340 connected thereon are reset.
  • execution waits for the initialization of the PCIe PHY and link layers of the second bridge and endpoint.
  • the shadow configuration space 332 -S is copied from the upstream bus unit 305 connected to the root to the second bridge 330 .
  • each bridge updates the HPR to represent a hot-plug insertion event.
  • a hot-plug interrupt is asserted by the shadow configuration space 332 -S informing the OS of the hot-plug event.
  • the bridges 310 and 320 wait for the OS to complete the handling of the interrupt.
  • the OS performs a hot-plug insertion process during which it reads and writes to the configuration space of the second bridge (i.e., to a recent copy of the shadow configuration space).
  • a hot-plug insertion process in a Windows based OS includes, in part, reading hot-plug status bits from the Slot Status Register to determine the type of the hot-plug event, enumerating the PCIe bus to include the endpoint, reading from the configuration space 332 of the second bridge 330 in order to identify the device connected to the endpoint and perform the proper initialization actions (e.g., memory allocation, driver loading, etc.), writing to configuration space at the second bridge to turn on the device, and asserting a message that communication with the device connected to the endpoint can start.
  • initialization actions e.g., memory allocation, driver loading, etc.
  • the ability to provide an updated copy of the configuration space at the second bridge allows immediately establishing the distributed PCIe bus. Thus, there is no need to re-configure the configuration space at the second bridge according to the device specification. It should be noted that as the process 500 is performed when the distributed link backs up, it is assumed that the device is still connected to the endpoint.
  • the various embodiments disclosed herein can be implemented as hardware, firmware, software or any combination thereof.
  • the software is preferably implemented as an application program tangibly embodied on a program storage unit, a non-transitory computer readable medium, or a non-transitory machine-readable storage medium that can be in a form of a digital circuit, an analogy circuit, a magnetic medium, or combination thereof.
  • the application program may be uploaded to, and executed by, a machine comprising any suitable architecture.
  • the machine is implemented on a computer platform having hardware such as one or more central processing units (“CPUs”), a memory, and input/output interfaces.
  • CPUs central processing units
  • the computer platform may also include an operating system and microinstruction code.
  • a non-transitory computer readable medium is any computer readable medium except for a transitory propagating signal.

Abstract

A wireless communication system comprises a root component connected in a host device and directly coupled to an upstream bus unit, wherein the upstream bus unit is configured to maintain a first configuration space and a copy of a second configuration space, the first configuration space bridge includes at least hot-plug registers specifying at least capabilities and status of a slot of the upstream bus unit; and at least one endpoint component connected to at least one peripheral device and directly coupled to a downstream bus unit that communicates with the host bridge over a distributed link established over a distributed peripheral component interconnect express (PCIe) bus, wherein the downstream bus unit is configured to maintain the second configuration space; the second configuration space includes at least hot-plug registers specifying at least capabilities and status of a slot of the downstream bus unit.

Description

    CROSS-REFERENCE TO RELATED APPLICATIONS
  • This application is a continuation of a U.S. patent application Ser. No. 12/887,833 filed on Sep. 22, 2010, now allowed as U.S. Pat. No. 8,443,126. The contents of which are herein incorporated by reference.
  • TECHNICAL FIELD
  • The present invention generally relates to hot-plug processes, and more particularly, for enabling a hot-plug process in a distributed interconnect bus.
  • BACKGROUND
  • Peripheral Component Interconnect Express (PCI Express or PCIe) is a high performance, generic and scalable system interconnect for a wide variety of applications ranging from personal computers to embedded applications. PCIe implements a serial, full duplex, multi-lane, point-to-point interconnect, packet-based, and switch based technology. Current versions of PCIe buses allow for a transfer rate of 2.5 Giga bit per second (Gbps) or 5 Gbps, per lane, with up to 32 lanes. The PCIe bus protocol communication is encapsulated in packets. The packetizing and depacketizing data and status-message traffic is handled by the transaction layer of a PCIe port.
  • PCIe is used as a motherboard-level interconnect and an expansion board interface for add-in cards. For example, as illustrated in FIG. 1, a PCIe bus 100 interconnects the card 110 to the motherboard 120 and further connects expansion cards 130 and 140 through a host 160. The host 160 is connected to the motherboard 120. Thus, the PCIe bus 100 allows connectivity between the various cards to a CPU sub system 170 of the computing device. An expansion card is typically inserted into a slot. Usually, the host and/or the motherboard are referred to as PCIe roots and the cards are PCIe endpoints. An internal memory 180 is also coupled to the motherboard 120.
  • As illustrated in FIG. 2, the PCIe is a layered protocol bus, consisting of a transaction layer 210, a data link layer 220, and a physical layer 230. The PCIe implements split transactions, i.e., transactions with request and response separated by time, allowing the link to carry other traffic while the target device gathers data for the response. With this aim, the primary function of the transaction layer 210 is to assemble and disassemble transaction layer packets (TLPs). TLPs are used to carry transactions, where each TLP has a unique identifier that enables a response directed at the originator. The data link layer 220 acts as an intermediate between the transaction layer 210 and the physical layer 230 and provides a reliable mechanism for exchanging TLPs. The data link layer 220 implements error checking (known as “LCRC”) and retransmission mechanisms. LCRC and sequencing are applied on received TLPs and if an error is detected, a data link retry is activated. The physical layer 230 consists of an electrical sub-layer 234 and logical sub-layer 232. The logical sub-layer 232 is a transmitter and receiver pair implementing symbol mapping, serialization, and de-serialization of data. At the electrical sub-layer 234, each lane utilizes two unidirectional low-voltage differential signaling (LVDS) pairs for transmitting and receiving symbols from the logical sub-block 232.
  • Although the cards are physically connected to the motherboard, the PCIe bus protocol supports a hot-plug process, i.e., replacing system components without shutting down the power. This feature is highly important in blade servers where cards are frequently removed and inserted without powering on/off the server. A hot-plug process is supported in a current implementation of the PCIe buses and controllers. The PCIe standard defines a Slot Capabilities Register, Slot Control Register, and Slot Status Register to support the hot-plug process. These registers and the standard hot-plug process are described in detail in the PCI Express™ base Specification reversion 1.0a, sections 6.7, 7.8.9, 7.8.10, and 7.8.11 published on Apr. 15, 2003, by the PCI-SIG.
  • Generally, the Slot Capabilities Register identifies specific capabilities of a PCIe slot. With regard to a hot-plug, the Slot Capabilities Register includes several bits, two of which are: Hot-Plug Surprise bit that indicates that a card in a designated slot can be removed without any prior notification and Hot-Plug Capable bit that indicates that a designated slot is capable of supporting hot-plug operations. The Slot Control Register includes bits, that when set, define if a hot-plug interrupt can be asserted, e.g., if a power fault or a presence of card in the slot is detected. The Slot Status Register provides information about slot specific parameters, e.g., if a power fault or a presence of the card is detected. These registers will be referred to hereinafter as “Hot-Plug Registers” or “HP R”.
  • The hot-plug operation as currently implemented includes generating an interrupt when the slot status changes, i.e., from connected to disconnected and vice versa. The operating system (OS) captures the interrupt and allocates/reallocates resources to the inserted/removed device. Typically, when a card is inserted the OS enumerates the card in the order it appears on the PCIe bus.
  • Another type of interconnect bus that recently has been developed is a distributed interconnect bus, for example, a distributed PCIe bus. A distributed interconnect bus connects the root to endpoints over a distributed medium, e.g., a wireless medium, a computer network, and the like. The distributed interconnect bus includes two bridges that implement the PCIe protocol. A first bridge is coupled to the root and a second bridge is connected to an endpoint. The first and second bridge communicate over the distributed medium. An example of a distributed bus can be found in US Patent Application Publication No. 2009/0024782, entitled “Distributed Interconnect Bus Apparatus,” assigned to the common assignee, and incorporated herein by reference in its entirety merely for the useful understanding of the background of the invention.
  • Due to the physical nature of the distributed medium, the connectivity between the endpoints and the root is unreliable. For example, the wireless link may frequently be idle for a short period of time, and then operational again. Such an event may be treated as a hot-plug event (i.e., a card is removed and inserted). However, the above-referenced standard defines the hot-plug process in a standard PCIe bus where the root and endpoints are physically coupled to the bus, and the connectivity medium is entirely integrated in the computing device (e.g., server or PC). There is no a solution in the related art that provides a hot-plug process in computing systems that include distributed interconnect buses. Data transfers between the root and endpoint(s) are performed by encapsulating the TLPs in data structures compliant with the distributed medium. Further, the signaling definitions and protocol of a standard PCIe do not apply for communication over the distributed medium. Thus, if a bridge coupled to the endpoint generates a hot-plug interrupt signal, the signal cannot be transferred to the root (which informs the OS).
  • Therefore, it would be advantageous to provide a solution to support a hot-plug process in distributed interconnect buses.
  • SUMMARY
  • Certain embodiments disclosed herein include a method for performing a hot-plug removal process in a distributed peripheral component interconnect express (PCIe) bus. The method comprises receiving a hot-plug interrupt asserted by a shadow configuration space when a distributed link established over the distributed PCIe is unavailable, wherein the shadow configuration space is a copy of a configuration space of at least one endpoint component wirelessly connected to a host device over the distributed PCIe; reading a hot-plug status from the shadow configuration space; writing to the shadow configuration space to turn off at least one peripheral device connected to the at least one endpoint component; and de-allocating resources allocated to a driver of the at least one peripheral.
  • Certain embodiments disclosed herein also include a method for performing a hot-plug insertion process in a distributed peripheral component interconnect express (PCIe) bus. The method comprises receiving a hot-plug interrupt asserted by a shadow configuration space when a distributed link established over the distributed PCIe is available, the hot-plug interrupt informing on detection of a hot-plug insertion event; reading a hot-plug status from a configuration space of at least one endpoint component wirelessly connected to a host device over the distributed PCIe, wherein the configuration space is a copy of the shadow configuration space updated to designate the hot-plug insertion event; writing to the configuration space to turn on at least one peripheral device connected to the at least one endpoint component; and asserting a message indicating that the host device and the at least one peripheral can communicate over the distributed PCIe bus.
  • Certain embodiments disclosed herein also include a wireless communication system. The system comprises a root component connected in a host device and directly coupled to an upstream bus unit, wherein the upstream bus unit is configured to maintain a first configuration space and a copy of a second configuration space, the first configuration space bridge includes at least hot-plug registers specifying at least capabilities and status of a slot of the upstream bus unit; and at least one endpoint component connected to at least one peripheral device and directly coupled to a downstream bus unit that communicates with the host bridge over a distributed link established over a distributed peripheral component interconnect express (PCIe) bus, wherein the downstream bus unit is configured to maintain the second configuration space; the second configuration space includes at least hot-plug registers specifying at least capabilities and status of a slot of the downstream bus unit.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The subject matter that is regarded as the invention is particularly pointed out and distinctly claimed in the claims at the conclusion of the specification. The foregoing and other objects, features, and advantages of the invention will be apparent from the following detailed description taken in conjunction with the accompanying drawings.
  • FIG. 1 is a diagram illustrating a PCIe bus connectivity;
  • FIG. 2 is a schematic diagram illustrating the operation of a PCIe protocol;
  • FIG. 3 is a block diagram of a distributed interconnect bus apparatus utilized to describe the embodiments of the invention;
  • FIG. 4 is a flowchart illustrating a hot-plug removal method in a distributed PCIe bus in accordance with an embodiment of the invention; and
  • FIG. 5 a flowchart illustrating a hot-plug insertion method in a distributed PCIe bus in accordance with an embodiment of the invention.
  • DETAILED DESCRIPTION
  • The embodiments disclosed by the invention are only examples of the many possible advantageous uses and implementations of the innovative teachings presented herein. In general, statements made in the specification of the present application do not necessarily limit any of the various claimed inventions. Moreover, some statements may apply to some inventive features but not to others. In general, unless otherwise indicated, singular elements may be in plural and vice versa with no loss of generality. In the drawings, like numerals refer to like parts through several views.
  • FIG. 3 shows a non-limiting and exemplary diagram of a distributed interconnect bus apparatus 300 utilized to describe the embodiments of the invention. The apparatus 300 comprises an upstream bus unit 305 that includes a first bridge 310 connected to a root component 320 and a second bridge 330 connected to an endpoint component 340. The upstream bus unit 305 and bridge 330 communicate over a link 370 which is the distributed medium used to transfer the data between the components 320 and 340. The medium may be, but is not limited to, a wireless medium, a copper cable, a fiber optic, and so on.
  • The interconnect bus apparatus 300 forms a distributed bus for transferring data between remote peripheral devices connected to endpoint component 340 and a motherboard connected to the root component 320. The transport protocol used to carry data over the link 370 is defined according to the type of the medium. For example, the transport protocol may be, but is not limited to, IEEE 802.11x (Wi-Fi), Ethernet, Infiniband, and the like.
  • In accordance with an embodiment of the invention, the root component 320 may be either a PCIe root or a PCIe switch; the endpoint component 340 is a PCIe endpoint, and the bridges 310 and 330 are PCIe bridges. Thus, according to this embodiment the root component 320 and first bridge 310 communicate by means of the PCIe protocol, and the communication between the endpoint component 340 and the second bridge 330 is similar. However, as mentioned above the communication over the link 370 is not compliant with the PCIe protocol.
  • In accordance with certain disclosed embodiments, a hot-plug process should be performed when the link 370 transits from an operational state to an idle state (up/down) and vice versa. The root component 320 should receive a hot-plug indication on such events to inform the OS of the changes that occurred at the other end of the bus. The OS correctly handles the hot-plug events to avoid crashes in the computing device and the software which is associated with it.
  • The second bridge 330 implements a configuration space 332 that includes the hot-plug registers (HPR). A configuration space includes a setting for performing auto configuration of an endpoint connected to a slot of a bridge. Each of bridges 310 and 330 maintains its configuration space that includes at least the HPR described above, i.e., the capabilities and status of the slot. It should be noted that the structure of the configuration space is similar to all bridges, but the content of which may be different. In an embodiment of the invention, the HPR includes Slot Control Register, Slot Status Register, and Slot Capabilities Register described above.
  • In accordance with an embodiment of the invention, the configuration space 332 of the second bridge 330 is shadowed in the upstream bus unit 305. That is, an exact copy of the configuration space 332 is copied and saved in the upstream bus unit 305. The shadow configuration space in the upstream bus unit 305 is labeled as 332-S. Whenever the content of the configuration space 332-S and more specifically the status of the HPR is changed, a newer version of the shadow configuration space 332-S is saved in the upstream bus unit 305. In an embodiment of the invention, the shadow configuration space of 332-S is updated using a configuration write packet generated by the second bridge 330. This provides the root component 320, and hence the OS an access the most updated configuration space of a device connected to the endpoint component 340. The first bridge 310 also maintains its configuration space 312.
  • When the link 370 becomes unavailable or unreliable, and transmission over the link 370 (for example, due to high bit error rate) cannot be guaranteed, the shadow configuration space 332-S asserts a hot-plug interrupt indicating the endpoint component 340 has been removed. Further, the root component 320 updates the HPR in configuration space 332-S on the status of the hot-plug events. The OS executed over the CPU accesses the HPR to read the hot-plug events and deallocates resources of a device connected to the endpoint component 340. For example, the values of the “presence detect status” and “presence detect changed” in the Slot Status Register is read.
  • It should be appreciated that as the OS can read status information from the shadowed configuration space 332-S, actions related to a card removal can be performed without any errors. Further, the OS always has a complete and updated status of the distributed PCIe bus. Without having the shadow configuration space 332-S, the OS would have tried accessing to the second bridge 330 to write/read to the configuration space. However, as the link 370 is idle such information would not be accessible. This would result in an OS error and a crash of the computing device.
  • When the link 370 is reconnected and the PCIe connection is reestablished, it is considered a hot-plug event of a hot card insertion. In such an event, the upstream bus unit 305 copies the shadow configuration space 332-S to the bridge 330, updates the HPR in the configuration space 312 of the first bridge 310 and the shadow configuration space 332-S. In addition, the shadow configuration space 332-S asserts a hot-plug interrupt to the OS. Specifically, a signal is transferred from the configuration space 332-S to the root component 320 through the upstream bus unit 305. It should be appreciated that copying the shadow configuration space 332-S provides coherency between the two bridges and allows the OS to resume communication with the endpoint component 340 without the need to reconfigure the fields of the configuration space 332 of the second bridge 330.
  • It should be noted that for the sake of simplicity and without limiting the scope of the invention, the operation of the hot-plug process has been described with a reference to an embodiment where only one endpoint component is connected to the second bridge 330. The teachings of the invention are similar when multiple endpoint components are connected. In such an embodiment, the configuration space respective of each bridge that supports each endpoint component is shadowed to the shadow configuration space 332-S.
  • FIG. 4 shows an exemplary and non-limiting flowchart 400 illustrating the process of a hot-plug removal in a distributed PCIe bus in accordance with an embodiment of the invention. A hot-plug removal is performed when the data cannot be transferred over the link of the distributed medium (e.g., link 370). At S410, as long as the link is available, a second bridge (e.g., bridge 330) is connected to an endpoint of the distributed PCIe, and the configuration space of the second bridge is shadowed to an upstream bus unit 305 connected to the root component 320. That is, the configuration space from the second bridge is copied to the upstream bus unit 305 forming a shadow configuration at the upstream bus unit 305 and any subsequent changes are written to the shadow configuration space. As mentioned above, the configuration space includes HPR that provide at least the bridge's slot status and capabilities.
  • At S420, a check is made to determine if data can be transferred over the link, i.e., if the link is available. In an embodiment of the invention, this check is performed by the root component. If S420 results with an affirmative answer, execution returns to S410; otherwise, execution continues with S430, where a hot-plug interrupt is asserted by the shadow configuration space 332-S. The interrupt indicates a hot card removal event. At S440, the HPR in the shadow configuration space 332-S is updated with the status of the hot-plug event. At S450, the OS performs a hot-plug removal process during which, the OS reads and writes to the shadow configuration space 332-S. The process executed by the OS is based on the type of the OS. For example, a hot-plug process performed by Windows based OS includes, in part, reading the hot-plug status bits from the Slot Status Register, requesting a plug-and-play system to eject the device connected to the endpoint, querying drivers for functions of the device, unloading the drivers of the device, writing to the shadow configuration space to turn off the device, and de-allocating resources used by driver(s).
  • As can be understood from the above example, if the OS cannot access the configuration space of the second bridge, a system error would be generated. Thus, providing an updated shadow configuration space allows performing a hot-plug removal in a distributed PCIe bus.
  • FIG. 5 shows an exemplary and non-limiting flowchart 500 illustrating the hot-plug insertion method in a distributed PCIe bus in accordance with an embodiment of the invention. The hot-plug insertion process is initiated when the data can be transferred over the link of the distributed medium (e.g., link 370), and the link is established. At S510, upon establishment of the distributed link, the second bridge 330 and the endpoint 340 connected thereon are reset. Then, at S520, execution waits for the initialization of the PCIe PHY and link layers of the second bridge and endpoint.
  • At S530, the shadow configuration space 332-S is copied from the upstream bus unit 305 connected to the root to the second bridge 330. At S540, each bridge updates the HPR to represent a hot-plug insertion event. At S550, a hot-plug interrupt is asserted by the shadow configuration space 332-S informing the OS of the hot-plug event. To start the communication over the distributed PCIe bus, the bridges 310 and 320 wait for the OS to complete the handling of the interrupt. At S560, the OS performs a hot-plug insertion process during which it reads and writes to the configuration space of the second bridge (i.e., to a recent copy of the shadow configuration space). The process executed by the OS is based on the type of the OS. For example, a hot-plug insertion process in a Windows based OS includes, in part, reading hot-plug status bits from the Slot Status Register to determine the type of the hot-plug event, enumerating the PCIe bus to include the endpoint, reading from the configuration space 332 of the second bridge 330 in order to identify the device connected to the endpoint and perform the proper initialization actions (e.g., memory allocation, driver loading, etc.), writing to configuration space at the second bridge to turn on the device, and asserting a message that communication with the device connected to the endpoint can start.
  • As can be understood from above example, the ability to provide an updated copy of the configuration space at the second bridge allows immediately establishing the distributed PCIe bus. Thus, there is no need to re-configure the configuration space at the second bridge according to the device specification. It should be noted that as the process 500 is performed when the distributed link backs up, it is assumed that the device is still connected to the endpoint.
  • The various embodiments disclosed herein can be implemented as hardware, firmware, software or any combination thereof. Moreover, the software is preferably implemented as an application program tangibly embodied on a program storage unit, a non-transitory computer readable medium, or a non-transitory machine-readable storage medium that can be in a form of a digital circuit, an analogy circuit, a magnetic medium, or combination thereof. The application program may be uploaded to, and executed by, a machine comprising any suitable architecture. Preferably, the machine is implemented on a computer platform having hardware such as one or more central processing units (“CPUs”), a memory, and input/output interfaces. The computer platform may also include an operating system and microinstruction code. The various processes and functions described herein may be either part of the microinstruction code or part of the application program, or any combination thereof, which may be executed by a CPU, whether or not such computer or processor is explicitly shown. In addition, various other peripheral units may be connected to the computer platform such as an additional data storage unit and a printing unit. Furthermore, a non-transitory computer readable medium is any computer readable medium except for a transitory propagating signal.
  • The foregoing detailed description has set forth a few of a few of the many forms that different embodiments of the invention can take. It is intended that the foregoing detailed description be understood as an illustration of selected forms that the invention can take and not as a limitation to the definition of the invention. It is only the claims, including all equivalents that are intended to define the scope of this invention.

Claims (22)

What is claimed is:
1. A method for performing a hot-plug removal process in a distributed peripheral component interconnect express (PCIe) bus, comprising:
receiving a hot-plug interrupt asserted by a shadow configuration space when a distributed link established over the distributed PCIe is unavailable, wherein the shadow configuration space is a copy of a configuration space of at least one endpoint component wirelessly connected to a host device over the distributed PCIe;
reading a hot-plug status from the shadow configuration space;
writing to the shadow configuration space to turn off at least one peripheral device connected to the at least one endpoint component; and
de-allocating resources allocated to a driver of the at least one peripheral.
2. The method of claim 1, wherein the shadow configuration space is maintained in an upstream bus unit connected to a root component of the host device, wherein the configuration space is maintained in a downstream bus unit coupled to the at least one endpoint component, the upstream bus unit and the downstream bus unit communicate over the distributed link.
3. The method of claim 1, wherein the configuration space includes at least hot-plug registers (HPR) specifying at least capabilities and status of at least one the downstream bus unit and the at least one endpoint component.
4. The method of claim 3, wherein the hot-plug registers include at least a slot control register, a slot status register, and a slot capabilities register.
5. The method of claim 3, wherein writing to the shadow configuration space includes writing to the hot-plug registers using a configuration write packet.
6. The method of claim 2, wherein a new version of the configuration space is copied to the upstream bus unit upon any change in the configuration space.
7. A non-transitory computer readable medium having stored thereon instructions for causing one or more processing units to execute the method of claim 1.
8. A method for performing a hot-plug insertion process in a distributed peripheral component interconnect express (PCIe) bus, comprising:
receiving a hot-plug interrupt asserted by a shadow configuration space when a distributed link established over the distributed PCIe is available, the hot-plug interrupt informing on detection of a hot-plug insertion event;
reading a hot-plug status from a configuration space of at least one endpoint component wirelessly connected to a host device over the distributed PCIe, wherein the configuration space is a copy of the shadow configuration space updated to designate the hot-plug insertion event;
writing to the configuration space to turn on at least one peripheral device connected to the at least one endpoint component; and
asserting a message indicating that the host device and the at least one peripheral can communicate over the distributed PCIe bus.
9. The method of claim 8, further comprising:
enumerating the distributed PCIe bus to include the at least one endpoint component.
10. The method of claim 8, wherein the shadow configuration space is maintained in an upstream bus unit connected to a root component of the host device, wherein the configuration space is maintained in a downstream bus unit coupled to the at least one endpoint component, the upstream bus unit and the downstream bus unit communicate over the distributed link.
11. The method of claim 8, wherein the configuration space includes at least hot-plug registers (HPR) specifying at least capabilities and status of at least one of the downstream bus unit and the at least one endpoint component.
12. The method of claim 3, wherein the hot-plug registers include at least a slot control register, a slot status register, and a slot capabilities register.
13. The method of claim 8, wherein writing to the configuration space includes writing to the hot-plug registers using a configuration write packet.
14. A non-transitory computer readable medium having stored thereon instructions for causing one or more processing units to execute the method of claim 8.
15. A wireless communication system, comprising:
a root component connected in a host device and directly coupled to an upstream bus unit, wherein the upstream bus unit is configured to maintain a first configuration space and a copy of a second configuration space, the first configuration space bridge includes at least hot-plug registers specifying at least capabilities and status of a slot of the upstream bus unit; and
at least one endpoint component connected to at least one peripheral device and directly coupled to a downstream bus unit that communicates with the host bridge over a distributed link established over a distributed peripheral component interconnect express (PCIe) bus, wherein the downstream bus unit is configured to maintain the second configuration space; the second configuration space includes at least hot-plug registers specifying at least capabilities and status of a slot of the downstream bus unit.
16. The wireless communication system of claim 15, wherein when the distributed link status changes from available to unavailable a hot-plug removal event is triggered.
17. The wireless communication system of claim 16, wherein the second configuration space is copied to the upstream bus unit when the link is available.
18. The wireless communication system of claim 17, wherein the second configuration space in the downstream bus unit is updated with the hot-plug removal event.
19. The wireless communication system of claim 18, wherein an operating system of the host device accesses the copy of the second configuration space in the upstream bus unit during a hot-plug removal process performed by the operating system.
20. The wireless communication system of claim 15, wherein when the distributed link status changes from unavailable to available a hot-plug insertion event.
21. The wireless communication system of claim 20, wherein the copy of the second configuration space is copied from the upstream bus unit to the downstream bus unit.
22. The wireless communication system of claim 21, wherein the operating system accesses the second configuration space in the downstream bus unit during a hot-plug insertion process performed by the operating system.
US13/891,861 2010-09-22 2013-05-10 Hot plug process in a distributed interconnect bus Abandoned US20130246680A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/891,861 US20130246680A1 (en) 2010-09-22 2013-05-10 Hot plug process in a distributed interconnect bus

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/887,833 US8443126B2 (en) 2010-09-22 2010-09-22 Hot plug process in a distributed interconnect bus
US13/891,861 US20130246680A1 (en) 2010-09-22 2013-05-10 Hot plug process in a distributed interconnect bus

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US12/887,833 Continuation US8443126B2 (en) 2010-09-22 2010-09-22 Hot plug process in a distributed interconnect bus

Publications (1)

Publication Number Publication Date
US20130246680A1 true US20130246680A1 (en) 2013-09-19

Family

ID=45818755

Family Applications (2)

Application Number Title Priority Date Filing Date
US12/887,833 Active 2031-05-07 US8443126B2 (en) 2010-09-22 2010-09-22 Hot plug process in a distributed interconnect bus
US13/891,861 Abandoned US20130246680A1 (en) 2010-09-22 2013-05-10 Hot plug process in a distributed interconnect bus

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US12/887,833 Active 2031-05-07 US8443126B2 (en) 2010-09-22 2010-09-22 Hot plug process in a distributed interconnect bus

Country Status (1)

Country Link
US (2) US8443126B2 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017172195A1 (en) * 2016-04-01 2017-10-05 Intel Corporation Method, apparatus, and system for plugin mechanism of computer extension bus
CN107678994A (en) * 2017-09-15 2018-02-09 华为技术有限公司 PCIe device hot drawing method and device
US10331605B2 (en) 2016-08-30 2019-06-25 International Business Machines Corporation Dynamic re-allocation of signal lanes
US20220276976A1 (en) * 2013-06-28 2022-09-01 Futurewei Technologies, Inc. System and Method for Extended Peripheral Component Interconnect Express Fabrics

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6718415B1 (en) 1999-05-14 2004-04-06 Acqis Technology, Inc. Computer system and method including console housing multiple computer modules having independent processing units, mass storage devices, and graphics controllers
US6643777B1 (en) 1999-05-14 2003-11-04 Acquis Technology, Inc. Data security method and device for computer modules
US8671153B1 (en) * 2010-08-20 2014-03-11 Acqis Llc Low cost, high performance and high data throughput server blade
US8782463B1 (en) 2011-10-27 2014-07-15 Seagate Technology Llc Restoring a failed storage volume after removal of a storage device from an array
US9665521B2 (en) 2012-05-18 2017-05-30 Dell Products, Lp System and method for providing a processing node with input/output functionality by an I/O complex switch
JP6089835B2 (en) * 2013-03-19 2017-03-08 富士通株式会社 Information processing apparatus and control method
WO2014186938A1 (en) 2013-05-20 2014-11-27 华为技术有限公司 Computer system, access method and apparatus for peripheral component interconnect express endpoint devices
US9582366B2 (en) 2014-11-21 2017-02-28 International Business Machines Corporation Detecting and sparing of optical PCIE cable channel attached IO drawer
US9697155B2 (en) 2014-11-21 2017-07-04 International Business Machines Corporation Detecting and configuring of external IO enclosure
US10229085B2 (en) 2015-01-23 2019-03-12 Hewlett Packard Enterprise Development Lp Fibre channel hardware card port assignment and management method for port names
WO2017007388A1 (en) * 2015-07-09 2017-01-12 Telefonaktiebolaget Lm Ericsson (Publ) Method and host node for configuring a remote node and a host node
US10212754B2 (en) 2015-08-12 2019-02-19 Nxp Usa, Inc. System and method for radio base station device hot reconnection (hot plugging)
US10158525B2 (en) 2015-08-12 2018-12-18 Nxp Usa, Inc. System and method for radio base station device hot switching and hot swapping
US10394586B2 (en) * 2015-08-13 2019-08-27 Red Hat Israel, Ltd. Using capability indicators to indicate support for guest driven surprise removal of virtual PCI devices
US10122386B2 (en) 2015-12-15 2018-11-06 Nxp Usa, Inc. System and method for on-the-fly modification of the properties on an active antenna carrier in radio base station communication operation
US9979600B2 (en) 2015-12-15 2018-05-22 Nxp Usa, Inc. System and method for automatic load adaptive antenna carrier bandwidth dynamic reconfiguration in radio base station system
US10178641B2 (en) 2016-01-04 2019-01-08 Nxp Usa, Inc. System and method for automatic delay compensation in a radio base station system
CN105701051B (en) * 2016-01-15 2019-10-15 华为技术有限公司 A kind of hot-plug method, host controller, host and PCIe bridge device
CN107038137B (en) 2016-02-04 2020-04-28 华为技术有限公司 Hot-plug equipment and method
US10223318B2 (en) 2017-05-31 2019-03-05 Hewlett Packard Enterprise Development Lp Hot plugging peripheral connected interface express (PCIe) cards
US10254821B2 (en) * 2017-08-01 2019-04-09 Intel Corporation Managing surprise hot plug in low power state
US10853299B2 (en) * 2017-09-15 2020-12-01 Dell Products L.P. Hot-plugged PCIe device configuration system
CN108345566A (en) * 2018-01-31 2018-07-31 郑州云海信息技术有限公司 A kind of makeup of ponds PCIE is set and its design method
US10445279B1 (en) 2018-07-19 2019-10-15 Mellanox Technologies, Ltd. Automatic PCIe operating mode configuration
US10503682B1 (en) 2018-12-19 2019-12-10 Mellanox Technologies, Ltd. Accessing PCIe configuration data through network

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7058738B2 (en) * 2004-04-28 2006-06-06 Microsoft Corporation Configurable PCI express switch which allows multiple CPUs to be connected to multiple I/O devices
US7257659B2 (en) * 2003-12-31 2007-08-14 Intel Corporation Method for signaling PCI/PCI-X standard hot-plug controller (SHPC) command status
US7535254B1 (en) * 2007-05-14 2009-05-19 Xilinx, Inc. Reconfiguration of a hard macro via configuration registers
US7552242B2 (en) * 2004-12-03 2009-06-23 Intel Corporation Integrated circuit having processor and switch capabilities
US20090292854A1 (en) * 2008-05-22 2009-11-26 Khoo Ken Use of bond option to alternate between pci configuration space
US7689751B2 (en) * 2008-02-15 2010-03-30 Sun Microsystems, Inc. PCI-express system
US20100257400A1 (en) * 2009-03-18 2010-10-07 Colin Whitby-Strevens Network loop healing apparatus and methods
US8050290B2 (en) * 2007-05-16 2011-11-01 Wilocity, Ltd. Wireless peripheral interconnect bus
US8374157B2 (en) * 2007-02-12 2013-02-12 Wilocity, Ltd. Wireless docking station

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7447822B2 (en) 2005-12-12 2008-11-04 Inventec Corporation Hot-plug control system and method
US20070271404A1 (en) * 2006-05-16 2007-11-22 Sun Microsystems, Inc. Realtime multithreaded hot-plug control
TW200801952A (en) * 2006-06-02 2008-01-01 Via Tech Inc Method for setting up a peripheral component interconnect express (PCIE)
US7475178B2 (en) * 2006-08-18 2009-01-06 Sun Microsystems, Inc. Hot-plug link apparatus and method using a direction line to indicate presence of a hot-plug device
CN101211323B (en) * 2006-12-28 2011-06-22 联想(北京)有限公司 Hardware interruption processing method and processing unit
JP4429331B2 (en) * 2007-03-08 2010-03-10 エヌイーシーコンピュータテクノ株式会社 Mode setting method in hot plug of PCI device and system having PCI bus
US20080307143A1 (en) 2007-06-11 2008-12-11 Sunix Co., Ltd. Modularized (block) channel technology with expansion of different to output interfaces
US9075926B2 (en) 2007-07-19 2015-07-07 Qualcomm Incorporated Distributed interconnect bus apparatus
US7603500B2 (en) * 2007-08-10 2009-10-13 Dell Products L.P. System and method for allowing coexistence of multiple PCI managers in a PCI express system
JP5645014B2 (en) * 2008-05-28 2014-12-24 日本電気株式会社 I / O connection system, method and program
US20110072168A1 (en) * 2009-09-24 2011-03-24 Hongxiao Zhao Data transfer system with different operating modes
US20110145655A1 (en) * 2009-12-11 2011-06-16 Mike Erickson Input/output hub to input/output device communication

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7257659B2 (en) * 2003-12-31 2007-08-14 Intel Corporation Method for signaling PCI/PCI-X standard hot-plug controller (SHPC) command status
US7058738B2 (en) * 2004-04-28 2006-06-06 Microsoft Corporation Configurable PCI express switch which allows multiple CPUs to be connected to multiple I/O devices
US7552242B2 (en) * 2004-12-03 2009-06-23 Intel Corporation Integrated circuit having processor and switch capabilities
US8374157B2 (en) * 2007-02-12 2013-02-12 Wilocity, Ltd. Wireless docking station
US7535254B1 (en) * 2007-05-14 2009-05-19 Xilinx, Inc. Reconfiguration of a hard macro via configuration registers
US8050290B2 (en) * 2007-05-16 2011-11-01 Wilocity, Ltd. Wireless peripheral interconnect bus
US7689751B2 (en) * 2008-02-15 2010-03-30 Sun Microsystems, Inc. PCI-express system
US20090292854A1 (en) * 2008-05-22 2009-11-26 Khoo Ken Use of bond option to alternate between pci configuration space
US20100257400A1 (en) * 2009-03-18 2010-10-07 Colin Whitby-Strevens Network loop healing apparatus and methods

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220276976A1 (en) * 2013-06-28 2022-09-01 Futurewei Technologies, Inc. System and Method for Extended Peripheral Component Interconnect Express Fabrics
US11954058B2 (en) * 2013-06-28 2024-04-09 Futurewei Technologies, Inc. System and method for extended peripheral component interconnect express fabrics
WO2017172195A1 (en) * 2016-04-01 2017-10-05 Intel Corporation Method, apparatus, and system for plugin mechanism of computer extension bus
US9953001B2 (en) 2016-04-01 2018-04-24 Intel Corporation Method, apparatus, and system for plugin mechanism of computer extension bus
US10331605B2 (en) 2016-08-30 2019-06-25 International Business Machines Corporation Dynamic re-allocation of signal lanes
CN107678994A (en) * 2017-09-15 2018-02-09 华为技术有限公司 PCIe device hot drawing method and device

Also Published As

Publication number Publication date
US8443126B2 (en) 2013-05-14
US20120072633A1 (en) 2012-03-22

Similar Documents

Publication Publication Date Title
US8443126B2 (en) Hot plug process in a distributed interconnect bus
US7945721B1 (en) Flexible control and/or status register configuration
US8135873B2 (en) Information processing device for performing information exchange between a PCI express bus and a non-PCI express bus interface
CN106209695B (en) Providing low power physical units for load/store communication protocols
US9396152B2 (en) Device, system and method for communication with heterogenous physical layers
US7610431B1 (en) Configuration space compaction
US20140108697A1 (en) Controlling A Physical Link Of A First Protocol Using An Extended Capability Structure Of A Second Protocol
US7752376B1 (en) Flexible configuration space
US20080005311A1 (en) Disk initiated asynchronous event notification
Bhatt Creating a third generation I/O interconnect
JP4837659B2 (en) Bus controller for processing split transactions
US8291146B2 (en) System and method for accessing resources of a PCI express compliant device
KR102420530B1 (en) Alternative protocol selection
CN112639753B (en) Aggregated inband interruption
EP3722963B1 (en) System, apparatus and method for bulk register accesses in a processor
US10853289B2 (en) System, apparatus and method for hardware-based bi-directional communication via reliable high performance half-duplex link
US20150269109A1 (en) Method, apparatus and system for single-ended communication of transaction layer packets
WO2005060688A2 (en) Serial communication device configurable to operate in root mode or endpoint mode
WO2017160397A1 (en) A method, apparatus and system to send transactions without tracking
EP3087454A1 (en) Input output data alignment
US9639076B2 (en) Switch device, information processing device, and control method of information processing device
US11797468B2 (en) Peripheral component interconnect express device and computing system including the same
Verma et al. Pcie bus: A state-of-the-art-review
US7577877B2 (en) Mechanisms to prevent undesirable bus behavior
US20230315591A1 (en) PCIe DEVICE AND COMPUTING SYSTEM INCLUDING THE SAME

Legal Events

Date Code Title Description
AS Assignment

Owner name: QUALCOMM ATHEROS, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:WILOCITY LTD.;REEL/FRAME:033521/0593

Effective date: 20140707

Owner name: QUALCOMM INCORPORATED, CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:QUALCOMM ATHEROS, INC.;REEL/FRAME:033521/0834

Effective date: 20140801

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION