Patent ID: 8732711
Filing Date: 2014-05-20
Classification: G06F

Abstract:
1. A method for executing a program in a multi-threaded processing environment, the method comprising: receiving, for execution by a multi-threaded execution unit, a plurality of threads that each include a portion of the program; storing state specific to each thread of the plurality of threads in thread entries; promoting, based on a latency characteristic, a sub-set of threads from the plurality of threads to occupy strand slots, wherein the sub-set of threads that occupy the strand slots are considered for execution and remaining threads in the plurality of threads that do not occupy the strand slots are not considered for execution; selecting a first thread from a first strand slot of the strand slots for execution by the multi-threaded execution unit; issuing the first thread for execution by the multi-threaded execution unit; determining that a second thread occupying a second strand slot of the strand slots has encountered a latency event; and demoting the second thread by removing the second thread from the second strand slot.