1. A method of maintaining execution threads in a parallel multithreaded processor comprising: for each microengine of a plurality of microengines of the multithreaded processor: accessing, by an executing thread in the microengine, a register set of the microengine organized into a plurality of relatively addressable windows of registers that are relatively addressable per thread of the microengine.