計算機指令就是指揮機器工作的指示和命令,程序就是一系列按一定順序排列的指令,執(zhí)行程序的過程就是計算機的工作過程。指令集,就是CPU中用來計算和控制計算機系統(tǒng)的一套指令的集合,而每一種新型的CPU在設計時就規(guī)定了一系列與其他硬件電路相配合的指令系統(tǒng)。而指令集的先進與否,也關系到CPU的性能發(fā)揮,它也是CPU性能體現(xiàn)的一個重要標志。每款CPU在設計時就規(guī)定了一系列與其硬件電路相配合的指令系統(tǒng)。指令的強弱也是CPU的重要指標,指令集是提高微處理器效率的最有效的工具之一。從現(xiàn)階段的主流體系結構講,指令集可分為復雜指令集和精簡指令集兩部分。
在計算機中,指示計算機硬件執(zhí)行某種運算、處理功能的命令稱為指令。指令是計算機運行的最小的功能單位,而硬件的作用是完成每條指令規(guī)定的功能。一臺計算機上全部指令的集合,就是這臺計算機的指令系統(tǒng)。指令系統(tǒng)也稱指令集,是這臺計算機全部功能的體現(xiàn)。而人們設計計算機首要考慮的是它擁有的功能,也就是首先要按功能檔次設計指令集,然后按指令集的要求在硬件上實現(xiàn)。指令系統(tǒng)不僅僅是指令的集合,還包括全部指令的指令格式、尋址方式和數(shù)據(jù)形式。所以,各計算機執(zhí)行的指令系統(tǒng)不僅決定了機器所要求的能力,而且也決定了指令的格式和機器的結構。反過來說,不同結構的機器和不同的指令格式應該具有與之相匹配的指令系統(tǒng)。為此,設計指令系統(tǒng)時,要對指令格式、類型及操作功能給予應有的重視。軟件是為了使用計算機而編寫的各種系統(tǒng)和用戶的程序,程序由一個序列的計算機指令組成。從這個角度上說,指令是用于設計程序的一種計算機語言單位。
計算機的指令系統(tǒng)是指一臺計算機上全部指令的集合,也稱計算機的指令集。指令系統(tǒng)包括指令格式、尋址方式和數(shù)據(jù)形式。一臺計算機的指令系統(tǒng)反映了該計算機的全部功能,機器類型不同,其指令系統(tǒng)也不同,因而功能也不同。指令系統(tǒng)的設置和機器的硬件結構密切相關,一臺計算機要有較好的性能,必須設計功能齊全、通用性強、內(nèi)含豐富的指令系統(tǒng),這就需要復雜的硬件結構來支持。
常見的指令集有:Intel的x86,EM64T,MMX,SSE,SSE2,SSE3,SSSE3 (Super SSE3),SSE4A,SSE4.1,SSE4.2,AVX,AVX2,AVX-512,VMX等指令集;和AMD的x86,x86-64,3D-Now!指令集。
RISC指令集是以后高性能CPU的發(fā)展方向。它與傳統(tǒng)的CISC(復雜指令集)相對。相比而言,RISC的指令格式統(tǒng)一,種類比較少,尋址方式也比復雜指令集少。使用RISC指令集的體系結構主要有ARM、MIPS。MIPS 指令集是最早實現(xiàn)商用的精簡指令集(RISC)之一,上個世紀80年代初由斯坦福大學的研究小組研發(fā),并在1984年成立MIPS計算機公司 [3] 。隨后MIPS 成為上世紀90年代最流行的指令集,一度與 x86 和ARM 指令集齊名。RISC具有設計更簡單、設計周期更短等優(yōu)點,并可以應用更多先進的技術,開發(fā)更快的下一代處理器。MIPS是出現(xiàn)最早的商業(yè)RISC架構芯片之一,新的架構集成了所有原來MIPS指令集,并增加了許多更強大的功能。隨著移動互聯(lián)網(wǎng)的興起,MIPS 指令集逐漸衰落,公司也多次輾轉被收購。
Intel AVX指令集在SIMD計算性能增強的同時也沿用了的MMX/SSE指令集。不過MMX/SSE的不同點在于增強的AVX指令,從指令的格式上就發(fā)生了很大的變化。x86 (IA-32/Intel 64)架構的基礎上增加了prefix (Prefix),所以實現(xiàn)了新的命令,也使更加復雜的指令得以實現(xiàn),從而提升了x86 CPU的性能。AVX并不是x86 CPU的擴展指令集,可以實現(xiàn)更高的效率,同時和CPU硬件兼容性也好,并且也有著足夠的擴展空間,這都和其全新的命令格式系統(tǒng)有關。更加流暢的架構就是AVX發(fā)展的方向,換言之,就是擺脫傳統(tǒng)x86的不足,在SSE指令的基礎上AVX也使SSE指令接口更加易用。針對AVX的最新的命令編碼系統(tǒng),Intel也給出了更加詳細的介紹,其中包括了大幅度擴充指令集的可能性。比如Sandy Bridge所帶來的融合了乘法的雙指令支持。從而可以更加容易地實現(xiàn)512bits和1024bits的擴展。而在2008年末到2009年推出的meniikoa CPU“Larrabee (LARAB)”處理器,就會采用AVX指令集。從地位上來看AVX也開始了Intel處理器指令集的新篇章。