一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

輸入/輸出系統(tǒng)

 hustncc 2010-10-11
 輸入/輸出系統(tǒng)
1、主機(jī)與外設(shè)的連接
1.1、輸入輸出接口
I/O接口是主存和外設(shè)之間的交接界面,通過接口可以實(shí)現(xiàn)主機(jī)和外設(shè)之間的信息交換
主機(jī)和外設(shè)之間需要交換的信息:
數(shù)據(jù)信息:這些信息可以是通過輸入設(shè)備送到計(jì)算機(jī)的輸入數(shù)據(jù),也可以是經(jīng)過計(jì)算機(jī)運(yùn)算處理和加工后,送到輸出設(shè)備的結(jié)果數(shù)據(jù)
控制信息:這是CPU對外設(shè)的控制信息或管理命令,如外設(shè)的啟動和停止指控,輸入和輸出操作的制定、工作方式的選擇、中斷功能的允許和禁止等
狀態(tài)信息:這類信息用來標(biāo)志外設(shè)的工作狀態(tài),比如,輸入設(shè)備數(shù)據(jù)準(zhǔn)備好標(biāo)志,輸出設(shè)備忙、閑標(biāo)志等
聯(lián)絡(luò)信息:主機(jī)與外設(shè)間的時間配合信息
外設(shè)識別信息:I/O尋址信息,使CPU能從眾多的外設(shè)中尋找出與自己進(jìn)行信息交換的唯一的設(shè)備
2、接口的功能和基本組成
(1)接口的功能
實(shí)現(xiàn)主機(jī)和外部設(shè)備的通信聯(lián)絡(luò)控制
進(jìn)行地址譯碼和設(shè)備選擇:當(dāng)CPU送來選擇外設(shè)的地址碼后,接口必須對地址進(jìn)行譯碼以產(chǎn)生設(shè)備選擇信息,使主機(jī)能和指定外設(shè)交換信息
實(shí)現(xiàn)數(shù)據(jù)緩沖:在接口電路中,一般設(shè)置一個或幾個數(shù)據(jù)緩沖寄存器,用于數(shù)據(jù)的暫存,以避免因速度不一致而丟失數(shù)據(jù)。在傳送過程中,先將數(shù)據(jù)送入數(shù)據(jù)緩沖寄存器中,然后再送到外部設(shè)備或主機(jī)中去
數(shù)據(jù)格式的變換:在輸入或輸出操作過程中,為了滿足主機(jī)或外設(shè)的各自要求,接口電路中必須具有實(shí)現(xiàn)各類數(shù)據(jù)相互轉(zhuǎn)換的功能,如:并-串轉(zhuǎn)換、串-并轉(zhuǎn)換、模-數(shù)轉(zhuǎn)換、數(shù)-模轉(zhuǎn)換以及二進(jìn)制數(shù)和ASCII碼的相互轉(zhuǎn)換等
傳遞控制命令和狀態(tài)信息:當(dāng)CPU要啟動某一外設(shè)時,通過接口中的命令寄存器向外設(shè)發(fā)出啟動命令;當(dāng)外設(shè)準(zhǔn)備就緒時,則有“準(zhǔn)備好”狀態(tài)信息送回接口中的狀態(tài)寄存器,為CPU提供反饋信息,告訴CPU,外設(shè)已經(jīng)具備與主機(jī)交換數(shù)據(jù)的條件
(2)接口的基本組成
接口中要分別傳送數(shù)據(jù)信息、控制信息、和狀態(tài)信息,數(shù)據(jù)信息、控制信息和狀態(tài)信息都通過數(shù)據(jù)總線來傳送。大多數(shù)計(jì)算機(jī)都把外部設(shè)備的狀態(tài)信息視為輸入數(shù)據(jù),而把控制信息看成是輸出數(shù)據(jù),并在接口中分設(shè)各自相應(yīng)的寄存器,賦以不同的端口地址,各種信息分時地使用數(shù)據(jù)總線傳送到各自的寄存器中
接口與端口是兩個不同的概念,端口是指接口電路中可以被CPU直接訪問的寄存器,若干個端口加上相應(yīng)的控制邏輯電路才組成接口
通常,一個接口中包含有數(shù)據(jù)端口、命令端口和狀態(tài)端口。存放數(shù)據(jù)信息的寄存器稱為數(shù)據(jù)端口,存放控制命令的寄存器稱為命令端口,存放狀態(tài)信息的寄存器稱為狀態(tài)端口。CPU通過輸入指令可以從有關(guān)端口中讀取信息,通過輸出指令可以把信息寫入有關(guān)端口。CPU對不同端口的操作有所不同,有的端口只能讀或只能寫,有的端口可讀可寫。例如,對狀態(tài)端口只能讀,可將外設(shè)的標(biāo)志送到CPU中去;對命令端口只能寫,可將CPU的各種控制命令發(fā)送給外設(shè)
1.3、外設(shè)的識別與端口尋址
外設(shè)識別是通過地址總線和接口電路中的外設(shè)識別電路來實(shí)現(xiàn)的,I/O端口地址就是主機(jī)與外設(shè)直接通信的地址,CPU可以通過端口發(fā)送命令、讀取狀態(tài)和傳送數(shù)據(jù)。
(1)端口地址的編址方式
I/O端口的編址方式有兩種:
獨(dú)立編址:主存地址空間和I/O端口地址空間是相對獨(dú)立的,分別單獨(dú)編址。CPU訪問主存時,由主存讀/寫控制線控制,訪問外設(shè)時,由I/O讀/寫控制線控制,在指令系統(tǒng)中,必須設(shè)置專門的I/O指令。當(dāng)CPU使用I/O指令時,其指令的地址字段直接或間接的指出端口地址。這些端口地址被接口電路中的地址譯碼器接受并進(jìn)行譯碼,符合者就是CPU所指定的外設(shè)寄存器,該寄存器將被CPU訪問
統(tǒng)一編址:在這種編址方式中,I/O端口地址和主存單元的地址是統(tǒng)一編址的,把I/O接口中的端口作為主存單元一樣進(jìn)行訪問,不設(shè)置專門的I/O指令。當(dāng)CPU訪問外設(shè)時,把分配給該外設(shè)的地址碼送到地址總線上,然后各外設(shè)接口中的地址譯碼器對地址碼進(jìn)行譯碼,如果符合就是CPU指定的外設(shè)寄存器
(2)獨(dú)立編址方式的端口訪問
Intel 80X86的I/O地址空間由64K個獨(dú)立編址的8位端口組成。兩個連續(xù)的8位端口可作為16位端口處理;4個連續(xù)的8位端口可作為32位端口處理。因此,I/O地址空間最多可提供64K個8位端口、32K個16位端口、16K個32位端口
80X86的專用I/O指令I(lǐng)N和OUT有直接尋址和間接尋址兩種類型。直接尋址I/O端口的尋址范圍為00~FFH,最多為256個端口地址
間接尋址由DX寄存器間接給出I/O端口地址,DX寄存器長16位,尋址范圍為0000~FFFFH,最多可尋址64K個端口地址。
CPU一次可實(shí)現(xiàn)字節(jié)(8位)、字(16位)或雙字(32位)的數(shù)據(jù)傳送。32位的端口地址應(yīng)對準(zhǔn)可被4整除的地址;16位端口應(yīng)對準(zhǔn)偶地址;8位端口可定位在偶地址,也可定位在奇地址
1.4、輸入/輸出信息傳送控制方式
外設(shè)與主機(jī)之間的信息傳送控制方式,經(jīng)歷了由低級到高級、由簡單到復(fù)雜、由集中管理到各部件分散管理的發(fā)展過程,按其發(fā)展的先后順序和主機(jī)與外設(shè)并行工作的程度,可以分為四種:
(一般嵌入式系統(tǒng)外設(shè)與主存間的數(shù)據(jù)傳輸方式)
程序查詢方式:(CPU效率低)程序直接查詢控制方式,這是主機(jī)與外設(shè)間進(jìn)行信息交換的最簡單的方式,輸入和輸出完全是通過CPU執(zhí)行程序來完成的。一旦某一外設(shè)被選中并啟動之后,主機(jī)將查詢這個外設(shè)的某些狀態(tài)位,看其是否準(zhǔn)備就緒。若外設(shè)未準(zhǔn)備就緒,主機(jī)將再次查詢;若外設(shè)已準(zhǔn)備就緒,則執(zhí)行一次I/O操作
程序中斷方式:(不占用CPU)在主機(jī)啟動外設(shè)后,無需等待查詢,而是繼續(xù)執(zhí)行原來的程序,外設(shè)在做好輸入/輸出準(zhǔn)備時,向主機(jī)發(fā)中斷請求,主機(jī)接到請求后就暫時中止原來執(zhí)行的程序,轉(zhuǎn)去執(zhí)行中斷服務(wù)程序?qū)ν獠空埱筮M(jìn)行處理,在中斷處理完畢后返回原來的程序繼續(xù)執(zhí)行。程序中斷不僅適用于外部設(shè)備的輸入輸出操作,也適用于對外界發(fā)生的隨機(jī)事件的處理
直接存儲器存?。―MA)方式:DMA方式是在主存和外設(shè)之間開辟直接的數(shù)據(jù)通路,可以進(jìn)行基本上不需要CPU介入的在主存和CPU之間的信息傳送,這樣不僅保證CPU的高效率,而且能滿足高速外設(shè)的需要。DMA方式只能進(jìn)行簡單的數(shù)據(jù)傳送操作,在數(shù)據(jù)塊的傳送的開始和結(jié)束時還需要CPU和中斷系統(tǒng)進(jìn)行預(yù)處理和后處理
I/O通道控制方式:在系統(tǒng)中設(shè)有通道控制部件,每個通道掛若干外設(shè),主機(jī)在執(zhí)行I/O操作時,只需啟動有關(guān)通道,通道將執(zhí)行通道程序,從而完成I/O操作。通道是一個具有特殊功能的處理器,它能獨(dú)立地執(zhí)行通道程序,產(chǎn)生相應(yīng)的控制信號,實(shí)現(xiàn)對外設(shè)的統(tǒng)一管理和外設(shè)與主存之間的數(shù)據(jù)傳送。但它不是一個完全獨(dú)立的處理器,它要在CPU的I/O指令指揮下才能啟動、停止或改變工作狀態(tài),是從屬于CPU的一個專用處理器

2、程序查詢方式
基本思想:由CPU執(zhí)行一段輸入/輸出程序來實(shí)現(xiàn)主機(jī)與外設(shè)之間的數(shù)據(jù)傳送
工作流程:
預(yù)置傳送參數(shù):在傳送數(shù)據(jù)之前,由CPU執(zhí)行一段初始化程序,預(yù)置傳送參數(shù)。傳送參數(shù)包括存儲數(shù)據(jù)的主存緩沖區(qū)首地址和傳送數(shù)據(jù)的個數(shù)
向外設(shè)接口發(fā)出命令字:當(dāng)CPU選中某臺外設(shè)時,執(zhí)行輸出指令向外設(shè)接口發(fā)出命令字啟動外設(shè),為接受數(shù)據(jù)或發(fā)送數(shù)據(jù)做應(yīng)有的準(zhǔn)備
從外設(shè)接口取回狀態(tài)字:CPU執(zhí)行輸入命令,從外設(shè)接口中取回狀態(tài)字并進(jìn)行測試,判斷數(shù)據(jù)傳送是否可以進(jìn)行
查詢外設(shè)標(biāo)志:CPU不斷查詢狀態(tài)標(biāo)志。如果外設(shè)沒有準(zhǔn)備就緒,CPU就踏步進(jìn)行等待,一直到外設(shè)準(zhǔn)備就緒,并發(fā)出外設(shè)準(zhǔn)備就緒信號為止
傳送數(shù)據(jù):輸入時,CPU執(zhí)行輸入指令,從外設(shè)接口的數(shù)據(jù)緩沖寄存器中接受數(shù)據(jù);輸出時,CPU執(zhí)行輸出指令,將數(shù)據(jù)寫入外設(shè)接口的數(shù)據(jù)緩沖寄存器
修改傳送參數(shù):每進(jìn)行一次數(shù)據(jù)傳送之后必須要修改傳送參數(shù),其中包括主存緩沖區(qū)地址加1,傳送個數(shù)計(jì)數(shù)器減1
判斷傳送是否結(jié)束:如果傳送個數(shù)計(jì)數(shù)器不為0,則轉(zhuǎn)第3步,繼續(xù)傳送,直到傳送個數(shù)計(jì)數(shù)器為0,表示傳送結(jié)束
3、中斷系統(tǒng)和程序中斷方式
3.1、中斷的基本概念
    (1)中斷的提出
基本思想:CPU在程序中安排好在某一時刻啟動某一臺外設(shè),然后CPU繼續(xù)執(zhí)行原來程序,一旦外設(shè)完成數(shù)據(jù)傳送的準(zhǔn)備工作時,便主動向CPU發(fā)出一個中斷請求,請求CPU為自己服務(wù)。在可以響應(yīng)中斷的條件下,CPU暫時中止正在執(zhí)行的程序,轉(zhuǎn)去執(zhí)行中斷服務(wù)程序?yàn)橹袛嗾埱笳叻?wù),在中斷服務(wù)程序中完成一次主機(jī)與外設(shè)之間的數(shù)據(jù)傳送,傳送完成后,CPU仍然返回原來的程序,從斷點(diǎn)處繼續(xù)執(zhí)行
中斷的處理過程實(shí)際是程序的切換過程,即從現(xiàn)行程序切換到中斷服務(wù)程序,再從中斷服務(wù)程序返回到現(xiàn)行程序。CPU每次執(zhí)行中斷服務(wù)程序前總要保護(hù)斷點(diǎn)、保存現(xiàn)場,執(zhí)行完中斷服務(wù)程序返回現(xiàn)行程之前又要恢復(fù)現(xiàn)場、恢復(fù)斷點(diǎn)
中斷系統(tǒng)是計(jì)算機(jī)實(shí)現(xiàn)中斷功能的軟、硬件總稱。一般在CPU中配置中斷機(jī)構(gòu),在外設(shè)接口中配置中斷控制器,在軟件上設(shè)置上相應(yīng)的中斷服務(wù)程序
(2)程序中斷與調(diào)用子程序的區(qū)別
子程序的執(zhí)行是由程序員事先安排好的,而中斷服務(wù)程序的執(zhí)行則是由隨機(jī)的中斷事件引起的
子程序的執(zhí)行受到主程序或上層子程序的控制,而中斷服務(wù)程序一般與被中斷的現(xiàn)行程序毫無關(guān)系
不存在同時調(diào)用多個子程序的情況,而有可能發(fā)生多個外設(shè)同時請求CPU為自己服務(wù)的情況
3.2、中斷請求
中斷源是指中斷請求的來源,即引起計(jì)算機(jī)中斷的事件。通常,一個計(jì)算機(jī)允許有多個中斷源。由于每個中斷源向CPU發(fā)出中斷請求的時間是隨機(jī)的,為了記錄中斷事件并區(qū)分不同的中斷源,可采用具有存儲功能的觸發(fā)器來記錄中斷源,這個觸發(fā)器稱為中斷請求觸發(fā)器(INTR)。當(dāng)一個中斷源有中斷請求時,其相應(yīng)的中斷請求觸發(fā)器被置1狀態(tài),表示該中斷源向CPU發(fā)出中斷請求
3.3、中斷響應(yīng)
(1)CPU響應(yīng)中斷的條件
CPU接收到中斷請求信號
CPU允許中斷:CPU內(nèi)部有一個中斷允許觸發(fā)器(EINT),只有當(dāng)EINT=1時,CPU才可以響應(yīng)中斷源的請求。通常,中斷允許觸發(fā)器由開中斷指令來置位,由關(guān)中斷指令使其復(fù)位
一條指令執(zhí)行完畢:這是CPU響應(yīng)中斷請求的時間限制條件。一般情況下,CPU在一條指令執(zhí)行完畢且沒有更緊迫的任務(wù)時才能響應(yīng)中斷請求
(2)中斷隱指令
CPU響應(yīng)中斷之后,經(jīng)過某些操作,轉(zhuǎn)去執(zhí)行中斷服務(wù)程序。這些操作是由硬件直接實(shí)現(xiàn)的,我們把它稱為中斷隱指令。中斷隱指令并不是指令系統(tǒng)中的一條真正的指令,它沒有操作碼,所以中斷隱指令是一種不允許、也不可能為用戶使用的特殊指令。其所完成的操作主要有:
保存斷點(diǎn):為了保證在中斷服務(wù)程序執(zhí)行完畢能正確返回原來的程序,必須將原來程序的斷點(diǎn)(即程序計(jì)數(shù)器PC的內(nèi)容)保存起來。斷點(diǎn)可以壓入棧,也可以存入主存的特定單元中
暫不允許中斷:在中斷服務(wù)程序中,為了保護(hù)中斷現(xiàn)場(即CPU的主要寄存器)期間不被新的中斷所打斷,必須要關(guān)中斷,從而保證被中斷的程序在中斷服務(wù)程序執(zhí)行完畢之后能接著正確地執(zhí)行下去
引出中斷服務(wù)程序:引出中斷服務(wù)的實(shí)質(zhì)是取出中斷服務(wù)程序的入口地址送程序計(jì)數(shù)器(PC)
(3)中斷周期
以上幾個基本操作在不同的計(jì)算機(jī)系統(tǒng)中的處理方法是各異的。通常,在組合邏輯控制的計(jì)算機(jī)中,專門設(shè)置了一個中斷周期來完成中斷隱指令的任務(wù)。在微程序控制的計(jì)算機(jī)中,則專門安排有一段微程序來完成中斷隱指令的這些操作
假設(shè)將斷點(diǎn)存至主存的0號單元,且采用硬件向量中斷法尋找中斷服務(wù)程序的入口地址,則在中斷周期需完成如下操作:
將特定地址0送至存儲器地址寄存器,記作0——>MAR
將PC的內(nèi)容送至MDR,記作(PC)——>MDR
向主存發(fā)寫命令,啟動存儲器做寫操作,記作Write
將MDR的內(nèi)容通過數(shù)據(jù)總線寫入到MAR所指示的主存單元(0號)中,記作MDR——>M(MAR)
向量地址形成部件的輸出送至PC,為進(jìn)入中斷服務(wù)程序做準(zhǔn)備,記作向量地址——>PC
關(guān)中斷,將中斷允許觸發(fā)器清0,記作0——>EINT
3.4、硬件向量中斷法
當(dāng)CPU響應(yīng)某一中斷請求時,硬件能自動形成并找出與該中斷源對應(yīng)的中斷服務(wù)程序的入口地址
向量中斷過程:當(dāng)中斷源向CPU發(fā)出中斷請求信號之后,CPU進(jìn)行一定的判優(yōu)處理,若決定響應(yīng)這個中斷請求,則向中斷源發(fā)出中斷響應(yīng)信號INTA,中斷源接到INTA信號后就通過自己的向量地址形成部件向CPU發(fā)送向量地址,CPU接收向量地址之后就可轉(zhuǎn)入相應(yīng)的中斷服務(wù)程序
向量地址通常有兩種情況:向量地址是中斷服務(wù)程序的入口地址,向量地址是中斷向量表的指針
3.5、中斷現(xiàn)場的保護(hù)和恢復(fù)
中斷現(xiàn)場指的是發(fā)生中斷時CPU的主要狀態(tài),其中最重要的是斷點(diǎn),另外還有一些通用寄存器的狀態(tài)。之所以需要保護(hù)和恢復(fù)現(xiàn)場的原因是因?yàn)镃PU要先后執(zhí)行兩個完全不同程序(現(xiàn)行程序),必須進(jìn)行兩種程序運(yùn)行狀態(tài)的轉(zhuǎn)換。一般來說,在中斷隱指令中,CPU硬件將自動保存斷點(diǎn),有些計(jì)算機(jī)還自動保存程序狀態(tài)寄存器的內(nèi)容。但是,在許多應(yīng)用中,要保證中斷返回后原來的程序能正確地繼續(xù)運(yùn)行,僅保存這一二個寄存器的內(nèi)容是不夠的。為此,在中斷服務(wù)程序開始時,應(yīng)由軟件去保存那些硬件沒有保存,而在中斷服務(wù)程序中又可能用到的寄存器的內(nèi)容,在中斷返回之前,這些內(nèi)容還應(yīng)該被恢復(fù)
現(xiàn)場的保護(hù)和恢復(fù)方法不外乎有純軟件和軟、硬件相結(jié)合兩種。純軟件方法是在CPU響應(yīng)中斷后,用一系列傳送指令把要保存的現(xiàn)場參數(shù)傳送到主存某些單元中去,當(dāng)中斷服務(wù)程序結(jié)束后,再采用傳送指令進(jìn)行相反方向的傳送。軟硬件保護(hù)現(xiàn)場往往是和向量中斷在一起使用的。先把斷點(diǎn)和程序狀態(tài)字自動壓入堆棧,這就是保護(hù)舊現(xiàn)場;接著根據(jù)中斷源送來的向量地址自動取出中斷服務(wù)程序入口地址和新的程序狀態(tài)字,這就是建立新現(xiàn)場;最后由一些指令實(shí)現(xiàn)對必要的通用寄存器的保護(hù)?;謴?fù)現(xiàn)場是保護(hù)現(xiàn)場的逆處理
3.6、多重中斷與中斷屏蔽
    (1)中斷嵌套
要使計(jì)算機(jī)具有多重中斷的能力,首先要能保護(hù)多個斷點(diǎn),而且先發(fā)生的中斷請求的斷點(diǎn),先保護(hù)后恢復(fù);后發(fā)生的中斷請求的斷點(diǎn),后保護(hù)先恢復(fù)。堆棧的后進(jìn)先出特點(diǎn)正好滿足多重中斷這一先后次序的需要。同時,在CPU進(jìn)入某一中斷服務(wù)程序之后,系統(tǒng)必須處于開中斷狀態(tài),否則中斷嵌套是不可能實(shí)現(xiàn)的
(2)允許和禁止中斷
允許還是禁止中斷是用CPU中的中斷允許觸發(fā)器控制的,當(dāng)中斷允許觸發(fā)器(EINT)被置1,則允許中斷;當(dāng)中斷允許觸發(fā)器被置0,則禁止中斷
下列情況應(yīng)開中斷:
在中斷服務(wù)程序執(zhí)行完畢,恢復(fù)中斷現(xiàn)場后
在多重中斷的情況下,保護(hù)中斷現(xiàn)場后
下列情況應(yīng)該關(guān)中斷:
當(dāng)響應(yīng)某一級中斷請求,不再允許被其他中斷請求打斷時
在中斷服務(wù)程序的保護(hù)和恢復(fù)現(xiàn)場之前
(3)中斷屏蔽
中斷源發(fā)出中斷請求之后,這個中斷請求不一定能真的送到CPU去,可以用程序方式有選擇地封鎖部分中斷,這就是中斷屏蔽。如果給每個中斷源都相應(yīng)地配備一個中斷屏蔽觸發(fā)器MASK,則每個中斷請求信號在送往判優(yōu)電路之前,還要受到屏蔽觸發(fā)器的控制。在中斷接口電路中,多個中斷屏蔽觸發(fā)器組成一個屏蔽寄存器,其內(nèi)容稱為屏蔽字,由程序來設(shè)置。屏蔽字的某一位的狀態(tài)將成為本中斷源能否真正發(fā)出中斷請求信號的必要條件之一。這樣就可以實(shí)現(xiàn)CPU對中斷處理的控制,使中斷能在系統(tǒng)中合理協(xié)調(diào)地進(jìn)行。用程序設(shè)置的方法將屏蔽寄存器中的某一位置1,則對應(yīng)的中斷請求被封鎖,無法去參加排隊(duì)判優(yōu)
如一個中斷系統(tǒng)有16個中斷源,每一個中斷源按其優(yōu)先級別賦予一個屏蔽字,屏蔽字與中斷源的優(yōu)先級別是一一對應(yīng)的。第一級中斷源的屏蔽字是16個1,它的優(yōu)先級別最高,禁止本級和更低級的中斷請求,第16級中斷源的屏蔽字只有第16位為1,其余各位為0,它的優(yōu)先級別最低,僅禁止本級的中斷請求,而對其他高級的中斷請求全部開放
3.7、中斷全過程
中斷全過程是指的是從中斷源發(fā)出中斷請求開始,CPU響應(yīng)這個請求,現(xiàn)行程序被中斷,轉(zhuǎn)至中斷服務(wù)程序,直到中斷服務(wù)程序執(zhí)行完畢,CPU再返回原來的程序繼續(xù)執(zhí)行的整個過程
大體上可以把中斷全過程分為5個階段:即中斷請求、中斷判優(yōu)、中斷響應(yīng)、中斷處理和中斷返回
中斷處理就是執(zhí)行中斷服務(wù)程序,這是中斷系統(tǒng)的核心。中斷處理過程基本上由三部分組成,第一部分為準(zhǔn)備部分,其基本功能是保護(hù)現(xiàn)場,對于非向量中斷方式則需要確定中斷源,最后開放中斷,允許更高級的中斷請求打斷低級的中斷服務(wù)程序;第二部分為處理部分,即真正執(zhí)行具體的為某個中斷源服務(wù)的中斷服務(wù)程序;第三部分為結(jié)尾部分,首先要關(guān)中斷,以防止在恢復(fù)現(xiàn)場過程中被新的中斷請求打斷,接著恢復(fù)現(xiàn)場,然后開放中斷,以便返回原來的程序后可響應(yīng)其他的中斷請求。中斷服務(wù)程序的最后一條指令一定是中斷返回指令
4、DMA方式
4.1、DMA方式的基本概念
直接存儲器訪問方式是在外設(shè)和主存之間開辟一條“直接數(shù)據(jù)通道”,在不需要CPU干涉也需要軟件介入的情況下在兩者之間進(jìn)行的高速數(shù)據(jù)傳送方式。在DMA傳送方式中,對數(shù)據(jù)傳送過程進(jìn)行控制的硬件稱為DMA控制器。當(dāng)外設(shè)需要進(jìn)行數(shù)據(jù)傳送時,通過DMA控制器向CPU提出DMA傳送請求,CPU響應(yīng)之后將讓出系統(tǒng)總線,由DMA控制器接管總線進(jìn)行數(shù)據(jù)傳送
DMA方式的特點(diǎn):
它使主存與CPU的固定聯(lián)系脫鉤,主存即可以被CPU訪問,又可被外設(shè)訪問
在數(shù)據(jù)塊傳送時,主存地址的確定、傳送數(shù)據(jù)的技術(shù)都由硬件電路直接實(shí)現(xiàn)
主存中要開辟專用緩沖區(qū),及時供給和接受外設(shè)的數(shù)據(jù)
DMA傳送速度快,CPU與外設(shè)并行工作,提高了系統(tǒng)的效率
DMA在傳送開始前要通過程序進(jìn)行預(yù)處理,結(jié)束后要通過中斷方式進(jìn)行后處理
DMA和中斷的區(qū)別:
中斷方式是程序切換,需要保護(hù)和恢復(fù)現(xiàn)場,而DMA方式除了開始和結(jié)尾時,不占用CPU的任何資源
對中斷請求的響應(yīng)時間只能發(fā)生在每條指令執(zhí)行完畢時;而對DMA請求的響應(yīng)時間可以發(fā)生在每個機(jī)器周期結(jié)束時
中斷傳送過程需要CPU的干涉;而DMA傳送過程不需要CPU的干涉,故數(shù)據(jù)傳輸速率非常高,適合于高速外設(shè)的成組數(shù)據(jù)傳送
DMA請求的優(yōu)先級高于中斷請求
中斷方式具有對異常事件的處理能力,而DMA方式僅局限于完成傳送數(shù)據(jù)塊的I/O操作
DMA方式的應(yīng)用:DMA方式一般應(yīng)用于主存與高速外設(shè)間的簡單數(shù)據(jù)傳送。高速外設(shè)如磁盤、磁帶、光盤等輔助存儲器以及其他帶有局部存儲器的外設(shè)、通信設(shè)備等
4.2、DMA傳送方法與傳送過程
(1)DMA傳送方法
DMA控制器與CPU通常采用以下三種方法使用主存:
CPU停止訪問主存法:DMA請求信號迫使CPU讓出總線控制權(quán),CPU在現(xiàn)行及其周期執(zhí)行完畢后,使其數(shù)據(jù)、地址總線處于三態(tài),并輸出總線批準(zhǔn)信號。每次DMA請求獲得批準(zhǔn),DMA控制器獲得總線控制權(quán)以后,連續(xù)占用若干個存取周期進(jìn)行成組連續(xù)的數(shù)據(jù)傳送,直至批量傳送結(jié)束,DMA控制器才把總線控制權(quán)交回CPU
存儲器分時法:把原來的一個存取周期分成兩個時間片,一片分給CPU,一片分給DMA,使CPU和DMA交替地訪問主存
周期挪用法:當(dāng)外設(shè)沒有DMA請求時,CPU按程序要求訪問主存;一旦外設(shè)有DMA請求并獲得CPU批準(zhǔn)后,CPU讓出一個周期的總線控制權(quán),由DMA控制器控制系統(tǒng)總線,挪用一個存取周期進(jìn)行一次數(shù)據(jù)傳送,傳送一個字或一個字節(jié);然后DMA控制器將總線控制權(quán)交回CPU,CPU繼續(xù)進(jìn)行自己的操作,等待下一個DMA請求的到來。重復(fù)上述過程,直至數(shù)據(jù)塊傳送完畢
(2)DMA傳送過程
DMA的傳送過程可分為三個階段:DMA傳送前的預(yù)處理、數(shù)據(jù)傳送和傳送后的結(jié)束處理
DMA預(yù)處理:CPU首先執(zhí)行幾條I/O指令,用于測試外設(shè)的狀態(tài)、向DMA控制器的有關(guān)寄存器置初值、設(shè)置傳送方式、啟動外部設(shè)備等
在這些工作完成之后,CPU繼續(xù)執(zhí)行原來的程序,在外設(shè)準(zhǔn)備好發(fā)送的數(shù)據(jù)或接受的數(shù)據(jù)以處理完畢時,外設(shè)向DMA控制器發(fā)DMA請求,再由DMA控制器向CPU發(fā)總線請求
數(shù)據(jù)傳送:DMA的數(shù)據(jù)傳送可以以字節(jié)為基本單位,也可以以數(shù)據(jù)塊為基本單位。對于以數(shù)據(jù)塊為單位的傳送,DMA控制器占用總線后的數(shù)據(jù)輸入和輸出操作都是通過循環(huán)來實(shí)現(xiàn)的
DMA后處理:當(dāng)傳送長度計(jì)數(shù)器計(jì)到0時,DMA操作結(jié)束,DMA控制器向CPU發(fā)中斷請求,CPU停止原來程序的執(zhí)行,轉(zhuǎn)去中斷服務(wù)程序做DMA結(jié)束處理工作
5、通道工作方式
5.1、通道的基本概念
從邏輯結(jié)構(gòu)上講,通道控制方式具有四級連接:主機(jī)——>通道——>設(shè)備控制器——>外部設(shè)備
通道是一種高級的I/O控制部件,它在一定的硬件基礎(chǔ)上利用軟件手段實(shí)現(xiàn)對I/O的控制和傳送,更多的免去了CPU的介入,從而使主機(jī)和外設(shè)的并行工作程度更高。當(dāng)然,通道不能完全脫離CPU,它還要受到CPU的管理,比如啟動、停止等,而且通道還應(yīng)該向CPU報告自己的狀態(tài),以便CPU決定下一步的處理
通道大致具有以下幾個方面的功能:
接受CPU的I/O指令,按指令要求與指定的外設(shè)進(jìn)行聯(lián)系
從主存取出屬于該通道程序的通道指令,經(jīng)譯碼后向設(shè)備控制器和設(shè)備發(fā)送各種命令
實(shí)施主存和外設(shè)間的數(shù)據(jù)傳送,提供數(shù)據(jù)中間緩存的空間以及指示數(shù)據(jù)存放的主存地址和傳送的數(shù)據(jù)量
從外設(shè)獲得設(shè)備的狀態(tài)信息,形成并保存通道本身的狀態(tài)信息,根據(jù)要求將這些狀態(tài)信息送到主存的指定單元,供CPU使用
將外設(shè)的中斷請求和通道本身的中斷請求按次序及時報告CPU
設(shè)備控制器的功能:通道通過執(zhí)行通道程序來控制設(shè)備控制器進(jìn)行數(shù)據(jù)傳送操作,并以通道狀態(tài)字來接受設(shè)備控制器反饋回來的外部設(shè)備狀態(tài)。因此,設(shè)備控制器就是通道對外部設(shè)備實(shí)現(xiàn)傳送控制的執(zhí)行機(jī)構(gòu)。設(shè)備控制器的具體任務(wù)如下:
從通道接受控制信號,控制外部設(shè)備完成所要求的操作
向通道反饋外部設(shè)備的狀態(tài)
將外部設(shè)備的各種不同信號轉(zhuǎn)換為通道能識別的標(biāo)準(zhǔn)信號
5.2、通道程序
在采用通道結(jié)構(gòu)的計(jì)算機(jī)系統(tǒng)中,與輸入輸出有關(guān)的指令分為兩級
CPU執(zhí)行的I/O指令:在采用通道結(jié)構(gòu)的系統(tǒng)中,這種I/O指令比較簡單,它并不直接控制具體的I/O操作,只是負(fù)責(zé)通道的啟動和停止,查詢通道或設(shè)備的狀態(tài),控制通道完成I/O操作
通道執(zhí)行的通道指令:通道指令也就是通道命令字,用它來編制通道程序,并由管理程序存放在主存的任何地方。在主CPU啟動指定通道后,通道將執(zhí)行通道程序來實(shí)現(xiàn)具體的I/O操作,直到組成通道指令程序的全部通道命令字執(zhí)行完畢時,這次I/O傳送就算完成了
5.3、通道工作過程
通道完成一次數(shù)據(jù)傳輸?shù)闹饕^程分為如下三步:
在用戶程序中使用訪管指令進(jìn)入管理程序,由CPU通過管理程序組織一個通道程序,并啟動通道
通道執(zhí)行CPU為它組織的通道程序,完成指定的數(shù)據(jù)輸入輸出工作
通道程序結(jié)束后向CPU發(fā)中斷請求,CPU響應(yīng)這個中斷請求后,第二次進(jìn)入操作系統(tǒng),調(diào)用管理程序?qū)χ袛嗾埱筮M(jìn)行處理


本文來自CSDN博客,轉(zhuǎn)載請標(biāo)明出處:http://blog.csdn.net/hbrqlpf/archive/2008/04/14/2290726.aspx

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    国产午夜精品在线免费看| 免费精品国产日韩热久久| 91后入中出内射在线| 日韩欧美91在线视频| 日韩女优视频国产一区| 欧美日韩精品综合在线| 国产精品不卡一区二区三区四区| 高清一区二区三区四区五区| 久久综合亚洲精品蜜桃| 国产午夜福利一区二区| 在线日韩中文字幕一区| 亚洲欧洲在线一区二区三区| 久久午夜福利精品日韩| 欧美精品亚洲精品日韩精品| 丰满熟女少妇一区二区三区| 国产精品欧美在线观看| 亚洲中文在线男人的天堂| 精品一区二区三区三级视频| 色综合久久六月婷婷中文字幕| 日本熟女中文字幕一区| 欧美一区二区在线日韩| 日韩欧美国产亚洲一区| 国产一区二区不卡在线视频| 午夜亚洲少妇福利诱惑| 亚洲中文字幕高清视频在线观看| 国产精品欧美激情在线播放| 久久99亚洲小姐精品综合| 亚洲视频在线观看你懂的| 亚洲最新av在线观看| 国产一区二区三区免费福利| 日韩欧美三级中文字幕| 午夜免费精品视频在线看| 国产精品免费视频视频| 亚洲精品熟女国产多毛| 婷婷开心五月亚洲综合| 国产又大又硬又粗又湿| 国产91人妻精品一区二区三区| 亚洲最新中文字幕一区| 欧美不雅视频午夜福利| 国产美女精品人人做人人爽| 国产欧美另类激情久久久|