Intel x86
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Intel x86
1978年英特尔公司推出的16位微处理器
01 发展历史
03 生产商
目录
02 架构模式
基本信息
Intel x86是英特尔公司于1978年推出的16位微处理器。
x86泛指一系列基于Intel 8086且向后兼容的中央处理器指令集架构。
Intel在早期以80x86这样的数字格式来命名处理器,包括Intel 8086、80186、80286、80386以及80486, 由于以“86”作为结尾,因此其架构被称为“x86”。由于数字并不能作为注册商标,因此Intel及其竞争者均在 新一代处理器使用可注册的名称,如奔腾(Pentium)、酷睿(Core)、锐龙(Ryzen,AMD推出)。
尽管这个推出的功能是一项进步,但是他们并没有被广泛地使用,因为保护模式的操作系统无法运行现有的 实模式软件。这样的能力只有在随后80386处理器的虚拟86模式中出现。
在同时,操作系统比如OS/2尝试使用类似乒乓的方法,让处理器在保护和实模式间切换。这样都会让计算机 变慢且不安全,像是在实模式下的程序可以轻易地使计算机当机。OS/2也定义了限制性的程序设计规则允许 "Family API"或"bound"程序可以在实模式或保护模式下运行。然而这是给原本为保护模式下设计的程序有关, 反之则不然。保护模式程序并不支持节区选择子和物理内存之间的关系。有时候会错误地相信在16位保护模式下 运行实模式的程序,导致IBM必须选择使用Intel保留给BIOS的中断调用。事实上这类的程序使用任意的选择子数 值和使用在上面提到的“节区运算”的方式有关。
另外,x86处理器制造厂商AMD也在该公司最新K10架构的Phenom处理器中,加入4条新的SSE4A指令集。注 意,SSE4与SSE4A无法彼此兼容。
64位架构
到2002年,由于32位特性的长度,x86的架构开始到达某些设计的极限。这个导致要处理大量的信息储存大 于4GB会有困难,像是在数据库或是影片编辑上可以发现。
05
MMX和之后
01
SSE
02
SSE2
03
SSE3
04
SSE4
06
虚拟
05
64位架构
实时模式
Intel 8086和8088有14个16位寄存器。其中四个(AX, BX, CX, DX)是通用目的(尽管每个寄存器都有附 加目的;举个例子:只有CX可以被用来当作loop(循环)指令的计数器。)每个寄存器可以被当成两个分开的字 节访问(因此BX的高位可以被当成BH,低位则可以当成BL)。除了这些寄存器,还有四个区段寄存器(CS、DS、 SS、ES)。他们用来产生存储器的绝对地址。还有两个指针寄存器(SP是指向堆栈的底部,BP可以用来指向堆栈 或存储器的其它地方)。两个指针寄存器(SI和DI)可以用来指向数组的内部。最后,有标志寄存器(包含状态 标志比如进位、溢出、零标志,等等)。以及IP是用来指向运行指令的地址。
Intel原本已经决定在64位的时代完全地舍弃x86兼容性,推出新的架构称为IA-64技术作为他的Itanium处 理器产品线的基础。IA-64与x86的软件天生不兼容;它使用各种模拟形式来运行x86的软件,不过,以模拟方式 来运行的效率十分低下,并且会影响其他程序的运行。
AMD主动把32位x86(或称为IA-32)扩充为64位。它以一个称为AMD64的架构出现(在重命名前也称为x8664),且以这个技术为基础的第一个产品是单内核的Opteron和Athlon 64处理器家族。由于AMD的64位处理器产 品线首先进入市场,且微软也不愿意为Intel和AMD开发两套不同的64位操作系统,Intel也被迫采纳AMD64指令 集且增加某些新的扩充到他们自己的产品,命名为EM64T架构(显然他们不想承认这些指令集是来自它的主要对 手),EM64T后来被Intel正式更名为Intel 64。
没有新的通用寄存器被加入。所有16位的寄存器除了区段寄存器外都扩充为32位。Intel在寄存器的助记符 号上加入“E”来表示(因此扩充的AX变成EAX,SI变成ESI,依此类推)。因为有更多的寄存器数量、指令、和 运算单元,因此机器码的格式也被扩充。为了提供与先前的架构兼容,包含运行码的区段可以被标示为16或是32 位的指令集。此外,特殊的前置符号也可以用来在16位的区段包含32位的脚本,反之亦然。
Intel 80386数学辅助运算处理器也在集成到这个CPU之后的x86系列中,也就是Intel 80486。
系统管理模式
Intel首次在80386SL之后引入其x86体系结构。
MMX和之后
1996年Intel的MMX(AMD认为这是矩阵数学扩充Matrix Math Extensions的缩写,但大多数时候都被当成 Multi-Media Extension,而Intel从来没有官方宣布过词源)技术出现。尽管这项新的技术得到广泛宣传,但 它的精髓是非常简单的:MMX定义了八个64位SIMD寄存器,与Intel Pentium处理器的FPU堆栈有相重叠。不幸的 是,这些指令无法非常简单地对应到由原来C编译器所产生的脚本中。MMX也只局限于整数的运算。这项技术的缺 点导致MMX在它早期的存在有轻微的影响。现今,MMX通常是用在某些2D影片应用程序中。
SSE
在1999年Intel推出SSE指令集,增加了八个新的128-bit寄存器(不跟其他的寄存器重叠使用)。这些指令 类似于AMD的3DNow!,主要是增加浮点数运算的SIMD指令。
SSE2
2001年Intel推出SSE2指令集,增加了: 完整地补充了整数指令(与MMX相似)到原来的SSE寄存器。 64位的SIMD浮点运算指令到原来的SSE寄存器。 第一个的增加导致MMX几乎是过时可以舍弃的,第二个则允许这些指令可以让传统的编译器现实地产生。
在这种架构下,两对不同的区段/偏移可以指向一个相同的绝对地址。因此如果DS是A111h且SI是4567h, DS:SI会指向跟上一段相同的A5677h。除了duplicity之外,这种架构无法同时一次拥有4个以上的区段。此外, CS、DS和SS是为了程序正确功能而必须的,因此仅仅只有ES可以被用来指向其它的地方。这种模式原本是为了与 Intel 8085兼容,导致程序设计师永无止尽的痛苦。
值得注意的是Intel早在1990年代就与HP合作提出了一种用在安腾系列处理器中的独立的64位架构,这种架 构被称为IA-64。IA-64是一种崭新的系统,和x86架构完全没有相似性;不应该把它与x86-64或x64弄混。
架构模式
01
实时统管理模 式
06
3DNow!
03
32位保护
x86的32位架构一般又被称作IA-32,全名为“Intel Architecture, 32-bit”。其64位架构由AMD率先推 出,并被称为“AMD64”。之后也被Intel采用,被其称为“Intel 64”。一般也被称作“x86-64”、“x64”。
值得注意的是,Intel也推出过IA-64架构,虽然名字上与“IA-32”相似,但两者完全不兼容,并不属于 x86指令集架构家族。
在实模式下,存储器的访问是被区段开来。为了得到最后20位的存储器地址,要将区段的地址往左移动4位, 并且加上偏移的地址。因此,实模式下总共可以寻址的空间是2字节,或者是1MB,于1979年是相当让人印象深刻 的象征。在实模式下有两种寻址模式:near和far。在 far模式,区段跟偏移都需要被指定;在near模式,只需 要偏移模式被指定,而存储器区段是由适当的区段寄存器获得。以数据而言是使用DS寄存器,代码是CS寄存器, 堆栈是SS寄存器。举个例子,如果DS是A000h且SI是5677h,DS:SI会指向计忆体的绝对地址DS × 16 + SI = A5677h
SSE3
于2004年随着Pentium 4处理器的改版Prescott内核推出。SSE3增加特定的存储器和thread-handling指 令来提升Intel超线程的效能,在科学计算方面也有增强。
SSE4
2007年1月,Intel公开发表使用其45纳米制程"Penryn"芯片家族的PC和服务器。"Penryn"是这一系列依据 英特尔Core微架构之笔记本电脑、台式机和服务器芯片家族的代号,首次正式发布时共有16款处理器,除了一款 Intel Core 2 Extreme QX9650是针对普通台式机市场外,其余的双核Xeon 5200系列和四核5400系列都是服务 器处理器。基本上Penryn是继Merom之后的缩小版Core 2 Duo,再加上47条新的SSE4指令集等额外配备。SSE4指 令集之首次发表时间为2006年9月的英特尔开发者论坛(IDF,Intel Developer Forum)。
8086是16位处理器;直到1985年32位的80386的开发,这个架构都维持是16位。接着一系列的处理器表示了 32位架构的细微改进,推出了数种的扩充,直到2003年AMD对于这个架构发展了64位的扩充,并命名为AMD64。后 来Intel也推出了与之兼容的处理器,并命名为Intel 64。两者一般被统称为x86-64或x64,开创了x86的64位时 代。
32位保护
Intel 80386推出后,也许是x86架构的最大跃进。除了需要值得注意的Intel 80386SX是32位架构但仅只 有24位寻址(和16位数据总线)。除此之外其他架构都是32位 -所有的寄存器、指令集、输出输入空间和存储器 寻址。为了能够在后者所说的功能工作,要使用32位扩充的保护模式。然而不像286,386所有的区段可以使用32 位的偏移量,即使存储器空间有使用区段,但也允许应用程序访问超过4GB空间而不需要区段的分隔。此外,32 位保护模式提供分页的支持,是一种让虚拟内存得以实现的机制。
16位保护
Intel 80286可以在不改变任何东西下,支持8086的实模式16位软件,然而它也支持额外的工作模式称为保 护模式,可以将可寻址的物理内存扩充到16MB,可寻址的虚拟内存最大到 1GB。这是使用节区寄存器来储存在节 区表格中的索引值。处理器中有两个这样的表格,分别为GDT和LDT,每一个可以储存最多8192个节区的描述子, 每一个节区可以给予最大到64KB的存储器访问。节区表格提供一个24位的基底地址(base address),可以用 此基底地址增加想要的偏移量来创造出一个绝对地址。此外,每一个节区可以被赋予四种权限等级中的一种(称 为 "rings")。
分页跟区段的存储器访问是为了支持多任务操作系统所必须要的。Linux、386BSD、Windows NT和Windows 95都是一开始为386所发展,因为它是第一颗提供可靠地程序分离存储器空间的支持(每个程序拥有自己的寻址 空间)以及可以在必要的情况下打断他们程序的运行(使用ring,一种x86保护模式下权力分级的名称)。这种 386的基本架构变成未来所有x86系列发展的基础。
3DNow!
1997年AMD推出3DNow!,是对于MMX的SIMD的浮点指令增强(针对相同的 MMX寄存器)。尽管这些也没有解 决编译器的难题,但这项技术的推出符合了PC上的3D休闲娱乐应用程序之崛起。3D游戏开发者和3D绘图硬件制造 商在AMD的AMD K6和Athlon系列处理器上,使用3DNow!来帮助增加他们的效能。微软后来也在其开发的Direct X7.0中加入针对3DNow!的最佳化,使当时的Athlon处理器在3D游戏效能上首次全面超过对手 Intel的Pentium 3处理器。
发展历史
发展历史
x86架构于1978年推出的Intel 8086中央处理器中首度出现,它是从Intel 8008处理器中发展而来的,而 8008则是发展自Intel 4004的。8086在三年后为IBM PC所选用,之后x86便成为了个人计算机的标准平台,成为 了历来最成功的CPU架构。
其他公司也有制造x86架构的处理器,计有Cyrix(现为VIA所收购)、NEC集团、IBM、IDT以及Transmeta。 Intel以外最成功的制造商为AMD,其早先产品Athlon系列处理器的市场份额仅次于Intel Pentium。
1978年英特尔公司推出的16位微处理器
01 发展历史
03 生产商
目录
02 架构模式
基本信息
Intel x86是英特尔公司于1978年推出的16位微处理器。
x86泛指一系列基于Intel 8086且向后兼容的中央处理器指令集架构。
Intel在早期以80x86这样的数字格式来命名处理器,包括Intel 8086、80186、80286、80386以及80486, 由于以“86”作为结尾,因此其架构被称为“x86”。由于数字并不能作为注册商标,因此Intel及其竞争者均在 新一代处理器使用可注册的名称,如奔腾(Pentium)、酷睿(Core)、锐龙(Ryzen,AMD推出)。
尽管这个推出的功能是一项进步,但是他们并没有被广泛地使用,因为保护模式的操作系统无法运行现有的 实模式软件。这样的能力只有在随后80386处理器的虚拟86模式中出现。
在同时,操作系统比如OS/2尝试使用类似乒乓的方法,让处理器在保护和实模式间切换。这样都会让计算机 变慢且不安全,像是在实模式下的程序可以轻易地使计算机当机。OS/2也定义了限制性的程序设计规则允许 "Family API"或"bound"程序可以在实模式或保护模式下运行。然而这是给原本为保护模式下设计的程序有关, 反之则不然。保护模式程序并不支持节区选择子和物理内存之间的关系。有时候会错误地相信在16位保护模式下 运行实模式的程序,导致IBM必须选择使用Intel保留给BIOS的中断调用。事实上这类的程序使用任意的选择子数 值和使用在上面提到的“节区运算”的方式有关。
另外,x86处理器制造厂商AMD也在该公司最新K10架构的Phenom处理器中,加入4条新的SSE4A指令集。注 意,SSE4与SSE4A无法彼此兼容。
64位架构
到2002年,由于32位特性的长度,x86的架构开始到达某些设计的极限。这个导致要处理大量的信息储存大 于4GB会有困难,像是在数据库或是影片编辑上可以发现。
05
MMX和之后
01
SSE
02
SSE2
03
SSE3
04
SSE4
06
虚拟
05
64位架构
实时模式
Intel 8086和8088有14个16位寄存器。其中四个(AX, BX, CX, DX)是通用目的(尽管每个寄存器都有附 加目的;举个例子:只有CX可以被用来当作loop(循环)指令的计数器。)每个寄存器可以被当成两个分开的字 节访问(因此BX的高位可以被当成BH,低位则可以当成BL)。除了这些寄存器,还有四个区段寄存器(CS、DS、 SS、ES)。他们用来产生存储器的绝对地址。还有两个指针寄存器(SP是指向堆栈的底部,BP可以用来指向堆栈 或存储器的其它地方)。两个指针寄存器(SI和DI)可以用来指向数组的内部。最后,有标志寄存器(包含状态 标志比如进位、溢出、零标志,等等)。以及IP是用来指向运行指令的地址。
Intel原本已经决定在64位的时代完全地舍弃x86兼容性,推出新的架构称为IA-64技术作为他的Itanium处 理器产品线的基础。IA-64与x86的软件天生不兼容;它使用各种模拟形式来运行x86的软件,不过,以模拟方式 来运行的效率十分低下,并且会影响其他程序的运行。
AMD主动把32位x86(或称为IA-32)扩充为64位。它以一个称为AMD64的架构出现(在重命名前也称为x8664),且以这个技术为基础的第一个产品是单内核的Opteron和Athlon 64处理器家族。由于AMD的64位处理器产 品线首先进入市场,且微软也不愿意为Intel和AMD开发两套不同的64位操作系统,Intel也被迫采纳AMD64指令 集且增加某些新的扩充到他们自己的产品,命名为EM64T架构(显然他们不想承认这些指令集是来自它的主要对 手),EM64T后来被Intel正式更名为Intel 64。
没有新的通用寄存器被加入。所有16位的寄存器除了区段寄存器外都扩充为32位。Intel在寄存器的助记符 号上加入“E”来表示(因此扩充的AX变成EAX,SI变成ESI,依此类推)。因为有更多的寄存器数量、指令、和 运算单元,因此机器码的格式也被扩充。为了提供与先前的架构兼容,包含运行码的区段可以被标示为16或是32 位的指令集。此外,特殊的前置符号也可以用来在16位的区段包含32位的脚本,反之亦然。
Intel 80386数学辅助运算处理器也在集成到这个CPU之后的x86系列中,也就是Intel 80486。
系统管理模式
Intel首次在80386SL之后引入其x86体系结构。
MMX和之后
1996年Intel的MMX(AMD认为这是矩阵数学扩充Matrix Math Extensions的缩写,但大多数时候都被当成 Multi-Media Extension,而Intel从来没有官方宣布过词源)技术出现。尽管这项新的技术得到广泛宣传,但 它的精髓是非常简单的:MMX定义了八个64位SIMD寄存器,与Intel Pentium处理器的FPU堆栈有相重叠。不幸的 是,这些指令无法非常简单地对应到由原来C编译器所产生的脚本中。MMX也只局限于整数的运算。这项技术的缺 点导致MMX在它早期的存在有轻微的影响。现今,MMX通常是用在某些2D影片应用程序中。
SSE
在1999年Intel推出SSE指令集,增加了八个新的128-bit寄存器(不跟其他的寄存器重叠使用)。这些指令 类似于AMD的3DNow!,主要是增加浮点数运算的SIMD指令。
SSE2
2001年Intel推出SSE2指令集,增加了: 完整地补充了整数指令(与MMX相似)到原来的SSE寄存器。 64位的SIMD浮点运算指令到原来的SSE寄存器。 第一个的增加导致MMX几乎是过时可以舍弃的,第二个则允许这些指令可以让传统的编译器现实地产生。
在这种架构下,两对不同的区段/偏移可以指向一个相同的绝对地址。因此如果DS是A111h且SI是4567h, DS:SI会指向跟上一段相同的A5677h。除了duplicity之外,这种架构无法同时一次拥有4个以上的区段。此外, CS、DS和SS是为了程序正确功能而必须的,因此仅仅只有ES可以被用来指向其它的地方。这种模式原本是为了与 Intel 8085兼容,导致程序设计师永无止尽的痛苦。
值得注意的是Intel早在1990年代就与HP合作提出了一种用在安腾系列处理器中的独立的64位架构,这种架 构被称为IA-64。IA-64是一种崭新的系统,和x86架构完全没有相似性;不应该把它与x86-64或x64弄混。
架构模式
01
实时统管理模 式
06
3DNow!
03
32位保护
x86的32位架构一般又被称作IA-32,全名为“Intel Architecture, 32-bit”。其64位架构由AMD率先推 出,并被称为“AMD64”。之后也被Intel采用,被其称为“Intel 64”。一般也被称作“x86-64”、“x64”。
值得注意的是,Intel也推出过IA-64架构,虽然名字上与“IA-32”相似,但两者完全不兼容,并不属于 x86指令集架构家族。
在实模式下,存储器的访问是被区段开来。为了得到最后20位的存储器地址,要将区段的地址往左移动4位, 并且加上偏移的地址。因此,实模式下总共可以寻址的空间是2字节,或者是1MB,于1979年是相当让人印象深刻 的象征。在实模式下有两种寻址模式:near和far。在 far模式,区段跟偏移都需要被指定;在near模式,只需 要偏移模式被指定,而存储器区段是由适当的区段寄存器获得。以数据而言是使用DS寄存器,代码是CS寄存器, 堆栈是SS寄存器。举个例子,如果DS是A000h且SI是5677h,DS:SI会指向计忆体的绝对地址DS × 16 + SI = A5677h
SSE3
于2004年随着Pentium 4处理器的改版Prescott内核推出。SSE3增加特定的存储器和thread-handling指 令来提升Intel超线程的效能,在科学计算方面也有增强。
SSE4
2007年1月,Intel公开发表使用其45纳米制程"Penryn"芯片家族的PC和服务器。"Penryn"是这一系列依据 英特尔Core微架构之笔记本电脑、台式机和服务器芯片家族的代号,首次正式发布时共有16款处理器,除了一款 Intel Core 2 Extreme QX9650是针对普通台式机市场外,其余的双核Xeon 5200系列和四核5400系列都是服务 器处理器。基本上Penryn是继Merom之后的缩小版Core 2 Duo,再加上47条新的SSE4指令集等额外配备。SSE4指 令集之首次发表时间为2006年9月的英特尔开发者论坛(IDF,Intel Developer Forum)。
8086是16位处理器;直到1985年32位的80386的开发,这个架构都维持是16位。接着一系列的处理器表示了 32位架构的细微改进,推出了数种的扩充,直到2003年AMD对于这个架构发展了64位的扩充,并命名为AMD64。后 来Intel也推出了与之兼容的处理器,并命名为Intel 64。两者一般被统称为x86-64或x64,开创了x86的64位时 代。
32位保护
Intel 80386推出后,也许是x86架构的最大跃进。除了需要值得注意的Intel 80386SX是32位架构但仅只 有24位寻址(和16位数据总线)。除此之外其他架构都是32位 -所有的寄存器、指令集、输出输入空间和存储器 寻址。为了能够在后者所说的功能工作,要使用32位扩充的保护模式。然而不像286,386所有的区段可以使用32 位的偏移量,即使存储器空间有使用区段,但也允许应用程序访问超过4GB空间而不需要区段的分隔。此外,32 位保护模式提供分页的支持,是一种让虚拟内存得以实现的机制。
16位保护
Intel 80286可以在不改变任何东西下,支持8086的实模式16位软件,然而它也支持额外的工作模式称为保 护模式,可以将可寻址的物理内存扩充到16MB,可寻址的虚拟内存最大到 1GB。这是使用节区寄存器来储存在节 区表格中的索引值。处理器中有两个这样的表格,分别为GDT和LDT,每一个可以储存最多8192个节区的描述子, 每一个节区可以给予最大到64KB的存储器访问。节区表格提供一个24位的基底地址(base address),可以用 此基底地址增加想要的偏移量来创造出一个绝对地址。此外,每一个节区可以被赋予四种权限等级中的一种(称 为 "rings")。
分页跟区段的存储器访问是为了支持多任务操作系统所必须要的。Linux、386BSD、Windows NT和Windows 95都是一开始为386所发展,因为它是第一颗提供可靠地程序分离存储器空间的支持(每个程序拥有自己的寻址 空间)以及可以在必要的情况下打断他们程序的运行(使用ring,一种x86保护模式下权力分级的名称)。这种 386的基本架构变成未来所有x86系列发展的基础。
3DNow!
1997年AMD推出3DNow!,是对于MMX的SIMD的浮点指令增强(针对相同的 MMX寄存器)。尽管这些也没有解 决编译器的难题,但这项技术的推出符合了PC上的3D休闲娱乐应用程序之崛起。3D游戏开发者和3D绘图硬件制造 商在AMD的AMD K6和Athlon系列处理器上,使用3DNow!来帮助增加他们的效能。微软后来也在其开发的Direct X7.0中加入针对3DNow!的最佳化,使当时的Athlon处理器在3D游戏效能上首次全面超过对手 Intel的Pentium 3处理器。
发展历史
发展历史
x86架构于1978年推出的Intel 8086中央处理器中首度出现,它是从Intel 8008处理器中发展而来的,而 8008则是发展自Intel 4004的。8086在三年后为IBM PC所选用,之后x86便成为了个人计算机的标准平台,成为 了历来最成功的CPU架构。
其他公司也有制造x86架构的处理器,计有Cyrix(现为VIA所收购)、NEC集团、IBM、IDT以及Transmeta。 Intel以外最成功的制造商为AMD,其早先产品Athlon系列处理器的市场份额仅次于Intel Pentium。