4 ms·
It's not about a shifter, it's about determining instruction boundaries. With variable-length instructions the next instruction start depends on the previous on
by marcan_42 5y ago
It's not about a shifter, it's about determining instruction boundaries. With variable-length instructions the next instruction start depends on the previous one, making it an inherently serial process. Working around that to decode in parallel is not easy and gets superlinearly more complex the wider you make the decoder. A fixed instruction size architecture like ARM64 doesn't have to deal with any of that.
- userbinator 5y agoA fixed instruction size architecture like ARM64 doesn't have to deal with any of that. What it does have to deal with is needing several times higher fetch bandwidth. It's all a bunch of tradeoffs. Related article: https://chipsandcheese.com/2021/07/13/arm-or-x86-isa-doesnt-matter/ https://chipsandcheese.com/2021/07/13/arm-or-x86-isa-doesnt-...
- Dylan16807 5y ago> It's all a bunch of tradeoffs. Fixed vs. variable is a bunch of powerful tradeoffs. The way x86 can stack a bunch of prefixes on an instruction is pretty bad though. You have to interpret many pieces of an instruction to find the size.