Patent ID: 8122455

Claim:
A network processor to process network data, comprising: a plurality of microengines, wherein the plurality of microengines include a plurality of threads that process network data as a result of executing one or more microblocks, a performance monitoring unit to determine a first load indicator and a second load indicator corresponding to a first microengine and a second microengine at pre-specified time intervals, and a scheduler to, schedule a thread of the first microengine, allocated to execute a first microblock, to execute at least a portion of a second microblock, allocated to be executed on the second microengine, in response to determining that the first load indicator is less than the second load indicator by more than a specified value, retrieve the first load indicator and the second load indicator, wherein the first load indicator and the second load indicator respectively represent an idle cycle count of the first microengine and the second microengine, compare the first load indicator and the second load indicator respectively with the first threshold and the second threshold, and schedule the thread of the first microengine, allocated to execute the first microblock, to execute a portion of the second microblock if the idle cycle count of the first microengine is more than the first threshold and the idle cycle count of the second microengine is less than the second threshold.