5 ms·
Back when people were mostly programming in assembly it was convenient for one instruction to do a lot of stuff, but it hardwiring a large instruction set poses
by prewett 9y ago
Back when people were mostly programming in assembly it was convenient for one instruction to do a lot of stuff, but it hardwiring a large instruction set poses design difficulties. So CISC chips have some special microcode memory that runs a program that converts the larger instruction set into the actual hardware instruction set. Intel's CPUs since the Pentium Pro allow writing to the microcode memory (with severe restrictions).
According to Wikipedia [1], CPUs have had microcode since the 1960s! However, this is mostly an artifact of CISC architectures. Since most programmers these mass-produce their instructions with a compiler rather than with artisinal, hand-crafted assembly code, CISC fell out of favor compared to RISC. Since the RISC instruction sets are simple (by design), there isn't much need for microcode. ARM chips typically don't have microcode (although they do break things into smaller instructions) [2]. But since Intel has to keep compatibility with 40 years of CISC instructions, they need microcode.
[1] https://en.wikipedia.org/wiki/Microcode https://en.wikipedia.org/wiki/Microcode
[2] https://superuser.com/questions/934752/do-arm-processors-like-cortex-a9-use-microcode https://superuser.com/questions/934752/do-arm-processors-lik...