我正在阅读一本关于计算机体系结构的书,以提高我对微处理器的理解,这时我遇到了一个作者懒得解释的绊脚石。本书涉及从最初的奔腾向上的英特尔处理器。
作者从未解释过 x86 从处理器到处理器的实际含义。我觉得很难理解,因为在讨论原始 Pentium 时,作者说 Pentium 的缺点之一是它分配了超过 30% 的晶体管来支持 x86 传统支持。所以,我认为他的意思是奔腾必须与为老一代处理器(如 80386)编写的程序兼容。后来,在有关奔腾 4 的另一章中,他说他说 10% 的晶体管用于 x86 支持。我不明白他说的是哪个x86。另外,我确信英特尔没有为其发布的每个新处理器实现不同的指令集。如果有的话,将为新的执行单元添加新的指令。我想说的是,如果是这样的话,那么 x86 指令就已经是新指令集的子集了。或者事实并非如此?
我想我很困惑。如果有人解释一下 x86 支持的事情,以及为什么有人想在 10 年后运行遗留软件,将会很有帮助?另外,不同的 x86 实现是否有不同的标签?因为当他们说 x86 遗留支持时,他们的意思是 x86 for in 80386 还是 in 8086 ?您的回复将被珍惜。谢谢
为什么有人想在 10 年后运行遗留软件?
因为他们运行的是 10 年前编写的软件。更重要的是,企业通常严重依赖使用超过 20 年或更久的软件。软件非常非常昂贵,它需要高薪的程序员。如果您无法出售数百个许可证,则很难摊销开发成本,而 LOB 软件则不会发生这种情况。对于硬件来说非常不同,一旦你拥有了(非常昂贵的)掩模和芯片工厂,你就可以以非常低的成本制造数百万个芯片。
保持新处理器设计与旧处理器设计兼容是您的计算机中使用 Intel 或 AMD 处理器的一个重要原因。英特尔为摆脱这种束缚所做的任何尝试都以惨败告终。iAPX 432、80960 和 Itanium 就是很好的例子。