
Sun Microelectronics
276
UltraSPARC User’s Manual
Figure 16-13
Pipelined Loads to the E-Cache (
1–1–1 mode
shown)
Thus, the load buffer must be at least seven entries deep to accommodate all
pipelined loads in the steady state. Two additional entries are needed so that,
with seven loads in the buffer, two more loads can be issued without blocking.
One of additional these entries is in the W Stage, the other is in the C Stage (loads
enter the load buffer in N
1
). Thus, the load buffer must be (and is) nine entries
deep.
16.3.6.2 Mixing D-Cache Misses and D-Cache Hits
UltraSPARC “golden rule” is that all load data are returned in order. For instance
if a load misses the D-Cache, enters the load buffer, and is followed by a load that
hits the D-Cache, the data for the second (younger) load is not accessible. In this
case, the younger load also must enter the load buffer; it will access the D-Cache
array only after the older load (D-Cache miss) does so. If the load buffer is not
empty, the D-Cache array access is decoupled from the D-Cache tag access; that
is, it is performed some cycles after the tag access.
Note:
Accessing blocked data in the D-Cache while there is a load in the load
buffer and scheduling the code so that operations can be performed on the
blocked load data is not supported on UltraSPARC. Data is always returned and
operated upon in order.
Code Example 16-1 on page 277 clarifies what is not supported without stalls on
UltraSPARC.
load r
1
G
E
C
N
1
Q
Q
Q
Q
Q
load r
2
G
E
C
N
1
Q
Q
Q
Q
Q
load r
3
G
E
C
N
1
Q
Q
Q
Q
Q
load r
4
G
E
C
N
1
Q
Q
Q
Q
Q
load r
5
G
E
C
N
1
Q
Q
Q
Q
Q
load r
6
G
E
C
N
1
Q
Q
Q
Q
Q
load r
7
G
E
C
N
1
Q
Q
Q
Q
Q
load r
8
G
E
C
N
1
Q
Q
Q
Q
Q
use r
1
G
E
C
N
1
N
2
N
3
W
Artisan Technology Group - Quality Instrumentation ... Guaranteed | (888) 88-SOURCE | www.artisantg.com