計算機(jī)組成原理-第10章_第1頁
計算機(jī)組成原理-第10章_第2頁
計算機(jī)組成原理-第10章_第3頁
計算機(jī)組成原理-第10章_第4頁
計算機(jī)組成原理-第10章_第5頁
已閱讀5頁,還剩187頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第10章

輸入輸出系統(tǒng)本章導(dǎo)讀輸入/輸出系統(tǒng)是計算機(jī)重要的組成部分之一,其主要功能是完成程序和數(shù)據(jù)的輸入及機(jī)器運(yùn)行結(jié)果的輸出。本章首先介紹輸入輸出系統(tǒng)的基本概念,主要內(nèi)容包括輸入輸出系統(tǒng)發(fā)展的概況和I/O系統(tǒng)的組成,I/O與主機(jī)間信息傳送的基本方式。本章導(dǎo)讀然后對計算機(jī)常用的輸入/輸出設(shè)備進(jìn)行了簡單介紹。接著對I/O接口的功能與結(jié)構(gòu),接口類型,I/O端口及其編址方式進(jìn)行介紹,進(jìn)一步詳細(xì)討論計算機(jī)輸入輸出的控制方式,包括程序查詢方式、程序中斷方式、DMA方式、通道方式等。最后簡單介紹常用的一些外設(shè)接口標(biāo)準(zhǔn)。本章要點I/O系統(tǒng)基本概念常用輸入/輸出外部設(shè)備I/O接口的功能和基本結(jié)構(gòu)I/O端口及其編址程序查詢I/O方式程序中斷I/O方式DMA方式與通道方式10.1輸入輸出系統(tǒng)基本概念10.1.1輸入輸出系統(tǒng)的發(fā)展概況10.1.2輸入輸出系統(tǒng)的組成10.1.3I/O設(shè)備與主機(jī)的聯(lián)系方式10.1.4I/O與主機(jī)信息傳送的控制方式10.1.1輸入輸出系統(tǒng)的發(fā)展概況計算機(jī)系統(tǒng)的輸入輸出子系統(tǒng)是計算機(jī)對外部世界的接口。它提供了控制計算機(jī)與外部交互的系統(tǒng)化方式,并向操作系統(tǒng)提供必要的信息以使其能夠有效地管理輸入輸出操作。輸入/輸出系統(tǒng)的發(fā)展大致經(jīng)歷了以下幾個階段:①、直接相連階段在計算機(jī)發(fā)展的早期,使用的I/O設(shè)備比較少,它們與主機(jī)交換信息時都直接通過CPU進(jìn)行。如圖10-1所示。圖10-1I/O直接與CPU相連在這一時期,I/O設(shè)備具有以下特點:首先,每個I/O設(shè)備都必須配有一套獨(dú)立的邏輯電路與CPU相連,用來實現(xiàn)信息的交換。第二,輸入輸出過程是穿插在CPU執(zhí)行程序之中進(jìn)行的。第三,每個I/O設(shè)備的邏輯控制電路與CPU的控制器構(gòu)成一個不可分割的整體,彼此倚賴,因此欲增添或刪減、更換I/O設(shè)備比較困難。②、接口模塊階段這一階段的I/O設(shè)備通過接口模塊與主機(jī)連接,常在中間使用總線結(jié)構(gòu)。如圖10-2所示。圖10-2I/O通過接口與主機(jī)相連通常在接口中設(shè)有數(shù)據(jù)通路和控制通路,數(shù)據(jù)通路完成數(shù)據(jù)格式的轉(zhuǎn)換及緩沖,控制通路用以傳送CPU對I/O設(shè)備發(fā)出的各種控制命令或送給CPU各種I/O設(shè)備的反饋信息。由于中間有控制通路,CPU和I/O設(shè)備間能采用中斷或DMA方式作到一定程度的并行工作,提高了系統(tǒng)的工作效率。③、通道及I/O處理機(jī)階段通道是用來負(fù)責(zé)管理I/O設(shè)備及實現(xiàn)主存與I/O設(shè)備間交換信息的部件,它可視為一種具有特殊功能的處理器。I/O處理機(jī)更接近一般處理機(jī),但是它主要用來完成I/O控制,具有比通道更強(qiáng)的功能,基本獨(dú)立于主機(jī)工作。在這一階段,CPU可基本不直接參與輸入輸出的管理,具有更高的資源利用率。10.1.2輸入輸出系統(tǒng)的組成輸入輸出系統(tǒng)作為計算機(jī)系統(tǒng)的子系統(tǒng),也有硬件和軟件兩部分組成。I/O系統(tǒng)的硬件比較多樣化,在帶接口的I/O系統(tǒng)中,I/O硬件包括I/O設(shè)備和與CPU相連接的接口模塊兩部分。其中接口模塊電路實際包含許多數(shù)據(jù)傳輸線、數(shù)據(jù)緩沖器和寄存器,同時還有控制信號通路和相應(yīng)的邏輯電路。而在通道方式的I/O系統(tǒng)中,每個通道可以與多個設(shè)備控制器相連,而且一個設(shè)備控制器還可以連接多臺同一類型的設(shè)備。I/O系統(tǒng)的軟件在不同結(jié)構(gòu)的系統(tǒng)中也是不一樣的。如果采用的是接口模塊方式,應(yīng)用機(jī)器指令系統(tǒng)中的I/O指令和系統(tǒng)軟件中的管理程序就可以使I/O與主機(jī)協(xié)調(diào)工作。如果采用的是通道管理方式,除了I/O指令之外,還必須要有通道指令和相應(yīng)的操作系統(tǒng)。雖然軟件的差異較大,但它們在系統(tǒng)中完成的任務(wù)是一致的。它們的任務(wù)主要是:①、將用戶的程序或數(shù)據(jù)輸入到計算機(jī)主機(jī)內(nèi)。②、將運(yùn)算結(jié)果輸出給用戶。③、協(xié)調(diào)I/O系統(tǒng)與主機(jī)的工作。10.1.3I/O設(shè)備與主機(jī)的聯(lián)系方式I/O設(shè)備與主機(jī)的聯(lián)系方式包括很多方面。①、I/O編址方式為了便于CPU對I/O設(shè)備進(jìn)行尋址和選擇,必須給眾多的I/O設(shè)備進(jìn)行編址,也就是給每一臺設(shè)備規(guī)定一些地址碼,稱為設(shè)備號或設(shè)備代碼。隨著CPU對I/O設(shè)備下達(dá)命令方式的不同而有兩種尋址方法。一種是統(tǒng)一編址(或叫存儲器映像尋址方式)。另一種是不統(tǒng)一編址(或叫I/O單獨(dú)編址方式)。②、傳送方式在同一時間,有n位信息通過n根連線在CPU和I/O設(shè)備間進(jìn)行傳送的方式叫做并行傳送。若在某一時間只通過一根線傳送一位信息,要傳送多位信息時需在時間上分開逐位進(jìn)行,這種方式叫做串行傳送。③、定時方式輸入輸出設(shè)備本身在速度上有很大差異,而它們與主機(jī)在速度上的差異更大。因此,要考慮主機(jī)與外設(shè)在時間上的同步。這種同步的定時有三種情況。第一,速度極慢的I/O設(shè)備。如機(jī)械開關(guān)、顯示二極管等,中央處理器總是能夠快捷地應(yīng)對它們的動作的響應(yīng),而由于它們的動作是這樣的慢,中央處理器可以認(rèn)為它們在它的一個工作周期內(nèi)的數(shù)據(jù)傳送是有效的。因此,中央處理器可以隨時接收或發(fā)送數(shù)據(jù)。第二,慢速或中速的I/O設(shè)備。由于這些設(shè)備的速度特性,因此中央處理器與這類設(shè)備之間的數(shù)據(jù)交換通常是以異步方式進(jìn)行的。如果中央處理器要從某個輸入設(shè)備接收一個字,則它首先要詢問外設(shè)的當(dāng)前狀態(tài)。如果該外設(shè)的狀態(tài)標(biāo)志表明它已“準(zhǔn)備就緒”,那么中央處理器就可以通過總線從該設(shè)備接收數(shù)據(jù)。而后,如果中央處理器還需要數(shù)據(jù),則還須查詢外設(shè)的狀態(tài),總要等“就緒”后才能實現(xiàn)接收。中央處理器發(fā)送數(shù)據(jù)的情況和上述情況類似。第三,高速的I/O設(shè)備。這類設(shè)備與CPU間可采用同步工作方式,即以相同的時間間隔來執(zhí)行操作。當(dāng)兩種設(shè)備涉及到這樣的數(shù)據(jù)傳輸過程時,很自然地出現(xiàn)對于緩沖區(qū)的需要。它可以使得任何一方的操作都不受另一方的制約。10.1.4I/O與主機(jī)信息傳送的控制方式1、程序直接控制方式2、程序中斷傳送方式3、直接存儲器存取方式4、I/O通道控制方式5、外圍處理機(jī)方式10.2外部設(shè)備舉例10.2.1輸入設(shè)備10.2.2輸出設(shè)備中央處理器(CPU)和主存儲器(MM)構(gòu)成計算機(jī)的主體,稱為主機(jī)。主機(jī)以外的大部分硬設(shè)備都稱為外部設(shè)備或外圍設(shè)備,簡稱外設(shè)。它是計算機(jī)系統(tǒng)與人或與其他機(jī)器之間進(jìn)行信息交換的裝置,主要包括常用的輸入輸出設(shè)備、外存儲器、脫機(jī)輸入輸出設(shè)備等。隨著計算機(jī)技術(shù)的發(fā)展,外部設(shè)備在計算機(jī)系統(tǒng)中的地位越來越重要,它在整個系統(tǒng)中所占的價格比也越來越大。早期的計算機(jī)系統(tǒng)主機(jī)結(jié)構(gòu)簡單、速度慢、應(yīng)用范圍窄,配置的外部設(shè)備種類有限,數(shù)量不多?,F(xiàn)代計算機(jī)系統(tǒng)的外部設(shè)備向多樣化、智能化方向發(fā)展,性能各異,但歸納起來有以下幾個工作特點。(1)異步性。輸入/輸出設(shè)備相對于CPU來說是異步工作的,兩者之間無統(tǒng)一的時鐘。且各類外設(shè)之間工作的速度又相差很大,它們的操作在很大程度上獨(dú)立于CPU之外,但又要在某個時刻接受CPU的控制,這就勢必造成輸入/輸出操作相對CPU的時間的任意性與異步性。(2)實時性。一個計算機(jī)系統(tǒng)中,可能連接各種各樣類型的外設(shè),且這些外設(shè)中有慢速設(shè)備,也有快速設(shè)備,CPU必須及時按傳輸速率和傳輸方式接收來自多個外設(shè)的信息或向外設(shè)發(fā)送信息,否則高速設(shè)備可能有丟失信息的危險。(3)多樣性。由于外設(shè)的多樣性,它們的物理特性差異很大,信息類型與結(jié)構(gòu)格式多種多樣,這就造成了主機(jī)與外設(shè)之間連接的復(fù)雜性。但為簡化控制,計算機(jī)系統(tǒng)中往往提供一些標(biāo)準(zhǔn)接口,以便各類外設(shè)通過自己的設(shè)備控制器與標(biāo)準(zhǔn)接口相連,而主機(jī)無需了解各特定外設(shè)的具體要求,可以通過統(tǒng)一的命令控制程序來實現(xiàn)對外設(shè)的控制。10.2.1輸入設(shè)備在計算機(jī)中,輸入設(shè)備主要完成輸入程序、數(shù)據(jù)和操作命令等功能,它也是人機(jī)對話的主要部件。當(dāng)實現(xiàn)人工輸入時,往往與顯示器(輸出設(shè)備)聯(lián)用,以便及時檢驗并修正輸入時的錯誤。1、鍵盤鍵盤是目前應(yīng)用最普遍的一種輸入設(shè)備,與顯示器組成終端設(shè)備。它主要由一組排列成陣列形式的按鍵開關(guān)組成,用戶通過鍵盤可發(fā)出指令,輸入數(shù)字、字符、文字等信息。根據(jù)開關(guān)的接觸方式,鍵盤可分為機(jī)械式、薄膜式、電容式和霍爾效應(yīng)式等4種。按照鍵盤的插頭可分成標(biāo)準(zhǔn)插頭鍵盤、PS/2插頭鍵盤和USB插頭鍵盤;按照鍵碼識別方式可分為編碼和非編碼鍵盤。鍵盤主要由面板、按鍵開關(guān)、掃描電路、鍵盤控制器和電纜線構(gòu)成。鍵盤的接口電路一般設(shè)在主機(jī)系統(tǒng)板上,通過一根電纜線與主機(jī)相連接。標(biāo)準(zhǔn)鍵盤接口內(nèi)有5根信號線,分別是鍵盤時鐘(1號插針)、接地線(4號插針)、+5V電源(5號插針)、雙向的鍵盤數(shù)據(jù)線(2號插針)及未被使用的復(fù)位信號線(3號插針)。圖10-3鍵盤插座布局圖2、鼠標(biāo)器鼠標(biāo)器(Mouse)是一種手持式的坐標(biāo)定位部件,由于它拖著一根長線與接口相連,外形有點像老鼠,故取名為鼠標(biāo)器。鼠標(biāo)是計算機(jī)引入圖形操作系統(tǒng)后使用最頻繁的輸入和控制設(shè)備。它用來控制屏幕上的光標(biāo)快速移動,在系統(tǒng)軟件的支持下可實現(xiàn)屏幕編輯、菜單選擇、圖形繪制等功能。按工作原理來分,鼠標(biāo)器可分為機(jī)械式鼠標(biāo)和光電式鼠標(biāo)。按鼠標(biāo)器的按鍵數(shù)分類,鼠標(biāo)有兩鍵、三鍵甚至四鍵鼠標(biāo)。按鼠標(biāo)器所用的接口分類,分為串行鼠標(biāo)器、PS/2鼠標(biāo)器、USB鼠標(biāo)器或無線鼠標(biāo)器等。3、觸摸屏觸摸屏是一種對物體的接觸或靠近能產(chǎn)生反映的定位設(shè)備。它一般是透明的,可安裝在任何一種顯示器屏幕的表面。使用時,顯示器屏幕上根據(jù)實際應(yīng)用的需要顯示出用戶所需控制的項目或查詢的內(nèi)容標(biāo)題供用戶選擇。用戶只要用手指或其他東西點一下所選擇的項目,即可由觸摸屏將此信息送到計算機(jī)中。實際上觸摸屏只是負(fù)責(zé)定位,用戶通過與觸摸屏的直接接觸,向計算機(jī)輸入的是接觸點的坐標(biāo)位置,以后的工作(選擇項的判斷、后繼的操作處理)要由程序去執(zhí)行。按觸摸原理的不同,觸摸屏大致可分為五類:電阻式、電容式、表面超聲波式、掃描紅外線式和壓感式。10.2.2輸出設(shè)備1、顯示設(shè)備(1)顯示設(shè)備簡介顯示設(shè)備種類繁多,按顯示設(shè)備所用的顯示器件分類,有陰極射線管(cathoderaytube,簡稱CRT)顯示器,液晶顯示器(liquidcrystaldisplay,簡稱LCD),等離子顯示器等。按所顯示的信息內(nèi)容分類,有字符顯示器,圖形顯示器和圖象顯示器三類。按顯示設(shè)備的功能分類,有普通顯示器和顯示終端兩類。顯示器和終端是兩個不同的概念。顯示器的功能簡單,它只能用于接收視頻信號,顯示器的控制邏輯和存儲邏輯都在主機(jī)接口板中,目前使用的個人計算機(jī)系統(tǒng)就是這種結(jié)構(gòu)。這種顯示器也稱作監(jiān)視器(monitor)。終端是由顯示器和鍵盤組成的一套獨(dú)立完整的輸入/輸出設(shè)備,它可以通過標(biāo)準(zhǔn)通信接口接到遠(yuǎn)離主機(jī)的地方使用。終端的結(jié)構(gòu)比顯示器的結(jié)構(gòu)復(fù)雜得多,它能夠完成顯示控制與存儲,鍵盤管理以及通信控制等功能。液晶顯示器(LCD)是最近使用最為廣泛的顯示器,液晶是液態(tài)晶體的簡稱,它是一種有機(jī)化合物,在一定范圍內(nèi),既具有液體的流動性,又具有分子排列有序的晶體特性。液晶分子是棒狀結(jié)構(gòu),具有明顯的光學(xué)各向異性,它本身不發(fā)光,但能夠調(diào)制外照光實現(xiàn)信息顯示,因此使用時需要背光源。(2)顯示技術(shù)中的有關(guān)術(shù)語圖形:圖形(graphics)最初指沒有亮暗層次變化的線條圖,它只用線條的有無來表示形狀。圖像:圖像(image)最初指具有亮暗層次的圖。分辨率(resolution)指的是顯示設(shè)備所能表示的像素個數(shù)。像素越密,分辨率越高,圖像越清晰。對于CRT顯示器,分辨率取決于熒光粉的粒度、屏的尺寸和電子束的聚焦能力。例如:12英寸彩色CRT的分辨率為640×480個像素,因為對角線為12英寸=30.48cm,長和寬分別為24.384cm和18.288cm。每個像素的間距為0.31mm,水平方向的640個像素占顯示長度為198.4mm。它的顯示比例為4:3(640:480)?;叶燃墸╣raylevel)指的是所顯示像素點的亮暗差別,在彩色顯示器中則表現(xiàn)為顏色的不同?;叶燃壴蕉啵瑘D像層次越清楚逼真。灰度級取決于每個像素對應(yīng)刷新存儲器單元的位數(shù)和顯示器本身的性能。如果用4位表示一個像素,則只有16級灰度或顏色,如果用8位表示一個像素,則有256級灰度或顏色。分辨率和灰度級是顯示器的兩個重要技術(shù)指標(biāo),它們決定了顯示器所能顯示的質(zhì)量。對CRT器件來說,還有刷新(refresh)的概念。每秒刷新的次數(shù)稱刷新頻率或掃描頻率。結(jié)合人的視覺生理,刷新頻率應(yīng)大于30次/秒,人眼才不會感到明顯的閃爍。為了不斷提供刷新圖像的信號,必須把圖像存儲起來,存儲屏幕圖像信息的存儲器叫“幀存儲器”或“視頻存儲器”(VRAM)。幀存儲器的容量由圖像分辨率和灰度級決定。分辨率越高,灰度級越大,幀存儲器需求的容量越大。如分辨率為1024×1024,256級灰度的圖像,存儲容量為1024×1024×8bit=1MB。幀存儲器的存取周期必須滿足刷新頻率的要求。容量和存取周期是幀存儲器的兩個重要技術(shù)指標(biāo)。2、打印設(shè)備打印設(shè)備可將計算機(jī)運(yùn)行結(jié)果打印輸出記錄在紙上,并能長期保存。人們將一切可以產(chǎn)生永久性記錄的設(shè)備統(tǒng)稱為硬拷貝設(shè)備。如打印機(jī)、繪圖儀等。計算機(jī)的打印設(shè)備種類繁多,性能各異,結(jié)構(gòu)上的差別也很大。按印字原理分類,分為擊打式和非擊打式兩大類。按工作方式劃分,可分為串行打印機(jī)和行式打印機(jī)兩種。所謂串行打印機(jī),是逐字打印的。行式打印機(jī)一次就可以輸出一行。10.3I/O接口10.3.1概述10.3.2接口的功能和基本結(jié)構(gòu)10.3.3接口類型10.3.4I/O端口及其編址10.3.1概述接口可以看作是兩個系統(tǒng)或兩個部件之間的交接部分,I/O接口通常是指主機(jī)與外部設(shè)備之間設(shè)置的一個硬件電路及其相應(yīng)的控制軟件。不同的設(shè)備都有其相應(yīng)的設(shè)備控制器,而它們往往都是通過I/O接口與主機(jī)取得聯(lián)系的。主機(jī)與外設(shè)之間設(shè)置接口的原因有:(1)一臺機(jī)器通常配有多臺外設(shè),它們各自有其設(shè)備號(地址),通過接口可實現(xiàn)設(shè)備的選擇。(2)CPU的速度很高,而外設(shè)的速度要低得多,并且不同的外設(shè)速度差異也較大,通過接口可以實現(xiàn)數(shù)據(jù)緩沖,達(dá)到速度匹配。(3)CPU系統(tǒng)總線上傳送的是并行數(shù)據(jù),而各種外設(shè)使用的信息格式各不相同。有些設(shè)備上用的是模擬量,而有些是數(shù)字量或開關(guān)量,還有些設(shè)備采用串行方式傳送數(shù)據(jù),通過接口可實現(xiàn)信息格式的轉(zhuǎn)換。(4)CPU所使用的信號都是TTL電平,而外設(shè)大多是復(fù)雜的機(jī)電設(shè)備,必須有自己的電源系統(tǒng)和信號電平,通過接口可實現(xiàn)電平轉(zhuǎn)換。(5)CPU啟動外部設(shè)備工作,要向外設(shè)發(fā)各種控制信號,外部設(shè)備也要將其工作狀態(tài)及時向CPU報告,通過接口可以傳送這些控制命令及狀態(tài)信息。10.3.2接口的功能和基本結(jié)構(gòu)1、接口的功能I/O接口的主要功能包括以下幾種:①、控制和定時。②、處理器通信。③、設(shè)備通信。④、數(shù)據(jù)緩沖。⑤、檢錯。在任何一段時間內(nèi),處理器根據(jù)程序?qū)/O的要求,以非預(yù)期的方式與一個或幾個外設(shè)進(jìn)行通信。內(nèi)部資源,如主存和系統(tǒng)總線等,必須被包含數(shù)據(jù)輸入輸出的一系列功能操作所共享。因此,I/O接口的功能包含控制和定時的要求,用以協(xié)調(diào)內(nèi)部資源和外設(shè)間的信息流動。I/O接口必須有能力從事與處理器和與外設(shè)間的通信,處理器通信包括:(1)命令譯碼:(2)數(shù)據(jù):(3)狀態(tài)報告:(4)地址識別:另一方面,I/O接口的基本功能是數(shù)據(jù)緩沖。由于傳入和傳出主存或處理器的傳送速度很高,而許多外設(shè)速度較低,所以來自主存的數(shù)據(jù)通常以高速發(fā)送到I/O接口,數(shù)據(jù)保存在I/O接口的緩沖器中,然后以外設(shè)的數(shù)據(jù)傳送速度發(fā)送到外設(shè)。當(dāng)反方向傳送時,由于數(shù)據(jù)被緩沖,內(nèi)存能以高速操作。因此,I/O接口必須既能以設(shè)備,又能以存儲器速度傳送。I/O接口經(jīng)常負(fù)責(zé)檢錯,隨后將差錯信息報告給處理器。一類差錯是設(shè)備機(jī)構(gòu)和電路故障。另一類差錯是在信息從設(shè)備到I/O接口傳送時,數(shù)據(jù)位發(fā)生變化。對于傳輸中的差錯,經(jīng)常用一些校驗碼進(jìn)行檢測。2、接口的基本結(jié)構(gòu)從I/O接口的內(nèi)部結(jié)構(gòu)看,在大多數(shù)I/O接口中都包含有一些數(shù)據(jù)寄存器、地址寄存器、狀態(tài)寄存器、控制寄存器和相應(yīng)的控制電路。而且,為了控制的靈活性和適應(yīng)性,很多I/O接口中的寄存器往往是可編程的,即可以對I/O接口的功能、工作方式、操作方式、數(shù)據(jù)格式等進(jìn)行預(yù)設(shè)置,以滿足應(yīng)用場合的要求。圖10-4接口的組成結(jié)構(gòu)及連接圖(1)數(shù)據(jù)寄存器(2)狀態(tài)寄存器(3)控制寄存器(4)地址寄存器10.3.3接口類型輸入輸出接口的分類可以從不同的角度來考慮。①、按數(shù)據(jù)傳送方式分類有串行接口和并行接口。這里所說的數(shù)據(jù)傳送方式指的是外設(shè)和接口一側(cè)的傳送方式,而在主機(jī)和接口一側(cè),數(shù)據(jù)總是并行傳送的。②、按功能選擇的靈活性分類:有可編程接口和不可編程接口。③、按通用性分類:有通用接口和專用接口。④、按數(shù)據(jù)傳送的控制方式分類:有程序控制式接口和DMA式接口。⑤、按輸入輸出的信號分類:有數(shù)字接口和模擬接口。10.3.4I/O端口及其編址CPU與外設(shè)通信時,傳送的信息主要包括數(shù)據(jù)信息、狀態(tài)信息和控制信息。在接口電路里,這些信息分別進(jìn)入不同的寄存器,通常將接口電路中的這些寄存器稱為I/O端口(port)。在一般的接口電路中都要設(shè)置以下幾種端口:數(shù)據(jù)端口、狀態(tài)端口和命令端口。CPU對I/O端口的訪問采用的是與訪存類似的按地址訪問方式,即為每一個I/O端口分配一個地址,又稱為I/O地址或I/O端口號,CPU通過給出I/O端口地址訪問相應(yīng)的I/O端口,也即訪問相應(yīng)的設(shè)備。CPU對I/O端口的編址方式主要有兩種:一是單獨(dú)編址方式,二是統(tǒng)一編址方式。(1)單獨(dú)編址方式單獨(dú)編址方式是指系統(tǒng)使用一個不同于主存地址空間之外的單獨(dú)的一個地址空間,為外圍設(shè)備及接口中的所有I/O端口分配I/O地址。在這種方式下,CPU指令系統(tǒng)中有專門的用于與設(shè)備進(jìn)行數(shù)據(jù)傳輸?shù)妮斎?輸出指令,對設(shè)備的訪問必須使用這些專用指令進(jìn)行。單獨(dú)編址方式的優(yōu)點:一是I/O端口的地址沒有占用主存的地址空間;二是I/O端口的地址碼較短,地址譯碼器設(shè)計及實現(xiàn)簡單,譯碼時間也較短。其缺點是:只能使用專用輸入/輸出指令訪問I/O設(shè)備,對I/O設(shè)備操作的程序設(shè)計靈活性較差。(2)統(tǒng)一編址方式統(tǒng)一編址方式是指I/O端口與主存單元使用同一個地址空間進(jìn)行統(tǒng)一編址。在這種方式下,CPU指令系統(tǒng)中無需設(shè)置專門的與設(shè)備進(jìn)行數(shù)據(jù)傳輸?shù)妮斎?輸出指令,I/O端口被當(dāng)成主存單元同樣對待,對主存單元進(jìn)行訪問和操作的指令同樣可以用于對I/O端口的訪問和操作。統(tǒng)一編址的優(yōu)點:可以使用訪存指令訪問I/O,對I/O設(shè)備操作的程序設(shè)計靈活性較好。其缺點是:I/O端口的地址占用了主存的部分地址空間,對I/O端口訪問的地址譯碼更復(fù)雜。10.4程序查詢方式10.4.1程序查詢流程10.4.2程序查詢方式的接口電路程序查詢方式中,數(shù)據(jù)在CPU和I/O模塊之間交換,CPU執(zhí)行一個能直接控制I/O操作的程序,這個程序包括檢測設(shè)備的狀態(tài),發(fā)送讀寫命令和數(shù)據(jù)傳送。當(dāng)CPU發(fā)送一個命令到I/O模塊時,CPU必須處于等待狀態(tài)直到I/O操作完成。如果CPU的速度快于I/O模塊,則CPU必須等待。10.4.1程序查詢流程圖10-5(a)為單個設(shè)備的程序查詢圖。從圖中可以看出,程序查詢方式的關(guān)鍵在于不斷查詢I/O設(shè)備是否準(zhǔn)備就緒,如果準(zhǔn)備就緒才發(fā)送讀/寫命令開始數(shù)據(jù)交換。如果有多個I/O設(shè)備時,CPU則按照各個設(shè)備在系統(tǒng)中的優(yōu)先級別逐級進(jìn)行查詢。其查詢圖如圖10-5(b)。圖10-5設(shè)備的程序查詢圖完成這種查詢通常需要執(zhí)行三條指令:測試指令:查詢設(shè)備是否準(zhǔn)備就緒。傳送指令:設(shè)備準(zhǔn)備就緒時,執(zhí)行傳送指令開始傳送數(shù)據(jù)。轉(zhuǎn)移指令:如果設(shè)備沒有準(zhǔn)備好,則執(zhí)行轉(zhuǎn)移指令,轉(zhuǎn)移到繼續(xù)測試設(shè)備狀態(tài)處。程序查詢方式的工作過程為:(1)預(yù)置傳送參數(shù):在傳送數(shù)據(jù)之前,由CPU執(zhí)行一段初始化程序,預(yù)置傳送參數(shù),傳送參數(shù)有存取數(shù)據(jù)的主存緩沖區(qū)首地址和傳送數(shù)據(jù)的設(shè)備地址等。(2)向外設(shè)接口發(fā)出命令字:當(dāng)CPU選中一臺外設(shè)之后,執(zhí)行輸出指令向外設(shè)接口發(fā)出命令字,啟動外設(shè),為接收數(shù)據(jù)或者發(fā)送數(shù)據(jù)做好準(zhǔn)備。(3)從外設(shè)接口取回狀態(tài)字:CPU執(zhí)行輸入指令,從外設(shè)接口中取回狀態(tài)字并進(jìn)行測試,判斷數(shù)據(jù)傳送是否可以進(jìn)行。(4)查詢外設(shè)標(biāo)志:CPU不斷查詢狀態(tài)標(biāo)志,如果外設(shè)未準(zhǔn)備就緒,則CPU繼續(xù)等待,直到這個外設(shè)準(zhǔn)備就緒,并且發(fā)出“外設(shè)準(zhǔn)備就緒”信號為止。(5)傳送數(shù)據(jù):只有在外設(shè)準(zhǔn)備好的情況下,主機(jī)和外設(shè)之間才能開始數(shù)據(jù)傳送。輸入時,CPU執(zhí)行輸入指令,從外設(shè)接口的數(shù)據(jù)緩沖寄存器中接收數(shù)據(jù);輸出時,CPU執(zhí)行輸出指令,將數(shù)據(jù)寫入外設(shè)接口的數(shù)據(jù)緩沖寄存器中。(6)修改傳送參數(shù):在每次數(shù)據(jù)傳送之后必須要修改傳送參數(shù),其中修改的內(nèi)容有:主存緩沖存儲區(qū)的地址加1,傳送個數(shù)計數(shù)器減1。(7)結(jié)束I/O傳送,繼續(xù)執(zhí)行其他程序。假如傳送個數(shù)計數(shù)器的值不為0,則轉(zhuǎn)到第三步繼續(xù)傳送,直到計數(shù)器的值為0,則表示傳送結(jié)束。程序查詢流程圖如圖10-6所示,其中真正傳送數(shù)據(jù)的操作由輸入或輸出指令完成。圖10-6程序查詢流程圖10.4.2程序查詢方式的接口電路程序查詢方式的接口電路的組成如圖10-7所示。圖中的數(shù)據(jù)緩沖寄存器用來存放將要傳送的數(shù)據(jù)。D、B為兩個反映設(shè)備工作狀態(tài)的標(biāo)記觸發(fā)器,B為工作觸發(fā)器,D為完成觸發(fā)器。其表示的狀態(tài)為:圖10-7程序查詢接口電路D=0,B=0,I/O設(shè)備處于暫停狀態(tài)。D=1,B=0,I/O設(shè)備已經(jīng)準(zhǔn)備就緒。D=0,B=1,I/O設(shè)備正處于準(zhǔn)備狀態(tài)。其中的設(shè)備選擇電路用來識別本設(shè)備的地址,當(dāng)?shù)刂肪€上的設(shè)備號和本設(shè)備號相符時,則SEL有效,可以開始接收命令。以輸入設(shè)備為例,接口的工作過程具體為:(1)CPU發(fā)出啟動外設(shè)的命令,將工作觸發(fā)器B置為“1”態(tài),完成觸發(fā)器D置為“0”狀態(tài)。(2)啟動外設(shè)進(jìn)入工作狀態(tài),輸入設(shè)備將數(shù)據(jù)送入數(shù)據(jù)緩沖器,CPU同時開始檢測D觸發(fā)器狀態(tài),看是否外設(shè)準(zhǔn)備完成。(3)外設(shè)將數(shù)據(jù)傳送結(jié)束后向接口發(fā)送“設(shè)備工作結(jié)束”信號,同時將D置為“1”,B置為“0”。(4)CPU檢測到D觸發(fā)器狀態(tài)變?yōu)椤皽?zhǔn)備就緒”,知道數(shù)據(jù)緩沖器被輸入數(shù)據(jù)占滿。(5)CPU執(zhí)行輸入指令,將輸入數(shù)據(jù)送至CPU通用寄存器,然后再存入主存的相關(guān)存儲單元。10.5程序中斷方式10.5.1中斷的基本概念10.5.2中斷的響應(yīng)、處理過程10.5.3多重中斷處理10.5.4程序中斷方式的接口電路10.5.5中斷控制器舉例10.5.1中斷的基本概念1、中斷的產(chǎn)生和作用程序查詢方式存在著下列明顯的缺點:(1)在查詢過程中,CPU長期處于踏步等待狀態(tài),使系統(tǒng)效率大大降低。(2)CPU在一段時間內(nèi)只能和一臺外設(shè)交換信息,其他設(shè)備不能同時工作。(3)不能發(fā)現(xiàn)和處理預(yù)先無法估計的錯誤和異常情況。為了提高輸入輸出能力和CPU的效率,程序中斷方式被引進(jìn)計算機(jī)系統(tǒng)。程序中斷方式的思想是:CPU在程序中安排好在某一時刻啟動某一臺外設(shè),然后CPU繼續(xù)執(zhí)行原來程序,不需要像查詢方式那樣一直等待外設(shè)的準(zhǔn)備就緒狀態(tài)。一旦外設(shè)完成數(shù)據(jù)傳送的準(zhǔn)備工作時,便主動向CPU發(fā)出一個中斷請求,請求CPU為自己服務(wù)。在可以響應(yīng)中斷的條件下,CPU暫時中止正在執(zhí)行的程序,轉(zhuǎn)去執(zhí)行中斷服務(wù)程序為中斷請求者服務(wù),在中斷服務(wù)程序中完成一次CPU與外設(shè)之間的數(shù)據(jù)傳送,傳送完成后,CPU仍返回原來的程序,從斷點處繼續(xù)執(zhí)行。圖10-8給出了程序中斷方式的示意圖。圖10-8程序中斷方式示意圖從圖中可以看到,中斷方式在一定程度上實現(xiàn)了CPU和外設(shè)的并行工作,使CPU的效率得到充分的發(fā)揮。不僅如此,由于中斷的引入,還能使多個外設(shè)并行工作,CPU根據(jù)需要可以啟動多個外設(shè),被啟動的外設(shè)分別同時獨(dú)立地工作,一旦外設(shè)準(zhǔn)備就緒,即可向CPU發(fā)出中斷請求,CPU可根據(jù)預(yù)先安排好的優(yōu)先順序,按輕重緩急處理外設(shè)與自己的數(shù)據(jù)傳送。另外,計算機(jī)在運(yùn)行過程中可能會發(fā)生預(yù)料不到的異常事件,如運(yùn)算出錯、掉電、運(yùn)算結(jié)果溢出等,由于中斷的引入,使計算機(jī)可以捕捉到這些故障和錯誤,及時予以處理。所以,現(xiàn)代計算機(jī)都具有中斷處理能力。從圖中還可以看到,中斷的處理過程實際上是程序的切換過程,即從現(xiàn)行程序切換到中斷服務(wù)程序,再從中斷服務(wù)程序返回到現(xiàn)行程序。CPU每次執(zhí)行中斷服務(wù)程序前總要保護(hù)斷點、保護(hù)現(xiàn)場,執(zhí)行完中斷服務(wù)程序返回現(xiàn)行程序之前又要恢復(fù)現(xiàn)場、恢復(fù)斷點。這些中斷的輔助操作都將限制數(shù)據(jù)傳送的速度。2、中斷及有關(guān)的概念當(dāng)CPU正常運(yùn)行程序時,由I/O設(shè)備或其他非預(yù)期的急需處理的事件使得CPU暫時中止正在執(zhí)行的程序,而轉(zhuǎn)至另一服務(wù)程序去處理這些事件,處理完后再返回被中止的程序繼續(xù)執(zhí)行,這一過程稱為中斷。①、中斷源:引起程序中斷的事件或設(shè)備稱為中斷源。中斷源有外部中斷和內(nèi)部中斷之分,內(nèi)部中斷由程序預(yù)先安排的中斷指令引起,或由于CPU運(yùn)算中產(chǎn)生的某些錯誤(如除法出錯、運(yùn)算溢出)引起。外部中斷是外部設(shè)備向CPU發(fā)出中斷申請引起的。②、中斷響應(yīng):中斷請求何時發(fā)生一般是隨機(jī)的,處理機(jī)通常在每條指令的最后一個周期去檢測有無中斷請求,當(dāng)檢測到有中斷請求而處理機(jī)又可以停下現(xiàn)行程序去對事件進(jìn)行處理時,會停下現(xiàn)行程序的執(zhí)行,然后執(zhí)行一系列的準(zhǔn)備工作準(zhǔn)備轉(zhuǎn)去執(zhí)行事件對應(yīng)的服務(wù)程序,這個過程叫中斷響應(yīng)。當(dāng)中斷服務(wù)程序執(zhí)行完畢,CPU返回原執(zhí)行程序的中斷處,繼續(xù)往下執(zhí)行,這稱為中斷返回。③、中斷優(yōu)先級:當(dāng)有多個中斷源請求中斷時,CPU必須按照一定的先后順序?qū)@些事件逐一進(jìn)行處理,而中斷優(yōu)先級就是按中斷性質(zhì)和處理的輕重緩急分配給中斷事件的參數(shù),作為它排隊處理時的依據(jù)。④、禁止中斷:產(chǎn)生中斷源后,由于某種條件的存在,CPU不能中止現(xiàn)行程序的執(zhí)行,稱為禁止中斷。一般在CPU內(nèi)部設(shè)有一個“中斷允許”觸發(fā)器。只有該觸發(fā)器為“1”狀態(tài)時,才允許處理機(jī)響應(yīng)中斷,此時稱允許中斷;當(dāng)該觸發(fā)器被清除,則不響應(yīng)中斷源申請的中斷,叫禁止中斷。⑤、中斷屏蔽:當(dāng)產(chǎn)生中斷請求時,用程序方式有選擇地封鎖部分中斷,而允許其余部分中斷仍能得到響應(yīng),稱為中斷屏蔽。中斷屏蔽的實現(xiàn)方法是為每個中斷源設(shè)置一個中斷屏蔽觸發(fā)器來屏蔽該設(shè)備的中斷請求。由各設(shè)備的中斷屏蔽觸發(fā)器組成了中斷屏蔽寄存器。但系統(tǒng)中有些中斷請求是不可屏蔽的,也就是說,不管中斷系統(tǒng)是否允許中斷,這些中斷源的中斷請求一旦提出,請求就傳送給CPU,而CPU必須立即響應(yīng)。例如,電源掉電就是不可屏蔽中斷。所以,中斷又分為可屏蔽中斷和非屏蔽中斷。非屏蔽中斷具有最高優(yōu)先權(quán)。一旦CPU響應(yīng)中斷的條件得到滿足,CPU開始響應(yīng)中斷,轉(zhuǎn)入中斷服務(wù)程序,進(jìn)行中斷事件的處理。10.5.2中斷的響應(yīng)、處理過程1、CPU響應(yīng)中斷的條件①、外設(shè)提出中斷申請,CPU接收到中斷請求信號。首先中斷源要發(fā)出中斷請求信號(INT),當(dāng)該中斷請求信號沒有被屏蔽掉時,CPU就能接收到該請求信號。②、CPU允許中斷。CPU允許中斷,即開中斷(允許中斷),此時才允許處理機(jī)響應(yīng)中斷。通常,中斷允許觸發(fā)器由開中斷指令來置位,由關(guān)中斷指令或硬件自動使其復(fù)位。③、一條指令執(zhí)行完畢這是CPU響應(yīng)中斷請求的時間限制條件。一般情況下,CPU在指令執(zhí)行的最后一個時鐘周期去檢測有無中斷請求信號,然后在一條指令執(zhí)行完且沒有更緊迫的任務(wù)時才能響應(yīng)中斷請求。2、中斷處理流程通常情況下,CPU處理中斷的流程如圖10-9所示。圖10-9中斷處理流程圖從圖中可以看出,CPU響應(yīng)中斷后,要經(jīng)過某些操作,才能轉(zhuǎn)去執(zhí)行中斷服務(wù)程序。這些操作通常是由硬件直接實現(xiàn)的,把它稱為中斷隱指令。中斷隱指令并不是指令系統(tǒng)中的一條真正的指令,它沒有操作碼,所以中斷隱指令是一種不允許、也不可能被用戶使用的特殊指令。其所完成的操作主要有:①、關(guān)中斷:進(jìn)入不可再次響應(yīng)中斷的狀態(tài),通常由硬件實現(xiàn)。因為接下來要進(jìn)入保存斷點的操作,而保存過程中,是不允許被打斷的。②、保存斷點:為了保證在中斷服務(wù)程序執(zhí)行完畢后能正確返回原來的程序,必須將原來程序的斷點(即程序計數(shù)器PC的值)保存起來。斷點可以壓入堆棧,也可以存入內(nèi)存的特定單元中。③、尋找中斷源尋找中斷源可以有查詢中斷和矢量中斷兩種方法。查詢中斷是采用軟件查詢方法,由一個測試程序按一定的優(yōu)先級排隊次序依次檢查各個設(shè)備的“中斷觸發(fā)器”,當(dāng)檢測到中斷源后,轉(zhuǎn)向此設(shè)備預(yù)先設(shè)置的中斷服務(wù)程序入口地址。矢量中斷是將每個設(shè)備的中斷服務(wù)程序的入口地址(矢量地址)集中,依次放在中斷向量表中。當(dāng)CPU響應(yīng)中斷后,控制邏輯根據(jù)外設(shè)提供的中斷類型號查找中斷向量表,然后將中斷服務(wù)程序的入口地址取出送程序計數(shù)器,CPU轉(zhuǎn)入中斷服務(wù)程序中。3、中斷服務(wù)程序的流程不同設(shè)備的服務(wù)程序是不相同的,可它們的程序流程又是類似的,一般中斷服務(wù)程序的流程分為四大部分:保護(hù)現(xiàn)場、中斷服務(wù)、恢復(fù)現(xiàn)場和中斷返回。①、保護(hù)現(xiàn)場保護(hù)現(xiàn)場指的是保存通用寄存器和狀態(tài)寄存器的內(nèi)容,一般由中斷服務(wù)程序完成。具體而言,可在中斷服務(wù)程序的起始部分安排若干條存數(shù)指令,將寄存器的內(nèi)容存至存儲器中保存,或用進(jìn)棧指令(PUSH)將各個寄存器的內(nèi)容放入堆棧保存。②、中斷服務(wù)這是中斷服務(wù)程序的主體部分,不同的中斷請求源其中斷服務(wù)操作內(nèi)容是不同的,如打印機(jī)要求CPU將要打印的字符送入打印機(jī)緩沖存儲器中以供打印,而顯示設(shè)備要求將需顯示的字符送入顯示器的顯示存儲器中。③、恢復(fù)現(xiàn)場這是中斷服務(wù)程序的結(jié)尾部分,要求在退出服務(wù)程序前,將原程序中斷時的“現(xiàn)場”恢復(fù)到原來的寄存器中。通常用取數(shù)指令或出棧指令(POP)來實現(xiàn)。④、中斷返回中斷服務(wù)程序的最后一條指令通常是一條中斷返回指令,使其返回到原程序的斷點處,以便繼續(xù)執(zhí)行原程序。圖10-10表示了中斷服務(wù)程序的流程。圖10-10中斷服務(wù)程序的流程圖從圖中可以看到加入的還有一些開中斷和關(guān)中斷操作。其中的關(guān)中斷操作是為了保證保存現(xiàn)場和恢復(fù)現(xiàn)場的操作不被打斷,如果現(xiàn)場保存不完整或現(xiàn)場恢復(fù)不完整就不能保證能正確返回繼續(xù)執(zhí)行原程序。而開中斷操作的作用是:前一個用來保證能實現(xiàn)多重中斷處理,后一個是保證回到原程序后能再去響應(yīng)別的中斷請求。10.5.3多重中斷處理多重中斷是指在處理某一個中斷事件的過程中又發(fā)生了新的中斷請求,從而中斷該服務(wù)程序的執(zhí)行,又轉(zhuǎn)去進(jìn)行新的中斷處理。這種重疊處理中斷的現(xiàn)象又稱為中斷嵌套。一般情況下,在處理某級別的某個中斷時,與它同級的或比它低級的新中斷請求應(yīng)不能中斷它的處理,而在處理完該中斷返回主程序后,再去響應(yīng)和處理這些新中斷。而比它優(yōu)先級高的新中斷請求卻能中斷它的處理。也就是說,當(dāng)CPU正在執(zhí)行某中斷服務(wù)程序期間,若有更高優(yōu)先級的中斷請求發(fā)生,且CPU處于開中斷狀態(tài)時,CPU暫停對原中斷服務(wù)程序的執(zhí)行,轉(zhuǎn)去執(zhí)行新的中斷請求的服務(wù)程序,處理完后再返回原中斷服務(wù)程序繼續(xù)執(zhí)行。如圖10-11所示為一個4級中斷嵌套的例子,4級中斷請求的優(yōu)先級別由高到低為1→2→3→4的順序。圖10-11多重中斷處理示意圖10.5.4程序中斷方式的接口電路具有中斷能力的外設(shè)接口是由程序查詢式接口再加上中斷控制機(jī)構(gòu)組成的。簡化的中斷式接口如圖10-12所示。從其邏輯功能來看,這個接口不僅可以保證中斷式傳送,而且也可以提供程序查詢式傳送。圖10-12中斷方式的接口電路中斷控制機(jī)構(gòu)至少應(yīng)包括下列幾個部分:(1)中斷請求電路。當(dāng)中斷源有請求且中斷不被屏蔽時,向CPU發(fā)中斷請求信號。(2)中斷優(yōu)先級電路。保證優(yōu)先級別最高的中斷源首先獲得CPU的服務(wù)。(3)向量地址形成部件。用來產(chǎn)生向量中斷時需要的向量地址,并且根據(jù)這個向量地址轉(zhuǎn)向該中斷源所對應(yīng)的中斷服務(wù)程序。10.5.5中斷控制器舉例8259A中斷控制器是一個集成電路芯片,它將中斷接口與優(yōu)先級判斷等功能匯集于一身,常用于微型機(jī)系統(tǒng)。其內(nèi)部結(jié)構(gòu)如圖10-13所示。由8個部分組成:中斷請求寄存器、中斷狀態(tài)寄存器、優(yōu)先級判別器、中斷屏蔽寄存器、中斷控制邏輯、數(shù)據(jù)緩沖器、級聯(lián)比較器和讀寫邏輯。圖10-138259A中斷控制器8259A的中斷優(yōu)先級選擇方式有四種:完全嵌套方式,優(yōu)先級自動循環(huán)方式,優(yōu)先級特殊循環(huán)方式和查詢方式。完全嵌套方式是一種固定優(yōu)先級方式,連接至IR0的外設(shè)優(yōu)先級最高,而連接至IR7的外設(shè)的優(yōu)先級最低。這種固定優(yōu)先級方式對級別低的中斷不利,在某些情況下,最低級別的中斷請求可能一直不能被處理。采用優(yōu)先級自動循環(huán)方式時,每個級別的中斷都保證有機(jī)會被處理。它把給定的中斷級別處理完后,立即把它放到最低級別的位置上去,其余級別進(jìn)行順序循環(huán)調(diào)整。而優(yōu)先級特殊循環(huán)方式允許CPU在任何時間規(guī)定最低優(yōu)先級,然后順序地排定其他IR線上的設(shè)備的優(yōu)先級。查詢方式由CPU訪問8259A的中斷狀態(tài)寄存器,得到一個狀態(tài)字,表示出正在請求中斷的最高優(yōu)先級別IR端,并能表示出中斷請求是否有效。8259提供了兩種屏蔽方式:普通屏蔽方式和特殊屏蔽方式。普通屏蔽方式時,將中斷屏蔽寄存器IMR中某一位或某幾位置“1”,即可將對應(yīng)位的中斷請求屏蔽掉。而特殊屏蔽方式時,中斷屏蔽寄存器中被置“1”的位所對應(yīng)的中斷請求被屏蔽,同時又開放了較低級別的中斷。如屏蔽字為11101111,說明除IR4外的中斷請求都被屏蔽掉,同時IR4可中斷任何高級別的中斷服務(wù)程序。8259A中斷控制器的不同工作方式是通過編程來實現(xiàn)的。CPU送出一系列的初始化命令字和操作命令字來執(zhí)行選定的操作。10.6DMA方式10.6.1DMA方式的特點10.6.2DMA控制器的功能和組成10.6.3DMA傳送過程雖然I/O中斷方式克服了程序查詢方式中CPU等待的情況,實現(xiàn)了I/O設(shè)備和CPU的并行工作,提高了CPU的工作效率。但是CPU在處理中斷服務(wù)程序時,仍然還需要暫停正在執(zhí)行的程序。如果高速的I/O設(shè)備需要與主存頻繁地交換大量信息時,CPU將頻繁地中斷正在執(zhí)行的程序而轉(zhuǎn)去執(zhí)行中斷服務(wù)程序。因此程序查詢和I/O中斷兩種方式存在先天性的缺點:第一,I/O傳送速度由CPU的測試和提供給設(shè)備服務(wù)的速度所限制。第二,每一次I/O的傳送由CPU負(fù)責(zé)管理,CPU必須參與,執(zhí)行某些指令。所以在程序查詢中,由CPU專門處理I/O任務(wù),雖可以高速傳送數(shù)據(jù),但CPU卻不能做其他的事。在中斷I/O中,CPU雖然不必等待I/O,但是與I/O的傳輸率卻降低了。為了彌補(bǔ)這兩種技術(shù)的不足,人們開發(fā)了效率更高的DMA控制方式。10.6.1DMA方式的特點DMA(DirectMemoryAccess)是I/O設(shè)備與主存儲器之間由硬件組成的直接數(shù)據(jù)通路,用于高速I/O設(shè)備與主存之間的成組數(shù)據(jù)傳送。數(shù)據(jù)傳送是在DMA控制器控制下進(jìn)行的,CPU不用參與,因此它的工作效率要比程序中斷方式要高。DMA方式具有下列特點:首先,它使主存與CPU的固定聯(lián)系脫鉤,主存既可被CPU訪問,又可被外設(shè)訪問。第二,在數(shù)據(jù)傳送過程中,內(nèi)存地址的確定、數(shù)據(jù)的計數(shù)等都有DMA控制器直接實現(xiàn)。第三,CPU和外設(shè)并行工作,提高了系統(tǒng)的效率。第四,DMA在傳送開始前要通過中斷程序進(jìn)行預(yù)處理,結(jié)束后要通過中斷方式進(jìn)行后處理。由于DMA接口與CPU共享主存,所以就有可能出現(xiàn)競爭主存的情況,為了解決二者可能的沖突,有效地分時訪問主存,DMA一般采用三種策略。(1)禁止CPU訪問主存(2)周期竊取方式(3)DMA與CPU交替訪問(1)禁止CPU訪問主存圖10-14禁止CPU訪問主存這種方式的優(yōu)點是控制簡單,適用于數(shù)據(jù)傳輸率較高的I/O設(shè)備傳送成組的數(shù)據(jù)。其缺點是當(dāng)DMA接口在訪問主存時,CPU基本上處于保持原狀態(tài)或者是不工作狀態(tài),而且即使I/O設(shè)備高速運(yùn)行,但其兩個傳輸數(shù)據(jù)的準(zhǔn)備間隔時間也總要大于一個存取周期,因此,CPU對主存的利用率并沒有得到充分的發(fā)揮。(2)周期竊取方式圖10-15周期竊取方式(3)DMA與CPU交替訪問圖10-16DMA和CPU交替訪問10.6.2DMA控制器的功能和組成1、DMA接口的功能利用DMA方式傳送數(shù)據(jù)時,數(shù)據(jù)的傳送過程完全由DMA接口電路控制,故DMA接口又稱為DMA控制器,它應(yīng)具有如下幾個功能:①、向CPU申請DMA傳送;②、在CPU允許DMA工作時,處理總線控制權(quán)的轉(zhuǎn)交,避免因進(jìn)入DMA工作而影響CPU正常活動或引起總線競爭;③、在DMA工作期間管理系統(tǒng)總線,控制數(shù)據(jù)傳送;④、確定數(shù)據(jù)傳送的起始地址和數(shù)據(jù)個數(shù),修正數(shù)據(jù)傳送過程中的數(shù)據(jù)地址和個數(shù);⑤、在數(shù)據(jù)傳送結(jié)束時,給出DMA操作完成的信號。2、DMA接口的基本組成DMA接口基本組成如圖10-17所示。它包括多個設(shè)備寄存器、中斷控制和DMA控制邏輯等。圖10-17DMA接口組成原理圖主存地址寄存器(MAR):外圍設(shè)備地址寄存器(ADR):字?jǐn)?shù)計數(shù)器(WC):控制與狀態(tài)寄存器(CSR):數(shù)據(jù)緩沖寄存器(DBR):中斷控制邏輯:DMA控制邏輯:10.6.3DMA傳送過程DMA數(shù)據(jù)傳送的過程可分為三個階段:預(yù)處理、數(shù)據(jù)傳送和后處理。此過程如圖10-18所示。圖10-18DMA傳送過程1、DMA預(yù)處理在進(jìn)行DMA數(shù)據(jù)傳送之前要用程序做一些必要的準(zhǔn)備工作。主要是向DMA接口中預(yù)置如下信息:給DMA控制邏輯指明數(shù)據(jù)傳送的方向是輸入還是輸出;向DMA設(shè)備地址寄存器送入設(shè)備號,并啟動設(shè)備;向DMA主存地址寄存器送入交換數(shù)據(jù)的主存起始地址;對字計數(shù)器賦以交換數(shù)據(jù)的個數(shù)。2、數(shù)據(jù)傳送CPU做完預(yù)處理后,繼續(xù)執(zhí)行原來的程序,同時外設(shè)開始準(zhǔn)備,當(dāng)外設(shè)準(zhǔn)備好要傳送的數(shù)據(jù)后,通過DMA接口向CPU提出占用總線的申請,開始數(shù)據(jù)的傳送過程。3、后處理當(dāng)一組數(shù)據(jù)傳送完成或出錯時,進(jìn)入DMA傳送的后處理過程,此時DMA接口通過中斷控制邏輯向CPU發(fā)出中斷申請,CPU轉(zhuǎn)去執(zhí)行中斷服務(wù)程序,做一些DMA的結(jié)束工作。如需要繼續(xù)傳送的話再次進(jìn)行DMA接口的初始化,如出錯的話轉(zhuǎn)錯誤診斷處理程序等。10.7通道方式對于高速外設(shè)的成組數(shù)據(jù)交換,采用DMA方式不僅節(jié)省了CPU開銷,而且提高了系統(tǒng)的吞吐能力。在小型、微型計算機(jī)中,采用程序中斷和DMA方式進(jìn)行系統(tǒng)的I/O處理是有效的。但在大、中型計算機(jī)中,外設(shè)配置多,數(shù)據(jù)傳送頻繁,如仍采用DMA方式存在下述問題:第一,如果為數(shù)眾多的外設(shè)都配置專用的DMA控制器,將大幅度增加硬件,因而提高成本。而且要為解決眾多DMA同時訪問主存的沖突,使控制復(fù)雜化。第二,采用DMA傳送方式的眾多外設(shè)均直接由CPU管理控制,由CPU進(jìn)行初始化,勢必會占用更多的CPU時間,而且頻繁的周期挪用會降低CPU執(zhí)行程序的效率。為避免上述弊病,在大、中型計算機(jī)系統(tǒng)中常采用I/O通道方式進(jìn)行數(shù)據(jù)交換。I/O通道是計算機(jī)系統(tǒng)中代替CPU管理控制外設(shè)的獨(dú)立部件,是一種能執(zhí)行有限I/O指令集合——通道命令的I/O處理機(jī)。通道控制方式是DMA方式的進(jìn)一步發(fā)展,實質(zhì)上,通道也是實現(xiàn)外設(shè)和內(nèi)存之間直接交換數(shù)據(jù)的控制器。與DMA控制器相比,兩者的主要區(qū)別在于:首先,DMA控制器是通過專門設(shè)計的硬件控制邏輯來實現(xiàn)對數(shù)據(jù)傳送的控制;而通道是通過執(zhí)行通道程序來實現(xiàn)對數(shù)據(jù)傳送的控制,故通道具有更強(qiáng)的獨(dú)立處理數(shù)據(jù)輸入輸出的功能。其次,DMA控制器通常只能控制一臺或少數(shù)幾臺同類設(shè)備;而通道可以同時控制許多臺同類或不同類的設(shè)備。在通道控制方式下,一個主機(jī)可以連接幾個通道,每個通道又可連接若干個設(shè)備控制器,一個設(shè)備控制器又可接一臺或多臺外部設(shè)備。因此,從邏輯結(jié)構(gòu)上講,具有4級連接:主機(jī)—通道—設(shè)備控制器—外部設(shè)備。如圖10-19所示。圖10-19通道方式的典型結(jié)構(gòu)通道在一定的硬件基礎(chǔ)上利用軟件手段實現(xiàn)對I/O的控制,更多地免去了CPU的介入。但是,通道并不能完全脫離CPU,它還要受到CPU的管理,比如啟動、停止等,而且通道還應(yīng)該向CPU報告自己的狀態(tài),以便CPU決定下一步的處理。通道大致應(yīng)具有以下幾個方面的功能:①、接受CPU的I/O指令,按指令要求與指定的外設(shè)進(jìn)行聯(lián)系。②、從內(nèi)存取出屬于該通道程序的通道指令,經(jīng)譯碼后向設(shè)備控制器和設(shè)備發(fā)送各種命令。③、實施內(nèi)存和外設(shè)間的數(shù)據(jù)傳送,如為內(nèi)存或外設(shè)裝配和拆卸信息,提供數(shù)據(jù)中間緩存以及指示數(shù)據(jù)存放的內(nèi)存地址和傳送的數(shù)據(jù)量。④、從外設(shè)獲得外設(shè)的狀態(tài)信息,形成并保存通道本身的狀態(tài)信息,根據(jù)要求將這些狀態(tài)信息送到內(nèi)存的指定單元中,供CPU使用。⑤、將外設(shè)的中斷請求和通道本身的中斷請求按次序及時報告給CPU。根據(jù)多臺設(shè)備共享通道的不同情況,可將通道分為三類:字節(jié)多路通道、選擇通道和數(shù)組多路通道。在采用通道的計算機(jī)系統(tǒng)中,輸入輸出操作可分為兩個層次:(1)主CPU執(zhí)行I/O指令生成輸入輸出程序。(2)通道執(zhí)行所生成的程序,完成輸入輸出操作。在大、中型計算機(jī)中,通常將運(yùn)行操作系統(tǒng)稱為“管態(tài)”,而將運(yùn)行用戶程序稱為“目態(tài)”。I/O指令屬于主CPU的指令系統(tǒng),由主CPU執(zhí)行,但I(xiàn)/O指令并不直接負(fù)責(zé)輸入輸出操作,只負(fù)責(zé)通道和外設(shè)的啟動、停止、查詢等操作。CPU執(zhí)行I/O指令將進(jìn)入“管態(tài)”。在管態(tài)下由操作系統(tǒng)的設(shè)備管理程序負(fù)責(zé)生成輸入輸出程序,交給通道運(yùn)行以完成輸入輸出工作,帶有通道的計算機(jī)系統(tǒng)執(zhí)行輸入輸出操作的過程如圖10-20所示。圖10-20帶通道的計算機(jī)系統(tǒng)輸入輸出過程圖(1)CPU執(zhí)行目態(tài)程序時,遇到輸入輸出指令,便轉(zhuǎn)入管態(tài)執(zhí)行系統(tǒng)程序中的設(shè)備管理程序。(2)設(shè)備管理程序的主要目的是根據(jù)輸入輸出指令提供的參數(shù),自動生成輸入輸出程序,并將編寫好的程序首地址,裝入通道的程序計數(shù)器,然后CPU返回目態(tài)程序繼續(xù)工作。(3)通道執(zhí)行生成的輸入輸出程序,在程序的控制下完成整個I/O過程。待I/O過程結(jié)束,向CPU發(fā)出中斷請求信號。(4)CPU接到中斷請求,進(jìn)入中斷處理程序,根據(jù)中斷原因進(jìn)行相應(yīng)的處理,然后返回目態(tài)程序,一次輸入輸出過程至此結(jié)束。10.8外設(shè)接口舉例1、IDE接口IDE(integrateddriveelectronics,集成設(shè)備電路)是從IBMPC/AT上使用的ATA接口發(fā)展而來的,也稱為智能磁盤設(shè)備接口(intelligentdiskequipment),是專門為磁盤類外部設(shè)備而設(shè)計的接口標(biāo)準(zhǔn)。IDE接口通過一條40線的扁平電纜連接IDE設(shè)備,標(biāo)準(zhǔn)信號有40個,定義了16位數(shù)據(jù)線和少數(shù)地址線,還定義了一組中斷、DMA等,通過片選信號訪問硬盤的寄存器。IDE的每個端口可支持2個設(shè)備,每個端口上的這兩個設(shè)備分別為主設(shè)備和從設(shè)備,可通過設(shè)備上的跳線開關(guān)設(shè)定為主設(shè)備還是從設(shè)備。2、SCSI接口小型計算機(jī)系統(tǒng)接口(smallcomputersysteminterface,簡稱SCSI)是流行的用于小型機(jī)和微型機(jī)的外部設(shè)備接口標(biāo)準(zhǔn),它由美國的ShugartAssociates和NCR公司在1979年發(fā)明,以主機(jī)系統(tǒng)對智能外設(shè)的統(tǒng)一I/O接口總線的形式出現(xiàn)。和微型計算機(jī)中的IDE接口相比,SCSI具有以下幾個方面的特點。(1)應(yīng)用面廣(2)適應(yīng)性強(qiáng)(3)擴(kuò)展性好(4)速度快SCSI標(biāo)準(zhǔn)規(guī)定了兩種輸出方式:單端輸出方式和差分輸出方式。早期標(biāo)準(zhǔn)中,單端輸出時采用的50芯扁平電纜上大部分為地線,保證信號屏蔽良好。信號線共18根,包括9條數(shù)據(jù)線(8位數(shù)據(jù)加1位奇偶校驗位)和9條控制線。差分輸出方式把單端輸出方式中的一部分地線改成了數(shù)據(jù)線和控制信號線的對稱差分信號線,提高了數(shù)據(jù)抗干擾能力。最早的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論