Monday, November 20, 2023

Why raising tREFI or lowering tRFC has diminshing returns on performance

 I'm pretty sure I've mentioned this in a video or something but anyway: 

As tRFC ÷ tREFI approaches 0 further reductions in tRFC or increases in tREFI will impact performance less and less.
 
tREFI increasing:
800tRFC with 8 000 tREFI = 10% of clock cycles are spent on refresh 
800tRFC with 16 000 tREFI = 5% of clock cycles are spent on refresh 
800tRFC with 32 000 tREFI = 2.5% of clock cycles are spent on refresh
800tRFC with 64 000 tREFI = 1.25of clock cycles are spent on refresh
800 tRFC with 128 000 tREFI = 0.625% of clock cycles are spent on refresh
 
so going from 8K to 32K gives 7.5% more useful clock cycles >> big performance increase
going from 64K to 128K gives you an extra 0.625% >> basically no performance increase
 
tRFC decreasing:
800tRFC with 8 000 tREFI = 10% of clock cycles are spent on refresh 
400tRFC with 8 000 tREFI = 5% of clock cycles are spent on refresh 
200tRFC with 8 000 tREFI = 2.5% of clock cycles are spent on refresh 
100tRFC with 8 000 tREFI = 1.25% of clock cycles are spent on refresh 

incase you don't know what tRFC and tREFI are:
DDR memory needs to be "refreshed" in order to retain data because it stores data as charge on capacitors that slowly discharge over time.
tRFC is how long the memory controller waits after sending a REFRESH command before sending other commands (like ACTIVATE, READ, WRITE, PRECHARGE....)
tREFI is how often the memory controller sends REFRESH commands.

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.