[Gems-users] Simulation of the Communication Bottleneck in Cache Coherency Memory Access


Date: Wed, 27 Apr 2011 17:58:12 +0200
From: John Shield <john.shield@xxxxxxxxxxx>
Subject: [Gems-users] Simulation of the Communication Bottleneck in Cache Coherency Memory Access
Dear all,

I'm going to ask two things.

Firstly, can anyone confirm that the SLICC cache coherency policies do not consider the wait time caused by other accesses sent to the Directory system (modelled in the protocols).
When going through the protocols, it appears that cache messages do not 
compete for the resources of the Directory. There are queues in the 
SLICC description, but the wait time for earlier messages in the queue 
doesn't seem to make a difference for the latency of later messages. 
This is would also be a problem for each individual cache being able to 
process an unlimited number of external requests in the time to takes to 
do 1 request.
To make the problem clear, all the components have have infinite 
parallel bandwidth including the main memory.
This behaviour means that the additional latency caused by multiple 
messages at the same time are ignored. Ten messages arriving at 
Directory are processed with the same latency as a single message, 
because the latency of ten messages competing for communication 
bandwidth doesn't occur.
Secondly, if what I'm seeing is correct (lack of bottleneck calculation) 
does anyone know a way this problem can be fixed? I think I could fix 
this problem myself if I could access the relative timing of cache 
requests then I could add up the bottleneck latencies of the input 
queues as part of the coherency protocol.
The communication bottleneck is the main problem research needs to solve 
in the design of cache coherency architecture. Without some kind of 
bottleneck behaviour being modelled, the cache coherency results would 
be poor. The results would be for an infinite bandwidth system, and 
system would not model the performance losses of a badly designed cache 
coherency system.

Background of my own work:
I wanting to build some non-standard coherency policies, to relieve communication bottleneck problems. However, to do this I need the simulation to simulate the bottleneck problems. Furthermore, I was planning on adding a "main memory" description to simulate the main memory bottleneck and to allow for writeback (currently not supported in the ruby coherency protocols). Writeback is also nesscary to fix the modelling problem of infinite cache size in the SLICC description.

I would appreciate any assistance,

John Shield

[← Prev in Thread] Current Thread [Next in Thread→]