第八章 IO方式_第1頁(yè)
第八章 IO方式_第2頁(yè)
第八章 IO方式_第3頁(yè)
第八章 IO方式_第4頁(yè)
第八章 IO方式_第5頁(yè)
已閱讀5頁(yè),還剩67頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、1計(jì)算機(jī)組成原理計(jì)算機(jī)組成原理第八章第八章 輸入輸出系統(tǒng)輸入輸出系統(tǒng)28.1 I/O接口接口3I/O接口的概念接口的概念“接口接口”可以看成是兩個(gè)系統(tǒng)或兩個(gè)部件之間的可以看成是兩個(gè)系統(tǒng)或兩個(gè)部件之間的交接部分,它既可以是兩種硬件之間的連接電路,交接部分,它既可以是兩種硬件之間的連接電路,也可以是兩個(gè)軟件之間的共同邏輯邊界。也可以是兩個(gè)軟件之間的共同邏輯邊界。I/O接口通常是指主機(jī)與外部設(shè)備之間設(shè)置的一接口通常是指主機(jī)與外部設(shè)備之間設(shè)置的一個(gè)硬件電路及其相應(yīng)的軟件控制。個(gè)硬件電路及其相應(yīng)的軟件控制。設(shè)置接口的理由:設(shè)置接口的理由:1. 設(shè)備選擇設(shè)備選擇2. 數(shù)據(jù)緩沖數(shù)據(jù)緩沖3. 電平轉(zhuǎn)換電平轉(zhuǎn)換

2、4. 在在CPU和外設(shè)之間傳送命令和外設(shè)之間傳送命令5. 監(jiān)視設(shè)備狀態(tài)監(jiān)視設(shè)備狀態(tài)4總線連接方式的總線連接方式的I/O接口電路接口電路I/OI/O接口接口I/OI/O接口接口設(shè)備設(shè)備設(shè)備設(shè)備數(shù)據(jù)線數(shù)據(jù)線狀態(tài)線狀態(tài)線命令線命令線設(shè)備選擇線(地址線)設(shè)備選擇線(地址線)I/OI/O總線總線5I/O接口的功能接口的功能1. 選址功能(設(shè)備選擇)選址功能(設(shè)備選擇)2. 傳送命令的功能傳送命令的功能命令寄存器命令寄存器命令譯碼器命令譯碼器3. 傳送數(shù)據(jù)的功能傳送數(shù)據(jù)的功能數(shù)據(jù)緩沖寄存器數(shù)據(jù)緩沖寄存器4. 反映反映I/O設(shè)備工作狀態(tài)的功能設(shè)備工作狀態(tài)的功能暫停、準(zhǔn)備就緒、正在準(zhǔn)備等狀態(tài)暫停、準(zhǔn)備就緒、正

3、在準(zhǔn)備等狀態(tài)6I/O接口的基本組成接口的基本組成CPUCPU數(shù)據(jù)緩沖數(shù)據(jù)緩沖寄存器寄存器DBRDBR設(shè)備狀態(tài)設(shè)備狀態(tài)標(biāo)記標(biāo)記 控制邏輯電路設(shè)備選擇設(shè)備選擇電路電路命令寄存器命令寄存器和命令譯碼器和命令譯碼器 外外 部部 設(shè)設(shè) 備備數(shù)據(jù)線數(shù)據(jù)線地址線地址線狀態(tài)線狀態(tài)線命令線命令線數(shù)據(jù)線數(shù)據(jù)線狀態(tài)狀態(tài)命令命令7接口(接口(interface)和端口()和端口(port) 端口寄存器組(數(shù)據(jù)、控制、狀態(tài)端口寄存器組(數(shù)據(jù)、控制、狀態(tài)) 接口接口N個(gè)端口控制邏輯個(gè)端口控制邏輯8接口的類型接口的類型 按數(shù)據(jù)傳送方式分,有并行接口和串行接口。按數(shù)據(jù)傳送方式分,有并行接口和串行接口。 并行接口:一個(gè)字節(jié)或一

4、個(gè)字的所有位同時(shí)傳送,如并行接口:一個(gè)字節(jié)或一個(gè)字的所有位同時(shí)傳送,如Intel 8255Intel 8255。 串行接口:一位一位傳送,如串行接口:一位一位傳送,如Intel 8251Intel 8251。 按功能選擇的靈活性分,有可編程接口和不可編程接口。按功能選擇的靈活性分,有可編程接口和不可編程接口。 可編程接口:可可編程接口:可用程序來(lái)改變或選擇接口的功能和操作方式用程序來(lái)改變或選擇接口的功能和操作方式(如如Intel 8255、Intel 8251)。 不可編程接口:不能用程序來(lái)改變其功能,但可通過(guò)硬連線路邏輯來(lái)不可編程接口:不能用程序來(lái)改變其功能,但可通過(guò)硬連線路邏輯來(lái)實(shí)現(xiàn)不同的

5、功能實(shí)現(xiàn)不同的功能( (如并行接口芯片如并行接口芯片Intel 8212)Intel 8212) 按通用性分類,有通用接口和專用接口。按通用性分類,有通用接口和專用接口。 通用接口:可供多種外設(shè)使用,如通用接口:可供多種外設(shè)使用,如Intel 8255Intel 8255、82128212。 專用接口:為某類外設(shè)或某種用途專門設(shè)計(jì)的,如專用接口:為某類外設(shè)或某種用途專門設(shè)計(jì)的,如Intel 8279Intel 8279可編程可編程鍵盤鍵盤/ /顯示器接口;顯示器接口;Intel 8275Intel 8275可編程可編程CRTCRT控制器接口等??刂破鹘涌诘取?按數(shù)據(jù)傳送的控制方式分類,有程序型

6、接口和按數(shù)據(jù)傳送的控制方式分類,有程序型接口和DMADMA式接口式接口 程序型式接口:用于連接速度較慢的設(shè)備,如鍵盤、打印機(jī)等,如程序型式接口:用于連接速度較慢的設(shè)備,如鍵盤、打印機(jī)等,如Intel 8259Intel 8259。 DMADMA式接口:用于連接高速式接口:用于連接高速I/OI/O設(shè)備,如磁盤、磁帶等常用設(shè)備,如磁盤、磁帶等常用Intel 8237Intel 8237。98.2 程序查詢方式程序查詢方式10程序查詢方式程序查詢方式 由由CPU控制數(shù)據(jù)控制數(shù)據(jù)傳輸?shù)倪^(guò)傳輸?shù)倪^(guò)程程 處理器處理器等等待待,效率,效率低低檢查狀態(tài)標(biāo)記Ready?傳輸數(shù)據(jù)NYReady?N傳輸一個(gè)數(shù)據(jù)修改

7、計(jì)數(shù)、內(nèi)存首址傳送完?NEND設(shè)置計(jì)數(shù)、內(nèi)存首址啟動(dòng)外設(shè)11多個(gè)設(shè)備的查詢多個(gè)設(shè)備的查詢流程示意流程示意12程序查詢方式的接口電路程序查詢方式的接口電路DBR:數(shù)據(jù)緩沖器,用于存放欲傳送的數(shù)據(jù)。:數(shù)據(jù)緩沖器,用于存放欲傳送的數(shù)據(jù)。D為完成觸發(fā)器,為完成觸發(fā)器,B為工作觸發(fā)器。為工作觸發(fā)器。138.3 程序中斷方式程序中斷方式14中斷概念中斷概念 中斷的概念中斷的概念 暫停當(dāng)前程序的執(zhí)行,轉(zhuǎn)而執(zhí)行其他程序,在它們執(zhí)行完成后再暫停當(dāng)前程序的執(zhí)行,轉(zhuǎn)而執(zhí)行其他程序,在它們執(zhí)行完成后再恢復(fù)被中斷程序的執(zhí)行?;謴?fù)被中斷程序的執(zhí)行。 允許一個(gè)處理器允許一個(gè)處理器“同時(shí)同時(shí)”執(zhí)行多個(gè)任務(wù)執(zhí)行多個(gè)任務(wù) 中斷服

8、務(wù)程序中斷服務(wù)程序 I/O中斷只是眾多中斷中的一種。中斷只是眾多中斷中的一種。 中斷的產(chǎn)生中斷的產(chǎn)生 為了提高計(jì)算機(jī)的整機(jī)效率為了提高計(jì)算機(jī)的整機(jī)效率 為了應(yīng)付突發(fā)事件為了應(yīng)付突發(fā)事件 為了實(shí)時(shí)控制的需要為了實(shí)時(shí)控制的需要 為了實(shí)現(xiàn)中斷,計(jì)算機(jī)系統(tǒng)中必須有相應(yīng)的中斷系統(tǒng)或中為了實(shí)現(xiàn)中斷,計(jì)算機(jī)系統(tǒng)中必須有相應(yīng)的中斷系統(tǒng)或中斷機(jī)構(gòu)。斷機(jī)構(gòu)。當(dāng)前程序當(dāng)前程序中斷服中斷服務(wù)程序務(wù)程序15中斷源中斷源 軟中斷:是在程序中人為設(shè)置的。軟中斷:是在程序中人為設(shè)置的。 程序性事故:如定點(diǎn)溢出、浮點(diǎn)溢出等。程序性事故:如定點(diǎn)溢出、浮點(diǎn)溢出等。 硬件故障:插件接觸不良、磁表面損壞、電源硬件故障:插件接觸不良、磁

9、表面損壞、電源掉電等。掉電等。 I/O設(shè)備:設(shè)備:I/O設(shè)備通過(guò)中斷與主機(jī)通信。設(shè)備通過(guò)中斷與主機(jī)通信。 外部事件:如用戶通過(guò)鍵盤來(lái)中斷現(xiàn)行程序。外部事件:如用戶通過(guò)鍵盤來(lái)中斷現(xiàn)行程序。16中斷的作用中斷的作用 CPU與與I/O設(shè)備并行工作設(shè)備并行工作 鍵盤輸入響應(yīng),打印機(jī)輸出鍵盤輸入響應(yīng),打印機(jī)輸出 硬件故障處理:故障硬件故障處理:故障-中斷中斷-自動(dòng)恢復(fù)自動(dòng)恢復(fù) 掉電后自動(dòng)保存當(dāng)前狀態(tài)掉電后自動(dòng)保存當(dāng)前狀態(tài) 人機(jī)通信人機(jī)通信 隨機(jī)干預(yù)機(jī)器工作,如死循環(huán)處理(隨機(jī)干預(yù)機(jī)器工作,如死循環(huán)處理(CtrlBreak) 多任務(wù)切換多任務(wù)切換 時(shí)鐘中斷時(shí)鐘中斷 實(shí)時(shí)處理實(shí)時(shí)處理 對(duì)隨機(jī)事件的快速響應(yīng)對(duì)

10、隨機(jī)事件的快速響應(yīng) 目態(tài)(用戶態(tài))程序與管態(tài)(系統(tǒng)態(tài))程序通信目態(tài)(用戶態(tài))程序與管態(tài)(系統(tǒng)態(tài))程序通信 多處理機(jī)通信多處理機(jī)通信 CPU與與FPU17中斷系統(tǒng)需研究的問(wèn)題中斷系統(tǒng)需研究的問(wèn)題1. 如何確定中斷源如何確定中斷源2. 出現(xiàn)多個(gè)中斷時(shí),中斷響應(yīng)的順序出現(xiàn)多個(gè)中斷時(shí),中斷響應(yīng)的順序3. 中斷響應(yīng)的條件、時(shí)機(jī)中斷響應(yīng)的條件、時(shí)機(jī)條件:處理器允許中斷、該中斷未被屏蔽條件:處理器允許中斷、該中斷未被屏蔽時(shí)機(jī):指令周期結(jié)束檢查是否有中斷請(qǐng)求時(shí)機(jī):指令周期結(jié)束檢查是否有中斷請(qǐng)求4. 現(xiàn)場(chǎng)保護(hù)與恢復(fù)現(xiàn)場(chǎng)保護(hù)與恢復(fù)5. 中斷服務(wù)程序的入口地址中斷服務(wù)程序的入口地址6. 中斷處理過(guò)程中出現(xiàn)中斷如何處

11、理?中斷處理過(guò)程中出現(xiàn)中斷如何處理?18中斷請(qǐng)求標(biāo)記(中斷請(qǐng)求標(biāo)記(中斷源識(shí)別中斷源識(shí)別) 中斷請(qǐng)求觸發(fā)器(中斷請(qǐng)求觸發(fā)器(INTR):用于保存各中):用于保存各中斷源的請(qǐng)求斷源的請(qǐng)求 每個(gè)中斷源一位每個(gè)中斷源一位 可以在可以在CPU內(nèi)部,也可以在外部(內(nèi)部,也可以在外部(8259)12345n掉掉電電過(guò)過(guò)熱熱內(nèi)存內(nèi)存讀寫讀寫校驗(yàn)校驗(yàn)錯(cuò)錯(cuò)階階上上溢溢非非法法除除法法光光電電輸輸入入機(jī)機(jī)打打印印輸輸出出機(jī)機(jī)中斷請(qǐng)求標(biāo)記寄存器中斷請(qǐng)求標(biāo)記寄存器19中斷判優(yōu)邏輯中斷判優(yōu)邏輯 各個(gè)中斷源的優(yōu)先順序是根據(jù)該中斷若得各個(gè)中斷源的優(yōu)先順序是根據(jù)該中斷若得不到及時(shí)響應(yīng),致使機(jī)器工作出錯(cuò)的嚴(yán)重不到及時(shí)響應(yīng),致使

12、機(jī)器工作出錯(cuò)的嚴(yán)重程度而定的。程度而定的。 中斷判優(yōu)可用硬件實(shí)現(xiàn),也可用軟件實(shí)現(xiàn)。中斷判優(yōu)可用硬件實(shí)現(xiàn),也可用軟件實(shí)現(xiàn)。 硬件排隊(duì)硬件排隊(duì) 軟件排隊(duì)軟件排隊(duì)20中斷判優(yōu)邏輯中斷判優(yōu)邏輯硬件排隊(duì)硬件排隊(duì) 硬件排隊(duì)分兩種情況硬件排隊(duì)分兩種情況 第一種叫第一種叫鏈?zhǔn)脚抨?duì)器鏈?zhǔn)脚抨?duì)器,對(duì)應(yīng)中斷請(qǐng)求觸發(fā)器分,對(duì)應(yīng)中斷請(qǐng)求觸發(fā)器分散在各個(gè)接口電路中的情況。散在各個(gè)接口電路中的情況。 第二種是將排隊(duì)器設(shè)在第二種是將排隊(duì)器設(shè)在CPU內(nèi)。內(nèi)。21中斷判優(yōu)邏輯中斷判優(yōu)邏輯硬件排隊(duì)硬件排隊(duì)第一種叫第一種叫鏈?zhǔn)脚抨?duì)器鏈?zhǔn)脚抨?duì)器,對(duì)應(yīng)中斷請(qǐng)求觸發(fā)器分散在各個(gè),對(duì)應(yīng)中斷請(qǐng)求觸發(fā)器分散在各個(gè)接口電路中的情況。接口電路中的情

13、況。優(yōu)先級(jí)別:優(yōu)先級(jí)別:1234123422中斷判優(yōu)邏輯中斷判優(yōu)邏輯硬件排隊(duì)硬件排隊(duì) 第二種是將排隊(duì)器設(shè)在第二種是將排隊(duì)器設(shè)在CPU內(nèi)。內(nèi)。優(yōu)先級(jí)別:優(yōu)先級(jí)別:1234123411INTR11&INTR21&INTR31&INTR4INTP1INTP2INTP3INTP423中斷判優(yōu)邏輯中斷判優(yōu)邏輯軟件排隊(duì)軟件排隊(duì) 軟件排隊(duì)通過(guò)編寫查詢程序?qū)崿F(xiàn)。軟件排隊(duì)通過(guò)編寫查詢程序?qū)崿F(xiàn)。是否是否A A請(qǐng)求?請(qǐng)求?是轉(zhuǎn)轉(zhuǎn)A A的服務(wù)的服務(wù)程序入口地址程序入口地址是否是否B B請(qǐng)求?請(qǐng)求?是轉(zhuǎn)轉(zhuǎn)B B的服務(wù)的服務(wù)程序入口地址程序入口地址是否是否C C請(qǐng)求?請(qǐng)求?是轉(zhuǎn)轉(zhuǎn)C C的服務(wù)的服務(wù)

14、程序入口地址程序入口地址否否否優(yōu)先級(jí)別:優(yōu)先級(jí)別:ABCABC24中斷服務(wù)程序入口地址中斷服務(wù)程序入口地址 硬件向量法(中斷向量法)硬件向量法(中斷向量法) 中斷向量:設(shè)備接口向中斷向量:設(shè)備接口向CPU提供的自身標(biāo)識(shí)提供的自身標(biāo)識(shí) CPU根據(jù)中斷向量檢索中斷根據(jù)中斷向量檢索中斷向量表得到中斷服務(wù)程序的向量表得到中斷服務(wù)程序的入口地址入口地址 不同的中斷(類型)有各自的服務(wù)程序。不同的中斷(類型)有各自的服務(wù)程序。 軟件查詢法:軟件查詢法:用軟件尋找中斷服務(wù)程序入口地用軟件尋找中斷服務(wù)程序入口地址的方法。址的方法。 由程序員(或系統(tǒng))事先確定中斷源對(duì)應(yīng)的入口地由程序員(或系統(tǒng))事先確定中斷源對(duì)

15、應(yīng)的入口地址,不涉及硬件設(shè)備,但查詢時(shí)間比較長(zhǎng)。址,不涉及硬件設(shè)備,但查詢時(shí)間比較長(zhǎng)。FFH0Jmp 400Jmp 300300H400H中斷向量表程序代碼區(qū)25中斷響應(yīng)的條件和時(shí)間中斷響應(yīng)的條件和時(shí)間 條件:條件:處理器允許中斷、該中斷未被屏蔽。處理器允許中斷、該中斷未被屏蔽。 程序狀態(tài)寄存器程序狀態(tài)寄存器PSW、中斷屏蔽寄存器、中斷屏蔽寄存器IMR 時(shí)機(jī):時(shí)機(jī):指令周期結(jié)束檢查是否有中斷請(qǐng)求。指令周期結(jié)束檢查是否有中斷請(qǐng)求。 查詢斷點(diǎn):某些計(jì)算機(jī)中的有些執(zhí)行時(shí)間很長(zhǎng),若查詢斷點(diǎn):某些計(jì)算機(jī)中的有些執(zhí)行時(shí)間很長(zhǎng),若CPU的查詢信號(hào)一律安排在指令周期結(jié)束時(shí)刻,又可的查詢信號(hào)一律安排在指令周期結(jié)

16、束時(shí)刻,又可能因能因CPU發(fā)現(xiàn)中斷請(qǐng)求過(guò)遲而出錯(cuò)。為此,在指令執(zhí)發(fā)現(xiàn)中斷請(qǐng)求過(guò)遲而出錯(cuò)。為此,在指令執(zhí)行過(guò)程中設(shè)置若干個(gè)查詢段點(diǎn),行過(guò)程中設(shè)置若干個(gè)查詢段點(diǎn),CPU在每個(gè)在每個(gè)“查詢斷查詢斷點(diǎn)點(diǎn)”時(shí)刻發(fā)出中斷查詢信號(hào),以便及時(shí)發(fā)現(xiàn)和響應(yīng)中時(shí)刻發(fā)出中斷查詢信號(hào),以便及時(shí)發(fā)現(xiàn)和響應(yīng)中斷請(qǐng)求。斷請(qǐng)求。26中斷隱指令中斷隱指令 中斷隱指令:中斷隱指令:在機(jī)器指令系統(tǒng)中沒(méi)有的指令,它在機(jī)器指令系統(tǒng)中沒(méi)有的指令,它是是CPU在中斷周期內(nèi)由硬件自動(dòng)完成的一條指令。在中斷周期內(nèi)由硬件自動(dòng)完成的一條指令。 中斷隱指令的主要功能:中斷隱指令的主要功能: 保護(hù)程序斷點(diǎn):將當(dāng)前程序計(jì)數(shù)器保護(hù)程序斷點(diǎn):將當(dāng)前程序計(jì)數(shù)器

17、PC的內(nèi)容(程序段的內(nèi)容(程序段點(diǎn))保存到存儲(chǔ)器中,或者存在存儲(chǔ)器的特定單元點(diǎn))保存到存儲(chǔ)器中,或者存在存儲(chǔ)器的特定單元(如(如0號(hào)地址),或者入棧。號(hào)地址),或者入棧。 尋找中斷服務(wù)程序的入口地址尋找中斷服務(wù)程序的入口地址 關(guān)中斷:確保關(guān)中斷:確保CPU響應(yīng)中斷后的所需作的一序列操作響應(yīng)中斷后的所需作的一序列操作不至于有受到新的中斷請(qǐng)求的干擾。不至于有受到新的中斷請(qǐng)求的干擾。27保護(hù)現(xiàn)場(chǎng)和恢復(fù)現(xiàn)場(chǎng)保護(hù)現(xiàn)場(chǎng)和恢復(fù)現(xiàn)場(chǎng) 保護(hù)現(xiàn)場(chǎng):保護(hù)現(xiàn)場(chǎng):包括保護(hù)程序斷點(diǎn)和保護(hù)包括保護(hù)程序斷點(diǎn)和保護(hù)CPU內(nèi)部各寄存器內(nèi)容的現(xiàn)場(chǎng)兩個(gè)方面。內(nèi)部各寄存器內(nèi)容的現(xiàn)場(chǎng)兩個(gè)方面。 程序斷點(diǎn)程序斷點(diǎn)中斷隱指令完成中斷隱指令完

18、成 CPU內(nèi)部寄存器內(nèi)容內(nèi)部寄存器內(nèi)容用戶(或系統(tǒng))用機(jī)器用戶(或系統(tǒng))用機(jī)器指令編程實(shí)現(xiàn)指令編程實(shí)現(xiàn) 恢復(fù)現(xiàn)場(chǎng):恢復(fù)現(xiàn)場(chǎng):在中斷返回前,必須將寄存器在中斷返回前,必須將寄存器的內(nèi)容恢復(fù)到中斷處理前的狀態(tài)。的內(nèi)容恢復(fù)到中斷處理前的狀態(tài)。 由中斷服務(wù)程序完成。由中斷服務(wù)程序完成。28多重中斷多重中斷 在中斷服務(wù)過(guò)程中出現(xiàn)在中斷服務(wù)過(guò)程中出現(xiàn)高級(jí)別中斷高級(jí)別中斷 中斷嵌套中斷嵌套 同級(jí)、低級(jí)不嵌套同級(jí)、低級(jí)不嵌套 多重中斷斷點(diǎn)保護(hù)多重中斷斷點(diǎn)保護(hù) 利用棧先進(jìn)后出的特點(diǎn)利用棧先進(jìn)后出的特點(diǎn) 若將斷點(diǎn)保存在特定存儲(chǔ)單元內(nèi)(例如約定為若將斷點(diǎn)保存在特定存儲(chǔ)單元內(nèi)(例如約定為0號(hào)單號(hào)單元),為保證多重中斷

19、的斷點(diǎn)不會(huì)被覆蓋,需在執(zhí)行元),為保證多重中斷的斷點(diǎn)不會(huì)被覆蓋,需在執(zhí)行“開中斷開中斷”指令之前先將指令之前先將0號(hào)地址單元的內(nèi)容轉(zhuǎn)存至別號(hào)地址單元的內(nèi)容轉(zhuǎn)存至別的地址單元。的地址單元。29實(shí)現(xiàn)多重中斷的條件實(shí)現(xiàn)多重中斷的條件1. 提前設(shè)置提前設(shè)置“開中斷開中斷”指令指令2. 優(yōu)先級(jí)別高的中斷源有權(quán)中斷優(yōu)先級(jí)別低優(yōu)先級(jí)別高的中斷源有權(quán)中斷優(yōu)先級(jí)別低的中斷源。的中斷源。30實(shí)現(xiàn)多重中斷的條件實(shí)現(xiàn)多重中斷的條件1.提前設(shè)置提前設(shè)置“開中斷開中斷”指令指令開中斷的位置不一樣。開中斷的位置不一樣。單重中斷單重中斷多重中斷多重中斷31實(shí)現(xiàn)多重中斷的條件實(shí)現(xiàn)多重中斷的條件2. 優(yōu)先級(jí)優(yōu)先級(jí)別高的別高的中斷

20、源中斷源有權(quán)中有權(quán)中斷優(yōu)先斷優(yōu)先級(jí)別低級(jí)別低的中斷的中斷源。源。32中斷屏蔽技術(shù)中斷屏蔽技術(shù) 禁止響應(yīng)某些中斷禁止響應(yīng)某些中斷 可屏蔽中斷可屏蔽中斷 vs. 不可屏蔽中斷(不可屏蔽中斷(NMI) 可以屏蔽外部中斷,不能屏蔽軟中斷 中斷允許觸發(fā)器中斷允許觸發(fā)器 CPU內(nèi)部?jī)?nèi)部PSW中的一位,可以禁止中的一位,可以禁止CPU響應(yīng)所有可屏蔽響應(yīng)所有可屏蔽中斷中斷 中斷屏蔽寄存器中斷屏蔽寄存器(IMR) 位于中斷接口中,每個(gè)中斷源一位(每位稱作位于中斷接口中,每個(gè)中斷源一位(每位稱作中斷屏蔽觸中斷屏蔽觸發(fā)器發(fā)器) 屏蔽字:屏蔽字:中斷屏蔽寄存器的內(nèi)容中斷屏蔽寄存器的內(nèi)容 中斷響應(yīng)條件:處理器允許中斷、

21、該中斷未被屏蔽中斷響應(yīng)條件:處理器允許中斷、該中斷未被屏蔽33中斷屏蔽技術(shù)中斷屏蔽技術(shù) 中斷屏蔽觸發(fā)器和屏蔽字中斷屏蔽觸發(fā)器和屏蔽字 中斷接口電路中中斷接口電路中完成觸發(fā)器完成觸發(fā)器D、中斷請(qǐng)求觸發(fā)中斷請(qǐng)求觸發(fā)器器INTR和和屏蔽觸發(fā)器屏蔽觸發(fā)器MASK三者之間的關(guān)系。三者之間的關(guān)系。34中斷屏蔽技術(shù)中斷屏蔽技術(shù) 中斷屏蔽觸發(fā)器和屏蔽字中斷屏蔽觸發(fā)器和屏蔽字 具有屏蔽功能的排隊(duì)器具有屏蔽功能的排隊(duì)器11INTR11&INTR21&INTR31&INTR4INTP1INTP2INTP3INTP4MASK1MASK2MASK3MASK435中斷屏蔽技術(shù)中斷屏蔽技術(shù) 中斷屏蔽

22、字可改變優(yōu)先等級(jí)中斷屏蔽字可改變優(yōu)先等級(jí) 例如:例如:5級(jí)中斷高于級(jí)中斷高于6級(jí)中斷,但若在中斷服務(wù)程級(jí)中斷,但若在中斷服務(wù)程序中預(yù)先設(shè)置屏蔽字為序中預(yù)先設(shè)置屏蔽字為000010111111: 這樣,當(dāng)這樣,當(dāng)5、6級(jí)中斷同時(shí)發(fā)生時(shí),級(jí)中斷同時(shí)發(fā)生時(shí),5級(jí)中斷被屏蔽,級(jí)中斷被屏蔽,6級(jí)中斷未被屏蔽,因此,可以優(yōu)先響應(yīng)級(jí)中斷未被屏蔽,因此,可以優(yōu)先響應(yīng)6級(jí)中斷。級(jí)中斷。 當(dāng)處理完當(dāng)處理完6級(jí)中斷后,再設(shè)屏蔽字為級(jí)中斷后,再設(shè)屏蔽字為000001111111,CPU才能響應(yīng)才能響應(yīng)5級(jí)中斷源的請(qǐng)求。級(jí)中斷源的請(qǐng)求。36程序中斷方式接口電路的基本組成程序中斷方式接口電路的基本組成37中斷小結(jié)中斷小結(jié)

23、中斷響應(yīng)過(guò)程中斷響應(yīng)過(guò)程 響應(yīng)過(guò)程響應(yīng)過(guò)程 關(guān)中斷關(guān)中斷 保存斷點(diǎn)和現(xiàn)場(chǎng)保存斷點(diǎn)和現(xiàn)場(chǎng) PC,狀態(tài)(標(biāo)志寄存器),內(nèi)部寄存器. 保存的位置:主存,堆棧 識(shí)別中斷源,得到中斷向量識(shí)別中斷源,得到中斷向量 【開中斷【開中斷】 執(zhí)行中斷服務(wù)執(zhí)行中斷服務(wù) 【關(guān)中斷【關(guān)中斷】 恢復(fù)現(xiàn)場(chǎng)、斷點(diǎn)恢復(fù)現(xiàn)場(chǎng)、斷點(diǎn) 開中斷開中斷 中斷返回中斷返回 軟硬件協(xié)同完成軟硬件協(xié)同完成 中斷隱指令、中斷隱指令、IRET中斷隱指令I(lǐng)RET允許多重中斷允許多重中斷38中斷小結(jié)中斷小結(jié)基本概念基本概念 基本概念基本概念 中斷、中斷優(yōu)先級(jí)、中斷中斷、中斷優(yōu)先級(jí)、中斷屏蔽、中斷嵌套、中斷服屏蔽、中斷嵌套、中斷服務(wù)、中斷向量務(wù)、中斷向

24、量. 中斷的響應(yīng)條件、時(shí)機(jī)中斷的響應(yīng)條件、時(shí)機(jī) 中斷處理過(guò)程中斷處理過(guò)程 中斷向量、保存現(xiàn)場(chǎng)、中斷服務(wù)、恢復(fù)現(xiàn)場(chǎng)、中斷返回 如果中斷頻繁,則效率低如果中斷頻繁,則效率低 高速、批量數(shù)據(jù)傳輸不適高速、批量數(shù)據(jù)傳輸不適用用 某些任務(wù)必須使用某些任務(wù)必須使用(如調(diào)(如調(diào)度)度) 80 x86 memoryI/O接口1DeviceI/O接口nDevice 8259 IRQ1IRQnINTRINTA39外設(shè)工作外設(shè)工作外設(shè)工作外設(shè)工作CPU查詢查詢CPU查詢查詢CPU工作工作CPU工作工作CPU工作工作外設(shè)工作外設(shè)工作CPU工作工作中斷請(qǐng)求中斷請(qǐng)求中斷服中斷服務(wù)務(wù)外設(shè)工作外設(shè)工作CPU工作工作中斷請(qǐng)求中

25、斷請(qǐng)求中斷服中斷服務(wù)務(wù) 與程序查詢方式比較與程序查詢方式比較40中斷服務(wù)程序的一般結(jié)構(gòu)中斷服務(wù)程序的一般結(jié)構(gòu)例如:INTHANDLE PROC FARINTHAND:PUSH AXPUSH BXPUSH CXPOP CXPOP BXPOP AXIRET保護(hù)現(xiàn)場(chǎng)(將需要保護(hù)的寄存器壓入堆棧)STI(可選);恢復(fù)現(xiàn)場(chǎng)IRET中斷處理41示例示例非屏蔽中斷源非屏蔽中斷源中斷邏輯中斷邏輯INTi指令指令單步單步中斷中斷除法除法錯(cuò)誤錯(cuò)誤INTn指令指令CPUINTRNMI可屏蔽中斷源可屏蔽中斷源8259A中斷中斷控制器控制器IR0IR1IR2IR3IR4IR5IR6IR7外外設(shè)設(shè)中中斷斷源源 INTA4

26、28087中斷請(qǐng)求中斷請(qǐng)求RAM奇偶錯(cuò)奇偶錯(cuò)I/O通道檢查錯(cuò)通道檢查錯(cuò) NMI屏蔽寄存器屏蔽位屏蔽寄存器屏蔽位8253定時(shí)器定時(shí)器鍵盤鍵盤未用未用異步通信卡(輔)異步通信卡(輔)異步通信卡(主)異步通信卡(主)硬盤硬盤軟盤軟盤并行打印機(jī)并行打印機(jī)NMIINTR01234567優(yōu)優(yōu)先先級(jí)級(jí)I/O通通道道43程序程序中斷中斷方式方式流程流程448.4 DMA方式方式45DMA方式方式 進(jìn)一步提高效率,避免進(jìn)一步提高效率,避免在在I/O時(shí)占用時(shí)占用CPU 需要解決訪存時(shí)總線沖需要解決訪存時(shí)總線沖突問(wèn)題突問(wèn)題 CPU在總線周期結(jié)束時(shí)在總線周期結(jié)束時(shí)讓出總線讓出總線 時(shí)鐘周期 總線周期 指令周期 批量數(shù)

27、據(jù)傳輸批量數(shù)據(jù)傳輸processormemoryI/O Interface(DMA Controller)I/O device總線周期指令周期時(shí)鐘周期46DMA概念概念 用途:高速外設(shè)直接與用途:高速外設(shè)直接與主存進(jìn)行數(shù)據(jù)傳輸主存進(jìn)行數(shù)據(jù)傳輸 CPU不用暫停現(xiàn)行程序不用暫?,F(xiàn)行程序而為而為I/O服務(wù)服務(wù) 關(guān)鍵問(wèn)題:關(guān)鍵問(wèn)題:DMA接口接口與與CPU之間共享主存,之間共享主存,存在總線爭(zhēng)用、訪存沖存在總線爭(zhēng)用、訪存沖突問(wèn)題突問(wèn)題 CPU暫停方式暫停方式 周期竊取方式周期竊取方式 交替訪問(wèn)方式交替訪問(wèn)方式processormemoryI/O Interface(DMA Controller)I/O

28、 device47CPU暫停方式暫停方式 CPU暫停方式過(guò)程暫停方式過(guò)程 DMA向向CPU申請(qǐng)總線申請(qǐng)總線 CPU暫停暫停 DMA傳輸傳輸 DMA釋放總線釋放總線 CPU繼續(xù)繼續(xù) 并未真正實(shí)現(xiàn)并發(fā)并未真正實(shí)現(xiàn)并發(fā) 回顧:回顧:總線主設(shè)備(總線主設(shè)備(Master)、從設(shè)備()、從設(shè)備(Slaver) 總線仲裁總線仲裁48周期竊取周期竊取/周期挪用(周期挪用(cycle stealing) 當(dāng)當(dāng)I/O設(shè)備發(fā)出設(shè)備發(fā)出DMA請(qǐng)求時(shí),請(qǐng)求時(shí),I/O設(shè)備便挪用或竊取總線占設(shè)備便挪用或竊取總線占用權(quán)一個(gè)或幾個(gè)主存周期。用權(quán)一個(gè)或幾個(gè)主存周期。 有三種情況有三種情況 CPU不訪存(復(fù)雜指令不訪存(復(fù)雜指令

29、mul):):DMA使用使用 CPU正在訪存:正在訪存:DMA等待等待CPU完成(總線周期結(jié)束)完成(總線周期結(jié)束) ,然后獲,然后獲得總線使用權(quán)得總線使用權(quán) CPU與與DMA同時(shí)發(fā)生:同時(shí)發(fā)生:DMA優(yōu)先,竊取一到二個(gè)存取周期(否優(yōu)先,竊取一到二個(gè)存取周期(否則數(shù)據(jù)丟失)則數(shù)據(jù)丟失) 應(yīng)該指出,應(yīng)該指出,I/O設(shè)備每挪用一個(gè)主存周期都要申請(qǐng)總線控設(shè)備每挪用一個(gè)主存周期都要申請(qǐng)總線控制權(quán)、建立總線控制權(quán)和歸還總線控制權(quán)。因此,盡管傳制權(quán)、建立總線控制權(quán)和歸還總線控制權(quán)。因此,盡管傳送一個(gè)字對(duì)主存而言之占用一個(gè)主存周期,但是對(duì)送一個(gè)字對(duì)主存而言之占用一個(gè)主存周期,但是對(duì)DMA接口而言,實(shí)質(zhì)上要占

30、接口而言,實(shí)質(zhì)上要占25個(gè)主存周期。個(gè)主存周期。49CPU暫停方式和周期挪用示意暫停方式和周期挪用示意50交替訪問(wèn)交替訪問(wèn)周期擴(kuò)展周期擴(kuò)展 將將CPU工作周期延長(zhǎng)(或者工作周期延長(zhǎng)(或者CPU的工作周期本身比主存的工作周期本身比主存周期長(zhǎng)得多),分成兩段。下圖為交替訪問(wèn)方式示意圖。周期長(zhǎng)得多),分成兩段。下圖為交替訪問(wèn)方式示意圖。這種方式不需要總這種方式不需要總線使用權(quán)的建立和歸線使用權(quán)的建立和歸還過(guò)程,總線使用權(quán)還過(guò)程,總線使用權(quán)是通過(guò)是通過(guò)C C1 1和和C C2 2分別控分別控制的。實(shí)際上總線便制的。實(shí)際上總線便成了成了C C1 1和和C C2 2控制下的控制下的多路轉(zhuǎn)換器。多路轉(zhuǎn)換器。

31、51DMA接口的功能接口的功能 向向CPU申請(qǐng)申請(qǐng)DMA傳送;傳送; 在在CPU允許允許DMA工作時(shí),處理總線控制權(quán)的轉(zhuǎn)工作時(shí),處理總線控制權(quán)的轉(zhuǎn)交,避免因進(jìn)入交,避免因進(jìn)入DMA工作而影響工作而影響CPU正常活動(dòng)正?;顒?dòng)或引起總線競(jìng)爭(zhēng);或引起總線競(jìng)爭(zhēng); 在在DMA期間管理系統(tǒng)總線,控制數(shù)據(jù)傳送;期間管理系統(tǒng)總線,控制數(shù)據(jù)傳送; 確定數(shù)據(jù)傳送的起始地址和數(shù)據(jù)長(zhǎng)度,修正數(shù)據(jù)確定數(shù)據(jù)傳送的起始地址和數(shù)據(jù)長(zhǎng)度,修正數(shù)據(jù)傳送過(guò)程中的數(shù)據(jù)地址和數(shù)據(jù)長(zhǎng)度;傳送過(guò)程中的數(shù)據(jù)地址和數(shù)據(jù)長(zhǎng)度; 在數(shù)據(jù)塊傳送結(jié)束時(shí),給出在數(shù)據(jù)塊傳送結(jié)束時(shí),給出DMA操作完成的信操作完成的信號(hào)。號(hào)。52簡(jiǎn)單的簡(jiǎn)單的DMA接口的基本

32、組成接口的基本組成 主存地址寄存器(主存地址寄存器(Address Register) 每傳輸一個(gè)數(shù)據(jù)(字節(jié)、字),地址加每傳輸一個(gè)數(shù)據(jù)(字節(jié)、字),地址加1 字計(jì)數(shù)器(字計(jì)數(shù)器(word counter) 數(shù)據(jù)緩存寄存器(數(shù)據(jù)緩存寄存器(Buffer Reg) 完成數(shù)據(jù)格式轉(zhuǎn)換等完成數(shù)據(jù)格式轉(zhuǎn)換等 數(shù)據(jù)傳輸不一定經(jīng)過(guò)數(shù)據(jù)傳輸不一定經(jīng)過(guò)DMAC DMA控制邏輯控制邏輯 DREQ-DACK、HRQ-HLDA 優(yōu)先級(jí)控制優(yōu)先級(jí)控制 設(shè)備地址寄存器(設(shè)備地址寄存器(DAR) 外設(shè)中數(shù)據(jù)塊地址或當(dāng)前設(shè)備的設(shè)備號(hào)外設(shè)中數(shù)據(jù)塊地址或當(dāng)前設(shè)備的設(shè)備號(hào) 中斷邏輯中斷邏輯不一定在不一定在DMAC中中 請(qǐng)求請(qǐng)求C

33、PU進(jìn)行進(jìn)行DMA“后處理后處理” DMA出錯(cuò)處理出錯(cuò)處理DMA接口也稱作接口也稱作DMA控制器控制器(DMAC)53簡(jiǎn)單的簡(jiǎn)單的DMA接口的基本組成接口的基本組成54DMA工作過(guò)程工作過(guò)程 預(yù)處理預(yù)處理 初始化(數(shù)據(jù)傳輸方向、初始化(數(shù)據(jù)傳輸方向、AR、WC、DAR) 啟動(dòng)設(shè)備開始傳輸啟動(dòng)設(shè)備開始傳輸 數(shù)據(jù)傳輸數(shù)據(jù)傳輸 外設(shè)準(zhǔn)備好數(shù)據(jù)外設(shè)準(zhǔn)備好數(shù)據(jù) 外設(shè)通過(guò)外設(shè)通過(guò)DMAC申請(qǐng)總線使用權(quán)申請(qǐng)總線使用權(quán) DREQ HRQ HLDA DACK DMAC接管總線,控制完成數(shù)據(jù)傳輸接管總線,控制完成數(shù)據(jù)傳輸 釋放總線釋放總線 /HLDA 后處理后處理 請(qǐng)求中斷服務(wù),對(duì)讀入的數(shù)據(jù)進(jìn)行處理請(qǐng)求中斷服務(wù),

34、對(duì)讀入的數(shù)據(jù)進(jìn)行處理55DMA控制器(控制器(DMAC) 功能功能 申請(qǐng)總線申請(qǐng)總線 控制總線控制總線 控制數(shù)據(jù)傳輸過(guò)控制數(shù)據(jù)傳輸過(guò)程(地址、計(jì)數(shù)、程(地址、計(jì)數(shù)、讀寫命令)讀寫命令) 釋放總線釋放總線processormemoryI/O接口I/O deviceDMA Controller DREQDACKHRQHLDA568237A內(nèi)部邏輯框圖12345方式字中通道號(hào)57DMA系統(tǒng)連接方式系統(tǒng)連接方式 系統(tǒng)中存在多個(gè)系統(tǒng)中存在多個(gè)DMA通道和多個(gè)通道和多個(gè)I/O設(shè)備,如何連接?設(shè)備,如何連接? 優(yōu)先級(jí)問(wèn)題優(yōu)先級(jí)問(wèn)題 DMA CPU:多個(gè):多個(gè)DMAC 公共請(qǐng)求方式:鏈?zhǔn)焦舱?qǐng)求方式:鏈?zhǔn)?級(jí)

35、聯(lián)級(jí)聯(lián) 獨(dú)立請(qǐng)求方式:星型連接獨(dú)立請(qǐng)求方式:星型連接 DMA 設(shè)備:設(shè)備: 一個(gè)一個(gè)DMAC多個(gè)設(shè)備多個(gè)設(shè)備多個(gè)設(shè)備多個(gè)設(shè)備 選擇型:選擇型: DMAC“軟”選擇響應(yīng)設(shè)備 多路型:多路型:“硬硬”選擇響應(yīng)設(shè)備選擇響應(yīng)設(shè)備 鏈?zhǔn)蕉嗦沸?獨(dú)立請(qǐng)求多路型 主機(jī) 外設(shè) 外設(shè) 外設(shè) 主機(jī) 外設(shè) 外設(shè) 外設(shè) 58DMA CPU 公共請(qǐng)求方式公共請(qǐng)求方式59DMA CPU 獨(dú)立請(qǐng)求方式獨(dú)立請(qǐng)求方式60DMA接口的類型(與設(shè)備接口)接口的類型(與設(shè)備接口) 選擇型選擇型 多路型多路型61DMA接口的類型接口的類型 選擇型選擇型DMA接口的邏輯框圖接口的邏輯框圖62DMA接口的類型接口的類型 多路型多路型DMA

36、接口的邏輯框圖接口的邏輯框圖63DMA接口的類型接口的類型 多路型多路型DMA接口的工作原理接口的工作原理64DMA是程序中斷傳送技術(shù)的發(fā)展是程序中斷傳送技術(shù)的發(fā)展,在硬件邏輯機(jī)構(gòu)的支持下在硬件邏輯機(jī)構(gòu)的支持下,它它以更快的速度以更快的速度,更簡(jiǎn)便的形式傳送數(shù)據(jù)更簡(jiǎn)便的形式傳送數(shù)據(jù).二者的區(qū)別為二者的區(qū)別為: (1)中斷方式通過(guò)程序?qū)崿F(xiàn)數(shù)據(jù)傳送中斷方式通過(guò)程序?qū)崿F(xiàn)數(shù)據(jù)傳送,而而DMA方式直接靠硬件來(lái)方式直接靠硬件來(lái)實(shí)現(xiàn)實(shí)現(xiàn). (2)中斷方式具有數(shù)據(jù)傳送和處理異常事件的能力中斷方式具有數(shù)據(jù)傳送和處理異常事件的能力,而而DMA只能只能進(jìn)行數(shù)據(jù)傳送進(jìn)行數(shù)據(jù)傳送. (3)中斷方式必須切換程序中斷方式必

37、須切換程序,要進(jìn)行要進(jìn)行CPU現(xiàn)場(chǎng)的保護(hù)和恢復(fù)現(xiàn)場(chǎng)的保護(hù)和恢復(fù).DMA僅挪用了一個(gè)存儲(chǔ)周期僅挪用了一個(gè)存儲(chǔ)周期,不改變不改變CPU現(xiàn)場(chǎng)現(xiàn)場(chǎng). (4)DMA請(qǐng)求的優(yōu)先權(quán)比中斷請(qǐng)求高請(qǐng)求的優(yōu)先權(quán)比中斷請(qǐng)求高,CPU優(yōu)先響應(yīng)優(yōu)先響應(yīng)DMA請(qǐng)求請(qǐng)求,是為了避免是為了避免DMA所連接的高速外設(shè)丟失數(shù)據(jù)所連接的高速外設(shè)丟失數(shù)據(jù). (5)CPU對(duì)中斷的響應(yīng)是在執(zhí)行完一條指令之后對(duì)中斷的響應(yīng)是在執(zhí)行完一條指令之后,而對(duì)而對(duì)DMA的響的響應(yīng)則可以在指令執(zhí)行過(guò)程中的任何兩個(gè)存儲(chǔ)周期之間應(yīng)則可以在指令執(zhí)行過(guò)程中的任何兩個(gè)存儲(chǔ)周期之間.中斷控制方式與中斷控制方式與DMA方式有何異同方式有何異同?65DMA小結(jié)小結(jié) 用途用途 數(shù)據(jù)傳輸,數(shù)據(jù)傳輸,DRAM刷新控制刷新控制 關(guān)鍵問(wèn)題:總線爭(zhēng)用、訪存沖突關(guān)鍵問(wèn)題:總線爭(zhēng)用、訪存沖突 CPU暫停方式:暫停方式:x86系統(tǒng)采用系統(tǒng)采用 周期竊取方式:本書稱周期竊取方式:本書稱“廣泛采用廣泛采用”? 交替訪問(wèn)方式交替訪問(wèn)方式 工作過(guò)程:預(yù)處理、數(shù)據(jù)傳輸、后處理工作過(guò)程:預(yù)處理、數(shù)據(jù)傳輸、后處理 DMAC的功能的功能 數(shù)據(jù)傳輸?shù)臄?shù)據(jù)傳輸?shù)腄MA方式與方式與INT方式的比較方式的比較66應(yīng)用:應(yīng)用:IDE接口與接口與DMA模式模式 IDE的

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論