《計(jì)算機(jī)系統(tǒng)》-第十章_第1頁(yè)
《計(jì)算機(jī)系統(tǒng)》-第十章_第2頁(yè)
《計(jì)算機(jī)系統(tǒng)》-第十章_第3頁(yè)
《計(jì)算機(jī)系統(tǒng)》-第十章_第4頁(yè)
《計(jì)算機(jī)系統(tǒng)》-第十章_第5頁(yè)
已閱讀5頁(yè),還剩110頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

10.1 輸入/輸出設(shè)備簡(jiǎn)介中央處理器(CPU)和主存儲(chǔ)器構(gòu)成計(jì)算機(jī)的主機(jī),主機(jī)以外的設(shè)備稱為外部設(shè)備,即輸入/輸出設(shè)備。輸入/輸出設(shè)備按功能可分為三類:輸入設(shè)備、輸出設(shè)備、輸入/輸出兼用設(shè)備。磁盤存儲(chǔ)器、可刻光盤存儲(chǔ)器和移動(dòng)盤存儲(chǔ)器,它們既是輸入設(shè)備也是輸出設(shè)備,由于前面已介紹過(guò),本節(jié)不再介紹。下一頁(yè)返回10.1 輸入/輸出設(shè)備簡(jiǎn)介10.1.1 常用輸入設(shè)備簡(jiǎn)介輸入設(shè)備可分為文字輸入設(shè)備、圖形輸入設(shè)備,圖像輸入設(shè)備等。文字輸入設(shè)備有鍵盤、磁卡閱讀機(jī)、條形碼閱讀機(jī),以及紙帶閱讀機(jī)和卡片閱讀機(jī)等。文字輸入設(shè)備主要完成輸入程序、數(shù)據(jù)和操作命令等功能。圖形輸入設(shè)備有光筆、鼠標(biāo)器和觸摸屏等。圖像輸入設(shè)備有攝像機(jī)、掃描儀、數(shù)字相機(jī)等。上一頁(yè)下一頁(yè)返回10.1 輸入/輸出設(shè)備簡(jiǎn)介1.鍵盤當(dāng)前鍵盤由107個(gè)按鍵組成,采用電容式按鍵,它是利用可變電容原理制造的。電容式按鍵主要由活動(dòng)電極和固定電極組成。兩個(gè)固定電極是印刷電路板上互相絕緣的導(dǎo)體。當(dāng)活動(dòng)電極被按下去時(shí),活動(dòng)電極與固定電極間的距離縮小,電容量增大,使接在一個(gè)固定電極上的振蕩器的脈沖信號(hào)經(jīng)電容的耦合傳送到另一個(gè)固定電極;而按鍵釋放時(shí),活動(dòng)電極遠(yuǎn)離固定電極,信號(hào)無(wú)法耦合到另一個(gè)固定電極。根據(jù)另一個(gè)電極上是否有脈沖信號(hào)可以判斷按鍵是否被按下。這種按鍵沒(méi)有觸點(diǎn),簡(jiǎn)單可靠,使用壽命長(zhǎng)。按鍵被排列成陣列形式,每按下一個(gè)按鍵,產(chǎn)生一個(gè)相應(yīng)的字符代碼(每個(gè)按鍵的位置碼),然后將它轉(zhuǎn)換成ASCII碼或其他碼,送入主機(jī)。在這個(gè)過(guò)程當(dāng)中由鍵盤內(nèi)的單片機(jī)負(fù)責(zé)掃描確定按鍵位置,及其與主機(jī)間的通信。鍵盤設(shè)計(jì)還要考慮消去重鍵、自動(dòng)重發(fā)、去抖電路等問(wèn)題。上一頁(yè)下一頁(yè)返回10.1 輸入/輸出設(shè)備簡(jiǎn)介2.鼠標(biāo)鼠標(biāo)是一種相對(duì)坐標(biāo)輸入設(shè)備,用于輸入位移量。它將移位信息傳送給主機(jī)。鼠標(biāo)在桌上的移動(dòng)使屏幕上的光標(biāo)作相應(yīng)的移動(dòng)。鼠標(biāo)主要有機(jī)械式和光電式兩種。在機(jī)械式鼠標(biāo)的底部有一個(gè)圓球。鼠標(biāo)移動(dòng)時(shí),圓球的滾動(dòng)方向和距離被內(nèi)部的一個(gè)傳感器獲得并傳送給主機(jī)。光電式鼠標(biāo)要和一個(gè)網(wǎng)格板配合使用,在鼠標(biāo)的底部有一個(gè)發(fā)光管和一個(gè)接收光線的光敏管,發(fā)光管發(fā)出的光線在網(wǎng)格板上反射后被光敏管接收。當(dāng)鼠標(biāo)在網(wǎng)格板上移動(dòng)時(shí),反射光發(fā)生變化,對(duì)這些變化進(jìn)行計(jì)數(shù)就可以算出移動(dòng)的距離并確定坐標(biāo)。上一頁(yè)下一頁(yè)返回10.1 輸入/輸出設(shè)備簡(jiǎn)介3.數(shù)字照相機(jī)數(shù)字照相機(jī)將光學(xué)信號(hào)轉(zhuǎn)換成數(shù)字式電信號(hào),并存儲(chǔ)在內(nèi)部的存儲(chǔ)器中。它有一個(gè)輸出接口可與計(jì)算機(jī)相連,通過(guò)Photoshop等軟件工具對(duì)照片進(jìn)行修改編輯,直到滿意為止。數(shù)字照相機(jī)的性能指標(biāo)有曝光方式、測(cè)光方式、對(duì)焦方式、分辨率、壓縮方案、存儲(chǔ)容量等。其中曝光方式如何把光信號(hào)通過(guò)什么樣的傳感器變成電信號(hào)是關(guān)鍵技術(shù)。分辨率決定畫面質(zhì)量,分辨率越高越好,目前已達(dá)到千萬(wàn)像素。存儲(chǔ)器容量越大存儲(chǔ)圖像幅數(shù)越多,高級(jí)產(chǎn)品已達(dá)到16GB。上一頁(yè)下一頁(yè)返回10.1 輸入/輸出設(shè)備簡(jiǎn)介4.條形碼條形碼是由一組寬度和反射率不同的、平行相鄰的“條”和“空”,按照預(yù)先規(guī)定的編碼規(guī)則組合起來(lái),用以表示一組數(shù)據(jù)的符號(hào)。這組數(shù)據(jù)可以是數(shù)字、字母或某些符號(hào)。這些符號(hào)可由機(jī)器自動(dòng)識(shí)別,并送入計(jì)算機(jī)中。超級(jí)市場(chǎng)中的商品,都用條形碼識(shí)別,它也應(yīng)用于倉(cāng)庫(kù)管理和圖書管理等領(lǐng)域。條形碼技術(shù)有:條形碼編碼規(guī)則及標(biāo)準(zhǔn)、條形碼譯碼技術(shù)、印刷技術(shù)、光電掃描技術(shù)、通信技術(shù)、計(jì)算機(jī)技術(shù)等。

上一頁(yè)返回下一頁(yè)10.1 輸入/輸出設(shè)備簡(jiǎn)介10.1.2 常用輸出設(shè)備簡(jiǎn)介輸出設(shè)備可分為顯示設(shè)備、打印設(shè)備兩種主要類型。1.顯示設(shè)備顯示器是一種將電信號(hào)轉(zhuǎn)換為可見(jiàn)光信號(hào)的設(shè)備。計(jì)算機(jī)把加工好的文字或圖形數(shù)據(jù)通過(guò)顯示設(shè)備顯示給觀者。顯示設(shè)備有幾種類型:陰極射線管(CRT)顯示器、液晶顯示器(LCD)、等離子顯示器(PDP)等。衡量顯示設(shè)備的性能指標(biāo)有分辨率和灰度級(jí)。分辨率是衡量顯示器清晰度的指標(biāo),以圖像點(diǎn)(像素)的個(gè)數(shù)為標(biāo)志。顯示器中顯示的像素越多,分辨率就越高,顯示的文字和圖像就越清晰?;叶燃?jí)是指顯示器所顯示的像素點(diǎn)的亮度差別。顯示器的灰度級(jí)越多,顯示的圖像層次就越豐富。CRT顯示器中的顯像管工作原理與電視機(jī)顯像管一樣,并且在計(jì)算機(jī)發(fā)展過(guò)程中屬于逐漸被淘汰產(chǎn)品,本書就不介紹了。下一頁(yè)返回上一頁(yè)10.1 輸入/輸出設(shè)備簡(jiǎn)介1)液晶顯示器(LCD)液晶是液態(tài)晶體的簡(jiǎn)稱,它是一種有機(jī)化合物,在一定范圍內(nèi),既具有液體的流動(dòng)性,又具有分子排列有序的晶體特性,液晶分子是棒狀結(jié)構(gòu),具有明顯的光學(xué)各向異性,它本身不發(fā)光,但能夠調(diào)制外照光以實(shí)現(xiàn)信息顯示,因此使用時(shí)需要背光源。液晶顯示器具有低工作電壓、微功耗、體輕薄、適于LSI驅(qū)動(dòng)、易于實(shí)現(xiàn)大畫面顯示、顯示色彩優(yōu)良等特點(diǎn)。目前廣泛應(yīng)用的是薄膜晶體管液晶顯示器(TFT-CLD)。上一頁(yè)下一頁(yè)返回10.1 輸入/輸出設(shè)備簡(jiǎn)介2)彩色等離子顯示器(PDP)等離子顯示技術(shù)是利用惰性氣在一定電壓作用下產(chǎn)生氣體放電現(xiàn)象的一種發(fā)光型平板顯示技術(shù)。彩色PDP技術(shù)與熒光燈顯示原理相同,即利用氣體放電產(chǎn)生紫外線,紫外線激發(fā)光至熒光粉,熒光粉發(fā)射可見(jiàn)光,使用三基色熒光粉實(shí)現(xiàn)紅、綠、藍(lán)三色,并使每基色單元實(shí)現(xiàn)256級(jí)灰度,再進(jìn)行混色達(dá)到彩色顯示的目的。制作時(shí),在兩塊平板玻璃之間,將每個(gè)顯示單元分隔成一個(gè)個(gè)密封的方格,充入混合氣體和熒光粉并用電極連接,當(dāng)電極之間放電時(shí),氣體發(fā)射的紫外線激發(fā)三原色熒光粉發(fā)光,從而顯示圖像。等離子顯示器的優(yōu)點(diǎn)是視角寬、色彩還原性好、響應(yīng)速度快、不受磁場(chǎng)干擾、無(wú)閃爍現(xiàn)象等。它適合大屏幕顯示。上一頁(yè)下一頁(yè)返回10.1 輸入/輸出設(shè)備簡(jiǎn)介3)顯示適配器主機(jī)中連接顯示設(shè)備的接口稱為顯示適配器,插卡形式的顯示適配器稱為顯示卡,如圖10-1所示。顯示適配器除實(shí)現(xiàn)一般的總線接口功能外,還可對(duì)圖形和圖像的顯示進(jìn)行緩存和處理。其工作原理為:屏幕上每個(gè)像素的信息,都用存儲(chǔ)器存起來(lái),然后按地址順序逐個(gè)地刷新顯示在屏幕上,存儲(chǔ)器有兩個(gè),一個(gè)稱作程序段緩沖存儲(chǔ)器,另一個(gè)是幀存儲(chǔ)器。程序段緩沖存儲(chǔ)器中存儲(chǔ)由計(jì)算機(jī)送來(lái)的顯示文件和交互式圖形圖像操作命令,如圖形的局部放大、平移、旋轉(zhuǎn)、比例變換、圖形的檢索,以及圖像處理等,這些操作在顯示處理器中完成,比在主機(jī)中用軟件實(shí)現(xiàn)效率要高得多。上一頁(yè)下一頁(yè)返回10.1 輸入/輸出設(shè)備簡(jiǎn)介幀存儲(chǔ)器中存放了一幀圖像或圖形信息,和屏幕上的像素一一對(duì)應(yīng),如果屏幕的分辨率為1024×1024,幀存儲(chǔ)器中就要有1024×1024個(gè)單元,如果屏幕上像素的灰度為256級(jí),幀存儲(chǔ)器中每個(gè)單元的字長(zhǎng)就應(yīng)為8位。因此,幀存儲(chǔ)器的容量直接取決于顯示器的分辨率和灰度級(jí),對(duì)于本例,幀存儲(chǔ)器要有1024×1024×8bit=1MB的容量。以上未包含顏色信息,如果考慮256顏色元素,則幀存儲(chǔ)器的容量就更大。上一頁(yè)下一頁(yè)返回10.1 輸入/輸出設(shè)備簡(jiǎn)介由于顯示適配器要處理的數(shù)據(jù)信息越來(lái)越多,傳輸率也越來(lái)越高,早期總線已無(wú)法負(fù)擔(dān),英特爾公司后來(lái)提出新型視頻標(biāo)準(zhǔn)AGP,并推出了三維圖形/圖像加速芯片。當(dāng)前市場(chǎng)上的顯示適配器都采用AGP標(biāo)準(zhǔn)。2.打印設(shè)備打印機(jī)是輸出設(shè)備的一種,它把信息打印在紙上以便人們閱讀和保存,可以說(shuō)它是人類進(jìn)行文化與信息傳播時(shí)使用最多的媒體。打印機(jī)有單色打印機(jī)和彩色打印機(jī)。1)單色打印機(jī)單色打印機(jī)有點(diǎn)陣打印機(jī)(針式打印機(jī))、噴墨打印機(jī)和激光打印機(jī)三種。(1)點(diǎn)陣打印機(jī)(針式打印機(jī))。上一頁(yè)下一頁(yè)返回10.1 輸入/輸出設(shè)備簡(jiǎn)介最便宜的打印機(jī)是點(diǎn)陣打印機(jī),其打印頭有7~24根電磁驅(qū)動(dòng)的打印針,從左到右移動(dòng)一次可打印一行。低檔打印機(jī)一般是7根針,可在一行上打印80個(gè)字符,每個(gè)字符由5×7的點(diǎn)陣組成。實(shí)際上,每個(gè)打印行都由7條水平線組成,每條水平線有5×80=400個(gè)點(diǎn)。根據(jù)被打印的字符來(lái)決定是否打印這些點(diǎn)。圖10-2(a)所示是用5×7點(diǎn)陣打印的字符“A”。顯然這個(gè)“A”是很難看的,為了提高質(zhì)量,可增加打印針的數(shù)量及重疊打印。圖10-2(b)所示是用24針互相重疊打印出的字符“A”。點(diǎn)陣打印機(jī)價(jià)格低廉(尤其耗材成本),功能可靠,但速度不高,噪音較大,而且圖形打印效果很差。目前主要用于銀行票據(jù)的打印,它可以一次打透三張帶有復(fù)寫紙功能的票據(jù)這只有針式打印機(jī)的打印針頭能辦到。它還用于超市收據(jù)條的打印,在此場(chǎng)合下只強(qiáng)調(diào)低成本。上一頁(yè)下一頁(yè)返回10.1 輸入/輸出設(shè)備簡(jiǎn)介(2)噴墨打印機(jī)。家用低檔打印機(jī)中,噴墨打印機(jī)比較流行。它的可移動(dòng)打印頭內(nèi)有一個(gè)墨盒,隨著打印頭在打印紙上水平移動(dòng),墨盒里的墨水流入它的小噴管中,墨滴在噴管中被加熱到沸騰點(diǎn),然后被噴到正對(duì)著它的打印紙上。接下來(lái)噴管進(jìn)行冷卻,吸入下一滴墨水進(jìn)行下次打印。因此,噴墨打印機(jī)的打印速度由對(duì)噴管加熱/冷卻的變換周期決定。它的打印分辨率一般是300dpi(每英寸①點(diǎn)數(shù))~720dpi,也有1440dpi的。噴墨打印機(jī)價(jià)格不高,無(wú)噪聲,輸出質(zhì)量不錯(cuò),但速度比較慢,且墨盒昂貴,墨滴有時(shí)會(huì)在打印紙上發(fā)洇。上一頁(yè)下一頁(yè)返回10.1 輸入/輸出設(shè)備簡(jiǎn)介(3)激光打印機(jī)。圖10-3所示是激光打印機(jī)的工作原理。其核心部件是可精確定位的硒鼓。開(kāi)始打印前,硒鼓被加上1000V左右的電壓,并覆蓋上一層感光材料,然后,一束激光沿鼓的橫向掃過(guò)硒鼓,用一面八角鏡來(lái)控制激光束,調(diào)制光束以產(chǎn)生具有亮點(diǎn)和黑點(diǎn)的圖案。激光束照在硒鼓表面,被激光照射到的點(diǎn)電壓被釋放,有電壓的點(diǎn)能吸附墨粉(碳粉),沒(méi)有電壓的點(diǎn)則不能。準(zhǔn)備好一條打印線后,硒鼓旋轉(zhuǎn)一個(gè)角度,開(kāi)始準(zhǔn)備下一條打印線,隨著滾動(dòng),第一條打印線上的點(diǎn)遇到了碳粉盒,里面放著可被靜電吸附的碳粉,碳粉被還保留靜電的點(diǎn)吸附,在硒鼓表面“顯現(xiàn)”出要打印的結(jié)果,接著,吸附了碳粉的硒鼓遇到了打印紙,并將吸附的碳粉傳給打印紙,打印紙被高溫滾筒的烘烤,碳粉被永久固化在紙面上,形成最后的打印結(jié)果。滾過(guò)紙后,硒鼓被放電,上面剩余的碳粉被清掃干凈,以備打印下一頁(yè)時(shí)重復(fù)上述過(guò)程。這個(gè)過(guò)程極其復(fù)雜,綜合了物理、化學(xué)、機(jī)械工程和光學(xué)工程等多門學(xué)科的知識(shí)。上一頁(yè)下一頁(yè)返回10.1 輸入/輸出設(shè)備簡(jiǎn)介打印機(jī)的邏輯電路由CPU和數(shù)兆內(nèi)存組成,用來(lái)存儲(chǔ)整頁(yè)的位圖和各種打印字體,有些字體固化在打印機(jī)中,有些可下載后裝入。多數(shù)激光打印機(jī)可以接收描述打印頁(yè)面的命令。2)彩色打印機(jī)

顯示器使用紅、綠、藍(lán)三種原色,經(jīng)組合生成各種顏色,彩色打印機(jī)則使用青、黃、品紅和黑色四種顏色作為原色(稱為CYMK打印機(jī)),生成各種顏色。目前廣泛使用的有三種彩色打印機(jī),都是基于CMYK系統(tǒng)的。最低檔的是彩色噴墨打印機(jī),其工作原理和單色噴墨打印機(jī)相同,只是用四個(gè)墨盒(分別為C、Y、M、K四種顏色)代替了原來(lái)的一個(gè)墨盒。這類打印機(jī)打出的彩色圖形效果不錯(cuò),該打印機(jī)價(jià)格適中(打印機(jī)便宜,墨盒較貴),彩色相片的打印效果也較好。上一頁(yè)下一頁(yè)返回10.1 輸入/輸出設(shè)備簡(jiǎn)介第二種彩色打印機(jī)是彩色激光打印機(jī)。它和單色激光打印機(jī)類似,只是將C、Y、M、K四種不同顏色的圖像分離出來(lái),并用不同的過(guò)渡色分別輸出。由于所有的點(diǎn)陣都是事先產(chǎn)生的,所以,一頁(yè)80平方英寸的1200×1200dpi的彩色圖像需要115000000個(gè)像素。如果每個(gè)像素用4位表示,那么光是點(diǎn)陣就需要55MB的存儲(chǔ)器,打印機(jī)還需要另外的存儲(chǔ)器供其內(nèi)部的處理器使用并表示不同的字體等。這些基本的要求使彩色激光打印機(jī)價(jià)格昂貴,但它能夠高速打印,打印質(zhì)量很高,且圖像的顏色經(jīng)久不褪。第三種彩色打印機(jī)是升華染料打印機(jī)。這種打印機(jī)的墨盒里放有C、Y、M、K四種染料,打印頭可以加熱,且熱度可以由程序控制。染料通過(guò)打印頭時(shí),馬上被氣化,并被旁邊的特制紙吸收。和所有其他種類的打印機(jī)不同,升華染料打印機(jī)能給每個(gè)像素打出幾乎連續(xù)的色彩,所以可以不用過(guò)渡色技術(shù)。小型快照打印機(jī)經(jīng)常使用染料升華技術(shù)在特別的相紙上打印色彩逼真的彩色相片。上一頁(yè)返回10.2

統(tǒng)

線系統(tǒng)總線是計(jì)算機(jī)系統(tǒng)內(nèi)各部件(CPU部件、主存部件、各輸入/輸出部件)間的公共通信線路。在現(xiàn)代計(jì)算機(jī)系統(tǒng)中,各大部件均以系統(tǒng)總線為紐帶互聯(lián),計(jì)算機(jī)系統(tǒng)總線出現(xiàn)過(guò)單總線、雙總線和三總線結(jié)構(gòu)。單總線結(jié)構(gòu)如圖10-4(a)所示,CPU、主存,以及所有I/O設(shè)備均通過(guò)這一共享的系統(tǒng)總線進(jìn)行數(shù)據(jù)傳輸,它的優(yōu)點(diǎn)是結(jié)構(gòu)簡(jiǎn)單、便于擴(kuò)充。其缺點(diǎn)是高速部件與低速部件混合使用系統(tǒng)總線,降低了數(shù)據(jù)傳輸效率并可能產(chǎn)生瓶頸問(wèn)題。單總線曾被使用在DEC公司的PDP-11小型計(jì)算機(jī)中。將速度較低的I/O設(shè)備從系統(tǒng)總線上分出去,而形成系統(tǒng)總線和I/O總線的雙總線結(jié)構(gòu)如圖10-4(b)所示。隨著外圍設(shè)備的高速發(fā)展,有的外設(shè)速度提高迅速,原有的I/O總線已不適應(yīng),如圖形、視頻和網(wǎng)絡(luò)等外設(shè)已不能在老I/O總線上運(yùn)行,所以在系統(tǒng)總線和I/O總線之間增加一條高速總線用以連接高速外圍設(shè)備,如圖10-4(c)所示。在系統(tǒng)總線設(shè)計(jì)中通常要考慮系統(tǒng)總線分類方式、總線通信同步方式以及總線爭(zhēng)用控制等幾大問(wèn)題。下一頁(yè)返回10.2 系

統(tǒng)

線10.2.1 系統(tǒng)總線種類系統(tǒng)總線包括數(shù)據(jù)總線、地址總線、控制總線和電源線。1.數(shù)據(jù)總線(DataBus,DB)數(shù)據(jù)總線用來(lái)實(shí)現(xiàn)數(shù)據(jù)傳送,一般為雙向傳送。數(shù)據(jù)總線的寬度一般有8位、16位、32位、64位等,它是系統(tǒng)總線的一個(gè)重要指標(biāo),系統(tǒng)總線寬度就是指數(shù)據(jù)總線的寬度。上一頁(yè)下一頁(yè)返回10.2 系

統(tǒng)

線2.地址總線(AddressBus,AB)地址總線用于傳送地址信號(hào),以確定所訪問(wèn)的存儲(chǔ)單元或某個(gè)I/O接口,地址總線一般有16位、20位、24位、32位等幾種寬度標(biāo)準(zhǔn)。地址總線的寬度確定了可訪問(wèn)存儲(chǔ)空間的大小。地址總線為單向總線,只有總線控制的主控部件才能向地址總線送地址信息,如CPU、DMA控制器、I/O處理機(jī)等。而沒(méi)有總線控制權(quán)力的部件,如存儲(chǔ)器就不能發(fā)送地址信號(hào),它只能接收地址信號(hào)。在現(xiàn)代計(jì)算機(jī)中,有的系統(tǒng)總線把地址總線與數(shù)據(jù)總線合用,這樣能減少芯片引腳數(shù)目。這種技術(shù)稱為地址數(shù)據(jù)復(fù)用技術(shù),即地址信號(hào)與數(shù)據(jù)信息在同一組信號(hào)線內(nèi)傳送。它是通過(guò)總線周期的時(shí)序劃分來(lái)區(qū)別的。當(dāng)今的PCI總線就使用這個(gè)技術(shù),它可以成塊傳送數(shù)據(jù),在一個(gè)總線周期中,總線先用于指定地址傳送,然后用于數(shù)據(jù)傳輸。上一頁(yè)下一頁(yè)返回10.2 系

統(tǒng)

線3.控制總線(ControlBus,CB)控制總線用來(lái)傳送各類控制/狀態(tài)信號(hào)??刂瓶偩€常分為如下幾組:(1)I/O讀寫命令,它用來(lái)在發(fā)送端和I/O控制器之間傳送數(shù)據(jù)。(2)應(yīng)答信號(hào)。如READY信號(hào),表示是否準(zhǔn)備好,為“0”表示未準(zhǔn)備好,為“1”表示已準(zhǔn)備好,這是通知接收設(shè)備的信號(hào)。ACKNOWLEDGE為應(yīng)答信號(hào),表示接收設(shè)備已接收到數(shù)據(jù),發(fā)送設(shè)備根據(jù)它是否為“1”來(lái)確定是否作下一次傳送。應(yīng)答信號(hào)多應(yīng)用于異步通信。(3)地址有效信號(hào)。地址鎖存信號(hào)(如ALE)表示地址有效,常用來(lái)鎖存地址/數(shù)據(jù)復(fù)用線上的地址信號(hào)。DMA(直接存儲(chǔ)器存取控制器)地址有效信號(hào)(如AEN)有效時(shí)表明CPU已放棄總線,地址總線上是DMA控制器發(fā)出的內(nèi)存地址,在DMA方式下它常用于阻止I/O譯碼。上一頁(yè)下一頁(yè)返回10.2 系

統(tǒng)

線(4)總線請(qǐng)求與總線使用信號(hào)。這組信號(hào)用于申請(qǐng)總線及總線占用表示。如PCI總線中的REQ#和GNT#信號(hào),REQ#為申請(qǐng)總線使用權(quán)信號(hào),GNT#為得到總線使用權(quán)信號(hào)。(5)其他控制信號(hào)。常見(jiàn)的有復(fù)位信號(hào)RESET、時(shí)鐘信號(hào)CLK、多事務(wù)鎖定信號(hào)LOCK、地址和數(shù)據(jù)校驗(yàn)位信號(hào)PAR及從設(shè)備立即終止事務(wù)信號(hào)STOP等。4.電源線許多總線標(biāo)準(zhǔn)中都包含電源線的定義,其主要有+5V邏輯電源、GND邏輯電源地、?5V輔助電源、±12V輔助電源。上一頁(yè)下一頁(yè)返回10.2 系

統(tǒng)

線10.2.2 總線通信同步方式1.同步通信在同步方式中,通信雙方由統(tǒng)一的時(shí)鐘控制數(shù)據(jù)的傳送,時(shí)鐘通常由CPU發(fā)出,并送到總線上的所有部件,經(jīng)過(guò)一段固定時(shí)間,本次總線傳送周期結(jié)束,進(jìn)入下一個(gè)周期。圖10-5所示為CPU與主存之間通信方式的簡(jiǎn)單例子。CPU在時(shí)鐘T0的上升沿將主存地址放上地址總線,稍后在T0的下降沿發(fā)出讀命令,在T1時(shí)鐘周期的下降沿主存將讀出的信息放在數(shù)據(jù)總線上,CPU接下來(lái)在T2時(shí)鐘周期的下降沿從數(shù)據(jù)總線上接收信息。CPU在T2結(jié)束時(shí)撤去地址信號(hào),撤去讀信號(hào)。CPU在下次總線操作的T0周期的下降沿到來(lái)之前撤掉數(shù)據(jù)信息,不再占用數(shù)據(jù)總線。

上一頁(yè)下一頁(yè)返回10.2 系

統(tǒng)

線這種通信方式適用于系統(tǒng)中各設(shè)備部件對(duì)總線操作速度固定而且一致的場(chǎng)合。另外,同步總線長(zhǎng)度不能太長(zhǎng),否則將發(fā)生時(shí)鐘相位相移的現(xiàn)象。2.異步通信異步傳送方式是指發(fā)送和接收雙方完全根據(jù)自身的工作速度和距離的遠(yuǎn)近來(lái)確定總線時(shí)間安排。在異步總線上沒(méi)有強(qiáng)制遵守的時(shí)鐘信號(hào),即統(tǒng)一的時(shí)鐘控制,取而代之的是兩根應(yīng)答信號(hào)線,也叫“握手”信號(hào)。圖10-6所示為CPU與某I/O設(shè)備間讀操作異步通信方式的例子。在這里兩根應(yīng)答信號(hào)線為MSYN(主同步)和SSYN(從同步)。t0

時(shí)刻CPU將外設(shè)端口地址送上地址總線,并發(fā)讀命令read,稍后在t1

時(shí)刻讓MSYN信號(hào)有效(t1~t0這段時(shí)間是地址信號(hào)到達(dá)設(shè)備并譯碼需要花的時(shí)間);在t2

時(shí)刻某I/O設(shè)備收到讀命令并完成地址譯碼后,又收到MSYN主同步控制信號(hào),開(kāi)始作動(dòng)作,將輸入給CPU的數(shù)據(jù)放在數(shù)據(jù)總線上,并讓SSYN信號(hào)有效,作為對(duì)主控設(shè)備MSYN信號(hào)的應(yīng)答;MSYN有效才引起SSYN有效。上一頁(yè)下一頁(yè)返回10.2 系

統(tǒng)

線在t3

時(shí)間SSYN信號(hào)傳到主控設(shè)備CPU,對(duì)主控設(shè)備來(lái)講,這意味著自己發(fā)出的地址信息和讀命令已被從設(shè)備(某I/O設(shè)備)接收,數(shù)據(jù)已在數(shù)據(jù)總線上準(zhǔn)備好,主控設(shè)備CPU在t3時(shí)刻接收數(shù)據(jù)總線上的數(shù)據(jù),與此同時(shí)撤下MSYN信號(hào)作為應(yīng)答。在t4

時(shí)刻主控設(shè)備CPU再撤去地址信息和讀命令。在t5

時(shí)刻MSYN的下降傳到了從設(shè)備某I/O設(shè)備,從設(shè)備知道主設(shè)備已接收數(shù)據(jù),并撤去總線上的數(shù)據(jù),同時(shí)降下SSYN信號(hào),至此一次異步總線傳送結(jié)束。圖中t1

~t2

和t2~t3這段時(shí)間不固定,取決于主設(shè)備與從設(shè)備的距離、接口線路工作速度等因素。t3~t4

與t0~t1

類似。異步通信的特點(diǎn)是各設(shè)備都依自身固有的速度工作,按需索取時(shí)間,所以它便于實(shí)現(xiàn)不同速度設(shè)備之間的數(shù)據(jù)傳送。上一頁(yè)下一頁(yè)返回10.2 系

統(tǒng)

線10.2.3總線爭(zhēng)用控制系統(tǒng)總線上連接著許多設(shè)備或部件,它們都共用這條系統(tǒng)總線進(jìn)行信息傳輸,這樣就存在多個(gè)設(shè)備或部件同時(shí)申請(qǐng)使用總線的情況,為保證同一時(shí)刻總線使用者的唯一性,需要設(shè)置總線控制器來(lái)解決總線爭(zhēng)用問(wèn)題。獲得總線控制權(quán)的設(shè)備稱為總線的主設(shè)備,被主設(shè)備訪問(wèn)的設(shè)備稱為從設(shè)備。通常CPU為主設(shè)備,主存儲(chǔ)器為從設(shè)備,I/O設(shè)備可以為主設(shè)備或從設(shè)備??偩€控制器決定由哪個(gè)主設(shè)備獲得控制權(quán),稱為總線裁決。總線裁決控制方式分為集中式和分布式。裁決電路集中在一起的稱為集中式控制。裁決電路分散于總線上的各個(gè)部件中的稱為分布式控制。由于目前計(jì)算機(jī)系統(tǒng)以集中式為主,本節(jié)只討論集中式控制方式。集中式控制主要有鏈?zhǔn)讲樵兎绞?、?jì)數(shù)器查詢方式和獨(dú)立請(qǐng)求方式。上一頁(yè)下一頁(yè)返回10.2 系

統(tǒng)

線1.鏈?zhǔn)讲樵兎绞芥準(zhǔn)讲樵兎绞揭卜Q菊花鏈(daisychain)方式,如圖10-7所示。在這種方式中,各申請(qǐng)總線的設(shè)備或模塊合用一條總線使用的請(qǐng)求信號(hào)線BR(BusRequest),而總線控制器的響應(yīng)信號(hào)線則串接在各設(shè)備中。只要有一個(gè)設(shè)備發(fā)出總線請(qǐng)求,這條中斷請(qǐng)求線就被置為“1”,控制器通過(guò)發(fā)出總線可用信號(hào)BA(BusAvailable)允許設(shè)備使用總線,這個(gè)信號(hào)首先被第一個(gè)設(shè)備收到。如果第一個(gè)設(shè)備沒(méi)有發(fā)出總線請(qǐng)求,它就把這個(gè)信號(hào)傳遞給下一個(gè)設(shè)備,若第一個(gè)設(shè)備發(fā)出了總線請(qǐng)求,那么內(nèi)部電路封鎖BA信號(hào)往下一個(gè)設(shè)備傳遞,自己占用總線,下一個(gè)設(shè)備的總線請(qǐng)求暫時(shí)得不到響應(yīng)。上一頁(yè)下一頁(yè)返回10.2 系

統(tǒng)

線顯然在鏈?zhǔn)讲樵兎绞较拢娇拷刂破鞯脑O(shè)備得到總線使用權(quán)的機(jī)會(huì)越多,也就是它的優(yōu)先級(jí)越高。設(shè)備在獲得總線后發(fā)出一個(gè)總線忙的信號(hào)BB(BusBusy),直到總線使用完畢后取消這個(gè)信號(hào)以釋放總線。總線釋放后其他設(shè)備可使用。鏈?zhǔn)讲樵兎绞娇刂七壿嬰娐泛?jiǎn)單,擴(kuò)充設(shè)備容易實(shí)現(xiàn)。但BA信號(hào)線的連接方式唯一地確定了各部件的優(yōu)先順序,缺乏靈活性,中途一個(gè)設(shè)備有故障,會(huì)影響到后面的各設(shè)備。上一頁(yè)下一頁(yè)返回10.2 系

統(tǒng)

線2.計(jì)數(shù)器查詢方式在計(jì)數(shù)器查詢方式中,總線上的任一設(shè)備申請(qǐng)使用總線時(shí),通過(guò)BR線發(fā)出總線請(qǐng)求??偩€控制器接到請(qǐng)求信號(hào)以后,按計(jì)數(shù)器的值對(duì)各設(shè)備進(jìn)行查詢,以尋找發(fā)出總線請(qǐng)求的設(shè)備,計(jì)數(shù)值與設(shè)備號(hào)相同的設(shè)備可以發(fā)出BB信號(hào)并使用總線,如圖10-8所示。計(jì)數(shù)器的計(jì)數(shù)值可以從某個(gè)初始值開(kāi)始,也可以從上一次計(jì)數(shù)的終止值開(kāi)始。如果計(jì)數(shù)值從一個(gè)固定的值開(kāi)始,則其等效于鏈?zhǔn)讲樵兎绞?,各設(shè)備使用總線的優(yōu)先級(jí)是固定的。如果計(jì)數(shù)值從上次終止值開(kāi)始,則每個(gè)設(shè)備使用總線的機(jī)會(huì)相等。計(jì)數(shù)器查詢方式的優(yōu)先級(jí)設(shè)置比較靈活,但它需要額外的計(jì)數(shù)線路,而且計(jì)數(shù)線路的數(shù)量限制了設(shè)備的數(shù)量。上一頁(yè)下一頁(yè)返回10.2 系

統(tǒng)

線3.獨(dú)立請(qǐng)求方式

另外一種總線請(qǐng)求方式是獨(dú)立請(qǐng)求方式,如圖10-9所示。每個(gè)設(shè)備都有一個(gè)自己的總線請(qǐng)求信號(hào)線BRi送到總線控制器,BRi之間相互獨(dú)立,控制器也給各設(shè)備分別發(fā)送總線可用信號(hào)BAi。為處理多個(gè)總線請(qǐng)求,控制器在設(shè)計(jì)時(shí)可以給各請(qǐng)求線以固定的優(yōu)先級(jí),也可以設(shè)計(jì)成可用程序修改優(yōu)先級(jí)??刂破鲀?nèi)部有一個(gè)優(yōu)先級(jí)裁決電路(主要由帶優(yōu)先權(quán)編碼器構(gòu)成)決定優(yōu)先響應(yīng)哪一個(gè)總線請(qǐng)求。獨(dú)立請(qǐng)求方式的優(yōu)點(diǎn)是響應(yīng)速度快,總線可用信號(hào)BA直接發(fā)送到有關(guān)設(shè)備,不必在設(shè)備間傳遞或者查詢,而且對(duì)優(yōu)圖10-9獨(dú)立請(qǐng)求方式先級(jí)的控制十分靈活。這種方式的局限性是設(shè)備的數(shù)量受到請(qǐng)求信號(hào)線和總線可用信號(hào)線的限制。獨(dú)立請(qǐng)求方式可以和鏈?zhǔn)讲樵兎绞浇Y(jié)合,構(gòu)成分組鏈?zhǔn)讲樵兎绞?,第一?jí)采用獨(dú)立請(qǐng)求方式,第二級(jí)把每個(gè)BAi作為一條鏈,采用鏈?zhǔn)讲樵兎绞?,這是許多計(jì)算機(jī)系統(tǒng)所采用的方式,可靈活設(shè)置優(yōu)先級(jí),并可連接較多的設(shè)備。上一頁(yè)下一頁(yè)返回10.2 系

統(tǒng)

線10.2.4 微機(jī)總線本節(jié)討論現(xiàn)代微機(jī)中常用的幾種總線:ISA總線、PCI總線、通用串行總線USB和圖形總線AGP。ISA總線是對(duì)最早IBMPC總線稍作擴(kuò)展后得到的,為向后兼容,它依然存在于現(xiàn)代PC機(jī)中。PCI總線是隨微機(jī)發(fā)展的需要,為提高傳輸速率而發(fā)展起來(lái)的,它比ISA總線寬度更寬,速度更快,適合現(xiàn)代外設(shè)的工作速度。USB總線主要用于連接鍵盤、鼠標(biāo)和移動(dòng)盤等的慢速外設(shè)。AGP總線是專門連接顯示卡的總線?,F(xiàn)代微機(jī)總線結(jié)構(gòu)如圖10-10所示。

上一頁(yè)下一頁(yè)返回10.2 系

統(tǒng)

線1.ISA總線早期ISA總線適用于8086的IBMPC/XT微機(jī)系統(tǒng),它有62根信號(hào)線,其中20根用于內(nèi)存地址,8根用于數(shù)據(jù)線,4個(gè)讀/寫信號(hào)分別操作內(nèi)存讀、內(nèi)存寫、外設(shè)讀和外設(shè)寫,還有6個(gè)中斷請(qǐng)求線、3路DMA請(qǐng)求,此外還包括時(shí)鐘、電源線和地址。20世紀(jì)80年代中期,ISA總線擴(kuò)充到16位,適用于CPU為80286的IBMPC/AT系統(tǒng)??偩€信號(hào)連接到2個(gè)插座,一個(gè)是與XT總線兼容的62針插座,引線標(biāo)以A1~A31和B1~B31,另一個(gè)為擴(kuò)充的36針插座,引線標(biāo)以C1~C18和D1~D18。增加信號(hào)線后可使數(shù)據(jù)線達(dá)到16位,地址線達(dá)到24根,使尋址空間達(dá)到16M內(nèi)存,另外可有16級(jí)中斷和7個(gè)DMA通道,再加上8位與16位區(qū)別控制信號(hào)線等就構(gòu)成了新的ISA-16總線。ISA總線的最高傳輸速度是8.33MB/s,每個(gè)周期傳輸2字節(jié),帶寬最多也就是16.7MB/s。上一頁(yè)下一頁(yè)返回10.2 系

統(tǒng)

線2.PCI總線ISA總線之后是EISA總線,它在ISA總線的基礎(chǔ)上擴(kuò)展到32位,每總線周期可傳4字節(jié),帶寬達(dá)到了33.3MB/s,但隨著Windows視窗圖形界面和全屏圖像的使用,原有總線傳輸速度很難達(dá)到要求,所以英特爾公司分別于1992年6月和1995年6月頒布了PCIV1.0和V2.1規(guī)范,PCI的英文全稱是PeripheralComponentInterconnect,譯為“外圍部件互聯(lián)”。PCI是一種同步且獨(dú)立于處理器的32位(V2.1支持64位)局部總線,它除了適用于英特爾公司的芯片外,還適用于其他型號(hào)的微處理器芯片。PCI總線設(shè)計(jì)成即插即用,即在加電時(shí),BIOS可自動(dòng)檢測(cè)機(jī)器配置,而給各個(gè)外圍設(shè)備分配中斷請(qǐng)求號(hào)、存儲(chǔ)器的緩沖區(qū)等,從而避免了IRQ(中斷請(qǐng)求)、DMA(直接存儲(chǔ)器存?。┖虸/O通道之間的沖突。PCIV1.0支持33MHz工作頻率,最大傳輸率為133MB/s,而工作在V2.1支持的66MHz頻率時(shí),其傳輸率為264MB/s或528MB/s。上一頁(yè)下一頁(yè)返回10.2 系

統(tǒng)

線PCI總線是同步總線,總線事務(wù)發(fā)生在一個(gè)主設(shè)備和一個(gè)從設(shè)備之間,主設(shè)備為發(fā)起者,從設(shè)備為接受者。為降低PCI總線的管腳數(shù)目,對(duì)地址信號(hào)線和數(shù)據(jù)信號(hào)線采用復(fù)用技術(shù),這樣PCI卡上只需要64位傳輸線就可同時(shí)滿足地址信號(hào)和數(shù)據(jù)信號(hào)的需求。復(fù)用技術(shù)是指地址信號(hào)與數(shù)據(jù)信號(hào)在同一組信號(hào)線上傳輸,不再分成兩組線。復(fù)用的地址信號(hào)和數(shù)據(jù)信號(hào)的工作流程為:對(duì)讀操作,在第一個(gè)總線周期,主設(shè)備將地址送入總線并傳遞給從設(shè)備。在第二個(gè)總線周期,主設(shè)備撤銷地址信號(hào)并將控制權(quán)交給從設(shè)備。在第三個(gè)總線周期,從設(shè)備將讀出的數(shù)據(jù)送上總線并傳遞給主設(shè)備。對(duì)寫操作,主設(shè)備不需要交出總線的控制權(quán),因?yàn)榈刂泛蛿?shù)據(jù)都是由主設(shè)備發(fā)出的。這樣可以看出完成最小事務(wù)的一次傳輸也需要三個(gè)總線周期,所以傳輸有連續(xù)關(guān)系的數(shù)據(jù),效率最高。上一頁(yè)下一頁(yè)返回10.2 系

統(tǒng)

線PCI總線體系結(jié)構(gòu)的兩個(gè)關(guān)鍵部件是兩片搭橋芯片,北橋芯片連接了CPU、內(nèi)存、AGP總線和PCI總線,南橋芯片將PCI總線和ISA總線連在一起。主板上留出多個(gè)PCI擴(kuò)展槽,供用戶增加新的高速外部設(shè)備,還有兩個(gè)ISA插槽,可以增加低速外設(shè)。表10-1所示為必備的PCI總線信號(hào),該表針對(duì)32位模式,當(dāng)PCI工作在64位模式時(shí)可使用表10-2。每個(gè)信號(hào)線的詳細(xì)描述請(qǐng)讀者查閱有關(guān)資料,這里不再介紹。3.AGP總線(加速圖形接口總線)隨著圖形和圖像處理速度的提高,即使有圖形加速卡幫忙,PCI總線也難以滿足三維圖形所需要的傳輸率,所以產(chǎn)生了AGP(AcceleratedGraphicsPort)總線。AGP總線把主存和顯存連接起來(lái),不再走PCI總線,同時(shí)不再使用圖形加速卡,提高了傳輸率。上一頁(yè)下一頁(yè)返回10.2 系

統(tǒng)

線4.USB總線當(dāng)用戶需要增添新的設(shè)備時(shí),要把機(jī)箱打開(kāi),插入卡后重新啟動(dòng)計(jì)算機(jī),這很不方便。另外ISA和PCI插槽也有限,慢速設(shè)備也要占用PCI接口。為克服以上缺點(diǎn),在20世紀(jì)90年代中期,七家公司(Compaq、DEC、IBM、Intel、Microsoft、NEC和NorthernTelecom)的代表走到一起,設(shè)計(jì)了一個(gè)將低速輸入/輸出設(shè)備連接到計(jì)算機(jī)的方案,這就是通用串行總線(UniversalSerialBus,USB)。USB設(shè)計(jì)的主要目標(biāo)如下:(1)用戶不必再設(shè)置卡上、設(shè)備上的開(kāi)關(guān)或跳線;(2)用戶不必再打開(kāi)機(jī)箱來(lái)安裝新的輸入/輸出設(shè)備;(3)只需要一根電纜線就可以將所有設(shè)備連接起來(lái);(4)輸入/輸出設(shè)備可以從電纜上得到電源;上一頁(yè)下一頁(yè)返回10.2 系

統(tǒng)

線(5)單臺(tái)計(jì)算機(jī)最多可連接127個(gè)設(shè)備;(6)系統(tǒng)能支持實(shí)時(shí)設(shè)備(如聲卡、電話);(7)計(jì)算機(jī)運(yùn)行的時(shí)候也可以安裝設(shè)備;(8)安裝新設(shè)備后不必重新啟動(dòng)計(jì)算機(jī);(9)新的總線和連接它的輸入/輸出設(shè)備的生產(chǎn)成本不應(yīng)該太高。USB達(dá)到了所有這些目標(biāo)。它是為低速的設(shè)備,如鍵盤、鼠標(biāo)、照相機(jī)、快照掃描儀、數(shù)字電話等設(shè)計(jì)的,帶寬為1.5MB/s。對(duì)許多外設(shè)(如鍵盤、鼠標(biāo)、掃描儀、打印機(jī)等)來(lái)說(shuō),帶寬是足夠的,但當(dāng)同時(shí)運(yùn)行幾臺(tái)高性能外設(shè)時(shí),就會(huì)發(fā)生問(wèn)題。上一頁(yè)返回10.3 輸入/輸出接口總線使主機(jī)和外圍設(shè)備及外圍設(shè)備之間能進(jìn)行數(shù)據(jù)交換,但各個(gè)設(shè)備由于工作速度不一致,傳輸數(shù)據(jù)寬度也不一致,不能直接掛在總線上,所以必須每個(gè)設(shè)備有一個(gè)部件,它的功能就是把設(shè)備要傳輸?shù)臄?shù)據(jù)調(diào)整到符合總線要求,再送上總線,這個(gè)介于總線與設(shè)備之間的部件稱為I/O接口。I/O接口的位置如圖10-11所示。

上一頁(yè)下一頁(yè)返回10.3 輸入/輸出接口根據(jù)接口所處位置,接口應(yīng)具有如下主要功能:(1)匹配主機(jī)與外設(shè)的速度差距。主機(jī)傳送信息的速度高,外設(shè)發(fā)送或接收信息的速度低,接口應(yīng)具有對(duì)數(shù)據(jù)信息傳送速度的緩沖作用。(2)實(shí)現(xiàn)數(shù)據(jù)格式的轉(zhuǎn)換。接口能將串行傳送轉(zhuǎn)換成并行傳送,或者將并行傳送轉(zhuǎn)換成串行傳送,以滿足主機(jī)和外部設(shè)備對(duì)信息處理格式的不同要求。(3)傳送主機(jī)控制命令。接口能記錄和識(shí)別主機(jī)傳送來(lái)的命令,并將命令傳送到設(shè)備。這些命令有啟動(dòng)、停止、讀、寫等。上一頁(yè)下一頁(yè)返回10.3 輸入/輸出接口(4)反映設(shè)備的工作狀態(tài)。進(jìn)行輸入/輸出操作時(shí),接口隨時(shí)采集并保存設(shè)備的工作狀況,以備主機(jī)查詢。這些狀態(tài)有:設(shè)備正在工作、停止工作、出現(xiàn)故障、中斷請(qǐng)求等。(5)識(shí)別和指示數(shù)據(jù)傳送的地址。接口能通過(guò)地址識(shí)別線路,判定主機(jī)要求交換信息的設(shè)備,是否是本接口連接的設(shè)備,如果不是,就拒絕交換,當(dāng)信息傳送時(shí),接口能指出信息在主存中的地址。按照數(shù)據(jù)信息格式的不同,接口可分為串行接口和并行接口兩大類。上一頁(yè)下一頁(yè)返回10.3 輸入/輸出接口10.3.1 串行接口串行接口:接口和設(shè)備之間是一位一位地串行傳送數(shù)據(jù),而接口和主機(jī)之間則是按字或字節(jié)并行傳送數(shù)據(jù)。接口能完成“串”轉(zhuǎn)“并”或“并”轉(zhuǎn)“串”的轉(zhuǎn)換?,F(xiàn)在廣泛使用的串行接口是通用異步接收器/發(fā)送器(UART),如圖10-12所示。它由接收器、發(fā)送器和控制部件組成。接收器中的接收移位寄存器,逐位接收設(shè)備傳送的串行數(shù)據(jù),存滿后并行送入接收緩沖寄存器,并通過(guò)I/O總線傳給主機(jī)。UART采用的是異步串行數(shù)據(jù)傳送格式,如圖10-13所示。上一頁(yè)下一頁(yè)返回10.3 輸入/輸出接口每個(gè)傳送的字符由1位起始位、8個(gè)數(shù)據(jù)位、1個(gè)終止位組成。兩個(gè)相鄰字符之間的間隔叫空閑位,它是任意長(zhǎng)度的高電平。當(dāng)接收器發(fā)現(xiàn)一個(gè)起始位時(shí),對(duì)一個(gè)新字符由低位到高位逐位接收,當(dāng)計(jì)到第9位時(shí),應(yīng)是一個(gè)高電平終止位。接收到終止位,則接收移位寄存器已裝好傳送的字符,UART控制部件產(chǎn)生裝好信號(hào),讓接收緩沖寄存器接收數(shù)據(jù),同時(shí)數(shù)據(jù)到齊,觸發(fā)器DA置“1”,向CPU提出發(fā)送數(shù)據(jù)請(qǐng)求,CPU取走數(shù)據(jù)并置DA為“0”。發(fā)送器的操作過(guò)程與接收器相反。發(fā)送器有一個(gè)數(shù)據(jù)取空觸發(fā)器TBE。UART控制部件接收由CPU命令形成的“數(shù)據(jù)輸出使能”信號(hào),并將I/O總線上的數(shù)據(jù)打入發(fā)送緩沖寄存器,同時(shí)置TBE為“0”,表示發(fā)送緩沖寄存器已被占用,CPU此時(shí)不能再發(fā)送新數(shù)據(jù)。此后發(fā)送緩沖寄存器把數(shù)據(jù)發(fā)送到發(fā)送移位寄存器,并逐位串行發(fā)送輸出,同時(shí)控制部件置TBE為“1”,向CPU繼續(xù)申請(qǐng)新的字符信息。上一頁(yè)下一頁(yè)返回10.3 輸入/輸出接口10.3.2 并行接口并行接口:不管是接口與設(shè)備,還是接口與主機(jī)之間都是按字或字節(jié)并行傳送數(shù)據(jù)信息。并行接口中使用較普遍的是Intel8255A,它是一種通用的可編程的并行接口,可用于打印機(jī)、A/D轉(zhuǎn)換器、D/A轉(zhuǎn)換器和CRT字符顯示器等設(shè)備接口,如圖10-14所示。8255A有A、B、C三個(gè)數(shù)據(jù)端口,每個(gè)端口有8位,其中端口C又可分成兩個(gè)各4位的獨(dú)立端口。另外還有1個(gè)端口,它接收CPU的命令,確定上述3個(gè)端口的工作方式,這個(gè)端口稱為控制端口??刂贫丝诜稚⒂贏、B兩組控制部件中。由于8255A的工作方式隨計(jì)算機(jī)程序控制方式的不同而改變,因此稱之為可編程并行接口。上一頁(yè)下一頁(yè)返回10.3 輸入/輸出接口8255A有三種基本工作方式。1.方式0方式0提供了一種簡(jiǎn)單的I/O操作功能。3個(gè)端口都能作為輸入或輸出端口,不需要握手控制信息,而只是簡(jiǎn)單的輸入或輸出。2.方式1端口A及端口B可作為一般的輸入/輸出口,而端口C用來(lái)產(chǎn)生端口A及端口B的握手控制信號(hào)。3.方式2此方式只適用于端口A,端口A是雙向總線,既可向總線發(fā)送數(shù)據(jù),又可在總線上接收數(shù)據(jù)。端口C有5位作為控制信號(hào)。使用8255A時(shí),首先要由CPU送來(lái)控制字,這個(gè)控制字是由用戶用程序輸入的,它決定了8255A端口的功能,然后再用傳送指令完成CPU和端口、端口和設(shè)備之間的數(shù)據(jù)傳送。上一頁(yè)下一頁(yè)返回10.3 輸入/輸出接口10.3.3接口尋址每個(gè)設(shè)備對(duì)應(yīng)的接口中有數(shù)個(gè)寄存器,而每個(gè)寄存器要能被CPU訪問(wèn)到,這樣所有接口中的寄存器集合起來(lái),數(shù)目就大了,為了唯一找到它們,就產(chǎn)生了接口尋址問(wèn)題。CPU對(duì)外設(shè)接口中的尋址有兩種基本方法,一種是統(tǒng)一編址法,一種是單獨(dú)編址法。1.統(tǒng)一編址法將I/O接口中的有關(guān)寄存器看作存儲(chǔ)器單元,與主存儲(chǔ)器單元統(tǒng)一編址,這樣對(duì)I/O接口的訪問(wèn)就如同對(duì)主存單元的訪問(wèn)一樣。這種編址方法的特點(diǎn)是指令系統(tǒng)中不設(shè)專門的I/O指令,可通過(guò)所有內(nèi)存的操作指令操作I/O接口。其優(yōu)點(diǎn)是可利用許多訪存指令進(jìn)行輸入/輸出操作,程序設(shè)計(jì)比較簡(jiǎn)單。其缺點(diǎn)是占用了存儲(chǔ)器的地址空間,即減小了可訪問(wèn)的內(nèi)存空間,另外會(huì)影響主存儲(chǔ)器管理和主存儲(chǔ)器空間的擴(kuò)展。上一頁(yè)下一頁(yè)返回10.3 輸入/輸出接口2.單獨(dú)編址法這種方法把主存儲(chǔ)器地址空間和I/O接口地址空間分開(kāi)處理。設(shè)置單獨(dú)的I/O地址空間,為I/O接口中的每個(gè)寄存器分配一個(gè)I/O地址,使用專門的I/O指令,并設(shè)置專門的信號(hào)線來(lái)區(qū)分當(dāng)前是主存儲(chǔ)器訪問(wèn)還是I/O訪問(wèn),同時(shí)控制器中要增加解釋輸入/輸出指令的電路。例如在Intel8086中有IN和OUT兩條指令表示輸入和輸出操作,并在M/IO信號(hào)線=1時(shí)訪問(wèn)I/O端口,M/IO信號(hào)線=0時(shí)訪問(wèn)主存儲(chǔ)器。其優(yōu)點(diǎn)是不占用主存儲(chǔ)器空間,主存空間和I/O空間地址可以重疊,兩者不會(huì)產(chǎn)生混亂。其缺點(diǎn)是增加了硬件開(kāi)銷,I/O指令(IN,OUT)功能較弱,只能作傳送,當(dāng)對(duì)端口進(jìn)行某些操作時(shí),必須先將端口內(nèi)容讀入到CPU內(nèi)的通用寄存器中(如用“INAX,端口地址”指令),然后用相應(yīng)指令進(jìn)行操作,最后再將結(jié)果寫回端口(如用“OUT端口地址,AX”指令)。上一頁(yè)下一頁(yè)返回10.4 輸入/輸出控制方式主機(jī)與外圍設(shè)備進(jìn)行信息交換的通路——系統(tǒng)總線,和為解決兩者進(jìn)行信息交換中出現(xiàn)的速度與數(shù)據(jù)格式等問(wèn)題而設(shè)置的接口,前面已介紹過(guò),本節(jié)主要研究主機(jī)與外圍設(shè)備進(jìn)行信息交換時(shí)的控制問(wèn)題。CPU啟動(dòng)外圍設(shè)備進(jìn)行讀/寫操作時(shí),外設(shè)含有機(jī)械運(yùn)動(dòng)時(shí)間(如打印機(jī)走紙、磁頭移動(dòng)、人類擊鍵的肌肉運(yùn)動(dòng)等),在這段時(shí)間內(nèi)CPU是等待,還是為了提高效率而執(zhí)行別的程序呢?選擇前者,則CPU執(zhí)行效率大大降低;選擇后者,則設(shè)備準(zhǔn)備好數(shù)據(jù)后如何通知CPU,成為本節(jié)討論的問(wèn)題。上述問(wèn)題的處理方式,稱為主機(jī)與外圍設(shè)備間輸入/輸出控制方式,或稱為信息傳送控制方式。在計(jì)算機(jī)發(fā)展史中有5種常用的控制方式。上一頁(yè)下一頁(yè)返回10.4 輸入/輸出控制方式10.4.1程序直接控制方式程序直接控制方式就是通過(guò)CPU執(zhí)行程序來(lái)控制主機(jī)和外圍設(shè)備之間的信息傳送。其方法是在用戶和程序中安排一段由輸入/輸出指令和其他指令所組成的程序段,直接控制外圍設(shè)備的工作。傳送數(shù)據(jù)時(shí),CPU首先啟動(dòng)設(shè)備,發(fā)出啟動(dòng)命令,接著CPU等待外圍設(shè)備完成接收或發(fā)送數(shù)據(jù)的準(zhǔn)備工作。在等待時(shí)間內(nèi),CPU不斷地用一條測(cè)試指令檢測(cè)外圍設(shè)備工作狀態(tài)觸發(fā)器。一旦測(cè)試到狀態(tài)觸發(fā)器已“準(zhǔn)備好”,即進(jìn)行數(shù)據(jù)傳送,否則繼續(xù)測(cè)試,如圖10-15所示。上一頁(yè)下一頁(yè)返回10.4 輸入/輸出控制方式這種控制方式的硬件電路簡(jiǎn)單,但CPU和外圍設(shè)備在時(shí)間安排上串行工作,由于CPU的速度比I/O設(shè)備快得多,所以CPU在大量時(shí)間中都處于等待狀態(tài),使系統(tǒng)效率大大降低。它適用于下述場(chǎng)合:CPU速度本身不高,效率問(wèn)題不是很重要,因而允許在I/O操作中CPU不干別的事;CPU的工作方式使其在I/O過(guò)程中無(wú)別事可干,因而只能處于等待狀態(tài)。上一頁(yè)下一頁(yè)返回10.4 輸入/輸出控制方式10.4.2程序中斷控制方式了克服程序直接控制方式中CPU運(yùn)行效率低的問(wèn)題,20世紀(jì)50年代中期人們引入了“中斷”概念。CPU啟動(dòng)外圍設(shè)備后,在等待外圍設(shè)備的機(jī)械準(zhǔn)備期間,CPU繼續(xù)執(zhí)行本用戶程序或其他用戶程序(由操作系統(tǒng)分配任務(wù)),不讓CPU閑置下來(lái)。當(dāng)外圍設(shè)備準(zhǔn)備好數(shù)據(jù)后主動(dòng)向CPU提出申請(qǐng),要求傳送數(shù)據(jù),這時(shí)CPU暫時(shí)停下正在執(zhí)行的程序,為外圍設(shè)備傳送數(shù)據(jù),這就實(shí)現(xiàn)了主機(jī)與外圍設(shè)備的并行工作。隨著中斷技術(shù)的擴(kuò)展與提高,人們又把很多事物處理納入中斷范圍,如硬件故障、算術(shù)出錯(cuò)、非法指令、實(shí)時(shí)控制和系統(tǒng)調(diào)用等都由中斷來(lái)管理。CPU在運(yùn)行時(shí),出現(xiàn)某種緊急事件,CPU暫時(shí)停下現(xiàn)行程序,轉(zhuǎn)向?yàn)樵撌录?wù),待事件處理完畢后,再返回原程序繼續(xù)執(zhí)行,這個(gè)過(guò)程稱為中斷。上一頁(yè)下一頁(yè)返回10.4 輸入/輸出控制方式因此,中斷過(guò)程實(shí)質(zhì)上是程序切換過(guò)程,它暫停原來(lái)正在執(zhí)行的程序,切換為針對(duì)某種隨機(jī)事件而編制的處理程序(后面稱為中斷服務(wù)程序),執(zhí)行完中斷服務(wù)程序后,又回去繼續(xù)執(zhí)行被暫停的原程序。所謂切換就是往程序計(jì)數(shù)器PC里放不同的地址值。上一頁(yè)下一頁(yè)返回10.4 輸入/輸出控制方式1.中斷處理過(guò)程當(dāng)CPU執(zhí)行主程序時(shí),產(chǎn)生中斷,CPU的中斷處理過(guò)程如圖10-16所示。(1)關(guān)中斷。為了保證本次中斷響應(yīng)過(guò)程不受干擾,CPU在進(jìn)入中斷周期后,把中斷允許觸發(fā)器置“0”,不再響應(yīng)新的中斷,這個(gè)過(guò)程由硬件自動(dòng)實(shí)現(xiàn)(由中斷周期對(duì)應(yīng)的一段微程序來(lái)實(shí)現(xiàn))。這是為了保存斷點(diǎn)和使現(xiàn)場(chǎng)的動(dòng)作順利完成,否則不能正確恢復(fù)現(xiàn)場(chǎng)繼續(xù)執(zhí)行原程序。(2)保存斷點(diǎn)和現(xiàn)場(chǎng)。保存斷點(diǎn)即將程序計(jì)數(shù)器PC的內(nèi)容保存起來(lái),一般是壓入堆棧,以便中斷處理結(jié)束后能正確返回到中斷點(diǎn)。高檔機(jī)中將程序狀態(tài)字PSW也一同保存。這個(gè)過(guò)程由硬件自動(dòng)完成,是由中斷周期對(duì)應(yīng)的一段微程序完成的。

上一頁(yè)下一頁(yè)返回10.4 輸入/輸出控制方式現(xiàn)場(chǎng)保護(hù)是指在執(zhí)行中斷服務(wù)程序時(shí),可能使用某些通用寄存器,這樣就會(huì)破壞原有寄存器內(nèi)容,因此需要將它們的內(nèi)容保存起來(lái)。現(xiàn)場(chǎng)保護(hù)的方法有兩種,一種是用硬件完成,另一種是用軟件完成。硬件保護(hù)執(zhí)行速度快,在中斷周期中完成,但開(kāi)銷大。軟件保護(hù)通過(guò)在中斷服務(wù)程序中執(zhí)行指令完成,每個(gè)中斷服務(wù)程序要使用哪些寄存器,它就保護(hù)哪些寄存器,針對(duì)性強(qiáng)且靈活,但速度較慢?,F(xiàn)場(chǎng)保護(hù)也是把原有寄存器內(nèi)容壓入堆棧中。(3)識(shí)別中斷及轉(zhuǎn)入對(duì)應(yīng)中斷服務(wù)程序。在多個(gè)中斷源同時(shí)請(qǐng)求中斷的情況下,本次實(shí)際響應(yīng)的只能是優(yōu)先權(quán)最高的那個(gè)中斷源。所以,需進(jìn)一步識(shí)別中斷源,并轉(zhuǎn)入相應(yīng)的中斷服務(wù)程序入口。中斷源優(yōu)先級(jí)排隊(duì)是硬件電路事先安排好的。上一頁(yè)下一頁(yè)返回10.4 輸入/輸出控制方式(4)開(kāi)中斷。下面開(kāi)始進(jìn)入中斷服務(wù)程序的執(zhí)行,此時(shí)開(kāi)中斷允許更高級(jí)的中斷請(qǐng)求,打斷正在執(zhí)行的中斷服務(wù)程序,實(shí)現(xiàn)多重中斷處理。(5)執(zhí)行對(duì)應(yīng)中斷服務(wù)程序。每個(gè)中斷源有自己的服務(wù)程序,作相應(yīng)的處理。此階段是執(zhí)行事先編好的服務(wù)程序,通常放在BIOS中。(6)服務(wù)程序之后的關(guān)中斷、恢復(fù)斷點(diǎn)和現(xiàn)場(chǎng)、開(kāi)中斷是為了恢復(fù)原來(lái)程序的斷點(diǎn)和現(xiàn)場(chǎng),在恢復(fù)期間也是不能干擾的,所以用關(guān)、開(kāi)中斷來(lái)保證恢復(fù)過(guò)程的正確性。(7)返回?cái)帱c(diǎn)。此時(shí)程序計(jì)數(shù)器PC里的值為原程序斷點(diǎn)值。以上兩個(gè)“關(guān)→開(kāi)”的過(guò)程都是由微程序自動(dòng)完成的,常稱為“中斷隱指令”。上一頁(yè)下一頁(yè)返回10.4 輸入/輸出控制方式2.中斷申請(qǐng)與識(shí)別方法在中斷處理過(guò)程中,從硬件設(shè)計(jì)的角度看,識(shí)別中斷及轉(zhuǎn)入服務(wù)程序入口是比較重要的內(nèi)容,下面對(duì)此展開(kāi)討論。1)中斷源與優(yōu)先級(jí)(1)中斷源可有許多種分類方法,本書介紹三種:①外中斷。由外圍設(shè)備、定時(shí)器/計(jì)數(shù)器等引起的中斷稱為外中斷,例如打印機(jī)、鍵盤、磁盤申請(qǐng)等引起的中斷。②內(nèi)中斷。由處理器硬件故障或程序“出錯(cuò)”引起的中斷稱為內(nèi)中斷。例如,電源故障、算術(shù)溢出、虛擬存儲(chǔ)器頁(yè)面失效、總線故障、內(nèi)存故障、非法指令、除數(shù)為零、內(nèi)存越界和校驗(yàn)錯(cuò)等都是內(nèi)中斷。上一頁(yè)下一頁(yè)返回10.4 輸入/輸出控制方式③軟中斷。軟中斷是指在計(jì)算機(jī)中設(shè)置軟中斷指令,如“INTn”,n為中斷號(hào)。軟中斷也稱自愿中斷。執(zhí)行“INTn”指令,將以響應(yīng)隨機(jī)中斷請(qǐng)求方式進(jìn)行服務(wù)處理,切換到服務(wù)程序。早期軟中斷用于設(shè)置程序斷點(diǎn),引出調(diào)試跟蹤程序,分析原程序執(zhí)行結(jié)果,以幫助調(diào)試?,F(xiàn)在操作系統(tǒng)為用戶提供一種操作界面,稱作系統(tǒng)功能調(diào)用,即由操作系統(tǒng)軟件編制者將用戶常用的一些系統(tǒng)功能(如打開(kāi)文件、拷貝、顯示、打印等)事先編成若干中斷服務(wù)程序模塊,納入操作系統(tǒng)的擴(kuò)展部分。用戶通過(guò)執(zhí)行軟中斷指令,調(diào)用已編制好的用戶程序。軟中斷指令與子程序調(diào)用是不同的。軟中斷指令要進(jìn)入中斷處理,執(zhí)行中斷周期,與中斷處理方式一樣對(duì)待。而子程序調(diào)用只是程序切換。上一頁(yè)下一頁(yè)返回10.4 輸入/輸出控制方式(2)中斷優(yōu)先級(jí)的含義是:如果有幾個(gè)中斷請(qǐng)求同時(shí)發(fā)出,而CPU只能在該時(shí)刻為一個(gè)服務(wù),則CPU需要為此時(shí)優(yōu)先級(jí)最高的中斷事件服務(wù)。優(yōu)先級(jí)原則是:根據(jù)事件的緊急程度進(jìn)行裁決。劃分中斷源等級(jí)的規(guī)則如下:①故障性中斷應(yīng)列為一級(jí)或最高級(jí)中斷,例如電源故障、主存故障,總線故障等,這些故障中又以電源故障為最高級(jí)。當(dāng)電源出現(xiàn)掉電、斷電時(shí),CPU立即停止所有工作,進(jìn)入保護(hù)處理,盡可能不讓剛運(yùn)行的數(shù)據(jù)丟失。②高速外設(shè)的優(yōu)先級(jí)要高于低速外設(shè)的優(yōu)先級(jí),因?yàn)楦咚偻庠O(shè)所傳輸?shù)臄?shù)據(jù)若不及時(shí)接收會(huì)丟失,如磁盤的優(yōu)先級(jí)高于鍵盤、打印機(jī)等。③信息不可等待的中斷源的優(yōu)先級(jí)要高于信息可等待的中斷源。上一頁(yè)下一頁(yè)返回10.4 輸入/輸出控制方式2)鏈?zhǔn)讲樵兯性O(shè)備的中斷請(qǐng)求共用一條請(qǐng)求線IR,只要有一個(gè)設(shè)備申請(qǐng)中斷,IR就為“1”,有兩個(gè)以上的設(shè)備申請(qǐng)中斷時(shí)IR也為“1”。CPU知道有中斷請(qǐng)求后,發(fā)出IA中斷響應(yīng)信號(hào),這個(gè)信號(hào)首先被第一個(gè)設(shè)備收到。如果第一個(gè)設(shè)備沒(méi)有發(fā)出中斷請(qǐng)求,它就把這個(gè)信號(hào)傳遞給下一個(gè)設(shè)備,若第一個(gè)設(shè)備發(fā)出了中斷請(qǐng)求,那么它不向下一個(gè)設(shè)備傳遞中斷響應(yīng)信號(hào)(用IRi反相來(lái)封鎖信號(hào)下傳),IA到達(dá)設(shè)備2的接口時(shí)為“0”。此時(shí)設(shè)備1將它的設(shè)備號(hào)碼放到數(shù)據(jù)總線上,CPU中斷機(jī)構(gòu)就知道是哪個(gè)設(shè)備發(fā)的中斷請(qǐng)求了,并找到該設(shè)備的服務(wù)程序入口地址。圖10-17所示為鏈?zhǔn)讲樵冊(cè)?。圖10-18所示為設(shè)備接口內(nèi)的響應(yīng)鏈電路。越靠近CPU的設(shè)備優(yōu)先級(jí)越高,這條鏈體現(xiàn)了優(yōu)先順序,它與總線的鏈?zhǔn)讲樵冾愃啤I弦豁?yè)下一頁(yè)返回10.4 輸入/輸出控制方式3)獨(dú)立請(qǐng)求與中斷向量每個(gè)中斷源有自己?jiǎn)为?dú)的中斷請(qǐng)求信號(hào)線,各中斷源通過(guò)優(yōu)先編碼線路形成中斷向量。通過(guò)得到的中斷向量,可在中斷向量表中尋找到服務(wù)程序入口地址。(1)獨(dú)立請(qǐng)求電路與中斷向量的生成。圖10-19所示是用優(yōu)先級(jí)編碼器和比較器構(gòu)成的中斷優(yōu)先級(jí)排隊(duì)電路。圖中設(shè)有8個(gè)獨(dú)立中斷請(qǐng)求源,并送入中斷請(qǐng)求寄存器,當(dāng)任一個(gè)中斷請(qǐng)求時(shí),通過(guò)“或”門,即可有一個(gè)中斷請(qǐng)求信號(hào)產(chǎn)生,但它能否送至CPU的中斷請(qǐng)求線,還要受比較器的控制(若優(yōu)先權(quán)失效,信號(hào)為低電平,則“與”門2關(guān)閉)。上一頁(yè)下一頁(yè)返回10.4 輸入/輸出控制方式8條中斷輸入線中的任一條線,經(jīng)過(guò)編碼器可以產(chǎn)生3位二進(jìn)制優(yōu)先級(jí)編碼A2、A1、A0,優(yōu)先級(jí)最高的線的編碼為111,優(yōu)先級(jí)最低的線的編碼為000。若有多個(gè)輸入線同時(shí)輸入,則優(yōu)先級(jí)編碼器只輸出優(yōu)先級(jí)最高的編碼。正在進(jìn)行中斷處理的外設(shè)的優(yōu)先級(jí)編碼,先通過(guò)CPU的數(shù)據(jù)總線送至優(yōu)先級(jí)寄存器,然后輸出編碼B2、B1、B0至比較器。這些工作在中斷周期里由微程序來(lái)完成。上一頁(yè)下一頁(yè)返回10.4 輸入/輸出控制方式比較器比較編碼A2、A1、A0與B2、B1、B0的大小,若A≤B,則在“A>B”端輸出低電平,封鎖“與”門1,就不向CPU發(fā)出新的中斷申請(qǐng)(即當(dāng)CPU正在處理中斷時(shí),若有同級(jí)或低級(jí)的中斷源申請(qǐng)中斷,優(yōu)先級(jí)排隊(duì)線路就屏蔽它們的請(qǐng)求);只有當(dāng)A>B時(shí),比較器輸出端才為高電平,打開(kāi)“與”門1,將中斷請(qǐng)求信號(hào)送至CPU的INTR輸入端,CPU將中斷正在進(jìn)行的中斷處理程序,轉(zhuǎn)去響應(yīng)更高級(jí)的中斷。若CPU不在進(jìn)行中斷處理,即正在執(zhí)行主程序,則優(yōu)先級(jí)寄存器電路給出優(yōu)先級(jí)失效信號(hào)為高電平。當(dāng)有任一中斷源請(qǐng)求時(shí),都能通過(guò)“與”門2發(fā)出INTR信號(hào)。優(yōu)先級(jí)編碼器的3位輸出值與中斷向量字節(jié)的其他5位拼成8位二進(jìn)制,形成中斷向量,在CPU響應(yīng)中斷,即INTA有效時(shí),中斷向量經(jīng)三態(tài)緩沖器送入CPU,尋找相應(yīng)中斷服務(wù)程序入口地址。當(dāng)優(yōu)先級(jí)編碼器的3位輸出值與中斷向量字節(jié)某3位連接后,其他5位可任意設(shè)置“0”或“1”,按需設(shè)置。

上一頁(yè)下一頁(yè)返回10.4 輸入/輸出控制方式(2)中斷服務(wù)程序入口地址的形成。圖10-20中的中斷向量字節(jié),存放的是本次中斷的中斷向量,每個(gè)中斷源形成的中斷向量值不同。中斷向量實(shí)際上是中斷服務(wù)程序入口地址的地址。如圖10-20所示,每個(gè)中斷源的服務(wù)程序入口地址放在一個(gè)中斷向量表中(放在ROM里),中斷向量是這個(gè)中斷向量表的地址。在響應(yīng)中斷請(qǐng)求時(shí)根據(jù)中斷向量從表中找到服務(wù)程序的入口地址,并將這個(gè)入口地址裝入PC程序計(jì)數(shù)器中,CPU開(kāi)始執(zhí)行服務(wù)程序。上一頁(yè)下一頁(yè)返回10.4 輸入/輸出控制方式高檔PC機(jī)中采用的就是本節(jié)所述原理。有的計(jì)算機(jī)把中斷向量直接當(dāng)成中斷服務(wù)程序的入口地址,即服務(wù)程序起始地址。本書討論的中斷向量為中斷號(hào)乘以4。例如當(dāng)IR1發(fā)中斷后,若無(wú)比它更高級(jí)的中斷,則優(yōu)先級(jí)編碼器編出001代碼。把001送入中斷向量字節(jié)的2、3、4位,其他5位固定為0,此時(shí)中斷向量字節(jié)里的8位二進(jìn)制值為00000100,由于最低兩位為0,所以其值相當(dāng)于乘以4。這個(gè)值就是中斷向量表的地址,在這個(gè)地址對(duì)應(yīng)的表中存放著設(shè)備1的服務(wù)程序入口地址。3.多重中斷與中斷屏蔽如果在處理一個(gè)中斷請(qǐng)求期間允許被其他中斷打斷,則稱為多重中斷。本章前面介紹的中斷處理過(guò)程就是多重中斷的處理流程,由于現(xiàn)代大型機(jī)、高檔微機(jī)都采用多重中斷技術(shù),所以單級(jí)中斷本書不再介紹。計(jì)算機(jī)采用單級(jí)中斷還是采用多重中斷,曾經(jīng)是衡量計(jì)算機(jī)硬件水平的指標(biāo)之一。上一頁(yè)下一頁(yè)返回10.4 輸入/輸出控制方式圖10-21中規(guī)定中斷優(yōu)先級(jí)排序?yàn)镮R0→IR1→…→IR7,IR0最高,IR7最低,簡(jiǎn)單寫為0→1→2→3→4→5→6→7。假定有2號(hào)、4號(hào)設(shè)備同時(shí)請(qǐng)求中斷,則優(yōu)先編碼器編出2號(hào)的中斷向量,CPU轉(zhuǎn)去執(zhí)行2號(hào)設(shè)備的中斷服務(wù)程序,若此時(shí)有1號(hào)設(shè)備發(fā)出中斷請(qǐng)求,則圖10-21電路中編出1號(hào)設(shè)備的中斷向量,打斷正在執(zhí)行的2號(hào)服務(wù)程序,因?yàn)?號(hào)優(yōu)先級(jí)高;若不是1號(hào)設(shè)備發(fā)中斷,改為3號(hào)設(shè)備發(fā)中斷,則優(yōu)先級(jí)寄存器的2號(hào)此時(shí)比3號(hào)的優(yōu)先級(jí)高,比較器輸出為A>B=0,不會(huì)產(chǎn)生3號(hào)中斷申請(qǐng)。優(yōu)先級(jí)編碼器隨時(shí)編出中斷請(qǐng)求寄存器中最高中斷源的編碼。在硬件制作時(shí)0→1→2→3→4→5→6→7優(yōu)先順序已固定死,不能改變,所以多重中斷中永遠(yuǎn)是高級(jí)中斷能打斷低級(jí)中斷,只有高級(jí)中斷服務(wù)程序執(zhí)行完畢,才輪到低級(jí)中斷執(zhí)行服務(wù)程序。為了讓低級(jí)中斷提高處理級(jí)別,采用了中斷屏蔽技術(shù)。上一頁(yè)下一頁(yè)返回10.4 輸入/輸出控制方式中斷屏蔽就是在圖10-21中的中斷請(qǐng)求寄存器下面增加一個(gè)中斷屏蔽寄存器,用軟件的方法修改中斷屏蔽寄存器的值,以改變中斷響應(yīng)順序,即屏蔽某個(gè)高的IRi請(qǐng)求,使低級(jí)中斷不被打斷,直到服務(wù)完畢。如果上面2號(hào)設(shè)備在進(jìn)入中斷服務(wù)程序之前把屏蔽寄存器Q1送1,則IR1的請(qǐng)求將被屏蔽,對(duì)應(yīng)中斷請(qǐng)求寄存器位為0,無(wú)法發(fā)中斷請(qǐng)求。中斷屏蔽寄存器放“1”為屏蔽,放“0”為不屏蔽。上一頁(yè)下一頁(yè)返回10.4 輸入/輸出控制方式利用屏蔽技術(shù)可以改變?cè)O(shè)備的優(yōu)先等級(jí),使計(jì)算機(jī)適應(yīng)各種場(chǎng)合的需要。優(yōu)先級(jí)包含兩層意思,第一層是識(shí)別中斷優(yōu)先級(jí),第二層是執(zhí)行服務(wù)程序優(yōu)先級(jí)。識(shí)別中斷優(yōu)先級(jí)是CPU對(duì)各設(shè)備中斷請(qǐng)求響應(yīng)后,在中斷機(jī)構(gòu)內(nèi)部的優(yōu)先級(jí)編碼器,編出級(jí)別最高的中斷請(qǐng)求代碼傳送給CPU,這個(gè)優(yōu)先級(jí)編碼器硬件線路是固定的,無(wú)法改變。執(zhí)行服務(wù)程序優(yōu)先級(jí)是指CPU實(shí)際執(zhí)行了哪個(gè)中斷服務(wù)程序,只有執(zhí)行了中斷服務(wù)程序的中斷并且執(zhí)行完,它的優(yōu)先級(jí)才最高。如果不使用屏蔽技術(shù),識(shí)別中斷優(yōu)先級(jí)等于執(zhí)行服務(wù)程序優(yōu)先級(jí)。屏蔽寄存器的設(shè)置會(huì)影響中斷請(qǐng)求寄存器的內(nèi)容,從而改變中斷服務(wù)程序的執(zhí)行順序,達(dá)到改變優(yōu)先級(jí)次序的目的。CPU往中斷屏蔽寄存器送入的二進(jìn)制信息,稱為屏蔽碼。屏蔽碼可以安排在中斷處理過(guò)程中第一個(gè)開(kāi)中斷之后送入,也可安排在中斷服務(wù)程序執(zhí)行之前送入。例如,在一個(gè)0→1→2→3的4級(jí)中斷系統(tǒng)中,若在響應(yīng)1級(jí)中斷時(shí)允許第2級(jí)中斷,而禁止第3級(jí)中斷和第0級(jí)中斷,則1級(jí)中斷的屏蔽碼為1101。上一頁(yè)下一頁(yè)返回10.4 輸入/輸出控制方式例10-1假定硬件原來(lái)的優(yōu)先級(jí)順序?yàn)?→1→2→3,設(shè)置各自的中斷屏蔽碼,將中斷優(yōu)先級(jí)改為3→1→0→2,并列出每級(jí)中斷的屏蔽碼。解

根據(jù)要求,0級(jí)中斷優(yōu)先級(jí)從最高降到第3,它的屏蔽碼應(yīng)設(shè)置為允許3級(jí)和1級(jí)中斷,但要屏蔽自己和2級(jí)中斷,0級(jí)中斷屏蔽碼為1010。其中第一位(最左位)表示用“1”屏蔽0級(jí)中斷,第二位用“0”允許1級(jí)中斷申請(qǐng),第三位用“1”屏蔽2級(jí)中斷,第四位用“0”允許3級(jí)中斷申請(qǐng)。上一頁(yè)下一頁(yè)返回10.4 輸入/輸出控制方式1級(jí)中斷屏蔽碼為1110,因?yàn)榇藭r(shí)3級(jí)中斷為最高級(jí),1級(jí)中斷為第2,所以3級(jí)中斷允許申請(qǐng),其他則屏蔽掉,不允許申請(qǐng)中斷,這樣屏蔽碼第4位放“0”,其他位放“1”。2級(jí)中斷屏蔽碼為0010。2級(jí)中斷為最低,只能屏蔽自己,其他都放“0”,表示允許中斷申請(qǐng)。3級(jí)中斷屏蔽碼為1111。3級(jí)中斷變?yōu)樽罡呒?jí)中斷后,當(dāng)CPU處理3級(jí)中斷時(shí),不希望任何中斷來(lái)打斷它,所以全放“1”,屏蔽所有中斷申請(qǐng)。本例的屏蔽碼設(shè)置見(jiàn)表10-3。如果本例中4個(gè)中斷源同時(shí)申請(qǐng)中斷,則本例的多重中斷處理軌跡如圖10-22所示。上一頁(yè)下一頁(yè)返回10.4 輸入/輸出控制方式在計(jì)算機(jī)開(kāi)始運(yùn)行時(shí),中斷屏蔽寄存器全為“0”,允許任何中斷申請(qǐng),當(dāng)本例4個(gè)中斷同時(shí)來(lái)時(shí),按硬件原有順序,首先響應(yīng)0級(jí)中斷,0級(jí)中斷在進(jìn)入它的服務(wù)程序之前把0級(jí)中斷的屏蔽碼“1010”放入屏蔽寄存器中,這時(shí)把0級(jí)和2級(jí)中斷的申請(qǐng)屏蔽,同時(shí)修改優(yōu)先級(jí)寄存器的內(nèi)容。在進(jìn)入0級(jí)中斷服務(wù)程序時(shí),由于中斷請(qǐng)求寄存器里有1級(jí)和3級(jí)中斷申請(qǐng),優(yōu)先級(jí)編碼器編出1級(jí)中斷代碼,并大于優(yōu)先級(jí)寄存器內(nèi)容(在將0級(jí)屏蔽碼“1010”送入的同時(shí),也對(duì)優(yōu)先級(jí)寄存器的級(jí)別進(jìn)行修改),又產(chǎn)生新的中斷INTA信號(hào)給予CPU,此時(shí)CPU把剛執(zhí)行的0級(jí)服務(wù)程序打斷,轉(zhuǎn)去為1級(jí)中斷處理。上一頁(yè)下一頁(yè)返回10.4 輸入/輸出控制方式在1級(jí)中斷處理過(guò)程中,也是進(jìn)入它的服務(wù)程序之前,把1級(jí)的屏蔽碼“1110”送入屏蔽寄存器,只允許3級(jí)中斷申請(qǐng),這樣CPU剛執(zhí)行1級(jí)服務(wù)程序時(shí),被3級(jí)打斷,又轉(zhuǎn)入3級(jí)中斷處理過(guò)程,由于3級(jí)中斷的屏蔽碼為“1111”,不允許任何申請(qǐng),這樣3級(jí)中斷的服務(wù)程序可以順利完成。完成后返回1級(jí)中斷的服務(wù)程序斷點(diǎn),把1級(jí)中斷的服務(wù)程序執(zhí)行完畢,再返回0級(jí)中斷的服務(wù)程序,把0級(jí)服務(wù)程序執(zhí)行完。因2級(jí)中的斷屏蔽碼為“0010”,所以最后才能處理2級(jí)中斷的服務(wù)程序。上一頁(yè)下一頁(yè)返回10.4 輸入/輸出控制方式10.4.3 DMA控制方式程序中斷控制方式提高了主機(jī)和外設(shè)并行工作的效率,但是每傳送一個(gè)字或一個(gè)字節(jié)的數(shù)據(jù)就要執(zhí)行一遍中斷服務(wù)程序,碰到高速外設(shè)連續(xù)傳送時(shí),這種方式就跟不上傳送速度了,可能造成數(shù)據(jù)丟失,并同時(shí)造成CPU浪費(fèi)大量時(shí)間進(jìn)行數(shù)據(jù)傳輸,而不是計(jì)算工作。因此人們提出了直接存儲(chǔ)器存取方式(DMA),即在外設(shè)與主存之間建立一個(gè)由硬件管理的數(shù)據(jù)通路,如圖10-23所示,CPU不介入傳送時(shí)的操作,數(shù)據(jù)也不經(jīng)過(guò)CPU,這樣就減少了CPU的開(kāi)銷,系統(tǒng)效率得到提高。硬磁盤、軟磁盤和光盤都是高速外圍設(shè)備,它們都采用DMA控制方式與主存進(jìn)行數(shù)據(jù)交換。上一頁(yè)下一頁(yè)返回10.4 輸入/輸出控制方式外圍設(shè)備引起的中斷都能被屏蔽,所以稱為可屏蔽中斷類型。不可屏蔽中斷指為及時(shí)響應(yīng)一些最緊急、最重要的事件而設(shè)置的中斷,如掉電等,這類中斷是不能用屏蔽碼屏蔽的,硬件設(shè)計(jì)上就沒(méi)有,一旦發(fā)生立即通知CPU。程序中斷控制方式適合中、低速外圍設(shè)備與主機(jī)進(jìn)行信息交換的場(chǎng)合,高速外圍設(shè)備則要采用DMA控制方式。上一頁(yè)下一頁(yè)返回10.4 輸入/輸出控制方式DMA控制器給出當(dāng)前正在傳送數(shù)據(jù)的主存地址,并統(tǒng)計(jì)傳送數(shù)據(jù)的個(gè)數(shù)以確定一組數(shù)據(jù)的傳送是否已結(jié)束。在主存中要開(kāi)辟連續(xù)地址的專用緩沖區(qū),用于提供或接收傳送的數(shù)據(jù)。在數(shù)據(jù)傳送前和結(jié)束后要通過(guò)程序或中斷方式對(duì)緩沖區(qū)和DMA控制器進(jìn)行預(yù)處理和后處理。1.DMA的三種傳送方式DMA方式的特點(diǎn)是傳送數(shù)據(jù)時(shí),CPU仍然執(zhí)行主程序,那么,DMA控制邏輯與CPU同時(shí)有可能訪問(wèn)主存,引起主存使用權(quán)的沖突。對(duì)這一問(wèn)題,有如下3種處理方法:上一頁(yè)下一頁(yè)返回10.4 輸入/輸出控制方式1)停止CPU方式主機(jī)響應(yīng)DMA請(qǐng)求后,讓出存儲(chǔ)總線,直到一組數(shù)據(jù)傳送完畢后,DMA控制器才把總線控制權(quán)還給CPU,采用這種工作方式的I/O設(shè)備,其接口中一般設(shè)置有存取速度較快的小容量存儲(chǔ)器,I/O設(shè)備與小容量存儲(chǔ)器交換數(shù)據(jù),小容量存儲(chǔ)器與主機(jī)交換數(shù)據(jù),這樣縮短DMA占用系統(tǒng)總線的時(shí)間和CPU被暫停的時(shí)間也減少。在這個(gè)過(guò)程中總線控制器不需要裁決工作。上一頁(yè)下一頁(yè)返回10.4 輸入/輸出控制方式2)周期挪用方式當(dāng)DMA要求訪問(wèn)主存時(shí),CPU暫時(shí)停頓一個(gè)存儲(chǔ)周期。一個(gè)數(shù)據(jù)傳送結(jié)束后,CPU立即繼續(xù)運(yùn)行。由于CPU現(xiàn)場(chǎng)并沒(méi)有變動(dòng),只是延緩了對(duì)指令的執(zhí)行,因此這種技術(shù)稱為周期挪用,也稱為周期竊取。DMA傳送時(shí)間可在CPU的任一個(gè)機(jī)器周期(訪問(wèn)存儲(chǔ)器)之后插入。以上是當(dāng)DMA要訪問(wèn)主存,CPU也要訪問(wèn)主存時(shí)所采用的方法。此方法曾是一種被廣泛采用的方法。3)直接訪問(wèn)存儲(chǔ)器工作方式這是標(biāo)準(zhǔn)的DMA工作方式,如傳送數(shù)據(jù)時(shí)CPU正好不占用存儲(chǔ)總線,則對(duì)CPU不產(chǎn)生任何影響。如DMA和CPU同時(shí)需要訪問(wèn)存儲(chǔ)總線,則總線控制器進(jìn)行裁決,把使用權(quán)交給DMA,即DMA的優(yōu)先級(jí)高于CPU。在DMA傳送數(shù)據(jù)的過(guò)程中,不能占用或破壞CPU硬件資源或工作狀態(tài),否則將影響CPU的程序執(zhí)行。上一頁(yè)下一頁(yè)返回10.4 輸入/輸出控制方式2.DMA控制器的基本組成DMA控制器的基本組成如圖10-24所示。(1)地址緩沖區(qū)寄存器。其用于存放內(nèi)存中要交換的數(shù)據(jù)的首地址。在DMA傳送前,須通過(guò)程序送入,主存緩沖區(qū)地址是連續(xù)的。DMA傳送期間,每交換一次將寄存器內(nèi)容加1,準(zhǔn)備好下次數(shù)據(jù)傳送的主存地址。(2)字計(jì)數(shù)器。其用于記錄傳送數(shù)據(jù)塊的長(zhǎng)度,其值可以是一個(gè)由補(bǔ)碼表示的負(fù)值。在DMA傳送時(shí),每傳送一個(gè)字,字計(jì)數(shù)器就加1,當(dāng)計(jì)數(shù)器溢出即最高位產(chǎn)生進(jìn)位時(shí),表示這批數(shù)據(jù)傳送完畢。(3)外設(shè)地址寄存器。該寄存器存放I/O設(shè)備的設(shè)備碼,或者表示設(shè)備信息存儲(chǔ)區(qū)的尋址信息,如磁盤數(shù)據(jù)所在的區(qū)號(hào)、盤面號(hào)和柱面號(hào)等。其具體內(nèi)容取決于I/O設(shè)備的數(shù)據(jù)格式和地址字編址方式。上一頁(yè)下一頁(yè)返回10.4 輸入/輸出控制方式(4)數(shù)據(jù)緩沖寄存器。該寄存器用來(lái)暫存I/O設(shè)備與主存?zhèn)魉偷臄?shù)據(jù)。DMA面向主存時(shí)使用高時(shí)鐘頻率,即速度快;DMA面向I/O設(shè)備時(shí)使用低時(shí)鐘頻率,即速度慢,數(shù)據(jù)緩沖寄存器在兩種不同速度的設(shè)備中起緩沖與調(diào)節(jié)作用。(5)控制與狀態(tài)寄存器。該寄存器用來(lái)存放控制字和狀態(tài)字。(6)中斷控制邏輯。其負(fù)責(zé)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論