版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第一章計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)的基本概念翻譯:是先用轉(zhuǎn)換程序?qū)⒏咭患?jí)機(jī)器級(jí)上的程序全部變換成低一級(jí)機(jī)器級(jí)上可運(yùn)行的等效程序,然后再在低一級(jí)機(jī)器級(jí)上去實(shí)現(xiàn)的技術(shù)。解釋:是在低一級(jí)機(jī)器級(jí)上用它的一串語(yǔ)句或指令來(lái)仿真高一級(jí)機(jī)器級(jí)上的一條語(yǔ)句或指令的功能,通過高一級(jí)機(jī)器語(yǔ)言程序中的每條語(yǔ)句或指令逐條解釋來(lái)實(shí)現(xiàn)的技術(shù)。計(jì)算機(jī)系統(tǒng)結(jié)構(gòu):指機(jī)器語(yǔ)言程序的設(shè)計(jì)者所看到的計(jì)算機(jī)系統(tǒng)的屬性,即概念性結(jié)構(gòu)與功能特性計(jì)算機(jī)組成:計(jì)算機(jī)組成是體系結(jié)構(gòu)的邏輯實(shí)現(xiàn)。是研究為了達(dá)到所希望的性能價(jià)格比,如何最佳、最合理地把各種設(shè)備和部件組成計(jì)算機(jī),以實(shí)現(xiàn)所規(guī)定的體系結(jié)構(gòu)。一般包括:數(shù)據(jù)通路的寬度;專用部件的設(shè)置;各功能部件;控制機(jī)構(gòu)的組成方式;緩沖技術(shù);可靠性技術(shù)的采用和方式的選擇;預(yù)估、預(yù)判、優(yōu)化處理。計(jì)算機(jī)實(shí)現(xiàn):指其計(jì)算機(jī)組成的物理實(shí)現(xiàn)體系結(jié)構(gòu)、組成和實(shí)現(xiàn)之間的關(guān)系:系列機(jī)——同一廠家生產(chǎn)的具有相同體系結(jié)構(gòu),但具有不同組成和實(shí)現(xiàn)的一系列機(jī)器。系列機(jī)是計(jì)算機(jī)發(fā)展的重要里程碑。一種體系結(jié)構(gòu)可有多種組成,一種組成可有多種實(shí)現(xiàn)。Amdahl定律:系統(tǒng)中某一部件由于采用某種改進(jìn)的執(zhí)行方式后,整個(gè)系統(tǒng)的性能提高了,其衡量指標(biāo)為加速比關(guān)鍵問題:性能與價(jià)格的關(guān)系軟硬件取舍(硬件與軟件的合理分配)問題軟硬件的關(guān)系:軟件實(shí)現(xiàn)的功能完全可以用硬件或固件實(shí)現(xiàn),同樣,硬件實(shí)現(xiàn)的功能也可以由軟件的模擬來(lái)完成,只是其性能、價(jià)格、實(shí)現(xiàn)的難易程度不同而已。具有相同功能的系統(tǒng),其軟硬件功能分配比例也是很寬的。而且在不同時(shí)期及同一時(shí)期的不同機(jī)器也是在動(dòng)態(tài)改變的。軟件與硬件實(shí)現(xiàn)的特點(diǎn):硬件實(shí)現(xiàn):速度快、成本高;靈活性差、占用內(nèi)存少。軟件實(shí)現(xiàn):速度低、復(fù)制費(fèi)用低;靈活性好、占用內(nèi)存多Amdahl定律:系統(tǒng)中某一部件由于采用某種改進(jìn)的執(zhí)行方式后,整個(gè)系統(tǒng)的性能提高了,其衡量指標(biāo)為加速比透明性:一種本來(lái)存在的有差異的事物和屬性,從某種角度上看又好像不存在的現(xiàn)象,被稱為是“透明性”。例1:計(jì)算機(jī)執(zhí)行某測(cè)試程序,其中含有大量浮點(diǎn)數(shù)據(jù)的處理操作,為提高性能可以采用兩種方案,一是采用硬件實(shí)現(xiàn)求浮點(diǎn)數(shù)平方根(FPSQR)的操作,可以使該操作的速度提高10倍;另一種方案是提高所有浮點(diǎn)數(shù)據(jù)操作(FP)的速度,使其加快2倍。同時(shí)已知FPSQR操作時(shí)間占整個(gè)測(cè)試程序執(zhí)行時(shí)間的20%,而FP操作占整個(gè)執(zhí)行時(shí)間的50%,現(xiàn)比較兩種方案。按兩種情況求出其加速比:Sn(FPSQR)=1/((1-0.2)+0.2/10)=1.22,Sn(FP)=1/((1-0.5)+0.5/2)=1.33例1:某臺(tái)計(jì)算機(jī)只有Load/Store指令能對(duì)存儲(chǔ)器進(jìn)行讀/寫操作其它指令只對(duì)寄存器進(jìn)行操作,根據(jù)程序跟蹤實(shí)驗(yàn)結(jié)果,已知每種指令所占的比例及CPI數(shù)如下:指令類型
指令所占比例CPI算邏指令
43%
1LOAD指令
21%
2SRORE指令
12%
2轉(zhuǎn)移指令
24%
2求:上述情況的平均CPI。CPI=1×0.43+2×0.21+2×0.12+2×0.24=0.43+0.42+0.24+0.48=1.57例1.用一臺(tái)40MHZ的處理機(jī)處理執(zhí)行標(biāo)準(zhǔn)測(cè)試程序,它含的混合指令數(shù)和相應(yīng)所需的時(shí)鐘周期數(shù)如下:指令周期:
指令數(shù):
時(shí)鐘周期:整數(shù)運(yùn)算:
45000
1數(shù)據(jù)傳送:
32000
2浮點(diǎn)運(yùn)算:
15000
2控制傳送:
8000
2求有效的CPI,MIPS速率,程序的執(zhí)行時(shí)間。解:指令總數(shù)=45000+32000+15000+8000=100000
(Ic)CPI=∑_i^n?〖CPIi*Ii/Ic〗=45000/100000*1+32000/100000*2+15000/100000*2+8000/100000*2=1.43MIPS=時(shí)鐘頻率/CPI*10^6=40/1.43=27.97
第2章
數(shù)據(jù)表示與指令系統(tǒng)
2.1
數(shù)據(jù)表示1、數(shù)據(jù)表示——能由機(jī)器硬件直接識(shí)別、引用的數(shù)據(jù)類型。2、數(shù)據(jù)結(jié)構(gòu)——串、隊(duì)、棧、向量、陣列、鏈表、樹、圖等。它反映了應(yīng)用中各數(shù)據(jù)元素或信息單元間的結(jié)構(gòu)關(guān)系。它通過軟件映像變換成機(jī)器所具有的數(shù)據(jù)表示。3、不同的數(shù)據(jù)表示可以為數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn)提供不同的支持,表現(xiàn)在實(shí)現(xiàn)效率、方便性不同。數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)表示是軟、硬件的交界面,數(shù)據(jù)表示的確定實(shí)質(zhì)是軟、硬件的取舍。機(jī)器的運(yùn)算類指令和運(yùn)算器結(jié)構(gòu)主要是按機(jī)器有什么樣的數(shù)據(jù)表示來(lái)確定的。4、高級(jí)數(shù)據(jù)表示:自定義數(shù)據(jù)表示、向量數(shù)組數(shù)據(jù)表示、堆棧數(shù)據(jù)表示。5、自定義數(shù)據(jù)表示:標(biāo)志符數(shù)據(jù)表示、數(shù)據(jù)描述符。6、標(biāo)志符數(shù)據(jù)表示——為縮短高級(jí)語(yǔ)言與機(jī)器語(yǔ)言之間的在處理運(yùn)算符和數(shù)據(jù)類型時(shí)語(yǔ)義差距,讓機(jī)器中每個(gè)數(shù)據(jù)都帶類型標(biāo)志,將數(shù)據(jù)類型與數(shù)據(jù)本身直接聯(lián)系在一起。這樣,機(jī)器語(yǔ)言的操作碼也就和高級(jí)語(yǔ)言中的運(yùn)算符一樣,可以通用于各種數(shù)據(jù)類型的操作了。標(biāo)志符主要用于指明數(shù)據(jù)類型,也可用于指明信息類型。標(biāo)志符由編譯程序建立,對(duì)高級(jí)程序員透明。標(biāo)志符數(shù)據(jù)表示的主要優(yōu)點(diǎn):簡(jiǎn)化了指令系統(tǒng)和程序設(shè)計(jì)。由于指令通用于多種數(shù)據(jù)類型的處理,減少了指令種類,從而簡(jiǎn)化了程序設(shè)計(jì);簡(jiǎn)化了編譯程序。編譯系統(tǒng)在處理運(yùn)算符時(shí),不必進(jìn)行細(xì)致的語(yǔ)義分析,只需形成通用的運(yùn)算指令,編譯程序縮短、編譯過程加快、編譯效率提高;便于實(shí)現(xiàn)一致性校驗(yàn)。一般機(jī)器上數(shù)據(jù)校驗(yàn)由編譯軟件完成,在此可由硬件直接快速檢測(cè)出多種程序設(shè)計(jì)錯(cuò)誤,簡(jiǎn)化加快了程序的調(diào)試;
能由硬件自動(dòng)變換數(shù)據(jù)類型。操作數(shù)相容但不同長(zhǎng)度,硬件能自行轉(zhuǎn)換,然后運(yùn)算,縮短解題時(shí)間;支持了數(shù)據(jù)庫(kù)系統(tǒng)的實(shí)現(xiàn)與數(shù)據(jù)類型無(wú)關(guān)的要求。程序不用修改即可處理多種不同類型的數(shù)據(jù)。一般機(jī)器中,指令本身包含數(shù)據(jù)類型和長(zhǎng)度信息,實(shí)現(xiàn)數(shù)據(jù)無(wú)關(guān)性非常費(fèi)事;為軟件調(diào)試和應(yīng)用軟件開發(fā)提供了支持。可由軟件定義的捕捉標(biāo)志位設(shè)置斷點(diǎn),便于跟蹤和調(diào)試。標(biāo)志符數(shù)據(jù)表示可能帶來(lái)兩個(gè)問題:
會(huì)增加程序所占主存空間。但設(shè)計(jì)合理可能減少,因?yàn)椋阂皇侵噶罘N類減少,縮短了操作碼位數(shù);二是一般一個(gè)數(shù)據(jù)會(huì)被多條指令訪問,指令單元數(shù)會(huì)比數(shù)據(jù)單元數(shù)多;三是因簡(jiǎn)化了編譯系統(tǒng),使之占空間減少;四是數(shù)據(jù)類型變換和一致性檢查由硬件完成,不放在目的程序中,節(jié)省了目的程序的占用空間。
會(huì)降低指令執(zhí)行速度。指令執(zhí)行時(shí)因增加了按標(biāo)志符確定數(shù)據(jù)類型、判斷操作數(shù)相容性操作,所以單條指令的執(zhí)行速度會(huì)下降。7、數(shù)據(jù)描述符——為進(jìn)一步減少標(biāo)志符所占的存儲(chǔ)空間,將數(shù)據(jù)描述符與數(shù)據(jù)分開存放。描述符用來(lái)描述所要訪問的數(shù)據(jù)是整塊的還是單個(gè)的、訪問數(shù)據(jù)塊、數(shù)據(jù)元素的地址及其它信息。數(shù)據(jù)描述符一般包括:用于區(qū)分描述符和數(shù)據(jù)的標(biāo)志、各種標(biāo)志位、地址、長(zhǎng)度等。與標(biāo)志符數(shù)據(jù)表示的主要區(qū)別是:標(biāo)志符數(shù)據(jù)表示中標(biāo)志符與每一個(gè)數(shù)據(jù)相連、合存于同一個(gè)存儲(chǔ)單元、描述單個(gè)的數(shù)據(jù)類型特性。數(shù)據(jù)描述符方法:為向量、數(shù)組、陣列、記錄等數(shù)據(jù)結(jié)構(gòu)提供了一定的支持,可以比變址法更快地形成元素地址。但這些數(shù)據(jù)元素能否并行運(yùn)算與是否采用標(biāo)志符無(wú)關(guān),只取決于運(yùn)算器、控制器的結(jié)構(gòu)。8、向量數(shù)組數(shù)據(jù)表示:在處理向量、數(shù)組時(shí),在一般機(jī)器上經(jīng)編譯后用變址操作,在向量機(jī)(配有向量或陣列運(yùn)算指令、流水或陣列處理方式的運(yùn)算器),有時(shí)只需一條向量指令(指令格式如:向量加、A向量參數(shù)、B向量參數(shù)、C向量參數(shù))就能完成任務(wù)。向量參數(shù)包括:基地址(向量第一個(gè)元素地址)、位移量(基地址加位移量形成初始地址,設(shè)置位移量可實(shí)現(xiàn)向量的斜排運(yùn)算)、向量長(zhǎng)度(用于校驗(yàn)形成的元素地址越界)、元素步距(向量相鄰元素的偏移)。因向量參數(shù)內(nèi)容多,會(huì)使指令字太長(zhǎng),不便編譯和存取,多數(shù)采用寄存器尋址,只給出存放向量參數(shù)的寄存器號(hào)。引入向量數(shù)組數(shù)據(jù)表示的好處:
快速形成元素地址;
實(shí)現(xiàn)向量元素成塊預(yù)取到CPU,可用一條向量或數(shù)組指令,用硬件判斷越界,采用流水或同時(shí)對(duì)向量、數(shù)組高速并行處理;
還設(shè)有相關(guān)型交叉陣列、稀疏向量(大量元素是0的向量)的處理硬件,不但可節(jié)省存儲(chǔ)空間,還可以節(jié)省處理時(shí)間。9、堆棧數(shù)據(jù)表示:堆棧數(shù)據(jù)結(jié)構(gòu)在編譯和子程序調(diào)用中很有用。堆棧機(jī)器與一般機(jī)器對(duì)堆棧數(shù)據(jù)結(jié)構(gòu)的支持差距較大。表現(xiàn)在:一般機(jī)器:
堆棧操作用的機(jī)器指令少、功能單一;
堆棧置于存儲(chǔ)器中,訪問堆棧速度低;堆棧機(jī)器:
有豐富的堆棧操作指令、功能強(qiáng)大;
用高速寄存器組成硬件堆棧,并輔以控制電路使其與主存中的堆棧區(qū)在邏輯上成為整體,使堆棧訪問速度是寄存器的、容量是主存的;
有力地支持高級(jí)語(yǔ)言程序的編譯(如,逆波蘭表達(dá)式)。有力地支持子程序的嵌套和遞歸調(diào)用(嵌套調(diào)用——子程序調(diào)用另一子程序;遞歸調(diào)用——子程序直接或經(jīng)過其它子程序間接調(diào)用自己)。10、引入數(shù)據(jù)表示的原則:
看系統(tǒng)效率是否提高,即是否減少了實(shí)現(xiàn)時(shí)間(主要是內(nèi)存、處理器間傳送的信息量是否減少)、存儲(chǔ)空間;
看通用性和利用率是否提高。11、浮點(diǎn)數(shù)的表示:在機(jī)器字長(zhǎng)相同時(shí),用浮點(diǎn)數(shù)比用定點(diǎn)數(shù)的表示實(shí)數(shù)的范圍理會(huì)更大。格式一般為(從左到右):數(shù)符、階碼(階符、階值)、尾數(shù)。階碼可用原碼、補(bǔ)碼或增碼(移碼)表示。浮點(diǎn)數(shù)階值的位數(shù)p主要影響可表示數(shù)范圍的大小,尾數(shù)m主要影響精度。階碼基數(shù)為2,以避免對(duì)階造成的精度和有效數(shù)值的過多損失。尾數(shù)的基數(shù)根據(jù)情況選擇。12、浮點(diǎn)數(shù)尾數(shù)基值rm的大小將產(chǎn)生的影響:
rm增大,可表示數(shù)的范圍增大;rm增大,可表示數(shù)的個(gè)數(shù)增多;
rm增大,表示的數(shù)在數(shù)軸上分布變?。ū硎颈取谙嗤碾A值位數(shù)、尾數(shù)位數(shù)情況下,在尾數(shù)基值為2時(shí)所能表示的最大值內(nèi),采用尾數(shù)基數(shù)大于2時(shí)可表示的浮點(diǎn)數(shù)個(gè)數(shù)與采用尾數(shù)基數(shù)等于2時(shí)可表示的浮點(diǎn)數(shù)個(gè)數(shù)之比);
rm增大,可表示數(shù)精度下降;rm增大,運(yùn)算中的精度損失變?。ㄟ\(yùn)算中的精度損失是運(yùn)算中尾數(shù)右移出機(jī)器字長(zhǎng),使有效數(shù)字丟失造成的,它不同于可表示數(shù)的精度。rm增大后,對(duì)階移位的機(jī)會(huì)和次數(shù)減少,數(shù)的表示范圍擴(kuò)大,使尾數(shù)溢出右規(guī)的機(jī)會(huì)也減少,所以運(yùn)算中的精度損失減?。?;
rm增大,運(yùn)算速度提高(因?yàn)椋瑢?duì)階、尾數(shù)溢出右移、規(guī)格化左移次數(shù)減少)。綜上所述,rm增大有好有壞,需要根據(jù)應(yīng)用綜合平衡。在巨、大、中型機(jī)上,rm宜取大,這樣使數(shù)的表示范圍大、個(gè)數(shù)多、速度快,因大型機(jī)浮點(diǎn)數(shù)尾數(shù)多,所以實(shí)際精度比小、微型機(jī)高得多。小、微型rm宜取小,這樣尾數(shù)位數(shù)少,可以提高精度。13、浮點(diǎn)數(shù)尾數(shù)的下溢處理方法:(假設(shè),尾數(shù)基數(shù)是2,尾數(shù)位數(shù)為2)方法截?cái)喾ㄉ崛敕ê阒?法查表舍入法處理措施超出字長(zhǎng)部分直接截去。字長(zhǎng)外增加1位附加位,存放溢出最高位,每次下溢處理加1。發(fā)生下溢,就將最低位置1。根據(jù)低k-1位和溢出最高位(有2k種可能),查事先準(zhǔn)備好的具有2k個(gè)表項(xiàng)的溢出舍入表。表在構(gòu)建時(shí),k-1位全為1時(shí)用截?cái)喾?,其它情況用舍入法。最大誤差整數(shù)時(shí)接近1、分?jǐn)?shù)時(shí)接近2-m。整數(shù)時(shí)0.5、分?jǐn)?shù)時(shí)2-(m+1)整數(shù)時(shí)為1、分?jǐn)?shù)為2-m
優(yōu)點(diǎn)最簡(jiǎn)單、不增加硬件、不需處理時(shí)間。實(shí)現(xiàn)簡(jiǎn)單、增加硬件少、誤差小、平均誤差接近0。最簡(jiǎn)單、不增加硬件和處理時(shí)間,平均誤差接近于0。最好的方法,速度快、平均誤差可調(diào)到0。缺點(diǎn)誤差大且不能調(diào)節(jié),很少用。速度慢,適用于中低速機(jī)器或要求數(shù)度損失小的場(chǎng)合。最大誤差比截?cái)喾ㄟ€大,適用于中、高速機(jī)器。硬件量大
數(shù)據(jù)類型和數(shù)據(jù)表示數(shù)據(jù)類型和數(shù)據(jù)表示這一部分主要講述計(jì)算機(jī)中所采用的數(shù)據(jù)類型,它們主要有兩類:一類是基本數(shù)據(jù)類型,包括位、串、整數(shù)、實(shí)數(shù)、字符和布爾量等;另一類是結(jié)構(gòu)數(shù)據(jù)類型,包括向量、數(shù)據(jù)、字符串、堆棧、隊(duì)列、記錄等。因?yàn)橛?jì)算機(jī)只能識(shí)別"0"和"1"這些二進(jìn)制位,那么在計(jì)算機(jī)中如何在存儲(chǔ)器中用"0"和"1"來(lái)表示上面的這些數(shù)據(jù),就是我們要學(xué)的數(shù)據(jù)表示。這一章內(nèi)容不多,比較難理解的似乎是"向量"這種數(shù)據(jù)類型。本章的內(nèi)容主要應(yīng)掌握浮點(diǎn)數(shù)的數(shù)據(jù)表示。一、數(shù)據(jù)類型(識(shí)記)計(jì)算機(jī)中所使用的數(shù)據(jù)一般可分為三類:第一類是用戶定義的數(shù)據(jù),這類數(shù)據(jù)通常是由程序設(shè)計(jì)語(yǔ)言所確定的;第二類是系統(tǒng)數(shù)據(jù),它是程序在執(zhí)行時(shí)由計(jì)算機(jī)系統(tǒng)蘊(yùn)含生成的;第三類是指令,即被執(zhí)行的程序可看成是數(shù)據(jù)的復(fù)合。上面講的是"數(shù)據(jù)",那么"數(shù)據(jù)類型"是什么呢?它不同于數(shù)據(jù),數(shù)據(jù)類型除了指一組值的集合外,還定義了可作用于這個(gè)集合上的操作集,比如有一組整數(shù)值的集合,連同定義在這個(gè)集合上可進(jìn)行的加減乘除等算術(shù)操作,這個(gè)整數(shù)的集合就成為了整數(shù)數(shù)據(jù)類型。從系統(tǒng)結(jié)構(gòu)的觀點(diǎn)來(lái)看,數(shù)據(jù)類型可分為基本數(shù)據(jù)、結(jié)構(gòu)數(shù)據(jù)、訪問指針和抽象數(shù)據(jù)等類型。我們這里講的主要是基本數(shù)據(jù)和結(jié)構(gòu)數(shù)據(jù)。1、基本數(shù)據(jù)類型(識(shí)記)一般包括二進(jìn)制位及其位串、整數(shù)及自然數(shù)、實(shí)數(shù)(浮點(diǎn)數(shù))、字符和布爾數(shù)等。2、結(jié)構(gòu)數(shù)據(jù)類型(識(shí)記)結(jié)構(gòu)數(shù)據(jù)類型是一組由相互有關(guān)的數(shù)據(jù)元素復(fù)合而成的數(shù)據(jù)類型,這些數(shù)據(jù)元素可以是基本數(shù)據(jù)類型中的元素,也可以是結(jié)構(gòu)數(shù)據(jù)類型本身中的元素。也就是說這些數(shù)據(jù)是有結(jié)構(gòu)的,包括向量和數(shù)組、字符串、堆棧、隊(duì)列、記錄等,結(jié)構(gòu)數(shù)據(jù)類型中的元素不一定都具有相同類型。這里提到了向量,向量通常是指由標(biāo)量的一組有序集合表示的量,它類似于一維數(shù)組,但又有所不同,因?yàn)闃?biāo)量通常只是一個(gè)整數(shù)或?qū)崝?shù),而數(shù)組元素不一定只取實(shí)數(shù)。從計(jì)算機(jī)存儲(chǔ)結(jié)構(gòu)上來(lái)說,向量通常存儲(chǔ)在一段連續(xù)的存儲(chǔ)空間里。而數(shù)組元素的存儲(chǔ)可能用鏈?zhǔn)酱鎯?chǔ)方式,也就是不一定存儲(chǔ)在連續(xù)的空間里。二、數(shù)據(jù)表示1、數(shù)據(jù)表示、數(shù)據(jù)類型、\o"數(shù)據(jù)結(jié)構(gòu)"數(shù)據(jù)結(jié)構(gòu)的關(guān)系。(領(lǐng)會(huì))上面我們學(xué)了數(shù)據(jù)類型,還有一個(gè)概念是數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu)就是指上面講結(jié)構(gòu)數(shù)據(jù)類型的組織方式,它反映了結(jié)構(gòu)數(shù)據(jù)類型中各種數(shù)據(jù)元素或信息單元之間的結(jié)構(gòu)關(guān)系,比如樹這種數(shù)據(jù)結(jié)構(gòu),里面的元素就有根和葉的層次邏輯關(guān)系。數(shù)據(jù)結(jié)構(gòu)一般通過高級(jí)語(yǔ)言描述建立的,但是計(jì)算機(jī)硬件并不懂什么是根什么是葉,它只認(rèn)0和1.這就需要我們確定如何在計(jì)算機(jī)系統(tǒng)中進(jìn)行數(shù)據(jù)表示,讓硬件能認(rèn)識(shí)各種數(shù)據(jù)類型。計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)中的數(shù)據(jù)表示是指可由硬件直接辨認(rèn)的數(shù)據(jù)類型。這里講到硬件直接辨認(rèn),就是說在系統(tǒng)中能夠直接由硬件實(shí)現(xiàn)相應(yīng)數(shù)據(jù)的運(yùn)算,也就是系統(tǒng)結(jié)構(gòu)中有相應(yīng)的運(yùn)算指令和運(yùn)算部件來(lái)完成這項(xiàng)任務(wù)。那么怎么表示才能讓硬件識(shí)別某種數(shù)據(jù)類型?上面的數(shù)據(jù)類型和數(shù)據(jù)表示就涉及到軟硬件的交界面了。數(shù)據(jù)結(jié)構(gòu)所研究的是軟的方面,而數(shù)據(jù)表示考慮是是硬的方面,讓計(jì)算機(jī)能夠識(shí)別處理,并盡量節(jié)約存儲(chǔ)空間。2、二進(jìn)的定點(diǎn)、浮點(diǎn)數(shù)據(jù)表示(綜合應(yīng)用)主要講述是的IEEE標(biāo)準(zhǔn)的二進(jìn)制浮點(diǎn)數(shù)表示:IEEE754標(biāo)準(zhǔn)在表示浮點(diǎn)數(shù)時(shí),每個(gè)浮點(diǎn)數(shù)均由三部分組成:符號(hào)位S,指數(shù)部分E和尾數(shù)部分M.我們知道10進(jìn)制數(shù)的科學(xué)計(jì)數(shù)法如A=-3.5×105這里最前面有一個(gè)負(fù)號(hào),3.5是尾數(shù),兩個(gè)有效數(shù)字,后面以10為基數(shù)的指數(shù)為5.我們可以將它表示為-3.5E5同樣,二進(jìn)制數(shù)也可以用科學(xué)計(jì)數(shù)法規(guī)格化表示,比如5這個(gè)數(shù),如果用二進(jìn)制表示的話,整型為101,如果用科學(xué)計(jì)數(shù)法則可以表示為1.25×24,這里用的是十進(jìn)制,將尾數(shù)換成二進(jìn)制就是1.01(就是101向前移兩位小數(shù)點(diǎn),和十進(jìn)制完全相同),后面的指數(shù)4換成二進(jìn)制則是10,那我們將其用二進(jìn)制的科學(xué)計(jì)數(shù)法就可以寫成1.01E10.當(dāng)我們依照這種計(jì)數(shù)法給一個(gè)數(shù)字確定其精度(有效位)后,就可以用一定長(zhǎng)度的1和0的位串來(lái)表示一個(gè)實(shí)數(shù)了。浮點(diǎn)數(shù)一般采用以下四種基本格式:(1)單精度格式(32位):除去符號(hào)位1位后,E占8位,M占23位。(2)擴(kuò)展單精度格式:E>=11位,M31位。(3)雙精度格式:(64位);E=11位,M=52位。(4)擴(kuò)展雙精度格式:E>=15位,M>63位。我們最重要的是掌握單精度格式的表示法。在IEEE754標(biāo)準(zhǔn)中,約定小數(shù)點(diǎn)左邊隱含有一位,通常這位數(shù)就是1,這樣實(shí)際上使尾數(shù)的有效位數(shù)為24位,即尾數(shù)為1.M.指數(shù)的值在這里稱為階碼,為了表示指數(shù)的正負(fù),所以階碼部分采用移碼表示,移碼值為127,階碼值即從1到254變?yōu)?126至+127,在IEEE754中所有的數(shù)字位都得到了使用,明確地表示了無(wú)窮大和0,并且還引進(jìn)了"非規(guī)格化數(shù)",使得絕對(duì)值較小的數(shù)得到更準(zhǔn)確表示。請(qǐng)看下表:其中紅色字0、1表示隱含位,注意當(dāng)數(shù)字N為非規(guī)格化數(shù)或是0時(shí),隱含位是0.記住了上面的表格就能算出所有IEEE標(biāo)準(zhǔn)的單精度二進(jìn)制浮點(diǎn)數(shù)了,我們重點(diǎn)要會(huì)計(jì)算規(guī)格化數(shù)字的雙向轉(zhuǎn)換,并且理解二進(jìn)制浮點(diǎn)數(shù)表示法的思想。3、向量數(shù)據(jù)表示(簡(jiǎn)單應(yīng)用)這里又提到向量,前面已經(jīng)簡(jiǎn)單解釋過向量,這里說的是向量數(shù)據(jù)表示,我們知道向量在內(nèi)存中是連續(xù)存放在一段空間里的,換句話說,這些向量元素的地址是連續(xù)的。在標(biāo)量計(jì)算機(jī)上運(yùn)行時(shí),由于沒有專門的向量數(shù)據(jù)表示,因此在計(jì)算一個(gè)向量(相當(dāng)于一維數(shù)組的計(jì)算)時(shí),每取用一個(gè)數(shù)據(jù)元素,都要用到計(jì)算該元素的地址。而在向量機(jī)中,由于有了向量數(shù)據(jù)表示,就可以把一個(gè)向量用一個(gè)位串來(lái)表示出來(lái)。向量指令就是能夠用一條指令對(duì)向量的全部元素進(jìn)行運(yùn)算的指令。比方,有兩排抽屜:A和B:我們有一個(gè)任務(wù),就是把A中每個(gè)抽屜里的東西按照順序一一對(duì)應(yīng)地搬到B的每個(gè)抽屜里。用標(biāo)量指令就是這樣:聽著,把A1抽屜里的東東給我搬到B1里去~~(等打工的搬好后……)再把A2抽屜里的東東給我搬到B2里去!(又等跑腿的搬完后……)還有,把A3抽屜……直到把全部抽屜搬好,數(shù)到了5,算是完成一項(xiàng)任務(wù)了,其間用了5次循環(huán)命令。而用向量指令就是這么說的:聽著,把A柜子從第1格抽屜起的5個(gè)抽屜的東東給搬到B柜子里去,位置是從第1格抽屜起,依次放到5個(gè)抽屜里去。這樣,跑腿的就明白了,只要一句話就完成了任務(wù)。向量表示就是用一個(gè)位串來(lái)表示一個(gè)向量的基址、位移量和向量長(zhǎng)度,這樣三個(gè)值就能明確表示一個(gè)向量,并能確定參加計(jì)算的元素所在的位置,因此向量表示是向量指令及向量機(jī)得以實(shí)現(xiàn)的基礎(chǔ)。在向量處理中,還會(huì)遇到稀疏向量(就是含有大量0元素的向量),所以為了節(jié)省空間了處理時(shí)間,采用壓縮向量的表示方法。這里要注意的是有一個(gè)中間向量Z向量,它是一個(gè)位向量,每個(gè)元素不是1就是0,而壓縮向量就是根據(jù)Z向量中的有1的元素對(duì)應(yīng)的稀疏向量元素存儲(chǔ)起來(lái)而得到的。這個(gè)容易理解。4、自定義數(shù)據(jù)表示(領(lǐng)會(huì))為了減少高級(jí)語(yǔ)言與機(jī)器語(yǔ)言之間的差別,采用了自定義數(shù)據(jù)表示,就是由數(shù)據(jù)本身來(lái)表明數(shù)據(jù)類型,這樣可以使每種指令的種類大為減少,稱為通用化指令。自定義數(shù)據(jù)表示形式有兩種,即帶標(biāo)志符數(shù)據(jù)表示和數(shù)據(jù)描述符表示。帶標(biāo)志符數(shù)據(jù)表示就是對(duì)每一個(gè)數(shù)據(jù)都附加一個(gè)標(biāo)志符,由這個(gè)標(biāo)志符來(lái)表示這個(gè)數(shù)據(jù)的類型。這種表示法有它的優(yōu)點(diǎn)也有它的缺點(diǎn),請(qǐng)認(rèn)真領(lǐng)會(huì)一下。其優(yōu)點(diǎn)是:簡(jiǎn)化指令系統(tǒng);易于對(duì)編程查錯(cuò);自動(dòng)類型轉(zhuǎn)換;簡(jiǎn)單化編譯;方便程序調(diào)試。缺點(diǎn)是增加存儲(chǔ)空間又使指令執(zhí)行速度變慢。另一種就是數(shù)據(jù)描述符表示,主要用來(lái)描述復(fù)雜和多維結(jié)構(gòu)的數(shù)據(jù)類型,如向量、記錄等,它于帶標(biāo)志符數(shù)據(jù)表示不同之處是:(1)標(biāo)志符要與每個(gè)數(shù)據(jù)相連,兩者合存在一個(gè)存儲(chǔ)單元中;而描述符則和數(shù)據(jù)分開存放(一個(gè)連合一個(gè)分)(2)要訪問數(shù)據(jù)集中的元素時(shí),必須先訪問描述符,這就至少增加一級(jí)尋址(先訪描符增尋址)(3)描述符可看成是程序一部分,而不是數(shù)據(jù)的一部分。標(biāo)志符則可看作是數(shù)據(jù)的一部分(程序部分不是數(shù))
第三章總線、中斷和輸入輸出系統(tǒng)總結(jié)本章主要講述輸入/輸出基本概念,包括總線類型、總線控制方式,中斷系統(tǒng)的分類與分級(jí),講述通道處理機(jī),包括通道工作原理,通道類型等。本章重點(diǎn)是總線控制方式的對(duì)比分析,通道類型及分析。一、I/O子系統(tǒng)的主要特征外設(shè)與計(jì)算機(jī)的連接方式有串行連接和并行連接兩種。串行方式成本低,適合于單字節(jié)傳送的設(shè)備。輸入/輸出控制器在物理上可位于主處理機(jī)中或在輸入輸出設(shè)備中也可在這兩者之間。輸入輸出系統(tǒng)發(fā)展經(jīng)歷在三個(gè)階段:1.程序控制2.直接存儲(chǔ)器訪問(DMA)3.I/O處理機(jī)方式二、I/O部件類型輸入/輸出設(shè)備分為存儲(chǔ)設(shè)備和傳輸設(shè)備兩大類。本節(jié)的主要內(nèi)容是磁盤的介紹,重點(diǎn)領(lǐng)會(huì)廉價(jià)冗余磁盤陣列RAID.三、總線總線是連接數(shù)字系統(tǒng)的信號(hào)線集??偩€的分類:按數(shù)據(jù)傳送方向單向傳輸總線雙向傳輸總線全雙向半雙向按用途專用總線共享總線面向單機(jī)的面向多機(jī)的按數(shù)據(jù)線寬度16位`32位64位按層次芯片級(jí)板極系統(tǒng)極的總線連接若干個(gè)模塊并用于傳輸信息,當(dāng)多個(gè)模塊試圖同時(shí)控制總線操作時(shí),需要通過總線裁決器決定由哪個(gè)模塊控制總線。總線的控制方式分兩種:集中式控制和分布式控制。總線控制機(jī)構(gòu)基本集中在一起,不論是連接到總線的一個(gè)部件中,還是在單獨(dú)的硬件中,都稱為集中式控制。而總線的控制邏輯分散在連到總線的各個(gè)部件時(shí),就稱為分布式總線控制。這里只講集中式總線控制。當(dāng)多個(gè)模塊同時(shí)發(fā)出請(qǐng)求時(shí),就由硬件來(lái)進(jìn)行裁決,方式主要有串行鏈接式、定時(shí)查詢式和獨(dú)立請(qǐng)求等。對(duì)照教材三個(gè)示意圖,理解三種裁決方式的原理。1、串行鏈接式:各模塊的請(qǐng)求信號(hào)通過一條公共的請(qǐng)求線向總線控制器發(fā)出,若總線忙信號(hào)不存在,則總線控制器收到信號(hào)后對(duì)請(qǐng)求響應(yīng),通過總線可用信號(hào)線送出信號(hào),這個(gè)信號(hào)串行地通過每個(gè)部件,若收到信號(hào)的部件未發(fā)出過總線請(qǐng)求時(shí),則把信號(hào)往下一部件傳遞,若部件發(fā)送過總線請(qǐng)求,則該部件收到信號(hào)就不再往后傳遞,建立總線忙信號(hào),并去除其"總線請(qǐng)求"信號(hào),開始總線操作,完成數(shù)據(jù)傳送后,部件除去總線忙信號(hào),總線可用信號(hào)也隨之去除。此后若有總線請(qǐng)求,則再次開始總線分配過程。2.集中式定時(shí)查詢方式。這里用到了一個(gè)計(jì)數(shù)器,根據(jù)計(jì)數(shù)器的值確定發(fā)出請(qǐng)求的部件??偩€上的每個(gè)部件通過"總線請(qǐng)求"信號(hào)線發(fā)出請(qǐng)求后,若總線忙信號(hào)未建立,則控制器收到請(qǐng)求后讓計(jì)數(shù)器開始計(jì)數(shù)(也就是按一定的順序查詢各個(gè)部件),若查詢線上的計(jì)數(shù)值與發(fā)現(xiàn)請(qǐng)求的部件號(hào)一致時(shí),該部件就建立總線忙的信號(hào),計(jì)數(shù)器停止計(jì)數(shù),中止查詢。直到該部件總線操作完畢。3、獨(dú)立請(qǐng)求方式。這種方式中,各模塊都各自有一對(duì)總線請(qǐng)求信號(hào)線和總線可用信號(hào)線,總線忙信號(hào)線則是公共的,各模塊可以獨(dú)立地向控制器發(fā)出總線請(qǐng)求。這三種方式各自有優(yōu)缺點(diǎn),現(xiàn)將三種裁決方式作如下比較:控制方式
主要特點(diǎn)
優(yōu)點(diǎn)
缺點(diǎn)
串行鏈接
各模塊的請(qǐng)求信號(hào)經(jīng)過一條公共的請(qǐng)求線向總線控制器發(fā)出.各模塊根據(jù)其固定的優(yōu)先級(jí)別獲得總線使用的機(jī)會(huì).總線裁決算法簡(jiǎn)單,控制線數(shù)少,而且與模塊的數(shù)量無(wú)關(guān),可擴(kuò)充性好靈活性差,不能由軟件改變優(yōu)先級(jí).在優(yōu)先級(jí)高的部件頻繁使用總路線時(shí),優(yōu)先級(jí)低的模塊可能很久得不到響應(yīng).又由于總線可用信號(hào)串行地通過各模塊,延遲較大,總線分配的速度較低.定時(shí)查詢方式
由控制器輪流對(duì)各模塊進(jìn)行測(cè)試,看其是否有請(qǐng)求.查詢時(shí)以計(jì)數(shù)方式向各模塊發(fā)出一個(gè)計(jì)數(shù)值,根據(jù)計(jì)數(shù)值所對(duì)應(yīng)的模塊是否有請(qǐng)求信號(hào)來(lái)決定總線使用權(quán)的分配.這種方式的優(yōu)先級(jí)可以用程序控制,動(dòng)態(tài)改變,靈活性較強(qiáng);模塊的故障不會(huì)影響總線的控制;
可靠性高.控制線較多
較差的擴(kuò)展性.獨(dú)立請(qǐng)求方式
各模塊都有各自的一對(duì)總線請(qǐng)求和總線可用信號(hào)線,總線忙的信號(hào)是公共的.各模塊獨(dú)立地向控制器發(fā)出總線請(qǐng)求,總線控制器可根據(jù)某種算法對(duì)同進(jìn)送來(lái)的請(qǐng)求進(jìn)行裁決.總線分配的速度快,各模塊的優(yōu)先級(jí)的確定靈活.控制線數(shù)量多
總線裁決機(jī)構(gòu)較復(fù)雜.為實(shí)現(xiàn)上述裁決方式,總線裁決使用了各種算法:靜態(tài)優(yōu)先級(jí)算法(串行鏈接式總線用的就是這種算法)固定時(shí)間片算法(定時(shí)查詢式用的就是這種算法)、動(dòng)態(tài)優(yōu)先級(jí)算法(包括最近最少使用算法LRU和輪轉(zhuǎn)菊花鏈算法RDC)先來(lái)先服務(wù)算法(這種算法較難實(shí)現(xiàn))三、中斷系統(tǒng)計(jì)算機(jī)的中斷可分成內(nèi)部中斷、外部中斷和軟件中斷三種。分清三種中斷的引發(fā)原因。外部中斷進(jìn)一步可分為可屏蔽中斷和不或屏蔽中斷。不可屏蔽中斷是一些最緊急最重要的中斷。當(dāng)系統(tǒng)中有多個(gè)中斷源同時(shí)發(fā)現(xiàn)中斷請(qǐng)求時(shí),就要由中斷處理系統(tǒng)按中斷優(yōu)先等級(jí)次序確定先響應(yīng)的中斷。四、輸入/輸出通道通道處理機(jī)本身可看作一個(gè)簡(jiǎn)單的計(jì)算機(jī),因?yàn)樗凶约旱闹噶钕到y(tǒng)和程序。但它的指令功能較簡(jiǎn)單,只控制I/O,并且通道程序是放在主存中的,所以通道本身不能作為獨(dú)立的處理機(jī)。根據(jù)通道數(shù)據(jù)傳送期中信息傳送方式的不同,分字節(jié)多路、選擇和數(shù)組多路三類通道。1、字節(jié)多路通道:它適用于連接大量低速設(shè)備。這些設(shè)備傳送一個(gè)字符(字節(jié))的時(shí)間很短,但是在字符間的等待時(shí)間很長(zhǎng)。因此,通道"數(shù)據(jù)寬度"為單字節(jié),以字節(jié)交叉方式輪流為多臺(tái)低速設(shè)備服務(wù),使效率提高。2.數(shù)組多路通道:它適合于連接多臺(tái)像磁盤等高速設(shè)備。這些設(shè)備的傳輸速率很高,但傳送開始前的尋址輔助操作時(shí)間很長(zhǎng)。為了充分利用并盡可能重疊各臺(tái)高速設(shè)備的輔助操作時(shí)間,它采用成組交叉方式工作。其"數(shù)據(jù)寬度"為定長(zhǎng)塊,在傳送完一定長(zhǎng)度的數(shù)據(jù)后即重新選擇下一個(gè)外設(shè)進(jìn)行數(shù)據(jù)傳送,使多路傳輸并行進(jìn)行。3.選擇通道:它適合于連接優(yōu)先級(jí)高的磁盤等高速設(shè)備,讓它獨(dú)占通道,只能執(zhí)行一道通道程序。數(shù)據(jù)傳送以不定長(zhǎng)塊方式進(jìn)行,每次將N字節(jié)的數(shù)據(jù)全部傳送完畢,因此,在數(shù)據(jù)傳送期內(nèi)只選擇一次設(shè)備?,F(xiàn)將三種通道簡(jiǎn)要比較如下:通道類型
字節(jié)多路
數(shù)組多路
選擇
數(shù)據(jù)寬度單字節(jié)定長(zhǎng)塊不定長(zhǎng)塊適用范圍大量低速設(shè)備大量高速設(shè)備優(yōu)先級(jí)高的高速設(shè)備工作方式字節(jié)交叉成組交叉獨(dú)占通道共享性分時(shí)共享分時(shí)共享獨(dú)占選擇設(shè)備次數(shù)多次多次一次通道的功能:接受CPU的輸入輸出操作指令,按指令要求控制外設(shè)(接受指令)從主存讀取通道程序,并執(zhí)行(即向設(shè)備控制器發(fā)送各種指令)(執(zhí)行程序)組織和控制數(shù)據(jù)在內(nèi)存與外設(shè)之間的傳送操作(傳送數(shù)據(jù))讀取外設(shè)的狀態(tài)信息,形成整個(gè)通道的狀態(tài)信息,提供給CPU或保存在主存中。(通道狀態(tài))向CPU發(fā)出輸入輸出操作中斷請(qǐng)求。(中斷請(qǐng)求)對(duì)于采用字節(jié)多路通道,通道的極限流量應(yīng)大于該通道所接的外設(shè)字節(jié)傳送速率之和。對(duì)于采用其他兩種方式的通道,通道的極限流量應(yīng)大于該通道所接外設(shè)中字節(jié)傳送速率最在的設(shè)備。五、I/O處理機(jī)I/O處理機(jī)本身就是一個(gè)功能完整的處理機(jī),它基本上獨(dú)立于主機(jī)工作,可以與主機(jī)共享主存儲(chǔ)器。
六、I/O子系統(tǒng)的性能衡量標(biāo)準(zhǔn)衡量輸入輸出子系統(tǒng)性能的標(biāo)準(zhǔn)包括計(jì)算機(jī)上能連接什么樣的I/O設(shè)備?能連接多少I/O設(shè)備?而衡量輸入輸入設(shè)備特性的指標(biāo)還有訪問時(shí)間、數(shù)據(jù)傳送時(shí)間和出錯(cuò)率。第四章存儲(chǔ)系統(tǒng)本章屬重點(diǎn)章。指令系統(tǒng)是計(jì)算機(jī)外特性的重要內(nèi)容,本章主要介紹了兩種不同風(fēng)格的指令系統(tǒng):RISC和CISC.在學(xué)習(xí)這兩種指令系統(tǒng)之前,我們先了解一下什么是指令系統(tǒng)。一、指令系統(tǒng)的設(shè)計(jì)指令系統(tǒng)是指機(jī)器所具有的全部指令的集合。它反映了計(jì)算機(jī)所擁有的基本功能。它是機(jī)器語(yǔ)言程序員所看到的機(jī)器的主要屬性之一。通常我們說的加法指令、傳輸數(shù)據(jù)指令等等就是計(jì)算機(jī)的指令,這些指令就是告訴計(jì)算機(jī)從事某一特殊運(yùn)算的代碼,一種計(jì)算機(jī)系統(tǒng)確定的這些指令的集合我們就說它是這種機(jī)器的指令系統(tǒng)。那么指令系統(tǒng)的設(shè)計(jì)要做什么?就是要確定它的指令格式(就是指令有多少位長(zhǎng),哪幾位表示地址,哪幾位表示操作等)、類型(如堆棧型、寄存器型等分類)、操作(比如運(yùn)算、數(shù)據(jù)傳送啊什么的都是指令中要確定的操作)以及操作數(shù)的訪問方式(一個(gè)指令要訪問數(shù)據(jù),是按其地址訪問還是按內(nèi)容訪問等也要由指令設(shè)計(jì)來(lái)解決)。我們知道,由多條指令構(gòu)成的程序是要以二進(jìn)制的形式放到存儲(chǔ)器中的,早期的存儲(chǔ)器很昂貴,因此導(dǎo)致指令設(shè)計(jì)者盡量增強(qiáng)一條指令的復(fù)雜性以減少程序的長(zhǎng)度。還用微程序(就是保存在專用的存儲(chǔ)器中的一小段程序,運(yùn)行時(shí)只要用一條指令來(lái)啟動(dòng)它就可用來(lái)代替好多條指令)來(lái)改進(jìn)代碼密度。這樣的設(shè)計(jì)傾向形成了一種傳統(tǒng)的指令設(shè)計(jì)風(fēng)格,即認(rèn)為計(jì)算機(jī)系統(tǒng)性能的提高主要依靠增加指令復(fù)雜性及其功能來(lái)獲取。這就是稱為復(fù)雜指令系統(tǒng)(CISC)的設(shè)計(jì)風(fēng)格。我們現(xiàn)在用的PC機(jī)多是用這種設(shè)計(jì)風(fēng)格的指令系統(tǒng),比如MMX多媒體擴(kuò)展指令等,都是增加進(jìn)去的指令,是復(fù)雜指令。后來(lái),通過測(cè)試,這種不斷增加指令復(fù)雜度的辦法并不能使系統(tǒng)性能得到很大提高,反倒使指令系統(tǒng)實(shí)現(xiàn)更困難和費(fèi)時(shí)。所以在70年代中期又出現(xiàn)了另一種稱為"簡(jiǎn)化指令系統(tǒng)(RISC)"的設(shè)計(jì)風(fēng)格。它的基本思想是,簡(jiǎn)單的指令能執(zhí)行得更快以及指令系統(tǒng)只需由使且頻率高的指令組成。(插話)指令系統(tǒng)在設(shè)計(jì)時(shí),應(yīng)特別注意的是如何能使編譯系統(tǒng)高效、簡(jiǎn)易地將源程序翻譯成目標(biāo)代碼。這就是指令系統(tǒng)的設(shè)計(jì)原則。為了達(dá)到這個(gè)目的,在設(shè)計(jì)時(shí)應(yīng)注意:正交性、規(guī)整性、可擴(kuò)充性、對(duì)稱性。(請(qǐng)對(duì)照課本加以理解)二、指令系統(tǒng)集結(jié)構(gòu)的分類前面我們知道了指令系統(tǒng)的設(shè)計(jì)要確定它的指令格式、類型、操作及對(duì)操作數(shù)的訪問方式?,F(xiàn)在就提到了分類:一般地,指令系統(tǒng)集結(jié)構(gòu)分類主要是依據(jù)在CPU中以何種存儲(chǔ)方式來(lái)存放操作數(shù)。我們知到,CPU在進(jìn)行數(shù)據(jù)計(jì)算時(shí),總是要先把數(shù)據(jù)取到某種寄存器中才能開始。而這寄存器的類型有堆棧型、累加器型和通用寄存器型三種。相應(yīng)地,使用哪種存儲(chǔ)方式來(lái)存放操作數(shù)的,就把指令系統(tǒng)集結(jié)構(gòu)分成堆棧型、累加器型和通用寄存器型三類。它們是有區(qū)別的,堆棧型結(jié)構(gòu)中,操作數(shù)總是被默認(rèn)存放在棧頂,累加器結(jié)構(gòu)中,操作數(shù)總是被默認(rèn)存放在累加器中;而在通用寄存器中,所有的操作數(shù)都必須被說明是存放在哪一個(gè)寄存器或存儲(chǔ)器的哪個(gè)單元中。所有的計(jì)算機(jī)都可按上述分類標(biāo)準(zhǔn)進(jìn)行歸類。但有的機(jī)器可能是某些類型的混合,如intel的8086處理器便是通用寄存器結(jié)構(gòu)和累加器結(jié)構(gòu)的混合。三種類型的比較:其中通用寄存器指令系統(tǒng)又可進(jìn)一步分為:寄存器-寄存器、寄存器-存儲(chǔ)器以及存儲(chǔ)器-存儲(chǔ)器三類。在RISC機(jī)中,只可能存在寄存器-寄存器類型。(寄存器是在計(jì)算機(jī)內(nèi)部的存儲(chǔ)小容量數(shù)據(jù)的裝置,尤指數(shù)據(jù)可以同時(shí)存儲(chǔ)和運(yùn)算的裝置)請(qǐng)注意它們的優(yōu)缺點(diǎn),第一種是具有最好的指令密度,但是訪存速度慢。第三種方式則簡(jiǎn)單,但程序代碼較長(zhǎng)。第二種取中。三、操作數(shù)訪問(尋址)方式指令中對(duì)操作數(shù)的訪問方式,按訪問手段可分為兩大類:常用的是按地址訪問,另一類是按內(nèi)容訪問方式。計(jì)算機(jī)中的兩個(gè)地址概念一個(gè)是邏輯地址、一個(gè)是物理地址,前者為虛,后者是實(shí),一般所討論的尋址方式是指邏輯地址的尋址方式。地址的編址,通常有三種不同方式:(1)按各種部件分類編址;(2)統(tǒng)一編址;(3)隱式編址對(duì)存儲(chǔ)器這一存儲(chǔ)部位編址(領(lǐng)會(huì)),絕大多數(shù)計(jì)算機(jī)將字節(jié)作為最小訪問單位(注意,1字節(jié)=8位。1字=4字節(jié)。)這里我們要弄清什么是"大端排序"和"小端排序".比如要訪問一個(gè)字(32位4字節(jié))的時(shí)候,要求一次寫入4個(gè)字節(jié)的數(shù)據(jù),而存儲(chǔ)器最小訪問單位是1個(gè)字節(jié),那么就需要把這"字"分成4段存入4個(gè)單元中。如果確定把這個(gè)"字"的最低有效位的字節(jié)(最右邊的一段)是存儲(chǔ)器地址末位為"0"中的內(nèi)容,最高有效位的字節(jié)(最左邊的一段)是地址末位為3的內(nèi)容,則我們稱之為小端排序(即訪問字的最低有效位(小端)地址是按0、4……等順序排列的);反之若將字的最高有效位的字節(jié)放在"0"、"4"等地址中,則稱之為大端排序。訪問方式可按面向?qū)ο蠛蛯ぶ贩绞絹?lái)區(qū)分:前者可分為面向寄存器、面向存儲(chǔ)器、面向堆棧的訪問方式。后者可分為如下尋址方式:(了解一下即可)立即數(shù)指令中所帶的操作數(shù)內(nèi)容即是一個(gè)可用的數(shù)絕對(duì)方式指令中給出一個(gè)地址,訪問該地址得到操作數(shù)寄存器方式訪問某個(gè)寄存器中給出的地址,由地址訪問到操作數(shù)寄存器間接訪問某個(gè)寄存器,由這個(gè)寄存器中的內(nèi)容找到另一寄存器,由給出的地址取得操作數(shù)存儲(chǔ)器間接訪問存儲(chǔ)器中某單元,得到另一地址,再訪問到該地址取得操作數(shù)自增/自減將某寄存器中的數(shù)加上或減去操作操作數(shù)的字節(jié)數(shù),找到地址變址方式由寄存器中的數(shù)加上變址量得到地址…………在CISC計(jì)算機(jī)中,使用頻率最高的是帶偏移的寄存器尋址方式,其次是直接量尋址,再就是寄存器間接尋址。在RISC機(jī)中,只選擇那些使用頻率高的尋址方式,如相對(duì)于寄存器尋址或PC的偏移尋址、立即數(shù)尋址以及基址加變址尋址等。按內(nèi)容訪問方式時(shí),并不提供要訪問的存儲(chǔ)單元地址,而是給出要訪問的內(nèi)容(很像是查詢)。因此存儲(chǔ)器的結(jié)構(gòu)形式要作相應(yīng)變化。為了加快訪問速度,必須采用并行方式,相應(yīng)的存儲(chǔ)器就稱為聯(lián)想存儲(chǔ)器。請(qǐng)對(duì)照課本第49頁(yè),對(duì)聯(lián)想存儲(chǔ)器的基本結(jié)構(gòu)和其訪問方法進(jìn)行理解和領(lǐng)會(huì)。實(shí)用的聯(lián)想存儲(chǔ)器,一般除有按內(nèi)容訪問能力外,還有按地址訪問能力。四、指令格式及其優(yōu)化指令一般由兩部分組成:一部分是操作碼,另一部分是操作地址碼。當(dāng)操作數(shù)地址為隱式時(shí)(如堆棧的操作,默認(rèn)為棧頂),后一部分則不是必須的。根據(jù)指令地址碼部分中顯式指明的地址個(gè)數(shù),則可形成零地址、單地址、二地址、三地址及四地址指令。我們說的確定指令格式主要就是選擇指令字中的操作碼長(zhǎng)度和地址數(shù)。指令字的長(zhǎng)度有定長(zhǎng)和變長(zhǎng)兩種。我們著重要討論的問題是指令格式的優(yōu)化問題,優(yōu)化就是以較少的格式,以盡可能短的碼長(zhǎng)來(lái)實(shí)現(xiàn)各種指令編碼。指令字包括操作碼和地址碼,所以對(duì)這兩部分都采取優(yōu)化措施。1、操作碼的優(yōu)化。這要用到霍夫曼壓縮的概念?;舴蚵鼔嚎s法是一種頻率相關(guān)的編碼方法,即出現(xiàn)頻率高的字符編碼短,頻率低的字符編碼長(zhǎng),這樣可以縮短平均碼長(zhǎng)。我們要掌握的是用霍夫曼樹實(shí)現(xiàn)霍夫曼編碼。其方法很簡(jiǎn)單:根據(jù)所給的各種指令使用頻率,把它們從小到大依次排好作為葉結(jié)點(diǎn)(相同的頻率可任取一個(gè)排在前),然后把最小的兩個(gè)結(jié)點(diǎn)值(頻率)相加,形成一個(gè)新結(jié)點(diǎn),以這個(gè)結(jié)點(diǎn)的值與其他的葉結(jié)點(diǎn)值比較大小,仍舊取最小的兩個(gè)結(jié)點(diǎn)值合并產(chǎn)生新結(jié)點(diǎn),直到最終合并為一個(gè)根(通常這個(gè)值是1或100)。簡(jiǎn)單地記為:從小到大排序,最小兩個(gè)合并,重復(fù)上述過程,只剩一個(gè)結(jié)束。編碼時(shí),從根結(jié)點(diǎn)開始向下,凡左邊分支都編為"1",右邊分支都編為"0"(也可取反),則從根結(jié)點(diǎn)到葉結(jié)點(diǎn)的一條路徑上的編碼組合就是該指令的霍夫曼編碼。(請(qǐng)仔細(xì)觀察圖4.12中的霍夫曼樹)注意,霍夫曼樹不是唯一的(因?yàn)橄嗤念l率可以任取一個(gè)在前,且編碼時(shí)又可任取左1或左0),但所得的平均碼長(zhǎng)應(yīng)是一樣的。由于霍夫曼編碼得到的碼長(zhǎng)很不規(guī)整,所以有時(shí)候要采用霍夫曼擴(kuò)展編碼,就是在霍夫曼碼的基礎(chǔ)上對(duì)碼長(zhǎng)加以限制(取幾個(gè)確定的長(zhǎng)度如2位、4位等),對(duì)編碼作適當(dāng)改變。平均碼長(zhǎng)應(yīng)該容易計(jì)算吧,這也是要用到的。2、地址碼的優(yōu)化。上面我們學(xué)了操作碼的優(yōu)化,但是一條指令碼還包括地址碼。兩者合理安排才能使指令格式得到優(yōu)化。示意如下:由于操作碼優(yōu)化后是變長(zhǎng)的編碼,如果整條指令是定長(zhǎng)的,那么使地址碼的寬度應(yīng)隨不同指令變化,以配合操作碼形成定長(zhǎng)指令;也可以通過改變指令字中的地址數(shù)和地址碼的長(zhǎng)度,以使單地址及多址都可以在一條指令中使用;如果操作碼和地址碼之外還有空余的碼位,則設(shè)法用來(lái)存放立即操作數(shù)或常數(shù)。當(dāng)今的RISC機(jī)指令系統(tǒng)中,全都是用定字長(zhǎng)指令格式。五、兩種不同的指令系統(tǒng)設(shè)計(jì)風(fēng)格CISC和RISC這兩種風(fēng)格應(yīng)作比較深入的領(lǐng)會(huì),并要識(shí)記一些內(nèi)容。CISC(復(fù)雜指令集計(jì)算機(jī))以VAX-11/780為代表,70年代后的各種微機(jī)如我們用的intel80x86均是這種風(fēng)格的計(jì)算機(jī)。CISC設(shè)計(jì)風(fēng)格的主要特點(diǎn)是:(1)指令系統(tǒng)復(fù)雜;費(fèi)時(shí)(2)絕大多數(shù)指令需要多個(gè)機(jī)器周期方可執(zhí)行完畢;自由主義(3)各種指令都可訪問存儲(chǔ)器;地方主義(4)采用微程序控制;小金庫(kù)(5)有專用寄存器;低效率(6)難以用優(yōu)化編譯器生成高效的目標(biāo)代碼程序。復(fù)雜這哪里是特點(diǎn),分明是一大堆缺點(diǎn)嘛,RISC機(jī)的特點(diǎn)就是把它們"取反",凡是CISC是這樣的,它就不是這樣的:(1)簡(jiǎn)化指令系統(tǒng);省時(shí)(2)除了LOAD/STORE指令外,所有指令都在一個(gè)時(shí)鐘周期內(nèi)執(zhí)行完畢;集體主義(3)除了LOAD/STORE指令外,其余指令只與寄存器打交道;搞活流通(4)絕大部分采用硬聯(lián)線控制,不用或少用微程序?qū)崿F(xiàn);查封小金庫(kù)(5)使用較多的通用寄存器,一般至少有32個(gè),絕沒有專用寄存器;高效率(6)采用優(yōu)化編譯技術(shù),生成高效的目標(biāo)代碼程序。簡(jiǎn)化RISC與CISC技術(shù)兩者的主要區(qū)別在于設(shè)計(jì)思想上的差別,RISC的設(shè)計(jì)思想是;將那些不是最頻繁使用的功能(指令)由軟件來(lái)加以實(shí)現(xiàn),這樣就可以優(yōu)化硬件,并可使其執(zhí)行得更快。在第一章中我們學(xué)過計(jì)算機(jī)系統(tǒng)的設(shè)計(jì)的準(zhǔn)則,第一個(gè)準(zhǔn)則就是:只加速使用頻率高的部件。RISC的設(shè)計(jì)思想與此完全吻合。下面我們學(xué)習(xí)RISC技術(shù)中所采用的特殊方法:1、采用較大量的寄存器,采用窗口重疊寄存器技術(shù)。窗口重疊技術(shù):在RISC結(jié)構(gòu)中,為了減少過程調(diào)用中保存現(xiàn)場(chǎng)和建立新現(xiàn)場(chǎng),以及返回時(shí)恢復(fù)現(xiàn)場(chǎng)等輔助操作,通常將所有寄存器分成若干個(gè)組,稱為寄存器窗口。每組中有若干個(gè)寄存器,每當(dāng)有過程調(diào)用時(shí),就分配一個(gè)未被使用的寄存器窗口,這樣就可減少保存和恢復(fù)現(xiàn)場(chǎng)的開銷。此外在每個(gè)寄存器窗口中,又分成大小固定的高區(qū)、本地和低區(qū)三個(gè)區(qū)段。其中本地區(qū)用來(lái)存放局部變量,高區(qū)在被調(diào)用時(shí)用來(lái)保存調(diào)用過程送來(lái)的參數(shù),而在返回主調(diào)用過程時(shí),存放返回結(jié)果。而低區(qū)在調(diào)用時(shí)存放欲送往被調(diào)用過程的參數(shù),而在被調(diào)用過程返回時(shí)用來(lái)存放返回結(jié)果。在使用時(shí),每一對(duì)調(diào)用和被調(diào)用過程的寄存器窗口各自的低區(qū)和高區(qū)相互重疊。一旦發(fā)生過程調(diào)用或返回,在控制由一個(gè)窗口轉(zhuǎn)換到另一窗口時(shí),這些參數(shù)就通過兩個(gè)窗口間的公共寄存器區(qū)自動(dòng)的被傳送而不需要再用額外的傳送時(shí)間。(可參照\(chéng)o"教材"教材進(jìn)行理解)。2、采用優(yōu)化延遲轉(zhuǎn)移技術(shù)優(yōu)化延遲轉(zhuǎn)移技術(shù):即是使轉(zhuǎn)移指令在準(zhǔn)備將控制轉(zhuǎn)向目標(biāo)指令的同時(shí),執(zhí)行緊隨在轉(zhuǎn)移指令之后的那條指令,也就是是在將轉(zhuǎn)移指令后延遲槽內(nèi)的指令執(zhí)行完畢后,才發(fā)生真正的轉(zhuǎn)移(不論轉(zhuǎn)移是否成功),這種優(yōu)化技術(shù)可在保證程序正確執(zhí)行的同時(shí)又可避免延遲轉(zhuǎn)移中損失的一個(gè)機(jī)器周期時(shí)間。3、采用比較轉(zhuǎn)移指令比較-轉(zhuǎn)移指令:在RISC機(jī)中,把比較和轉(zhuǎn)移(在CISC機(jī)中需用兩條指令完成的功能)合并成一條指令。該指令將直接對(duì)兩個(gè)對(duì)象(寄存器-寄存器或存儲(chǔ)器-立即數(shù))進(jìn)行相等或不等比較,然后根據(jù)比較結(jié)果判別是否進(jìn)行轉(zhuǎn)移。這樣就可省去一條指令,并不受條件碼的約束。4、采用優(yōu)化編譯技術(shù)優(yōu)化編譯技術(shù):在編譯時(shí)就可發(fā)現(xiàn)可能出現(xiàn)的阻塞情況,由編譯器通過重排指令執(zhí)行序列來(lái)消除可能出現(xiàn)的阻塞情況,當(dāng)無(wú)法消除時(shí)就填入相應(yīng)的空操作,因此不需要硬件的互鎖流水支持。以上的特殊技術(shù)并中是每一種RISC機(jī)都采用的,在RISC機(jī)中有兩個(gè)比較典型的代表,一個(gè)是加州大學(xué)伯克萊分校的RISC-I、II機(jī)的思路,側(cè)重系統(tǒng)結(jié)構(gòu)的支持,采用由大量寄存器組成的寄存器堆及窗口重疊技術(shù)。另一個(gè)是遵循斯坦福大學(xué)的MIPS機(jī)器思路,側(cè)重采用編譯的支持,采用優(yōu)化編譯技術(shù),。CISC和RISC兩種設(shè)計(jì)風(fēng)格的比較,其實(shí)就是說RISC優(yōu)點(diǎn),簡(jiǎn)單地說就是快、省、可靠、易實(shí)現(xiàn)、好優(yōu)化。關(guān)于RISC的兩種代表機(jī)型的指令系統(tǒng)實(shí)例,要對(duì)照它們的指令系統(tǒng)中指令數(shù)、指令格式、尋址方式及采用的特殊技術(shù)來(lái)進(jìn)行比較。
式。四、增強(qiáng)向量處理性能的方法這一節(jié)是比較重要的,主要講了四種增強(qiáng)向量處理性能的方法。其中兩種方法已在所有向量機(jī)中采用:一是采用多功能部件,并行工作;二是加快一串相關(guān)向量指令的操作速度,即鏈接技術(shù)。應(yīng)該掌握。1、多功能部件的并行操作在向量機(jī)中,為了加快向量操作,采用多個(gè)獨(dú)立的功能部件,并使它們并行工作。這些部件都是獨(dú)立的,只要符合一定條件,它們就可以并行工作:(1)不存在向量寄存器使用沖突;(2)不存在功能部件使用沖突。向量寄存器使用沖突就是指多條并行工作的向量指令中的源向量或結(jié)果向量使用相同的向量寄存器。功能部件沖突是指多條向量指令都要使用同一個(gè)功能部件,如兩條向量指令都是加法運(yùn)算時(shí),浮點(diǎn)加的功能部件就無(wú)法同時(shí)滿足,而發(fā)生沖突。2、鏈接技術(shù)利用向量指令間存在的先寫后讀的數(shù)據(jù)相關(guān)性來(lái)加快向量指令序列執(zhí)行速度的技術(shù)稱為鏈接技術(shù)。它就是標(biāo)量流水中的定向傳送方法在向量寄存器中的應(yīng)用。使用這個(gè)技術(shù)的條件就是兩條指令間存在先寫后讀的數(shù)據(jù)相關(guān)性。也就是前一條指令的結(jié)果正好為后一條指令的數(shù)據(jù)源。這時(shí),可以在上一條指令將結(jié)果傳送到結(jié)果寄存器的同時(shí)就直接傳給下一指令的功能部件作為操作數(shù)進(jìn)行操作,這就節(jié)省了等待時(shí)間。要實(shí)現(xiàn)鏈接除了上面的條件外,還有時(shí)間上的要求,就是當(dāng)前一指令的第一個(gè)結(jié)果分量送入結(jié)果寄存器的那一個(gè)時(shí)鐘周期方可鏈接,若錯(cuò)過這一拍,就無(wú)法鏈接。還有,如果一條向量指令的源操作數(shù)是前面兩條并行操作指令的結(jié)果數(shù)時(shí),只有這兩條指令產(chǎn)生結(jié)果的時(shí)間必須相等才可進(jìn)行鏈接。也就是說,鏈接操作得絲絲入扣,一拍不差,早也不行,晚也不行,多也不行,少也不行。我們應(yīng)該能夠判斷一串指令是否可以并行或鏈接,并能計(jì)算其執(zhí)行時(shí)間。3.條件執(zhí)行語(yǔ)句和稀疏矩陣的加速處理方法前者采用一個(gè)屏蔽向量來(lái)控制某些向量元素參加運(yùn)算。后者則通過指標(biāo)向量來(lái)指明非零元素并通過指標(biāo)向量的散射-聚合操作來(lái)支持稀疏矩陣的運(yùn)算。4.向量歸約操作的加速方法,這種方法就是將標(biāo)量循環(huán)的一部件加以向量化,并采用遞歸折疊的方法來(lái)加快向量歸約操作。五、向量處理性能的評(píng)估參數(shù)和方法在向量機(jī)中,執(zhí)行一個(gè)向量長(zhǎng)度為n的指令所需的時(shí)間為:Tvp=(s+l+n-1)Tc其中s為建立流水線所需時(shí)間周期數(shù),l為完成每對(duì)向量元素操作所需的子操作數(shù),即流水功能部件中的級(jí)數(shù)。每對(duì)向量元素的平均執(zhí)行時(shí)間為:~tvp=Tvp/n在評(píng)估向量流水機(jī)性能時(shí),除了執(zhí)行時(shí)間外,向量長(zhǎng)度是一個(gè)很重要的評(píng)估參數(shù)。常用的評(píng)價(jià)參數(shù)有三個(gè):R∞:向量長(zhǎng)度為無(wú)窮大時(shí)向量流水的漸近性能,常在評(píng)價(jià)峰值性能時(shí)使用,單位用MFLOPS.n1/2:為達(dá)到一半R∞值時(shí)的需的向量長(zhǎng)度。nv:它表示向量流水方式工作速度優(yōu)于標(biāo)量串行方式工作時(shí)所需的向量長(zhǎng)度臨界值。六、向量化編譯技術(shù)采用向量化編譯程序?qū)⒊绦蛑写嬖诘目刹⑿械难h(huán)體語(yǔ)句用相應(yīng)向量指令來(lái)表示。向量化編譯器也有優(yōu)化問題,通常采用:通用優(yōu)化技術(shù)、向量寄存器優(yōu)化技術(shù)、流水線并行化技術(shù)以及標(biāo)量循環(huán)語(yǔ)句向量化技術(shù)。
第六章陣列處理機(jī)本章的內(nèi)容不多,我們已經(jīng)學(xué)過標(biāo)量流水處理,則對(duì)流水處理有了一定的了解,向量流水就是在標(biāo)量流水機(jī)基礎(chǔ)上發(fā)展起來(lái)的。在弄清向量和標(biāo)量的區(qū)別之后,理解向量流水與標(biāo)量流水的處理的區(qū)別就不難了。一、向量流水機(jī)的基本系統(tǒng)結(jié)構(gòu)1.向量流水的主要特點(diǎn):我們知道,一個(gè)向量中各個(gè)元素是互不相關(guān)的,對(duì)當(dāng)前每個(gè)向量的操作結(jié)果不影響到其他向量元素。比如有一個(gè)數(shù)組,我們要使數(shù)組中的每一個(gè)元素Ai都乘以一個(gè)數(shù)b,那么給A1進(jìn)行相乘的結(jié)果不影響A2的結(jié)果,各自獨(dú)立,這就允許向量流水流水線有較深的深度。一條向量指令相當(dāng)于一個(gè)標(biāo)量循環(huán),所以可以減少指令,從而可以降低對(duì)指令訪問帶寬的要求。并且消除了由循環(huán)引起的控制相關(guān)。若向量指令所要訪問的向量元素均相鄰,則可以在交叉存儲(chǔ)體中高速地依次訪問它們。這使得訪存時(shí)間縮短。向量操作要比一串標(biāo)量指令操作更快。2.向量機(jī)的系統(tǒng)結(jié)構(gòu)按向量操作對(duì)象及結(jié)果主要存放在寄存器中還是存放在存儲(chǔ)器中,可分為存儲(chǔ)器-存儲(chǔ)器工作方式向量機(jī)和寄存器-寄存器工作方式向量機(jī)兩大類?,F(xiàn)在的向量機(jī)大多采用寄存器-寄存器工作方式,如中國(guó)的YH向量機(jī)等。向量機(jī)的基本系統(tǒng)結(jié)構(gòu)圖,要理解。它主要由一個(gè)標(biāo)量流水部件和一個(gè)向量流水部件組成,包含了向量功能部件、向量存取部件、向量寄存器或向量緩沖部件、村量寄存器、村量處理部件及向量控制器等部件。也就是說,向量機(jī)"兼容"標(biāo)量處理功能。
3.向量啟動(dòng)時(shí)間和啟動(dòng)率(簡(jiǎn)單應(yīng)用)前一章我們學(xué)的流水是指多條指令進(jìn)行流水操作。而向量中一條向量指令就相當(dāng)于一個(gè)標(biāo)量循環(huán)?;镜南蛄苛魉僮骶褪窃趯?duì)一條指令進(jìn)行流水操作,也就是用流水的方法對(duì)向量元素進(jìn)行操作。當(dāng)一條向量指令開始執(zhí)行時(shí),就開啟了一條向量流水線,從開始啟動(dòng)到流水運(yùn)行結(jié)束的時(shí)間就是向量指令的執(zhí)行時(shí)間。Tvp=Tat+n×Ir其中的Tat是流水線的啟動(dòng)時(shí)間,Ir為啟動(dòng)率。二、向量操作長(zhǎng)度控制和向量訪問步長(zhǎng)向量操作有兩種工作方式,一是存儲(chǔ)器-存儲(chǔ)器工作方式,另一種是寄存器-寄存器工作方式。而后一種機(jī)型的向量機(jī)中,因?yàn)榧拇嫫鞯拈L(zhǎng)度有一定限制。比如這個(gè)向量寄存器可以存放64個(gè)元素,但在計(jì)算時(shí),一個(gè)向量的長(zhǎng)度往往不會(huì)恰好是64個(gè)元素。所以在執(zhí)行過程中,如果向量的長(zhǎng)度大于寄存器的長(zhǎng)度時(shí),要把待計(jì)算的向量分成幾段來(lái)計(jì)算,每次調(diào)入一段,放到寄存器中進(jìn)行流水操作,完了以后再取一段。這就是分段技術(shù)。另外,當(dāng)向量機(jī)支持向量的跨步訪問,也就是可以將存儲(chǔ)器中間隔存放的元素取出來(lái)放到寄存器中進(jìn)行流水操作,則這種向量機(jī)為支持完全的一維數(shù)據(jù)顯式訪問。因?yàn)樗梢詫⒉辉谙噜徫恢蒙系脑剡B續(xù)地存放到寄存器中,從而可以以行、列、甚至對(duì)角線訪問向量元素。而存儲(chǔ)器-存儲(chǔ)器工作方式只能連續(xù)訪問相鄰的向量元素。通常向量機(jī)大都采用低地址位的多體交叉存儲(chǔ)器。對(duì)于多體交叉存儲(chǔ)器的理解將在后面的章節(jié)中給出。這里簡(jiǎn)單地說,低地址位多體交就是可使相鄰地址的元素可以在相鄰的存儲(chǔ)器體中讀取。三、向量存儲(chǔ)方法向量機(jī)對(duì)向量的各種運(yùn)算可以采用不同的加式方式,一種是橫向加工,一種是縱向(垂直)加工,還有就是縱橫向加工(分組加工),這是分段技術(shù)在向量加工方式上的實(shí)現(xiàn)。如CRAY-1以及小巨型機(jī)基本都采用分組加工的方式。四、增強(qiáng)向量處理性能的方法這一節(jié)是比較重要的,主要講了四種增強(qiáng)向量處理性能的方法。其中兩種方法已在所有向量機(jī)中采用:一是采用多功能部件,并行工作;二是加快一串相關(guān)向量指令的操作速度,即鏈接技術(shù)。應(yīng)該掌握。1、多功能部件的并行操作在向量機(jī)中,為了加快向量操作,采用多個(gè)獨(dú)立的功能部件,并使它們并行工作。這些部件都是獨(dú)立的,只要符合一定條件,它們就可以并行工作:(1)不存在向量寄存器使用沖突;(2)不存在功能部件使用沖突。向量寄存器使用沖突就是指多條并行工作的向量指令中的源向量或結(jié)果向量使用相同的向量寄存器。功能部件沖突是指多條向量指令都要使用同一個(gè)功能部件,如兩條向量指令都是加法運(yùn)算時(shí),浮點(diǎn)加的功能部件就無(wú)法同時(shí)滿足,而發(fā)生沖突。2、鏈接技術(shù)利用向量指令間存在的先寫后讀的數(shù)據(jù)相關(guān)性來(lái)加快向量指令序列執(zhí)行速度的技術(shù)稱為鏈接技術(shù)。它就是標(biāo)量流水中的定向傳送方法在向量寄存器中的應(yīng)用。使用這個(gè)技術(shù)的條件就是兩條指令間存在先寫后讀的數(shù)據(jù)相關(guān)性。也就是前一條指令的結(jié)果正好為后一條指令的數(shù)據(jù)源。這時(shí),可以在上一條指令將結(jié)果傳送到結(jié)果寄存器的同時(shí)就直接傳給下一指令的功能部件作為操作數(shù)進(jìn)行操作,這就節(jié)省了等待時(shí)間。要實(shí)現(xiàn)鏈接除了上面的條件外,還有時(shí)間上的要求,就是當(dāng)前一指令的第一個(gè)結(jié)果分量送入結(jié)果寄存器的那一個(gè)時(shí)鐘周期方可鏈接,若錯(cuò)過這一拍,就無(wú)法鏈接。還有,如果一條向量指令的源操作數(shù)是前面兩條并行操作指令的結(jié)果數(shù)時(shí),只有這兩條指令產(chǎn)生結(jié)果的時(shí)間必須相等才可進(jìn)行鏈接。也就是說,鏈接操作得絲絲入扣,一拍不差,早也不行,晚也不行,多也不行,少也不行。我們應(yīng)該能夠判斷一串指令是否可以并行或鏈接,并能計(jì)算其執(zhí)行時(shí)間。3.條件執(zhí)行語(yǔ)句和稀疏矩陣的加速處理方法前者采用一個(gè)屏蔽向量來(lái)控制某些向量元素參加運(yùn)算。后者則通過指標(biāo)向量來(lái)指明非零元素并通過指標(biāo)向量的散射-聚合操作來(lái)支持稀疏矩陣的運(yùn)算。4.向量歸約操作的加速方法,這種方法就是將標(biāo)量循環(huán)的一部件加以向量化,并采用遞歸折疊的方法來(lái)加快向量歸約操作。五、向量處理性能的評(píng)估參數(shù)和方法在向量機(jī)中,執(zhí)行一個(gè)向量長(zhǎng)度為n的指令所需的時(shí)間為:Tvp=(s+l+n-1)Tc其中s為建立流水線所需時(shí)間周期數(shù),l為完成每對(duì)向量元素操作所需的子操作數(shù),即流水功能部件中的級(jí)數(shù)。每對(duì)向量元素的平均執(zhí)行時(shí)間為:~tvp=Tvp/n在評(píng)估向量流水機(jī)性能時(shí),除了執(zhí)行時(shí)間外,向量長(zhǎng)度是一個(gè)很重要的評(píng)估參數(shù)。常用的評(píng)價(jià)參數(shù)有三個(gè):R∞:向量長(zhǎng)度為無(wú)窮大時(shí)向量流水的漸近性能,常在評(píng)價(jià)峰值性能時(shí)使用,單位用MFLOPS.n1/2:為達(dá)到一半R∞值時(shí)的需的向量長(zhǎng)度。nv:它表示向量流水方式工作速度優(yōu)于標(biāo)量串行方式工作時(shí)所需的向量長(zhǎng)度臨界值。六、向量化編譯技術(shù)采用向量化編譯程序?qū)⒊绦蛑写嬖诘目刹⑿械难h(huán)體語(yǔ)句用相應(yīng)向量指令來(lái)表示。向量化編譯器也有優(yōu)化問題,通常采用:通用優(yōu)化技術(shù)、向量寄存器優(yōu)化技術(shù)、流水線并行化技術(shù)以及標(biāo)量循環(huán)語(yǔ)句向量化技術(shù)。
第七章其他計(jì)算機(jī)結(jié)構(gòu)本章主要講述輸入/輸出基本概念,包括總線類型、總線控制方式,中斷系統(tǒng)的分類與分級(jí),講述通道處理機(jī),包括通道工作原理,通道類型等。本章重點(diǎn)是總線控制方式的對(duì)比分析,通道類型及分析。一、I/O子系統(tǒng)的主要特征外設(shè)與計(jì)算機(jī)的連接方式有串行連接和并行連接兩種。串行方式成本低,適合于單字節(jié)傳送的設(shè)備。輸入/輸出控制器在物理上可位于主處理機(jī)中或在輸入輸出設(shè)備中也可在這兩者之間。輸入輸出系統(tǒng)發(fā)展經(jīng)歷在三個(gè)階段:1.程序控制2.直接存儲(chǔ)器訪問(DMA)3.I/O處理機(jī)方式二、I/O部件類型輸入/輸出設(shè)備分為存儲(chǔ)設(shè)備和傳輸設(shè)備兩大類。本節(jié)的主要內(nèi)容是磁盤的介紹,重點(diǎn)領(lǐng)會(huì)廉價(jià)冗余磁盤陣列RAID.三、總線總線是連接數(shù)字系統(tǒng)的信號(hào)線集??偩€的分類:按數(shù)據(jù)傳送方向單向傳輸總線雙向傳輸總線全雙向半雙向按用途專用總線共享總線面向單機(jī)的面向多機(jī)的按數(shù)據(jù)線寬度16位`32位64位按層次芯片級(jí)板極系統(tǒng)極的總線連接若干個(gè)模塊并用于傳輸信息,當(dāng)多個(gè)模塊試圖同時(shí)控制總線操作時(shí),需要通過總線裁決器決定由哪個(gè)模塊控制總線??偩€的控制方式分兩種:集中式控制和分布式控制??偩€控制機(jī)構(gòu)基本集中在一起,不論是連接到總線的一個(gè)部件中,還是在單獨(dú)的硬件中,都稱為集中式控制。而總線的控制邏輯分散在連到總線的各個(gè)部件時(shí),就稱為分布式總線控制。這里只講集中式總線控制。當(dāng)多個(gè)模塊同時(shí)發(fā)出請(qǐng)求時(shí),就由硬件來(lái)進(jìn)行裁決,方式主要有串行鏈接式、定時(shí)查詢式和獨(dú)立請(qǐng)求等。對(duì)照教材三個(gè)示意圖,理解三種裁決方式的原理。1、串行鏈接式:各模塊的請(qǐng)求信號(hào)通過一條公共的請(qǐng)求線向總線控制器發(fā)出,若總線忙信號(hào)不存在,則總線控制器收到信號(hào)后對(duì)請(qǐng)求響應(yīng),通過總線可用信號(hào)線送出信號(hào),這個(gè)信號(hào)串行地通過每個(gè)部件,若收到信號(hào)的部件未發(fā)出過總線請(qǐng)求時(shí),則把信號(hào)往下一部件傳遞,若部件發(fā)送過總線請(qǐng)求,則該部件收到信號(hào)就不再往后傳遞,建立總線忙信號(hào),并去除其"總線請(qǐng)求"信號(hào),開始總線操作,完成數(shù)據(jù)傳送后,部件除去總線忙信號(hào),總線可用信號(hào)也隨之去除。此后若有總線請(qǐng)求,則再次開始總線分配過程。2.集中式定時(shí)查詢方式。這里用到了一個(gè)計(jì)數(shù)器,根據(jù)計(jì)數(shù)器的值確定發(fā)出請(qǐng)求的部件??偩€上的每個(gè)部件通過"總線請(qǐng)求"信號(hào)線發(fā)出請(qǐng)求后,若總線忙信號(hào)未建立,則控制器收到請(qǐng)求后讓計(jì)數(shù)器開始計(jì)數(shù)(也就是按一定的順序查詢各個(gè)部件),若查詢線上的計(jì)數(shù)值與發(fā)現(xiàn)請(qǐng)求的部件號(hào)一致時(shí),該部件就建立總線忙的信號(hào),計(jì)數(shù)器停止計(jì)數(shù),中止查詢。直到該部件總線操作完畢。3、獨(dú)立請(qǐng)求方式。這種方式中,各模塊都各自有一對(duì)總線請(qǐng)求信號(hào)線和總線可用信號(hào)線,總線忙信號(hào)線則是公共的,各模塊可以獨(dú)立地向控制器發(fā)出總線請(qǐng)求。這三種方式各自有優(yōu)缺點(diǎn),現(xiàn)將三種裁決方式作如下比較:控制方式
主要特點(diǎn)
優(yōu)點(diǎn)
缺點(diǎn)
串行鏈接
各模塊的請(qǐng)求信號(hào)經(jīng)過一條公共的請(qǐng)求線向總線控制器發(fā)出.各模塊根據(jù)其固定的優(yōu)先級(jí)別獲得總線使用的機(jī)會(huì).總線裁決算法簡(jiǎn)單,控制線數(shù)少,而且與模塊的數(shù)量無(wú)關(guān),可擴(kuò)充性好靈活性差,不能由軟件改變優(yōu)先級(jí).在優(yōu)先級(jí)高的部件頻繁使用總路線時(shí),優(yōu)先級(jí)低的模塊可能很久得不到響應(yīng).又由于總線可用信號(hào)串行地通過各模塊,延遲較大,總線分配的速度較低.定時(shí)查詢方式
由控制器輪流對(duì)各模塊進(jìn)行測(cè)試,看其是否有請(qǐng)求.查詢時(shí)以計(jì)數(shù)方式向各模塊發(fā)出一個(gè)計(jì)數(shù)值,根據(jù)計(jì)數(shù)值所對(duì)應(yīng)的模塊是否有請(qǐng)求信號(hào)來(lái)決定總線使用權(quán)的分配.這種方式的優(yōu)先級(jí)可以用程序控制,動(dòng)態(tài)改變,靈活性較強(qiáng);模塊的故障不會(huì)影響總線的控制;
可靠性高.控制線較多
較差的擴(kuò)展性.獨(dú)立請(qǐng)求方式
各模塊都有各自的一對(duì)總線請(qǐng)求和總線可用信號(hào)線,總線忙的信號(hào)是公共的.各模塊獨(dú)立地向控制器發(fā)出總線請(qǐng)求,總線控制器可根據(jù)某種算法對(duì)同進(jìn)送來(lái)的請(qǐng)求進(jìn)行裁決.總線分配的速度快,各模塊的優(yōu)先級(jí)的確定靈活.控制線數(shù)量多
總線裁決機(jī)構(gòu)較復(fù)雜.為實(shí)現(xiàn)上述裁決方式,總線裁決使用了各種算法:靜態(tài)優(yōu)先級(jí)算法(串行鏈接式總線用的就是這種算法)固定時(shí)間片算法(定時(shí)查詢式用的就是這種算法)、動(dòng)態(tài)優(yōu)先級(jí)算法(包括最近最少使用算法LRU和輪轉(zhuǎn)菊花鏈算法RDC)先來(lái)先服務(wù)算法(這種算法較難實(shí)現(xiàn))三、中斷系統(tǒng)計(jì)算機(jī)的中斷可分成內(nèi)部中斷、外部中斷和軟件中斷三種。分清三種中斷的引發(fā)原因。外部中斷進(jìn)一步可分為可屏蔽中斷和不或屏蔽中斷。不可屏蔽中斷是一些最緊急最重要的中斷。當(dāng)系統(tǒng)中有多個(gè)中斷源同時(shí)發(fā)現(xiàn)中斷請(qǐng)求時(shí),就要由中斷處理系統(tǒng)按中斷優(yōu)先等級(jí)次序確定先響應(yīng)的中斷。四、輸入/輸出通道通道處理機(jī)本身可看作一個(gè)簡(jiǎn)單的計(jì)算機(jī),因?yàn)樗凶约旱闹噶钕到y(tǒng)和程序。但它的指令功能較簡(jiǎn)單,只控制I/O,并且通道程序是放在主存中的,所以通道本身不能作為獨(dú)立的處理機(jī)。根據(jù)通道數(shù)據(jù)傳送期中信息傳送方式的不同,分字節(jié)多路、選擇和數(shù)組多路三類通道。1、字節(jié)多路通道:它適用于連接大量低速設(shè)備。這些設(shè)備傳送一個(gè)字符(字節(jié))的時(shí)間很短,但是在字符間的等待時(shí)間很長(zhǎng)。因此,通道"數(shù)據(jù)寬度"為單字節(jié),以字節(jié)交叉方式輪流為多臺(tái)低速設(shè)備服務(wù),使效率提高。2.數(shù)組多路通道:它適合于連接多臺(tái)像磁盤等高速設(shè)備。這些設(shè)備的傳輸速率很高,但傳送開始前的尋址輔助操作時(shí)間很長(zhǎng)。為了充分利用并盡可能重疊各臺(tái)高速設(shè)備的輔助操作時(shí)間,它采用成組交叉方式工作。其"數(shù)據(jù)寬度"為定長(zhǎng)塊,在傳送完一定長(zhǎng)度的數(shù)據(jù)后即重新選擇下一個(gè)外設(shè)進(jìn)行數(shù)據(jù)傳送,使多路傳輸并行進(jìn)行。3.選擇通道:它適合于連接優(yōu)先級(jí)高的磁盤等高速設(shè)備,讓它獨(dú)占通道,只能執(zhí)行一道通道程序。數(shù)據(jù)傳送以不定長(zhǎng)塊方式進(jìn)行,每次將N字節(jié)的數(shù)據(jù)全部傳送完畢,因此,在數(shù)據(jù)傳送期內(nèi)只選擇一次設(shè)備?,F(xiàn)將三種通道簡(jiǎn)要比較如下:通道類型
字節(jié)多路
數(shù)組多路
選擇
數(shù)據(jù)寬度單字節(jié)定長(zhǎng)塊不定長(zhǎng)塊適用范圍大量低速設(shè)備大量高速設(shè)備優(yōu)先級(jí)高的高速設(shè)備工作方式字節(jié)交叉成組交叉獨(dú)占通道共享性分時(shí)共享分時(shí)共享獨(dú)占選擇設(shè)備次數(shù)多次多次一次通道的功能:接受CPU的輸入輸出操作指令,按指令要求控制外設(shè)(接受指令)從主存讀取通道程序,并執(zhí)行(即向設(shè)備控制器發(fā)送各種指令)(執(zhí)行程序)組織和控制數(shù)據(jù)在內(nèi)存與外設(shè)之間的傳送操作(傳送數(shù)據(jù))讀取外設(shè)的狀態(tài)信息,形成整個(gè)通道的狀態(tài)信息,提供給CPU或保存在主存中。(通道狀態(tài))向CPU發(fā)出輸入輸出操作中斷請(qǐng)求。(中斷請(qǐng)求)對(duì)于采用字節(jié)多路通道,通道的極限流量應(yīng)大于該通道所接的外設(shè)字節(jié)傳送速率之和。對(duì)于采用其他兩種方式的通道,通道的極限流量應(yīng)大于該通道所接外設(shè)中字節(jié)傳送速率最在的設(shè)備。五、I/O處理機(jī)I/O處理機(jī)本身就是一個(gè)功能完整的處理機(jī),它基本上獨(dú)立于主機(jī)工作,可以與主機(jī)共享主存儲(chǔ)器。
六、I/O子系統(tǒng)的性能衡量標(biāo)準(zhǔn)衡量輸入輸出子系統(tǒng)性能的標(biāo)準(zhǔn)包括計(jì)算機(jī)上能連接什么樣的I/O設(shè)備?能連接多少I/O設(shè)備?而衡量輸入輸入設(shè)備特性的指標(biāo)還有訪問時(shí)間、數(shù)據(jù)傳送時(shí)間和出錯(cuò)率。并行處理技術(shù)本章講述的重點(diǎn)內(nèi)容就是陣列處理機(jī)和多處理機(jī),對(duì)陣列機(jī)的基本結(jié)構(gòu)、主要特點(diǎn)、以及陣列機(jī)的互連網(wǎng)絡(luò)和并行存儲(chǔ)器的無(wú)沖突訪問等內(nèi)容要加強(qiáng)理解。本章應(yīng)掌握的概念有:陣列處理機(jī)、網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)、單級(jí)立方體網(wǎng)絡(luò)、多級(jí)立方體網(wǎng)等。一、并行處理技術(shù):并行性主要是指同時(shí)性或并發(fā)性,并行處理是指對(duì)一種相對(duì)于串行處理的處理方式,它著重開發(fā)計(jì)算過程中存在的并發(fā)事件。并行性通常劃分為作業(yè)級(jí)、任務(wù)級(jí)、例行程序或子程序級(jí)、循環(huán)和迭代級(jí)以及語(yǔ)句和指令級(jí)。作業(yè)級(jí)的層次高,并行處理粒度粗。粗粒度開并行性開發(fā)主要采用MIMD方式,而細(xì)粒度并行性開發(fā)則主要采用SIMD方式。開發(fā)計(jì)算機(jī)并行性的方法主要有:資源重復(fù)、時(shí)間重疊和資源共享三種方法。二、SIMD并行計(jì)算機(jī)陣列機(jī)也稱并行處理機(jī)。它將大量重復(fù)設(shè)置的處理單元按一定方式互連成陣列,在單一控制部件CU(ContrulUnit)控制下對(duì)各自所分配的不同數(shù)據(jù)并行執(zhí)行同一指令規(guī)定的操作,是操作并行的SIMD計(jì)算機(jī)。它采用資源重復(fù)的措施開發(fā)并行性。是以SIMD(單指令流多數(shù)據(jù)流)方式工作的。1、陣列機(jī)的基本結(jié)構(gòu)陣列機(jī)通常由一個(gè)控制器CU、N個(gè)處理器單元PE(ProcessingElement)、M個(gè)存儲(chǔ)模塊以及一個(gè)互連網(wǎng)絡(luò)部件(IN)組成。根據(jù)其中存儲(chǔ)器模塊的分布方式,陣列機(jī)可分為兩種基本結(jié)構(gòu):分布式存儲(chǔ)器的陣列機(jī)和共享存儲(chǔ)器的陣列機(jī)(理解二者不同之處)。陣列機(jī)的主要特點(diǎn):它采用資源重復(fù)的方法引入空間因素,這與利用時(shí)間重疊的流水線處理機(jī)是不一樣的。它是利用并行性中的同時(shí)性而不是并發(fā)性,所有的處理單元必須同時(shí)進(jìn)行相同操作(資源重復(fù)同時(shí)性)(我們想象一下亞運(yùn)會(huì)的開幕式大型團(tuán)體操表演,每個(gè)人就是一個(gè)PE,他們聽從一個(gè)總指揮的指令,同時(shí)進(jìn)行自己的操作,很快地就能"計(jì)算"出一個(gè)結(jié)果(隊(duì)形)來(lái)。)它是以某類算法為背景的專用計(jì)算機(jī),基本上是專用于向量處理的計(jì)算機(jī)(某類算法專用機(jī))。陣列機(jī)的研究必須與并行算法研究密切結(jié)合,以使它的求解算法適應(yīng)性更強(qiáng)一些,應(yīng)用面更廣一些(并行算法合研究)。陳列機(jī)實(shí)質(zhì)上是由專門對(duì)付數(shù)據(jù)組運(yùn)算的處理單元陣列組成的處理機(jī)(M個(gè)PE)、專門從事處理單元陣列的控制及標(biāo)量處理機(jī)(控制器CU)和專門從事系統(tǒng)輸入輸出操作及\o"操作系統(tǒng)"操作系統(tǒng)管理的處理機(jī)三部分構(gòu)成的一個(gè)異構(gòu)型多處理機(jī)系統(tǒng)(三個(gè)部分成異構(gòu))。2、陣列機(jī)的并行算法陣列機(jī)的算法是與結(jié)構(gòu)緊密聯(lián)系在一起的,陣列機(jī)上常用的算法有矩陣計(jì)算、圖象處理等,我們對(duì)\o"教材"教材中舉的兩種算法要領(lǐng)會(huì),特別是累加和遞歸操作,不難理解。它就是使各個(gè)處理器同時(shí)進(jìn)行加的操作,但并不是全部處理器都參加運(yùn)算,在處理時(shí),根據(jù)累加計(jì)算的需要,由控制器CU借助屏蔽的方式將一部分PE設(shè)置成不活動(dòng)的狀態(tài)。這種累加操作的速度提高倍數(shù)是N/log2N倍。3.典型的SIMD計(jì)算機(jī)對(duì)圖9.6要加以領(lǐng)會(huì),對(duì)于ILLIAC-IV的互連方式,若給你N個(gè)PE,請(qǐng)你畫出各個(gè)PE的連接,行不行?這種陣列中,任意兩個(gè)單元之間的最短距離不超過根號(hào)N減去1步。這種計(jì)算機(jī)就是前面說的分布式存儲(chǔ)器了陣列處理機(jī)。另一種典型結(jié)構(gòu)BSP結(jié)構(gòu)。它的主要特點(diǎn)是將資源重復(fù)和時(shí)間重復(fù)結(jié)合起來(lái)開發(fā)并行性。這種結(jié)構(gòu)就是集中式共享存儲(chǔ)器的陣列處理機(jī)。4.SIMD計(jì)算機(jī)的互連網(wǎng)絡(luò)在陣列機(jī)中,各個(gè)處理單元和存儲(chǔ)模塊之間都要經(jīng)過網(wǎng)絡(luò)交換信息。衡量互連網(wǎng)絡(luò)性能好壞的主要因素是它的連接度、延時(shí)性、帶寬、可靠性和成本。好象我們現(xiàn)在用的互聯(lián)網(wǎng),沒有一項(xiàng)性能指標(biāo)令人滿意呀。設(shè)計(jì)互連網(wǎng)時(shí)應(yīng)考慮的四個(gè)特征是:通信工作方式:有同步、異步及同/異步組合等三種。陣列機(jī)都采用同步工作方式,也就是各種命令的廣播和并行操作都由統(tǒng)一的時(shí)鐘加以同步控制??刂撇呗裕杭泻头稚煞N。SIMD陣列機(jī)一般采用集中控制。交換方式:線路交換和分組交換(又稱包交換)以及線路/包交換組合三種。SIMD一般采用線路交換方式。而我們現(xiàn)在用的互聯(lián)網(wǎng)多采用分組交換方式。我們的互聯(lián)網(wǎng)可算是一個(gè)MIMD多機(jī)系統(tǒng)。網(wǎng)絡(luò)拓?fù)洌褐傅氖腔ミB網(wǎng)絡(luò)入、出端可以實(shí)現(xiàn)的連接的模式,有靜態(tài)和動(dòng)態(tài)兩種。在陣列機(jī)中,采用的是動(dòng)態(tài)拓?fù)?。?dòng)態(tài)網(wǎng)絡(luò)有單級(jí)和多級(jí)兩類。動(dòng)態(tài)單級(jí)網(wǎng)絡(luò)只有有限幾種連接,必須經(jīng)循環(huán)多次通過,才能實(shí)現(xiàn)任意兩個(gè)處理單元之間的信息傳送,故稱此動(dòng)態(tài)單級(jí)網(wǎng)絡(luò)為循環(huán)網(wǎng)絡(luò)。動(dòng)態(tài)多級(jí)網(wǎng)絡(luò)是由多個(gè)單級(jí)網(wǎng)絡(luò)串聯(lián)組成,以實(shí)現(xiàn)任意兩個(gè)處理單元之間的連接。將多級(jí)互連網(wǎng)絡(luò)循環(huán)使用可實(shí)現(xiàn)復(fù)雜的互連?,F(xiàn)在的絕大多數(shù)陣列機(jī)都采用多級(jí)互連網(wǎng)絡(luò)或多級(jí)循環(huán)互連網(wǎng)絡(luò)。為反映互連特性,每種互連網(wǎng)絡(luò)可用一組互連函數(shù)定義。首先學(xué)習(xí)3種基本的單級(jí)互連網(wǎng)絡(luò)。它們是立方體、PM2I和混洗交換單級(jí)網(wǎng)絡(luò)。1.立方體單級(jí)網(wǎng)絡(luò)(交換互連網(wǎng)絡(luò))立方體的每一個(gè)頂點(diǎn)代表一個(gè)處理單元,共有8個(gè)處理單元,用直角坐標(biāo)系上zyx三位二進(jìn)制碼編號(hào)?;ミB函數(shù)E(X)k=(bn-1……~bk……b0)即把二進(jìn)制編碼的第k位變反就可得到,它共有n=log2N種互連函數(shù),當(dāng)n=3時(shí),就得到上面的立方體單級(jí)互連網(wǎng)絡(luò)。從一個(gè)結(jié)點(diǎn)到另一個(gè)結(jié)點(diǎn)的最大距離為n.(教材p193稱"最短距離"應(yīng)改為"最大距離")2.PM2I互連網(wǎng)絡(luò)(加減2i單級(jí)互連網(wǎng)絡(luò),即(Plus-Minums2i)又稱循環(huán)移數(shù)網(wǎng),它的互連函數(shù)是:PM2+i(j)=j+2imodNPM2-i(j)=j-2imodN其中0<=i<=n-10=""n="log2N">3.混洗交換單級(jí)網(wǎng)絡(luò)這種互連網(wǎng)絡(luò)由全混洗和交換兩種互連函數(shù)組成:全混Shuffle(bn-1bn-2……b1b0)=(bn-2……b0bn-1)相當(dāng)于將處理單元的進(jìn)制地址位中的最左位移到最右位的循環(huán)移位。由于全混洗互連網(wǎng)絡(luò)不能實(shí)現(xiàn)全0和全1單元與其他單元的連接,因此引入交換網(wǎng)絡(luò)中的Cube0函數(shù),兩函數(shù)復(fù)合后為:Exchange[Shuffle(bn-1bn-2……b1b0)]=(bn-2……b0~bn-1)(教材中圖9.17中除節(jié)點(diǎn)上方和下方的連線應(yīng)改為虛線)在混洗交換網(wǎng)絡(luò)中,最大距離為2n-1.最遠(yuǎn)的兩個(gè)PE連接需要n次交換和n-1次混洗。4.蝶形網(wǎng)絡(luò),即將二進(jìn)制地址的最高位與最低位互換位置。對(duì)于以上幾種單級(jí)互連網(wǎng)絡(luò),應(yīng)能根據(jù)其函數(shù)求得入端與出端的關(guān)系。多級(jí)互連網(wǎng)絡(luò):將前面幾種單級(jí)互連網(wǎng)絡(luò)重復(fù)連接,就形成了最基本的多級(jí)互連網(wǎng)絡(luò)。決定多級(jí)互連網(wǎng)絡(luò)的特性的主要因素有以下三個(gè)方面:交換開關(guān)、拓?fù)浣Y(jié)構(gòu)和控制方式。交換開關(guān)有直通、交換、上播、下播四種功能;控制方式則有級(jí)控、單元控制、部分極控三種方式。常用的多級(jí)互連網(wǎng)絡(luò)有:1、多級(jí)立方體網(wǎng)絡(luò):通常是采用交換互連單級(jí)網(wǎng)絡(luò)串接起來(lái)構(gòu)成的。STARAN多級(jí)互連網(wǎng)絡(luò)就是將Cube0,Cube1,Cube2三種互連函數(shù)的三個(gè)單級(jí)立方體網(wǎng)串接起來(lái)的。(教材中p197第12行開關(guān)的"110"應(yīng)更正為"101")在采用不同的級(jí)控信號(hào)時(shí),可以實(shí)現(xiàn)任一輸入端到任一輸出端的直接連接。2、多級(jí)混洗交換網(wǎng)絡(luò):又稱OMEGA網(wǎng)絡(luò)。這種網(wǎng)絡(luò)的交換開關(guān)單元是四功能的。這種網(wǎng)絡(luò)可以實(shí)現(xiàn)一個(gè)輸入端與多個(gè)出端的連接。3、多級(jí)PM2I互連網(wǎng)絡(luò)4、全排列網(wǎng)絡(luò)三、并行存儲(chǔ)器的無(wú)沖突訪問為保證對(duì)存儲(chǔ)器的并行無(wú)沖突訪問,可采用的方法有,數(shù)據(jù)交叉存儲(chǔ)在m個(gè)存儲(chǔ)體中,并且使存儲(chǔ)體M大于每次要訪問的全部向量元素N,且為質(zhì)數(shù)。將數(shù)組按行或列變換成一維數(shù)組,形成一個(gè)給維線性地址空間,地址用a表示,然后,將地址a所對(duì)應(yīng)的元素存放在體號(hào)地址j=a|_a/n_|的單元中,就可以滿足無(wú)沖突訪問的要求。(教材中p199圖9.26中塊內(nèi)地址應(yīng)從0開始排列而不是從1開始)。給出一個(gè)線性地址,應(yīng)能求出其在存儲(chǔ)器中的模塊號(hào)和塊內(nèi)偏移。四、多處理機(jī)多處理機(jī)具有兩臺(tái)以上的處理機(jī),在操作系統(tǒng)控制下通過共享的主存或輸入輸出子系統(tǒng)或高速通訊網(wǎng)絡(luò)進(jìn)行通訊。多處理機(jī)屬M(fèi)IMD系統(tǒng)。多處理機(jī)與SIMD相比有較大不同,表現(xiàn)在:結(jié)構(gòu)靈活性:MIMD機(jī)結(jié)構(gòu)上具有更大靈活性和更強(qiáng)的通用性;程序并行性:前者是作業(yè)級(jí)并行,后者則是操作級(jí)并行。并行任務(wù)派生:前者需要由專用語(yǔ)句顯式指明是否派生并行任務(wù),而后者則不需要專門指令進(jìn)程同步:MIMD機(jī)中各進(jìn)程的同步需要采取特殊措施來(lái)保證,而SIMD機(jī)則由于受同一控制器控制,自然是同步的。資源分配和調(diào)度:MIMD機(jī)任務(wù)調(diào)度要采用軟件手段,而SIMD機(jī)中,只需用屏蔽來(lái)控制實(shí)際參加并行操作的處理單元數(shù)目。多處理機(jī)在系統(tǒng)結(jié)構(gòu)上分為兩類:緊耦合和松耦合系統(tǒng)。緊耦合是通過共享主存實(shí)現(xiàn)處理機(jī)間的互相通信,處理機(jī)間的相互聯(lián)系比較緊密。按所用處理機(jī)類型是否相同及對(duì)稱,又可分為同構(gòu)或異構(gòu)及對(duì)稱或非對(duì)稱的
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東理工學(xué)院《能源與動(dòng)力測(cè)試技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東理工職業(yè)學(xué)院《測(cè)量學(xué)實(shí)驗(yàn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東江門幼兒師范高等專科學(xué)?!队耙暰巹 ?023-2024學(xué)年第一學(xué)期期末試卷
- 廣東工貿(mào)職業(yè)技術(shù)學(xué)院《遙感地學(xué)分析與應(yīng)用》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東工程職業(yè)技術(shù)學(xué)院《機(jī)器人學(xué)及其應(yīng)用》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東財(cái)貿(mào)職業(yè)學(xué)院《反應(yīng)工程概論》2023-2024學(xué)年第一學(xué)期期末試卷
- 新聞拍照培訓(xùn)課件
- 《風(fēng)險(xiǎn)統(tǒng)計(jì)分析》課件
- 廣安職業(yè)技術(shù)學(xué)院《跨屏傳播與營(yíng)銷》2023-2024學(xué)年第一學(xué)期期末試卷
- 贛州職業(yè)技術(shù)學(xué)院《計(jì)算智能技術(shù)的實(shí)現(xiàn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年1月八省聯(lián)考河南新高考物理試卷真題(含答案詳解)
- 物業(yè)管理服務(wù)人員配備及崗位職責(zé)
- 建設(shè)工程檢試驗(yàn)工作管理實(shí)施指引
- 鄭州2024年河南鄭州市惠濟(jì)區(qū)事業(yè)單位80人筆試歷年參考題庫(kù)頻考點(diǎn)試題附帶答案詳解
- 深靜脈血栓的手術(shù)預(yù)防
- 【9道期末】安徽省合肥市廬陽(yáng)區(qū)2023-2024學(xué)年九年級(jí)上學(xué)期期末道德與法治試題
- 軟件租賃合同范例
- 腹腔鏡全胃切除手術(shù)配合
- 2024-2030年中國(guó)非物質(zhì)文化遺產(chǎn)市場(chǎng)前景調(diào)研及投資風(fēng)險(xiǎn)分析報(bào)告
- 匯川技術(shù)在線測(cè)評(píng)題及答案
- 酒店員工人事制度培訓(xùn)
評(píng)論
0/150
提交評(píng)論