三、輸入輸出控制:輸入輸出尋址,輪詢I/O方式,中斷傳送方式,DMA傳送方式1.I/O尋址
在80X86系列CPU中,采用專門的I/O指令來對(duì)I/O端口進(jìn)行輸入或輸出操作。在CPU中負(fù)責(zé)與I/O端口交換信息的寄存器只能是AL(8位數(shù)據(jù)或16位數(shù)據(jù))。在輸入、輸出指令中,直接尋址范圍是0~255;通過DX寄存器存放外設(shè)的端口地址而間接尋址的范圍是0~65535。兩個(gè)連續(xù)的8位端口可以當(dāng)作一個(gè)16位端口來使用。
在PC機(jī)中,實(shí)際上只有10條地址線(A0~A9)參加I/O端口地址譯碼,因此實(shí)際能訪問的I/O端口數(shù)為1024。相應(yīng)的地址空間為000H~3FFH,其中000H~1FFH分配給系統(tǒng)板上的I/O端口,200H~3FFH分配給I/O插卡。所以當(dāng)?shù)刂肪A9為高電平時(shí),表示PC機(jī)的系統(tǒng)總線與I/O插卡交換數(shù)據(jù);A9為低電平時(shí),系統(tǒng)總線為主板上的I/O端口交換數(shù)據(jù)。
區(qū)分訪問內(nèi)存與外設(shè)的控制信號(hào)是M/IO,當(dāng)其為低電平時(shí),表示CPU訪問I/O設(shè)備。為區(qū)分讀操作或?qū)懖僮鲬?yīng)利用CPU相應(yīng)控制信號(hào),如IOR表示讀I/O端口,IOW表示寫I/O端口。在I/O端口的地址譯碼電路中,還必須使用AEN信號(hào)參與譯碼,AEN是DMA允許地址輸出信號(hào),高電平時(shí)表示DAM控制器接管地址總線,只有當(dāng)ANE為低電平時(shí),才表示是CPU接管地址總線,在地址總線上送來的CPU是訪問I/O端口的地址,才允許I/O端口進(jìn)行譯碼輸出。
2.計(jì)算機(jī)與外設(shè)交換信息的方式
計(jì)算機(jī)與外設(shè)交換信息的方式有4種:直接程序傳送方式、程序查詢方式、程序中斷方式和DMA(直接訪問存儲(chǔ)器)方式。
直接程序傳送方式適合于開關(guān)和數(shù)碼顯示器等比較簡單,可以直接向其輸入或輸出的器件。程序查詢方式適用于那些數(shù)據(jù)有一個(gè)準(zhǔn)備與就緒過程的外設(shè),只有外設(shè)準(zhǔn)備好了,CPU才能進(jìn)行數(shù)據(jù)的讀寫。
程序中斷方式使CPU與外設(shè)能同時(shí)并行地工作,以提高CPU的利用率。DMA方式是計(jì)算機(jī)與外設(shè)高速交換信息的方式,這種方式在DMA控制器的控制下,讓外設(shè)與內(nèi)存之間不通過CPU而直接交換數(shù)據(jù)。由于DMA是用硬件實(shí)現(xiàn)這種數(shù)據(jù)交換的,所以速度很高,并且可以批量傳輸,適用于高速外設(shè)。在DMA開始之前要用程序?qū)MA控制器芯片進(jìn)行初始化;在DMA傳輸結(jié)束后,也要用程序進(jìn)行有關(guān)數(shù)據(jù)的處理工作。
3.計(jì)算機(jī)與外設(shè)之間交換信息的內(nèi)容
計(jì)算機(jī)與外設(shè)之間交換信息的類型有3種:外設(shè)的狀態(tài)、計(jì)算機(jī)給外設(shè)的命令、雙方交換的信息。
4.查詢I/O方式
查詢方式的程序設(shè)計(jì)包括如下步驟:①輸入I/O設(shè)備的狀態(tài)信息;
、谂袛郔/O設(shè)備就緒否?若未就緒,則重新取設(shè)備狀態(tài)繼續(xù)判斷;③若I/O設(shè)備已就緒,則執(zhí)行I/O數(shù)據(jù)傳輸。
查詢方式所需硬件、軟件都很簡單,但浪費(fèi)了大量的CPU時(shí)間。為了提高查詢方式中CPU的工作效率,可以讓CPU依次對(duì)多個(gè)外設(shè)查詢,即輪詢。
相關(guān)推薦:2010年9月計(jì)算機(jī)等級(jí)考試成績查詢時(shí)間匯總北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |