问题描述
也许我在架构上存在误解 - 但如果机器有一个乘法指令 - 是该指令没有被转换为更小的指令,或者非常复杂,以至于它最终与等效的 RISC 指令具有相同的速度?
Perhaps I'm at a misunderstanding in architecture - but if a machine has, say, a multiply instruction - is that instruction not translated to smaller instructions or is so complex such that it ultimately is the same speed as the equivalent RISC instructions?
乘法是一个不好的例子——它在两种架构中都是一条指令.用CISC中更复杂的指令替换上面的乘法",RISC没有与单指令等效的指令.
Multiply is a bad example - it is a single instruction in both architectures. Replace "multiply" in the above with an instruction more complicated in CISC for which RISC has no equivalent that is a single instruction.
推荐答案
CISC 机器的解码电路很复杂,它们将复杂的 CISC 指令解码为更简单的指令.例如,理论上可以有一条 CISC 指令来获取两个内存地址的值并将乘法结果设置为另一个内存地址.CISC机器的解码器将此单条指令解码为多个类似RISC的操作,例如从内存位置获取值到寄存器,向该寄存器添加另一个寄存器等.解码后应该没有区别.这就是当前的 CISC 机器(如 x86)与 RISC 机器竞争的方式.但是您必须为复杂的解码阶段付出代价.
Decoding circuitry of CISC machines are complex and they decode complex CISC instructions to simpler instructions. For example there could be a single CISC instruction to fetch value of two memory address and set result of multiplication to another memory address, in theory. Decoder of CISC machine decodes this single instruction to multiple RISC like operations, like fetching a value from memory location to register, adding another register to that register etc. After decoding there should be no difference. This is how current CISC machines (like x86) competes with RISC machines. But you have to pay price of a complex decoding phase.
这篇关于CISC 机器 - 它们不只是将复杂的指令转换为 RISC 吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!