I/O控制方式主要有程序查詢方式、中斷方式肮蛹、DMA方式和通信方式砖顷。
1、程序查詢方式
? 程序查詢方式也稱為程序輪詢方式巷屿,該方式采用用戶程序直接控制主機(jī)與外部設(shè)備之間輸入/輸出操作固以。CPU必須不停地循環(huán)測試I/O設(shè)備的狀態(tài)端口,當(dāng)發(fā)現(xiàn)設(shè)備處于準(zhǔn)備好(Ready)狀態(tài)時(shí)嘱巾,CPU就可以與I/O設(shè)備進(jìn)行數(shù)據(jù)存取操作憨琳。這種方式下的CPU與I/O設(shè)備是串行工作的,輸入/輸出一般以字節(jié)或字為單位進(jìn)行旬昭。這個(gè)方式頻繁地測試I/O設(shè)備篙螟,I/O設(shè)備的速度相對(duì)來說又很慢,極大地降低了CPU的處理效率问拘,并且僅僅依靠測試設(shè)備狀態(tài)位來進(jìn)行數(shù)據(jù)傳送遍略,不能及時(shí)發(fā)現(xiàn)傳輸中的硬件錯(cuò)誤。但是這種方式的過程很簡單骤坐,易理解绪杏,并且不需要額外硬件。
2纽绍、中斷方式
? 當(dāng)I/O設(shè)備結(jié)束(完成蕾久、特殊或異常)時(shí),就會(huì)向CPU發(fā)出中斷請(qǐng)求信號(hào)拌夏,CPU收到信號(hào)就可以采取相應(yīng)措施腔彰。當(dāng)某個(gè)進(jìn)程要啟動(dòng)某個(gè)設(shè)備時(shí)叫编,CPU就向相應(yīng)的設(shè)備控制器發(fā)出一條設(shè)備I/O啟動(dòng)指令,然后CPU又返回做原來的工作霹抛。CPU與I/O設(shè)備可以并行工作,與程序查詢方式相比卷谈,大大提高了CPU的利用率杯拐。但是在中斷方式下,同程序查詢方式一樣世蔗,也是以字節(jié)或字為單位進(jìn)行端逼。但是該方法大大降低了CPU的效率,因?yàn)楫?dāng)中斷發(fā)生的非常頻繁的時(shí)候污淋,系統(tǒng)需要進(jìn)行頻繁的中斷源識(shí)別顶滩、保護(hù)現(xiàn)場、中斷處理寸爆、恢復(fù)現(xiàn)場礁鲁。這種方法對(duì)于以“塊”為存取單位的塊設(shè)備,效率是低下的赁豆。
3仅醇、DMA(直接內(nèi)存存取)方式
? DMA方式也稱為直接主存存取方式,其思想是:允許主存儲(chǔ)器和I/O設(shè)備之間通過“DMA控制器(DMAC)”直接進(jìn)行批量數(shù)據(jù)交換魔种,除了在數(shù)據(jù)傳輸開始和結(jié)束時(shí)析二,整個(gè)過程無須CPU的干預(yù)。每傳輸一個(gè)“塊”數(shù)據(jù)只需要占用一個(gè)主存周期节预。
? DMA方式下叶摄,一個(gè)完整的數(shù)據(jù)傳輸過程:
? 1)DMA初始化
? 當(dāng)進(jìn)程需要I/O設(shè)備進(jìn)行數(shù)據(jù)輸入輸出時(shí),CPU對(duì)DMA控制器初始化安拟,并向I/O端口發(fā)出操作命令蛤吓,提供準(zhǔn)備傳輸?shù)臄?shù)據(jù)起始地址,需要傳送的數(shù)據(jù)長度等信息送入到DMA控制器中的主存地址寄存器和傳送字節(jié)計(jì)數(shù)器中去扣。
? 2)DMA傳輸
? DMA控制器獲得總線控制權(quán)后柱衔,進(jìn)行輸出讀寫命令,直接控制主存與I/O設(shè)備之間的傳輸愉棱。在DMA控制器的控制下唆铐,數(shù)據(jù)傳輸過程中不需要CPU的參與。
? 3)DMA結(jié)束
? 當(dāng)完成本次數(shù)據(jù)傳輸后奔滑,DMA控制器釋放總線控制權(quán)艾岂,并向I/O設(shè)備端口發(fā)出結(jié)束信號(hào)。
4朋其、I/O通道控制方式
? 通道(Channel)也稱為外圍設(shè)備處理器王浴、輸入輸出處理機(jī)脆炎,是相對(duì)于CPU而言的。是一個(gè)處理器氓辣。也能執(zhí)行指令和由指令的程序秒裕,只不過通道執(zhí)行的指令是與外部設(shè)備相關(guān)的指令。是一種實(shí)現(xiàn)主存與I/O設(shè)備進(jìn)行直接數(shù)據(jù)交換的控制方式钞啸,與DMA控制方式相比几蜻,通道所需要的CPU控制更少,一個(gè)通道可以控制多個(gè)設(shè)備体斩,并且能夠一次進(jìn)行多個(gè)不連續(xù)的數(shù)據(jù)塊的存取交換谷扣,從而大大提高了計(jì)算機(jī)系統(tǒng)效率
? 通道的類型
1)字節(jié)多路通道
? 2)數(shù)組選擇通道
? 3)數(shù)組多路通道