US 9,811,377 B2
Method for executing multithreaded instructions grouped into blocks
Mohammad Abdallah, El Dorado Hills, CA (US)
Assigned to INTEL CORPORATION, Santa Clara, CA (US)
Filed by Intel Corporation, Santa Clara, CA (US)
Filed on Mar. 14, 2014, as Appl. No. 14/214,280.
Claims priority of provisional application 61/800,123, filed on Mar. 15, 2013.
Prior Publication US 2014/0282592 A1, Sep. 18, 2014
Int. Cl. G06F 9/46 (2006.01); G06F 9/48 (2006.01); G06F 9/50 (2006.01); G06F 9/52 (2006.01); G06F 9/30 (2006.01); G06F 9/38 (2006.01)
CPC G06F 9/4881 (2013.01) [G06F 9/30094 (2013.01); G06F 9/3824 (2013.01); G06F 9/3836 (2013.01); G06F 9/3838 (2013.01); G06F 9/3851 (2013.01); G06F 9/48 (2013.01); G06F 9/4887 (2013.01); G06F 9/50 (2013.01); G06F 9/5005 (2013.01); G06F 9/5011 (2013.01); G06F 9/5016 (2013.01); G06F 9/5027 (2013.01); G06F 9/5038 (2013.01); G06F 9/52 (2013.01); G06F 9/524 (2013.01)] 14 Claims
OG exemplary drawing
 
1. A method of executing multithreaded instructions grouped into blocks, said method comprising:
receiving an incoming instruction sequence using a global front end;
grouping instructions from the instruction sequence to form instruction blocks, wherein the instructions of the instruction blocks are interleaved with multiple threads, wherein instruction blocks belonging to different threads can be interleaved within a scheduler array, and further wherein a thread pointer map is operable to map instruction blocks belonging to different threads to physical storage locations in order to manage the multiple threads, where each thread has a separate thread pointer map:
scheduling the instructions of the instruction blocks to execute in accordance with the multiple threads; and
tracking execution of the multiple threads to enforce a fairness policy using allocation counters of an execution pipeline, where each allocation counter tracks a number of entries in a correlated thread pointer map, further comprising using the allocation counters to allocate instruction blocks belonging to different threads within a scheduler array to implement the fairness policy.