前言
當前的CPU主要分為兩類: CISC
和 RISC
,它們的區別在於不同的CPU設計理念和方法
專業名詞:
Mac(Macintosh)
: 蘋果公司開發的個人消費型計算機,使用獨立的macOS系統的PCCISC(Complex instruction set computer)
:復雜指令集RISC(Reduced instruction set computer)
:精簡指令集目錄
CISC/復雜指令集
長期來,計算機性能的提高往往是通過增加硬件的復雜性來獲得.隨着集成電路技術.特別是VLSI(超大規模集成電路)技術的迅速發展,為了軟件編程方便和提高程序的運行速度,
硬件工程師采用的辦法是不斷增加可實現復雜功能的指令和多種靈活的編址方式
。甚至某些指令可支持高級語言語句歸類后的復雜操作。至使硬件越來越復雜,造價也相應提高
.
為實現復雜操作,微處理器除向程序員提供類似各種寄存器和機器指令功能外。還通過存於只讀存貯器(ROM)中的微程序來實現其極強的功能 ,來處理在分析每一條指令之后執行一系
列初級指令運算來完成所需的功能,這種設計的型式被稱為復雜指令集計算機(Complex Instruction Set Computer-CISC)結構.一般CISC計算機所含的指令數目至少300條以上
,
有的甚至超過500條。
早期的CPU全部是CISC
架構,它的設計目的是要用最少的機器語言指令來完成所需的計算任務
。比如對於乘法運算,在CISC架構
的CPU上,可能需要這樣一條指令:MUL ADDRA
,
ADDRB
就可以將ADDRA
和ADDRB
中的數相乘並將結果儲存在ADDRA
中。將ADDRA
, ADDRB
中的數據讀入寄存器,相乘和將結果寫回內存的操作全部依賴於CPU
中設計的邏輯
來實現。這種架構會增加CPU結構的復雜性和對CPU工藝的要求
,但對於編譯器的開發十分有利。比如上面的例子,C程序中的a*=b
就可以直接編譯為一條乘法指令。今天只有Intel
及其兼容CPU還在使用CISC架構
。
RISC/精簡指令集
采用復雜指令系統的計算機有着較強的處理高級語言的能力,這對提高計算機的性能是有益的。當計算機的設計沿着這條道路發展時。有些人沒有隨波逐流.他們回過頭去看一看過去
走過的道路,開始懷疑這種傳統的做法:IBM公司
在紐約Yorktown的JhomasI.Wason研究中心
於1975年組織力量研究指令系統的合理性問題.因為當時已感到,日趨龐雜的指令系
統不但不易實現.而且還可能降低系統性能。1979年以帕特遜教授為首的一批科學家也開始在美國加冊大學伯克萊分校開展這一研究。結果表明,CISC存在許多缺點。首先,在這種計
算機中,各種指令的使用率相差懸殊:一個典型程序的運算過程所使用的80%指令,只占一個處理器指令系統的20%,事實上最頻繁使用的指令是取、存和加這些最簡單的指令
。這
樣一來,長期致力於復雜指令系統的設計,實際上是在設計一種難得在實踐中用得上的指令系統的處理器。同時,復雜的指令系統必然帶來結構的復雜性。這不但增加了設計的時間與
成本還容易造成設計失誤。此外,盡管VLSI技術
現在已達到很高的水平,但也很難把CISC的全部硬件做在一個芯片上,這也妨礙單片計算機的發展。在CISC中,許多復雜指令需要極
復雜的操作,這類指令多數是某種高級語言的直接翻版,因而通用性差。由於采用二級的微碼執行方式,它也降低那些被頻繁調用的簡單指令系統的運行速度。因而,針對CISC的這些
弊病。帕特遜等人提出了精簡指令的設想即指令系統應當只包含那些使用頻率很高的少量指令,並提供一些必要的指令以支持操作系統和高級語言。按照這個原則發展而成的計算機被
稱為精簡指令集計算機(Reduced Instruction Set Computer-RISC)結構,簡稱RISC。
RISC架構
要求軟件來指定各個操作步驟。上面的例子如果要在RISC架構
上實現,將ADDRA
, ADDRB
中的數據讀入寄存器,相乘和將結果寫回內存的操作都必須由軟件來實現,
比如:MOV A, ADDRA; MOV B, ADDRB; MUL A, B; STR ADDRA, A
。這種架構可以降低CPU的復雜性以及允許在同樣的工藝水平下生產出功能更強大的CPU,但對於編譯器的設
計有更高的要求。
總結
我們經常談論有關PC
與Macintosh
的話題,但是又有多少人知道以Intel公司X86
為核心的PC系列正是基於CISC體系結構
,而Apple公司的Macintosh
則是基於
RISC體系結構
,CISC與RISC到底有何區別?
從硬件角度來看CISC處理的是不等長指令集,它必須對不等長指令進行分割,因此在執行單一指令的時候需要進行較多的處理工作
。而RISC執行的是等長精簡指令集
,
CPU在執行指令的時候速度較快且性能穩定
。因此在並行處理方面RISC明顯優於CISC,RISC可同時執行多條指令,它可將一條指令分割成若干個進程或線程,交由多個處
理器同時執行。由於RISC執行的是精簡指令集,所以它的制造工藝簡單且成本低廉。
從軟件角度來看,CISC運行的則是我們所熟識的DOS
、Windows操作系統
。而且它擁有65%以上的軟件廠商代理為基於CISC體系結構的PC及其兼容機服務的,像赫赫有
名的Microsoft
就是其中大量的應用程序。而RISC在此方面卻顯得有些勢單力薄。雖然在RISC上也可運行DOS
、Windows
,但是需要一個翻譯過程,所以運行速度要
慢許多。
目前CISC與RISC正在逐步走向融合,Pentium Pro、Nx586、K5
就是一個最明顯的例子,它們的內核都是基於RISC體系結構的。他們接受CISC指令后將其分解分類成
RISC指令以便在同一時間內能夠執行多條指令。由此可見,下一代的CPU將融合CISC與RISC兩種技術,從軟件與硬件方面看二者會取長補短。
貢獻榜單