第十章輸入輸出(I/O)系統(tǒng)(第二講)_第1頁(yè)
第十章輸入輸出(I/O)系統(tǒng)(第二講)_第2頁(yè)
第十章輸入輸出(I/O)系統(tǒng)(第二講)_第3頁(yè)
第十章輸入輸出(I/O)系統(tǒng)(第二講)_第4頁(yè)
第十章輸入輸出(I/O)系統(tǒng)(第二講)_第5頁(yè)
已閱讀5頁(yè),還剩36頁(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)介

第十章輸入輸出(I/O)系統(tǒng)第二講10.2.3程序中斷設(shè)備接口的組成和工作原理(1)

程序中斷設(shè)備接口:

設(shè)備選擇器、中斷控制和工作狀態(tài)邏輯、中斷排隊(duì)控制邏輯、設(shè)備碼回送邏輯、數(shù)據(jù)緩沖寄存器等組成。接口標(biāo)準(zhǔn)化,通過(guò)總線與主機(jī)相連??磿系膱D10.6。10.2.3程序中斷設(shè)備接口的組成和工作原理(2)

(1)設(shè)備選擇器

每一臺(tái)外圍設(shè)備接口都設(shè)置一個(gè)設(shè)備選擇器,連接在系統(tǒng)上的每一臺(tái)設(shè)備都有一個(gè)設(shè)備號(hào)。當(dāng)CPU需使用某外設(shè)時(shí),通過(guò)I/O指令或其他訪問(wèn)I/O設(shè)備地址的指令,將設(shè)備碼通過(guò)地址線送往所有外圍設(shè)備接口,但僅僅具有該設(shè)備號(hào)的設(shè)備選擇器才產(chǎn)生選中信號(hào)(SEL)。于是,該外圍設(shè)備及其接口才能響應(yīng)主機(jī)的控制并進(jìn)行數(shù)據(jù)傳送。10.2.3程序中斷設(shè)備接口的組成和工作原理(3)

(2)中斷控制和工作狀態(tài)邏輯中斷控制邏輯:

中斷請(qǐng)求控制:中斷請(qǐng)求觸發(fā)器(INTR),1表示有中斷請(qǐng)求,0表示沒(méi)有中斷請(qǐng)求。中斷屏蔽控制:中斷屏蔽觸發(fā)器(MASK),1表示允許中斷,0表示不允許中斷。工作狀態(tài)邏輯:設(shè)備忙狀態(tài),設(shè)備忙觸發(fā)器(BUSY),1表示設(shè)備正在操作,0表示設(shè)備空閑。設(shè)備完成狀態(tài),設(shè)備完成觸發(fā)器(DONE),1表示設(shè)備完成操作,0表示設(shè)備沒(méi)有完成操作。10.2.3程序中斷設(shè)備接口的組成和工作原理(4)

只有當(dāng)該設(shè)備被選中,選中信號(hào)(SEL)為高電平時(shí)才能訪問(wèn)這4個(gè)觸發(fā)器。當(dāng)CPU置“1”忙觸發(fā)器(BUSY),啟動(dòng)設(shè)備,同時(shí)使完成觸發(fā)器(DONE)置“0”。當(dāng)設(shè)備完成輸入輸出動(dòng)作,需請(qǐng)求中斷時(shí),由完成信號(hào)置“1”DONE觸發(fā)器。在CPU送來(lái)的指令結(jié)束信號(hào)RQENB的作用下,使中斷請(qǐng)求觸發(fā)器置位(由完成觸發(fā)器(DONE)決定置0或置1)。中斷屏蔽觸發(fā)器是由I/O指令利用MSKO的上升邊來(lái)置位或復(fù)位的。圖中的IORST是CPU送來(lái)的復(fù)位(I/O總清)信號(hào),使各寄存器設(shè)置為初始狀態(tài)。

10.2.3程序中斷設(shè)備接口的組成和工作原理(5)

(3)中斷排隊(duì)和設(shè)備碼回送邏輯CPU接到外圍設(shè)備的中斷請(qǐng)求后,如可以響應(yīng)中斷,則需了解是哪臺(tái)設(shè)備要求服務(wù)。因此,需要將請(qǐng)求中斷的設(shè)備碼送給CPU。當(dāng)多個(gè)外設(shè)有中斷請(qǐng)求時(shí),必須先為優(yōu)先級(jí)高的外設(shè)服務(wù)。這個(gè)任務(wù)是通過(guò)排隊(duì)線路和設(shè)備碼回送邏輯來(lái)完成的,其邏輯線路如圖10.4所示。(4)數(shù)據(jù)緩沖寄存器每個(gè)外設(shè)的接口都設(shè)有數(shù)據(jù)緩沖寄存器,其長(zhǎng)度為一個(gè)字節(jié)或一個(gè)字長(zhǎng)。在CPU送來(lái)的信號(hào)控制下分別完成相應(yīng)緩沖寄存器的接收或發(fā)送工作。8259A中斷控制器(1)

8259A中斷控制器

可編程中斷控制器,介紹工作原理、工作方式、編程原理。

1片8259A可以管理8級(jí)中斷,不增加電路,9片8259A可以構(gòu)成64級(jí)中斷。

8259A是可編程的,可以通過(guò)編程改變8259A的工作方式。8259A中斷控制器(2)

8259A中斷控制器的引腳信號(hào)

12345678910111213142827262524232221201918171615CS#WR#RD#D7D6D5D4D3D2D1D0CAS0CAS1GNDVccA0INTA#IR7IR6IR5IR4IR3IR2IR1IR0INTSP#/EN#CAS28259A中斷控制器(3)

8259A中斷控制器引腳

D7-D0:8根數(shù)據(jù)線。INT:連接CPU,向CPU發(fā)中斷請(qǐng)求。INTA#:來(lái)自CPU的中斷響應(yīng)信號(hào),用于CPU從8259A上讀取中斷類型碼。RD#:讀出信號(hào),讀取8259A的內(nèi)部寄存器。WR#:寫入信號(hào),將數(shù)據(jù)寫入8259A的內(nèi)部寄存器。CS#:芯片選擇信號(hào)。A0:用來(lái)指出8259A的哪個(gè)寄存器被訪問(wèn)。8259A中斷控制器(4)

8259A中斷控制器引腳

IR7-IR0:8根中斷線請(qǐng)求線,來(lái)自外部設(shè)備。級(jí)聯(lián)條件下主8259A的INT連接從8259A的IRi端。CAS2-CAS0:用于指出級(jí)聯(lián)條件下從片。SP#/EN#:雙向,有2個(gè)用處。作為輸入,來(lái)確定是主片或從片;作為輸出,在數(shù)據(jù)向8259A傳送時(shí),啟動(dòng)數(shù)據(jù)總線驅(qū)動(dòng)。緩沖工作方式,作輸入使用;非緩沖工作方式,作輸出使用。8259A中斷控制器(5)

8259A中斷控制器的內(nèi)部寄存器地址

8086系統(tǒng)中,數(shù)據(jù)線是16位,8259A數(shù)據(jù)線是8位。為了使所有的數(shù)據(jù)傳輸都利用總線的低8位,必須把地址總線的A1和8259A的A0連接。

CPU作16位數(shù)據(jù)傳送,總是送到以偶地址開頭的2個(gè)相鄰的單元或者相鄰的端口。低字節(jié)放在地址較低的單元,高字節(jié)放在地址較高的單元。低8位傳送到偶數(shù)地址,而高8位傳送到奇數(shù)地址。8259A中斷控制器(6)

8259A中斷控制器

由八個(gè)部分組成:中斷請(qǐng)求寄存器、中斷狀態(tài)寄存器、優(yōu)先級(jí)判斷器、中斷屏蔽寄存器、中斷控制邏輯、數(shù)據(jù)緩沖器、級(jí)聯(lián)緩沖器/比較器和讀/寫邏輯。見(jiàn)書圖10.7。8259A中斷控制器(7)

1)中斷請(qǐng)求寄存器

中斷請(qǐng)求寄存器IRR接受外設(shè)來(lái)的中斷請(qǐng)求(IR0~I(xiàn)R7),每一位表示一個(gè)外部設(shè)備的中斷請(qǐng)求,當(dāng)有請(qǐng)求,就鎖存該中斷請(qǐng)求信號(hào)。邏輯電路根據(jù)中斷屏蔽寄存器IMR的中對(duì)應(yīng)的位決定是否允許該中斷通過(guò)。

8259A中斷控制器(8)

2)優(yōu)先級(jí)判別器

中斷優(yōu)先級(jí)判別電路把新進(jìn)入的中斷請(qǐng)求和當(dāng)前正在處理的中斷比較,從而決定哪一個(gè)中斷優(yōu)先級(jí)別更高。

中斷請(qǐng)求寄存器的各位送入優(yōu)先級(jí)判斷器,根據(jù)中斷屏蔽寄存器和中斷狀態(tài)寄存器ISR的狀態(tài)決定最高優(yōu)先級(jí)的中斷請(qǐng)求,并將判優(yōu)結(jié)果送入中斷狀態(tài)寄存器,如果中斷請(qǐng)求被接受,則由控制邏輯向CPU發(fā)中斷請(qǐng)求INT。8259A中斷控制器(9)中斷類型碼

在8259A中,為每一個(gè)外設(shè)的中斷請(qǐng)求(IR0~I(xiàn)R7)設(shè)置一個(gè)中斷類型碼(8位),當(dāng)其中一個(gè)外設(shè)的中斷請(qǐng)求被CPU響應(yīng)后,8259A送出與該中斷所對(duì)應(yīng)的中斷類型碼,作為尋找中斷服務(wù)程序入口的依據(jù)。中斷類型碼(8位)由兩部分組成,其高5位是由計(jì)算機(jī)初始化程序設(shè)置的,保存在8259A中以后不再改變;低3位由被響應(yīng)的中斷請(qǐng)求序號(hào)提供。例如,IR0的中斷請(qǐng)求被響應(yīng),中斷類型碼的低3位即為011。在同一個(gè)8259A中,高5位為8個(gè)中斷請(qǐng)求共用。假設(shè)與IR0對(duì)應(yīng)的中斷類型碼為40H,那么與IR1~I(xiàn)R7對(duì)應(yīng)的中斷類型碼為41H~47H。8259A中斷控制器(10)中斷級(jí)聯(lián)

每個(gè)8259A最多能控制8個(gè)外部中斷信號(hào),但可將多個(gè)8259A級(jí)聯(lián)以處理多達(dá)64個(gè)中斷請(qǐng)求。它允許有一個(gè)主單元和多個(gè)(不超過(guò)8個(gè))從單元,稱為主從系統(tǒng)。主從單元的級(jí)聯(lián)是通過(guò)以下方式實(shí)現(xiàn)的:①聯(lián)接主從單元的級(jí)聯(lián)總線CAS0,CAS1和CAS2:將所有單元的CAS0、CAS1和CAS2各自聯(lián)接在一起。主單元的CAS為輸出,從單元的CAS為輸入。②將從單元的中斷請(qǐng)求INT連到主單元的一個(gè)IR端,并在從單元中記錄下這個(gè)IR端的序號(hào)。8259A中斷控制器(11)中斷級(jí)聯(lián)

這樣,當(dāng)有從單元的中斷請(qǐng)求得到響應(yīng)時(shí),主單元將被選中的IR序號(hào)通過(guò)CAS0~CAS2送到從單元的CAS0~CAS2,在從單元中進(jìn)行比較,只有一個(gè)從單元保存有相同的序號(hào),說(shuō)明該從單元的中斷請(qǐng)求被CPU響應(yīng),以后由其將中斷類型碼送到數(shù)據(jù)總線,從而可確定請(qǐng)求中斷的外設(shè)及其中斷服務(wù)程序的入口。同時(shí)也說(shuō)明了當(dāng)對(duì)主從系統(tǒng)中的多個(gè)8259A進(jìn)行初始化時(shí),要為每臺(tái)外設(shè)分配不同的中斷類型碼,使其保持惟一性,以免引起混亂。

SP#為輸入輸出雙向線。當(dāng)作為輸入線時(shí),主單元的SP#接“1”,從單元的SP#接地(0)。但是如果系統(tǒng)中從單元較多,而需要接數(shù)據(jù)總線驅(qū)動(dòng)器時(shí),則主單元的SP#用作輸出線,其輸出信號(hào)用來(lái)啟動(dòng)數(shù)據(jù)總線驅(qū)動(dòng)器,從單元的SP#仍接地。SP#/EN#CAS0CAS1CAS2主片8259AIR0IR1:INTIR7SP#/EN#CAS0CAS1CAS2主片8259AIR0IR1:INTIR7SP#/EN#CAS0CAS1CAS2主片8259AIR0IR1:INTIR764個(gè)中斷源D7-D0總線驅(qū)動(dòng)到CPU8259A中斷控制器(12)中斷優(yōu)先級(jí)選擇方式完全嵌套方式:IR0的外圍設(shè)備優(yōu)先權(quán)最高,而連至IR7的優(yōu)先權(quán)最低。輪換優(yōu)先級(jí)A:每個(gè)級(jí)別的中斷保證有機(jī)會(huì)被處理。它把給定的中斷級(jí)別處理完后,立即把它放到最低級(jí)別的位置上去。輪換優(yōu)先級(jí)B:CPU可在任何時(shí)間規(guī)定最低優(yōu)先級(jí),然后順序地規(guī)定其他IR線上的優(yōu)先級(jí)。8259A中斷控制器(13)中斷屏蔽方式

8259A單元提供了兩種屏蔽方式,簡(jiǎn)單屏蔽方式和特殊屏蔽方式。簡(jiǎn)單屏蔽方式:提供了8位的屏蔽字,每位對(duì)應(yīng)著各自的IR線,被置位的任何一位禁止了相應(yīng)IR線上的中斷。特殊屏蔽方式:允許CPU讓來(lái)自低優(yōu)先級(jí)外設(shè)的中斷去中斷高優(yōu)先級(jí)的服務(wù)程序。當(dāng)8位屏蔽位的某一位被置“0”時(shí),則對(duì)應(yīng)此位的IR線上的外設(shè)中斷可中斷比它高優(yōu)先級(jí)別的服務(wù)程序。例如,若屏蔽字為11101111,說(shuō)明IR4線上的中斷可中斷任何高級(jí)別的中斷服務(wù)程序。8259A中斷控制器(14)數(shù)據(jù)緩沖和讀寫邏輯

D0~D7:為雙向數(shù)據(jù)線,數(shù)據(jù)緩沖器暫時(shí)保存在內(nèi)部總線和系統(tǒng)數(shù)據(jù)總線間進(jìn)行傳送的數(shù)據(jù)。讀/寫邏輯:將決定數(shù)據(jù)的傳送方向。RD為讀命令,而WR為寫命令。CS為8259A芯片的選擇信號(hào),A0與8259A中被選的寄存器地址有關(guān)。

8259A單元的不同工作方式是通過(guò)編程來(lái)進(jìn)行選擇的。CPU送出一系列的始化控制字和操作控制字來(lái)執(zhí)行選定的操作。CPU將8259A當(dāng)作兩個(gè)I/O端口或兩個(gè)存儲(chǔ)單元來(lái)尋址,由A0端確定這些控制字存入讀/寫邏輯中哪個(gè)控制字寄存器。10.3DMA輸入輸出方式

DMA是I/O設(shè)備與主存儲(chǔ)器之間由硬件組成的直接數(shù)據(jù)通路,用于高速I/O設(shè)備與主存之間的成組數(shù)據(jù)傳送。數(shù)據(jù)傳送是在DMA控制器控制下進(jìn)行的,由DMA控制器給出當(dāng)前正在傳送的數(shù)據(jù)字的主存地址,并統(tǒng)計(jì)傳送數(shù)據(jù)的個(gè)數(shù)以確定一組數(shù)據(jù)的傳送是否已結(jié)束。在主存中要開辟連續(xù)地址的專用緩沖器,用來(lái)提供或接收傳送的數(shù)據(jù)。在數(shù)據(jù)傳送前和結(jié)束后要通過(guò)程序或中斷方式對(duì)緩沖器和DMA控制器進(jìn)行預(yù)處理和后處理。10.3DMA輸入輸出方式

DMA優(yōu)點(diǎn):數(shù)據(jù)一次性讀寫,不需要IO->Reg,Reg->RAM這樣兩次操作;DMA控制器連續(xù)控制讀寫,不需要CPU取值、譯碼、執(zhí)行等這樣執(zhí)行,在數(shù)據(jù)傳送過(guò)程中,沒(méi)有保存現(xiàn)場(chǎng)、恢復(fù)現(xiàn)場(chǎng)之類的工作。內(nèi)存地址修改、傳送字個(gè)數(shù)的計(jì)數(shù)等等,也不是由軟件實(shí)現(xiàn),而是用硬件線路直接實(shí)現(xiàn)的;數(shù)據(jù)傳送和CPU計(jì)算可能同時(shí)進(jìn)行。10.3.1DMA三種工作方式

1.CPU暫停方式主機(jī)響應(yīng)DMA請(qǐng)求后,讓出存儲(chǔ)總線,直到一組數(shù)據(jù)傳送完畢后,DMA控制器才把總線控制權(quán)交還給CPU。DMA控制、訪問(wèn)主存CPU控制、訪問(wèn)主存主存工作時(shí)間DMA不工作DMA工作DMA不工作CPU停止訪問(wèn)主存10.3.1DMA三種工作方式

2.CPU周期竊取方式

DMA控制器與主存儲(chǔ)器之間傳送一個(gè)數(shù)據(jù),占用(竊?。┮粋€(gè)或幾個(gè)CPU周期,即CPU暫停工作一個(gè)或幾個(gè)周期,然后繼續(xù)執(zhí)行程序。DMA控制、訪問(wèn)主存CPU控制、訪問(wèn)主存主存工作時(shí)間10.3.1DMA三種工作方式

與停止CPU訪內(nèi)的DMA方法比較,周期挪用的方法既實(shí)現(xiàn)了I/O傳送,又較好地發(fā)揮了內(nèi)存和CPU的效率,是一種廣泛采用的方法。但是I/O設(shè)備每一次周期挪用都有申請(qǐng)總線控制權(quán)、建立總線控制權(quán)和歸還總線控制權(quán)的過(guò)程,所以傳送一個(gè)字對(duì)內(nèi)存來(lái)說(shuō)要占用一個(gè)周期,但對(duì)DMA控制器來(lái)說(shuō)一般要2—5個(gè)內(nèi)存周期(視邏輯線路的延遲而定)。因此,周期挪用的方法適用于I/O設(shè)備讀寫周期大于內(nèi)存存儲(chǔ)周期的情況。10.3.1DMA三種工作方式

3.CPU和DMA交替工作方式當(dāng)CPU的工作周期比主存訪問(wèn)時(shí)間長(zhǎng)時(shí),使用這種方式。這種方式不需要總線使用權(quán)的申請(qǐng)、建立和歸還過(guò)程。將CPU周期分成C1和C2兩個(gè)周期,其中C1專門用于給DMA訪問(wèn)主存,C2提供給CPU訪問(wèn)主存。總線使用權(quán)通過(guò)C1和C2分別控制。CPU和DMA各自有自己的訪問(wèn)地址寄存器、數(shù)據(jù)寄存器和讀寫信號(hào)。DMA控制、訪問(wèn)主存CPU控制、訪問(wèn)主存主存工作時(shí)間10.3.1DMA三種工作方式

DMA與CPU交替訪問(wèn)內(nèi)存這種方式效率高,又稱為“透明的DMA”方式,其來(lái)由是這種DMA傳送對(duì)CPU來(lái)說(shuō),如同透明的玻璃一般。但相應(yīng)的硬件邏輯也就更加復(fù)雜。10.3.2DMA控制器組成

1.設(shè)備寄存器(1)主存地址寄存器(MAR)

寄存器初始值為主存緩沖區(qū)的首地址。

(2)外圍設(shè)備地址寄存器(ADR)該寄存器存放I/O設(shè)備的設(shè)備碼,具體內(nèi)容取決于I/O設(shè)備的數(shù)據(jù)格式和地址字編址方式。

(3)字?jǐn)?shù)計(jì)數(shù)器(WC)

該計(jì)數(shù)器對(duì)傳送數(shù)據(jù)的總字?jǐn)?shù)進(jìn)行統(tǒng)計(jì)。(4)控制與狀態(tài)寄存器(CSR)

該寄存器用來(lái)存放控制字和狀態(tài)字。

(5)數(shù)據(jù)緩沖寄存器(DBR)

該寄存器用來(lái)暫存I/O設(shè)備與主存?zhèn)魉偷臄?shù)據(jù)。

10.3.3DMA的數(shù)據(jù)傳送過(guò)程(1)

DMA的數(shù)據(jù)傳送過(guò)程可分為三個(gè)階段:

1)DMA傳送前預(yù)處理;2)數(shù)據(jù)傳送;3)傳送后處理。內(nèi)存起始地址→DMA主存地址寄存器(MAR)設(shè)備地址→外圍設(shè)備地址寄存器(ADR)傳送數(shù)據(jù)個(gè)數(shù)→字?jǐn)?shù)計(jì)數(shù)器(WC)啟動(dòng)設(shè)備繼續(xù)執(zhí)行主程序DMA控制器控制數(shù)據(jù)傳送直到WC為零執(zhí)行中斷服務(wù)程序處理DMA結(jié)束操作如需要,停止外設(shè),否則進(jìn)行下一次DMA預(yù)處理數(shù)據(jù)傳送后處理10.3.3DMA的數(shù)據(jù)傳送過(guò)程(2)

1.DMA預(yù)處理在進(jìn)行DMA數(shù)據(jù)傳送之前要用程序做一些必要的準(zhǔn)備工作。先由CPU執(zhí)行幾條輸入輸出指令,測(cè)試設(shè)備狀態(tài),向DMA控制器的設(shè)備地址寄存器中送入設(shè)備地址并啟動(dòng)設(shè)備,在主存地址寄存器中送入交換數(shù)據(jù)的主存起始地址,在數(shù)據(jù)字?jǐn)?shù)寄存器中送入交換的數(shù)據(jù)個(gè)數(shù)。在這些工作完成之后,CPU繼續(xù)執(zhí)行原來(lái)的程序。10.3.3DMA的數(shù)據(jù)傳送過(guò)程(3)

第二個(gè)階段數(shù)據(jù)傳送過(guò)程:允許傳送?主存地址送總線數(shù)據(jù)送I/O設(shè)備(或主存)主存地址加1WC內(nèi)容(傳送個(gè)數(shù))減1數(shù)據(jù)塊傳送結(jié)束?向CPU申請(qǐng)中斷DMA請(qǐng)求NYYN10.3.3DMA的數(shù)據(jù)傳送過(guò)程(4)

2.DMA控制I/O設(shè)備與主存之間的數(shù)據(jù)交換

I/O設(shè)備啟動(dòng)后,若為輸入數(shù)據(jù),則要進(jìn)行以下操作:(1)從輸入介質(zhì)讀入一個(gè)字到數(shù)據(jù)緩沖寄存器DBR中。(2)向CPU發(fā)DMA請(qǐng)求,在取得總線控制權(quán)后,將DBR中的數(shù)據(jù)送人主存的數(shù)據(jù)寄存器。(3)將DMA中的MAR內(nèi)容送主存的地址寄存器,啟動(dòng)寫操作,將數(shù)據(jù)寫入主存。(4)將WC內(nèi)容減1,將MAR的內(nèi)容加1,給出下一個(gè)字的地址。(5)判斷WC是否為“0”,若不是,說(shuō)明還有數(shù)據(jù)需要傳送,檢查無(wú)錯(cuò)后準(zhǔn)備下一字的輸入。若WC為0,表明一組數(shù)據(jù)已傳送完畢,此時(shí)應(yīng)置結(jié)束標(biāo)志,向CPU發(fā)中斷請(qǐng)求。

10.3.3DMA的數(shù)據(jù)傳送過(guò)程(5)

I/O設(shè)備啟動(dòng)后,若為輸出數(shù)據(jù),應(yīng)進(jìn)行以下操作:(1)將MAR的內(nèi)容送主存的地址寄存器。(2)啟動(dòng)主存讀操作,將對(duì)應(yīng)單元的內(nèi)容讀入主存的數(shù)據(jù)寄存器。(3)將主存數(shù)據(jù)寄存器的內(nèi)容送到DMA的DBR中。(4)將DBR的內(nèi)容送到輸出設(shè)備,若為字符設(shè)備,則需將DBR內(nèi)容拆成字符輸出。(5)將WC內(nèi)容減1,MAR內(nèi)容加1,為下一個(gè)字的輸出做好準(zhǔn)備。(6)判斷WC的內(nèi)容是否為0。如不為0,說(shuō)明還需繼續(xù)傳送,輸出設(shè)備處理完數(shù)據(jù)后,發(fā)DMA請(qǐng)求。如WC為0或檢驗(yàn)有錯(cuò),則停止傳送,向CPU發(fā)結(jié)束中斷請(qǐng)求或出錯(cuò)中斷請(qǐng)求。

10.3.3DMA的數(shù)據(jù)傳送過(guò)程(6)

3.CPU中斷原程序進(jìn)行后處理若需繼續(xù)交換數(shù)據(jù),則又要對(duì)DMA控制器進(jìn)行初始化;若不需交換數(shù)據(jù),則停止外設(shè);若為出錯(cuò),則轉(zhuǎn)錯(cuò)誤診斷及處理程序。10.3.4軟盤接口邏輯電路舉例(1)

為了實(shí)現(xiàn)CPU和軟盤驅(qū)動(dòng)器之間的快速數(shù)據(jù)傳送,在CPU和軟盤驅(qū)動(dòng)器之間需設(shè)置軟盤控制器。

DMA控制器電路Intel8257就是DMA控制器電路。軟盤控制器接口邏輯電路中采用了8257DMA控制器。在CPU和軟盤控制器之間的接口電路中包括總線控制線路和DMA控制線路。

8257DMA控制器提供四個(gè)獨(dú)立的DMA通道(CH0,CH1,CH2,CH3)。軟盤接口使用了其中一個(gè)通道。每個(gè)通道包含兩個(gè)十六位的寄存器:一個(gè)DMA地址寄存器和一個(gè)字節(jié)計(jì)數(shù)寄存器。DMA地址寄存器存放被尋址的第一個(gè)主存單元的地址。字節(jié)計(jì)數(shù)寄存器存放本次DMA傳送的字節(jié)數(shù)。此外,還包含工作方式(讀、寫、校驗(yàn))和狀態(tài)寄存器。

溫馨提示

  • 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)論