1. 程式人生 > >RISC與CISCCPU構架

RISC與CISCCPU構架

它的 cisc 難度 指令集 乘法 基於 訪問內存 流水線 由於

RISC 精簡指令集

CISC復雜指令集

CISC架構的代表: x86, C51

RISC架構的代碼:arm, mips,powerpc, avr, pic

指令集的區別

首先從字面上理解就能知道, CISC(Complex Instruction SetComputer)架構的指令數肯定是遠遠多於RISC(ReducedInstruction Set Computer)架構的.另外, RISC架構下,不同指令opcode的長度是相等的, 而x86下不同的指令的長度差別很大.

寄存器的區別

CISC架構一般都提供通用寄存器a(x86下為eax),來支持大部分運算指令,但是由於指令太過復雜的原因,並不是所有的寄存器都能支持全部指令的運算,所以匯編代碼中會有各種針對eax的mov操作,影響性能.

指令執行所需要的時鐘周期

在CISC架構中,不同指令所需要的時鐘周期是不同的(比如乘法和加法的周期就不太可能相同).而RISC架構的處理器,大部分的指令都可以在一個時鐘周期內完成,這應該可以降低指令流水線設計的復雜度. CISC架構的很多復雜指令都通過CPU內的微碼來完成, 這樣那些微碼比較復雜的指令就需要多個時鐘周期才能完成. 指令執行需要的時鐘周期不同, 會增加指令流水線優化的難度.

訪問內存的區別

RISC在結構設計上是一個載入/存儲(load/store)的構架,只有載入和存儲指令可以訪問內存,數據處理指令只對寄存器的內容進行操作。為了加速程序的運算,RISC會設定多組的寄存器,並且指定特殊用途的寄存器。CISC架構則允許數據處理指令對內存進行操作,因此需要的寄存器數量會比較少.另外X86架構支持cpu對非對齊的內存地址的訪問,這在RISC架構的處理器中通常會引起CPU產生異常.其實像類似非對齊內存地址訪問的功能, X86也是通過CPU內微碼來實現的,效率會大大降低.

尋址方式和IO空間

X86架構下IO空間和內存空間是分開的, IO空間使用完全不同的指令來訪問(in, out). RISC架構則不區分IO空間和內存空間,都是直接把IO空間映射到內存空間,直接用內存空間的訪問方式來操作. RISC架構下對於尋址方式同樣做了精簡,幾乎所有的指令都使用寄存器尋址.

編譯的區別

CISC的指令豐富的優勢,使得它的編譯器可以少做很多事情,編譯器的設計更簡單.而RISC在實現一個功能的時候,需要的指令條目數會更多一些,程序也會更大.

總結:

RISC相對於CISC架構來說,是一種較新的技術,由於沒有歷史負擔,不需要考慮向下兼容,所以它的設計可以做的相當的簡單而優雅. RISC架構的指令,寄存器和流水線特征使它非常適合於並行計算.可以遇見,未來RISC架構將會越來越大放異彩.

APARC,x86 ARM

sun有自己的cpu 是基於SPARTC, 其實就是一款RISC的CPU

硬件:cpu

最核心的軟件產業

1.操作系統

2.編譯器

3.數據庫

RISC與CISCCPU構架