By: Exophase (exophase.delete@this.gmail.com), April 21, 2015 10:40 pm
Room: Moderated Discussions
anon (anon.delete@this.anon.com) on April 21, 2015 10:27 pm wrote:
> Actually that is the easiest case for any microarchitecture. No reordering or speculation or prefetching
> required. Issue the load when you have the address, then wait for the next address.
>
I don't know, prefetchers usually can predict strides in lists, and at least occasionally to good effect.
Of course, if we count the cache hierarchy and memory controller as part of the uarch there's lots of tuning and intelligence that goes into trying to make the average latency of that wait as low as possible, and that's probably not the easiest part of the design.
> Actually that is the easiest case for any microarchitecture. No reordering or speculation or prefetching
> required. Issue the load when you have the address, then wait for the next address.
>
I don't know, prefetchers usually can predict strides in lists, and at least occasionally to good effect.
Of course, if we count the cache hierarchy and memory controller as part of the uarch there's lots of tuning and intelligence that goes into trying to make the average latency of that wait as low as possible, and that's probably not the easiest part of the design.