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

时间:2011-03-30 03:00:51

标签: cpu-architecture

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

4 个答案:

答案 0 :(得分:6)

为什么有那么多CPU架构?

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

后来的构建者,不愿强迫程序员重新编译他们的所有软件, 添加了新的说明,但仅留下旧的说明。 (这通常被称为“兼容性藤壶”)。

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

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

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

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

今天仍有many different kinds of computer architectures

答案 1 :(得分:3)

x86实际上是8086处理器系列的缩写名称。是的,它是一个特定的指令集;并且通常表示它是32位系统(总线大小)。 x64通常具有相同的指令集,但是是64位系统(总线大小)。我从来没有听说过x87,但快速看一下;它似乎是一个从x86架构中脱颖而出的纯浮点协处理器。您将看到的另一种架构是SPARC架构,它是x86系列中完全不同的架构和指令集。

答案 2 :(得分:2)

指令集可能略有不同;但是,关键的区别在于寄存器的长度,以及可寻址存储器的数量。

x86 has 32 bit registers 
x87 is a floating point extension of x86
x64 has 64 bit registers

另见:

http://en.wikipedia.org/wiki/X87

http://en.wikipedia.org/wiki/X86

http://en.wikipedia.org/wiki/X64

答案 3 :(得分:2)

还有CPU的系列,所以差异可能很大。试想RISC计算或stack-based CPU。