IP Library › Granted Patent US 12,217,175
Granted Patent B2
US 12,217,175 · App. 17/560,025 · Granted Feb 4, 2025

Methods and apparatus to conditionally activate a big core in a computing system

Inventors: Rajesh Poornachandran (Portland, OR); Vincent Zimmer (Issaquah, WA)
Assignee: Intel Corporation
G06N3/08G06F9/3877G06F9/455G06F9/45508G06F9/4856G06F9/5044G06F9/505G06F9/5066G06F21/54G06N3/042G06N3/063G06F2209/501G06F2209/5017G06F2209/503
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,217,175
App. No.
17/560,025
Granted
Feb 4, 2025
Kind
B2
Abstract

Methods, apparatus, and articles of manufacture to conditionally activate a big core in a computing system are disclosed. An example apparatus including instructions stored in the apparatus; and processor circuitry to execute the instructions to: in response to a request to operate two or more processing devices as a single processing device, determine whether the two or more processing devices are available and capable of executing instructions according to the request; when the two or more processing devices are available and capable: split the instructions into first sub-instructions and second sub-instructions; provide (a) the first sub-instructions to a first processing device of the two or more processing devices and (b) the second sub-instructions to a second processing device of the two or more processing devices; and generate an output by combining a first output of the first processing device and a second output of the second processing device.

Claims (69)

1. An apparatus to conditionally activate a big core in a computing system, the apparatus comprising:

first instructions in the apparatus; and

processor circuitry to execute the first instructions to:

in response to a request to operate two or more processing devices as a single processing device, determine whether the two or more processing devices are available and capable of executing second instructions according to the request;

when the two or more processing devices are available and capable of executing the second instructions:

split the second instructions into first sub-instructions and second sub-instructions;

provide (a) the first sub-instructions to a first processing device of the two or more processing devices and (b) the second sub-instructions to a second processing device of the two or more processing devices; and

generate an output for the second instructions by combining a first output of the first processing device and a second output of the second processing device.

2. The apparatus of claim 1 , wherein the request is a first request, the processor circuitry to:

in response to a second request to operate the two or more processing devices as the single processing device, determine whether the two or more processing devices are available and capable of executing third instructions according to the second request; and

when the two or more processing devices are capable of executing the third instructions but not available, determine whether the two or more processing devices will be capable of executing the third instructions at a subsequent point in time.

3. The apparatus of claim 2 , wherein the processor circuitry is to, in response to determining that the two or more processing devices will be capable of executing the third instructions in the future, transmit a response indicating when the two or more processing devices will be available.

4. The apparatus of claim 1 , wherein the request is a first request, the processor circuitry to:

in response to a second request to operate the two or more processing devices as the single processing device, determine whether the two or more processing devices are available and capable of executing second instructions according to a parameter associated with the second request; and

when the two or more processing devices are capable of executing the third instructions but not available according to the parameter, generate an emulation configuration corresponding to execution of the third instructions based on the first processing device and the second processing device.

5. The apparatus of claim 4 , wherein the processor circuitry is to:

transmit an indication that the third instructions can be executed according to the emulation configuration; and

in response to an acceptance of the emulation configuration:

split up the third instructions into third sub-instructions and fourth sub-instructions;

provide (a) the third sub-instructions to the first processing device of the two or more processing devices and (b) the fourth sub-instructions to the second processing device of the processing devices; and

combine a third output of the first processing device and a fourth output of the second processing device.

6. The apparatus of claim 4 , wherein the processor circuitry is to determine the two or more processing devices are capable of executing the third instructions but not available according to the parameter at a first time and determine the two or more processing devices are capable of executing the third instructions and available according to the parameter at a second time.

7. The apparatus of claim 1 , wherein the processor circuitry is to transmit an indication that the first instructions cannot be executed when the two or more processing devices are not capable of executing the first instructions.

8. The apparatus of claim 1 , wherein the processor circuitry is to authenticate the request prior to determining whether the two or more processing devices are available and capable of executing the first instructions according to the request.

9. The apparatus of claim 1 , wherein the two or more processing devices are configurable to operate as different sized single processing devices.

10. The apparatus of claim 9 , wherein a combination of the two or more processing devices is configurable via a policy.

11. The apparatus of claim 10 , wherein the policy is enforced via a platform trusted execution environment.

12. The apparatus of claim 1 , wherein the processing circuitry is to combine the first output of the first processing device and the second output of the second processing device by at least one of concatenating the first output and the second output, adding the first output and the second output, or multiplying the first output and the second output.

13. A non-transitory computer readable medium comprising instructions which, when executed, cause one or more processors to at least:

in response to a request to operate two or more processing devices as a single processing device, determine whether the two or more processing devices are available and capable of executing instructions according to the request;

when the two or more processing devices are available and capable of executing the instructions:

split the instructions into first sub-instructions and second sub-instructions;

provide (a) the first sub-instructions to a first processing device of the two or more processing devices and (b) the second sub-instructions to a second processing device of the two or more processing devices; and

generate an output for the instructions by combining a first output of the first processing device and a second output of the second processing device.

14. The computer readable medium of claim 13 , wherein the request is a first request and the instructions are first instructions, the instructions to cause the one or more processors to:

in response to a second request to operate the two or more processing devices as the single processing device, determine whether the two or more processing devices are available and capable of executing second instructions according to the second request; and

when the two or more processing devices are capable of executing the second instructions but not available, determine whether the two or more processing devices will be capable of executing the second instructions at a subsequent point in time.

15. The computer readable medium of claim 14 , wherein the instructions cause the one or more processors to, in response to determining that the two or more processing devices will be capable of executing the second instructions in the future, transmit a response indicating when the two or more processing devices will be available.

16. The computer readable medium of claim 13 , wherein the request is a first request and the instructions are first instructions, the instructions to cause the one or more processors to:

in response to a second request to operate the two or more processing devices as the single processing device, determine whether the two or more processing devices are available and capable of executing second instructions according to a parameter associated with the second request; and

when the two or more processing devices are capable of executing the second instructions but not available according to the parameter, generate an emulation configuration corresponding to execution of the second instructions based on the first processing device and the second processing device.

17. The computer readable medium of claim 16 , wherein the instructions cause the one or more processors to:

transmit an indication that the second instructions can be executed according to the emulation configuration; and

in response to an acceptance of the emulation configuration:

split up the second instructions into third sub-instructions and fourth sub-instructions;

provide (a) the third sub-instructions to the first processing device of the two or more processing devices and (b) the fourth sub-instructions to the second processing device of the processing devices; and

combine a third output of the first processing device and a fourth output of the second processing device.

18. The computer readable medium of claim 16 , wherein the instructions cause the one or more processors to determine the two or more processing devices are capable of executing the second instructions but not available according to the parameter at a first time and determine the two or more processing devices are capable of executing the second instructions and available according to the parameter at a second time different than the first time.

19. The computer readable medium of claim 13 , wherein the instructions cause the one or more processors to transmit an indication that the instructions cannot be executed when the two or more processing devices are not capable of executing the instructions.

20. The computer readable medium of claim 13 , wherein the instructions cause the one or more processors to authenticate the request prior to determining whether the two or more processing devices are available and capable of executing the instructions according to the request.

21. The computer readable medium of claim 13 , wherein the two or more processing devices are configurable to operate as different sized single processing devices.

22. The computer readable medium of claim 21 , wherein a combination of the two or more processing devices is configurable via a policy.

23. The computer readable medium of claim 13 , wherein the instructions cause the one or more processors to combine the first output of the first processing device and the second output of the second processing device by at least one of concatenating the first output and the second output, adding the first output and the second output, or multiplying the first output and the second output.

24. An apparatus to conditionally activate a big core in a computing system, the apparatus comprising:

Interface circuitry to obtain a request to operate two or more processing devices as a single processing device; and

processor circuitry including one or more of:

at least one of a central processing unit, a graphic processing unit, or a digital signal processor, the at least one of the central processing unit, the graphic processing unit, or the digital signal processor having control circuitry to control data movement within the processor circuitry, arithmetic and logic circuitry to perform one or more first operations corresponding to instructions, and one or more registers to store a result of the one or more first operations, the instructions in the apparatus;

a Field Programmable Gate Array (FPGA), the FPGA including logic gate circuitry, a plurality of configurable interconnections, and storage circuitry, the logic gate circuitry and interconnections to perform one or more second operations, the storage circuitry to store a result of the one or more second operations; or

Application Specific Integrate Circuitry (ASIC) including logic gate circuitry to perform one or more third operations;

the processor circuitry to perform at least one of the first operations, the second operations, or the third operations to instantiate:

hardware management circuitry to:

in response to the request, determine whether the two or more processing devices are available and capable of executing instructions according to the request;

when the two or more processing devices are available and capable of executing the instructions:

split the instructions into first sub-instructions and second sub-instructions;

provide (a) the first sub-instructions to a first processing device of the two or more processing devices and (b) the second sub-instructions to a second processing device of the two or more processing devices; and

generate an output for the instructions by combining a first output of the first processing device and a second output of the second processing device.

25. The apparatus of claim 24 , wherein the request is a first request and the instructions are first instructions, the hardware management circuitry to:

in response to a second request to operate the two or more processing devices as the single processing device, determine whether the two or more processing devices are available and capable of executing second instructions according to the second request; and

when the two or more processing devices are capable of executing the second instructions but not available, determine whether the two or more processing devices will be capable of executing the second instructions at a subsequent point in time.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 13, 2022
From: POORNACHANDRAN, RAJESH; ZIMMER, VINCENT
To: INTEL CORPORATION
Reel/Frame 059903/0582 →
Continuity (2)
Provisional Application 63222938 · Jul 16, 2021
Related Publication 20220113978A1 · Apr 14, 2022
References Cited (50)
US 8108844B2 · Crutchfield et al. · 2012 [cited by applicant]
US 8683468B2 · Breternitz et al. · 2014 [cited by applicant]
US 8745603B2 · McGuire et al. · 2014 [cited by applicant]
US 9122842B2 · Shin et al. · 2015 [cited by applicant]
US 10649749B1 · Brooker et al. · 2020 [cited by applicant]
US 10930060B2 · Surti et al. · 2021 [cited by applicant]
US 20130031545A1 · Choudhury et al. · 2013 [cited by applicant]
US 20130031550A1 · Choudhury et al. · 2013 [cited by applicant]
US 20130139137A1 · Zhao · 2013 [cited by applicant]
US 20150150019A1 · Sheaffer et al. · 2015 [cited by applicant]
US 20180267830A1 · Rivera · 2018 [cited by applicant]
US 20190014176A1 · Tormasov · 2019 [cited by applicant]
US 20190253257A1 · Yan · 2019 [cited by applicant]
US 20200007464A1 · Lo et al. · 2020 [cited by applicant]
US 20200027193A1 · Wilt et al. · 2020 [cited by applicant]
US 20200184319A1 · Croxford · 2020 [cited by applicant]
US 20200233690A1 · Bhatnagar et al. · 2020 [cited by applicant]
US 20200314171A1 · Featonby et al. · 2020 [cited by applicant]
US 20210004276A1 · Balasubramanian et al. · 2021 [cited by applicant]
US 20210055959A1 · Rehman · 2021 [cited by applicant]
US 20210110043A1 · Berger et al. · 2021 [cited by applicant]
US 20210117249A1 · Doshi et al. · 2021 [cited by applicant]
US 20210181951A1 · Jin · 2021 [cited by applicant]
US 20210200553A1 · Memon et al. · 2021 [cited by applicant]
US 20210255788A1 · Mudit · 2021 [cited by applicant]
US 20210392142A1 · Stephens · 2021 [cited by applicant]
US 20220114451A1 · Lacewell et al. · 2022 [cited by applicant]
US 20220116284A1 · Iyer et al. · 2022 [cited by applicant]
US 20220229707A1 · Lange · 2022 [cited by applicant]
US 20220413943A1 · Poornachandran et al. · 2022 [cited by applicant]
US 20240232622A9 · Poornachandran et al. · 2024 [cited by applicant]
CN 103930868A · 2014 [cited by applicant]
CN 111967590A · 2020 [cited by applicant]
Zoph et al., “Neural architecture search with reinforcement learning,” ICLR conference, 2017, 16 pages. [cited by applicant]
Cai et al., “ProxylessNAS: Direct neural architecture search on target task and hardware,” ICLR conference, 2019, 13 pages. [cited by applicant]
Elsken et al., “Neural Architecture Search: A Survey,” Journal of Machine Learning Research, vol. 20, Issue 1, published Mar. 2019, 21 pages. [cited by applicant]
Jin et al., “Auto-Keras: An Efficient Neural Architecture Search System,” Department of Computer Science and Engineering, Texas A&M University, Mar. 26, 2019, 11 pages. [cited by applicant]
Hu et al., “DSNAS: Direct Neural Architecture Search without Parameter Retraining,” Computer Vision Foundation, 2020, 10 pages. [cited by applicant]
Cai et al., “Once for All: Train One Network and Specialize it for Efficient Deployment”, 2020 International Conference on Learning Representations, Apr. 2020, 15 pages. [cited by applicant]
International Searching Authority, “International Search Report,” issued in connection with International Patent Application No. PCT/CN2021/141150, dated Mar. 23, 2022, 4 pages. [cited by applicant]
International Searching Authority, “Written Opinion,” issued in connection with International Patent Application No. PCT/CN2021/141150, mailed on Mar. 23, 2022, 5 pages. [cited by applicant]
Taiwan Intellectual Property Office, “Notice of Supplement and Correction of Application,” issued in connection with Taiwanese Patent Application No. 109120637, dated Mar. 29, 2022, 4 Pages, [English Machine Translation… [cited by applicant]
Netherlands Intellectual Property Office, “Decision formal defects,” issued in connection with Netherlands Patent Application No. 2031965, dated Jun. 1, 2022, 4 Pages, [English Machine Translation Included]. [cited by applicant]
International Searching Authority, “International Search Report,” issued in connection with International Patent Application No. PCT/US2022/034805, mailed on Oct. 17, 2022, 3 pages. [cited by applicant]
International Searching Authority, “Written Opinion,” issued in connection with International Patent Application No. PCT/US2022/034805, mailed on Oct. 17, 2022, 4 pages. [cited by applicant]
Netherlands Intellectual Property Office, “Search Report National,” issued in connection with Netherlands Patent Application No. 2031965, dated Feb. 8, 2023, 20 pages. [English language machine translation included.]. [cited by applicant]
International Searching Authority, “International Preliminary Report on Patentability,” issued in connection with International Patent Application No. PCT/CN2021/141150, issued on Jan. 4, 2024, 7 pages. [cited by applicant]
International Searching Authority, “International Preliminary Report on Patentability,” issued in connection with International Patent Application No. PCT/US2022/034805, issued on Jan. 25, 2024, 6 pages. [cited by applicant]
“XuCode: An Innovative Technology for Implementing Complex Instruction Flow,” Intel, published May 6, 2021, 5 pages. [cited by applicant]
United States Patent and Trademark Office, “Non-Final Office Action,” issued in connection with U.S. Appl. No. 17/705,256, dated Sep. 3, 2024, 28 pages. [cited by applicant]