微機(jī)原理及應(yīng)用 課件 3.7指令預(yù)取隊(duì)列_第1頁(yè)
微機(jī)原理及應(yīng)用 課件 3.7指令預(yù)取隊(duì)列_第2頁(yè)
微機(jī)原理及應(yīng)用 課件 3.7指令預(yù)取隊(duì)列_第3頁(yè)
微機(jī)原理及應(yīng)用 課件 3.7指令預(yù)取隊(duì)列_第4頁(yè)
微機(jī)原理及應(yīng)用 課件 3.7指令預(yù)取隊(duì)列_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

微機(jī)原理及應(yīng)用第三章認(rèn)識(shí)微處理器第七講指令預(yù)取隊(duì)列這一節(jié)我們來(lái)學(xué)習(xí)指令預(yù)取隊(duì)列指令預(yù)取隊(duì)列首先來(lái)了解一下為什么需要指令預(yù)取隊(duì)列,為什么需要指令預(yù)取隊(duì)列?主要的原因是CPU處理指令的速度比較快,但是從CPU從內(nèi)存取指令或操作數(shù)的速度比較慢,因?yàn)檫@要涉及到傳送地址,數(shù)據(jù)這些信息,要使用地址總線和數(shù)據(jù)總線等,因此CPU和內(nèi)存之間通信的速度要遠(yuǎn)遠(yuǎn)低于CPU內(nèi)部處理的速度傳送地址傳送數(shù)據(jù)地址總線和數(shù)據(jù)總線CPU執(zhí)行完指令要等待很長(zhǎng)時(shí)間下一條指令到達(dá)才繼續(xù)工作拖慢運(yùn)行時(shí)間和工作效率這會(huì)導(dǎo)致CPU執(zhí)行完了指令要等待很長(zhǎng)時(shí)間,等下一條指令到達(dá)后才能繼續(xù)工作,這嚴(yán)重拖慢了CPU的運(yùn)行時(shí)間和工作效率。那要如何解決這個(gè)問(wèn)題呢?如何解決這個(gè)問(wèn)題?當(dāng)然,我們可以想辦法提升CPU與內(nèi)存之間通信的速率,但這會(huì)大幅度提升成本CPU內(nèi)存大幅度提升成本通信速率那么工程師們想到的辦法,就是用指令預(yù)取隊(duì)列,在EU和BIU之間做一個(gè)緩沖。工程師指令預(yù)取隊(duì)列EUBIUBIU可以預(yù)先將多條指令讀進(jìn)來(lái)按先來(lái)后到的順序存放在指令預(yù)取隊(duì)列中。這個(gè)隊(duì)列執(zhí)行的規(guī)則是先進(jìn)先出。就是先進(jìn)來(lái)的指令先從隊(duì)列中拿出去執(zhí)行。這樣EU就不必等待BIU讀取指令,而可以一直從隊(duì)列中取指令并執(zhí)行了BIUEU將多條指令讀進(jìn)來(lái)按先來(lái)后到的順序存放指令預(yù)取隊(duì)列不必等待BIU讀取指令,從隊(duì)列中取指令并執(zhí)行先進(jìn)來(lái)的指令先從隊(duì)列中拿出去執(zhí)行先進(jìn)先出因此,我們說(shuō)指令預(yù)取隊(duì)列保證EU和BIU兩個(gè)部分可以同時(shí)進(jìn)行工作。最重要的是有了指令預(yù)取隊(duì)列以后,我們才真正實(shí)現(xiàn)了指令的并行執(zhí)行BIUEU指令預(yù)取隊(duì)列同時(shí)進(jìn)行并行執(zhí)行我們?cè)谇懊嫣岬竭^(guò),要想實(shí)現(xiàn)指令的并行執(zhí)行,要把取指令,分析指令和執(zhí)行指令交給不同的人去做想實(shí)現(xiàn)指令的并行執(zhí)行,要把取指令,分析指令和執(zhí)行指令交給不同的人去做在8088、8086出現(xiàn)之前,也就是在沒有指令預(yù)取隊(duì)列的時(shí)候,CPU是用串行的方式來(lái)進(jìn)行指令操作的,8088、8086出現(xiàn)前,沒有指令預(yù)取隊(duì)列時(shí)CPU用串行的方式進(jìn)行指令操作取指指令流水線先取指令,然后如果需要取操作數(shù)的話,再去取操作數(shù),最后再執(zhí)行,執(zhí)行完了以后把數(shù)據(jù)存儲(chǔ)下來(lái),再去取下一條指令,這就是串行的方式。這種串行方式的工作效率會(huì)比較低8088、8086出現(xiàn)前,沒有指令預(yù)取隊(duì)列時(shí)CPU用串行的方式進(jìn)行指令操作執(zhí)行存數(shù)取數(shù)串行方式工作效率會(huì)比較低有了指令預(yù)取隊(duì)列,EU和BIU各司其職,實(shí)現(xiàn)并行的執(zhí)行方式。這種方式可以大大提升CPU處理指令的效率BIUEU指令預(yù)取隊(duì)列各司其職并行執(zhí)行提升CPU處理指令的效率負(fù)責(zé)指令的執(zhí)行由于取指令是事先進(jìn)行,有時(shí)間差在并行執(zhí)行方式中,BIU是CPU跟外部通信的一個(gè)通道,他負(fù)責(zé)從內(nèi)存中取出指令,并送入到指令預(yù)取隊(duì)列中。如果需要的話它再?gòu)膬?nèi)存中取操作數(shù)再送到EU部分執(zhí)行。EU就負(fù)責(zé)指令的執(zhí)行。而且由于取指令是事先就進(jìn)行的,有個(gè)時(shí)間差的問(wèn)題,所以EU也不需要再等等BIU了EUBIU負(fù)責(zé)從內(nèi)存取指送入指令流隊(duì)列從內(nèi)存取操作數(shù)送至EU部份去執(zhí)行8086/8088CPU我們來(lái)看這張圖,BIU一直在取指令,EU一直在執(zhí)行指令,如果需要取操作數(shù)的話,BIU會(huì)再去取個(gè)操作數(shù)。所以總線可以一直處于繁忙的狀態(tài)如需取操作數(shù),BIU會(huì)再去取個(gè)操作數(shù)因?yàn)槿≈噶詈蛨?zhí)行指令由不同的模塊來(lái)負(fù)責(zé),所以我們說(shuō)他們?cè)诳臻g上是分開的。所以在時(shí)間上他們是可以被同時(shí)執(zhí)行的,也就是取指令和執(zhí)行指令可以同時(shí)進(jìn)行了,當(dāng)然取的指令和執(zhí)行的指令不是同一個(gè)指令哈。這就是指令的并行執(zhí)行BIU&EU取指令和執(zhí)行指令由不同模塊負(fù)責(zé)在空間上是分開的,故在時(shí)間上可采用重疊操作技術(shù)(取的指令和執(zhí)行的指令不是同一個(gè)指令)這就是指令的并行執(zhí)行BIU取指1取指2取指3取指4取指5得到數(shù)據(jù)取指6EU等待執(zhí)行1執(zhí)行2執(zhí)行3執(zhí)行4指令的并行執(zhí)行8088和8086首次在CPU中采用了指令流水線的結(jié)構(gòu),使他們成為了CPU發(fā)展史上的一個(gè)里程碑。采用指令流水線的結(jié)構(gòu)CPU發(fā)展史上的里程碑隨著技術(shù)的發(fā)展,現(xiàn)在我

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論