News for hackers. Stuff that matters.
Re:Path to 2 nm May Not Be Worth It by jcranmer on Monday August 27, 2018 @02:40PM (#17853332)
> But in a sensible world, is that really where the instruction scheduling should be? And if it can be done in hardware, I don't see any theoretical reason it can't be done in software.

Hardware instructions can take a variable amount of time to complete, depending on their inputs--particularly branches and memory instructions. That means that the set of operations that are ready to execute is a fundamentally dynamic property, and software can only make a static decision.

Re:Path to 2 nm May Not Be Worth It by Symmetry on Monday August 27, 2018 @03:13PM (#17853619)
The branch predictor should mean that in most cases the latency of branches should be constant. And if its wrong that's just as much a problem for an OoO machine as it is for the Mill.

For memory accesses yes, that's a big problem which is why there's so much effort in the design devoted to making software memory speculation feasible. The Itanium put some effort into that too but generally at a much higher overhead and the Mill's solution for dealing with memory faults in speculated accesses was frankly brilliant.

Re:Path to 2 nm May Not Be Worth It by ansible on Monday August 27, 2018 @03:11PM (#17853599)
> Hardware instructions can take a variable amount of time to complete, depending on their inputs--particularly branches and memory instructions. That means that the set of operations that are ready to execute is a fundamentally dynamic property, and software can only make a static decision.

Everything on the Mill CPU architecture is statically scheduled, because everything has a fixed latency.

Loads / stores from L1 cache are also a fixed latency. If you're going out to DRAM, then you'll have to wait a lot no matter what architecture. Branches are also fixed latency, assuming the target has been prefetched.

So then it is a question of how good is the prefetching, and they've got some techniques to improve that too. They've also got techniques to help with cache pressure and effectively double the I-cache size without the usual power and latency penalty.

Details are in the papers and videos, if you are interested.