




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第八章輸入輸出系統(tǒng)主講教師莊春興
計(jì)算機(jī)的輸入輸出系統(tǒng)簡(jiǎn)稱為I/O系統(tǒng),它包括第八章輸入輸出系統(tǒng)本章內(nèi)容:
外圍設(shè)備的定時(shí)方式和信息交換方式重點(diǎn)介紹程序中斷方式、DMA方式、通道方式介紹通用并行I/O標(biāo)準(zhǔn)接口SCSI
I/O接口I/O管理部件有關(guān)軟件一個(gè)計(jì)算機(jī)系統(tǒng)的綜合處理能力,系統(tǒng)的可擴(kuò)展性、兼容性和性能價(jià)格比,都和I/O系統(tǒng)有密切關(guān)系。8.1外圍設(shè)備的定時(shí)方式與信息交換方式8.1.1外圍設(shè)備的定時(shí)方式外圍設(shè)備的種類很多;其輸入信號(hào),可以是數(shù)字式的電壓,也可以是
模擬式的電壓和電流。數(shù)據(jù)傳輸速率來(lái)講,相差也很懸殊。首先遇到的一個(gè)問(wèn)題,就是如何保證主機(jī)與外圍設(shè)備在時(shí)間上同步8.1外圍設(shè)備的定時(shí)方式與信息交換方式輸入/輸出設(shè)備同CPU交換數(shù)據(jù)的過(guò)程輸入過(guò)程三個(gè)步驟;(1)CPU把一個(gè)地址放在地址總線上,選擇某一輸入設(shè)備;(2)CPU等候輸入設(shè)備的數(shù)據(jù)成為有效;(3)CPU從數(shù)據(jù)總線讀入數(shù)據(jù),并放在一個(gè)相應(yīng)的寄存器中。輸出過(guò)程三個(gè)步驟:(1)CPU把一個(gè)地址值放在地址總線上,選擇輸出設(shè)備;(2)CPU把數(shù)據(jù)放在數(shù)據(jù)總線上;(3)輸出設(shè)備認(rèn)為數(shù)據(jù)有效,從而把數(shù)據(jù)取走。
對(duì)這類設(shè)備,如機(jī)械開(kāi)關(guān)、顯示二極管等等,CPU總是能足夠快地作出響應(yīng)。由于輸入/輸出設(shè)備本身的速度差異很大,因此,對(duì)于不同速度的外圍設(shè)備,需要有不同的定時(shí)方式。CPU與外圍設(shè)備之間的定時(shí),有以下三種情況。從輸入/輸出過(guò)程看,問(wèn)題的關(guān)鍵就在于;究竟什么時(shí)候數(shù)據(jù)才成為有效?1.速度極慢或簡(jiǎn)單的外圍設(shè)備由于這類設(shè)備的速度和CPU的速度并不在一個(gè)數(shù)量級(jí),或者由于設(shè)備(如鍵盤(pán))本身是在不規(guī)則時(shí)間間隔下操作的,因此,CPU與這類設(shè)備之間的數(shù)據(jù)交換通常采用:異步定時(shí)方式其定時(shí)過(guò)程如下:2.慢速或中速的外圍設(shè)備
◆通常,把這種在CPU和外設(shè)間用問(wèn)答信號(hào)進(jìn)行定時(shí)的方式叫應(yīng)答式數(shù)據(jù)交換外設(shè)先發(fā)出請(qǐng)求輸出信號(hào),CPU詢問(wèn)外設(shè)是否準(zhǔn)備就緒。如果外設(shè)已準(zhǔn)備就緒,CPU便發(fā)出準(zhǔn)備就緒信號(hào),并送出數(shù)據(jù)外設(shè)接收數(shù)據(jù)以后,將向CPU發(fā)出‘?dāng)?shù)據(jù)已經(jīng)取走’的通知◆◆◆◆一旦CPU和外設(shè)發(fā)生同步,它們之間的數(shù)據(jù)交換便靠時(shí)鐘脈沖控制來(lái)進(jìn)行。3.高速的外圍設(shè)備由于這類外設(shè)是以相等的時(shí)間間隔操作的,而CPU也是以等間隔的速率執(zhí)行輸入/輸出指令的,因此。更快的同步傳送要采用直接內(nèi)存訪問(wèn)(DMA)方式這種方式叫做同步同步定時(shí)方式8.1.2信息交換方式CPU管理外圍設(shè)備的方式。1.程序查詢方式2.程序中斷方式3.直接內(nèi)存訪問(wèn)(DMA)方式4.通道方式
5.外圍處理機(jī)方式數(shù)據(jù)在CPU和外圍設(shè)備之間的傳送完全靠計(jì)算機(jī)程序控制。中斷是外圍設(shè)備用來(lái)‘主動(dòng)’通知CPU,準(zhǔn)備送出輸入數(shù)據(jù)或接收輸出數(shù)據(jù)的一種方法。優(yōu)點(diǎn):CPU的操作和外圍設(shè)備的操作能夠同步,而且硬件結(jié)構(gòu)比較簡(jiǎn)單問(wèn)題:外圍設(shè)備動(dòng)作很慢,程序進(jìn)入查詢循環(huán)時(shí)將白白浪費(fèi)掉CPU很多時(shí)間。同程序查詢方式相比,硬件結(jié)構(gòu)相對(duì)復(fù)雜一些,服務(wù)開(kāi)銷時(shí)間較大。1.程序查詢方式2.程序中斷方式中斷方式一般適用于隨機(jī)出現(xiàn)的服務(wù)。優(yōu)點(diǎn):它節(jié)省了CPU寶貴的時(shí)間,是管理I/O操作的一個(gè)比較有效的方法。優(yōu)點(diǎn):數(shù)據(jù)傳送速度很高,傳送速率僅受到內(nèi)存訪問(wèn)時(shí)間的限制。3.直接內(nèi)存訪問(wèn)(DMA)方式通道的出現(xiàn)則進(jìn)一步提高了CPU的效率。這是因?yàn)?,CPU將部分權(quán)力下放給通道。4.通道方式直接內(nèi)存訪問(wèn)(DMA)方式是一種完全由硬件執(zhí)行I/O交換的工作方式。與中斷方式相比,需要更多的硬件。此時(shí),DMA控制器從CPU完全接管對(duì)總線的控制,數(shù)據(jù)交換直接在內(nèi)存和外圍設(shè)備之間進(jìn)行,以高速傳送數(shù)據(jù)。通道是一個(gè)具有特殊功能的處理器,它可以實(shí)現(xiàn)對(duì)外圍設(shè)備的統(tǒng)一管理和外圍設(shè)備與內(nèi)存之間的數(shù)據(jù)傳送。然而這種提高CPU效率的辦法是以花費(fèi)更多硬件為代價(jià)的。PPU基本上獨(dú)立于主機(jī)工作,它的結(jié)構(gòu)更接近一般處理機(jī),甚至就是微小型計(jì)算機(jī)。從某種意義上說(shuō),這種系統(tǒng)已變成分布式的多機(jī)系統(tǒng)。
5.外圍處理機(jī)方式外圍處理機(jī)[PPU]方式是通道方式的進(jìn)一步發(fā)展。主要程序?qū)崿F(xiàn)主要由附加硬件實(shí)現(xiàn)I/O控制方式程序查詢方式程序中斷方式DMA方式通道方式PPU方式外圍設(shè)備的輸入/輸出方式總結(jié)
程序查詢方式和程序中斷方式適用于數(shù)據(jù)傳輸率比較低的外圍設(shè)備。
DMA方式、通道方式和PPU方式適用于數(shù)據(jù)傳輸率比較高的設(shè)備。通道方式和PPU方式大都用在中、大型計(jì)算機(jī)中。目前,單片機(jī)和微型機(jī)中多采用程序查詢方式、程序中斷方式和DMA方式。8.2程序中斷方式主程序A中斷請(qǐng)求主程序A中斷服務(wù)子程序B中斷請(qǐng)求C中斷請(qǐng)求B中斷服務(wù)子程序C中斷服務(wù)子程序中斷處理示意圖在程序中斷方式中,某一外設(shè)的數(shù)據(jù)準(zhǔn)備就緒后,它“主動(dòng)”向CPU發(fā)出請(qǐng)求中斷的信號(hào),請(qǐng)求CPU暫時(shí)中斷目前正在執(zhí)行的程序而進(jìn)行數(shù)據(jù)交換。當(dāng)CPU響應(yīng)這個(gè)中斷時(shí),便暫停運(yùn)行主程序,并自動(dòng)轉(zhuǎn)移到該設(shè)備的中斷服務(wù)程序。當(dāng)中斷服務(wù)程序結(jié)束以后,CPU又回到原來(lái)的主程序。這種原理和調(diào)用子程序相仿,不過(guò),這里要求轉(zhuǎn)移到中斷服務(wù)程序的請(qǐng)求是由外部設(shè)備發(fā)出的。中斷方式特別適合于隨機(jī)出現(xiàn)的服務(wù)。8.2.1中斷的基本概念實(shí)際的中斷過(guò)程還要復(fù)雜一些
第一個(gè)問(wèn)題
CPU只有在當(dāng)前一條指令執(zhí)行完畢后,即轉(zhuǎn)入公操作時(shí)才受理設(shè)備的中斷請(qǐng)求,這樣才不致于使當(dāng)前指令的執(zhí)行受到于擾。
第二個(gè)問(wèn)題
必須把程序計(jì)數(shù)器PC的內(nèi)容,以及當(dāng)前指令執(zhí)行結(jié)束后CPU的狀態(tài)都保存到堆棧中去。這些操作叫做保存現(xiàn)場(chǎng)。第三個(gè)問(wèn)題
當(dāng)CPU響應(yīng)中斷后,正要去執(zhí)行中斷服務(wù)程序時(shí),可能有另一個(gè)新的中斷源向它發(fā)出中斷請(qǐng)求。為了不致造成混亂,在CPU的中斷管理部件中必須有一個(gè)‘中斷屏蔽’觸發(fā)器第四個(gè)問(wèn)題
中斷處理過(guò)程是由硬件和軟件結(jié)合來(lái)完成的?!袛嘀芷凇捎布?shí)現(xiàn),中斷服務(wù)程序由機(jī)器指令序列實(shí)現(xiàn)。取指令中斷轉(zhuǎn)到中斷子程序執(zhí)行指令響應(yīng)中斷關(guān)中斷,即‘中斷屏蔽’置位找出中斷源,并保存(PC0保存CPU現(xiàn)場(chǎng)設(shè)備服務(wù)恢復(fù)CPU現(xiàn)場(chǎng)開(kāi)中斷,即‘中斷屏蔽’復(fù)位中斷周期中斷服務(wù)子程序8.2.8程序中斷方式的基本接口接口電路中有一個(gè)工作標(biāo)志觸發(fā)器BS,就緒標(biāo)志觸發(fā)器RD,還有一個(gè)控制觸發(fā)器,它叫允許中斷觸發(fā)器(EI)。動(dòng)作開(kāi)始動(dòng)作結(jié)束傳送數(shù)據(jù)數(shù)據(jù)緩沖寄存器中斷向量邏輯設(shè)備選擇公用寄存器PCIR控制01BS01RD01EI01IM01IR①②③④⑧⑨⑩⑦⑥⑧⑤IR請(qǐng)求數(shù)據(jù)總線中斷SCCPU接口設(shè)備INTA8.2.3單級(jí)中斷1.單級(jí)中斷的概念所有的中斷源都屬于同一級(jí),所有中斷源觸發(fā)器排成一行,其優(yōu)先次序是離CPU近的優(yōu)先權(quán)高。當(dāng)響應(yīng)某一中斷請(qǐng)求時(shí),不允許其他中斷源再打斷中斷服務(wù)程序,即使優(yōu)先權(quán)比它高的中斷源也不能再打斷。只有該中斷服務(wù)程序執(zhí)行完畢之后,才能響應(yīng)其他中斷。圖中所有的I/O設(shè)備通過(guò)一條線向CPU發(fā)出中斷請(qǐng)求信號(hào)。CPU響應(yīng)中斷請(qǐng)求后,發(fā)出中斷響應(yīng)信號(hào)INTA,以鏈?zhǔn)讲樵兎绞阶R(shí)別中斷源。01IM中斷接口CPU中斷接口中斷接口01IRIRS地址線數(shù)據(jù)線…中斷主程序單級(jí)中斷服務(wù)程序INTA單級(jí)中斷示意圖單級(jí)中斷結(jié)構(gòu)圖2.單級(jí)中斷源的識(shí)別如何確定中斷源,并轉(zhuǎn)入被響應(yīng)的中斷服務(wù)程序入口地址,是中斷處理首先要解決的問(wèn)題。在單級(jí)個(gè)斷中,采用串行排隊(duì)鏈法來(lái)實(shí)現(xiàn)具有公共請(qǐng)求線的中斷源判優(yōu)識(shí)別。789IR1123456IR2IR3IR1IS1IR2IS2IR3IS3INTIINTA編碼器001010001011001000數(shù)據(jù)總線INTO串行排隊(duì)鏈判優(yōu)識(shí)別邏輯及中斷向量產(chǎn)生3.中斷向量的產(chǎn)生開(kāi)關(guān)理論中把若干個(gè)布爾量排成的序列定義為布爾向量。由于存儲(chǔ)器的地址碼是一串布爾量的序列,因此常常把地址碼稱為向量地址。當(dāng)CPU響應(yīng)中斷時(shí),由硬件直接產(chǎn)生一個(gè)固定的地址(即向量地址),由向量地址指出每個(gè)中斷源設(shè)備的中斷。顯然,每個(gè)中斷源分別有一個(gè)中斷服務(wù)程序,而每個(gè)中斷服務(wù)程序又有自己的向量地址。當(dāng)CPU識(shí)別出某中斷源時(shí),由硬件直接產(chǎn)生一個(gè)與該中斷源對(duì)應(yīng)的向量地址,很快便引入中斷服務(wù)程序。向量中斷要求在硬件設(shè)計(jì)時(shí)考慮所有中斷源的向量地址,而實(shí)際中斷時(shí)只能產(chǎn)生一個(gè)向量地址。圖8.6中上面部分即為中斷向量產(chǎn)生邏輯,它是由編碼電路實(shí)現(xiàn)的。有些計(jì)算機(jī)中由硬件產(chǎn)生的向量地址不是直接地址,而是一個(gè)“位移量”,這個(gè)位移量加上CPU某寄存器里存放的基地址,最后得到中斷處理程序的入口地址。還有一種采用向量地址轉(zhuǎn)移的方法。假設(shè)有8個(gè)中斷源,由優(yōu)先級(jí)編碼電路產(chǎn)生8個(gè)對(duì)應(yīng)的固定地址碼(例如o,1,2,…,7),這8個(gè)單元中存放的是轉(zhuǎn)移指令,通過(guò)轉(zhuǎn)移指令可轉(zhuǎn)入設(shè)備各自的中斷服務(wù)程序入口。這種方法允許中斷處理程序放在內(nèi)存中任何地方,非常靈活。8.2.4多級(jí)中斷1.多級(jí)中斷的概念多級(jí)中斷系統(tǒng)是計(jì)算機(jī)系統(tǒng)中有相當(dāng)多的中斷源,根據(jù)各中斷時(shí)間的輕重緩急程度不同而分成若干級(jí)別,每一中斷級(jí)分配給一個(gè)優(yōu)先權(quán)。一維多級(jí)中斷是指每一級(jí)中斷里只有一個(gè)中斷源二維多級(jí)中斷是指每一級(jí)中斷里又有多個(gè)中斷源后圖中虛線左邊結(jié)構(gòu)為一維多級(jí)中斷,如果去掉虛線則成為二維多級(jí)中斷結(jié)構(gòu)。根據(jù)系統(tǒng)的配置不同,多級(jí)中斷又可分為一維多級(jí)中斷二維多級(jí)中斷,設(shè)備G設(shè)備H設(shè)備I設(shè)備D設(shè)備E設(shè)備F設(shè)備A設(shè)備B設(shè)備C01IM001IR001IM101IR101IM201IR2中斷優(yōu)先級(jí)排隊(duì)電路與中斷控制邏輯高優(yōu)先權(quán)低高優(yōu)先權(quán)低CPU01IM10級(jí)IR1級(jí)IR2級(jí)IR一級(jí)中斷服務(wù)程序二級(jí)中斷服務(wù)程序三級(jí)中斷服務(wù)程序主程序多級(jí)中斷對(duì)多級(jí)中斷,我們著重說(shuō)明如下幾點(diǎn):第一,一個(gè)系統(tǒng)若有n級(jí)中斷,在CPU中就有n個(gè)中斷請(qǐng)求觸發(fā)器,總稱為中斷請(qǐng)求寄存器,與之對(duì)應(yīng)的有1個(gè)中斷屏蔽觸發(fā)器,總稱為中斷屏蔽寄存器。第四,和單級(jí)中斷情況類似,在多級(jí)中斷中也使用中斷堆棧保存現(xiàn)場(chǎng)信息。使用堆棧保存現(xiàn)場(chǎng)的好處是:(1)控制邏輯簡(jiǎn)單,保存和恢復(fù)現(xiàn)場(chǎng)的過(guò)程按先進(jìn)后出順序進(jìn)行。(2)每一級(jí)中斷不必單獨(dú)設(shè)置現(xiàn)場(chǎng)保護(hù)區(qū),各級(jí)中斷現(xiàn)場(chǎng)可按其順序放在同一個(gè)棧里。第三,設(shè)置多級(jí)中斷的系統(tǒng)一般都希望有較快的中斷響應(yīng)時(shí)間,因此首先響應(yīng)哪一級(jí)中斷和哪一個(gè)中斷源,都是由硬件邏輯實(shí)現(xiàn),而不是用程序?qū)崿F(xiàn)。另外,在二維中斷結(jié)構(gòu)中,除了有中斷優(yōu)先級(jí)排隊(duì)電路確定優(yōu)先響應(yīng)中斷級(jí)外,還要確定優(yōu)先響應(yīng)的中斷源,一般通過(guò)鏈?zhǔn)讲樵兊挠布壿媮?lái)實(shí)現(xiàn)。顯然,這里采用了獨(dú)立請(qǐng)求方式與鏈?zhǔn)讲樵兎绞较嘟Y(jié)合的方法決定首先響應(yīng)哪個(gè)中斷源。第二,多級(jí)中斷中的每一級(jí)可以只有一個(gè)中斷源,也可以有多個(gè)中斷源。2.多級(jí)中斷源的識(shí)別
在多級(jí)中斷中,每一級(jí)均有一根中斷請(qǐng)求線送往CPU的中斷優(yōu)先級(jí)排隊(duì)電路,對(duì)每一級(jí)賦予了不同的優(yōu)先級(jí)。顯然這種結(jié)構(gòu)就是獨(dú)立請(qǐng)求方式的邏輯結(jié)構(gòu)。
圖示出了獨(dú)立請(qǐng)求方式的中斷優(yōu)先級(jí)排隊(duì)與中斷向量產(chǎn)生的邏輯結(jié)構(gòu)。每個(gè)中斷請(qǐng)求信號(hào)保存在“中斷請(qǐng)求”觸發(fā)器中,經(jīng)“中斷屏蔽”觸發(fā)器控制后,可能有若干個(gè)中斷請(qǐng)求情號(hào)IR'進(jìn)入虛線框所示的排隊(duì)電路。8.2.58259中斷控制器8.2.6奔騰中斷機(jī)制1.中斷類型
pentiMm有兩類中斷源。即中斷和異常。中斷通常稱為外部中斷,它是由CPU的外部硬件信號(hào)引發(fā)的。有兩種情況:(1)可屏蔽中斷:如果CPU中標(biāo)志寄存器IF=l時(shí),可引發(fā)中斷;IF=O時(shí),中斷請(qǐng)求信號(hào)在CPU內(nèi)部被禁止。(2)非屏蔽中斷:這類中斷不能被禁止。異常通常稱為異常中斷,它是由指令執(zhí)行引發(fā)的。有兩種情況①執(zhí)行異常:CPU執(zhí)行一條指令過(guò)程中出現(xiàn)錯(cuò)誤、故障等不正常條件引發(fā)的中斷;②執(zhí)行軟件中斷指令:如執(zhí)行INT0,INT3,INTn等指令,執(zhí)行時(shí)產(chǎn)生異常中斷。詳細(xì)分類的話,pentium共有256種中斷和異常。每種中斷給予一個(gè)編號(hào),稱為中斷向量號(hào)(0一255),以便發(fā)生中斷時(shí),程序轉(zhuǎn)向相應(yīng)的中斷服務(wù)子程序入口地址。2,中斷服務(wù)子程序進(jìn)入過(guò)程中斷服務(wù)子程序的入口地址信息存于中斷向量號(hào)檢索表內(nèi)。實(shí)模式為中斷向量表IVT,保護(hù)模式為中斷描述符表IDT。CPU識(shí)別中斷類型取得中斷向量號(hào)的途徑有三種:(1)指令給出,如軟件中斷指令I(lǐng)NTn中的”即為中斷向量號(hào)。(2)外部提供:可屏蔽中斷是在CPU接收到INTR信號(hào)時(shí)產(chǎn)生一個(gè)中斷識(shí)別周期,接收外部中斷控制器由數(shù)據(jù)總線送來(lái)的中斷向量號(hào);非屏蔽中斷是在接收到NMI信號(hào)時(shí)中斷向量號(hào)固定為2。(3)CPU識(shí)別錯(cuò)誤、故障現(xiàn)象,根據(jù)異常和中斷產(chǎn)生的條件自動(dòng)指定向量號(hào)。
CPU依據(jù)中斷向量號(hào)獲取中斷服務(wù)子程序入口地址,但在實(shí)模式下和保護(hù)模式下采用不同的途徑。3.中斷處理過(guò)程(1)當(dāng)中斷處理的CPU控制權(quán)轉(zhuǎn)移涉及到特權(quán)級(jí)改變時(shí),必須把當(dāng)前的SS和ESP兩個(gè)寄存器的內(nèi)容壓入系統(tǒng)堆棧予以保存。(2)標(biāo)志寄存器EFLAGS的內(nèi)容也壓入堆棧。(3)清除標(biāo)志觸發(fā)器TF和IF。(4)當(dāng)前的代碼段寄存器CS和指令指針EIP也壓入此堆棧。(5)如果中斷發(fā)生伴隨有錯(cuò)誤碼,則錯(cuò)誤碼也壓入此堆棧。(6)完成上述中斷現(xiàn)場(chǎng)保護(hù)后,從中斷向量號(hào)獲取的中斷服務(wù)子程序入口地址(段:偏移)分別裝入CS和EIP,開(kāi)始執(zhí)行中斷服務(wù)子程序。(7)中斷服務(wù)子程序最后的IRET指令使中斷返回。保存在堆棧中的中斷現(xiàn)場(chǎng)信息被恢復(fù),并由中斷點(diǎn)繼續(xù)執(zhí)行原程序。8.3DMA方式DMA的傳輸過(guò)程內(nèi)存爭(zhēng)用DMA方式進(jìn)行數(shù)據(jù)傳送時(shí),CPU仍執(zhí)行主程序,此時(shí)DMA控制邏輯與CPU可能同時(shí)要訪問(wèn)主存,引起主存使用權(quán)的沖突。如何處理這種沖突呢?停止CPU使用主存DMA與CPU交替使用主存周期挪用法停止CPU使用主存當(dāng)DMA傳送數(shù)據(jù)時(shí),CPU停止工作,把主存使用權(quán)交給DMA控制邏輯。在這批數(shù)據(jù)傳送結(jié)束后,DMA再交還主存使用權(quán)優(yōu)點(diǎn):控制簡(jiǎn)單,適合高速設(shè)備成組傳送數(shù)據(jù); 缺點(diǎn):DMA控制器訪問(wèn)內(nèi)存的時(shí)間里,內(nèi)存的效能沒(méi)有充分發(fā)揮。周期挪用法CPU讓出一兩個(gè)周期的總線控制權(quán),由I/O設(shè)備挪用,進(jìn)行一次數(shù)據(jù)傳送;然后,DMA控制器把總線控制權(quán)交還CPU,CPU繼續(xù)工作。重復(fù),直到數(shù)據(jù)塊傳送完。CPU不需要訪存時(shí),I/O設(shè)備挪用一兩個(gè)內(nèi)存周期對(duì)CPU執(zhí)行程序沒(méi)有影響;I/O設(shè)備和CPU同時(shí)要求訪存時(shí),I/O設(shè)備訪存優(yōu)先,因I/O設(shè)備有時(shí)間要求,不能錯(cuò)過(guò)收發(fā)數(shù)據(jù)的機(jī)會(huì)。這種方法使用較多。含申請(qǐng)、建立、傳送、歸還過(guò)程DMA與CPU交替訪問(wèn)內(nèi)存這種方法是把一個(gè)存取周期一分為二,一半給DMA使用,一半給CPU使用。其原理示意圖如下。這種方式不需要總線使用權(quán)的申請(qǐng)、建立和歸還過(guò)程,總線使用權(quán)是分時(shí)控制的。CPU和DMA控制器各有自己訪問(wèn)內(nèi)存的地址寄存器、數(shù)據(jù)寄存器、讀寫(xiě)信號(hào)等控制寄存器??偩€控制權(quán)的轉(zhuǎn)移幾乎不需要時(shí)間,DMA傳送效率很高。但硬件控制邏輯也就更加復(fù)雜,而且在沒(méi)有DMA數(shù)據(jù)傳送情況下,時(shí)間片被浪費(fèi)。4、基本的DMA控制器DMA各部件的功能內(nèi)存地址計(jì)數(shù)器:用來(lái)存放要交換數(shù)據(jù)的內(nèi)存地址。傳送長(zhǎng)度計(jì)數(shù)器:用來(lái)記錄傳送數(shù)據(jù)塊的長(zhǎng)度。數(shù)據(jù)緩沖寄存器:暫存?zhèn)魉偷臄?shù)據(jù)。DMA請(qǐng)求觸發(fā)器:外設(shè)準(zhǔn)備好一個(gè)數(shù)據(jù)后就給出一個(gè)控制信號(hào),使DMA請(qǐng)求觸發(fā)器置1。該標(biāo)志引發(fā)DMA請(qǐng)求,即“控制/狀態(tài)邏輯”向CPU發(fā)出總線使用權(quán)的請(qǐng)求(HRQ),CPU以HLDA響應(yīng),“控制/狀態(tài)邏輯”接收此信號(hào)后發(fā)出DMA響應(yīng)信號(hào),使DMA請(qǐng)求觸發(fā)器復(fù)位??刂?狀態(tài)邏輯:用于修改內(nèi)存地址計(jì)數(shù)器和字計(jì)數(shù)器、指定傳送方向、并對(duì)DMA請(qǐng)求信號(hào)和CPU響應(yīng)信號(hào)協(xié)調(diào)和同步。中斷機(jī)構(gòu):當(dāng)一數(shù)據(jù)塊傳送完成,溢出信號(hào)觸發(fā)中斷機(jī)構(gòu),向CPU提出中斷請(qǐng)求,報(bào)告數(shù)據(jù)傳送結(jié)束。CPU將進(jìn)行DMA傳送的收尾處理。5、DMA數(shù)據(jù)傳送過(guò)程 可分為三個(gè)階段:準(zhǔn)備階段、傳送階段、結(jié)束階段。準(zhǔn)備階段: 在DMA傳送前必須做好準(zhǔn)備工作,主機(jī)向DMA接口傳送以下信息:讀/寫(xiě)命令。向DMA控制器的主存地址計(jì)數(shù)器送數(shù)據(jù)塊在內(nèi)存中的首地址。向DMA控制器的設(shè)備地址寄存器送設(shè)備號(hào)。向傳送長(zhǎng)度計(jì)數(shù)器送數(shù)據(jù)字個(gè)數(shù)。啟動(dòng)DMA。這些工作做完之后,CPU繼續(xù)原來(lái)的工作。DMA數(shù)據(jù)傳送過(guò)程(續(xù))傳送階段外設(shè)準(zhǔn)備好收發(fā)數(shù)據(jù)時(shí),向主機(jī)發(fā)DMA請(qǐng)求。CPU在本機(jī)器周期結(jié)束后,響應(yīng)該請(qǐng)求、并使CPU的總線驅(qū)動(dòng)器處于高阻狀態(tài),讓出主存使用權(quán)。DMA控制器發(fā)送內(nèi)存地址、讀/寫(xiě)命令。挪用一個(gè)存儲(chǔ)周期,傳送一個(gè)數(shù)據(jù),主存地址計(jì)數(shù)器加1,字計(jì)數(shù)器減1,如果用補(bǔ)碼表示則加1。判斷數(shù)據(jù)是否傳送完畢,即計(jì)數(shù)器是否等于0。若不為0,則撤銷DMA請(qǐng)求,繼續(xù)第一步的動(dòng)作;若字計(jì)數(shù)器為0,進(jìn)入結(jié)束階段。DMA的傳送流程DMA請(qǐng)求DMA響應(yīng)傳送一個(gè)字DMA結(jié)束NY傳送完?修改地址指針和字計(jì)數(shù)器發(fā)送內(nèi)存地址DMA數(shù)據(jù)傳送過(guò)程(續(xù))結(jié)束階段
DMA控制器向主機(jī)發(fā)出中斷請(qǐng)求,報(bào)告數(shù)據(jù)傳送結(jié)束。CPU停止主程序執(zhí)行,轉(zhuǎn)向中斷服務(wù)程序進(jìn)行DMA操作的后處理,包括校驗(yàn)送入內(nèi)存的數(shù)據(jù)、決定是否繼續(xù)DMA數(shù)據(jù)傳送、測(cè)試是否發(fā)生錯(cuò)誤等。
6、DMA方式與中斷控制方式比較中斷方式通過(guò)程序?qū)崿F(xiàn)數(shù)據(jù)傳送,而DMA直接用硬件來(lái)實(shí)現(xiàn)數(shù)據(jù)傳送。CPU在執(zhí)行完一條指令后響應(yīng)中斷,而在一個(gè)機(jī)器周期結(jié)束后響應(yīng)DMA請(qǐng)求。中斷方式不僅具有傳送數(shù)據(jù)的能力,還能處理異常事件;而DMA只能進(jìn)行數(shù)據(jù)傳送。中斷方式需要切換程序、保護(hù)現(xiàn)場(chǎng)和恢復(fù)現(xiàn)場(chǎng);而DMA僅挪用一個(gè)存儲(chǔ)周期,不改變CPU現(xiàn)場(chǎng)。DMA請(qǐng)求比中斷請(qǐng)求優(yōu)先級(jí)高。之所以優(yōu)先響應(yīng)DMA請(qǐng)求,是為了防止丟失DMA高速傳送的數(shù)據(jù)。選擇型和多路型DMA控制器選擇型DMA控制器選擇型和多路型DMA控制器多路型DMA控制器8.4通道方式具有通道的計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)圖通道的功能接受CPU的I/O指令,按指令要求與外設(shè)進(jìn)行聯(lián)系。從內(nèi)存取出屬于自己的通道指令,經(jīng)譯碼后向設(shè)備控制器發(fā)送各種命令。在外設(shè)和內(nèi)存之間進(jìn)行數(shù)據(jù)傳送,并根據(jù)需要提供數(shù)據(jù)緩沖空間、以及數(shù)據(jù)存放的主存地址和傳送的數(shù)據(jù)量。根據(jù)要求把從外設(shè)得到狀態(tài)信息、以及通道自身的狀態(tài)信息送給CPU,供其使用。將外設(shè)的中斷請(qǐng)求和通道請(qǐng)求按次序及時(shí)報(bào)告CPU。
CPU對(duì)通道的管理
在具有通道結(jié)構(gòu)的計(jì)算機(jī)中,CPU是通過(guò)處理來(lái)自通道的中斷以及執(zhí)行I/O指令實(shí)現(xiàn)對(duì)通道的管理的。來(lái)自通道的中斷有兩種:數(shù)據(jù)傳送結(jié)束中斷故障中斷CPU對(duì)通道的管理(續(xù))通常把CPU運(yùn)行操作系統(tǒng)管理程序的狀態(tài)稱為管態(tài),而把CPU執(zhí)行用戶程序的狀態(tài)稱為目態(tài)。大、中型計(jì)算機(jī)的I/O指令都屬于管態(tài)指令,只有當(dāng)CPU處于管態(tài)時(shí),才能運(yùn)行I/O指令。這是因?yàn)榇?、中型?jì)算機(jī)的軟硬件資源為多個(gè)用戶共享,而不是分給某個(gè)用戶專用的,需要統(tǒng)一管理。CPU
通道設(shè)備控制器
外設(shè)通道對(duì)設(shè)備控制器的管理
通道通過(guò)使用通道指令指揮設(shè)備控制器進(jìn)行數(shù)據(jù)傳送操作。設(shè)備控制器是通道對(duì)I/O設(shè)備實(shí)現(xiàn)傳輸控制的執(zhí)行機(jī)構(gòu)。設(shè)備控制器的具體任務(wù)如下:從通道接收通道命令,控制外設(shè)完成所
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 微生物檢驗(yàn)技術(shù)人員的職業(yè)素養(yǎng)與試題及答案
- 童車制造企業(yè)生產(chǎn)調(diào)度與優(yōu)化練習(xí)考核試卷
- 室外拱形廊道施工方案
- 垃圾運(yùn)輸防滲漏施工方案
- 2025年【光氣及光氣化工藝】模擬考試題及答案
- 移動(dòng)通信技術(shù)在智慧工廠行業(yè)的應(yīng)用考核試卷
- 項(xiàng)目材料采購(gòu)的試題及答案
- 2024年花藝師考試的學(xué)習(xí)方法與技巧試題及答案
- 畜牧業(yè)綠色發(fā)展政策建議考核試卷
- 紙張表面裝飾技術(shù)的創(chuàng)新與發(fā)展考核試卷
- 2024北京一零一中初二(下)期中數(shù)學(xué)試題及答案
- 2025-2030中國(guó)考試系統(tǒng)行業(yè)市場(chǎng)發(fā)展現(xiàn)狀分析及發(fā)展趨勢(shì)與投資前景研究報(bào)告
- GB/T 45456-2025包裝折疊紙盒折痕挺度的測(cè)定
- 國(guó)企薪酬福利體系與市場(chǎng)化改革
- 2025年保安員職業(yè)技能考試筆試試題(700題)附答案
- 2025屆江蘇省江陰市四校高三下-第四次月考數(shù)學(xué)試題試卷
- 2025年04月國(guó)家稅務(wù)總局稅務(wù)干部學(xué)院公開(kāi)招聘事業(yè)單位工作人員36人筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 2025年鄭州理工職業(yè)學(xué)院高職單招職業(yè)技能測(cè)試近5年??及鎱⒖碱}庫(kù)含答案解析
- Unit 4 Healthy food B Lets learn(教學(xué)設(shè)計(jì))-2024-2025學(xué)年人教PEP版(2024)英語(yǔ)三年級(jí)下冊(cè)
- 《知不足而后進(jìn) 望山遠(yuǎn)而力行》期中家長(zhǎng)會(huì)課件
- 《自由飛翔之鳥(niǎo)》教學(xué)課件-2024-2025學(xué)年嶺南美版(2024)初中美術(shù)七年級(jí)下冊(cè)
評(píng)論
0/150
提交評(píng)論