IP Library Granted Patent US 9,244,874
Granted Patent B2
US 9,244,874 · App. 13/918,685 · Granted Jan 26, 2016

Selectively transparent bridge for peripheral component interconnect express bus systems

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,244,874
App. No.
13/918,685
Granted
Jan 26, 2016
Kind
B2
Abstract

A selectively transparent bridge facilitates a PCI device presenting itself to the host as a PCI-to-PCI bridge but selectively hiding and isolating hardware from the host bus. PCI configuration may be achieved through the standard PCI Express configuration mechanisms, but instead of configuring devices directly, a configuration processor in the selectively transparent bridge may intercept the configuration packets from the host, and create a virtual configuration to alter how the bus topology appears to the host. Devices are selectively hidden and managed by the configuration processor, resulting in simplified complexity and bus depth. Since the selectively transparent bridge appears to the host as a transparent bridge, no special drivers or resource preallocations are required, although the selectively transparent bridge fully supports special drivers and/or resource preallocations. Devices located/connected downstream of the bridge may therefore function with unmodified drivers.

Claims (46)

1. A system comprising:

a PCIe (Peripheral Component Interconnect Express) subsystem comprising PCIe devices;

a host system; and

a bus extender coupling the host system to the PCIe subsystem, and configured to:

create a virtual bus topology corresponding to an actual bus topology of the PCIe subsystem;

selectively hide one or more devices of the PCIe devices from the host system by omitting the one or more devices from the virtual bus topology, resulting in the one or more devices being hidden from the host system, and remaining devices of the PCIe devices being visible to the host system;

make the virtual bus topology apparent to the host system during configuration of the PCIe devices;

intercept configuration packets generated by the host system based on the virtual bus topology for configuring the visible remaining devices; and

configure the selectively hidden one or more devices and the visible remaining devices according to the actual bus topology, and based at least partially on contents of the intercepted configuration packets.

2. The system of claim 1 , wherein the bus extender is further configured to manage the selectively hidden one or more devices.

3. The system of claim 1 , wherein the bus extender is further configured to generate and transmit to the PCIe devices downstream configuration packets based at least on the intercepted configuration packets to configure the PCIe devices.

4. The system of claim 1 , wherein the bus extender appears to the host system as a PCI-to-PCI bridge.

5. The system of claim 1 , wherein the host system is configured to generate the configuration packets according to PCI bus configuration mechanisms.

6. The system of claim 1 , wherein the bus extender is further configured to convert the virtual bus topology into the actual bus topology by translating target BDFs (bus, device, function), and performing additional tasks to program the selectively hidden one or more devices.

7. A configuration block for configuring a PCIe (Peripheral Component Interconnect Express) subsystem that comprises PCIe devices coupled to a host system, the configuration block comprising:

an interface for transmitting and receiving PCIe packets to and from the PCIe subsystem and the host system; and

a processing element configured to:

create a virtual bus topology corresponding to an actual bus topology of the PCIe subsystem;

selectively hide a subset of the PCIe devices from the host system by omitting the subset of the PCIe devices from the virtual bus topology, resulting in the subset of the PCIe devices being hidden from the host system, and remaining devices of the PCIe devices being visible to the host system;

make the virtual bus topology apparent to the host system during configuration of the PCIe devices;

intercept configuration packets generated by the host system based on the virtual bus topology for configuring the visible remaining devices; and

configure the selectively hidden subset of the PCIe devices and the visible remaining devices according to the actual bus topology, and based at least partially on contents of the intercepted configuration packets.

8. The configuration block of claim 7 , wherein the processing element is further configured to manage the selectively hidden subset of the PCIe devices.

9. The configuration block of claim 7 , wherein the processing element is further configured to generate and provide, to the interface, downstream configuration packets based at least partially on the intercepted configuration packets; and

wherein the interface is configured to transmit the generated downstream configuration packets to the PCIe subsystem to configure the PCIe devices.

10. The configuration block of claim 7 , wherein the configuration block is comprised in a bus extender that appears to the host system as a PCI-to-PCI bridge.

11. The configuration block of claim 7 , wherein the processing element is configured to convert the virtual bus topology into the actual bus topology by translating target BDFs (bus, device, function), and performing additional tasks to program the selectively hidden subset of the PCIe devices.

12. A method for configuring and operating PCIe (Peripheral Component Interconnect Express) devices comprised in a PCIe subsystem coupled to a host system, the method comprising:

creating a virtual bus topology corresponding to an actual bus topology of the PCIe subsystem;

selectively hiding a subset of the PCIe devices from the host system by not including in the virtual bus topology the subset of the PCIe devices, while including in the virtual bus topology remaining ones of the PCIe devices not included in the subset of the PCIe devices;

making the virtual bus topology apparent to the host system during configuration of the PCIe devices;

intercepting configuration packets transmitted by the host system to the remaining ones of the PCIe devices; and

configuring the PCIe devices according to the actual bus topology, and based at least partially on contents of the intercepted configuration packets.

13. The method of claim 12 , further comprising:

managing the selectively hidden subset of the PCIe devices by a local processing element separate from a primary processing element of the host system.

14. The method of claim 13 , further comprising relaying message type PCIe packets through the local processing element to provide a path for legacy interrupt messages.

15. The method of claim 12 , wherein said configuring the PCIe devices comprises:

generating downstream configuration packets based on the actual bus topology and at least partially based on the intercepted configuration packets; and

transmitting the downstream configuration packets to the PCIe devices.

16. The method of claim 12 , further comprising:

converting the virtual bus topology into the actual bus topology by translating target BDFs (bus, device, function); and

performing additional tasks to program the selectively hidden subset of the PCIe devices.

17. The method of claim 12 , further comprising:

generating, by the host, the configuration packets according to resource request information stored in a configuration space register.

18. The method of claim 17 , further comprising:

writing, by a local processing element separate from a primary processing element of the host system, the resource request information into the configuration space register.

Assignments (5)
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 057280/0028) Recorded Oct 13, 2023
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
To: NATIONAL INSTRUMENTS CORPORATION
Reel/Frame 065231/0466 →
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 052935/0001) Recorded Oct 13, 2023
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
To: NATIONAL INSTRUMENTS CORPORATION; PHASE MATRIX, INC.
Reel/Frame 065653/0463 →
SECURITY INTEREST Recorded Jun 18, 2021
From: NATIONAL INSTRUMENTS CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 057280/0028 →
SECURITY INTEREST Recorded Jun 14, 2020
From: NATIONAL INSTRUMENTS CORPORATION; PHASE MATRIX, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 052935/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 14, 2013
From: HEARN, JONATHAN W.; JONES, CRAIG S.; ROSS, ROBERT D.
To: NATIONAL INSTRUMENTS CORPORATION
Reel/Frame 030618/0858 →