Method and apparatus for a scalable interrupt infrastructure

US10579382B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10579382-B2
Application numberUS-201815879416-A
CountryUS
Kind codeB2
Filing dateJan 24, 2018
Priority dateJan 24, 2018
Publication dateMar 3, 2020
Grant dateMar 3, 2020

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.

An apparatus and method for scalable interrupt reporting. For example, one embodiment of an apparatus comprises: a host processor to execute one or more processes having a corresponding one or more process contexts associated therewith; and a graphics processing engine to, upon initiating execution of a first process, determine a current process context associated with the first process including a first pointer to a first system memory region to store an interrupt status, a second pointer to a second system memory region to store interrupt enable and/or interrupt mask data for one or more interrupt events, and address/data values associated with a message signaled interrupt (MSI); the graphics processing engine, in response to an interrupt event, to evaluate the interrupt enable data from the second system memory region to determine whether the interrupt event is enabled, to report the interrupt event, if enabled, by writing a specified value to the first system memory region identified by the first pointer, and to generate a first MSI corresponding to the interrupt event by writing the MSI address/data values to an output accessible by the host processor.

First claim

Opening claim text (preview).

What is claimed is: 1. A graphics processing apparatus comprising: a host processor to execute one or more processes having a corresponding one or more process contexts associated therewith; and a graphics processing engine to, upon initiating execution of a first process, determine a current process context associated with the first process including a first pointer to a first system memory region to store an interrupt status, a second pointer to a second system memory region to store interrupt enable and/or interrupt mask data for one or more interrupt events, and address/data values associated with a message signaled interrupt (MSI); the graphics processing engine, in response to an interrupt event, to evaluate the interrupt enable data from the second system memory region to determine whether the interrupt event is enabled, to report the interrupt event, if enabled, by writing a specified value to the first system memory region identified by the first pointer, and to generate a first MSI corresponding to the interrupt event by writing the MSI address/data values to an output accessible by the host processor. 2. The apparatus of claim 1 wherein the one or more processes comprise one or more virtual machines (VMs) and/or one or more applications. 3. The apparatus of claim 1 wherein one or more of the processes executed on the host processor use atomics to read and write interrupt status information in memory. 4. The apparatus of claim 3 wherein the host processor comprises a general purpose central processing unit (CPU) and the graphics processing engine comprises a graphics processing unit (GPU), wherein the use of atomics by the CPU avoids the loss of graphics engine updates resulting from read-modify-write of the interrupt status in memory. 5. The apparatus of claim 1 wherein the first interrupt is directed to one or more virtual machines and/or applications to be executed on the host processor. 6. The apparatus of claim 1 wherein the current process context comprises a process address space ID (PASID) value to uniquely identify the first process. 7. The apparatus of claim 6 wherein the current process context further comprises a per-page graphics translation table (PP-GTT) pointer to identify a page table associated with the first process, the page table to be used to perform address translations for the first process. 8. The apparatus of claim 1 wherein an opcode associated with the MSI is transmitted over an on-die interface (IDI) link to one or more processing devices. 9. A method comprising: determining a process context associated with a first process of a plurality of processes, the process context including a first pointer to a first system memory region to store an interrupt status, a second pointer to a second system memory region to store interrupt enable and/or interrupt mask data for one or more interrupt events, and address/data values associated with a message signaled interrupt (MSI); detecting an interrupt event; reading the interrupt enable data from the second system memory region; determining whether the interrupt event is enabled based on the interrupt enable data; reporting the interrupt event, if enabled, by writing a specified value to the first system memory region identified by the first pointer; and generating a first interrupt corresponding to the interrupt event using the MSI address/data values. 10. The method of claim 9 wherein the plurality of processes include one or more virtual machines (VMs) and/or one or more applications executed on a host processor. 11. The method of claim 10 wherein one or more of the processes executed on the host processor use atomics to read and write interrupt status information in memory. 12. The method of claim 11 wherein the host processor comprises a general purpose central processing unit (CPU) and operations of determining a process context, detecting an interrupt event, reading the interrupt enable data, determining whether the interrupt event is enabled, reporting the interrupt event, and generating the first interrupt are performed by a graphics processing engine. 13. The method of claim 12 wherein the use of atomics by the CPU avoids the loss of graphics engine updates resulting from read-modify-write of the interrupt status in memory. 14. The method of claim 10 wherein the first interrupt is directed to the one or more virtual machines and/or applications executed on the host processor. 15. The method of claim 9 wherein the current process context comprises a process address space ID (PASID) value to uniquely identify the first process. 16. The method of claim 15 wherein the current process context further comprises a per-page graphics translation table (PP-GTT) pointer to identify a page table associated with the first process, the page table to be used to perform address translations for the first process. 17. The method of claim 15 wherein an opcode associated with the MSI is transmitted over an on-die interface (IDI) link to one or more processing devices. 18. A non-transitory machine-readable medium having program code stored thereon which, when executed by a machine, causes the machine to perform the operations of: determining a process context associated with a first process of a plurality of processes, the process context including a first pointer to a first system memory region to store an interrupt status, a second pointer to a second system memory region to store interrupt enable and/or interrupt mask data for one or more interrupt events, and address/data values associated with a message signaled interrupt (MSI); detecting an interrupt event; reading the interrupt enable data from the second system memory region; determining whether the interrupt event is enabled based on the interrupt enable data; reporting the interrupt event, if enabled, by writing a specified value to the first system memory region identified by the first pointer; and generating a first interrupt corresponding to the interrupt event using the MSI address/data values. 19. The non-transitory machine-readable medium of claim 18 wherein the plurality of processes include one or more virtual machines (VMs) and/or one or more applications executed on a host processor. 20. The non-transitory machine-readable medium of claim 19 wherein one or more of the processes executed on the host processor use atomics to read and write interrupt status information in memory. 21. The non-transitory machine-readable medium of claim 20 wherein the host processor comprises a general purpose central processing unit (CPU) and operations of determining a process context, detecting an interrupt event, reading the interrupt enable data, determining whether the interrupt event is enabled, reporting the interrupt event, and generating the first interrupt are performed by a graphics processing engine. 22. The non-transitory machine-readable medium of claim 21 wherein the use of atomics by the CPU avoids the loss of graphics engine updates resulting from read-modify-write of the interrupt status in memory. 23. The non-transitory machine-readable medium of claim 19 wherein the first interrupt is directed to the one or more virtual machines and/or applications executed on the host processor. 24. The non-transitory machine-readable medium of claim 18 wherein the current process context comprises a process address space ID (PASID) value to uniquely identify the first process.

Assignees

Inventors

Classifications

  • Remote · CPC title

  • Event management; Broadcasting; Multicasting; Notifications · CPC title

  • Virtual address space management · CPC title

  • using page tables, e.g. page table structures · CPC title

  • Image or video data · 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 US10579382B2 cover?
An apparatus and method for scalable interrupt reporting. For example, one embodiment of an apparatus comprises: a host processor to execute one or more processes having a corresponding one or more process contexts associated therewith; and a graphics processing engine to, upon initiating execution of a first process, determine a current process context associated with the first process includi…
Who is the assignee on this patent?
Intel Corp
What technology area does this patent fall under?
Primary CPC classification G06T1/20. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Mar 03 2020 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 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).