IP Library › Granted Patent US 12,547,564
Granted Patent B2
US 12,547,564 · App. 18/424,010 · Granted Feb 10, 2026

Apparatuses, methods, and systems for hardware control of processor performance levels

Inventors: Eliezer Weissmann (Haifa, IL); Efraim Rotem (Haifa, IL); Doron Rajwan (Rishon le-Zion, IL); Hisham Abu Salah (Majdal shams, IL); Ariel Gur (Atlit, IL); Guy M. Therien (Beaverton, OR); Russell J. Fenger (Beaverton, OR)
Assignee: Intel Corporation
G06F13/24G06F1/3243G06F1/3287G06F1/329G06F9/30076G06F9/30101G06F9/44G06F9/4411
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 12,547,564
App. No.
18/424,010
Granted
Feb 10, 2026
Kind
B2
Abstract

Systems, methods, and apparatuses relating to hardware control of processor performance levels are described. In one embodiment, a processor includes a plurality of logical processing elements; and a power management circuit to change a highest non-guaranteed performance level and a highest guaranteed performance level for each of the plurality of logical processing elements, and set a notification in a status register when the highest non-guaranteed performance level is changed to a new highest non-guaranteed performance level.

Claims (24)

1 . A processor, comprising:

a plurality of cores, each core comprising a plurality of logical processing elements; and

power management circuitry including a plurality of registers, wherein the power management circuitry is to:

set to default values, during a boot time, a highest non-guaranteed performance level and a highest guaranteed performance level for each of the plurality of logical processing elements, wherein the highest non-guaranteed performance level is greater than the highest guaranteed performance level for each of the plurality of logical processing elements;

process a request from an operating system to change the default value of the highest non-guaranteed performance level for a particular logical processing element of the plurality of logical processing elements to a new value; and

store a notification in a register of the plurality of registers to indicate to the operating system a result corresponding to the request.

2 . The processor of claim 1 wherein the notification is to subsequently be cleared by the operating system.

3 . The processor of claim 1 wherein the plurality of registers include a plurality of capabilities registers, each logical processing element associated with a different set of the plurality of capabilities registers, wherein a capabilities register associated with the particular logical processing element is to store the new value of the highest non-guaranteed performance level.

4 . The processor of claim 1 , wherein the request comprises a first request, the power management circuitry to process a second request from the operating system to read the highest non-guaranteed performance level for the particular logical processing element of the plurality of logical processing elements.

5 . The processor of claim 1 , wherein the power management circuitry is to set a bit in at least one of the plurality of registers in response to an excursion of the particular logical processing element to a performance level below an indicated minimum performance level.

6 . The processor of claim 5 , wherein the bit is to be subsequently cleared by the operating system.

7 . The processor of claim 1 , wherein storing the notification in the register is to cause the operating system to read the new highest non-guaranteed performance level from a capabilities register.

8 . The processor of claim 1 , wherein the new value of the highest non-guaranteed performance level is greater than the default highest non-guaranteed performance level.

9 . The processor of claim 1 , wherein storing the notification in the register is to cause an interrupt to be generated.

10 . A non-transitory machine-readable medium having program code stored thereon which, when executed by a processor, causes the processor to perform operations comprising:

during a boot time, cause power management circuitry to set to default values a highest non-guaranteed performance level and a highest guaranteed performance level for each of a plurality of logical processing elements, wherein the highest non-guaranteed performance level is greater than the highest guaranteed performance level for each of the plurality of logical processing elements;

submit a request from an operating system to change the default value of the highest non-guaranteed performance level for a particular logical processing element of the plurality of logical processing elements to a new value; and

read a notification in a register of a plurality of registers, the notification to indicate to the operating system a result corresponding to the request; and

subsequently clear the notification responsive to the operating system.

11 . The non-transitory machine-readable medium of claim 10 wherein the register comprises one of a plurality of registers of the power management circuitry, the plurality of registers including a plurality of capabilities registers, each logical processing element associated with a different set of the plurality of capabilities registers, wherein a capabilities register associated with the particular logical processing element is to store the new value of the highest non-guaranteed performance level.

12 . The non-transitory machine-readable medium of claim 10 , wherein the request comprises a first request, the non-transitory machine-readable medium including additional program code to cause the processor to: submit a second request from the operating system to read the highest non-guaranteed performance level for the particular logical processing element of the plurality of logical processing elements.

13 . The non-transitory machine-readable medium of claim 10 , wherein the power management circuitry is to set a bit in at least one of the plurality of registers in response to an excursion of the particular logical processing element to a performance level below an indicated minimum performance level, the non-transitory machine-readable medium including additional program code to cause the processor to: subsequently clear the bit responsive to the operating system.

14 . The non-transitory machine-readable medium of claim 10 , wherein the new value of the highest non-guaranteed performance level is greater than the default highest non-guaranteed performance level.

15 . The non-transitory machine-readable medium of claim 10 including additional program code to cause the processor to: causing an interrupt to be generated responsive to the notification.

Continuity (3)
Continuation 17527929 · Nov 16, 2021
Continuation 15430345 · Feb 10, 2017
Related Publication 20240248862A1 · Jul 25, 2024
References Cited (77)
US 9110735B2 · Diefenbaugh et al. · 2015 [cited by applicant]
US 9348401B2 · Weissmann et al. · 2016 [cited by applicant]
US 9442739B2 · Therien et al. · 2016 [cited by applicant]
US 9454379B2 · Therien et al. · 2016 [cited by applicant]
US 9535711B2 · Rothman · 2017 [cited by examiner]
US 9594570B2 · Kumar · 2017 [cited by examiner]
US 9753885B2 · Willey et al. · 2017 [cited by applicant]
US 10204064B2 · Willey et al. · 2019 [cited by applicant]
US 10379904B2 · Weissmann et al. · 2019 [cited by applicant]
US 20040130552A1 · Duluk, Jr. · 2004 [cited by examiner]
US 20070283128A1 · Hoshaku · 2007 [cited by applicant]
US 20110055469A1 · Natu · 2011 [cited by examiner]
US 20110179311A1 · Nachimuthu et al. · 2011 [cited by applicant]
US 20110187829A1 · Nakajima · 2011 [cited by examiner]
US 20110317718A1 · Siddam et al. · 2011 [cited by applicant]
US 20120154375A1 · Zhang · 2012 [cited by examiner]
US 20130054901A1 · Biswas · 2013 [cited by examiner]
US 20130111226A1 · Ananthakrishnan et al. · 2013 [cited by applicant]
US 20130145052A1 · Aiken · 2013 [cited by examiner]
US 20140059368A1 · Kumar · 2014 [cited by examiner]
US 20140068284A1 · Bhandaru et al. · 2014 [cited by applicant]
US 20140068290A1 · Bhandaru et al. · 2014 [cited by applicant]
US 20140195829A1 · Bhandaru et al. · 2014 [cited by applicant]
US 20140281639A1 · Wagh · 2014 [cited by examiner]
US 20140344488A1 · Flynn · 2014 [cited by examiner]
US 20150049606A1 · So et al. · 2015 [cited by applicant]
US 20150091927A1 · Cote · 2015 [cited by examiner]
US 20150261711A1 · Willey et al. · 2015 [cited by applicant]
US 20150370304A1 · Abu et al. · 2015 [cited by applicant]
US 20160364243A1 · Puthillathe · 2016 [cited by examiner]
US 20160378697A1 · Jayakumar et al. · 2016 [cited by applicant]
US 20170102510A1 · Faw · 2017 [cited by examiner]
US 20170105313A1 · Shedd · 2017 [cited by examiner]
US 20170295591A1 · Nguyen et al. · 2017 [cited by applicant]
US 20180136704A1 · Jahagirdar et al. · 2018 [cited by applicant]
US 20180136708A1 · Jahagirdar et al. · 2018 [cited by applicant]
US 20180136709A1 · Jahagirdar et al. · 2018 [cited by applicant]
US 20180143937A1 · Willey et al. · 2018 [cited by applicant]
US 20180349231A1 · Panda · 2018 [cited by examiner]
US 20180361237A1 · Perlman · 2018 [cited by examiner]
US 20190004591A1 · Park et al. · 2019 [cited by applicant]
US 20190073265A1 · Brennan et al. · 2019 [cited by applicant]
US 20190196745A1 · Persson · 2019 [cited by examiner]
US 20190205153A1 · Niestemski · 2019 [cited by examiner]
US 20190303297A1 · Fleming et al. · 2019 [cited by applicant]
US 20190347125A1 · Sankaran et al. · 2019 [cited by applicant]
US 20190385057A1 · Litichever et al. · 2019 [cited by applicant]
US 20200021492A1 · Ganguli · 2020 [cited by examiner]
US 20200061811A1 · Iqbal et al. · 2020 [cited by applicant]
US 20200090383A1 · Dwivedi · 2020 [cited by applicant]
US 20200103894A1 · Cella et al. · 2020 [cited by applicant]
US 20200104275A1 · Sen et al. · 2020 [cited by applicant]
US 20200133377A1 · Murali et al. · 2020 [cited by applicant]
US 20200137896A1 · Elenitoba-Johnson et al. · 2020 [cited by applicant]
US 20200151104A1 · Yang · 2020 [cited by applicant]
US 20200167098A1 · Shah et al. · 2020 [cited by applicant]
US 20200242258A1 · Smith et al. · 2020 [cited by applicant]
US 20200257517A1 · Seater et al. · 2020 [cited by applicant]
US 20200364303A1 · Liu · 2020 [cited by examiner]
US 20210084787A1 · Weldon et al. · 2021 [cited by applicant]
US 20210117360A1 · Kutch et al. · 2021 [cited by applicant]
US 20210255979A1 · Colenbrander · 2021 [cited by examiner]
US 20210365100A1 · Murali et al. · 2021 [cited by applicant]
“Advanced Configuration and Power Interface Specification,” Version 6.1, Jan. 2016, 1082 pages. [cited by applicant]
“Advanced Configuration and Power Interface Specification,” Version 6.2, May 2017, 1192 pages. [cited by applicant]
“Intel 64 and IA-32 Architectures Software Developer's Manual,” Combined vols. 1, 2A, 2B, 2C, 2D, 3A, 38, 3C and 3D, Dec. 2016, 4684 pages. [cited by applicant]
“Intel Architecture Instruction Set Extensions Programming Reference,” Intel, Ref. # 319433-028, Dec. 2016, 139 pages. [cited by applicant]
Advisory Action Office Action, U.S. Appl. No. 15/430,345, Feb. 5, 2020, 6 pages. [cited by applicant]
Final Office Action, U.S. Appl. No. 15/430,345, Nov. 13, 2020, 19 pages. [cited by applicant]
Final Office Action, U.S. Appl. No. 15/430,345, Oct. 2, 2019, 10 pages. [cited by applicant]
Final Office Action, U.S. Appl. No. 17/527,929, Jul. 12, 2023, 11 pages. [cited by applicant]
Non-Final Office Action, U.S. Appl. No. 15/430,345, Apr. 30, 2020, 11 pages. [cited by applicant]
Non-Final Office Action, U.S. Appl. No. 15/430,345, May 17, 2019, 9 pages. [cited by applicant]
Non-Final Office Action, U.S. Appl. No. 15/430,345, Sep. 20, 2018, 9 pages. [cited by applicant]
Non-Final Office Action, U.S. Appl. No. 17/527,929, Dec. 9, 2022, 11 pages. [cited by applicant]
Notice of Allowance, U.S. Appl. No. 15/430,345, Jul. 23, 2021, 8 pages. [cited by applicant]
Notice of Allowance, U.S. Appl. No. 17/527,929, Oct. 12, 2023, 10 pages. [cited by applicant]