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