亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

CPU指令的流水線(xiàn)運(yùn)行

系統(tǒng) 1892 0

????????指令集是CPU體系架構(gòu)的重要組成部分。C語(yǔ)言的語(yǔ)法是對(duì)解決現(xiàn)實(shí)問(wèn)題的運(yùn)算和流程的方法的高度概況和抽象,其主要為算術(shù)、邏輯運(yùn)算和分支控制,而指令集就是對(duì)這些抽象的詳細(xì)支持,匯編僅僅只是是為了讓開(kāi)發(fā)者更好地記住指令,但它跟CPU所認(rèn)的機(jī)器碼事實(shí)上是一一相應(yīng)的,因此匯編也是低級(jí)語(yǔ)言。

????????CPU的指令運(yùn)行一般包含取指、譯碼和運(yùn)行,這是經(jīng)典的三級(jí)指令運(yùn)行流水線(xiàn),教科書(shū)上往往以這三種過(guò)程來(lái)描寫(xiě)敘述,arm7也是。可是現(xiàn)代的CPU設(shè)計(jì)往往使用更廣泛使用的5級(jí)流水線(xiàn),也就是分為取指、譯碼、運(yùn)行、訪(fǎng)存和回寫(xiě)。為什么要分為5級(jí)?這是由流水線(xiàn)的各個(gè)階段的時(shí)間來(lái)決定的。我們能夠考慮現(xiàn)實(shí)生活的工廠(chǎng)的流水線(xiàn)。

??????? 如果某流水線(xiàn)僅僅有 三個(gè)工序,有三個(gè)工人A、B、C,則這條生產(chǎn)線(xiàn)的效率就取決于效率最低的那個(gè)工人的效率?,F(xiàn)如果B做完其負(fù)責(zé)的工序須要10秒,而A和C完畢僅僅須要5秒,總共要完畢4個(gè)產(chǎn)品。那總時(shí)間應(yīng)該是:5+10*4+5 = 50秒,(第一個(gè)5是A先做第一道工序的時(shí)間,這時(shí)B和C都得等,而最后一個(gè)5是C必須要等B所有完畢后才干開(kāi)始)即會(huì)出現(xiàn)C在等待,而B(niǎo)一直在忙死忙活的場(chǎng)景。 ?

??????? 當(dāng)然,不管如何,流水線(xiàn)的運(yùn)行總比完畢沒(méi)有流水好,就好比A、B、C負(fù)責(zé)的工作都由一個(gè)人去做,那做完一個(gè)得20秒。所有做完得20*4 = 80秒。

??????? 最理性的場(chǎng)景就是三個(gè)人做事的效率是一樣的,那就不會(huì)出現(xiàn)等待的情況。那如今確實(shí)遇到B工作效率最低的問(wèn)題,怎么解決呢?就是將B的工作又一次分解,平均分成兩個(gè)工序,也就是B1和B2,分別都是5秒完畢,那完畢的總時(shí)間是40秒。

???????? CPU指令的三級(jí)流水運(yùn)行正是遇到各步驟流水時(shí)間不均的問(wèn)題,也就是取指和譯碼往往比較快,而運(yùn)行包含運(yùn)算和訪(fǎng)問(wèn)寄存器、內(nèi)存或者回寫(xiě)等功能,因此運(yùn)行的時(shí)間一般比取指和譯碼要長(zhǎng),取指和譯碼能夠在單時(shí)鐘周期內(nèi)完畢,但運(yùn)行須要2到3個(gè)時(shí)鐘周期才干完畢。要想得到更高的流水效率,就須要將運(yùn)行部分分解為運(yùn)行(運(yùn)算等)、訪(fǎng)存(內(nèi)存)和回寫(xiě)(寄存器)。

?????????CPU指令的流水線(xiàn)運(yùn)行對(duì)于軟件開(kāi)發(fā)者來(lái)說(shuō),最重要的就是要知道當(dāng)前PC(程序計(jì)數(shù)寄存器)的值與當(dāng)前運(yùn)行指令的關(guān)系。取指指的是CPU依據(jù)當(dāng)前PC的值內(nèi)存的相應(yīng)地址去取指令,因此PC值永遠(yuǎn)都指的都是當(dāng)前取指令步驟的地址,而譯碼則是CPU的一部分電路依據(jù)取出來(lái)的指令機(jī)器碼進(jìn)行譯碼,選擇相應(yīng)的電路來(lái)運(yùn)行這條運(yùn)行,如選擇加法電路還是減法電路,還是邏輯與電路等等;運(yùn)行就是這個(gè)電路的運(yùn)行過(guò)程了。

???????? arm7的流水線(xiàn)示意圖是:

CPU指令的流水線(xiàn)運(yùn)行

?

????????????? 從圖能夠看到在T1時(shí)刻,CPU的運(yùn)行電路運(yùn)行的是MOV指令,而取指電路取的是SUB指令,因此當(dāng)前運(yùn)行電路的MOV相應(yīng)的運(yùn)行地址應(yīng)該是當(dāng)前PC值減8. 假設(shè)當(dāng)前運(yùn)行的指令是一個(gè)函數(shù)調(diào)用(即BL指令),但返回地址就應(yīng)該是ADD指令所在的地址,即(PC減4)。

?

????????有人問(wèn)到流水線(xiàn)斷流的問(wèn)題,補(bǔ)充說(shuō)明一下,斷流主要有下面情況:

??????? 1)數(shù)據(jù)相關(guān)。如第二條指令須要的數(shù)據(jù)正好是第一條指令運(yùn)行的結(jié)果。這時(shí)第二條必須等待。

????????2)分支跳轉(zhuǎn)。指令分支推斷之后,可能會(huì)順序運(yùn)行,也可能跳轉(zhuǎn)到其它地方,這時(shí)也會(huì)引起流水線(xiàn)的斷流。

?

?

?

?

?

CPU指令的流水線(xiàn)運(yùn)行


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦?。。?/p>

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 欧美成人性色生活18黑人 | 国产成人精品免费 | 国产成人久久精品二区三区 | 国产乱码精品一区二区三上 | 日本不卡免费在线 | 一区二区三区免费视频网站 | 国产在线观看不卡 | 日日干干 | 亚洲精品99久久久久久 | 午夜毛片福利 | 久久久久久久久亚洲 | 一区二区网站 | 四虎影院在线播放视频 | 伊人日本| 很很鲁在线视频播放影院 | 四虎影视国产精品亚洲精品hd | 四虎国产精品影库永久免费 | 久久网免费 | 狠狠色狠狠综合久久 | 97午夜影院 | 亚洲第一区在线 | 久久天天躁狠狠躁夜夜中文字幕 | 国产一精品一aⅴ一免费 | 超级毛片 | 国产萝控精品福利视频免费 | 97高清国语自产拍中国大陆 | 久久99热只有视精品6国产 | 久久国产乱子伦精品免 | 99久热成人精品视频 | 亚洲成人高清在线观看 | 91精品国产91久久久久久 | 午夜国产精品久久影院 | 中文字幕亚洲一区二区v@在线 | 97久久精品人人做人人爽 | 久久天天躁夜夜躁狠狠85麻豆 | 欧美特级黄色大片 | 久久久国产免费影院 | 国产中文字幕免费观看 | 国产福利短视频 | 国产深夜福利视频在线观看 | jizz成熟丰满中国妇女 |