3 ms·
All I can do is to defer to those who really know their stuff; that's not me. Please read this thread on exactly this subject from last year https://news.ycomb
by tempguy9999 7y ago
All I can do is to defer to those who really know their stuff; that's not me.
Please read this thread on exactly this subject from last year https://news.ycombinator.com/item?id=16172686 https://news.ycombinator.com/item?id=16172686
- mlyle 7y agoThat thread is orthogonal, but what's there supports exactly what I'm saying: prefetch improves effective bandwidth to SDRAM at all layers. A second, successive streamed fetch is basically free from a latency perspective. If you're missing, and have to go to memory, there's a very high chance that L2 is going to prefetch the next line into a stream buffer, and you won't miss to SDRAM next time. It's reached the point that now that the stream prefetchers hint to the memory controller that a queued access is prefetch, so the memory controller can choose based on contention whether to service the prefetch or not. Most of what you seem to talk about is L1 prefetch; I agree if L1 prefetch misses all the way to RAM you are probably screwed. The fancy strategies you mention, etc, are mostly L1 prefetch strategies. But L2 has its own prefetcher, and it's there to get rid of memory latency and increase effective use of memory bandwidth... While we're talking about it... even the SDRAM itself has a prefetcher for burst access ;) Though it's kinda an abuse that it's called as such.