CISC和RISC的區別

    CISC(Complex Instruction Set Computers,複雜指令集計算集)和RISC(Reduced Instruction Set Computers)是兩大類主流的CPU指令集類型,其中CISC以Intel,AMD的X86 CPU爲代表,而RISC以ARM,IBM Power爲代表。RISC的設計初衷針對CISC CPU複雜的弊端,選擇一些可以在單個CPU週期完成的指令,以降低CPU的複雜度,將複雜性交給編譯器。舉一個例子,CISC提供的乘法指令,調用時可完成內存a和內存b中的兩個數相乘,結果存入內存a,需要多個CPU週期纔可以完成;而RISC不提供“一站式”的乘法指令,需調用四條單CPU週期指令完成兩數相乘:內存a加載到寄存器,內存b加載到寄存器,兩個寄存器中數相乘,寄存器結果存入內存a。按照此思路,早期的設計出的RISC指令集,指令數是比CISC少些,單後來,很多RISC的指令集中指令數反超了CISC,因此,引用指令的複雜度而非數量來區分兩種指令集。

    當然,CISC也是要通過操作內存、寄存器、運算器來完成複雜指令的。它在實現時,是將複雜指令轉換成了一個微程序,微程序在製造CPU時就已存儲於微服務存儲器。一個微程序包含若干條微指令(也稱微碼),執行復雜指令時,實際上是在執行一個微程序。這也帶來兩種指令集的一個差別,微程序的執行是不可被打斷的,而RISC指令之間可以被打斷,所以理論上RISC可更快響應中斷。

    在此,總結一下CISC和RISC的主要區別:

  1. CISC的指令能力強,單多數指令使用率低卻增加了CPU的複雜度,指令是可變長格式;RISC的指令大部分爲單週期指令,指令長度固定,操作寄存器,只有Load/Store操作內存
  2. CISC支持多種尋址方式;RISC支持方式少
  3. CISC通過微程序控制技術實現;RISC增加了通用寄存器,硬佈線邏輯控制爲主,是和採用流水線
  4. CISC的研製週期長
  5. RISC優化編譯,有效支持高級語言

參考文獻

1. https://cs.stanford.edu/people/eroberts/courses/soco/projects/risc/risccisc/

2. https://en.wikipedia.org/wiki/Reduced_instruction_set_computer

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章