A system and method for an efficient implementation of a software-managed
cache is presented. When an application thread executes on a simple
processor, the application thread uses a conditional data select
instruction for eliminating a conditional branch instruction when
accessing a software-managed cache. An application thread issues a
conditional data select instruction (DMA transfer) after a cache
directory lookup, wherein the size of the requested data is dependent
upon the outcome of the cache directory lookup. When the cache directory
lookup results in a cache hit, the application thread requests a transfer
of zero bits of data, which results in a DMA controller (DMAC) performing
a no-op instruction. When the cache directory lookup results in a cache
miss, the application thread requests a data block transfer the size of a
corresponding cache line.