关于“X86”

  经常听到看到 “X86架构“,”X86“ 到底指什么?

  X86 是指一套计算机二进制指令集合。计算机指令本质为了操作控制 CPU,进而控制整个计算机系统的运作。X86 也不例外,其可以控制支持 X86 指令集合的 CPU。

  CPU 种类多种多样,其对应指令集也不尽相同。X86 为何能在竞争中独树一帜?

  在早期 CPU 百家争鸣的时代,X86 架构于 1978 年推出的 Intel 8086 中央处理器中首度出现,三年后,IBM PC 历史性的选择了 8086 作为其 CPU,随着 IBM PC 的大获成功,X86 也借势成为了个人计算机的标准平台,众多的软件在 X86 平台开发,也即使用 X86 指令集开发。计算机系统最终的目的是为了服务于具体的应用,而 X86 平台上众多的应用也会促使 CPU 制造厂商策略上的倾斜,研制其他指令集的 CPU 会使得基于 X86 平台的很多应用很难运行。为此,CPU 制造商纷纷推出了兼容 X86 架构的 CPU,即虽然 CPU 内部的具体设计厂商各展身手,不尽相同,但是 CPU 对外展现的指令集却与 X86 保持兼容,即 CPU 二进制指令集与 Intel 的 X86 保持一致,如此一来,在 Intel 的 X86 CPU 上的应用同样可运行在 X86 兼容的 CPU 上,可有效顺应市场需求。此时,除了 Intel 自己更新换代的 CPU 保持对 X86 指令集的兼容外,还有很多其他厂商的 CPU 同样支持 X86 指令集,形成了 X86 家族。

20160306

  尽管有众多厂商生产不同的 CPU,如 Intel、Cyrix、NEC、SiS 等,但他们都可支持相同的二进制指令集合,即 X86 指令集。上层应用开发只要使用 X86 指令集,执行层面 CPU 选择就十分灵活了。


  在计算机系统中,无论硬件还是软件,无处不体现着分层设计的思想。系统的分层架构有效的隔离的底层的细节,使得职责得以有效分离,关注点更为聚焦,应用维护更为灵活。

  使用分层设计,每一层只需关注本层的高效设计即可,本层无需关注其他层的内部设计,在本层将其它层均视为黑盒子,只需关于与其它层交互的接口即可。从这个意义上看,X86 指令集也可视为一种接口规范。

  上述文字重点说明了二进制指令集层和处理器执行层的关系。二进制指令在使用时效率实在不高,为提高应用效率,对二进制指令进行抽象势在必行。汇编语言即可视为对二进制指令的第一层抽象成果。在对 X86 二进制指令集的进行抽象的汇编语言设计上,又分为两大阵营,即 Intel 汇编和 AT&T 汇编,他们展现各自不同的汇编语法格式(也可以说,Intel 汇编和 AT&T 汇编是汇编语言不同的写作格式),但最终编译成的二进制指令都符合统一的 X86 指令规范。即虽然在汇编层次形成了语法差异,但在二进制指令语法层面又回归了统一。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注