本文介绍了为什么英特尔将内部RISC内核隐藏在其处理器中?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

Starting with Pentium Pro (P6 microarchitecture), Intel redesigned it's microprocessors and used internal RISC core under the old CISC instructions. Since Pentium Pro all CISC instructions are divided into smaller parts (uops) and then executed by the RISC core.

对我来说,很明显,英特尔决定隐藏新的内部架构,并迫使程序员使用 CISC shell。由于这一决定,英特尔可以完全重新设计微处理器体系结构而不破坏兼容性,这是合理的。

At the beginning it was clear for me that Intel decided to hide new internal architecture and force programmers to use "CISC shell". Thanks to this decision Intel could fully redesign microprocessors architecture without breaking compatibility, it's reasonable.

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

However I don't understand one thing, why Intel still keeps an internal RISC instructions set hidden for so many years? Why wouldn't they let programmers use RISC instructions like the use old x86 CISC instructions set?

如果Intel保持了向后兼容性这么长的时间(我们仍然在64位模式下使用虚拟8086模式),为什么他们不允许我们编译程序,所以它们会绕过是否直接使用CISC指令并使用RISC核心?这将为自然地弃用如今已弃用的x86指令集开辟一种自然的方式(这是Intel决定在内部使用RISC内核的主要原因,对吧?)。

If Intel keeps backward compatibility for so long (we still have virtual 8086 mode next to 64 bit mode), Why don't they allow us compile programs so they will bypass CISC instructions and use RISC core directly? This will open natural way to slowly abandon x86 instructions set, which is deprecated nowadays (this is the main reason why Intel decided to use RISC core inside, right?).

看到新的英特尔酷睿i系列,他们只会扩展CISC指令集,添加AVX,SSE4等。

Looking at new Intel 'Core i' series I see, that they only extends CISC instructions set adding AVX, SSE4 and others.

推荐答案

否,肯定不建议使用x86指令集。它一如既往地受欢迎。英特尔之所以在内部使用一组类似RISC的微指令,是因为它们可以得到更有效的处理。

No, the x86 instruction set is certainly not deprecated. It is as popular as ever. The reason Intel uses a set of RISC-like micro-instructions internally is because they can be processed more efficiently.

因此,x86 CPU的工作负荷非常大前端的解码器,它接受x86指令,并将它们转换为后端可以处理的优化内部格式。

So a x86 CPU works by having a pretty heavy-duty decoder in the frontend, which accepts x86 instructions, and converts them to an optimized internal format, which the backend can process.

将这种格式公开给外部程序,有两点:

As for exposing this format to "external" programs, there are two points:


  • 这不是稳定的格式。英特尔可以在不同的CPU模型之间进行更改,以最适合特定的体系结构。这样一来,他们可以最大程度地提高效率,并且如果他们必须为内部使用以及外部使用确定固定,稳定的指令格式,那么这种优势就会丧失。

  • 没有什么可做的通过这样做而获得。在当今庞大而复杂的CPU中,解码器在CPU中所占的比例相对较小。必须解码x86指令会使情况变得更加复杂,但是其余的CPU却不受影响,因此总体而言,几乎没有什么收获,特别是因为为了执行旧版代码,x86前端仍然必须存在。因此,您甚至都不会保存x86前端上当前使用的晶体管。

这不是一个完美的安排,但是成本很小,与设计支持两个完全不同的指令集的CPU相比,这是一个更好的选择。 (在那种情况下,他们可能最终发明了第三套微操作供内部使用,只是因为可以对其进行自由调整以使其最适合CPU的内部架构)。

This isn't quite a perfect arrangement, but the cost is fairly small, and it's a much better choice than designing the CPU to support two completely different instruction sets. (In that case, they'd probably end up inventing a third set of micro-ops for internal use, just because those can be tweaked freely to best fit the CPU's internal architecture)

这篇关于为什么英特尔将内部RISC内核隐藏在其处理器中?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-16 00:24