Abstract
Two globally accepted techniques for dealing with the problem of long main memory
latency are multithreading and memory hierarchy. Multithreading aims to hide long memory
latencies by executing instructions from different threads when the one currently executing is
issuing a long request. On the other hand, the insertion of one or more cache levels between
the CPU and main memory attempts to minimize the response time allowing the CPU to
work closer to its fast rates. Unfortunately the combination of the above techniques, especially
in a single processor system, is not a trivial task. The effect of multithreading on the address
referencing pattern affects both the temporal and spatial locality of programs on which
principles of memory hierarchy design are based. We study the effect of different block sizes
on the performance of both the cache and the processor. We find that although the miss rate
is reduced as the block size increases the performance of the processor is either reduced or
unaffected for a given memory bandwidth.