Software Thread Integration For Instruction Level Parallelism