8.1. Utilization Issues

Freja can identify three different utilization issues. Fetch and write-back utilization, which apply to the communication with memory or higher level caches that are local to the current thread. The communication utilization issue applies to communication between threads that are mapped to different caches.

Utilization issues can have a number of causes:

8.1.1. Fetch Utilization

Fetch Utilization Issue

Figure 8.1. Fetch Utilization Issue


A fetch utilization issue indicates that a part of the application exhibits poor spatial locality, that is, cache lines are only partially read. The unused parts are still loaded into the cache, which means that memory bandwidth and cache space that could be used for useful data is wasted.

The fetch utilization issues has these sections:

8.1.2. Write-Back Utilization

Write-Back Utilization Issue

Figure 8.2. Write-Back Utilization Issue


A write-back utilization issue indicates that a part of the application has poor write-back utilization, that is, cache lines are only partially updated (written) by the application. The parts that were not updated will still be written back to memory, which results in wasted bandwidth.

The write-back utilization issues has these sections:

8.1.3. Communication Utilization

Communication Utilization Issue

Figure 8.3. Communication Utilization Issue


A communication utilization issue is reported when Freja finds two locations in different threads, or rather in two threads mapped to different caches, that communicate by reading and writing the same cache lines, but only use a small part of the cache lines in each communication cycle. By utilization a larger part of the cache lines for communication the amount of coherence misses in these locations could be reduced. See Section 5.4.2, “Poor Communication Utilization” for more information about the problem.

The communication utilization issue has these sections: