x86遗留指令的解释

我正在阅读一本关于计算机体系结构的书籍,以帮助我提高对微处理器的理解,当时我碰到了一个绊脚石,笔者没有去解释。 这本书关注的是奔腾处理器的Intel处理器。

作者从未解释过x86实际上从处理器到处理器的含义。 我发现很难理解,因为在讨论最初的奔腾时,作者说奔腾的一个缺点是,它分配了超过30%的晶体管用于x86传统支持。 所以,我认为他的意思是说Pentium必须与为80386这样的老一代处理器编写的程序兼容。后来,在Pentium 4的另一章中,他说他说10%的晶体管用于x86支持。 我不明白的是他在谈论哪个x86。 另外,我确定intel没有为它发布的每个新处理器实现不同的指令集。 如果有的话,新的执行单元将添加新的说明。 我想说的是,如果是这种情况,那么x86指令已经是新指令集的一个子集。 或者是不是这样?

我觉得我很困惑。 如果有人能够解释这种x86支持的东西,以及为什么任何人想要在10年之后运行旧版软件会有所帮助? 另外,不同的x86实现有不同的标签吗? 因为当他们说x86遗留支持时,它们是指80386还是8086中的x86? 你的回复将珍惜。 谢谢


为什么有人想在10年之后运行旧版软件?

因为他们运行10年前编写的软件。 或者更多,企业经常严重依赖20年以上的软件。 软件非常非常昂贵,它需要一个经过良好补偿的程序员。 如果您无法销售数百个许可证,那么很难分摊开发成本,这对于LOB软件来说是不会发生的。 硬件非常不同,一旦你拥有(非常昂贵的)掩模和芯片工厂,就可以以非常低的成本创建数百万个芯片。

保持新的处理器设计与旧版本兼容是你机器中安装Intel或AMD处理器的一个非常重要的原因。 英特尔试图摆脱它的任何企图都是糟糕的失败。 iAPX 432,80960和Itanium就是很好的例子。


虽然x86 ISA是CISC ISA,但自从奔腾以来,英特尔处理器在内部使用类RISC微操作。 x86指令被解码为内部微操作。

因此,据估计,Pentium使用其晶体管的30%来支持x86 ISA。 由于x86 ISA和支持硬件保持相对稳定,在Pentium 4时代,x86支持估计占晶体管数量的10%。

Ars Technica的Jon Stokes在“奔腾:这个世界上最着名的台式机处理器的建筑史”中谈到了x86-RISC解码成本。


当谈到80386及更高版本的x86处理器时,“x86遗留支持”是指能够运行8086/80186/80286上的所有16位指令并模拟所有内存寻址模式:8086的20位实模式和80286的24位保护模式。

最重要的是,80386引入了v86模式,它模拟实模式,同时处理器继续以32位保护模式运行。

这是迄今为止每个80386(及以上)支持的三种截然不同的模式 - 所有这些模式都支持极少数人再运行的16位代码。

链接地址: http://www.djcxy.com/p/72399.html

上一篇: Explanation of x86 legacy instructions

下一篇: How do computers set a register to a constant value?