IP Library › Granted Patent US 10,802,883
Granted Patent B2
US 10,802,883 · App. 16/107,215 · Granted Oct 13, 2020

Method, system, and device for near-memory processing with cores of a plurality of sizes

Inventors: Alaa R. Alameldeen (Hillsboro, OR); Berkin Akin (Hillsboro, OR)
Assignee: INTEL CORPORATION
G06F9/5044G06F1/3206G06F1/329G06F1/3287G06F9/48G06F9/485G06F9/4806G06F9/4843G06F9/4856G06F9/4881G06F9/50G06F9/5005G06F9/5027G06F13/4234
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,802,883
App. No.
16/107,215
Granted
Oct 13, 2020
Kind
B2
Abstract

A device is configured to be in communication with one or more host cores via a first communication path. A first set of processing-in-memory (PIM) cores and a second set of PIM cores are configured to be in communication with a memory included in the device over a second communication path, wherein the first set of PIM cores have greater processing power than the second set of PIM cores, and wherein the second communication path has a greater bandwidth for data transfer than the first communication path. Code offloaded by the one or more host cores are executed in the first set of PIM cores and the second set of PIM cores.

Claims (40)

1. A device configurable to be in communication with one or more host cores via a first communication path, the device comprising:

a substrate, comprising:

a memory;

a first set of processing-in-memory (PIM) cores;

a second set of PIM cores, wherein the first set of PIM cores have greater processing power than the second set of PIM cores; and

a second communication path coupling the first set of PIM cores and the second set of PIM cores to the memory, wherein the second communication path has a greater bandwidth for data transfer than the first communication path, and wherein the device is configurable to

execute a code offloaded by the one or more host cores in the first set of PIM cores and the second set of PIM cores, wherein the first set of PIM cores have greater processing power and are larger in size than the second set of PIM cores, wherein first code segments of the code are determined to be suitable for sequential processing and are executed in the first set of PIM cores without returning the first code segments of the code to the one or more host cores, and wherein second code segments of the code are determined to be suitable for parallel processing and are executed in the second set of PIM cores.

2. The device of claim 1 , wherein the second set of PIM cores are greater in number than the first set of PIM cores.

3. The device of claim 1 , wherein a first set of tasks and a second set of tasks are generated from the code, wherein the first set of tasks are more suitable for processing on the host cores in comparison to the device, but code segments corresponding to the first set of tasks have been offloaded by the host cores to the device via the code, wherein the second set of tasks are more suitable for processing in the device in comparison to the first set of tasks, and wherein the first set of tasks are executed in the first set of PIM cores, and the second set of tasks are executed in the second set of PIM cores.

4. The device of claim 1 , wherein the first set of PIM cores are powered down, in response to a determination that the first set of PIM cores are not being utilized, and wherein the second set of PIM cores are powered down, in response to a determination that the second set of PIM cores are not being utilized.

5. A method, comprising:

configuring a device to be in communication with one or more host cores via a first communication path;

configuring a first set of processing-in-memory (PIM) cores and a second set of PIM cores to be in communication with a memory included in the device over a second communication path, wherein the first set of PIM cores have greater processing power than the second set of PIM cores, and wherein the second communication path has a greater bandwidth for data transfer than the first communication path; and

executing code offloaded by the one or more host cores in the first set of PIM cores and the second set of PIM cores, wherein the first set of PIM cores have greater processing power and are larger in size than the second set of PIM cores, wherein first code segments of the code are determined to be suitable for sequential processing and are executed in the first set of PIM cores without returning the first code segments of the code to the one or more host cores, and wherein second code segments of the code are determined to be suitable for parallel processing and are executed in the second set of PIM cores.

6. The method of claim 5 , wherein the second set of PIM cores are greater in number than the first set of PIM cores.

7. The method of claim 5 , the method further comprising:

generating a first set of tasks and a second set of tasks from the code;

determining that the first set of tasks are more suitable for processing on the host cores in comparison to the device, but code segments corresponding to the first set of tasks have been offloaded by the host cores to the device via the code;

determining the second set of tasks are more suitable for processing in the device in comparison to the first set of tasks;

executing the first set of tasks in the first set of PIM cores; and

executing the second set of tasks in the second set of PIM cores.

8. The method of claim 5 , the method further comprising:

powering down the first set of PIM cores, in response to a determining that the first set of PIM cores are not being utilized; and

powering down the second set of PIM cores, in response to a determining that the second set of PIM cores are not being utilized.

9. A system, comprising:

one or more host cores;

a display; and

a device configurable to be in communication with the one or more host cores via a first communication path, the device comprising:

a substrate, comprising:

a memory;

a first set of processing-in-memory (PIM) cores;

a second set of PIM cores, wherein the first set of PIM cores have greater processing power than the second set of PIM cores; and

a second communication path coupling the first set of PIM cores and the second set of PIM cores to the memory, wherein the second communication path has a greater bandwidth for data transfer than the first communication path, and wherein the device is configurable to execute a code offloaded by the one or more host cores in the first set of PIM cores and the second set of PIM cores, wherein the first set of PIM cores have greater processing power and are larger in size than the second set of PIM cores, wherein first code segments of the code are determined to be suitable for sequential processing and are executed in the first set of PIM cores without returning the first code segments of the code to the one or more host cores, and wherein second code segments of the code are determined to be suitable for parallel processing and are executed in the second set of PIM cores.

10. The system of claim 9 , wherein the second set of PIM cores are greater in number than the first set of PIM cores.

11. The system of claim 9 , wherein a first set of tasks and a second set of tasks are generated from the code, wherein the first set of tasks are more suitable for processing on the host cores in comparison to the device, but code segments corresponding to the first set of tasks have been offloaded by the host cores to the device via the code, wherein the second set of tasks are more suitable for processing in the device in comparison to the first set of tasks, and wherein the first set of tasks are executed in the first set of PIM cores, and the second set of tasks are executed in the second set of PIM cores.

12. The system of claim 9 , wherein the first set of PIM cores are powered down, in response to a determination that the first set of PIM cores are not being utilized, and wherein the second set of PIM cores are powered down, in response to a determination that the second set of PIM cores are not being utilized.

13. A method for manufacturing a device configurable to be in communication with one or more host cores via a first communication path, the method comprising:

placing a memory in a first area of a substrate; and

subdividing a second area of the substrate to store a first set of processing-in-memory (PIM) cores and a second set of PIM cores, wherein the first set of PIM cores have greater processing power than the second set of PIM cores, wherein a second communication path couples the first set of PIM cores and the second set of PIM cores to the memory, wherein the second communication path has a greater bandwidth for data transfer than the first communication path, and wherein the device is configurable to execute a code offloaded by the one or more host cores in the first set of PIM cores and the second set of PIM cores, wherein the first set of PIM cores have greater processing power and are larger in size than the second set of PIM cores, wherein first code segments of the code are determined to be suitable for sequential processing and are executed in the first set of PIM cores without returning the first code segments of the code to the one or more host cores, and wherein second code segments of the code are determined to be suitable for parallel processing and are executed in the second set of PIM cores.

14. The method for manufacturing of claim 13 , wherein the second set of PIM cores are greater in number than the first set of PIM cores.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 12, 2019
From: AKIN, BERKIN; ALAMELDEEN, ALAA R.
To: INTEL CORPORATION
Reel/Frame 048575/0865 →
Continuity (1)
Related Publication 20190041952A1 · Feb 7, 2019
Cited By (1)
US 12,511,294