IP Library › Granted Patent US 9,952,987
Granted Patent B2
US 9,952,987 · App. 14/553,430 · Granted Apr 24, 2018

Posted interrupt architecture

Inventors: Jayakrishna Guddeti (Bangalore, IN); Luke Chang (Aloha, OR); Rajesh M. Sankaran (Portland, OR); Junaid F. Thaliyil (Bangalore, IN)
Assignee: Intel Corporation
G06F13/24G06F12/0871G06F2212/1032G06F2212/657
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,952,987
App. No.
14/553,430
Granted
Apr 24, 2018
Kind
B2
Abstract

An interrupt is identified from an input/output (I/O) device and an address of a particular cache line is identified associated with the interrupt. The cache line corresponds to a destination of the interrupt and represents one or more attributes of the interrupt. A request is sent to a coherency agent to acquire ownership of the particular cache line and a request is sent to perform a read-modify-write (RMW) operation on the cache line based on the interrupt.

Claims (48)

1. An apparatus comprising:

a protocol agent to

identify an interrupt from an input/output (I/O) device;

identify an address of a particular cache line associated with the interrupt, wherein the particular cache line is to correspond to a destination of the interrupt, the particular cache line is to represent one or more attributes of the interrupt, the destination comprises a virtual processor, the particular cache line is one of a plurality of posted interrupt descriptor cache lines, and each posted interrupt descriptor cache line corresponds to a respective one of a plurality of virtual processors;

send a request to a coherency agent to acquire ownership of the particular cache line; and,

responsive to an acknowledgement that ownership has been acquired, send a request to perform a read-modify-write (RMW) operation on the cache line based on the interrupt.

2. The apparatus of claim 1 , wherein the protocol agent is further to:

receive information read from the particular cache line; and

determine whether to forward the interrupt to the destination based on the information.

3. The apparatus of claim 2 , wherein the information is read from the particular cache line by the coherency agent and the information is received from the coherency agent in association with the RMW operation.

4. The apparatus of claim 2 , wherein the virtual processor is hosted by a physical processor and the interrupt is to be sent to the physical processor.

5. The apparatus of claim 4 , wherein the physical processor is to be identified from the information.

6. The apparatus of claim 1 , wherein the protocol agent is to enforce ordering rules of a protocol in association with handling of the interrupt.

7. The apparatus of claim 1 , wherein the protocol agent and coherency agent are included in a root complex and the root complex receives the interrupt.

8. An apparatus comprising:

an address translator to determine an entry in an interrupt remapping table associated with an interrupt identifier, wherein the entry comprises an address of a particular cache line, the particular cache line to correspond to a destination of the interrupt, the particular cache line is to describe attributes of the interrupt, the destination comprises a virtual processor, the particular cache line is one of a plurality of posted interrupt descriptor cache lines, and each posted interrupt descriptor cache line corresponds to a respective one of a plurality of virtual processors;

a coherence agent to obtain ownership of the particular cache line and initiate a read-modify-write (RMW) operation on the particular cache line;

a protocol agent to identify one or more characteristics of the interrupt and, responsive to an acknowledgement that ownership has been acquired, request the coherence agent to perform a RMW operation, wherein the particular cache line is to describe the one or more characteristics; and

decision logic to determine whether to forward the interrupt based on information to be included in the particular cache line.

9. The apparatus of claim 8 , wherein the decision logic is included in the protocol agent.

10. The apparatus of claim 9 , wherein the interrupt remapping table maps addresses in a guest domain to an address in a host domain.

11. The apparatus of claim 9 , wherein the interrupt identifier comprises a handle and the protocol agent is to identify the handle and query the address translator for the address.

12. The apparatus of claim 9 , wherein the information comprises a suppress value and a pending value of the particular cache line.

13. The apparatus of claim 9 , wherein ordering rules of a particular protocol are to be enforced using the protocol agent and the particular protocol comprises a Peripheral Component Interconnect (PCI) Express (PCIe)-based protocol.

14. A computer readable medium comprising code that, when executed, is to cause a computing device to:

identify an interrupt from an I/O device;

identify an address of a particular posted interrupt descriptor cache line, wherein the posted interrupt descriptor cache line corresponds to a destination of the interrupt, the posted interrupt descriptor cache line is to describe the interrupt, the destination comprises a virtual processor, the particular posted interrupt descriptor cache line is one of a plurality of posted interrupt descriptor cache lines, and each posted interrupt descriptor cache line corresponds to a respective one of a plurality of virtual processors;

send a request to a coherence agent to acquire ownership of the particular posted interrupt descriptor cache line; and

responsive to an acknowledgement that ownership has been acquired, send a request to perform a read-modify-write (RMW) operation on the posted interrupt descriptor cache line based on the interrupt.

15. The medium of claim 14 , wherein identifying the address of the particular posted interrupt descriptor cache line comprises:

identifying a handle value included in the interrupt; and

querying a remapping table to determine a particular address corresponding to the handle value, wherein the particular address comprises the address of the particular posted interrupt descriptor cache line.

16. The medium of claim 14 , wherein the code further is to cause the computing device to:

receive information read from the particular posted interrupt descriptor cache line; and

determine whether to forward the interrupt to the destination based on the information.

17. The medium of claim 16 , wherein the information comprises a value to indicate whether the destination is associated with as a physical or a logical identifier, if a notify event is a physical interrupt.

18. A system comprising:

a processor;

a memory; and

a root complex comprising

an agent to

identify an interrupt addressed to a destination;

identify an address of a particular cache line, wherein the cache line corresponds to the destination, the cache line is to be encoded to describe the interrupt, the destination comprises a virtual processor, the particular cache line is one of a plurality of posted interrupt descriptor cache lines, and each posted interrupt descriptor cache line corresponds to a respective one of a plurality of virtual processors;

send a request to a coherence agent to acquire ownership of the particular cache line; and

responsive to an acknowledgement that ownership has been acquired, send a request to perform a read-modify-write (RMW) operation on the cache line based on the interrupt.

19. The system of claim 18 , wherein the system further comprises a virtual machine manager.

20. The system of claim 19 , further comprising

one or more I/O devices, wherein the interrupt is received from one of the I/O devices.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 19, 2015
From: GUDDETI, JAYAKRISHNA; CHANG, LUKE; SANKARAN, RAJESH M.; THALIYIL, JUNAID F.
To: INTEL CORPORATION
Reel/Frame 035443/0183 →
Continuity (1)
Related Publication 20160147679A1 · May 26, 2016