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