IP Library Granted Patent US 9,483,264
Granted Patent B2
US 9,483,264 · App. 14/458,158 · Granted Nov 1, 2016

Trace-based instruction execution processing

Inventors: Mitchell Alsup (Austin, TX); Boris Beylin (Palo Alto, CA); Michael Shebanow (San Jose, CA); SungSoo Park (Cupertino, CA)
Assignee: Samsung Electronics Co., Ltd.
G06F9/30G06F9/30145G06F9/30181G06F9/48G06F9/4881
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 9,483,264
App. No.
14/458,158
Granted
Nov 1, 2016
Kind
B2
Abstract

A method for executing instructions in a thread processing environment includes determining a multiple requirements that must be satisfied and resources that must be available for executing multiple instructions. The multiple instructions are encapsulated into a schedulable structure. A header is configured for the schedulable structure with information including the determined multiple requirements and resources. The schedulable structure is schedule for executing each of the multiple instructions using the information.

Claims (57)

1. A method for executing instructions in a thread processing environment, the method comprising:

determining a plurality of requirements that must be satisfied and resources that must be available for executing a plurality of instructions;

encapsulating the plurality of instructions into a schedulable structure, wherein encapsulating the plurality of instructions into the schedulable structure comprises:

analyzing an intermediate state of codes within each basic block and topology of a control flow graph during the compilation process;

partitioning the codes into regions for determining timing characteristics within a region such that the timing characteristics are known and enforced by static compiler scheduling;

enforcing an availability of resulting values computed by non-deterministic latency instructions through a counter based waiting scheme; and

utilizing a plurality of basic blocks and control flow graph heuristics for forming the schedulable structure;

configuring a header for the schedulable structure with information comprising the determined plurality of requirements and resources;

scheduling the schedulable structure for executing each of the plurality of instructions using the information; and

allocating at least one tunnel register file for the schedulable structure to store data for use within the schedulable structure,

wherein the thread processing environment comprises a single instruction multi-thread (SIMT) processing architecture, and the plurality of instructions are executed in a compilation process.

2. The method of claim 1 , wherein the requirements comprise a list of dependent hardware events required for execution of the plurality of instructions, and the resources comprise resources that are required to execute all of the plurality of instructions to completion.

3. The method of claim 2 , wherein the dependent hardware events must be satisfied before a subsequent schedulable structure begins execution.

4. The method of claim 3 , wherein the header further comprises an instruction count for a number of instructions that are loaded before the subsequent schedulable structure begins execution.

5. The method of claim 4 , wherein the plurality of instructions of the schedulable structure are executed without stalling.

6. The method of claim 5 , wherein the at least one tunnel register file is configured to not persist across schedulable structure boundaries.

7. The method of claim 6 , wherein the schedulable structure comprises a trace data structure, and the trace data structure is a shader program fragment used for a graphical processing unit (GPU) pipeline.

8. The method of claim 7 , wherein the plurality of instructions comprises shader core instructions.

9. The method of claim 8 , wherein the GPU is used by an electronic device.

10. The method of claim 9 , wherein the electronic device comprises a mobile electronic device.

11. A non-transitory computer-readable medium having instructions which when executed on a computer perform a method comprising:

selecting a plurality of instructions to execute in a thread processing environment;

determining a plurality of requirements that must be satisfied and resources that must be available for executing the plurality of instructions;

encapsulating the plurality of instructions into a schedulable structure, wherein encapsulating the plurality of instructions into the schedulable structure comprises:

analyzing an intermediate state of codes within each basic block and topology of a control flow graph during the compilation process;

partitioning the codes into regions for determining timing characteristics within a region such that the timing characteristics are known and enforced by static compiler scheduling;

enforcing an availability of resulting values computed by non-deterministic latency instructions through a counter based waiting scheme; and

utilizing a plurality of basic blocks and control flow graph heuristics for forming the schedulable structure;

configuring a header for the schedulable structure with information comprising the determined plurality of requirements and resources;

scheduling the schedulable structure for executing each of the plurality of instructions using the information; and

allocating at least one tunnel register file for the schedulable structure to store data for use within the schedulable structure,

wherein the thread processing environment comprises a single instruction multi-thread (SIMT) processing architecture, and the plurality of instructions are executed in a compilation process.

12. The medium of claim 11 , wherein the requirements comprise a list of dependent hardware events required for execution of the plurality of instructions, the resources comprise resources that are required to execute all of the plurality of instructions to completion, and the dependent hardware events must be satisfied before a subsequent schedulable structure begins execution.

13. The medium of claim 12 , wherein the header further comprises an instruction count for a number of instructions that are loaded before the subsequent schedulable structure begins execution.

14. The medium of claim 13 , wherein the plurality of instructions of the schedulable structure are executed without stalling.

15. The medium of claim 14 , wherein the at least one tunnel register file is configured to not persist across schedulable structure boundaries.

16. The medium of claim 15 , wherein the schedulable structure comprises a trace data structure, the trace data structure is a shader program fragment used for a graphical processing unit (GPU) pipeline, and the plurality of instructions comprises shader core instructions.

17. The medium of claim 16 , wherein the GPU is used by a mobile electronic device.

18. A graphics processor for an electronic device comprising:

at least one processing element coupled to a memory device, wherein the at least one processing element is configured to:

select a plurality of instructions to execute;

determine a plurality of requirements that must be satisfied and resources that must be available for executing the plurality of instructions;

encapsulate the plurality of instructions into a schedulable structure, wherein the at least one processing element is further configured to encapsulate the plurality of instructions into the schedulable structure based on:

analyzing an intermediate state of codes within each basic block and topology of a control flow graph during the compilation process;

partitioning the codes into regions for determining timing characteristics within a region such that the timing characteristics are known and enforced by static compiler scheduling;

enforcing an availability of resulting values computed by non-deterministic latency instructions through a counter based waiting scheme; and

utilizing a plurality of basic blocks and control flow graph heuristics for forming the schedulable structure;

configure a header for the schedulable structure with information comprising the determined plurality of requirements and resources;

schedule the schedulable structure for executing each of the plurality of instructions using the information; and

allocate at least one tunnel register file for the schedulable structure to store data for use within the schedulable structure,

wherein the graphics processor comprises a single instruction multi-thread (SIMT) processing architecture, and the plurality of instructions are executed during a compilation process.

19. The graphics processor of claim 18 , wherein the requirements comprise a list of dependent hardware events required for execution of the plurality of instructions, the resources comprise hardware resources that are required to execute all of the plurality of instructions to completion, and the dependent hardware events must be satisfied before a subsequent schedulable structure begins execution.

20. The graphics processor of claim 19 , wherein the header further comprises an instruction count for a number of instructions that are loaded before the subsequent schedulable structure begins execution.

21. The graphics processor of claim 20 , wherein the plurality of instructions of the schedulable structure are executed by the at least one processing element without stalling.

22. The graphics processor of claim 21 , wherein the at least one tunnel register file is configured to not persist across schedulable structure boundaries.

23. The graphics processor of claim 22 , wherein the schedulable structure comprises a trace data structure, the trace data structure is a shader program fragment used for a pipeline of the graphics processor, and the plurality of instructions comprises shader core instructions.

24. The graphics processor of claim 23 , wherein the electronic device comprises a mobile electronic device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 12, 2014
From: ALSUP, MITCHELL; BEYLIN, BORIS; SHEBANOW, MICHAEL; PARK, SUNGSOO
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 033520/0281 →
Continuity (2)
Provisional Application 61991338 · May 9, 2014
Related Publication 20150324228A1 · Nov 12, 2015