|
A.程序查詢方式(Programmed I/O)是在程序控制下cpu與外設(shè)之間進(jìn)行交換數(shù)據(jù).其工作過(guò)程是首先程序向外設(shè)發(fā)出工作信號(hào),然后讀取外設(shè)狀態(tài),檢查是否可進(jìn)行數(shù)據(jù)傳送.若外設(shè)準(zhǔn)備好,則進(jìn)行數(shù)據(jù)傳送;否則反復(fù)讀外設(shè)狀態(tài)并測(cè)試,直到外設(shè)準(zhǔn)備就緒進(jìn)行數(shù)據(jù)傳送.使用程序查詢方式,在外設(shè)沒(méi)有準(zhǔn)備就緒或外設(shè)正在進(jìn)行其他工作時(shí),cpu只能等待而不能進(jìn)行其他工作.程序查詢方式主要用軟件方法實(shí)現(xiàn).cpu的效率低. B.中斷輸入/輸出方式(Interrupt-driven I/O)是主機(jī)在執(zhí)行程序的過(guò)程中,遇到突發(fā)事件而中斷正在執(zhí)行的程序.轉(zhuǎn)去對(duì)突發(fā)事件的進(jìn)行處理.處理完成之后返回原中斷程序繼續(xù)執(zhí)行. 計(jì)算機(jī)使用中斷方式有軟件和硬件兩部分.軟件部分是指中斷處理程序,而中斷處理程序是根據(jù)中斷源的特點(diǎn)而分別編制的一段程序.例如除法錯(cuò)中斷處理程序的功能就是針對(duì)除數(shù)為0的問(wèn)題進(jìn)行相應(yīng)的處理,以保證計(jì)算機(jī)系統(tǒng)能夠正常工作.硬件部分是指中斷控制電路,其作用是負(fù)責(zé)對(duì)中斷請(qǐng)求,中斷響應(yīng)等進(jìn)行相應(yīng)的處理,以保證中斷過(guò)程的正常進(jìn)行。 中斷過(guò)程指從外設(shè)發(fā)出中斷請(qǐng)求到cpu對(duì)該中斷請(qǐng)求處理完畢并返回原程序繼續(xù)執(zhí)行的過(guò)程.中斷過(guò)程如下: 1.中斷請(qǐng)求 中斷源(如外設(shè))向cpu發(fā)出中斷請(qǐng)求,cpu在每條指令執(zhí)行結(jié)束時(shí)檢查計(jì)算機(jī)系統(tǒng)中是否有中斷請(qǐng)求.若有中斷請(qǐng)求,則不再執(zhí)行下條指令而轉(zhuǎn)入中斷響應(yīng);若沒(méi)有中斷請(qǐng)求,則繼續(xù)執(zhí)行下條指令; 2.中斷響應(yīng) 中斷響應(yīng)過(guò)程中把被中斷的程序的斷點(diǎn)地址(指令地址)保存起來(lái),把中斷處理程序地址送入程序計(jì)數(shù)器,開(kāi)始執(zhí)行中斷處理程序; 3.中斷處理 根據(jù)不同的中斷原因,中斷處理程序執(zhí)行相應(yīng)的處理.中斷處理程序運(yùn)行結(jié)束后轉(zhuǎn)入中斷返回.在執(zhí)行中斷處理程序前應(yīng)把中斷斷點(diǎn)處的工作寄存器的內(nèi)容保存起來(lái).一般保存方法是把工作寄存器的內(nèi)容壓入堆棧,中斷處理結(jié)束時(shí)要把斷點(diǎn)從堆棧中彈出送回各中斷處理器。 4.中斷返回 中斷返回就是恢復(fù)斷點(diǎn).把在中斷響應(yīng)時(shí)保存的斷點(diǎn)地址重新送回程序計(jì)數(shù)器,繼續(xù)執(zhí)行被中斷的程序. 計(jì)算機(jī)中有多個(gè)中斷源,可能在同一時(shí)刻有多個(gè)中斷源向cpu發(fā)出中斷請(qǐng)求,在這種情況下cpu不可能同時(shí)響應(yīng)多個(gè)中斷,而是按照中斷源的中斷優(yōu)先級(jí)順序進(jìn)行中斷響應(yīng),即先響應(yīng)優(yōu)先級(jí)高的中斷源,再響應(yīng)優(yōu)先級(jí)低的中斷源.中斷源優(yōu)先級(jí)按系統(tǒng)的情況而定. C.直接存儲(chǔ)器訪問(wèn)方式. 在使用程序查詢方式或中斷方式時(shí),數(shù)據(jù)從外設(shè)傳輸?shù)絻?nèi)存的路徑是先把數(shù)據(jù)從外設(shè)讀到cpu,再?gòu)腸pu把數(shù)據(jù)送到內(nèi)存.直接存儲(chǔ)器訪問(wèn)方式(Direct Memory Access,DMA)是指告訴外設(shè)(一般指磁盤存儲(chǔ)器)與內(nèi)存之間直接進(jìn)行數(shù)據(jù)交換,不通過(guò)cpu并且cpu不參與數(shù)據(jù)交換控制.DMA方式下高速外設(shè)和內(nèi)存之間進(jìn)行數(shù)據(jù)傳輸需要使用總線,所以DMA方式下要解決的問(wèn)題主要是總線使用權(quán)的轉(zhuǎn)移.總線使用權(quán)一般情況下由cpu掌握,在DMA期間總線使用權(quán)交給DMA控制器。 DMA方式由硬件實(shí)現(xiàn).計(jì)算機(jī)硬件中設(shè)有DMA控制器,DMA控制器負(fù)責(zé)DMA請(qǐng)求、DMA處理等工作的控制??偩€使用權(quán)的轉(zhuǎn)移由總線控制器負(fù)責(zé)。 DMA工作過(guò)程是指從DMA請(qǐng)求產(chǎn)生到總線使用權(quán)交還給Cpu的整個(gè)過(guò)程。DMA工作過(guò)程如下:外設(shè)發(fā)出DMA請(qǐng)求;cpu在總線周期結(jié)束時(shí)檢查有無(wú)DMA請(qǐng)求,若有DMA請(qǐng)求,則響應(yīng)DMA請(qǐng)求,把總線讓給DMA控制器;DMA控制器接管總線的使用權(quán),在DMA控制器的控制下通過(guò)總線實(shí)現(xiàn)外設(shè)與內(nèi)存之間的數(shù)據(jù)交換。這時(shí)交換數(shù)據(jù)的內(nèi)存地址及數(shù)量由DMA控制器給出;數(shù)據(jù)交換完成后DMA控制器把總線的使用權(quán)交還給cpu。 |
|
|