3 ms·
I never programmed it but there were legitimate things that people didn't like about it, instruction density, extremely large architected register set (which ha
by throwawaylinux 5y ago
I never programmed it but there were legitimate things that people didn't like about it, instruction density, extremely large architected register set (which has downsides beyond density), register windows, from memory. Which have their reasons but also have very real problems.
It did have some "interesting" things like advance loads and associated speculation support, programmable branch predictors, rich prefetching and cache hinting, highly predicated execution. Which were intended to all combine and make out of order execution unnecessary.
In practice they were very difficult to use well, didn't solve all deficiencies of in-order execution, and were often inefficient and difficult to implement. Itanium remained stuck at low frequencies and performance was tied to things like heroically fast (and therefore unfortunately tiny) L1 caches.
And if you do have an out of order design, then many of those interesting aspects of it were much less useful.