▲ | IshKebab 3 days ago | ||||||||||||||||
Yeah I'm not sure I buy it either. It doesn't matter if most instructions have simple encodings. You still need to design your front end to handle the crazy encodings. I doubt it makes a big difference, so until recently he would have been correct - why change your ISA when you can just wait a couple of months to get the same performance improvement. But Moore's law is dead now so small performance differences matter way more now. | |||||||||||||||||
▲ | imtringued 3 days ago | parent [-] | ||||||||||||||||
The core argument in RISC vs CISC has never been that you can't add RISC style instructions to a CISC. If anything, the opposite is true, because CISC architectures just keep adding more and more instructions. The argument has been that even if you have a CISC ISA that also happens to have a subset of instructions following the RISC philosophy, that the bloat and legacy instructions will hold CISC back. In other words, the weakness of CISC is that you can add, but never remove. Jim Keller disagrees with this assessment and it is blatantly obvious. You build a decoder that predicts that the instructions are going to have simple encodings and if they don't, then you have a slow fallback. Now you might say that this makes the code slow under the assumption that you make heavy use of the complex instructions, but compilers have a strong incentive to only emit fast instructions. If you can just add RISC style instructions to CISC ISAs, the entire argument collapses into irrelevance. | |||||||||||||||||
|