PowerPC e500 Core Family Reference Manual, Rev. 1
11-4
Freescale Semiconductor
L1 Caches
11.1.1.1.1 Caching-Allowed Loads and the LSU
When free of data dependencies, caching-allowed loads execute in the LSU in a speculative
manner with a maximum throughput of one instruction per cycle and a total 3-cycle latency for
integer loads. Data returned from the cache on a load is held in a rename buffer until the
completion logic commits the value to the processor state.
11.1.1.1.2 Store Queue
Stores cannot be executed speculatively and are held in the seven-entry store queue, shown in
Figure 11-1
, until the completion logic indicates that the store instruction is to be committed. The
store queue arbitrates for access to the L1 data cache. When arbitration is successful, the data is
written to the data cache and the store is removed from the store queue. If a store is
caching-inhibited, the operation moves through the store queue on to the rest of the memory
subsystem.
11.1.1.1.3 L1 Load Miss Queue (LMQ)
As loads reach the LSU, the LSU tries to access the cache. If there is a hit, the cache returns the
data. If there is a miss, the LSU allocates an entry in the four-entry load miss queue (LMQ)
(nine-entry in the e500v2) and the three-entry data line fill buffer (DLFB) (five-entry in the
e500v2); see
Section 4.4.2.1, “Load/Store Unit Queueing Structures
.” The LSU then queues a bus
transaction to read the line. If a subsequent load hits, the cache returns the results. If a subsequent
load misses, the LSU allocates a second LMQ entry and, if the load is to a different cache line than
the outstanding miss, allocates a second DLFB entry and queues a second read transaction on the
bus. If the load miss is to the same cache line as the already outstanding miss, the LSU does not
allocate a second DLFB entry.
The LSU continues processing load hits and load misses until one of the following conditions
occurs:
•
A load miss occurs and the LMQ is full.
•
The LSU tries to perform a load miss, all DLFB entries are full, and the load is not to any
of the cache lines represented in the DLFB.
11.1.1.1.4 Data Line Fill Buffer (DLFB)
The data line fill buffer (DLFB) is located in the LSU; there are three entries in the e500v1 DLFB
and five in the e500v2 DLFB. DLFB entries are used for loads and caching-allowed stores. Stores
are allocated in the DLFB so that loads can access data from the store immediately (loads cannot
access data from the L1 store queue). Also, using DLFB entries for stores, frees up entries in the
L1 store queue. Multiple caching-allowed store misses are merged in the DLFB. See
Section 11.6.1.4, “Store Miss Merging
,” for more information.
Содержание PowerPC e500 Core
Страница 1: ...PowerPC e500 Core Family Reference Manual Supports e500v1 e500v2 E500CORERM Rev 1 4 2005...
Страница 36: ...PowerPC e500 Core Family Reference Manual Rev 1 xxxvi Freescale Semiconductor...
Страница 38: ...PowerPC e500 Core Family Reference Manual Rev 1 Part I 2 Freescale Semiconductor...
Страница 316: ...PowerPC e500 Core Family Reference Manual Rev 1 7 18 Freescale Semiconductor Performance Monitor...
Страница 332: ...PowerPC e500 Core Family Reference Manual Rev 1 Part II 2 Freescale Semiconductor...
Страница 362: ...PowerPC e500 Core Family Reference Manual Rev 1 10 26 Freescale Semiconductor Auxiliary Processing Units APUs...
Страница 440: ...PowerPC e500 Core Family Reference Manual Rev 1 A 8 Freescale Semiconductor Programming Examples...
Страница 444: ...PowerPC e500 Core Family Reference Manual Rev 1 B 4 Freescale Semiconductor Guidelines for 32 Bit Book E...
Страница 530: ...Opcode Listings PowerPC e500 Core Family Reference Manual Rev 1 D 50 Freescale Semiconductor...
Страница 534: ...PowerPC e500 Core Family Reference Manual Rev 1 E 4 Freescale Semiconductor Revision History...