《計(jì)算機(jī)原理-第七章輸入輸出與中斷》由會(huì)員分享,可在線閱讀,更多相關(guān)《計(jì)算機(jī)原理-第七章輸入輸出與中斷(44頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,*,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級(jí),第三級(jí),第四級(jí),第五級(jí),*,輸入/輸出和中斷,7.1 外設(shè)接口的一般結(jié)構(gòu),7.2 CPU與外設(shè)交換數(shù)據(jù)的方式,7.3 中斷技術(shù),7.4 8086/8088的中斷系統(tǒng),7.5 8259A可編程中斷控制器,7.6 8237DMA控制器,第,7,章,外設(shè)接口的一般結(jié)構(gòu),一個(gè)簡(jiǎn)單的外設(shè)接口框圖如圖7-1所示
2、,從圖中可以看出CPU通過(guò)一個(gè)外設(shè)接口同外設(shè)之間交換的信息主要有三類(lèi):數(shù)據(jù)信息、狀態(tài)信息、控制信息。,7.1.1 數(shù)據(jù)信息,在微型機(jī)中,數(shù)據(jù)大致為三種基本類(lèi)型,:,數(shù)字量,模擬量,開(kāi)關(guān)量,7.1,狀態(tài)信息,READY(準(zhǔn)備好信號(hào)),表示輸入設(shè)備已經(jīng)準(zhǔn)備好信息,CPU可執(zhí)行輸入指令從該外設(shè)輸入數(shù)據(jù)。,BUSY(忙信號(hào)),表示輸出設(shè)備正在輸出信息,即在“忙”著,同時(shí)也等于指示CPU等待。,狀態(tài)信息表示外設(shè)當(dāng)前所處的工作狀態(tài),例如,控制信息,控制信息,是由CPU發(fā)出的,用于控制I/O接口的工作方式以及外設(shè)的啟動(dòng)和停止等等。,狀態(tài)信息和控制信息以及數(shù)據(jù)信息,,通常都以數(shù)據(jù)形式通過(guò)數(shù)據(jù)總線傳送,這些信息
3、在I/O接口中分別存放在不同的端口中。,CPU與外設(shè)交換數(shù)據(jù)的方式,7.2.1 程序控制傳遞方式,程序控制的數(shù)據(jù)傳送分為,無(wú)條件傳送、查詢(xún)傳送和中斷傳送。,這類(lèi)傳送方式的,特點(diǎn),是,以CPU為中心,數(shù)據(jù)傳送的控制來(lái)自CPU,通過(guò)預(yù)先編制好的輸入或輸出程序(傳送指令和I/O指令)實(shí)現(xiàn)數(shù)據(jù)的傳送。,7.2,1.無(wú)條件傳送方式,查詢(xún)傳送方式,中斷傳送方式,程序控制傳遞方式,無(wú)條件傳送方式,無(wú)條件傳送方式又稱(chēng)同步傳送方式。主要用于外設(shè)工作的時(shí)間已知的場(chǎng)合,外設(shè)必須在微處理器限定的指令時(shí)間內(nèi)準(zhǔn)備就緒,并完成數(shù)據(jù)的接收或發(fā)送。,通常采用的辦法是:,把I/O指令插入到程序中,當(dāng)程序執(zhí)行到該I/O指令時(shí),外設(shè)
4、必定已為傳送數(shù)據(jù)作好了準(zhǔn)備,于是在此指令時(shí)間內(nèi)完成數(shù)據(jù)傳送任務(wù)。,查詢(xún)傳送方式,查詢(xún)傳送方式又稱(chēng)異步傳送方式。,中斷傳送方式,利用中斷來(lái)實(shí)現(xiàn)CPU與外設(shè)之間的數(shù)據(jù)傳送,這就是,中斷傳送方式。,采用中斷傳送方式時(shí),CPU從啟動(dòng)外設(shè)到外設(shè)準(zhǔn)備就緒這段時(shí)間,不像查詢(xún)方式一樣處于等待狀態(tài),而僅僅是在外設(shè)準(zhǔn)備好數(shù)據(jù)傳送的情況下才中止CPU執(zhí)行的主程序,在一定程度上實(shí)現(xiàn)了主機(jī)和外設(shè)的并行工作。,通過(guò)執(zhí)行一條輸入指令,讀取所選外設(shè)的當(dāng)前狀態(tài),。,(2)根據(jù)該設(shè)備的狀態(tài)決定程序去向,完成一次傳送過(guò)程的步驟如下:,DMA(直接存儲(chǔ)器存取)傳遞方式,在外設(shè)和內(nèi)存之間直接傳送數(shù)據(jù)的方式,即 DMA傳送方式。,DMA
5、(Direct Memory Access)是一種不需要CPU干預(yù)也不需要軟件介入的高速數(shù)據(jù)傳送方式。,DMA操作的基本方法,周期挪用(Cycle Stealing),周期擴(kuò)散,CPU停機(jī)方式,周期挪用(Cycle Stealing),利用CPU不訪問(wèn)存儲(chǔ)器的那些周期來(lái)實(shí)現(xiàn)DMA操作,此時(shí)DMAC可以使用總線而不用通知CPU也不會(huì)妨礙CPU的工作。這種方法的關(guān)鍵是如何識(shí)別合適的可挪用的周期,以避免同CPU的操作發(fā)生重疊。,這種方法會(huì)使CPU的處理速度減慢,而且CPU時(shí)鐘周期的加寬是有限的。因此用這種方法進(jìn)行DMA傳送,一次只能傳送一個(gè)字節(jié)。,周期擴(kuò)散,CPU停機(jī)方式,這是最常用的、最簡(jiǎn)單的傳送
6、方式,大部分DMAC都采用這種方式。,DMA的傳送方式,通常,大部分DMAC都有三種DMA 傳送方式:,成組傳送方式,請(qǐng)求傳送方式,單字傳送方式,單字節(jié)傳送方式,每次DMA傳送只傳送一個(gè)字節(jié)的數(shù)據(jù),傳送后釋放總線由CPU控制總線至少一個(gè)完整的總線周期。以后又測(cè)試DMA請(qǐng)求線DREQ,若有效,再進(jìn)入DMA周期。,成組傳送方式,一個(gè)DMA請(qǐng)求可以傳送一組信息,這一組信息的字節(jié)數(shù)由編程決定(在DMAC初始化時(shí)),只要在DACK有效之前DREQ保持有效即可。一旦DACK有效,不管DREQ是否有效,DMAC一直不放棄總線控制權(quán),直到整個(gè)數(shù)組傳送完。,請(qǐng)求傳送方式,又稱(chēng)查詢(xún)傳送方式。,DMAC應(yīng)該具有如下
7、功能:,(1)能接收外設(shè)的請(qǐng)求,向CPU發(fā)出DMA請(qǐng)求信號(hào)。,(2)當(dāng)CPU 發(fā)出DMA響應(yīng)信號(hào)后,DMAC接管對(duì)總線的控制,進(jìn)入DMA方式。,(3)能尋址存儲(chǔ)器,即能輸出地址信息和修改地址。,DMAC(DMA控制器)的基本功能,(4)能向存儲(chǔ)器和外設(shè)發(fā)生相應(yīng)的讀/寫(xiě)控制信號(hào)。,(5)能控制傳送的字節(jié)數(shù),判斷DMA是否結(jié)束。,(6)在DMA傳送結(jié)束后,能結(jié)束DMA請(qǐng)求信號(hào),釋放總線,使CPU恢復(fù)正常工作。,中斷,7.3.1 概述,中斷是外設(shè)隨機(jī)地(指主程序運(yùn)行到任何一條指令時(shí))或程序預(yù)先安排產(chǎn)生中斷請(qǐng)求信號(hào),暫停CPU正在運(yùn)行的程序,轉(zhuǎn)入執(zhí)行稱(chēng)為中斷服務(wù)的子程序,中斷服務(wù)完畢后,返回到主程序被
8、中斷處繼續(xù)執(zhí)行的過(guò)程。,7.3,中斷源,引起中斷的事件稱(chēng)為中斷源,通常中斷源有以下幾種:,輸入、輸出設(shè)備:如鍵盤(pán)、顯示器和打印機(jī)等;,數(shù)據(jù)通道:如磁帶等;,實(shí)時(shí)控制過(guò)程中的各種參數(shù);,故障源:如掉電保護(hù)等;,(5)控制系統(tǒng)的現(xiàn)場(chǎng)測(cè)試信號(hào)以及軟件中斷。,為了滿足上述各種條件下的要求,中斷系統(tǒng)應(yīng)具有以下,1.能實(shí)現(xiàn)中斷響應(yīng)、中斷服務(wù)和中斷返回,2.能實(shí)現(xiàn)中斷優(yōu)先級(jí)排隊(duì),3.能實(shí)現(xiàn)中斷嵌套,:,功能,中斷過(guò)程與中斷管理,1.中斷過(guò)程,對(duì)于不同的微機(jī)系統(tǒng),CPU中斷處理的具體過(guò)程不盡相同,但是一個(gè)完整的中斷基本過(guò)程應(yīng)包括:中斷請(qǐng)求、中斷判優(yōu)、中斷響應(yīng)、中斷處理及中斷返回等五個(gè)基本過(guò)程。,中斷請(qǐng)求,中斷
9、判優(yōu),中斷響應(yīng),中斷處理,中斷返回,(1),軟件查詢(xún)方式,軟件查詢(xún)優(yōu)先方式是最簡(jiǎn)單的中斷優(yōu)先處理方式。圖6.5顯示了采用軟件查詢(xún)方式的接口電路。,2.,中斷優(yōu)先權(quán),硬件優(yōu)先權(quán)排隊(duì)方式常用的有兩種:,專(zhuān)用硬件方式可編程的中斷控制器。采用可編程中斷控制器,是當(dāng)前微型計(jì)算機(jī)系統(tǒng)中解決中斷優(yōu)先權(quán)管理的常用辦法。詳細(xì)說(shuō)明將在本章第5節(jié)介紹。,(2)硬件優(yōu)先權(quán)排隊(duì)電路,簡(jiǎn)單硬件方式菊花鏈法或鏈?zhǔn)絻?yōu)先權(quán)排隊(duì)電路。鏈?zhǔn)絻?yōu)先權(quán)排隊(duì)邏輯電路如圖6.7所示。,圖6-6 軟件查詢(xún)方式流程圖,保留現(xiàn)場(chǎng),A申請(qǐng)服務(wù)?,B申請(qǐng)服務(wù)?,C申請(qǐng)服務(wù)?,恢復(fù)現(xiàn)場(chǎng),外設(shè)A中斷服務(wù)程序,外設(shè)B中斷服務(wù)程序,外設(shè)C中斷服務(wù)程序,Y,Y
10、,Y,N,N,N,8086/8088的中斷系統(tǒng),7.4.1 中斷結(jié)構(gòu),1.中斷分類(lèi),8086/8088CPU可以處理256種類(lèi)型的中斷源,這些中斷源可分為硬件中斷和軟件中斷兩大類(lèi)。,2.中斷向量表,在8086系統(tǒng)中,允許引入256種類(lèi)型中斷源(類(lèi)型碼為0255),相應(yīng)有256個(gè)中斷服務(wù)程序首址。存放中斷地址的一段內(nèi)存空間稱(chēng)中斷向量表。,7.4,在8086/8088系統(tǒng)中,通過(guò)執(zhí)行中斷指令或由CPU本身啟動(dòng)的中斷稱(chēng)為內(nèi)部中斷(也稱(chēng)軟件中斷)。除單步中斷外,內(nèi)部中斷無(wú)法用軟件禁止,即不受中斷允許標(biāo)志IF的影響。,1.內(nèi)部中斷的類(lèi)型,(1)0型中斷除法出錯(cuò)中斷,(2)1型中斷單步中斷,(3)3型中斷
11、斷點(diǎn)中斷,(4)4型中斷溢出中斷,(5)INT n指令中斷,內(nèi)部中斷軟中斷,8086/8088中的各種中斷的響應(yīng)和處理過(guò)程是不相同的。主要區(qū)別在于如何獲取相應(yīng)的中斷類(lèi)型碼。,對(duì)于專(zhuān)用中斷,中斷類(lèi)型碼是自動(dòng)形成的。,幾種類(lèi)型碼為:,類(lèi)型0、1、3、4,內(nèi)部中斷的處理過(guò)程,對(duì)于INT n指令,其類(lèi)型碼為指令中給定的,n,。,2,1.外部中斷的響應(yīng)及中斷響應(yīng)周期時(shí)序,CPU采樣到非屏蔽中斷請(qǐng)求時(shí),自動(dòng)提供中斷類(lèi)型號(hào)2,然后根據(jù)中斷類(lèi)型號(hào),查找中斷向量表指針,其后的處理與內(nèi)部中斷一樣。,8086/8088CPU為外部設(shè)備提供了兩條硬件中斷信號(hào)線,即NMI和INTR中斷請(qǐng)求信號(hào)。,外部中斷硬中斷,2.外
12、部中斷處理過(guò)程,如果把CPU中斷響應(yīng)周期的動(dòng)作和前面講到的中斷響應(yīng)過(guò)程結(jié)合起來(lái),當(dāng)一個(gè)可屏蔽中斷被響應(yīng)時(shí),CPU實(shí)際執(zhí)行了7個(gè)總線周期。,(1)執(zhí)行第一個(gè)INTA周期,(2)執(zhí)行第二個(gè)INTA周期,(3)執(zhí)行一個(gè)總線寫(xiě)周期,(4)執(zhí)行一個(gè)總線寫(xiě)周期,(5)執(zhí)行一個(gè)總線寫(xiě)周期,(6)執(zhí)行一個(gè)總線讀周期,(7)執(zhí)行一個(gè)總線周期,從中斷向量表中取出中斷服務(wù)程序入口地址的段值送CS。對(duì)于非屏蔽與軟中斷跳過(guò)第(1)、(2)步,從第(3)步開(kāi)始執(zhí)行到第(7)步。,CPU實(shí)際執(zhí)行了7個(gè)總線周期,8086/8088系統(tǒng)中,中斷優(yōu)先權(quán)排隊(duì)次序從高到低為:,除 法出錯(cuò)、INTn、INTO、NMI、INTR、單步中
13、斷。除單步之外的內(nèi)部?jī)?yōu)先權(quán)最高,其次是非屏蔽中斷,再次是可屏蔽中斷,而單步最低。,中斷響應(yīng)和處理流程如圖6-10所示。,各類(lèi)中斷的優(yōu)先權(quán)及中斷響應(yīng),8259A可編程中斷控制器,7.5.1 8259A的功能、結(jié)構(gòu)及工作原理,1.功能,Intel 8259A 是與8086系列CPU兼容的可編程中斷控制器,它的主要功能為:,(1)具有8級(jí)優(yōu)先權(quán)控制,通過(guò)級(jí)連可擴(kuò)展至64級(jí)優(yōu)先權(quán)控制。,(2)每一級(jí)中斷都可以屏蔽或允許。,(3)在中斷響應(yīng)周期,8259A可提供相應(yīng)的中斷向量號(hào)(中斷類(lèi)型號(hào))。,(4)8259A的工作方式,可通過(guò)編程來(lái)進(jìn)行選擇。,7.5,(1)8259A的內(nèi)部結(jié)構(gòu),結(jié)構(gòu),中斷請(qǐng)求寄存器I
14、RR(Interrupt Request Register),優(yōu)先權(quán)電路,中斷服務(wù)寄存器ISR(INService Register),中斷屏蔽寄存器IMR(Interrupt Mask Register),數(shù)據(jù)總線緩沖器,讀寫(xiě)電路,控制邏輯和級(jí)連緩沖/比較器,組成,它由,2.,8259A是28個(gè)引腳的雙列直插芯片,其引腳如圖 7-12所示。,D7D0雙向三態(tài)數(shù)據(jù)線,它可直接與數(shù)據(jù)總線連接。,IR0IR7中斷請(qǐng)求輸入線,其中IR優(yōu)先權(quán)最高,IR7最低。,INT中斷請(qǐng)求輸出,接CPU的中斷請(qǐng)求線INTR。,INTA 中斷響應(yīng)輸入,接受CPU發(fā)來(lái)的中斷響應(yīng)信號(hào)。,8259A的引線,(2),WR寫(xiě)控
15、制信號(hào)線,當(dāng)為低電平時(shí),CPU向8259A寫(xiě)入控制信號(hào)。,RD讀控制信號(hào)線,當(dāng)為低時(shí),可將8259A內(nèi)部寄存器的信息讀至數(shù)據(jù)總線。,A0用以選擇8259A內(nèi)部不同寄存器。通常與地址總線A0相連接。,CAS0CAS2級(jí)連信號(hào),對(duì)于主8259A,它們是輸出線,而對(duì)于從8259A,它們是輸入線。,SP/EN從程序/緩沖器允許信號(hào),是一個(gè)雙功能信號(hào)。,CS片選信號(hào)線,當(dāng)該腳為低電平時(shí),8259A被選中。,8259A的工作原理是通過(guò)其內(nèi)部各處理部件的工作過(guò)程來(lái)體現(xiàn)的。,3.,8259A的工作原理,8259A的初始化命令字共4個(gè)(ICW1ICW4)。不是任何情況下都需要設(shè)置4個(gè)命令字,可根據(jù)8259A的使
16、用情況來(lái)選取,它們?cè)O(shè)置過(guò)程如圖6.13所示。,工作方式編程,8259A的編程,8259A的編程分兩部分:,初始化編程,1.8259A的初始化編程,(1),寫(xiě)初始化命令字ICW1,(2)寫(xiě)初始化命令字ICW,2,其格式如圖7-15所示,中斷類(lèi)型控制字用來(lái)定義中斷類(lèi)型碼的高5位,芯片控制字,(3)寫(xiě)初始化指令字ICW,3,主/從片初始化,(4)寫(xiě)初始化命令字ICW,4,方式控制字,圖7-16 ICW,3,的格式,圖7-17 ICW,4,的格式,圖7-14 ICW,1,的格式,圖7-14 ICW1的格式,A,7,A,6,A,5,1,LTIM,ADI,SNGL,IC,4,1=需要ICW,4,0=不需要ICW,4,0,偶地址,A,0,D,7,D,6,D,5,D,4,D,3,D,2,D,1,D,0,ICW,1,識(shí),別,位,1=單片,0=級(jí)連,調(diào)用地址間隔,1=間隔為4,80X86中不用,0=間隔為8,1=電平觸發(fā),0=邊沿觸發(fā),中斷向量地址,的A,7,A,5,(只用于MCS-80/85),圖7-15 ICW3的格式,T,7,T,6,T,5,T,4,T,3,1,奇地址,中斷類(lèi)型,自動(dòng)填入,IR,0,