IP Library Granted Patent US 10,599,596
Granted Patent B2
US 10,599,596 · App. 15/864,290 · Granted Mar 24, 2020

Management of processor performance based on user interrupts

Inventors: Jacob Jun Pan (Portland, OR); Ashok Raj (Portland, OR); Srinivas Pandruvada (Beaverton, OR)
Assignee: Intel Corporation
G06F13/24G06F9/30145G06F15/80G06F2213/2416
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 10,599,596
App. No.
15/864,290
Granted
Mar 24, 2020
Kind
B2
Abstract

In an embodiment, a processor for performance state adjustment includes a plurality of processing engines (PEs), a power control unit, and an input/output memory management unit (IOMMU). The IOMMU is to determine a destination PE for a user interrupt based on mapping data of the IOMMU, and to send a notification of the user interrupt to the power control unit. The notification indicates the destination PE for the user interrupt. The power control unit is to adjust a performance state of the destination PE in response to the notification of the user interrupt. Other embodiments are described and claimed.

Claims (39)

1. A processor comprising:

a plurality of processing engines (PEs);

a power control unit;

an input/output memory management unit (IOMMU) to determine a destination PE for a user interrupt based on mapping data of the IOMMU, and to send a notification of the user interrupt to the power control unit, the notification indicating the destination PE for the user interrupt, the power control unit to adjust a performance state of the destination PE in response to the notification of the user interrupt, the power unit to determine whether to adjust the performance state of the destination PE based on a user vector in the notification and a user posted interrupt descriptor included in a task structure.

2. The processor of claim 1 , wherein the power control unit is to, in response to the notification of the user interrupt, increase at least one of a clock frequency and a voltage level of the destination PE.

3. The processor of claim 1 , the IOMMU to send the user interrupt directly to a user handler at the destination PE.

4. The processor of claim 3 , wherein the user handler is in a user space of memory.

5. The processor of claim 1 , wherein the IOMMU stores mapping data specifying destination PEs for a plurality of user interrupts.

6. The processor of claim 1 , wherein the task structure is associated with a particular task in user space, and wherein the task structure is stored in kernel space.

7. The processor of claim 1 , wherein the user posted interrupt descriptor includes a global setting and vector settings, wherein the global setting indicates that the power control unit is to adjust the performance state of the destination PE without evaluating the user vector in the notification.

8. A method comprising:

determining, by an input/output memory management unit (IOMMU), a destination processing engine (PE) for a user interrupt;

sending, by the IOMMU, the user interrupt directly to the determined destination PE;

sending, by the IOMMU, a notification to a power control unit;

determining, by the power control unit, whether to adjust a performance state of the destination PE based on a user vector in the notification and a user posted interrupt descriptor included in a task structure; and

adjusting, by the power control unit, the performance state of the determined destination PE in response to the notification from the IOMMU.

9. The method of claim 8 , wherein adjusting the performance state of the determined destination PE comprises increasing at least one of an operating frequency and a voltage level of the determined destination PE.

10. The method of claim 8 , further comprising:

processing the user interrupt at the determined destination PE while in the adjusted performance state.

11. The method of claim 8 , further comprising:

determining, by the IOMMU, whether a received interrupt is a user interrupt; and

in response to a determination that the received interrupt is not a user interrupt, sending the received interrupt to a handler in kernel space.

12. The method of claim 8 , wherein the user posted interrupt descriptor includes a global setting and vector settings, wherein the global setting indicates that the power control unit is to adjust the performance state of the destination PE without evaluating the user vector in the notification.

13. The method of claim 8 , further comprising:

sending, by a user handler at the determined destination PE, a completion notification to the power control unit; and

adjusting, by the power control unit, the determined destination PE to a reduced performance state in response to the completion notification.

14. A system comprising:

a processor comprising a plurality of processing engines (PEs), a power control unit, and an input/output memory management unit (IOMMU);

the IOMMU to:

determine a destination PE for a user interrupt based on mapping data of the IOMMU;

send the user interrupt directly to the destination PE; and

send a user interrupt notification to the power control unit; and

the power control unit to:

determine whether to adjust a performance state of the destination PE based on a user vector in the user interrupt notification and a user posted interrupt descriptor included in a task structure; and

adjust the performance state of the destination PE in response to the user interrupt notification; and

a system memory coupled to the processor.

15. The system of claim 14 , wherein the power control unit is to, in response to the notification of the user interrupt, increase at least one of a clock frequency and a voltage level of the destination PE.

16. The system of claim 14 , wherein the IOMMU stores mapping data specifying destination PEs for a plurality of user interrupts.

17. The system of claim 14 , wherein the user posted interrupt descriptor includes a global setting and vector settings, wherein the global setting indicates that the power control unit is to adjust the performance state of the destination PE without evaluating the user vector in the notification.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 8, 2018
From: PAN, JACOB JUN; PANDRUVADA, SRINIVAS; RAJ, ASHOK
To: INTEL CORPORATION
Reel/Frame 044559/0441 →
Continuity (1)
Related Publication 20190213153A1 · Jul 11, 2019
Cited By (2)
US 12,375,390 US 12,430,162