1. A method comprising: for each cycle of a plurality of cycles: selecting between a plurality of threads to determine a first selected thread for a first stage of a processing pipeline; processing, at the first stage, an instruction data associated with the first selected thread for the first stage; selecting between the plurality of threads to determine a second selected thread for a second stage of a processing pipeline; and processing, at the second stage, an instruction data associated with the second selected thread for the second stage.