首页 | 主题 | 图库 | 问答 | 文摘 | 原创 | 百科

历史 | 地理 | 人物 | 艺术 | 体育 | 科学 | 音乐 | 电影 | 信息技术 | 世界遗产

 开放、中立,源自维基百科

个人工具


精简指令集

维库,知识与思想的自由文库

(重定向自RISC)
跳转到: 导航, 搜索


精简指令集,是计算机中央處理器的一种设计模式,也被称为RISC(Reduced Instruction Set Computing 的缩写)。常見的精簡指令集微處理器包括AVRPICARMDEC AlphaPA-RISCSPARCMIPSPower Architecture等。

早期,这种指令集的特点是指令数目少,每条指令都采用标准字长、执行时间短、中央處理器的实现细节对于机器级程序是可见的等等。

实际上在后来的发展中,RISC与CISC在競爭的过程中相互学习,现在的RISC指令集也达到数百条,运行周期也不再固定……虽然如此,RISC设计的根本原则--针对流水线化的处理器优化--没有改变。

目录

[编辑] RISC之前的設計原理

在早期的電腦業中,編譯器技術尚未出現。程式是以機器語言組合語言完成的。為了便於編寫程式,電腦架構師造出越來越複雜的指令,可以高階程式語言直接陳述高階功能。當時的看法是硬體比編譯器更易設計,所以複雜的東西就加進硬體了。

加速複雜化的另一个因素是缺乏大記憶體。記憶體小的環境中,具有極高訊息密度的程式較有利。當記憶體中的每一位元組如此珍貴,例如儲存某個完整系統只需幾千位元組,它使產業移向高度編碼的指令、長度不等的指令、執行多個操作的指令,和執行資料傳輸與計算的指令。當時指令封包問題遠比易解的指令重要。

当时記憶體不僅小,而且很慢,使用的都是磁性技術,成为維持極高訊息密度的又一个原因。藉著具有極高訊息密度封包,當必須存取慢速資源時可以降低頻率。

中央處理器只有少量暫存器的兩個原因︰

  • 內部暫存器遠貴於外部記憶體。以當時的積體電路技術水準,大暫存器集對晶片或電路板區域只是多餘的浪費。
  • 具有大數量的暫存器將需要大數量的指令位元(使用珍貴的RAM)以做為暫存器指定器。

基於上述原因,中央處理器設計師試著令指令盡可能做更多的工作。這導致一個指令將做全部的工作︰讀入兩個數字,相加,並且直接在記憶體儲存計算結果。其它版本將從記憶體讀取兩個數字,但計算結果儲存在暫存器。另一個版本將從記憶體和暫存器各讀一個數字,並再次存入記憶體。以此類推。這種處理器設計原理最終成為複雜指令集(CISC)。

當時的目標是給所有的指令提供所有的尋址模式,此稱為「正交性」。這在中央處理器上導致了一些複雜性,但就理論上每個可能的命令都可以單獨的調用,這樣使得程式員能夠比用簡單的命令來得更快速。

這類的設計最終可以由光譜的兩端來表達,6502在光譜的一端,而VAX在光譜的另一端。單價25美元的1MHz 6502晶片只有一个通用暫存器,但它的过于精簡的單週期記憶體界面讓一個位元的操作效能和更高時脈設計,例如4MHz Zilog Z80在使用相同慢速的記憶晶片(大約近似 300ns)下幾乎相同。而VAX是一种每个CPU最低需求三个机架设备的小型机,其支持的内存存取模式多得惊人,且每条指令都可以使用任一种模式,成为其显著优点。

[编辑] RISC設計原理

70年代IBM研究人員(以及其它地方的類似計劃)顯示,大多數「正交」尋址模式已被多數程式員所忽略。這是逐漸使用編譯器的副作用,不太使用組合語言

不過RISC也有它的缺點。當需要一系列指令用來完成非常簡單的程式時,從記憶體讀入的指令總數會很多,程式也因此變大。當時對RISC的優劣有很多的爭論。

[编辑] 提升中央處理器性能的方法

  • 增加暫存器的大小
  • 增進內部的平行性
  • 增加快取大小
  • 加入其它功能,如I/O和計時器
  • 加入向量處理器(SIMD),如AltiVecSSE(Streaming SIMD Extensions)
  • 避免附加。使朝向省電化(battery-constrained)或小型化的應用

RISC設計中常見的特徵︰

  • 統一指令編碼(例如,所有指令中的op-code永遠位於同樣的位元位置、等長指令),可快速解譯︰
  • 泛用的暫存器,所有暫存器可用於所有內容,以及編譯器設計的單純化(不過暫存器中區分了整數浮點數);
  • 單純的尋址模式(複雜尋址模式以簡單計算指令序列取代);
  • 硬體中支援少數資料型別(例如,一些CISC電腦中存有處理位元組字串的指令。這在RISC電腦中不太可能出現)。


[编辑] 参考

例如:Intel奔腾系列中央處理器属于复杂指令集結構,而IBM的PowerPC 970(用于苹果机Power Mac G5)中央處理器属于精简指令集結構。
其它语言
AD Links