CPU指令集概述。CPU指令集(Instruction Set)是CPU中計算和控制計算機系統所有指令的集合。指令集包含了基本數據類型,指令集,寄存器,尋址模式,存儲體系,中斷,異常處理以及外部I/O,一系列的opcode即操作碼(機器語言),以及由特定處理器執行的基本命令。指令集一般被整合在操作系統內核最底層的硬件抽象層中。指令集屬于計算機中硬件與軟件的接口,它向操作系統定義了CPU的基本功能。現階段的指令集可以被劃分為復雜指令集(CISC)與精簡指令集(RISC)兩類。
CPU指令集:CISC剖析。復雜指令集誕生于1960年代,在精簡指令集之前,被用來解決語義鴻溝。當時的復雜指令集經過高度編碼,支持匯編語言,擁有很高的代碼密度,有助于縮小程序,減少主存儲器的訪問次數,極大地節省了計算機存儲器和磁盤存儲成本,并且速度更快。復雜指令集是相對精簡指令集而言的,所有除了精簡指令集之外的都可以劃歸到復雜指令集之中。復雜指令集和精簡指令集的顯著差異是大多數的精簡指令集采用等長結構,并且嚴格區分存儲和讀取。復雜指令集通常出現在讀取和存儲通過算法相連的計算機中,如服務器和個人電腦中的X86指令集。復雜指令集的單一指令可以執行數個低階操作程序,例如存儲讀取,算法運行和記憶存儲,或者可以用單一指令來實現多步操作或尋址。隨著個人計算機的普及和計算機分工的細化,復雜指令集在低算力需求的計算機中出現了“過度設計”的現象,造成了寄存器一定程度上的浪費,精簡指令集由此孕育而生,二者并行發展了近50年。
CPU指令集:RISC剖析。精簡指令集采用小型,高度優化的指令集而非更復雜和特定化的指令。精簡指令集的主要特點是通過大量寄存器和高度規則的指令流水線優化了指令集,從而使每條指令的時鐘周期數減少。精簡指令集的另一個特點是讀取/存儲結構,在該指令集中存儲訪問必須通過完整的特定指令,而不是特定指令中的一部分。精簡指令集的思想成立于1970年代,成熟于1980年代。斯坦福大學的MIPS指令集和伯克利分校的SPARC指令集是當時的先驅。隨著2010年RISC-V的推出,精簡指令集進入了開源的第五世代。目前,精簡指令集被廣泛地運用于各個領域。以ARM為代表的精簡指令集被廣泛地運用于手機、平板等移動終端。日本富岳超算也運用精簡指令集,登頂2020年6月的超算排行榜。