Instruction Caching In Multithreading Processors Using Guarantees