計算機指令集體系結構概述

程式設計師在檢視CPU的說明書裡,會告知軟體程式設計師在程式設計時可以使用的指令有哪些,這些指令的集合也被稱作

指令集

(Instruction Set),還會告知軟體程式設計師可以使用的暫存器有哪些,可以訪問的儲存單元地址範圍是什麼,指令的定址方式有哪些,如何訪問I/O裝置等等,CPU說明書裡的這些內容可以統稱為

指令集體系結構

指令集架構

(Instruction Set Architecture),簡稱ISA。

A廠家和B廠家製造的電視機的內部構造可能是不同的,但可以提供相同的使用方式,即電視上的按鍵和遙控器的功能都相同。這樣我們在會使用A廠家的電視後,就可以毫不費力地操作B廠家的電視。類似的,A廠家和B廠家可以生產內部構造並不相同,但卻擁有相同

指令集體系結構

的CPU。這樣軟體程式設計師在A廠家生產的CPU上編寫的軟體程式,可以很容易地就執行在B廠家生產的CPU上。很顯然,

指令集體系結構

充當了一箇中間人,硬體工程師遵照

指令集體系結構

的說明去設計硬體,軟體工程師遵照

指令集體系結構

的說明去編寫軟體,硬體工程師和軟體工程師並不需要直接溝通。

指令集體系結構

是獨立於CPU的具體電路實現而抽象出的一個概念,CPU的具體電路實現也被稱作

微體系結構

。隨著時代的變遷,陸續出現了不同的

指令集體系結構

,很多種

指令集體系結構

也湮沒在歷史的車輪裡,下邊我們介紹幾種現在市面上還在流行的

指令集體系結構

x86

Intel公司開發了一系列名稱以86結尾的CPU,如8086、80286、80386等等,Intel公司生產的CPU所使用的

指令集體系結構

統稱為x86(雖然後續研發的CPU的命名並不以86結尾,諸如奔騰系列、酷睿系列,但仍被稱作x86系列)。時至今日,大部分個人電腦上裝的都是使用x86體系結構的CPU。除Intel以外,其他一些公司也在生產x86體系結構的CPU,這裡頭最出名的就是AMD公司,大家現在在網上選購自己電腦的CPU時選用的最多的就是AMD公司或Intel公司家的x86體系結構CPU。

MIPS

MIPS是John Hennessy教授和他的朋友們在20世紀八十年代在斯坦福大學首先提出的一種指令集體系結構,在遊戲機、路由器、攝像頭、電視機種有很多應用。值得一提的是,中國科學院計算所自主研發的CPU——龍芯,就是基於MIPS指令集體系結構進行研發的。

POWER

這是一種由IBM公司設計研發的一種指令集體系結構,應用在很多IBM製作的計算機中。

SPARC

這是一種有Sun公司設計研發的一種指令集體系結構。

ARM

這是一種由ARM公司設計研發的一種指令集體系結構,ARM公司並不直接參與CPU的製造與銷售,而是把指令集架構授權給別的公司。目前我們常用的手機CPU很多都是用的是ARM指令集體系結構,比方說我們常聽說的高通、華為海思等等。

RISC-V

RISC-V是美國加州大學伯克利分校於2010年開始設計的一款新的指令集體系結構,這是一種完全開放、免費使用的指令集體系結構。

這些

指令集體系結構

可以被分成兩個大類:

複雜指令集,英文名:Complex Instruction Set Computer,簡稱CISC。

精簡指令集,英文名:Reduced Instruction Set Computer,簡稱RISC。

上述

指令集體系結構

中,只有x86屬於CISC,其餘的都屬於RISC。CISC提供更多的指令,其中包含很多完成複雜功能的指令,這些指令平時可能很少用到。相反,RISC只提供很少的一些簡單指令,那些複雜的功能需要編寫若干條簡單指令才能去實現。對於軟體程式設計師來說,CISC可以讓軟體程式設計師編寫的程式的指令更少,而RISC可能需要使用更多的指令;但對於CPU設計人員來說,設計RISC的電路比CISC更簡單一些,而且RISC由於結構簡單,指令執行效率也更好一點。