【问题标题】:RISC under CISC ISACISC ISA下的RISC
【发布时间】:2016-01-21 22:57:41
【问题描述】:
我正在学习 CPU 架构,这有点令人困惑。
旧微编程 CISC CPU 将 ISA 指令转换为一系列简单(1 个周期)微指令是否正确?(根据 RISC 哲学,ISA 指令基本上与微指令相同,需要 1 个周期)
根据维基:
但是,现代 x86 处理器也(通常)解码和拆分
指令转换成内部缓冲的动态序列
微操作...
与旧型号有何不同?
顺便说一句。微指令和微操作有区别,还是同义词?
【问题讨论】:
标签:
cpu-architecture
microprocessors
instruction-set
risc
【解决方案1】:
在过去。
Horizontal microcode
通常包含在相当广泛的控件存储中;它不是
每个字不常见为 108 位或更多位。在每一个刻度上
定序器时钟 读取、解码和用于控制微码字
构成 CPU 的功能元素。
所以对于某些架构来说它是正确的。
较新的微代码通常用于超标量处理器,因此微代码使用发布宽度来并行运行更多代码,使用其指令的乱序发布,然后重新排序缓冲区确保微代码代码按顺序退役。
旧机器按顺序完成所有操作,其中一些带有一些流水线操作。
我认为微指令启动微操作。
【解决方案2】:
旧的 CISC 处理器无法翻译。他们直接或通过微码执行 ISA。所有 CPU 都执行一些指令解码(即使在某些 RISC 架构中它相当微不足道)。过去,解码会将机器指令一对一转换为内部微操作。或者机器语言指令将启动一个微码序列运行,该序列执行所有步骤。
今天,为了从 CISC ISA 获得良好的性能,执行多项操作的指令(例如,将内存引用与 ALU 操作相结合)必须“破解”成多个内部微操作,每个微操作都执行更简单的操作。这在概念上与使用微码并没有太大的不同,只是它在专用硬件中流水线化,并且微操作是独立跟踪的,并且相对于其他指令是无序的。此外,您可以将这种破解视为更精细的指令解码。
【解决方案3】:
正如 Timothy 所提到的,今天的 CISC 机器仍然将 CISC 指令转换为微操作,只是它以更有效的方式完成,以允许更积极的乱序执行(更快的时钟速度 ....等)。
现在,在此类关于指令、微操作、微指令、宏操作、宏/微融合等的对话中,通常会抛出的所有术语之间有什么区别?嗯,这很大程度上取决于谁在说话:
在 AMD 世界中,macro-op 相当于 Intel 世界中的 micro-op(或 uop)。两者都指的是 X86 指令中断或解码成的微操作之一。两者都是类似 RISC 的指令,最有可能是固定长度。
融合是指将两个操作(通常相互依赖)融合到一个操作中(主要是为了节省解码宽度)。如果这是用实际的 x86 指令完成的,它被称为 Macro-Fusion,如果它是用微操作完成的,它被称为 Micro-Fusion。
最后,我认为 microinstruction 可以在上下文中用于在过去或现在我不明白为什么它不会用于引用微代码的一条指令到微操作(或宏操作)。但是,我个人并没有听到很多。我通常更经常听到术语微操作或宏操作。
希望对你有帮助