3 ms·
> In the future with the proliferation of VM based languages I could see CPUs exposing their microcode publicly so that the JITs can target the actual hardware
by kps 2y ago
> In the future with the proliferation of VM based languages I could see CPUs exposing their microcode publicly so that the JITs can target the actual hardware
IBM AS/400 did this, except that (as a closed system) the microcode layer is not public (and these days is just some POWER variant anyway).
It's also sort of what Itanium tried, except that they made the same mistake of entrenching implementation in the ISA... and that most real-world code does not have the same usage patterns as processor-implementation microcode.
- Pet_Ant 2y ago> It's also sort of what Itanium tried, except that they made the same mistake of entrenching implementation in the ISA. I cannot find the source right now but I believe that was explicitly an anti-goal of Itanium. As they added execution units they did not want to change or add instructions because that meant that code for one processor would not run another. This makes sense as this was before open-source and managed languages dominated so binary compatibility mattered a lot. Instead, it was more like each instruction was a plate and ideally each plate would have a mixture of food that represented the food pyramid. So they were already sorted, but it wasn't 1:1 with whatever the actual running processor had, it was more abstract. Nb: this is from my historical research and not experience so it could be wrong, please correct if you know better.