RISC體系結構

RISC和CISC在構架上有著幾個不同的地方。 由於指令集多少與複雜度上的差異,使RISC的處理器可以利用簡單的硬體電路設計出指令解碼(decode)功能,這樣易於流水線的實現。 2)其次,RISC在結構設計上是一個載入/存儲(load/store)的構架,只有載入和存儲指令可以訪問存儲器,數據處理指令只對暫存器的內容進行操作。

說到ARM就不得不提RISC以及與其相對的CISC這兩個概念。
CISC(Complex Instruction Set Computer)即複雜指令集,在20世紀90年代前被廣泛的使用,其特點是通過存放在唯讀存儲器中的微碼(Microcode)來控制整個處理器的運行。
一條指令往往可以完成一串運算的動作,但卻需要多個時鐘周期來執行。隨著需求的不斷增加,設計的指令集越來越多,為支持這些新增的指令,計算機的體系結構會越來越複雜。然而,在CISC指令集的各種指令中,其使用頻率卻相差懸殊,大約有20%的指令會被反覆使用,占整個程式代碼的80%。而餘下的80%的指令卻不經常使用,在程式設計中只占20%,顯然,這種結構是不太合理的。
為改變這種狀況,1980年Patterson和Ditzel 兩位學者完成了一篇題為《精簡指令集計算機概述》的開創性論文,全面提出了精簡指令集的設計思想,隨後,柏克來大學的研究生依照此理論基礎,設計出了第一顆精簡指令集處理器RISC I,這顆處理器遠比當時已經相當流行的CISC處理器簡單的多,在設計上所花費的功夫也降低許多,但整體功能上的表現卻與CISC處理器不相上下。從此處理器設計方向便分別向著這兩個大的方向發展。實際上1980年以來,所有新的處理器體系結構都或多或少地採用了RISC的概念,甚至有些典型的CISC處理機中也採用了些RISC設計思想,比如Intel公司的80486、Pentium系列等。而RISC思想最成功也是第一個商業化的實例就是ARM,當然,它也放棄了一些RISC特徵而保留了一些CISC特徵。
RISC和CISC在構架上有著幾個不同的地方。
1)首先是指令集的設計上,RISC構架的指令格式和長度通常是固定的(如ARM是32位的指令)、且指令和定址方式少而簡單、大多數指令在一個周期內就可以執行完畢;CISC構架下的指令長度通常是可變的、指令類型也很多、一條指令通常要若干周期才可以執行完。由於指令集多少與複雜度上的差異,使RISC的處理器可以利用簡單的硬體電路設計出指令解碼(decode)功能,這樣易於流水線的實現。相對的CISC則需要通過唯讀存儲器里的微碼來進行解碼,CISC因為指令功能與指令參數變化較大,執行流水線作業時有較多的限制。
2)其次,RISC在結構設計上是一個載入/存儲(load/store)的構架,只有載入和存儲指令可以訪問存儲器,數據處理指令只對暫存器的內容進行操作。為了加速程式的運算,RISC會設定多組的暫存器,並且指定特殊用途的暫存器。CISC構架則允許數據處理指令對存儲器進行操作,對暫存器的要求相對不高。

熱門詞條

聯絡我們