Aggregation of interrupts using event queues

US9507740B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9507740-B2
Application numberUS-201414300388-A
CountryUS
Kind codeB2
Filing dateJun 10, 2014
Priority dateJun 10, 2014
Publication dateNov 29, 2016
Grant dateNov 29, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Embodiments of input/output hub unit are disclosed for aggregating interrupts received from multiple endpoint devices. The input/output hub may include an interface unit and one or more communication units. Each communication unit may be configured to receive messages from a corresponding endpoint device. The interface unit may be configured to update a first pointer within a first data structure responsive to a request from a given one of the communication units. The interface unit may be further configured to stored data in a second data structure responsive to updating the first pointer, reading a second pointer and the first pointer, and sending an interrupt responsive to a determination that the first and second pointers are equal.

First claim

Opening claim text (preview).

What is claimed is: 1. An apparatus, comprising: one or more communication units, wherein each of the one or more communication units is configured to receive an interrupt or message from a respective endpoint device; and an interface unit coupled to each of the one or more communication units, wherein the interface unit is configured to: update a first pointer included within a first data structure responsive to a request from a given one of the one or more communication units, wherein the first data structure is located in a memory; store data indicative of the received interrupt or message in a second data structure responsive to updating the first pointer, wherein the second data is located in the memory; read a second pointer and the first pointer from the first data structure; and send an interrupt responsive to a determination that a value of the first pointer and a value of the second pointer are equal. 2. The apparatus of claim 1 , wherein to update the first pointer, the interface unit is further configured to increment the first pointer. 3. The apparatus of claim 1 , wherein to update the first pointer, the interface unit is further configured to send the updated first pointer to the given one of the one or more communication units. 4. The apparatus of claim 1 , wherein to store the data indicative of the received interrupt or message in the second data structure, the interface unit is further configured to store the data indicative of the received message in the second data structure responsive to a request from the given one of the one or more communication units. 5. The apparatus of claim 1 , wherein to send the interrupt, the interface unit is further configured to update the second pointer, and store the updated second pointer in the first data structure. 6. The apparatus of claim 1 , wherein the interface is further configured to store the read first pointer and the second pointer to the first data structure responsive to a determination that the value of the first pointer and the value of the second pointer are not equal. 7. A method for handling an interrupt in a computer system, the method comprising: receiving a message from an endpoint device; updating a first pointer within an first data structure, wherein the first data structure is located in a memory; storing data indicative of the received message in a second data structure responsive to updating the first pointer, wherein the second data structure is located in the memory; reading a second pointer and the first pointer from the first data structure; and sending an interrupt responsive to a determination that a value of the first pointer and a value of the second pointer are equal. 8. The method of claim 7 , wherein updating the first pointer comprises incrementing the first pointer. 9. The method of claim 7 , wherein updating the first pointer comprising sending the updated first pointer to a communication unit, where in the communication unit is coupled to the endpoint device. 10. The method of claim 9 , wherein storing the data indicative of the received message in the second data structure comprises storing the data in the second data structure responsive to a request from the communication unit. 11. The method of claim 7 , wherein sending the interrupt comprises updating the second pointer, and storing the updated second pointer in the first data structure. 12. The method of claim 7 , further comprising storing the read first pointer and second pointer in the first data structure responsive to a determination that the value of the first pointer and the value of the second pointer are not equal. 13. The method of claim 7 , further comprising filtering the received interrupt or message dependent upon a third data structure, wherein the third data structure is located in the memory. 14. A system, comprising: one or more processors; one or more memories, wherein each memory of the one or more memories is coupled to a respective one of the one or more processors; and a input/output (I/O) hub coupled to at least one of the one or more processors, wherein the I/O hub is configured to: receive an interrupt or message from an endpoint device; update a first pointer included within first data structure, wherein the first data structure is located within a given one of the one or more memories; store data indicative of the received interrupt or message in a second data structure responsive to updating the first pointer, wherein the second data structure is located in the given one of the one or more memories; read a second pointer and the first pointer from the first data structure; and send an interrupt responsive to a determination that a value of the first pointer and a value of the second pointer are equal. 15. The system of claim 14 , wherein to update the first pointer, the I/O hub is further configured to increment the first pointer. 16. The system of claim 14 , wherein to send the interrupt, the I/O hub is further configured to update the second pointer, and store the updated second pointer in the first data structure. 17. The system of claim 14 , wherein the I/O hub is further configured to store the read first pointer and the read second pointer responsive to a determination that the read first pointer and the read second pointer are not equal. 18. The system of claim 14 , wherein the I/O hub is further configured to filter the received interrupt or message. 19. The system of claim 18 , wherein to filter the received interrupt or message, the I/O hub is further configured to compare at least a part of the received message to each entry of a plurality of entries in a third data structure. 20. The system of claim 14 , wherein the received interrupt or message includes a message signaled interrupt vector.

Assignees

Inventors

Classifications

  • G06F13/24Primary

    using interrupt (G06F13/32 takes precedence) · CPC title

  • for access to memory bus (G06F13/28 takes precedence) · CPC title

  • Electrical coupling · CPC title

  • based on arbitration (arbitration in handling access to a common bus or bus system G06F13/36) · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9507740B2 cover?
Embodiments of input/output hub unit are disclosed for aggregating interrupts received from multiple endpoint devices. The input/output hub may include an interface unit and one or more communication units. Each communication unit may be configured to receive messages from a corresponding endpoint device. The interface unit may be configured to update a first pointer within a first data structu…
Who is the assignee on this patent?
Oracle Int Corp
What technology area does this patent fall under?
Primary CPC classification G06F13/24. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Nov 29 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).