在經(jīng)濟(jì)日益發(fā)展的今天,,越來(lái)越多的企業(yè)生產(chǎn)都向著自動(dòng)化生產(chǎn)方向發(fā)展,而流水線設(shè)備是自動(dòng)化生產(chǎn)中不可缺少的設(shè)備之一,。今天小編就來(lái)給大家講講關(guān)于流水線的控制問(wèn)題探討:
當(dāng)我們?cè)谑褂?/span>流水線時(shí),,如果遇到流水線控制相關(guān)的問(wèn)題時(shí),,我們可以用以下幾種方法來(lái)解決問(wèn)題:
1、延遲轉(zhuǎn)移技術(shù)
延遲轉(zhuǎn)移技術(shù)是在遇到轉(zhuǎn)移指令時(shí),,依靠編譯器把一條或幾條沒(méi)有數(shù)據(jù)相關(guān)或控制相關(guān)的指令調(diào)度到轉(zhuǎn)移指令的后面,,當(dāng)被調(diào)度的指令執(zhí)行完成后,轉(zhuǎn)移指令的有效目標(biāo)地址也就計(jì)算出來(lái)了,。
2,、靜態(tài)轉(zhuǎn)移預(yù)測(cè)技術(shù)
靜態(tài)轉(zhuǎn)移預(yù)測(cè)技術(shù)是指在處理器的硬件或軟件設(shè)計(jì)完成后,轉(zhuǎn)移預(yù)測(cè)的方向就已經(jīng)確定了,,預(yù)測(cè)的方向可能是轉(zhuǎn)移成功的方向,,也可能是轉(zhuǎn)移不成功的方向。在程序?qū)嶋H執(zhí)行過(guò)程中,,轉(zhuǎn)移預(yù)測(cè)的方向不能改變,。如果在硬件上設(shè)置一個(gè)目標(biāo)緩沖棧及相應(yīng)的控制邏輯,靜態(tài)轉(zhuǎn)移預(yù)測(cè)技術(shù)還可以在轉(zhuǎn)移成功和不成功兩個(gè)方向都預(yù)取指令,。這樣,,轉(zhuǎn)移造成的損失就可以減少一些。
3,、動(dòng)態(tài)轉(zhuǎn)移預(yù)測(cè)技術(shù)
動(dòng)態(tài)轉(zhuǎn)移預(yù)測(cè)技術(shù)是指流水線的控制器能夠根據(jù)程序的執(zhí)行過(guò)程動(dòng)態(tài)地改變轉(zhuǎn)移的預(yù)測(cè)方向,,根據(jù)近期轉(zhuǎn)移是否成功的歷史記錄來(lái)預(yù)測(cè)下一次的轉(zhuǎn)移目標(biāo)。
4,、提前形成條件碼
對(duì)于一般條件轉(zhuǎn)移指令,,轉(zhuǎn)移條件碼是由上一條運(yùn)算型指令生產(chǎn)的,多數(shù)情況下,,不需要等到運(yùn)算完成之后,,而是在運(yùn)算開(kāi)始之前或是運(yùn)算中就能生產(chǎn)條件碼,這樣,,轉(zhuǎn)移的目標(biāo)就確定了,,從而可以確保領(lǐng)取指令的正確性。而對(duì)于一線循環(huán)控制指令,,可能需要通過(guò)編譯器將一般的循環(huán)控制指令轉(zhuǎn)變?yōu)閷iT的循環(huán)控制指令,,并設(shè)置一個(gè)專門的條件碼寄存器,,把生產(chǎn)條件碼的運(yùn)算型指令和使用這個(gè)條件碼的條件轉(zhuǎn)移指令分開(kāi),,只要循環(huán)體長(zhǎng)度不是很短,循環(huán)體中所有指令加上兩條循環(huán)控制指令就可以充滿流水線,,流水線在運(yùn)行中就不會(huì)出現(xiàn)“斷流”的現(xiàn)象,,這樣也不會(huì)影響生產(chǎn)的進(jìn)程。
以上就是關(guān)于流水線的控制問(wèn)題的一些相關(guān)知識(shí)探討,,了解更多關(guān)于流水線設(shè)備的相關(guān)資訊,,都可以關(guān)注我們的網(wǎng)站:http://www.jianchengdg.com/