assembly - 指令和微操作之间的区别

标签 assembly terminology instructions machine-instruction

机器指令和微操作有什么区别?我找到了以下定义 here :

A small, basic instruction, used in series to make up a high-level machine instruction

这是我在 Wikipedia 上找到的内容

In computer central processing units, micro-operations (also known as a micro-ops or μops) are detailed low-level instructions used in some designs to implement complex machine instructions (sometimes termed macro-instructions in this context)

我对微操作是在给定周期中执行的处理器指令的理解正确吗?比如说 ADD、SUB、MUL、ST、LD。我错过了什么吗?

感谢任何帮助。

最佳答案

几年前,人们发现 RISC 比 CISC 更好。如果您想要一个非常高速的处理器,那么您希望所有指令都非常简单。这使得它们能够在短时间内完成,从而具有更高的时钟速度。因此 Andrew Tanenbaum 预测“5 年后将没有人运行 x86”。那是在 90 年代。

所以发生了什么? x86(以及 AMD64,也称为 x86_64)不是最著名的 CISC 指令集吗?好吧,不要低估英特尔(和 AMD)工程师的聪明才智。他们意识到,如果他们想要一款速度更快的处理器(我们在 90 年代末使用一个核心,频率超过 4GHz),他们就无法在一个时钟周期内处理复杂的指令。解决方案是使用“微操作”。

每个微操作将在单个时钟周期内执行,并且类似于 RISC 类型指令。当处理器遇到 CISC 指令时,它会将其解码为多个微操作,每个微操作持续一个周期。因此,他们可以保留旧的粗糙指令集架构(为了向后兼容)并具有非常高的时钟速度。

关于assembly - 指令和微操作之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33026830/

相关文章:

c++ - 按照每个通用寄存器的用途对 x86 程序集进行编码是否有必要或更容易

linux - 在 Linux 上如何判断二进制文件是否使用帧指针编译?

error-handling - "special"返回值如何表示调用的条件?

assembly - `test` 指令是如何工作的?

assembly - 存储指令中数据总线的状态

assembly - 在 C64/Assembly 中更改没有颜色内存的文本颜色

cloud - 分布式计算和云计算有什么区别?

terminology - 信用卡的 3 位数代码的正式名称是什么?

c - 阅读汇编中的数学函数

swift - swift 中存储的临时值在哪里