I’m trying to calculate the Effective Memory Access Time (EMAT) for a system described in the following problem:
Problem Setup
- The system uses Intel Ice Lake Client micro-architecture with multiple TLBs.
- Page size: 4 KiB.
- TLB structure:
- L1-D TLB: 64 entries, access time = 1 ns.
- L2 TLB: 2048 entries, access time = 5 ns.
- Parameters:
- Memory access time (( Delta t_{mem} )) = 100 ns.
- On a TLB miss, 4 additional memory accesses are required.
- Hit rates:
- L1-D TLB hit rate (( rho_{TLB,L1-D} )) = 30%.
- L2 TLB hit rate (( rho_{TLB,L2} )) = 98%.
What to Calculate
The Effective Memory Access Time (EMAT), which combines the contributions of hits and misses across the two TLB levels and memory access.
My Attempt
-
EMAT Formula Setup:
- If there’s an L1-D hit, EMAT is the L1-D access time.
- If there’s an L1-D miss but an L2 hit, EMAT includes both TLB access times.
- On a complete miss, include memory access time for additional loads.
Formula:
EMAT = (ρ_TLB,L1-D * Δt_TLB,L1-D) + ((1 - ρ_TLB,L1-D) * (ρ_TLB,L2 * (Δt_TLB,L1-D + Δt_TLB,L2) + (1 - ρ_TLB,L2) * (Δt_TLB,L1-D + Δt_TLB,L2 + 4 * Δt_mem)))
-
Plugging in Values:
EMAT = (0.30 * 1) + (0.70 * (0.98 * (1 + 5) + 0.02 * (1 + 5 + 4 * 100)))
-
Stuck on Simplification:
I’m struggling to simplify this correctly and ensure the logic is accurate.
What I Need Help With
- Is my formula for EMAT correct based on the problem setup?
- How do I simplify the equation to get the final value?
- Are there any mistakes in my interpretation of the hit/miss calculations?
Thanks in advance for your help!