News for hackers. Stuff that matters.
Re:Mill Computing in 2017 by gpderetta on Friday January 13, 2017 @09:10AM (#13390849)
But as far as I understand and hear, Itanium had sort-of similar capabilities (ALAT and speculative loads) and it didn't work great outside of FP workloads as it is still hard to programmatically schedule load early even if you can ignore RAW hazards. What's unique in the Mill?
Re:Mill Computing in 2017 by Symmetry on Friday January 13, 2017 @12:13PM (#13392480)
Basically they've used their exposed pipeline design and register metadata to fix the things that didn't work well about ALAT. Or at least that's the theory.

EDIT: I think the main problem was that on Itanium issuing a speculative load could potentially trigger a page fault making it potentially dangerous. On the Mill the page fault won't trigger until the load leads to a side effect outside the belt, sort of like it's been wrapped in a Haskell Maybe monad. So if you' have something like

  for (int i = 0; i < foo; i++) {
    a[i] = a[i]+1;
  }
you can speculatively load the a[i+n] while you're working on a[i] even if allocated memory stops at the border of the array allocation.