相关疑难解决方法(0)

为什么英特尔在其处理器中隐藏内部RISC内核?

从Pentium Pro(P6微体系结构)开始,英特尔重新设计了它的微处理器,并在旧的CISC指令下使用了内部RISC内核.由于Pentium Pro所有CISC指令都分为较小的部分(uops),然后由RISC内核执行.

一开始我很清楚英特尔决定隐藏新的内部架构并强迫程序员使用"CISC shell".由于这一决定,英特尔可以在不破坏兼容性的情况下完全重新设计微处理器架构,这是合理的.

但是我不明白一件事,为什么英特尔仍然保留了多年内隐藏的内部RISC指令集?为什么他们不让程序员使用RISC指令,比如使用旧的x86 CISC指令集?

如果英特尔长期保持向后兼容性(我们仍然在64位模式旁边有虚拟8086模式),为什么它们不允许我们编译程序以便它们绕过CISC指令并直接使用RISC核心?这将开启自然的方式来慢慢放弃x86指令集,现在已弃用(这是英特尔决定在内部使用RISC核心的主要原因,对吧?).

看看新的英特尔'酷睿i'系列,我看到,他们只扩展了CISC指令集,增加了AVX,SSE4等.

x86 intel cpu-architecture

85
推荐指数
5
解决办法
4万
查看次数

在x86汇编中寄存器上使用的push/pop指令的功能是什么?

在阅读有关汇编程序的文章时,我经常遇到人们在写文件时他们推送处理器的某个寄存器并稍后再次弹出它以恢复它之前的状态.

  • 怎么能推一个寄存器?它在哪里推?为什么需要这个?
  • 这可归结为单处理器指令还是更复杂?

x86 assembly stack terminology

79
推荐指数
5
解决办法
26万
查看次数

如何找到英特尔x86 CPU解码指令的微操作?

英特尔优化参考,根据第3.5.1节,建议:

"赞成单微操作指令."

"避免使用复杂指令(例如,输入,离开或循环),这些指令超过4个微操作并需要多个周期才能解码.请使用简单指令序列."

虽然英特尔自己告诉编译器编写者使用解码为少数微操作的指令,但我在他们的任何手册中都找不到任何东西,这解释了每个ASM指令解码的微操作数量!这些信息是否随处可用?(当然,我希望不同代CPU的答案会有所不同.)

x86 intel compiler-optimization

16
推荐指数
3
解决办法
3570
查看次数

什么是微编码指令?

我看过很多参考微编码指令的文献.

这些是什么以及为什么使用它们?

cpu assembly cpu-architecture

10
推荐指数
1
解决办法
1560
查看次数