Thread-Level Parallelism Flashcards
What is Uniform Memory Access?
UMA is a shared memory multiprocessor architecture type where each processor takes the same amount of time to access any memory location. The processors are connected by a bus or on-chip/on-board interconnect
What is Non-Uniform Memory Access?
NUMA is a shared memory multiprocessor architecture type where memory access times are not similar across processors. It depends on the processor’s proximity to the memory
What is the “Shared” state in the MESI protocol?
The cache line is clean (not modified) and there may be multiple copies
What is the “Exclusive” state in the MESI protocol?
The cache line is clean (not modified) and only a local copy exists
What is the “Modified” state in the MESI protocol?
The cache line is dirty (modified) and only a local copy exists
What is the “Invalid” state in the MESI protocol?
The local copy of the cache line is invalid
If the memory state is “Shared” and there is a local write to it, what must be done?
- Update state to “Modified”
- Issue bus upgrade
If the memory state is “Exclusive” and there is a read detected on the bus to it, what must be done?
- Respond “shared” on the bus line
- Update state to “Shared”
If the memory state is “Modified” and there is a read detected on the bus to it, what must be done?
- Respond “dirty”
- Write data back
- Update state to “Shared”
What does the “upgrade” bus transaction do?
Upon modifying a block, “upgrade” invalidates the local copy of other processors if the block is shared
List the advantage and disadvantage of the “Owned” state in the MOESI protocol
Advantage: Reduces (slow) writebacks to memory
Disadvantage: Onus is on the owner
- In the MOESI protocol, when do write-backs to memory happen?
- What happens on a read-miss for a dirty block?
- Write-backs to memory occur just before block eviction
- The cache with the dirty block (aka the Owner) forwards it to the cache that triggered the read miss. The latter becomes the owner
What responsibility does the owner have in a MOESI protocol?
It must respond to all misses by other caches.
What is the forwarding state in the MESIF protocol?
The most recent reader of a clean block holds it in the forwarding state. It forwards the block on a miss request. Upon forwarding the block, it transitions to the shared state
What is a sharing vector in the directory cache coherence protocol? What are its fields?
A table/vector in each memory segment that tracks the blocks in each of the caches in its system. It stores the block number, a bit for where it is dirty, and a bit for each of the nodes to identify which node is reading from it.