|
|
|
|
|
|
|
6.8.7 Simple Write-Through Caches |
|
|
|
|
|
|
|
|
The analysis of write-through caches largely follows that of copyback caches. There are two differences, however: |
|
|
|
|
|
|
|
|
1. Tbusy is simpler, since no dirty line writes need be considered. |
|
|
|
|
|
|
|
|
2. Writes that immediately precede a miss can delay the line access until memory is available. |
|
|
|
|
|
|
|
|
For a processor that waits until the cache line is filled before resuming: |
|
|
|
 |
|
|
|
|
Tbusy = Tm.miss - Tc.miss = 0. |
|
|
|
|
|
|
|
|
For the processors using fetch bypass, Tc.miss = Ta and |
|
|
|
 |
|
|
|
|
Tbusy = Tline access - Ta. |
|
|
|
|
|
|
|
|
The modeling of memory and write-through cache interaction strongly depends on: |
|
|
|
|
|
|
|
|
1. The existence of write buffers. |
|
|
|
|
|
|
|
|
2. The policy of dealing with the write buffer contents on a read miss. |
|
|
|
|
|
|
|
|
3. The amount of write traffic. |
|
|
|
|
|
|
|
|
In the following, we consider some typical modeling cases: |
|
|
|
|
|
|
|
|
1. No write buffer, low write traffic. |
|
|
|
|
|
|
|
|
Here, we need only compute an interference time, since we assume that memory contention is generally negligible. Tinterference can then be computed, as in the case of copyback caches, but recall that the processor traffic (lp) now consists only of read traffic, since write cannot cause a miss. Writes that immediately (within Tc) precede a read miss occupy memory and delay the line access. For simplicity of discussion (and memory control), assume that all memory modules involved with a line access must be available before it can begin. Let us call the effect of these "writes before misses" Twrite interference.As with read interference, we need to compute: |
|
|
|
 |
|
|
|
|
Twrite interference = Prob (write during Tc given a read miss) delay factor. |
|
|
|
|
|