IP Library Granted Patent US 7,945,721
Granted Patent B1
US 7,945,721 · App. 11/503,364 · Granted May 17, 2011

Flexible control and/or status register configuration

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 7,945,721
App. No.
11/503,364
Granted
May 17, 2011
Kind
B1
Abstract

A register access request for control and/or status operations from a link is detected using a hardware mechanism and is forwarded to a software-controlled entity for access to a virtual register for control and/or status operations. The software-controlled entity can provide virtual registers in memory associated with the software-controlled entity. The hardware mechanism can form part of an interconnect device and the software-controlled entity is external to the interconnect device.

Claims (54)

1. An apparatus separate from a physical device, comprising:

an interface configured to intercept traffic for the physical device; and

a hardware mechanism configured to:

extract from the traffic a packet that includes a register access request for control and/or status configuration operations for the physical device;

send other traffic to a physical output port which is coupled to the physical device; and

for the packet that is extracted:

use the packet and policy information for the hardware mechanism to determine whether the packet is to be processed by the hardware mechanism;

if the packet is to be processed by the hardware mechanism, forward the register access request to a software-controlled entity for access to a virtual configuration space register;

otherwise, if the packet is not to be processed by the hardware mechanism:

use the packet and the policy information to determine a destination identifier for the packet; and

send a forwarding packet that includes the packet and the destination identifier to a physical output port for the hardware mechanism.

2. The apparatus of claim 1 , wherein the software-controlled entity provides virtual registers in memory associated with the software-controlled entity.

3. The apparatus of claim 1 , wherein the hardware mechanism forms part of an interconnect device and the software-controlled entity is external to the interconnect device.

4. The apparatus of claim 1 , wherein the hardware mechanism is operable to forward the register access request to the software-controlled entity via an interface dedicated to the software-controlled entity.

5. The apparatus of claim 1 , wherein the hardware mechanism is operable to forward the register access request to the software-controlled entity via a link on which the register access request is received.

6. The apparatus of claim 1 , wherein the hardware mechanism is operable to forward the register access request to the software-controlled entity via a link other than the link on which the register access request is received.

7. The apparatus of claim 1 , wherein the hardware mechanism forms part of an interconnect device and the software-controlled entity is integral to the interconnect device.

8. The apparatus of claim 1 , wherein the software-controlled entity is a service processor.

9. The apparatus of claim 1 , wherein the software-controlled entity is a root complex.

10. The apparatus of claim 1 , wherein the hardware mechanism forms part of an interconnect device, and the software-controlled entity forms part of a further interconnect device.

11. The apparatus of claim 1 , wherein the hardware mechanism forms part of a switch.

12. The apparatus of claim 1 , wherein the register access request is a CSR (Configuration Space Register) access request.

13. The apparatus of claim 12 , wherein the register access request is a PCI (Peripheral Component Interconnect) Express compatible CSR access request.

14. The apparatus of claim 1 , wherein the software-controlled entity implements virtual CSR (Configuration Space Register) registers.

15. The apparatus of claim 1 , wherein the traffic for the physical device is traffic from a first processor, wherein the first processor is separate from the apparatus;

wherein the hardware mechanism includes the software-controlled entity, wherein the software-controlled entity includes a second processor.

16. The apparatus of claim 1 , wherein forwarding the register access request to the software-controlled entity involves sending the packet to a remote entity via an out of bounds (OOB) channel.

17. The apparatus of claim 1 , wherein forwarding the register access request to the software-controlled entity involves:

if the register access request includes a write operation that involves updating a physical device state:

generating a request packet for the physical device;

sending the request packet to the physical device to perform an operation on the physical device; and

verifying that a response is received from the physical device in response to the request packet.

18. A computer system comprising an interconnect apparatus separate from a physical device, the interconnect apparatus comprising:

a processor;

an interface configured to intercept traffic for the physical device; and

a hardware mechanism configured to:

extract from the traffic a packet that includes a register access request for control and/or status configuration operations for the physical device;

send other traffic to a physical output port which is coupled to the physical device; and

for the packet that is extracted:

use the packet and policy information for the hardware mechanism to determine whether the packet is to be processed by the hardware mechanism;

if the packet is to be processed by the hardware mechanism, forward the register access request to a software-controlled entity for access to a virtual configuration space register;

otherwise, if the packet is not to be processed by the hardware mechanism:

use the packet and the policy information to determine a destination identifier for the packet; and

send a forwarding packet that includes the packet and the destination identifier to a physical output port for the hardware mechanism.

19. A method comprising:

receiving at a processor separate from a physical device traffic for the physical device;

extracting from the traffic a packet that includes a register access request for control and/or status configuration operations for the physical device;

sending other traffic to a physical output port which is coupled to the physical device; and

for the packet that is extracted:

using the packet and policy information for the hardware mechanism to determine whether the packet is to be processed by the hardware mechanism;

if the packet is to be processed by the hardware mechanism, forwarding the register access request to a software-controlled entity for access to a virtual configuration space register;

otherwise, if the packet is not to be processed by the hardware mechanism:

using the packet and the policy information to determine a destination identifier for the packet; and

sending a forwarding packet that includes the packet and the destination identifier to a physical output port for the hardware mechanism.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Dec 16, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037311/0101 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 11, 2006
From: JOHNSEN, BJORN DAG; TORUDBAKKEN, OLA; GAJJAR, YATIN
To: SUN MICROSYSTEMS, INC.
Reel/Frame 018202/0085 →