为什么有这么多CPU架构:x86,x64,x87等......?

com*_*ler 6 cpu-architecture

主要的不同只是指令集还是更重要的东西?

Dav*_*ary 6

为什么有那么多CPU架构?

在早期,只是让CPU工作是一项重大成就.早期的构建者用硬件设计的东西尽可能简单,只是为了让事情变得有效 - 他们通常最终会得到非常古怪的指令集.

后来的构建者,不愿意强迫程序员重新编译他们的所有软件,添加了新的指令,但只留下旧指令.(这通常称为"兼容性藤壶").

人们提出了许多创新,使CPU更易于编程,或更快或更好的其他方式 - 索引寄存器,地址寄存器,数据寄存器,更宽的地址寄存器,更宽的数据寄存器,链接寄存器,中断,单指令子程序CALL ,单指令有效地址计算,流水线操作,单指令乘法,VLIW等.如果不是完全更新的指令集,这些创新中的许多至少需要新指令.(其他创新,例如缓存,在不改变指令集的情况下使CPU更快,因此新的CPU仍会运行所有旧软件不变).

IBM在1982年的政策是要求所有部件至少有2个来源.(即使在今天,许多制造商也不愿意购买"单一来源部件").为了说服IBM购买英特尔处理器,英特尔将其设计许可给了AMD,这是一家获得许可的第二来源制造商.对此许可证的诉讼非常公开.

英特尔与AMD之间的长期法律诉讼令许多CPU设计师感到担忧.当一些CPU设计人员提出一些新的创新,而不是逐步向x86指令集或其他一些预先存在的指令集添加一些指令 - 冒着被起诉的风险 - CPU设计师觉得更加舒适地想出完全不同的指令集展示甚至相对较小的创新.

在一些情况下,两个不同的人提出了相互矛盾的创新 - 每个人在发明任何一个之前显然优于旧的CPU,但似乎不可能构建同时支持这两种创新的CPU.

目前仍有许多不同类型的计算机体系结构.


Sur*_*oot 3

x86实际上是8086处理器系列的简称。是的,它是一个特定的指令集;通常表明它是32位系统(总线大小)。x64 通常具有相同的指令集,但它是 64 位系统(总线大小)。我从未听说过 x87,但快速浏览了一下;它似乎是一个从 x86 架构中分离出来的纯浮点协处理器。您将看到的另一种架构是 SPARC 架构,它是与 x86 系列完全不同的架构和指令集。