2014計算機三級《PC技術》考試要點:輸入輸出控制
在80X86系列CPU中,采用專門的I/O指令來對I/O端口進行輸入或輸出操作。在CPU中負責與I/O端****換信息的寄存器只能是AL(8位數據或16位數據)。在輸入、輸出指令中,直接尋址范圍是0~255;通過DX寄存器存放外設的端口地址而間接尋址的范圍是0~65535。兩個連續的8位端口可以當作一個16位端口來使用。
在PC機中,實際上只有10條地址線(A0~A9)參加I/O端口地址譯碼,因此實際能訪問的I/O端口數為1024。相應的地址空間為000H~3FFH,其中000H~1FFH分配給系統板上的I/O端口,200H~3FFH分配給I/O插卡。所以當地址線A9為高電平時,表示PC機的系統總線與I/O插卡交換數據;A9為低電平時,系統總線為主板上的I/O端****換數據。
區分訪問內存與外設的控制信號是M/IO,當其為低電平時,表示CPU訪問I/O設備。為區分讀操作或寫操作應利用CPU相應控制信號,如IOR表示讀I/O端口,IOW表示寫I/O端口。在I/O端口的地址譯碼電路中,還必須使用AEN信號參與譯碼,AEN是DMA允許地址輸出信號,高電平時表示DAM控制器接管地址總線,只有當ANE為低電平時,才表示是CPU接管地址總線,在地址總線上送來的CPU是訪問I/O端口的地址,才允許I/O端口進行譯碼輸出。
2.計算機與外設交換信息的方式
計算機與外設交換信息的方式有4種:直接程序傳送方式、程序查詢方式、程序中斷方式和DMA(直接訪問存儲器)方式。
直接程序傳送方式適合于開關和數碼顯示器等比較簡單,可以直接向其輸入或輸出的器件。程序查詢方式適用于那些數據有一個準備與就緒過程的外設,只有外設準備好了,CPU才能進行數據的讀寫。
程序中斷方式使CPU與外設能同時并行地工作,以提高CPU的利用率。DMA方式是計算機與外設高速交換信息的方式,這種方式在DMA控制器的控制下,讓外設與內存之間不通過CPU而直接交換數據。由于DMA是用硬件實現這種數據交換的,所以速度很高,并且可以批量傳輸,適用于高速外設。在DMA開始之前要用程序對DMA控制器芯片進行初始化;在DMA傳輸結束后,也要用程序進行有關數據的處理工作。
3.計算機與外設之間交換信息的內容
計算機與外設之間交換信息的類型有3種:外設的狀態、計算機給外設的命令、雙方交換的信息。
4.查詢I/O方式
查詢方式的程序設計包括如下步驟:①輸入I/O設備的狀態信息;
②判斷I/O設備就緒否?若未就緒,則重新取設備狀態繼續判斷;③若I/O設備已就緒,則執行I/O數據傳輸。
查詢方式所需硬件、軟件都很簡單,但浪費了大量的CPU時間。為了提高查詢方式中CPU的工作效率,可以讓CPU依次對多個外設查詢,即輪詢。
5.程序中斷I/O方式
在計算機中專門負責中斷處理的硬件和軟件稱為中斷系統。不同類型的CPU,其中斷系統的機能不同。
從主程序轉向I/O中斷服務程序的過程稱為中斷響應,I/O中斷響應是通過硬件實現的。其任務是:
①保存主程序的返回地址;
②轉向中斷服務程序的入口地址。中斷服務程序的任務是:①保護CPU現場;
②開中斷(在響應中斷的過程中要關中斷,以區分一次響應中斷的過程。若在本次處理中斷的過程中允許響應更高級別的中斷,則需及時開中斷);③中斷服務處理;
④恢復主程序的CPU現場;
⑤在80X86系統中,要向8259發EOI(中斷結束)命令,以便執行中斷嵌套功能;⑥返回主程序的斷點處,以便繼續執行主程序。
6.80X86的中斷系統
80X86CPU設有256種中斷類型,其中斷類型號為0~255。中斷服務程序的入口地址集中放在內存的中斷向量表中,每個中斷向量(即中斷服務程序入口地址)要占4字節,因此,內存的中斷向量表共占1KB,分布在內存地址區間0~3FFH中。
已知中斷類型號為n,則相應的中斷向量地址為4n,在4n和4n+1地址單元中存放該中斷服務程序入口地址的偏移量,在4n+2和4n+3單元中存放中斷服務程序入口的段地址。
7.8259中斷控制器芯片
一片8259可提供8個I/O中斷源,在286以上的PC機中用兩片8259級聯,可提供15個I/O中斷源。在8259中,用中斷服務寄存器ISR存放正在服務的中斷源標志。8259的全嵌套中斷工作方式是允許在中斷服務程序的執行過程中響應更高級別中斷請求的方式,它要求中斷服務程序在中斷返回之前,向8259發EOI(中斷結束)命令,以便8259清除ISR寄存器中該中斷源的對應位,轉去處理級別較低的中斷服務。
8259在其8個中斷源IRQ0~IRQ7中,規定其優先級別是:IRQ0最高,IRQ1次之,……IRQ7最低。
通過設置初始化命令字可以改變中斷源的優先級別,甚至可以使優先權在各中斷源之間輪流旋轉。
8.8259的初始化命令字
8259的初始化命令字共有4個,ICW1~ICW4必須按順序寫入。8259只有2個端口地址,即一個為偶數的地址和一個為奇數的地址,ICW1應寫入偶地址,ICW2~ICW4均是奇地址。ICW1用于設置8259的基本工作方式。
ICW2用于設置中斷類型,使中斷源IRQ號與CPU的中斷類型號建立一一對應的關系。ICW3用于設置8259級聯的具體方式。
ICW4用于設置中斷結束方式、緩沖方式、特殊的全嵌套方式等。
中斷結束方式分為自動中斷結束方式和非自動中斷結束方式,前者適用于無中斷嵌套的情況,8259中ISR的中斷源標志在CPU響應中斷請求后由8259自動清除,在中斷服務序中無需向8259發EOI命令;后者適用于中斷嵌套的情況,在中斷服務程序結束前,要8259發EOI命令,以便清除ISR中相應的中斷源標志位。在PC機中采用非自動中斷結束式,即中斷程序在返回主程序之前,必須向8259發EOI命令。
緩沖方式指8259和系統的數據總線之間經緩沖器相連;非緩沖方式則是直接相連。
當8259級聯工作時,應采用特殊的全嵌套方式,允許主片響應同級的中斷請求。一8259(主片)的8個IR輸入端最多可經8個8259(從片)擴展為64個輸入端。用2片8259則將中斷源輸入端擴展為15個。
9.DMA控制器芯片8237
8237通過HRQ向80X86CPU的HOLD發出DMA請求,CPU通過HLDA向8237作出確認,同時CPU將總線控制權交給8237。
在8237中有4個DMA通道,每個通道都可以連接一個獨立的I/O設備,它們不能同時工作,優先順序為通道0~通道3。在每個通道中都有2個端口:一個16位的地址寄存器和一個16位的字節計數器,前者用來指示進行DMA數據傳輸時在內存中的起始地址,后者用來對傳輸的DMA數據字節進行計數,以便控制DMA傳送的結束。因此一片8237共有8個端口。
8237可以通過DREQ(連次級的HRQ)和DACK(連次級的HLDA)來實現級聯,這樣,用5片8237(1個主片,4個從片)就可以使MDA通道數擴大到16個。10.擴大DMA可尋址的內存空間
由于8237的地址寄存器為16位,因此可尋址的內存空間為64KB,為了擴大DMA可尋址的內存空間,可在8237外建立頁面地址寄存器,設頁面地址寄存器為12位,則DMA總的可尋址空間為216+12=256MB,可滿足現行PC機的要求。