當前位置: 華文星空 > 知識

指令集和指令集架構有哪些區別?

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/指令集架構