A System and method for hiding memory latency in a multi-thread
environment is presented. Branch Indirect and Set Link (BISL) and/or
Branch Indirect and Set Link if External Data (BISLED) instructions are
placed in thread code during compilation at instances that correspond to
a prolonged instruction. A prolonged instruction is an instruction that
instigates latency in a computer system, such as a DMA instruction. When
a first thread encounters a BISL or a BISLED instruction, the first
thread passes control to a second thread while the first thread's
prolonged instruction executes. In turn, the computer system masks the
latency of the first thread's prolonged instruction. The system can be
optimized based on the memory latency by creating more threads and
further dividing a register pool amongst the threads to further hide
memory latency in operations that are highly memory bound.