Originally posted by artivision
View Post
Generally speaking, it's easy to make a wide pipeline, it's super-difficult to keep it busy. E.g., you need super complex branch prediction and trace caches, something that not everyone knows how to do well.
x86-64 is a lot closer to RISC than you'd think. In a modern x86 processor, the vast majority of instructions get broken down into RISC-like micro-ops in the decoders. In contrast, classic CISC had instructions that ran like mini-programs.
That is simply not how modern x86 works - their pipelines are quite similar to that of their RISC counterparts, except for a messier front-end (more complex decode).
At the same time, modern RISCs aren't exactly the 80s "classic" RISC processors either (as they can have high variability in instruction execution time).
Maybe it is time you update your (micro)architectural knowledge. After reading an up-to-date H&P, I'd suggest Shen & Lipasti.
Comment