1. A method for processing a plurality of instruction threads comprising: retrieving a first instruction from a first thread of instructions; retrieving a second instruction from a second thread of instructions; executing the first instruction in a first stage of a processing pipeline; and forwarding the first instruction to a next stage of the processing while forwarding the second instruction to the first stage of the processing pipeline such that the first instruction and the second instruction can be executed simultaneously in the processing pipeline.