RISC與CISC比較
1.RISC與CISC的差異
處理器的指令集可簡單分為2種,CISC(complex instruction set computer)以及RISC(reduced instruction set computer)。一開始的處理器都是CISC架構,隨著時間演進,有越來越多的指令集加入。由於當時編譯器的技術並不純熟,程序都會直接以機器碼或是匯編語言寫成,為了減少程序設計師的設計時間,逐漸開發出單一指令,復雜操作的程序碼,設計師只需寫下簡單的指令,再交由CPU去執行。但是後來有人發現,整個指令集中,只有約20%的指令常常會被使用到,約占整個程序的80%;剩余80%的指令,只占整個程序的20%。於是1979年美國加州大學柏克萊分校的David Patterson教授提出了RISC的想法,主張硬件應該專心加速常用的指令,較為復雜的指令則利用常用的指令去組合。
RISC的優點列舉如下:
指令長度固定,方便CPU譯碼,簡化譯碼器設計。
盡量在CPU的暫存器(最快的存儲器元件)裏操作,避免額外的讀取與載入時間。
由於指令長度固定,更能受益於執行線路管線化(pipeline)後所帶來的效能提升。
處理器簡化,晶體管數量少,易於提升運作時脈。比起同時脈的CISC處理器,耗電量較低。
RISC的缺點列舉如下:
復雜指令需要由許多的小指令去完成,程序變得比較大,存儲器也占用比較多,這在硬盤昂貴,常常使用磁帶儲存的時代來說,是個大缺點。
程序變長,代表著讀取工作變得繁重,需要更多的時間將指令從存儲器載入至處理器內。
這裏也提供一個小小的概念,CISC是在RISC出現之後才出現的相對名詞,並不是從一開始就有CISC、RISC這2種處理器架構。
2. CISC和RISC的區別
前者更加專註於高性能但同時高功耗的實現(x86),而後者則專註於小尺寸低功耗領域(ARM)。
實際上也有很多事情CISC更加合適,而另外一些事情則是RISC更加合適,比如在執行高密度的運算任務的時候CISC就更具備優勢,而在執行簡單重復勞動的時候RISC就能占到上風。
RISC與CISC比較