<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.6中的指令序列中,處理器的每個(gè)邏輯單元在每個(gè)指令都是活動(dòng)的??梢钥闯?a class="contentlabel" href="http://www.ex-cimer.com/news/listbylabel/label/流水線">流水線的執(zhí)行與存儲(chǔ)器訪問(wèn)密切相關(guān)。存儲(chǔ)器訪問(wèn)限制了程序執(zhí)行必須花費(fèi)的指令周期數(shù)。

          執(zhí)行模式導(dǎo)致了一個(gè)結(jié)果,就是程序計(jì)數(shù)器PC(對(duì)使用者而言為r15)必須在當(dāng)前指令執(zhí)行前計(jì)數(shù)。例如,指令在其第一個(gè)周期為下下條指令取指,這就意味著PC必須指向當(dāng)前指令的后8個(gè)字節(jié)(其后的第2條指令)。

          當(dāng)程序中必須用到PC時(shí),程序員要特別注意這一點(diǎn)。大多數(shù)正常情況下,不用考慮這一點(diǎn),它由匯編器或編譯器自動(dòng)處理這些細(xì)節(jié)。

          例2.3顯示了下程序計(jì)數(shù)器PC的使用情況。

          【例2.3】

          指令序列為:

          0x8000 LDR pc,[pc,#0]

          0x8004 NOP

          0x8008 DCD jumpAdress

          當(dāng)指令LDR處于執(zhí)行階段時(shí),pc=address+8即0x8008。

          2.5級(jí)流水線組織

          所有的處理器都要滿足對(duì)高性能的要求。直到7為止,在ARM核中使用的3級(jí)流水線的性價(jià)比是很高的。但是,為了得到更高的性能,需要重新考慮處理器的組織結(jié)構(gòu)。執(zhí)行一個(gè)給定的程序需要的時(shí)間由下式?jīng)Q定:

          Tprog = (Ninst×CPI)/ fclk

          式中:

          Ninst:表示在程序中執(zhí)行的ARM指令數(shù);

          CPI:表示每條指令的平均時(shí)鐘周期;

          fclk:表示處理器的時(shí)鐘頻率。

          因?yàn)閷?duì)給定程序(假設(shè)使用給定的優(yōu)化集并用給定的編譯器來(lái)編譯)Ninst是常數(shù),所以,僅有兩種方法來(lái)提供性能。

          第一,提高時(shí)鐘頻率。時(shí)鐘頻率的提高,必然引起指令執(zhí)行周期的縮短,所以要求簡(jiǎn)化流水線每一級(jí)的邏輯,流水線的級(jí)數(shù)就要增加。

          第二,減少每條指令的平均指令周期數(shù)CPI。這就要求重新考慮3級(jí)流水線ARM中多于1個(gè)流水線周期的實(shí)現(xiàn)方法,以便使其占有較少的周期,或者減少因指令相關(guān)造成的流水線停頓,也可以將兩者結(jié)合起來(lái)。

          3級(jí)流水線ARM核在每一個(gè)時(shí)鐘周期都訪問(wèn)存儲(chǔ)器,或者取指令,或者傳輸數(shù)據(jù)。只是抓緊存儲(chǔ)器不用的幾個(gè)周期來(lái)改善系統(tǒng)系統(tǒng)性能,效果是不明顯的。為了改善CPI,存儲(chǔ)器系統(tǒng)必須在每個(gè)時(shí)鐘周期中給出多于一個(gè)的數(shù)據(jù)。方法是在每個(gè)時(shí)鐘周期從單個(gè)存儲(chǔ)器中給出多于32位數(shù)據(jù),或者為指令或數(shù)據(jù)分別設(shè)置存儲(chǔ)器。

          基于以上原因,較高性能的ARM核使用了5級(jí)流水線,而且具有分開(kāi)的指令和數(shù)據(jù)存儲(chǔ)器。把指令的執(zhí)行分割為5部分而不是3部分,進(jìn)而可以使用更高的時(shí)鐘頻率,分開(kāi)的指令和數(shù)據(jù)存儲(chǔ)器使核的CPI明顯減少。

          注意

          分開(kāi)的指令和數(shù)據(jù)存儲(chǔ)器。一般是分開(kāi)的Cache連接到統(tǒng)一的指令和數(shù)據(jù)存儲(chǔ)器上。

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




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

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(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); })();