<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > ARM體系結(jié)構(gòu)之:流水線

          ARM體系結(jié)構(gòu)之:流水線

          作者: 時(shí)間:2013-09-13 來(lái)源:網(wǎng)絡(luò) 收藏

          本文引用地址:http://www.ex-cimer.com/article/257092.htm

          2.2

          2.2.1 的概念與原理

          處理器按照一系列步驟來(lái)執(zhí)行每一條指令。典型的步驟如下:

          ① 從存儲(chǔ)器讀取指令(fetch);

          ② 譯碼以鑒別它是屬于哪一條指令(dec);

          ③ 從指令中提取指令的操作數(shù)(這些操作數(shù)往往存在于寄存器中)(reg);

          ④ 將操作數(shù)進(jìn)行組合以得到結(jié)果或存儲(chǔ)器地址(ALU);

          ⑤ 如果需要,則訪問(wèn)存儲(chǔ)器以存儲(chǔ)數(shù)據(jù)(mem);

          ⑥ 將結(jié)果寫(xiě)回到寄存器堆(res)。

          并不是所有的指令都需要上述每一個(gè)步驟,但是,多數(shù)指令需要其中的多個(gè)步驟。這些步驟往往使用不同的硬件功能,例如,ALU可能只在第4步中用到。因此,如果一條指令不是在前一條指令結(jié)束之前就開(kāi)始,那么在每一步驟內(nèi)處理器只有少部分的硬件在使用。

          有一種方法可以明顯改善硬件資源的使用率和處理器的吞吐量,這就是當(dāng)前一條指令結(jié)束之前就開(kāi)始執(zhí)行下一條指令,即通常所說(shuō)的(Pipeline)技術(shù)。流水線是RISC處理器執(zhí)行指令時(shí)采用的機(jī)制。使用流水線,可在取下一條指令的同時(shí)譯碼和執(zhí)行其他指令,從而加快執(zhí)行的速度??梢园蚜魉€看作是汽車(chē)生產(chǎn)線,每個(gè)階段只完成專(zhuān)門(mén)的處理器任務(wù)。

          采用上述操作順序,處理器可以這樣來(lái)組織:當(dāng)一條指令剛剛執(zhí)行完步驟①并轉(zhuǎn)向步驟②時(shí),下一條指令就開(kāi)始執(zhí)行步驟①。圖2.1說(shuō)明了這個(gè)過(guò)程。從原理上說(shuō),這樣的流水線應(yīng)該比沒(méi)有重疊的指令執(zhí)行快6倍,但由于硬件結(jié)構(gòu)本身的一些限制,實(shí)際情況會(huì)比理想狀態(tài)差一些。

          2.2.2 流水線的分類(lèi)

          從Acorn Computer公司在1983~1985年間開(kāi)發(fā)的第一個(gè)3µm器件,到公司在1990~1995年間開(kāi)發(fā)的6和7,ARM整數(shù)處理器核的組織結(jié)構(gòu)變化很小,這些處理器都是采用3級(jí)流水線,而這一時(shí)期CMOS工藝的發(fā)展,幾乎將特征尺寸減少了一個(gè)數(shù)量級(jí)。因此,核的性能提高很快,但基本的操作原理大部分沒(méi)有變化。

          圖2.1 流水線的指令執(zhí)行過(guò)程

          從1995年以來(lái),ARM公司推出了幾個(gè)新的ARM核。它們采用5級(jí)流水線和哈佛架構(gòu),獲得了顯著的高性能。例如,ARM9增加了存儲(chǔ)器訪問(wèn)段和回寫(xiě)段,這使得ARM9的處理能力可達(dá)到平均1.1 Dhrystone1 MISP/MHz,與ARM7相比,指令吞吐量提高了約13%。

          注意

          在許多高性能處理器內(nèi)部,一級(jí)Cache一般都設(shè)置有兩個(gè),其中,一個(gè)是指令Cache,另一個(gè)是數(shù)據(jù)Cache。這樣可以減少取指令和讀操作數(shù)的訪問(wèn)沖突,這種結(jié)構(gòu)被稱(chēng)為哈佛架構(gòu)。

          把主存儲(chǔ)器分成兩個(gè)獨(dú)立編址的存儲(chǔ)器,一個(gè)專(zhuān)門(mén)存放指令,稱(chēng)為指令存儲(chǔ)器,簡(jiǎn)稱(chēng)指存;另一個(gè)專(zhuān)門(mén)存放操作數(shù),稱(chēng)為數(shù)據(jù)存儲(chǔ)器,簡(jiǎn)稱(chēng)數(shù)存。兩個(gè)存儲(chǔ)器可以同時(shí)訪問(wèn),這樣就解決了取指令和讀操作數(shù)的沖突。如果在此基礎(chǔ)上規(guī)定在執(zhí)行指令階段產(chǎn)生的運(yùn)算結(jié)果只寫(xiě)到通用寄存器中,不寫(xiě)到主存,那么取指令、分析指令和執(zhí)行指令就可以同時(shí)進(jìn)行。

          ARM10更是把流水線增加到6級(jí)。ARM10的平均處理能力達(dá)到1.3 Dhrystone MISP/MHz,與ARM7相比,指令吞吐量提高了約34%。

          注意

          雖然ARM9和ARM10的流水線不同,但它們都使用了與ARM7相同的流水線執(zhí)行機(jī)制,因此ARM7上的代碼也可以在ARM9和ARM10上運(yùn)行。

          存儲(chǔ)器相關(guān)文章:存儲(chǔ)器原理



          上一頁(yè) 1 2 3 4 下一頁(yè)

          關(guān)鍵詞: 流水線 指令譯碼器 ARM

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();