Improving Data Access Efficiency by Using Context-Aware Loads and Stores
Alen Bardizbanyan, Magnus Själander†, David Whalley‡, Per Larsson-Edefors
Chalmers University of Technology
†Uppsala University ‡Florida State University
Improving Data Access Efficiency by Using Context-Aware Loads and - - PowerPoint PPT Presentation
Improving Data Access Efficiency by Using Context-Aware Loads and Stores Alen Bardizbanyan, Magnus Sjlander , David Whalley , Per Larsson-Edefors Chalmers University of Technology Uppsala University Florida State University
†Uppsala University ‡Florida State University
ADDR-GEN SRAM-ACCESS DTLB TAG-0 TAG-N DATA-0 DATA-N A G U Base Address Offset = = Format Data Way Select Forward Data Writeback Execution Units Register File Other Forwarding DATA-FORMATTING
Virtual Page Number (VPN) Line offset Set index
DTLB
VPN Physical Page Number (PPN) Data Array-0 Way Select-0 Tag Array-0
PPN set index line offset Data-0 Address: Data Array-1 Way Select-1 Tag Array-1
PPN set index line offset Data-1 Data Array-2 Way Select-2 Tag Array-2
PPN set index line offset Data-2 Data Array-3 Way Select-3 Tag Array-3
PPN set index line offset Data-3
Way Select Logic
Data Out
60% 30% 10%
Contribution to overall L1 load access energy
Virtual Page Number (VPN) Line offset Set index
DTLB
VPN Physical Page Number (PPN) Data Array-0 Way Select-0 Tag Array-0
PPN set index line offset Data-0 Address: Data Array-1 Way Select-1 Tag Array-1
PPN set index line offset Data-1 Data Array-2 Way Select-2 Tag Array-2
PPN set index line offset Data-2 Data Array-3 Way Select-3 Tag Array-3
PPN set index line offset Data-3
Way Select Logic
Data Out
60% 30% 10%
Contribution to overall L1 load access energy
ADDR-GEN DTLB/TAG-ACCESS DTLB TAG-0 TAG-N DATA-0 DATA-N A G U Base Address Offset = = Format Data Way Select Forward Data Writeback Execution Units Register File Other Forwarding DATA-FORMATTING DATA-ACCESS
ADDR-GEN SRAM-ACCESS DTLB TAG-0 TAG-N DATA-0 DATA-N A G U Base Address Offset = = Format Data Way Select Forward Data Writeback Execution Units Register File Other Forwarding DATA-FORMATTING
ADDR-GEN SRAM-ACCESS DTLB TAG-0 TAG-N DATA-0 DATA-N A G U Base Address Offset = = Format Data Way Select Forward Data Writeback Execution Units Register File Other Forwarding DATA-FORMATTING
ADDR-GEN SRAM-ACCESS DTLB TAG-0 TAG-N DATA-0 DATA-N A G U Base Address Offset = = Format Data Way Select Forward Data Writeback Execution Units Register File Other Forwarding DATA-FORMATTING
ADDR-GEN SRAM-ACCESS DTLB TAG-0 TAG-N DATA-0 DATA-N A G U Base Address Offset = = Format Data Way Select Forward Data Writeback Execution Units Register File Other Forwarding DATA-FORMATTING
ADDR-GEN SRAM-ACCESS DTLB TAG-0 TAG-N DATA-0 DATA-N A G U Base Address Offset = = Format Data Way Select Forward Data Writeback Execution Units Register File Other Forwarding DATA-FORMATTING
DTLB TAG-0 TAG-N DATA-0 DATA-N = = Format Data Way Select Forward Data Writeback Execution Units Register File Other Forwarding DATA-FORMATTING DATA-ACCESS
DTLB TAG-0 TAG-N DATA-0 DATA-N = = Format Data Way Select Forward Data Writeback Execution Units Register File Other Forwarding DATA-FORMATTING DATA-ACCESS
DTLB TAG-0 TAG-N DATA-0 DATA-N = = Format Data Way Select Forward Data Writeback Execution Units Register File Other Forwarding DATA-FORMATTING DATA-ACCESS
ADDR-GEN DTLB TAG-0 TAG-N DATA-0 DATA-N A G U Base Address Offset = = Format Data Way Select Forward Data Writeback Execution Units Register File Other Forwarding DATA-FORMATTING DATA-ACCESS
ADDR-GEN DTLB TAG-0 TAG-N DATA-0 DATA-N A G U Base Address Offset = = Format Data Way Select Forward Data Writeback Execution Units Register File Other Forwarding DATA-FORMATTING DATA-ACCESS
ADDR-GEN DTLB TAG-0 TAG-N DATA-0 DATA-N A G U Base Address Offset = = Format Data Way Select Forward Data Writeback Execution Units Register File Other Forwarding DATA-FORMATTING DATA-ACCESS
ADDR-GEN DTLB/TAG-ACCESS DTLB TAG-0 TAG-N DATA-0 DATA-N A G U Base Address Offset = = Format Data Way Select Forward Data Writeback Execution Units Register File Other Forwarding DATA-FORMATTING DATA-ACCESS
ADDR-GEN DTLB/TAG-ACCESS DTLB TAG-0 TAG-N DATA-0 DATA-N A G U Base Address Offset = = Format Data Way Select Forward Data Writeback Execution Units Register File Other Forwarding DATA-FORMATTING DATA-ACCESS ADDR-GEN SRAM-ACCESS DTLB TAG-0 TAG-N DATA-0 DATA-N A G U Base Address Offset = = Format Data Way Select Forward Data Writeback Execution Units Register File Other Forwarding DATA-FORMATTING ADDR-GEN DTLB TAG-0 TAG-N DATA-0 DATA-N A G U Base Address Offset = = Format Data Way Select Forward Data Writeback Execution Units Register File Other Forwarding DATA-FORMATTING DATA-ACCESS DTLB TAG-0 TAG-N DATA-0 DATA-N = = Format Data Way Select Forward Data Writeback Execution Units Register File Other Forwarding DATA-FORMATTING DATA-ACCESS
r[2] = M[r[4]+76] r[3] = r[3]+r[2] r[2] = M[r[4]+4] <3 or more insts> r[3] = r[3]+r[2] r[2] = M[r[4]+4] r[3] = r[3]+r[2] r[2] = M[r[4]] r[3] = r[3]+r[2] Case1: Avoids Stalls Case2: 1x Data Array Access Case3: 1x Data Array Access No Tag Speculation Case0: Normal Access
ADDR-GEN DTLB/TAG-ACCESS DTLB TAG-0 TAG-N DATA-0 DATA-N A G U Base Addr. Offset = = Format Data Way Select Forward Data Writeback Execution Units DATA-FORMATTING DATA-ACCESS Register File Other Forwarding
DTLB TAG-0 TAG-N DATA-0 DATA-N = = Format Data Way Select Forward Data Writeback Execution Units Register File Other Forwarding T+I
ADDR-GEN SRAM-ACCESS DTLB TAG-0 TAG-N DATA-0 DATA-N A G U Base Address Offset = = Format Data Way Select Forward Data Writeback Execution Units Register File Other Forwarding DATA-FORMATTING T+I
DTLB TAG-0 TAG-N DATA-0 DATA-N = = Execution Units Register File Other Forwarding DATA-ACCESS T+I+SD
ADDR-GEN SRAM-ACCESS DTLB TAG-0 TAG-N DATA-0 DATA-N A G U Base Address Offset = = Execution Units Register File Other Forwarding T+I SD
DTLB TAG-0 TAG-N DATA-0 DATA-N = = Format Data Way Select Forward Data Writeback Execution Units Register File Other Forwarding
r[2] = M[r[4]+4] r[3] = r[3]+r[2] r[2] = M[r[4]] r[3] = r[3]+r[2] Case4: Avoid 1 Stall No DTLB Access No Tag Checks 1x Data Array Access Case5: No DTLB Access No Tag Checks 1x Data Array Access
T+I DTLB TAG-0 TAG-N DATA-0 DATA-N = = Execution Units Register File Other Forwarding DATA-ACCESS
r[2] = M[r[4]+4] r[3] = r[3]+r[2] r[2] = M[r[4]] r[3] = r[3]+r[2] Case6: Avoid 2 Stalls No DTLB Access No Tag Checks No Data Array Access Case7: Avoid 1 Stall No DTLB Access No Tag Checks No Data Array Access
T+I+SD ADDR-GEN SRAM-ACCESS DTLB TAG-0 TAG-N DATA-0 DATA-N A G U Base Address Offset = = Format Data Way Select Forward Data Writeback Execution Units Register File Other Forwarding DATA-FORMATTING T+I ADDR-GEN SRAM-ACCESS DTLB TAG-0 TAG-N DATA-0 DATA-N A G U Base Address Offset = = Execution Units Register File Other Forwarding T+I SD
ADDR-GEN DTLB/TAG-ACCESS DTLB TAG-0 TAG-N DATA-0 DATA-N A G U Base Addr. Offset = = Format Data Way Select Forward Data Writeback Execution Units DATA-FORMATTING DATA-ACCESS Register File Other Forwarding T+I TSD