Posted on 2007-09-04 17:26
Shuffy 閱讀(1306)
評論(1) 編輯 收藏 引用 所屬分類:
計(jì)算機(jī)組成原理
一、要求掌握的知識要點(diǎn)
(1) 計(jì)算機(jī)系統(tǒng)分類。
·指令流:機(jī)器執(zhí)行的指令系列。
·數(shù)據(jù)流:由指令流調(diào)用的數(shù)據(jù)序列。
·Flynn分類法:單指令流單數(shù)據(jù)流,指令流多數(shù)據(jù)流,單指令流多數(shù)據(jù)流,多指令流單數(shù)據(jù)流。
·馮式分類法:用最大并行度來對計(jì)算機(jī)體系結(jié)構(gòu)進(jìn)行分類。
(2) 計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)與計(jì)算機(jī)組成的區(qū)別,計(jì)算機(jī)并行的發(fā)展。
計(jì)算機(jī)組成指計(jì)算機(jī)系統(tǒng)的邏輯結(jié)構(gòu),包括機(jī)器內(nèi)部數(shù)據(jù)流和控制流的組成以及邏輯設(shè)計(jì)等;計(jì)算機(jī)實(shí)現(xiàn)是指計(jì)算機(jī)組成的物理實(shí)現(xiàn)。
(3) 存儲器系統(tǒng)的層次結(jié)構(gòu)。存儲器系統(tǒng)由分布在計(jì)算機(jī)各個不同部件中的多種存儲設(shè)備組成。主存儲器由一片或多片存儲芯片配以控制電路組成。輔助存儲器包括磁表面存儲器、光存儲器。高速緩沖存儲器(Cache存儲器)用于提高CPU數(shù)據(jù)輸入/輸出速度,突破CPU與存儲器間的數(shù)據(jù)傳輸帶寬限制。在存儲系統(tǒng)體系中,Cache是訪問速度最快的層次。
二、知識點(diǎn)概述
(一)計(jì)算機(jī)體系結(jié)構(gòu)的發(fā)展
1.計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)概述
計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)又稱為計(jì)算機(jī)體系結(jié)構(gòu),就是計(jì)算機(jī)的屬性及功能特征,即計(jì)算機(jī)的外特性。盡管不同的使用者所了解的計(jì)算機(jī)的屬性有所不同,就通用計(jì)算機(jī)系統(tǒng)來說,計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)的屬性應(yīng)包括如下一些方面:
·硬件所能處理的數(shù)據(jù)類型。
·所能支持的尋址方式。
·CPU的內(nèi)部寄存器。
·CPU的指令系統(tǒng)。
·主存的組織與主存的管理。
·中斷系統(tǒng)的功能。
·輸入/輸出設(shè)備及連接接口。
·計(jì)算機(jī)體系結(jié)構(gòu)分類。
1) Flynn分類法
1966年Flynn提出了如下定義。
指令流(Instruction Stream):機(jī)器執(zhí)行的指令序列。
數(shù)據(jù)流(Data Stream):由指令流調(diào)用的數(shù)據(jù)序列,包括輸入數(shù)據(jù)和中間結(jié)果。
多倍性(Multiplicity):在系統(tǒng)最受限制的元件上同時處于同一執(zhí)行階段的指令或數(shù)據(jù)的最大可能個數(shù)。
按指令流和數(shù)據(jù)流的不同組織方式,把計(jì)算機(jī)體系結(jié)構(gòu)分為如下四類:單指令流單數(shù)據(jù)流(SISD),單指令流多數(shù)據(jù)流(SIMD),多指令流單數(shù)據(jù)流(MISD),多指令流多數(shù)據(jù)流(MIMD)。
2) 馮式分類法
1972年馮澤云提出用最大并行度來對計(jì)算機(jī)體系結(jié)構(gòu)進(jìn)行分類。所謂最大并行度Pm是指計(jì)算機(jī)系統(tǒng)在單位時間內(nèi)能夠處理的最大的二進(jìn)制位數(shù)。設(shè)每一個時鐘周期△ti內(nèi)能處理的二進(jìn)制位數(shù)為Pi,則T個時鐘周期內(nèi)平均并行度為Pa= (∑Pi)/T(其中i為1,2,…,T)。平均并行度取決于系統(tǒng)的運(yùn)行程度,與應(yīng)用程序無關(guān),所以,系統(tǒng)在周期T內(nèi)的平均利用率為μ = Pa/Pm = (∑Pi)/(T * Pm)。
圖1-4所示為用最大并行度對計(jì)算機(jī)體系結(jié)構(gòu)進(jìn)行的分類。用平面直角坐標(biāo)系中的一點(diǎn)表示一個計(jì)算機(jī)系統(tǒng),橫坐標(biāo)表示字寬(N位),即在一個字中同時處理的二進(jìn)制位數(shù);縱坐標(biāo)表示位片寬度(M位),即在一個位片中能同時處理的字?jǐn)?shù),則最大并行度Pm = N * M。由此得出四種不同的計(jì)算機(jī)結(jié)構(gòu):
① 字串行、位串行(簡稱WSBS)。其中N=1,M=1。
② 字并行、位串行(簡稱WPBS)。其中N=1,M>1。
③ 字串行、位并行(簡稱WSBP)。其中N>1,M=1。
④ 字并行、位并行(簡稱WPBP)。其中N>1,M>1。

圖1-4 馮式分類法
2.計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)與計(jì)算機(jī)組成的區(qū)別
計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)所解決的問題是計(jì)算機(jī)系統(tǒng)總體上、功能上需要解決的問題,而計(jì)算機(jī)組成要解決的是邏輯上如何具體實(shí)現(xiàn)的問題。
比如說,指令系統(tǒng)的確定屬于計(jì)算機(jī)系統(tǒng)結(jié)構(gòu),而指令的具體實(shí)現(xiàn)則屬于計(jì)算機(jī)組成。指令系統(tǒng)中要不要設(shè)置乘、除法指令是計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)要解決的問題,而一旦決定設(shè)置,具體用什么方法來實(shí)現(xiàn)乘、除法指令就屬于計(jì)算機(jī)組成應(yīng)解決的問題。
主存容量及編址方式的確定屬于計(jì)算機(jī)系統(tǒng)結(jié)構(gòu),而具體構(gòu)成主存則屬于計(jì)算機(jī)組成。
可以想像。對于具有同樣系統(tǒng)結(jié)構(gòu)的計(jì)算機(jī),但具體按此系統(tǒng)結(jié)構(gòu)構(gòu)成的計(jì)算機(jī)在實(shí)現(xiàn)方法、性能及價(jià)格上會有很大差別。
3.系統(tǒng)結(jié)構(gòu)中并行性的發(fā)展
1) 并行性
并行性包括兩個方面:同時性和并發(fā)性。同時性是指兩個或兩個以上的事件在同一時刻發(fā)生,并發(fā)性是指兩個或兩個以上的事件在同一時間間隔內(nèi)連續(xù)發(fā)生。
充分利用并行性實(shí)現(xiàn)計(jì)算機(jī)的并行處理,可以提高計(jì)算機(jī)的處理速度。
2) 并行處理
從計(jì)算機(jī)信息處理的步驟和階段的角度,并行處理可分為:
·存儲器操作并行。
·處理器操作步驟并行(流水線處理機(jī))。
·處理器操作并行(陣列處理機(jī))。
·指令、任務(wù)、作業(yè)并行(多處理機(jī)、分布處理系統(tǒng)、計(jì)算機(jī)網(wǎng)絡(luò))。
3) 并行性的發(fā)展
從20世紀(jì)80年代開始,計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)有了很大發(fā)展,相繼出現(xiàn)了精減指令集計(jì)算機(jī)(RISC)、指令級上并行的超標(biāo)量處理機(jī)、超級流水線處理機(jī)、超長指令計(jì)算機(jī)、多微處理機(jī)系統(tǒng)、數(shù)據(jù)流計(jì)算機(jī)等。20世紀(jì)90年代以來,最主要的發(fā)展是大規(guī)模并行處理(MPP),其中多處理機(jī)系統(tǒng)和多計(jì)算機(jī)系統(tǒng)是研究開發(fā)的熱點(diǎn)。
(二) 存儲系統(tǒng)
1.存儲器的層次結(jié)構(gòu)
存儲體系結(jié)構(gòu)包括不同層次上的存儲器,通過適當(dāng)?shù)挠布?、軟件有機(jī)地組合在一起形成計(jì)算機(jī)的存儲體系結(jié)構(gòu)?,F(xiàn)在大多數(shù)人都將高性能計(jì)算機(jī)的存儲體系結(jié)構(gòu)描述成如圖1-5所示的三層存儲器層次結(jié)構(gòu)。
圖1-5 存儲器層次結(jié)構(gòu)示意圖
三級存儲結(jié)構(gòu)是高速緩存(Cache)、主存儲器(MM)和輔助存儲器(外存儲器)。也有人將存儲器層次分為四層,是將CPU內(nèi)部的寄存器也看作是存儲器的一個層次。
有一些簡單的計(jì)算機(jī)沒有高速緩存(Cache),則這樣的計(jì)算機(jī)的存儲體系就剩下主存和輔存兩個層次。
2.存儲器的分類
(1) 按存儲器所處的位置,可分為內(nèi)存和外存。
內(nèi)存也稱為主存,設(shè)在主機(jī)內(nèi)或主機(jī)板上,用來存放機(jī)器當(dāng)前運(yùn)行所需要的程序和數(shù)據(jù),以便向CPU提供信息。相對于外存,其特點(diǎn)是容量小,速度快。
外存也稱為輔存,如磁盤、磁帶、光盤等,用來存放當(dāng)前不參加運(yùn)行的大量信息,在需要時,可把需要的信息調(diào)入內(nèi)存。相對于內(nèi)存,外存的容量大,速度慢。
(2) 按構(gòu)成存儲器的材料,可分為磁存儲器、半導(dǎo)體存儲器和光存儲器。
(3) 按工作方式,可分為讀寫存儲器和只讀存儲器。
(4) 按訪問方式,可分為按地址訪問的存儲器和按內(nèi)容訪問的存儲器。
(5) 按尋址方式,可分為隨機(jī)存儲器、順序存儲器和直接存儲器。
3.相聯(lián)存儲器
相聯(lián)存儲器是一種按內(nèi)容訪問的存儲器。其工作原理就是把數(shù)據(jù)或數(shù)據(jù)的某一部分作為關(guān)鍵字,將該關(guān)鍵字與存儲器中的每一單元進(jìn)行比較,找出存儲器中所有與關(guān)鍵字相同的數(shù)據(jù)字。相聯(lián)存儲器的結(jié)構(gòu)如圖1-6所示,各部件的功能如表1-2所示。
圖1-6 相聯(lián)存儲器的結(jié)構(gòu)框圖
表l-2 相聯(lián)存儲器部件功能
相聯(lián)存儲器可用在高速緩沖存儲器中;在虛擬存儲器中用來作段表、頁表或快表存儲器;用在數(shù)據(jù)庫和知識庫中。
4.高速緩存(Cache)
高速緩存(Cache)用來存放當(dāng)前最活躍的程序和數(shù)據(jù)。作為主存局部域的副本,其特點(diǎn)是:容量一般在幾KB到幾MB之間;速度一般比主存快5到10倍,由快速半導(dǎo)體存儲器構(gòu)成;其內(nèi)容是主存局部域的副本,對程序員來說是透明的。
1) 高速緩存的組成
高速緩存的組成如圖1-7所示。由圖1-7可以看到,cache由兩個部分組成:控制部分和Cache存儲器部分。
Cache存儲器部分用來存放主存的部分拷貝(副本)信息??刂撇糠值墓δ苁牵号袛郈PU要訪問的信息是否在Cache存儲器中,若在即為命中,若不在則沒有命中。命中時直接對Cache存儲器尋址;未命中時,要按照替換原則,決定主存的一塊信息放到Cache存儲器的哪一塊里面。
2) 高速緩存中的地址映像方法
圖1-7高速緩存的構(gòu)成框圖
在CPU工作時,送出的是主存的地址,而應(yīng)從Cache存儲器中讀寫信息。這就需要將主存地址轉(zhuǎn)換成Cache存儲器的地址,這種地址的轉(zhuǎn)換叫做地址映像。Cache的地址映像有三種方法。
(1) 直接映像。是指主存的塊與Cache中塊的對應(yīng)關(guān)系是固定的。在這種映像方式下,由于主存中的塊只能存放在Cache存儲器的相同塊號中,因此,只要主存地址中的主存區(qū)號與Cache中的主存區(qū)號相同,則表明訪問Cache命中。一旦命中,以主存地址中的區(qū)內(nèi)塊號立即可得到要訪問的Cache存儲器中的塊。
直接映像的優(yōu)點(diǎn)是地址變換很簡單,只要主存地址中的主存區(qū)號找到了,則主存地址中后面的區(qū)內(nèi)塊號和塊內(nèi)地址立刻就找到了該塊及塊內(nèi)的存儲單元。其缺點(diǎn)是靈活性差。例如,不同區(qū)號中塊號相同的塊無法同時調(diào)入Cache存儲器,即使Cache存儲器中有空著的塊也只能空著。
(2) 全相聯(lián)映像。同樣,主存與Cache存儲器均分成容量相同的塊。這種映像方式允許主存的任一塊可以調(diào)入Cache存儲器的任何一個塊的空間中。在地址變換時,利用主存地址高位表示的主存塊號與Cache中的主存塊號進(jìn)行比較,若相同即為命中。這時根據(jù)塊號所對應(yīng)的塊就知道要訪問的是哪一塊。Cache存儲器的塊找到后,塊內(nèi)地址就是主存的低位地址。這便可以讀寫Cache塊中的內(nèi)容。在變換時當(dāng)找到主存塊號命中時,還必須知道主存的這一塊存到了Cache的哪一塊里面。
全相聯(lián)映像的主要優(yōu)點(diǎn)是主存的塊調(diào)入Cache的位置不受限制,十分靈活。其主要缺點(diǎn)是無法從主存塊號中直接獲得Cache的塊號,變換比較復(fù)雜,速度比較慢。
(3) 組相聯(lián)映像。這種方式是前面兩種方式的折衷。具體做法是將Cache中的塊再分成組。例如,假定Cache有16塊,再將每兩塊分為1組,則Cache就分為8組。主存同樣分區(qū),每區(qū)16塊,再將每兩塊分為1組,則每區(qū)就分為8組。
組相聯(lián)映像就是規(guī)定組采用直接映像方式而塊采用全相聯(lián)映像方式。也就是說,主存任何區(qū)的0組只能存到Cache的0組中,1組只能存1組,依次類推。組內(nèi)的塊則采用全相聯(lián)映像方式,即一組內(nèi)的塊可以任意存放。也就是說,主存一組中的任一塊可以存入Cache相應(yīng)組中的任一塊中。
在這種方式下,通過直接映像方式來決定組號,在一組內(nèi)再用全相聯(lián)映像方式來決定Cache中的塊號。由主存地址高位決定主存區(qū)號與Cache中區(qū)號比較可決定是否命中。主存后面的地址即為組號,但組塊號要根據(jù)全相聯(lián)映像方式由記錄決定。
3) 替換算法
替換算法的目標(biāo)就是使Cache獲得最高的命中率。常用算法如下。
(1) 隨機(jī)替換算法。就是用隨機(jī)數(shù)發(fā)生器產(chǎn)生一個要替換的塊號,將該塊替換出去。
(2) 先進(jìn)先出算法。就是將最先進(jìn)入Cache的信息塊替換出去。此法簡單但并不能說最先進(jìn)入的就不經(jīng)常使用。
(3) 近期最少使用算法。這種方法是將近期最少使用的Cache中的信息塊替換出去。該算法較先進(jìn)先出算法要好一些。但此法也不能保證過去不常用將來也不常用。
(4) 優(yōu)化替換算法。使用這種方法時必須先執(zhí)行一次程序,統(tǒng)計(jì)Cache的替換情況。有了這樣的先驗(yàn)信息,在第二次執(zhí)行該程序時便可以用最有效的方式來替換,以達(dá)到最優(yōu)的目的。
4) 高速緩存的性能分析
若H為Cache的命中率,tc為Cache的存取時間,tm為主存的訪問時間,則Cache存儲器的等效訪問時間ta為:
ta = Htc + (1-H)tm
使用Cache存儲器比不使用Cache存儲器時CPU訪問存儲器的速度提高的倍數(shù)r可用下式求得:
5.虛擬存儲器
虛擬存儲器是由主存、輔存、存儲管理單元及操作系統(tǒng)中存儲管理軟件組成的存儲系統(tǒng)。在程序員使用該存儲系統(tǒng)時,可以使用的內(nèi)存空間遠(yuǎn)遠(yuǎn)大于主存的物理空間。但實(shí)際上并不存在那么大的主存,故稱其為虛擬存儲器。虛擬存儲器分為頁式虛擬存儲器、段式虛擬存儲器和段頁式虛擬存儲器。
從以上的描述可以看到,虛擬存儲器將大容量的外存也納入存儲器的管理范圍。但在具體執(zhí)行程序時需判斷程序是否在內(nèi)存中,若不在(可認(rèn)為未命中),則需從輔存中調(diào)入。這種思路與前面描述的Cache中的替換一樣。因此,虛擬存儲器中的替換算法與前面所述的一樣,此處不再說明。
6.外存儲器
外存儲器用來存放暫時不用的程序和數(shù)據(jù),并且以文件的形式存儲。CPU不能直接訪問外存中的程序和數(shù)據(jù),只有將其以文件為單位調(diào)入主存方可訪問。外存儲器由磁表面存儲器(如磁盤、磁帶)及光盤存儲器構(gòu)成。
7.磁盤陣列技術(shù)
磁盤陣列是由多臺磁盤存儲器組成的一個快速、大容量、高可靠的外存子系統(tǒng)。現(xiàn)在常見的稱為廉價(jià)冗余磁盤陣列(RAID)。目前,RAID分為6級(如表1-3所示)。
表1-3 廉價(jià)冗余磁盤陣列
除此之外,目前還有RAID6、RAID7、RAIDl0等,它們均是對前者的改進(jìn),此處不再說明。
(三) CISC/RISC
1.指令系統(tǒng)的發(fā)展
CISC的含義是復(fù)雜指令集計(jì)算機(jī)。眾所周知,早期的計(jì)算機(jī)指令系統(tǒng)比較簡單,通常只有十幾到幾十條指令。隨著計(jì)算機(jī)的發(fā)展,指令系統(tǒng)也隨之發(fā)展,不僅指令條數(shù)增加,而且指令的功能也有了許多增加。其目的是利用增加指令功能和復(fù)雜程度縮小匯編語言與高級語言的差距。另外,為了使新老型號的系列CPU的指令系統(tǒng)向上兼容,就需要在新的CPU中既要保持老的指令系統(tǒng),又要增加新的指令。例如,80X86系列CPU每更新一次,必然增加一些指令。
由于上述原因使得CPU的指令系統(tǒng)越來越龐大,越來越復(fù)雜。這就是復(fù)雜指令集計(jì)算機(jī)(CISC)。由于指令系統(tǒng)的復(fù)雜性,使CPU硬件也變得十分復(fù)雜,同時也限制了CPU的運(yùn)行速度,因此,復(fù)雜指令集計(jì)算機(jī)(CISC)在性能上的提高遇到了很大的困難。
2.精簡指令集計(jì)算機(jī)(RISC)
人們對典型的CISC執(zhí)行程序中指令使用頻度進(jìn)行統(tǒng)計(jì)發(fā)現(xiàn),指令系統(tǒng)中只有大約20%的指令被經(jīng)常使用,其使用頻度達(dá)80%,而且這些指令都是一些加、傳送、轉(zhuǎn)移等最簡單的指令。也就是說,大多數(shù)的復(fù)雜指令只有20%的使用概率。
若只保留20%最簡單的指令,使指令盡可能簡單,就可以設(shè)計(jì)一種硬件結(jié)構(gòu)十分簡單、執(zhí)行速度很高的CPU。這就是精簡指令集計(jì)算機(jī)(RISC)。
3.RISC的特點(diǎn)
RISC簡化了CPU的控制器,同時提高了處理速度,其特點(diǎn)如下:
(1) 指令種類少。一般只有十幾到幾十條簡單的指令。
(2) 指令長度固定,指令格式少。這可使指令譯碼更加簡單。
(3) 尋址方式少。適合于組合邏輯控制器,便于提高速度。
(4) 設(shè)置最少的訪內(nèi)指令。訪問內(nèi)存比較花時間,盡量少用。
(5) 在CPU內(nèi)部設(shè)置大量的寄存器,使大多數(shù)操作在速度很快的CPU內(nèi)部進(jìn)行。
(6) 非常適合流水線操作。由于指令簡單,并行執(zhí)行就更易實(shí)現(xiàn)。
(四) 輸入/輸出技術(shù)
1.微型計(jì)算機(jī)中最常用的內(nèi)存與接口的編址方式
盡管在微型計(jì)算機(jī)中存在著許多種內(nèi)存與接口地址的編址方法,但最常見到的是下面描述的兩種。理解了這兩種編址方法,再遇到其他的編址方法也就不難理解了。
1) 內(nèi)存與接口地址獨(dú)立的編址方法
這種編址方法也有人稱為內(nèi)存與接口地址隔離的編址方法。在這種編址方法中,微型機(jī)內(nèi)的內(nèi)存地址和接口地址是完全獨(dú)立的兩個地址空間,它們是完全獨(dú)立的并且是相互隔離的。
在使用中,這種編址方式地址很清楚,內(nèi)存就用于存放程序和數(shù)據(jù)而接口就用于尋址外設(shè)。所使用的指令也完全不同,用于接口的指令只用于接口讀寫,其余的指令全都是用于內(nèi)存的。因此,在編程序或讀程序中很易使用和辨認(rèn)。
這種編址方法的缺點(diǎn)就是用于接口的指令太少、功能太弱。
2) 內(nèi)存與接口地址統(tǒng)一的編址方法
這種編址方法也有人稱為內(nèi)存與接口地址混合的編址方法。在這種編址方法中,內(nèi)存地址和接口地址統(tǒng)一在一個公共的地址空間里。也就是說內(nèi)存和接口共用這些地址。在這些地址空間里拿出某一些地址分配給接口使用而剩下的就可以歸內(nèi)存所用。也就是說,地址空間里的每一個地址都可以分配給接口也可以分配給內(nèi)存使用。但是,分配給內(nèi)存只能用于內(nèi)存,接口絕不允許使用。同樣,分配給接口的地址內(nèi)存也絕不能再用。
這種編址方法的優(yōu)點(diǎn)是原則上用于內(nèi)存的指令全都可以用于接口。這就大大增強(qiáng)了對接口的操作功能。而且在指令上也不再區(qū)分內(nèi)存或接口指令,也就是說兩者用的指令全都是一樣的。
該編址方法的缺點(diǎn)就在于整個地址空間被分成兩部分,其中一部分分配給接口使用,剩余的為內(nèi)存所用,這經(jīng)常會導(dǎo)致內(nèi)存地址不連續(xù)。再就是用于內(nèi)存的指令和用于接口的指令是完全一樣的,讀程序時需要根據(jù)參數(shù)定義表仔細(xì)加以辨認(rèn)。
2.直接程序控制
在完成外設(shè)數(shù)據(jù)的輸入/輸出中,整個輸入/輸出過程都是在CPU執(zhí)行程序的控制下完成的。
1) 無條件傳送
在此情況下,外設(shè)總是準(zhǔn)備好的,它可以無條件隨時接收CPU發(fā)來的輸出數(shù)據(jù),也能夠無條件隨時向CPU提供需要輸入的數(shù)據(jù)。
2) 程序查詢方式
在這種方式下,利用查詢方式進(jìn)行輸入/輸出,就是通過CPU通過執(zhí)行程序查詢外設(shè)的狀態(tài),判斷外設(shè)是否準(zhǔn)備好接收數(shù)據(jù)或準(zhǔn)備好向CPU輸入數(shù)據(jù)。根據(jù)這種狀態(tài),CPU有針對性的為外設(shè)的輸入/輸出服務(wù)。
3.中斷方式
由程序控制I/O的方法其主要缺點(diǎn)在于CPU必須等待I/O系統(tǒng)完成數(shù)據(jù)傳輸任務(wù),在此期間CPU需定期查詢I/O系統(tǒng)的狀態(tài),以確認(rèn)傳輸是否完成,因此整個系統(tǒng)的性能嚴(yán)重下降。為克服該缺陷,把中斷機(jī)制引入到I/O傳輸過程中。CPU利用中斷方式完成數(shù)據(jù)的輸入/輸出:當(dāng)I/0系統(tǒng)與外設(shè)交換數(shù)據(jù)時,CPU無需等待,當(dāng)I/O系統(tǒng)完成了數(shù)據(jù)傳輸后以中斷方式通知CPU,因而提高了系統(tǒng)效率。
在系統(tǒng)中具有多個中斷源的情況下,常用的處理方法有多中斷信號線法(Multiple Interrupt Lines)、中斷軟件查詢法(Software Poll)、雛菊鏈法(Daisy Chain)、總線仲裁法和中斷向量表法。
4.直接存儲器存取(DMA)方式
在計(jì)算機(jī)與外設(shè)交換數(shù)據(jù)的過程中,無論是無條件傳送,利用查詢方式傳送還是利用中斷方式傳送,都需要由CPU通過執(zhí)行程序來實(shí)現(xiàn)。這就限制了數(shù)據(jù)的傳送速度。
直接內(nèi)存存取(Direct Memory Access,DMA)是指數(shù)據(jù)在內(nèi)存與I/O設(shè)備間的直接成塊傳送,即在內(nèi)存與I/O設(shè)備間傳送一個數(shù)據(jù)塊的過程中,不需要CPU的任何干涉,只需要CPU在過程開始啟動(即向設(shè)備發(fā)出“傳送一塊數(shù)據(jù)”的命令)與過程結(jié)束(CPU通過輪詢或中斷得知過程是否結(jié)束和下次操作是否準(zhǔn)備就緒)時的處理,實(shí)際操作由DMA硬件直接執(zhí)行完成,即在DMA傳送過程中無需CPU干預(yù),整個系統(tǒng)總線完全交給了DMAC,由它控制系統(tǒng)總線完成數(shù)據(jù)傳送。
5.輸入/輸出處理機(jī)(I0P)
上面所描述的輸入/輸出方式適合于外設(shè)不多、速度不很高的小型或微型機(jī)中,實(shí)現(xiàn)起來不是很復(fù)雜。在大型計(jì)算機(jī)中,外設(shè)很多,要求計(jì)算機(jī)的速度很高,采用程序傳送、查詢、中斷或DMA均會因輸入/輸出而造成過大的開銷,影響計(jì)算機(jī)的整體性能,為此,提出采用輸入/輸出處理機(jī)。
1) 輸入/輸出處理機(jī)的功能
輸入/輸出處理機(jī)是一個專用處理機(jī),接在主計(jì)算機(jī)上,對主機(jī)的輸入/輸出操作由它來完成。它根據(jù)主機(jī)的I/0命令,完成對外設(shè)數(shù)據(jù)的輸入/輸出。輸入/輸出由IOP來完成,主機(jī)的工作效率必然提高。
2) 輸入/輸出處理機(jī)的數(shù)據(jù)傳送方式
輸入/輸出處理機(jī)的數(shù)據(jù)傳送方式有如下三種:字節(jié)多路方式、選擇傳送方式和數(shù)組多路方式。
(五) 流水線操作
1.指令流水線
指令流水線的概念就是將一條指令分解成一連串執(zhí)行的子過程,在CPU中變一條指令的串行執(zhí)行子過程為若干條指令的子過程在CPU中重疊執(zhí)行,這就是指令流水線的思路。如果能做到每條指令均分解為m個子過程,且每個子過程的執(zhí)行時間都一樣,則利用指令流水線可將一條指令的執(zhí)行時間由原來的T縮短為T/m。
1) 流水的基本概念
流水線技術(shù)是將一個重復(fù)的時序分解成若干個子過程,而每一個子過程都可有效地在其專用功能段上與其他子過程同時執(zhí)行。流水線技術(shù)應(yīng)用于計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)的各個方面,在此我們以指令的執(zhí)行過程為例介紹流水線技術(shù)。
2) 流水技術(shù)的特點(diǎn)
(1) 流水線可分成若干個相互聯(lián)系的子過程。
(2) 實(shí)現(xiàn)子過程的功能所需時間盡可能相等。
(3) 形成流水處理需要一段準(zhǔn)備時間。
(4) 指令流發(fā)生不能順序執(zhí)行時,會使流水過程中斷,再形成流水過程則需要時間。
3) 流水結(jié)構(gòu)的分類
(1) 按完成的功能分類。
·單功能流水線:只完成一種固定功能的流水線。如只能實(shí)現(xiàn)浮點(diǎn)加。
·多功能流水線:同一流水線上可有多種連接方式來實(shí)現(xiàn)多種功能。如ASC運(yùn)算器中的8個可并行工作的功能塊,可按不同的連接方式實(shí)現(xiàn)浮點(diǎn)加、減或定點(diǎn)乘法運(yùn)算。
(2) 按同一時間內(nèi)各段之間的連接方式分類。
·靜態(tài)流水線:任一時間流水線上的所有功能塊只能按同一種運(yùn)算的連接方式工作。如ASC運(yùn)算器中的8個可并行工作的功能塊,或都按浮點(diǎn)加、減運(yùn)算連接,或都按定點(diǎn)乘法運(yùn)算連接。
·動態(tài)流水線:同一時間流水線上的所有功能塊可按不同的運(yùn)算連接方式工作。
(3) 按數(shù)據(jù)表示分類。
·標(biāo)量流水處理機(jī):只能對標(biāo)量數(shù)據(jù)進(jìn)行流水處理。
·向量流水處理機(jī):它具有陽量指令,可對向量的各元素進(jìn)行流水處理。
2.流水線處理機(jī)的主要指標(biāo)
1) 吞吐率
吞吐率是指單位時間里流水線處理機(jī)流出的結(jié)果數(shù)。對指令而言,就是單位時間里執(zhí)行的指令數(shù)。如果流水線的子過程所用時間不一樣長,則吞吐率p應(yīng)為最長子過程的倒數(shù),即
2) 建立時間
流水線開始工作,需經(jīng)過一定時間才能達(dá)到最大吞吐率,這就是建立時間。若m個子過程所用時間一樣,均為△t0,則建立時間T0 = m△t0。
(六) 總線結(jié)構(gòu)
l. 總線的定義與分類
廣義地講,任何連接兩個以上電子元器件的導(dǎo)線都可以稱為總線??偩€通常分為如下四類。
(1) 芯片內(nèi)總線。用于在集成電路芯片內(nèi)部各部分的連接。
(2) 元件級總線。用于一塊電路板內(nèi)各元器件的連接。
(3) 內(nèi)總線,又稱系統(tǒng)總線。用于構(gòu)成計(jì)算機(jī)各組成部分(CPU、內(nèi)存、接口等等)的連接。
(4) 外總線,又稱通信總線。用于計(jì)算機(jī)與外設(shè)或計(jì)算機(jī)與計(jì)算機(jī)的連接或通信。
2.內(nèi)總線
內(nèi)總線有專用內(nèi)總線和標(biāo)準(zhǔn)內(nèi)總線。內(nèi)總線的性能直接影響到計(jì)算機(jī)的性能。自計(jì)算機(jī)發(fā)明,尤其是微型機(jī)誕生以來,內(nèi)總線的標(biāo)準(zhǔn)已超過百條。常見的內(nèi)總線標(biāo)準(zhǔn)如下。
(1) ISA總線。ISA是工業(yè)標(biāo)準(zhǔn)總線。它向上兼容更早的PC總線,在PC總線62個插座信號的基礎(chǔ)上,再擴(kuò)充另一個36個信號的插座構(gòu)成ISA總線。ISA總線主要包據(jù)24個地址線,16條數(shù)據(jù)線,控制總線(內(nèi)存讀寫、接口讀寫、中斷請求、中斷響應(yīng)、DMA請求、DMA響應(yīng)等等),±5 V、±12 V電源線及地線等。
(2) EISA總線。該總線是在ISA總線的基礎(chǔ)上發(fā)展起來的32位總線。該總線定義了32位地址線,32位數(shù)據(jù)線,以及其他控制信號線、電源線、地線等共196個接點(diǎn),傳輸速率達(dá)33 MB/s。該總線利用總線插座與ISA總線相兼容,插板插在上層為ISA總線信號,將插板安裝到下層便是EISA總線。
(3) PCI總線。PCI總線是目前微型機(jī)上廣泛采用的內(nèi)總線。PCI總線有適于32位機(jī)的124個信號的標(biāo)準(zhǔn)和適于64位機(jī)的188個信號的標(biāo)準(zhǔn)。PCI總線的傳輸速率至少為133 MB/s,64位PCI總線的傳輸速率為266 MB/s,具有很高的傳輸速率。PCI總線的工作與處理器的工作是相互獨(dú)立的,也就是說PCI總線時鐘與處理器時鐘是獨(dú)立的、非同步的。PCI總線上的設(shè)備是即插即用的。
3.外總線
外總線的標(biāo)準(zhǔn)有七八十種之多,此處僅介紹下面幾種。
(1)RS一232C。RS一232C是一條串行外總線,其主要特點(diǎn)是:所需傳輸線比較少,最少只需三條線(一條發(fā)、一條收、一條地線)即可實(shí)現(xiàn)全雙工通信;傳送距離遠(yuǎn),用電平傳送為15米,用電流環(huán)傳送可達(dá)千米;有多種可供選擇的傳送速率;采用非歸零碼負(fù)邏輯工作,電平≤一3 V為邏輯1,而電平≥ + 3 V為邏輯0;具有較好的抗干擾性。
(2) SCSI總線。小型計(jì)算機(jī)系統(tǒng)接口(SCSI)是一條并行外總線,廣泛用于連接軟、硬磁盤、光盤、掃描儀等。該接口總線早期是8位的,后來發(fā)展到16位。傳輸速率由SCSI一1的5 MB/s到16位的Ultra2 SCSI的80 MB/s,目前的傳輸速率已高達(dá)320 MB/s。該總線上最多可接63種外設(shè),傳送距離可達(dá)20米(差分傳送)。
(3) USB。通用串行總線USB當(dāng)前風(fēng)頭正勁,近幾年得到十分廣泛的應(yīng)用。USB有四條信號線組,其中兩條用于傳送數(shù)據(jù),另外兩條傳送+5 V容量為500 mA的電源??梢越?jīng)過集線器HUB進(jìn)行樹狀連接,最多可達(dá)五層。該總線上可接127個設(shè)備。USB 1.0有兩種傳送速率:低速為1.5 Mb/s,高速為12 Mb/s。USB 2. 0的傳送速率為480 Mb/s。USB總線最大的優(yōu)點(diǎn)還在于它支持即插即用并支持熱插拔。
(4) IEEE一1394。這是另一條串行外總線,近幾年同樣得到十分廣泛的應(yīng)用。IEEE一1394有六條信號線組,其中兩條用于傳送數(shù)據(jù),兩條傳送控制信號,另外兩條傳送8到40 V容量為1500 mA的電源。資料上介紹,IEEE一1394總線上可接63個設(shè)備。IEEE一1394的傳送速率從400 Mb/s、800 Mb/s、1600 Mb/s直到3.2 Gb/s。這種總線最大的優(yōu)點(diǎn)也在于它支持即插即用并支持熱插拔。
(七) 多處理機(jī)與并行處理
1.陣列處理機(jī)
1) 陣列處理機(jī)的概念
在前面已經(jīng)提到有關(guān)并行處理的概念。這里專門介紹陣列處理機(jī)。陣列處理機(jī)又稱并行處理機(jī),它將重復(fù)設(shè)置的多個處理單元(PU)按一定方式連成陣列,在單個控制部件(CU)控制下,對分配給自己的數(shù)據(jù)進(jìn)行并行處理來完成一條指令所規(guī)定的操作。這是一種單指令流多數(shù)據(jù)流計(jì)算機(jī),通過資源重復(fù)實(shí)現(xiàn)并行性,其概念示意圖如圖1-8所示。
圖1-8 SIMD計(jì)算機(jī)
2) SIMD計(jì)算機(jī)的互聯(lián)網(wǎng)絡(luò)
SIMD計(jì)算機(jī)的互聯(lián)網(wǎng)絡(luò)的設(shè)計(jì)目標(biāo):結(jié)構(gòu)簡單、靈活;處理單元間信息傳送的步數(shù)盡可能少。
(1) 立方體單級互聯(lián)網(wǎng)絡(luò)。對于具有N個結(jié)點(diǎn)的立方體單級互聯(lián)網(wǎng)絡(luò),共有n = log2N種互聯(lián)函數(shù),即
Cubei(Pn-1…Pi…P1P0) =
式中,Pi為用二進(jìn)制編號的第i位,且0≤n≤n一1。也就是說,每一個處理單元只能與其二進(jìn)制編號的某一位取反編號的處理單元相連接。
(2) PM2I單級互聯(lián)網(wǎng)絡(luò)。這就是“加減2i”單級互聯(lián)網(wǎng)絡(luò),能實(shí)現(xiàn)與j號處理單元相連接的處理單元號為j±2i,其互聯(lián)函數(shù)為
PM2+i(j) = j + 2i mod N
PM2-i(j) = j一2i mod N
(3) 混洗交換單級互聯(lián)網(wǎng)絡(luò)。這種互聯(lián)方式的互聯(lián)函數(shù)為
Shuffle(Pn-1Pn-2…P1P0) = Pn-2…P1P0Pn-1
可見,將處理單元的二進(jìn)制編號循環(huán)左移一位便是要連接的處理單元的二進(jìn)制編號。
2.多處理機(jī)
多處理機(jī)系統(tǒng)是由多臺處理機(jī)組成的系統(tǒng),每臺處理機(jī)有屬于自己的控制部,可以執(zhí)行獨(dú)立的程序,共享一個主存儲器和所有的外部設(shè)備。它是多指令流多數(shù)據(jù)流計(jì)算機(jī)。在多處理機(jī)系統(tǒng)中,機(jī)間的互聯(lián)技術(shù)決定著多處理機(jī)的性能。多處理機(jī)之間的互聯(lián),要滿足高頻帶、低成本、連接方式的多樣性以及在不規(guī)則通信情況下連接的無沖突性。
1) 多處理機(jī)按其構(gòu)成的分類
(1) 異構(gòu)型(非對稱型)多處理機(jī)系統(tǒng)。由多個不同類型或可完成不同功能的處理機(jī)組成,按照作業(yè)要求的順序,利用時間重疊技術(shù),依次對它們的多個任務(wù)進(jìn)行處理,各自完成規(guī)定的功能操作。
(2) 同構(gòu)型(對稱型)多處理機(jī)系統(tǒng)。由多個同類型或可完成同等功能的處理機(jī)組成,同時處理同一作業(yè)中能并行執(zhí)行的多個任務(wù)。
(3) 分布式處理系統(tǒng)。若干臺具有獨(dú)立功能的處理機(jī)相互聯(lián)接起來,在操作系統(tǒng)的控制下統(tǒng)一協(xié)調(diào)地工作,是最少依賴集中的程序、數(shù)據(jù)或硬件的系統(tǒng)。
2) 多處理機(jī)系統(tǒng)的結(jié)構(gòu)
按照機(jī)間的互聯(lián)方式,有如下四種多處理機(jī)結(jié)構(gòu)。
(1) 總線結(jié)構(gòu)??偩€結(jié)構(gòu)是一種最簡單的結(jié)構(gòu)形式,它把處理機(jī)與I/O之間的通信方式引入到處理機(jī)之間。總線結(jié)構(gòu)中有單總線結(jié)構(gòu)、多總線結(jié)構(gòu)、分級式總線、環(huán)式總線等多種。
(2) 交叉開關(guān)結(jié)構(gòu)。交叉開關(guān)結(jié)構(gòu)是設(shè)置一組縱橫開關(guān)陣列,把橫向的處理機(jī)P及I/O通道與縱向的存儲器M連接起來。
(3) 多端口存儲器結(jié)構(gòu)。在多端口存儲器結(jié)構(gòu)中,將多個多端口存儲器的對應(yīng)端口連在一起,每一個端口負(fù)責(zé)一個處理機(jī)P及I/0通道的訪問存儲器的要求。
(4) 開關(guān)樞紐式結(jié)構(gòu)。在開關(guān)樞紐式結(jié)構(gòu)中,有多個輸入端和多個輸出端,在它們之間切換,使輸入端有選擇地與輸出端相連。因?yàn)橛卸鄠€輸入端,所以存在互聯(lián)要求上的沖突。為此加入一個具有分解沖突的部件,稱為仲裁單元。仲裁單元與在一個輸入端和多個輸出端間進(jìn)行轉(zhuǎn)換的開關(guān)單元一起構(gòu)成一個基本的開關(guān)樞紐。任何互聯(lián)網(wǎng)絡(luò)都是由一個或多個開關(guān)樞紐組成的。
3) 多處理機(jī)系統(tǒng)的特點(diǎn)
結(jié)構(gòu)靈活,程序并行,并行任務(wù)派生,進(jìn)程同步。
3.并行處理機(jī)
并行處理機(jī)與采用流水結(jié)構(gòu)的單機(jī)系統(tǒng)都是單指令流多數(shù)據(jù)流計(jì)算機(jī),但它們也有區(qū)別,并行處理機(jī)采用資源重復(fù)技術(shù),而采用流水結(jié)構(gòu)的單機(jī)系統(tǒng)則采用時間重疊技術(shù)。
并行處理機(jī)有兩種典型結(jié)構(gòu):具有分布存儲器的并行處理機(jī)結(jié)構(gòu)和具有共享存儲器的并行處理機(jī)結(jié)構(gòu)。這兩種結(jié)構(gòu)的共同特點(diǎn)是在整個系統(tǒng)中設(shè)置多個處理單元,各個處理單元按照一定的連接方式交換信息,在統(tǒng)一的控制部件作用下,各自對分配來的數(shù)據(jù)并行地完成同一條指令所規(guī)定的操作。
三、重點(diǎn)與難點(diǎn)分析
(1) 掌握I/O的工作方式以及特點(diǎn)(程序中斷方式、DMA方式、設(shè)備接口)。
(2) 了解多處理機(jī)系統(tǒng)的分類、結(jié)構(gòu)及特點(diǎn)。
(3) 并行性的概念與并行的層次。
并行性是指在同一時刻或者同一時間間隔內(nèi)完成兩種或兩種以上性質(zhì)相同或不同的工作,只要時間上相互重疊,就都蘊(yùn)含了并行性。
并行處理是信息處理的一種有效形式,它著重發(fā)掘解題過程中的并行事件,使并行性的層次提高,系統(tǒng)性能更上一層。并行性有著不同的層次,而且從不同的角度來看,其層次結(jié)構(gòu)也不一樣。
① 程序執(zhí)行的并行性層次(從低到高)如下:
·指令內(nèi)部并行:一條指令內(nèi)各個微操作之間的并行。
·指令間并行:多條指令的并行執(zhí)行,需要解決指令間存在的相互關(guān)聯(lián)問題。
·任務(wù)或進(jìn)程間并行:關(guān)鍵在于如何解決任務(wù)分解。
·作業(yè)或程序間并行:關(guān)鍵在于設(shè)計(jì)并行算法,把有限的軟、硬件資源有效地分配給正在用于求解一個大題目的多個程序。
② 數(shù)據(jù)處理的并行性層次(從低到高)如下:
·位串字串:一次只對一個字的一位進(jìn)行處理(無并行性)。
·位并字串:一次對一個字的全部位進(jìn)行處理。
·位串字并:一次對許多字的同一位(位片)進(jìn)行處理。
·位并字并(全并行):對許多字的全部或部分位進(jìn)行處理。
③ 操作并行性層次如下:
·存儲器操作并行:可以在一個存儲周期內(nèi)訪問多個存儲單元。
·處理器操作步驟并行:指令的取值、譯碼、取操作數(shù)、執(zhí)行等操作;向上重疊流水式的執(zhí)行,也包括各種運(yùn)算的操作步驟的重疊執(zhí)行。
·處理器操作并行:設(shè)置大量的處理單元,在同一控制器控制下按同一條指令的要求對多個數(shù)據(jù)組同時操作。
并行性的措施:時間重疊,資源重疊,資源共享。
(4) 并行處理機(jī)的基本原理。并行處理機(jī)又稱為陣列處理機(jī),它是在單一控制部件控制下的由多個處理單元構(gòu)成的陣列。并行處理機(jī)使用按地址訪問的隨機(jī)存儲器(RAM),以SIMD方式工作,主要用于大量高速向量或矩陣運(yùn)算等領(lǐng)域。