下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
一種多軸運(yùn)動(dòng)處理的流水線技術(shù)
0.對(duì)計(jì)算機(jī)性能的提高新產(chǎn)品的出現(xiàn)給計(jì)算機(jī)的開發(fā)帶來(lái)了很大的變化。一方面,人們都在不斷的嘗試開發(fā)新的元件,不斷改進(jìn)工藝,來(lái)提高計(jì)算機(jī)的性能。另一方面,人們也嘗試通過改進(jìn)計(jì)算機(jī)的組織結(jié)構(gòu)來(lái)提高計(jì)算機(jī)的性能。在眾多的體系結(jié)構(gòu)改進(jìn)中,流水線技術(shù)的應(yīng)用起著舉足輕重的作用。1.利用現(xiàn)代信息技術(shù)進(jìn)行產(chǎn)品制作的技術(shù)工廠都使用流水線來(lái)生產(chǎn)產(chǎn)品。流水線利用了這樣一個(gè)原理,一個(gè)產(chǎn)品的生產(chǎn)需要好幾個(gè)制作步驟。我們使用流水技術(shù)來(lái)生產(chǎn)產(chǎn)品,可以使產(chǎn)品的各個(gè)制作步驟同時(shí)進(jìn)行,這樣便提高了生產(chǎn)一個(gè)產(chǎn)品的效率。在計(jì)算機(jī)的內(nèi)部同樣也大量采用了流水線技術(shù)。如圖1所示:每一級(jí)都對(duì)到達(dá)的信息進(jìn)行相應(yīng)的加工處理。1.1pipe機(jī)制簡(jiǎn)介流水線技術(shù)能用硬件來(lái)實(shí)現(xiàn),也可以用軟件來(lái)實(shí)現(xiàn)。所謂軟件流水線就是讓各個(gè)軟件程序以流水線的方式運(yùn)行,即一個(gè)程序的輸出連接到另一個(gè)程序的輸入。并且軟件流水線的實(shí)現(xiàn)不受機(jī)器硬件的影響(硬件可以支持硬件流水技術(shù),也可以不支持)。例如:在Unix系統(tǒng)中提供了一個(gè)Pipe機(jī)制,可以用來(lái)構(gòu)成一個(gè)軟件流水線。Unix的Shell允許用戶創(chuàng)建如下一個(gè)軟件流水線:將以下三個(gè)程序cat、sed和more連接成一個(gè)流水線:其中程序cat將文件x的一個(gè)副本寫出作為其輸出,該輸出作為程序sed的輸入。程序sed處于流水線的中間,它從cat接收輸入,然后進(jìn)行處理(把出現(xiàn)的每個(gè)字friend轉(zhuǎn)換成字partner)并發(fā)送輸出到more,流水線的最后一個(gè)程序more將輸入接收到的所有東西都顯示在用戶屏幕上。從程序員的角度來(lái)看,使用軟件流水線有兩個(gè)優(yōu)點(diǎn):其一,使用軟件流水為解決復(fù)雜問題提供了途徑。其二,軟件流水線可以使不同的程序再利用。1.2數(shù)據(jù)處理內(nèi)部處理硬件流水線是指:計(jì)算硬件在工作的時(shí)候就采用流水線的原理,這樣來(lái)提高處理數(shù)據(jù)的速度和效率。硬件流水線通常分為兩類:(1)數(shù)據(jù)流水線(2)指令流水線數(shù)據(jù)流水線:將數(shù)據(jù)的處理過程按照流水線的原理一步一步的處理,特別適用于計(jì)算機(jī)處理來(lái)自網(wǎng)絡(luò)的數(shù)據(jù)。例如:對(duì)于從網(wǎng)絡(luò)上獲取的數(shù)據(jù)包需要進(jìn)行三個(gè)處理過程:數(shù)據(jù)包解壓、完整性驗(yàn)證、加工處理。我們可以采用一個(gè)處理器來(lái)進(jìn)行完成所有三個(gè)步驟,也可以采用三個(gè)處理器來(lái)組成數(shù)據(jù)處理流水線。第一個(gè)處理器完成數(shù)據(jù)包解壓,第二個(gè)處理器完成完整性驗(yàn)證,最后一個(gè)處理器進(jìn)行加工處理。這樣便可以在單個(gè)處理器性能無(wú)法再提升的前提下,同樣提高計(jì)算機(jī)處理數(shù)據(jù)的能力。指令流水線:計(jì)算機(jī)執(zhí)行指令也是分為好幾個(gè)步驟來(lái)進(jìn)行的,我們采用流水線的方式來(lái)進(jìn)行這些步驟的執(zhí)行。2.控制部分描述由于計(jì)算機(jī)的工作就是取指令、執(zhí)行指令,所以指令流水線在計(jì)算機(jī)中得到了最廣泛的應(yīng)用。所以也就是本文我們討論的重點(diǎn)。簡(jiǎn)單起見我們把處理一條指令分成兩個(gè)階段:取指令和執(zhí)行指令。在一條指令執(zhí)行的期間,若主存還有時(shí)間未被訪問,這個(gè)時(shí)間可用于取下條指令。因此,取下一條指令就能和當(dāng)前指令的執(zhí)行并行進(jìn)行。如圖3所示:采用這種流水線的方式就使得指令的執(zhí)行效率大大提高,也提高了計(jì)算機(jī)取指令部件和執(zhí)行部件的利用率。如果取指令和執(zhí)行指令的時(shí)間是相等的,則指令的執(zhí)行周期將減少為原來(lái)的一半。為了使得指令的執(zhí)行效率進(jìn)一步提高我們把流水線分成更多的階段:取指令(FI)、譯碼指令(DI)、計(jì)算操作數(shù)(CO)、取操作數(shù)(FO)、執(zhí)行指令(EI)、寫操作數(shù)(WO)一共六個(gè)階段,并假定各個(gè)階段所用的時(shí)間是相等的。則指令的執(zhí)行情況如圖4所示:如果不采用流水線技術(shù)執(zhí)行8條指令,需要48個(gè)時(shí)間單位。采用了流水線技術(shù)之后,從第7個(gè)時(shí)間開始,每過一個(gè)時(shí)間單位就能執(zhí)行完一條指令。執(zhí)行效率相當(dāng)于不采用流水線技術(shù)的6倍。可見使用流水線技術(shù)可以提高計(jì)算機(jī)執(zhí)行指令的效率,而且進(jìn)一步增加流水線的級(jí)數(shù),可以使整條流水線擁有更短的工作周期。6級(jí)流水就比2級(jí)流水快很多。例如,一個(gè)計(jì)算機(jī)采用2級(jí)流水第一級(jí)用30個(gè)時(shí)間單位,第二級(jí)用30個(gè)時(shí)間單位,則每過30個(gè)單位就產(chǎn)生一個(gè)運(yùn)算結(jié)果。另一個(gè)計(jì)算機(jī)采用6級(jí)流水,對(duì)于某一條指令執(zhí)行完畢還是60秒,但由于采用6級(jí)流水,所以它每過10秒就產(chǎn)生一個(gè)運(yùn)算結(jié)果。由于級(jí)數(shù)多就可以擁有更短的工作周期,而頻率是周期的倒數(shù)。這也正好說(shuō)明為什么頻率高的CPU性能比較好了。當(dāng)然流水線也不可以無(wú)線的延長(zhǎng)下去。首先,由于現(xiàn)有芯片制造工藝的限制,頻率的提升會(huì)帶來(lái)高功耗、高發(fā)熱量的問題,而且過長(zhǎng)的流水線意味著更加復(fù)雜的內(nèi)部結(jié)構(gòu),生產(chǎn)的良品率也難以保證。其次,指令執(zhí)行的過程中一旦執(zhí)行出錯(cuò),流水線越長(zhǎng)排空流水線所花費(fèi)的時(shí)間和代價(jià)就越大。例如:Northwood核心處理器要浪費(fèi)20級(jí)工序的時(shí)間,而Prescott核心處理器就要浪費(fèi)31級(jí)工序的時(shí)間!最后,由于任何電導(dǎo)體都會(huì)產(chǎn)生延時(shí),流水線越長(zhǎng)、級(jí)數(shù)越多就會(huì)導(dǎo)致延遲次數(shù)越多,總延時(shí)就越大,CPU完成單個(gè)任務(wù)的時(shí)間就會(huì)越長(zhǎng)。所以流水線的長(zhǎng)度是個(gè)需要全面衡量的問題。當(dāng)然上述都是理想狀態(tài)下的流水線的性能,在實(shí)際情況中還有很多因素限制了流水線的性能的提升:(1)執(zhí)行時(shí)間不同上述的2指令流水,我們假設(shè)每個(gè)階段所用的時(shí)間都是相同的。而事實(shí)上,具體指令的各個(gè)階段的執(zhí)行時(shí)間是不一樣的。例如,指令的執(zhí)行階段會(huì)比較長(zhǎng)一些。這樣它的上一個(gè)階段,取指令階段可能就得等待一定的時(shí)間才能排空它的緩沖。而這段時(shí)間取指令部件會(huì)處于閑置狀態(tài),沒有被充分利用。(2)控制了對(duì)方進(jìn)入校園的信號(hào)假定指令3是一條轉(zhuǎn)移指令。如圖5所示,在指令3處發(fā)生了轉(zhuǎn)移,程序需要轉(zhuǎn)去執(zhí)行指令11。而這時(shí)候指令11還沒有進(jìn)入到流水線當(dāng)中,并沒有對(duì)它提前進(jìn)行處理,這樣就沒有發(fā)揮流水線的優(yōu)點(diǎn)。而且指令4,5,6,7已經(jīng)被執(zhí)行了一部分,這還需要對(duì)流線進(jìn)行排空操作,這更會(huì)浪費(fèi)很多的時(shí)間。(3)高效訪問高效主機(jī)使用流水線技術(shù)還會(huì)遇到訪存沖突的問題。如圖4所示,在第5個(gè)時(shí)間段,指令1執(zhí)行指令可能會(huì)訪問內(nèi)存,指令2取操作數(shù)會(huì)訪問內(nèi)存,而指令5去取指令也會(huì)訪問內(nèi)存。這樣就會(huì)發(fā)生內(nèi)存的訪問沖突。所以有些指令的必須踏步等待。(4)提取目的指令有些程序的語(yǔ)句之間存在著相關(guān)性,造成這些語(yǔ)句不能并行的執(zhí)行。例如如下指令:指令1計(jì)算A加B的和并且存入寄存器C中,指令2把C的值存入內(nèi)存中。兩條指令不能完全并行執(zhí)行,指令2必須等指令1執(zhí)行完畢之后,才能把C的值存入內(nèi)存。因?yàn)檫@時(shí)候的C值才是最新的值,所以指令2也必須等待。3.指令沖突方面的配合對(duì)于以上的問題我們可以采用相應(yīng)的辦法來(lái)緩解或解決。對(duì)于指令各個(gè)階段執(zhí)行時(shí)間不一致的問題。我采用在各個(gè)階段之間加入緩存來(lái)解決流水線的斷流和等待問題。如圖6所示對(duì)于訪存沖突問題,一方面,可以設(shè)置兩個(gè)獨(dú)立的存儲(chǔ)器分別存放操作數(shù)和指令,以免取指令和取操作數(shù)同時(shí)進(jìn)行時(shí)互相沖突,使得取某條指令和取另一條指令的操作數(shù)實(shí)現(xiàn)時(shí)間上的重疊。另一方面,采用指令欲取技術(shù),在CPU中設(shè)置指令隊(duì)列,將指令預(yù)先取到指令隊(duì)列中排隊(duì)。在執(zhí)行指令時(shí),當(dāng)主存空閑的時(shí)候,只要指令隊(duì)列空出,就可以取下一條指令,并放到指令隊(duì)列中。從而保證執(zhí)行第n條指令時(shí)對(duì)第n+1條指令譯碼的并行執(zhí)行。對(duì)于數(shù)據(jù)相關(guān)問題,通常采用旁路技術(shù),即在執(zhí)行部件與指令部件之間設(shè)置直接傳送數(shù)據(jù)的通路,在執(zhí)行部件產(chǎn)生結(jié)果向寄存器送數(shù)的同時(shí),把此數(shù)直接送至指令部件。如下圖所示:圖7中ALU的運(yùn)算結(jié)果在送入寄存器組的同時(shí),也送到鎖存器1,這樣就不需要等待。鎖存器1直接就獲得了下次運(yùn)算所需的數(shù)據(jù),無(wú)需再訪問寄存器,節(jié)省了時(shí)間。對(duì)于轉(zhuǎn)移問題主要采用代碼優(yōu)化和預(yù)判技術(shù)來(lái)盡可能的減少轉(zhuǎn)移帶來(lái)的性能損失。(1)控制了含指令的控制使用代碼重組技術(shù),使得轉(zhuǎn)移延遲。就利用轉(zhuǎn)移指令直到下面一條指令之后才產(chǎn)生影響這一特點(diǎn),在轉(zhuǎn)移指令之后安排一條有用指令來(lái)替代僅為延遲的空操作。例如如下指令其中:I代表取指令,E代表執(zhí)行,D代表存儲(chǔ)。流水線如下圖所示:圖8中在時(shí)間段4執(zhí)行JUMP后需要跳轉(zhuǎn)到指令105而此時(shí)指令103已經(jīng)進(jìn)入流水線了,所以流水必須清除指令103,并在時(shí)間段5取來(lái)指令105來(lái)繼續(xù)建立流水線執(zhí)行。圖9中時(shí)間段3執(zhí)行的時(shí)候取來(lái)了指令102,JUMP執(zhí)行完之后須要轉(zhuǎn)去執(zhí)行指令105,正好可以指令102的執(zhí)行與105的取指令同時(shí)執(zhí)行,流水線沒有被打斷。(2)轉(zhuǎn)移歷史表動(dòng)態(tài)轉(zhuǎn)移預(yù)測(cè)策略,試圖通過記錄條件轉(zhuǎn)移指令在程序中的歷史來(lái)改善預(yù)測(cè)的準(zhǔn)確度。每個(gè)條件轉(zhuǎn)移指令都有與之關(guān)聯(lián)的一位或幾位,它們用來(lái)反映此指令的最近的歷史。處理器下次遇到此指令時(shí)會(huì)根據(jù)這些歷史記錄為經(jīng)行轉(zhuǎn)移判斷。轉(zhuǎn)移歷史表是一個(gè)與流水指令相關(guān)聯(lián)的高速緩沖存儲(chǔ)器。每個(gè)表項(xiàng)由三部分組成:轉(zhuǎn)移指令的地址;記錄的歷史位;目標(biāo)指令地址。轉(zhuǎn)移歷史表作為cache對(duì)待,每次預(yù)測(cè)都觸發(fā)一次轉(zhuǎn)移歷史表中的查找,若未發(fā)現(xiàn)匹配,則用下一順序地址。若匹配,則根據(jù)表進(jìn)行轉(zhuǎn)移預(yù)測(cè)。最后根據(jù)實(shí)際的執(zhí)行結(jié)果,再修改、更新轉(zhuǎn)移歷史表。4.
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 保山中醫(yī)藥高等??茖W(xué)?!堵窐蚬こ獭?023-2024學(xué)年第一學(xué)期期末試卷
- 2024廣告合同范本
- 2025版橋梁欄桿安裝及檢測(cè)維修合同范本3篇
- 2025版標(biāo)準(zhǔn)化活羊養(yǎng)殖基地銷售合同范本下載3篇
- 2025版石材購(gòu)銷合同的保險(xiǎn)責(zé)任2篇
- 2025版電力設(shè)施建設(shè)與運(yùn)維合作協(xié)議范本3篇
- 2025年度二零二五年度生態(tài)園林養(yǎng)護(hù)服務(wù)外包合同2篇
- 寶雞中北職業(yè)學(xué)院《流體力學(xué)與傳熱Ⅱ》2023-2024學(xué)年第一學(xué)期期末試卷
- 寶雞文理學(xué)院《前廳與客房運(yùn)行管理》2023-2024學(xué)年第一學(xué)期期末試卷
- 二零二五年度2025版企業(yè)食堂員工餐配送與質(zhì)量監(jiān)督協(xié)議3篇
- 高中語(yǔ)文評(píng)價(jià)體系的構(gòu)建與實(shí)施
- 安徽省合肥市蜀山區(qū)2023-2024學(xué)年七年級(jí)上學(xué)期期末生物試卷
- 變電站消防培訓(xùn)課件
- TSM0500G(阻燃性) 豐田試驗(yàn)測(cè)試標(biāo)準(zhǔn)
- 疊合板施工工藝及質(zhì)量控制要點(diǎn)
- 公共衛(wèi)生事業(yè)管理專業(yè)職業(yè)生涯規(guī)劃書
- 花藝師年度工作總結(jié)
- 新目標(biāo)漢語(yǔ)口語(yǔ)課本2課件-第2單元
- 二手車買賣合同(標(biāo)準(zhǔn)版范本)
- 新產(chǎn)品的試制與導(dǎo)入
- 污水處理廠污泥處理處置投標(biāo)方案
評(píng)論
0/150
提交評(píng)論