计算机硬件软件接口ISA


ISA(Instruction Set Architecture,指令集体系结构)

    IBM为了让自己的一系列计算机能够使用相同的软件,免去重复编写软件的痛苦,在它的System/30计算机中引入了ISA(Instruction Set Architecture,指令集体系结构)的概念,将编程所需要了解的硬件信息从硬件系统中抽象出来,这样软件人员可以面向ISA进行编程,开发出的软件不经过修改就可以应用在其他ISA架构的系统上。

    ISA用来描述编程时用到的抽象机器,而非这种机器的具体实现。从编程人员的角度看,ISA包括一套指令集合一些寄存器,程序员知道它们就可以编写程序。在PC领域,Intel和AMD的处理器都是基于x86指令集,因此我们不用担心换了更高性能的CPU,软件不能用,而手机上的程序不能在电脑上运行这是因为手机上的程序绝大部分是基于ARM指令集的。

    ISA使处理器的外部呈现和内部实现可以分离开来。ISA常被简称为Architecture(架构),是处理器的一个抽象描述,ISA在处理器中的实现,被称为Microarchitecture(微架构),同样是X86的Architecture,Intel和AMD各自使用不同的Microarchitecture.通俗的说Architecture是设计规范,Microarchitecture是处理器的设计实现。

主要的几种ISA

  目前没有一种统一的ISA为各个处理器厂商所接受,而是存在多种ISA,就像这个世界存在多种语言一样,但是主要的语言只有几种:汉语、英语、法语、俄语等。主要的ISA也只有几种:x86、ARM、SPARC、POWER、MIPS,除了x86是复杂的ISA外,其他的都是精简ISA。

  1.x86

    x86架构与1978年推出的Intel 8086处理器中首度出现,三年后,Intel 8086 为IBM PC所选用,之后x86便成为了个人计算机的标准平台,成为了历史上最成功的指令集架构。目前绝大多数个人计算机使用的都是兼容x86指令集架构的处理器。

  2.ARM

    1985年,应该的Acorn公司设计了自己的第一代32位、6MHz处理器,命名为Acorn RISC machine,简称ARM1。1990年,由苹果公司、VLSI公司共同出资,改组Acorn为ARM计算机公司,同时不再涉足具体芯片生产,只出售IP核。ARM公司设计低功耗、高性能的CUP内核,然后授权给其他公司,后者设计生产具体的处理器芯片。

  由于ARM侧重于低功耗、低成本,主要面向的是嵌入式应用,故随着智能手机、平板电脑等移动设备的普及,ARM公司发展的非常迅速。

  3.SPARC

    SPARC(Scalable Processor ARChitecture,可扩展处理器架构)源自美国加州大学伯克利分校上世纪80年代的研究,由Sun公司在1985年首先提出。1989年成为商用架构,生产出SPARC系列的处理器,Sun将其用在高性能工作站和服务器上。SPARC架构目前的版本有V8、V9.

  4. POWER

  5.MIPS