1、試舉例說明什么是“先讀后寫”,“寫-寫”,“先寫后讀”相關(guān)?
設(shè)有指令h,i,j,k,l,m,n依次流入流水線,若i要讀數(shù)的單元正是k寫數(shù)的單元,正常順序是i先讀,k再寫。但由于異步流動下,k可能先于指令i被解釋,從而i讀到的是不正確數(shù)據(jù)(正常數(shù)據(jù)應(yīng)該是k寫之前的),這種相關(guān)稱為“先讀后寫”相關(guān)。若i,k向一單元寫數(shù)據(jù),正常情況下最后單元中應(yīng)保存k寫的數(shù)據(jù),但由于異步流動,k可能先于i寫數(shù)據(jù),使該單元最后結(jié)果不正確,這種相關(guān)稱“寫-寫”相關(guān)。類似可知“先寫后讀”相關(guān)。
2、解決通用寄存器數(shù)相關(guān)有幾種方法?試作簡單比較。
方法1:
推后“分析k+1”讀??蓪ⅰ胺治鰇+1”推到“執(zhí)行k”結(jié)束時,也可以使它們部分重疊,只要“分析k+1”能取得正確操作數(shù)即可。缺點(diǎn):它們是以犧牲速度為代價。優(yōu)點(diǎn):不增加設(shè)備。
方法2:
設(shè)置“相關(guān)專用通路辦法”。在運(yùn)算器輸出到輸入之間增設(shè)“相關(guān)專用通路”,保證在“執(zhí)行k+1”之前輸入中已獲得正確信息。優(yōu)點(diǎn):重疊速度不下降。缺點(diǎn):增加設(shè)備為代價。
3、為實(shí)現(xiàn)指令重疊解釋可能采取哪些辦法?簡單分析其特點(diǎn)?
方法1:
讓操作數(shù)和指令分別存放在兩個獨(dú)立編址且可同時訪問的存儲器中。優(yōu)點(diǎn):有利于實(shí)現(xiàn)指令的保護(hù)。缺點(diǎn):主存總線控制復(fù)雜,軟件設(shè)計麻煩。
方法2:
指令和操作數(shù)混存在多體交叉主存結(jié)構(gòu)中,只要指令和操作數(shù)不在一個分體時就在一個主存周期取得。優(yōu)點(diǎn):實(shí)現(xiàn)上簡單,開銷少。缺點(diǎn):當(dāng)指令和操作數(shù)在同一體時無法重疊。
方法3:
增設(shè)FIFO工作的指令緩沖寄存器。當(dāng)主存空閑時預(yù)取下幾條指令到指緩。優(yōu)點(diǎn):微操作可分成分析指令和執(zhí)行指令兩部分。缺點(diǎn):數(shù)據(jù)相關(guān)問題。
4、試比較幾種指令級高度并行的超級處理機(jī)
超標(biāo)量處理機(jī):配置多套功能部件輔助電路,靠編譯程序優(yōu)化指令順序,使流水吞吐率提高。優(yōu)點(diǎn):硬件不調(diào)整指令順序、容易實(shí)現(xiàn)、適合矩陣計算。缺點(diǎn):開銷大。
超長指令字處理機(jī):編譯程序?qū)⑦x擇可并行指令放入一條超長指令中,運(yùn)行時指令中每個操作段控制一功能部件。優(yōu)點(diǎn):硬件結(jié)構(gòu)和指令系統(tǒng)簡單、無增加硬件開銷、指令級并行性高。缺點(diǎn):指令結(jié)構(gòu)與一般計算機(jī)不兼容、指令結(jié)構(gòu)不靈活浪費(fèi)指令存儲空間、不適于一般領(lǐng)域。
超流水線處理機(jī):利用時間并發(fā)性,利用較短時鐘周期提高流水線速度。優(yōu)點(diǎn):開銷小。缺點(diǎn):必須有高速時鐘機(jī)。
5、流水線按級別分成幾類?線性流水線與非線性流水線有什么區(qū)別?動態(tài)流水線和靜態(tài)流水線有什么區(qū)別?
流水線按級別分部件級、處理機(jī)級和系統(tǒng)級三級。線性流水線段間無反饋或超過的通路,非線性流水線則有反饋回路或前越通路。靜態(tài)和動態(tài)流水都是多功能的流水。其中,動態(tài)流水線按一種功能流水未完成之前,可重組開始另一種功能的流水。靜態(tài)流水線必須等流水線排空之后才可進(jìn)行功能切換。
6、在“一次重疊”的機(jī)器中,會出現(xiàn)哪些相關(guān)?如何處理?
轉(zhuǎn)移指令與后續(xù)指令相關(guān):減少使用轉(zhuǎn)移指令,需要使用時可采用延遲轉(zhuǎn)移技術(shù)。
指令相關(guān):不允許程序在執(zhí)行過程中修改指令,需要修改指令時可用類似于IBM370的執(zhí)行指令,變指令相關(guān)為操作數(shù)相關(guān),統(tǒng)一按操作相關(guān)去處理。
主存空間數(shù)相關(guān):在存儲控制器中,寫數(shù)申請優(yōu)先于讀數(shù)申請被響應(yīng)變址值二次相關(guān),設(shè)置變址值相關(guān)專用通路。
通用寄存器組的變址值一次相關(guān):設(shè)置變址值相關(guān)專用通路,并推后后續(xù)指令的分析。
7、為處理流水機(jī)器的全局性相關(guān),可以加快或提前形成轉(zhuǎn)移指令所需的條件碼,那么可從哪兩方面考慮?舉例說明。
一是加快單條指令內(nèi)部條件碼的形成。如有的指令,象乘、除指令只要取出操作數(shù),利用其數(shù)的符號位是同號,還是異號,就可以判定結(jié)果的正負(fù)。而是在一段程序內(nèi)提前形成條件碼,例如,在循環(huán)程序中,將控制循環(huán)變量改值的指令提前到循環(huán)體開始處。在硬件上設(shè)置專用的條件碼寄存器,以便在判斷是否循環(huán)時,已提前產(chǎn)生了條件碼。
8、解釋重疊方式中的“一次重疊”的含義。
將指令的解釋分為“分析”和“執(zhí)行”兩個階段,任何時刻都只是“執(zhí)行k”與“分析k+1”在時間上重疊,也就是讓指令分析部件與指令執(zhí)行部件同時處理相鄰的兩條指令。
9、什么是流水線的速度瓶頸?消除流水線速度瓶頸的方法有哪兩種,舉例示意說明。
流水線中經(jīng)過時間最長的功能段就是流水線中的速度瓶頸。清除流水線的速度瓶頸的方法,一是將瓶頸過程再細(xì)分。例如,流水線瓶頸段為2Δt,其它各段均為Δt,則可將該瓶頸段再細(xì)分成兩個子段,各子段經(jīng)過時間均為Δt;二是將瓶頸子過程多套并聯(lián),如上例,將瓶頸重復(fù)設(shè)置兩個,任務(wù)錯開一個Δt時間分配給這兩個段。
10、流水機(jī)器的中斷處理有哪兩種方法,各有什么優(yōu)缺點(diǎn)?
流水機(jī)器的中斷處理有不精確斷點(diǎn)法和精確斷點(diǎn)法兩種。
不精確斷點(diǎn)法好處是控制處理簡單,缺點(diǎn)是程序排錯不利。精確斷點(diǎn)法,中斷現(xiàn)場準(zhǔn)確對應(yīng)于發(fā)出中斷的指令,有利于程序的排錯,但不利之處是需要大量后援寄存器。
11、在流水機(jī)器中,全局性相關(guān)指的是什么?處理全局性相關(guān)的方法有哪些?簡要說明。
全局性相關(guān)是轉(zhuǎn)移指令與其后續(xù)指令之間的相關(guān)。
處理方法有:
猜測法,猜選其中一個分支繼續(xù)流入,待條件碼形成后再決定是繼續(xù)執(zhí)行,還是作廢,按另一分支重新流入。
提前形成轉(zhuǎn)移所需的條件,包括指令內(nèi)或程序段內(nèi)條件碼的提前生成。
加快短循環(huán)程序的處理,判斷如屬于短循環(huán),將循環(huán)體內(nèi)各指令一次取入指令緩沖器中,停止預(yù)取指令;猜選分支恒選循環(huán)分支。
12、流水處理的主要技術(shù)途徑是什么?在CPU中可以有哪兩類流水?在存儲系統(tǒng)或存儲體系中舉出兩個應(yīng)用流水的例子。
流水處理的主要技術(shù)途徑是時間重疊和功能部件專用化。CPU內(nèi)部可以有指令流水線和運(yùn)算操作流水線。在存儲體系中CACHE存儲器的查地址映象表和訪物理CACHE可以流水。存儲器系統(tǒng)中,主存模m多體交叉對各分體的交叉訪問也可以看成是一種流水。