CPU架构及指令集之研究

来源:互联网 发布:拉普拉斯矩阵 编辑:程序博客网 时间:2024/05/16 01:05

第一部分:x86与i386、i486、i586、i686

  1. x86

    x86,或80×86是Intel首先开发制造的一种微处理器体系结构的泛称,包括8086、80186、80286、80386以及80486等。 因此其架构被称为“x86”。由于数字并不能作为注册商标,现在Intel把x86-32称为IA-32,即Intel Architecture, 32-bit。

    x86架构于1978年推出的Intel 8086中央处理器中首度出现,它是从Intel 8008处理器中发展而来的,而8008则是发展自Intel 4004的。之后x86便成为了个人计算机的标准平台,成为了历来最成功的CPU架构。Intel以外最成功的制造商为AMD,其Athlon系列处理器的市场仅次于Pentium。

    8086是16位处理器,直到1985年32位的80386的开发,这个架构都维持是16位。接着一系列的处理器表示了32位架构的细微改进,推出了数种的扩充,直到2003年AMD对于这个架构发展了64位的扩充,并命名为AMD64(有时也被称作x86-64,x64或EM64T),推出了 Opteron处理器家族,开创了x86的64位时代。

    值得注意的是Intel早在1990年代就与惠普合作提出了一种用在安腾(Itanium)系列处理器中的独立的64位架构,这种架构被称为IA-64IA-64是一种崭新的系统,和x86架构完全没有相似性,不应该把它与AMD64或x86-64弄混。关于x86-64,IA-64,AMD64等,将在下一篇文章中介绍。

    x86是一个Intel通用计算机系列的标准编号缩写,也标识一套通用的计算机指令集合,X与处理器没有任何关 系,它是一个对所有*86系统的简单的通配符定义,例如:i386, 586,奔腾(Pentium)。

    由于早期Intel的CPU编号都是用如8086,80286来编号,这整个系列的CPU都是指令兼容的,所以都用x86来标识所使用的指令集合。如今的奔腾、P2、P4、赛扬系列都是支持x86指令系统的,所以都属于x86家族。目前,也并不都是使用x86系列CPU,部分服务器和苹果 (Macintosh)机中还使用美国DIGITAL(数字)公司的Alpha 61164和PowerPC 604e系列CPU。

  2. i386、i586、i686

Intel 80×86简称为ix86,比如i386、i586、i686等等,指的是适用于Intel i386、i586、i686兼容指令集的微处理器。

一般而言,所有x86处理器都能执行386的指令集,80486处理器当然需要486的优化。Pentium就是586,PentiumPro (P6)之后的统称为686,包含了PentiumPro,PentiumⅡ,PentiumⅢ和P4。
换言之,i386适用于intel和AMD所有32位的CPU,以及采用x86架构的32位CPU。i686只是i386的一个子集,支持的CPU从Pentium 2(686)开始,之前的型号不支持。顺便说一下,x86_64适用于Intel的Core 2 Duo, Centrino Core 2 Duo,Xeon,AMD Athlon64/x2,Sempron64/x2,,Duron64等采用x86架构的64位CPU。

一般来说,等级愈高的机器可接受较低等级的rpm文件。可以通过/proc/cpuinfo这个文档查询CPU等级。

x86体系结构虽然指令都一样,但是不同时代的具体实现,在编译优化上还是有自己的特点,而且后一代往往会多出一些指令,所以编译rpm时,可以针对不同的体系结构作不同的编译选项优化

以上只是对相关概念的简单说明,还有其他更深入的知识,这里就不一一列出。下一篇主要介绍一下64位结构上的x86-64和IA-64。

 

 

第二部分:x86,x86-64,IA-64

x86:从1978年来的8086处理器开始,就已经出现了x86架构CPU,即32位处理器。(详见上篇)

x86-64:又简称为x64,最初开发为1999年AMD,也叫做AMD64x64,为了扩充IA64。当时的x86-64架构诞生颇有时代意义,处理器的发展遇到了瓶颈,内存寻址空间由于受到32位CPU的限制而只能最大到约4G。于是就有了x86-64。后被Intel所采用。

IA-64:其实IA-64的历史早于x86-64x,最初由Intel和惠普联合推出。由于IA-64不与32位兼容,所以没有受到重视。直到Intel采用了AMD的x86-64架构,才正式的批量生产。而后为了日益扩张的计算需求,Intel重新将IA-64拿出来,发布了安腾系列服务器CPU。

虽然x86-64和IA-64处理器都能够运行64位操作系统和应用程序,但是区别在于:

  • x86-64架构基于x86,是为了让x86架构CPU兼容64位计算而产生的技术。X86-64架构的设计是采用直接简单的方法将目前的x86指令集扩展。这个方法与当初的由16位扩展至32位的情形很相似。优点在于用户可以自行选择x86平台或x64平台,兼容性高。
  • IA-64则是原生的纯64位计算处理器,并且与x86指令不兼容。如果想要执行x86指令需要硬件虚拟化支持,而且效率不高。优点在于 IA-64架构体系将拥有64位内存寻址能力,能够支持更大的内存寻址空间。并且由于架构的改变,性能比起x86-64的64位兼容模式更高更强

所以,IA-64操作系统也是比较少见的,由于只能在Intel安腾系列处理器及AMD部分服务器处理器运行,所以主流市场并不常见。而且,这些IA-64架构处理器也不能够使用x64操作系统。而x86-64处理器则可以自由选择x86或是x64操作系统。

 

 

Itanium(官方中文名称为安腾),是 Intel Itanium 架构(通常称之为IA-64)的 64位处理器。Intel 推出了两个 Itanium 的家族:其一是 Itanium,另一个是 Itanium 2。在 2007年 11月1日,Itanium 2 的家族又再一次称为Itanium。该处理器的市场定位是在于企业服务器与高效能运算系统。该架构由 HP 创始,后来则是 HP 与 Intel 共同开发。

Itanium的微架构是彻底的不同于其他 Intel 处理器采用的 x86(包含x86-64)架构。这个架构是建基于显性的指令并发,由编译器来决定哪些指令并发处理。这种方式允许处理器在每个周期最多可以运行 6 个指令。与超标量架构的不同点,Itanium在并发处理中并没有复杂的线路来判断指令依赖性,所以编译器必须要在编译的时候就已经处理妥当。

在一系列的拖延开发进度后,第一款 Itanium 于 2001年推出,性能更强的 Itanium 处理器在之后则是有周期性的持续推出。采用 Itanium 处理器的制造商之中,以 HP 的制造量最多。在 2007年,Itanium 在企业界系统采用的架构之中是位于第四名,而前三名则是x86-64、IBM POWER 与 SPARC。Intel 推出最新的 Itanium 处理器为 Montvale 核心,于 2007年 11月推出。

 

 

IBM POWER是RISC处理器架构的一种,由IBM设计,全称为“Performance Optimization With Enhanced RISC”,《IBM Connect电子报》2007年8月号译为“增强RISC性能优化”。POWER系列微处理器在不少IBM服务器、超级电脑、小型电脑及工作站中,广泛作为主CPU使用。而PowerPC架构也是源自POWER架构,并应用在苹果电脑的麦金塔电脑及部份IBM的工作站,以及各式各样的嵌入式系统上。此外,IBM透过Power.org网站,向其他开发者及制造商推广POWER架构及其他衍生产品。

POWER同样也是一系列实施了同样架构指令集的微处理器的名字。POWER系列微处理器用于IBM的服务器、微电脑、工作站、超级电脑的主处理器。POWER3以及随后的POWER系列微处理器均全部实施了64-bit PowerPC架构。从POWER3开始及其之后的POWER处器都不再具备与支援更早之前的旧POWER的指令集架构(Instruction Set Architecture,ISA),包括PowerPC指令集架构或任何POWER2所追加延伸的指令,如lfq或stfq等,都不再具备与支援。

 

 

SPARC,全称为“可扩充处理器架构”(Scalable Processor ARChitecture),是RISC微处理器架构之一。它最早于1985年由太阳微系统所设计,也是SPARC国际公司的注册商标之一。这家公司于1989年成立,其目的是向外界推广SPARC,以及为该架构进行符合性测试。此外该公司为了扩阔SPARC设计的生态系统,SPARC国际也把标准开放,并授权予多间生产商采用,包括德州仪器、Cypress半导体、富士通等。由于SPARC架构也对外完全开放,因此也出现了完全开放源代码的LEON处理器,这款处理器以VHDL语言写成,并采用LGPL授权。

SPARC架构原设计给工作站使用,及后应用在升阳、富士通等制造的大型SMP服务器上。而升阳开发的Solaris操作系统也是为SPARC设计的系统之一,除Solaris外,NeXTSTEP、Linux、FreeBSD、OpenBSD及NetBSD系统也提供SPARC版本。

现时最新版本的SPARC为第8及第9版,在2005年12月,升阳方面宣布其UltraSPARC T1处理器将采用开放源代码方式。2006年4月12日,太阳微系统宣布完整的UltraSPARC T2处理器已经进行试产。

原创粉丝点击