官术网_书友最值得收藏!

4.6 RISC和CISC指令集

設(shè)計(jì)者們過(guò)去常常為計(jì)算機(jī)編寫指令,這些指令似乎很有用,但導(dǎo)致一些計(jì)算機(jī)變得相當(dāng)復(fù)雜。20世紀(jì)80年代,來(lái)自伯克利大學(xué)的David Patterson和來(lái)自斯坦福大學(xué)的John Hennessey對(duì)程序進(jìn)行了統(tǒng)計(jì)分析,發(fā)現(xiàn)許多復(fù)雜指令很少被使用。他們率先設(shè)計(jì)了一種只包含占程序大部分時(shí)間的指令的計(jì)算機(jī),甚少使用的指令被淘汰,取而代之的是其他指令的組合。這些計(jì)算機(jī)被稱為RISC(Reduced Instruction Set Computer),即精簡(jiǎn)指令集計(jì)算機(jī)。它之前的設(shè)計(jì)被稱為CISC(Complicated Instruction Set Computer),即復(fù)雜指令集計(jì)算機(jī)

RISC的一個(gè)特點(diǎn)是它們有一個(gè)加載–存儲(chǔ)架構(gòu)。這意味著它們包含兩類指令:一類用于訪問(wèn)內(nèi)存,另一類用于其他所有指令。

當(dāng)然,計(jì)算機(jī)的用途也隨著時(shí)間的推移而改變。Patterson和Hennessey的原始統(tǒng)計(jì)數(shù)據(jù)是在計(jì)算機(jī)被普遍用于播放音頻和視頻之前收集完成的。新程序的統(tǒng)計(jì)數(shù)據(jù)正在促使設(shè)計(jì)者向RISC添加新的指令。今天的RISC實(shí)際上比過(guò)去的CISC復(fù)雜得多。

其中一個(gè)影響很大的CISC是美國(guó)數(shù)字設(shè)備公司的PDP-11。這臺(tái)機(jī)器有8個(gè)通用寄存器,而不是前面示例中使用的單個(gè)累加器。這些寄存器可用于間接尋址。此外,這種寄存器還支持自動(dòng)遞增自動(dòng)遞減模式,可以使寄存器中的值在使用之前或之后遞增或遞減。這使得一些非常有效的計(jì)劃得以實(shí)施。例如,假設(shè)要將從源地址開始的n字節(jié)內(nèi)存復(fù)制到從目標(biāo)地址開始的內(nèi)存中,我們可以將源地址放入寄存器0,將目標(biāo)地址放入寄存器1,將字節(jié)計(jì)數(shù)放入寄存器2。我們將跳過(guò)這里的實(shí)際部分,因?yàn)镻DP-11指令集沒(méi)有學(xué)習(xí)的必要。表4-5展示了這些指令的作用。

表4-5 PDP-11復(fù)制內(nèi)存程序

我們?yōu)槭裁匆P(guān)心這個(gè)?C語(yǔ)言是B語(yǔ)言(BCPL的后續(xù))的后續(xù)編程語(yǔ)言,是在PDP-11上開發(fā)的。C語(yǔ)言中指針的使用,是間接尋址的一個(gè)更高層次的抽象,結(jié)合了B語(yǔ)言的特性(如自動(dòng)遞增和自動(dòng)遞減運(yùn)算符),很好地映射到了PDP-11架構(gòu)。C語(yǔ)言逐漸變得非常有影響力,并影響了許多其他語(yǔ)言的設(shè)計(jì),包括C++、Java和JavaScript。

主站蜘蛛池模板: 彭泽县| 吕梁市| 隆回县| 漾濞| 中江县| 集安市| 庆城县| 武城县| 同仁县| 芮城县| 中卫市| 科技| 屏东市| 桐庐县| 化州市| 体育| 安国市| 读书| 灵宝市| 蒙自县| 和林格尔县| 瓮安县| 宁波市| 新乡县| 禹城市| 仙居县| 垫江县| 漯河市| 方正县| 奉新县| 秭归县| 雷州市| 乌恰县| 宣汉县| 广昌县| 张家口市| 桃园市| 都匀市| 保康县| 新巴尔虎左旗| 十堰市|