当前位置: 华文星空 > 知识

指令集和指令集架构有哪些区别?

2021-02-25知识

我的个人看法是没有区别。

英文维基里面并没有单独的指令集(Instruction Set)这个词条,只有Instruction Set Architecture,也就是指令集架构这个词条,通常简写为ISA [1] 。x86、ARM、POWER、SPARC这些词条的第一句定义/介绍中,属于比较严谨的语句中,写的都是ISA,我没有见过单独使用Instruction Set的场景——当然,后面的详细介绍中有些时候会省掉Architecture而直接用Instruction Set。

x86 is a family of instruction set architectures initially developed by Intel based on the Intel 8086 microprocessor and its 8088 variant. The 8086 was introduced in 1978 as a fully 16-bit extension of Intel's 8-bit 8080 microprocessor, with memory segmentation as a solution for addressing more memory than can be covered by a plain 16-bit address. The term "x86" came into being because the names of several successors to Intel's 8086 processor end in "86", including the 80186, 80286, 80386 and 80486 processors. [2] ARM (stylised in lowercase as arm, previously an acronym for Advanced RISC Machines and originally Acorn RISC Machine) is a family of reduced instruction set computing (RISC) architectures for computer processors, configured for various environments. Arm Ltd. develops the architecture and licenses it to other companies, who design their own products that implement one of those architectures‍—including systems-on-chips (SoC) and systems-on-modules (SoM) that incorporate different components such as memory, interfaces, and radios. It also designs cores that implement this instruction set and licenses these designs to a number of companies that incorporate those core designs into their own products. [3] The IBM POWER ISA is a reduced instruction set computer (RISC) instruction set architecture (ISA) developed by IBM. The name is an acronym for Performance Optimization With Enhanced RISC. [4] SPARC (Scalable Processor Architecture) is a reduced instruction set computing (RISC) instruction set architecture (ISA) originally developed by Sun Microsystems.[1][2] Its design was strongly influenced by the experimental Berkeley RISC system developed in the early 1980s. First developed in 1986 and released in 1987,[3][2] SPARC was one of the most successful early commercial RISC systems, and its success led to the introduction of similar RISC designs from a number of vendors through the 1980s and 90s. [5]

此外,像x86的指令集扩展(Instruction Set Extension),如SSE、AVX等,某些时候也会简写为Instruction Set。所以我跟倾向于中文常说的指令集,就是指令集架构的简写而已。中文维基词条也是这么说的:

指令集架构(英语:Instruction Set Architecture,缩写为ISA), 又称指令集 或指令集体系,是计算机体系结构中与程序设计有关的部分,包含了基本数据类型,指令集,寄存器,寻址模式,存储体系,中断,异常处理以及外部I/O。指令集架构包含一系列的opcode即操作码(机器语言),以及由特定处理器执行的基本命令。 [6]

指令集架构闭源还是开源,并不影响其它开发者开发基于这个指令集的应用。正如闭源的Windows、macOS、iOS,上面都有非常丰富的应用;反倒是开源的GNU/Linux(不含Android/Linux),应用种类都比这几个闭源的系统少得多,至于其它份额很少的开源系统就更不用说了。CPU的指令集,和各种系统的底层API(例如Windows的Win32,类Unix的POSIX等)其实是一样的;闭源只不过意味着其他人可以按照厂商要求使用但无法更改(除非提出反馈建议并被厂商接受),而开源则是可以参与制定,甚至在社区不接受的情况下自己搞一套而已。

参考

  1. ^ Instruction set architecture - Wikipedia https://en.wikipedia.org/wiki/Instruction_set_architecture
  2. ^ x86 - Wikipedia https://en.wikipedia.org/wiki/X86
  3. ^ ARM architecture - Wikipedia https://en.wikipedia.org/wiki/ARM_architecture
  4. ^ IBM POWER instruction set architecture - Wikipedia https://en.wikipedia.org/wiki/IBM_POWER_instruction_set_architecture
  5. ^ SPARC - Wikipedia https://en.wikipedia.org/wiki/SPARC
  6. ^ 指令集架构 - 维基百科,自由的百科全书 https://zh.wikipedia.org/wiki/指令集架構