IP Library Granted Patent US 10,140,104
Granted Patent B2
US 10,140,104 · App. 15/097,764 · Granted Nov 27, 2018

Target architecture determination

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,140,104
App. No.
15/097,764
Granted
Nov 27, 2018
Kind
B2
Abstract

Examples of the present disclosure provide apparatuses and methods for target architecture determination. An example method comprises receiving an indication of a type of target architecture in a portion of source code and creating compiled code for the type of target architecture based on the indication.

Claims (45)

1. A method, comprising:

receiving an attribute that includes a named address space indicating a type of target architecture based on the named address space in a portion of instructions in source code retrieved from a memory array; and

creating compiled code for the type of target architecture based on the attribute indicating a type the type of target architecture based on the named address space by executing the instructions with a processor, wherein creating the compiled code includes compiling a first code based on a first target architecture and a second code based on a second target architecture.

2. The method of claim 1 , wherein receiving the indication includes receiving an attribute defined by the portion of source code.

3. The method of claim 1 , wherein receiving the indication includes receiving an attribute that is a named address space.

4. The method of claim 3 , wherein the method includes receiving a variable associated with the named address space.

5. The method of claim 1 , wherein receiving the indication includes receiving a named address space designated as a number.

6. The method of claim 1 , wherein the method includes receiving source code without an indication of the target architecture and creating code for a homogeneous target architecture in response to receiving the source code without the indication of the target architecture.

7. The method of claim 1 , wherein the method includes associating a named address space with each of a number of target architectures.

8. The method of claim 1 , wherein the indication is in single static assignment (SSA) form.

9. The method of claim 1 , wherein the method includes determining the target architecture associated with the indication with a compiler.

10. The method of claim 1 , wherein creating compiled code for the target architecture includes creating compiled code that includes instructions specific to the target architecture.

11. An apparatus, comprising:

a processor; and

a compiler that includes:

instructions, received from a memory array, including source code with a number of named address spaces;

a parser, wherein the parser is configured to separate source code into a number of portions based on a respective identifier for each of the number of portions of source code;

a target identifier, wherein the target identifier is configured to identify a type of target architecture based on a named address space for each of the number of portions of source code based on the respective identifier for each of the number of portions of source code; and

a code generator, wherein the code generator is configured to create a respective compiled code for the target architecture of each of the number of portions of source code, wherein creating the compiled code includes compiling a first compiled code based on a first target architecture and a second compiled code based on a second target architecture.

12. The apparatus of claim 11 , wherein the identifier for each of the number of portions of source code is an address space attribute.

13. The apparatus of claim 11 , wherein the identifier for a first one of the number of portions of source code is an address space attribute for a processing in memory (PIM) device.

14. The apparatus of claim 13 , wherein the identifier for a second one of the number of portions of source code is an address space attribute for a host processor.

15. The apparatus of claim 11 , wherein the target identifier includes a table that correlates the target architectures and identifiers.

16. The apparatus of claim 11 , wherein the respective identifier for each of the number of portions of source code includes a variable associated with a respective portion of the source code.

17. The apparatus of claim 11 , wherein the code generator is configured to generate the compiled code for a portion of source code that is part of a loop body when the portion of the source code includes a common identifier for a plurality of variables associated with the portion of the source code.

18. The apparatus of claim 11 , wherein the code generator is configured to generate a number of portions of compiled code for a portion of source code that is part of a loop body when the portion of the source code includes different identifiers for a plurality of variables associated with the portion of the source code.

19. The apparatus of claim 18 , wherein each of the number of portions of compiled code are for different target architectures.

20. The apparatus of claim 11 , the code generator is configured to generate compiled code for a portion of source code that includes complex flow control instructions when the portion of the source code includes a common identifier for a plurality of variables associated with the portion of the source code.

21. A method, comprising:

receiving source code from a memory array that includes instructions to identify a target architecture, wherein the source code includes a number of portions that each include a respective attribute indicating a type of target architecture;

determining the type of target architecture based on the named address space for compiled code for each of the number of portions of source code based on the respective attribute of each of the number of portions of source code; and

creating a number of portions of compiled code, wherein each of number of portions of compiled code is created for the type of target architecture based on the respective attribute of each of number of portions of source code.

22. The method of claim 21 , wherein the method includes identifying portions of source code that include a common indication of a type of target architecture.

23. The method of claim 22 , wherein creating the number of portions of compiled code includes creating compiled code for the portions of source code that were identified as including the common indication of the target architecture.

24. The method of claim 21 , wherein the method includes determining that the type of target architecture for a particular portion of source code without an indicator is a host processor.

25. The method of claim 21 , wherein determining the target architecture for each of the number of portions of source code includes using a table in a compiler that correlates target architectures with address space indicators.

26. An apparatus, comprising:

a processor; and

a compiler that includes:

instructions, received from a memory array, including source code with a number of named address spaces;

a target identifier, wherein the target identifier identifies a type of target architecture based on the named address space for each of a number of portions of source code based on a respective identifier for each of the number of portions of source code; and

a code generator, wherein the code generator is configured to create compiled code for each of the number of portions of source code and wherein the compiled code includes a number of portions that are created for each target architecture indicated by the respective identifier for each of the number of portions of source code.

27. The apparatus of claim 26 , wherein the respective identifier for each of the number portions of source code identifies heterogeneous target architecture associated with a respective portion of source code.

28. The apparatus of claim 26 , wherein the code generator is configured to create compiled code that is specific for each type of target architecture indicated by the respective identifier for each of the number portions of source code.

29. The apparatus of claim 26 , wherein the target identifier includes a table correlating the type of target architectures with identifiers.

Assignments (8)
RELEASE OF SECURITY INTEREST Recorded Nov 12, 2019
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.; MICRON SEMICONDUCTOR PRODUCTS, INC.
Reel/Frame 051028/0001 →
RELEASE OF SECURITY INTEREST Recorded Oct 9, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 050937/0001 →
RELEASE OF SECURITY INTEREST Recorded Aug 23, 2018
From: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 047243/0001 →
SECURITY INTEREST Recorded Jul 13, 2018
From: MICRON TECHNOLOGY, INC.; MICRON SEMICONDUCTOR PRODUCTS, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 047540/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REPLACE ERRONEOUSLY FILED PATENT #7358718 WITH THE CORRECT PATENT #7358178 PREVIOUSLY RECORDED ON REEL 038669 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Jun 8, 2017
From: MICRON TECHNOLOGY, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 043079/0001 →
PATENT SECURITY AGREEMENT Recorded Jun 2, 2016
From: MICRON TECHNOLOGY, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 038954/0001 →
SECURITY INTEREST Recorded May 12, 2016
From: MICRON TECHNOLOGY, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 038669/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 13, 2016
From: LEIDEL, JOHN D.
To: MICRON TECHNOLOGY, INC.
Reel/Frame 038270/0056 →