計(jì)算機(jī)組成原理第八章輸入輸出系統(tǒng)_第1頁
計(jì)算機(jī)組成原理第八章輸入輸出系統(tǒng)_第2頁
計(jì)算機(jī)組成原理第八章輸入輸出系統(tǒng)_第3頁
計(jì)算機(jī)組成原理第八章輸入輸出系統(tǒng)_第4頁
計(jì)算機(jī)組成原理第八章輸入輸出系統(tǒng)_第5頁
已閱讀5頁,還剩59頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、1第八章第八章 輸入輸出系統(tǒng)輸入輸出系統(tǒng)8.1外圍設(shè)備的定時(shí)方式和信息交換方式8.2程序查詢方式8.3程序中斷方式8.4DMA方式8.5通道方式8.6通用I/O標(biāo)準(zhǔn)接口返回28.1外圍設(shè)備的定時(shí)方式和信息交換方式外圍設(shè)備的定時(shí)方式和信息交換方式一、外圍設(shè)備的速度分級(jí)l外設(shè)種類繁多,機(jī)械式,電動(dòng)式,電子式。l輸入信號(hào):數(shù)字式電壓,模擬式電壓 電流。l存在以下幾種情況:l不同種類的外設(shè)數(shù)據(jù)傳輸速率差別很大。手動(dòng)鍵盤輸入每個(gè)字符的間隔可以數(shù)秒,磁盤數(shù)據(jù)傳送30000B/Sl同一種設(shè)備在不同時(shí)刻傳輸速率也可能不同CPU與I/O設(shè)備交換數(shù)據(jù)過程輸入過程: 1. CPU把地址發(fā)到地址總線上,選擇輸入設(shè)備2

2、.CPU等候輸入設(shè)備的數(shù)據(jù)有效3.CPU從數(shù)據(jù)總線讀入數(shù)據(jù),并打入相應(yīng)的寄存器輸出過程: 1.CPU把地址發(fā)到地址總線上,選擇輸出設(shè)備2.CPU把數(shù)據(jù)放到數(shù)據(jù)總線上3.輸出設(shè)備從數(shù)據(jù)總線上8.1外圍設(shè)備的定時(shí)方式和信息交換方式外圍設(shè)備的定時(shí)方式和信息交換方式l高速的CPU與速度參差不齊的外設(shè)怎樣在時(shí)間上同步呢?l解決辦法時(shí)在CPU和外設(shè)之間數(shù)據(jù)傳送時(shí)加以定時(shí)。l速度極慢或簡單的外設(shè)如機(jī)械開關(guān)、顯示二極管等,CPU總能很快做出反應(yīng),對(duì)機(jī)械開關(guān)來說,CPU可以認(rèn)為輸出數(shù)據(jù)總是有效,因?yàn)闄C(jī)械開關(guān)的動(dòng)作時(shí)間對(duì)CPU來說是很慢的。對(duì)顯示二極管來說,CPU可以認(rèn)為輸出一定準(zhǔn)備就緒,因?yàn)橹灰o出數(shù)據(jù),顯示二

3、極管就能顯示。所以在這些情況下,CPU只需要接受或者發(fā)送數(shù)據(jù)即可l慢速或者中速的設(shè)備由于此類設(shè)備的速度與CPU的速度不在一個(gè)數(shù)量級(jí),或者由于設(shè)備本身在不規(guī)則時(shí)間間隔下操作(如鍵盤),可以采用異步定時(shí)的方式8.1外圍設(shè)備的定時(shí)方式和信息交換方式外圍設(shè)備的定時(shí)方式和信息交換方式l如果CPU從外設(shè)接收一個(gè)字,首先詢問外設(shè)的狀態(tài),如果外設(shè)的狀態(tài)是”準(zhǔn)備就緒”,則CPU從總線上接收數(shù)據(jù),接收完畢之后,發(fā)出輸入響應(yīng)信號(hào),告訴外設(shè)已經(jīng)把數(shù)據(jù)總線上的數(shù)據(jù)取走。然后外設(shè)把”準(zhǔn)備就緒”狀態(tài)復(fù)位,并準(zhǔn)備下一個(gè)字的交換。如果外設(shè)發(fā)出“忙”標(biāo)記,CPU進(jìn)入循環(huán)程序中等待,并在循環(huán)中詢問外設(shè)的狀態(tài),直到外設(shè)發(fā)出“準(zhǔn)備就緒

4、”信號(hào)后才從外設(shè)接收數(shù)據(jù)。lCPU發(fā)送數(shù)據(jù)到外設(shè),外設(shè)首先發(fā)出請(qǐng)求輸出信號(hào),然后CPU詢問外設(shè)是否準(zhǔn)備就緒。如果外設(shè)準(zhǔn)備就緒,CPU便送出數(shù)據(jù)。外設(shè)接收數(shù)據(jù)后,將向CPU發(fā)出“數(shù)據(jù)已取走”的信號(hào)。通常把CPU和外設(shè)詢問用回答信號(hào)進(jìn)行定時(shí)的方式叫做應(yīng)答式數(shù)據(jù)交換。l高速的外圍設(shè)備 高速的外圍設(shè)備一般以相等的時(shí)間間隔操作,CPU也是以等間隔的速率執(zhí)行輸入輸出指令,因此采用同步定時(shí)方式。一旦CPU和外設(shè)同步,他們之間的數(shù)據(jù)交換便通過時(shí)鐘脈沖控制來進(jìn)行。58.1外圍設(shè)備的定時(shí)方式和信息交換方式外圍設(shè)備的定時(shí)方式和信息交換方式二、信息交換方式l程序查詢方式l程序中斷方式lDMA方式l通道方式l舉例:l上

5、課遲到CAI68.2程序查詢方式程序查詢方式又叫程序控制I/O方式,數(shù)據(jù)在CPU與外設(shè)之間的傳送靠計(jì)算機(jī)程序控制,在CPU主動(dòng)參與下進(jìn)行,當(dāng)需要進(jìn)行輸入輸出時(shí),CPU暫停執(zhí)行主程序,轉(zhuǎn)入執(zhí)行設(shè)備輸入輸出的驅(qū)動(dòng)服務(wù)程序,根據(jù)服務(wù)程序的I/O指令進(jìn)行數(shù)據(jù)傳送,最簡單最經(jīng)濟(jì)的輸入輸出方式,只需要很少的硬件。1、設(shè)備編址l統(tǒng)一編址:輸入輸出設(shè)備中的控制寄存器、數(shù)據(jù)寄存器、狀態(tài)寄存器和內(nèi)存單元一樣對(duì)待,他們和內(nèi)存單元聯(lián)合在一起編排地址,可以利用訪問內(nèi)存的指令(讀寫內(nèi)存)訪問I/O設(shè)備的某個(gè)寄存器,不需專門的I/O指令組。l獨(dú)立編址:內(nèi)存地址和I/O設(shè)備地址分開,訪問內(nèi)存和訪問I/O設(shè)備使用不同操作碼的指

6、令。CAI8.2程序查詢方式程序查詢方式2、輸入輸出指令功能(1)置“1”或置“0” I/O接口的某些控制寄存器,用于控制設(shè)備的動(dòng)作,如啟動(dòng)、關(guān)閉設(shè)備。(2)測試設(shè)備的狀態(tài)。 “忙”,“準(zhǔn)備就緒”(3)傳送數(shù)據(jù)。當(dāng)輸入數(shù)據(jù)時(shí),將I/O接口數(shù)據(jù)寄存器中的內(nèi)容送到CPU某一寄存器。當(dāng)輸出數(shù)據(jù)時(shí),將CPU某一寄存器的內(nèi)容送到I/O接口的數(shù)據(jù)寄存器。 例如某I/O指令 01 R0R7 OP 控制 DM 01 2 3 4 5 6 7 8 9 10-15 01表示I/O指令 R0R7 CPU中8個(gè)通用寄存器 OP操作碼 89表示控制功能,01啟動(dòng)設(shè)備,10關(guān)閉設(shè)備 1015表示64個(gè)外圍設(shè)備地址8.2程序

7、查詢方式程序查詢方式3、程序查詢接口 接口是總線與外設(shè)之間的一個(gè)邏輯部件,作為一個(gè)轉(zhuǎn)換器,保證外設(shè)用計(jì)算機(jī)系統(tǒng)所要求的形式發(fā)送接收數(shù)據(jù)。l設(shè)備選擇電路: 接到總線上的每個(gè)設(shè)備都預(yù)先給定了設(shè)備地址碼,CPU執(zhí)行I/O指令時(shí)需要把指令中的設(shè)備地址送到地址總線,用于指示CPU要選擇的設(shè)備。每個(gè)設(shè)備接口電路中都有一個(gè)設(shè)備選擇電路,用他判別地址總線上指示的設(shè)備是不是本設(shè)備,如果是,則本設(shè)備進(jìn)入工作狀態(tài),否則不予理睬。l數(shù)據(jù)緩沖寄存器:輸入時(shí)存放從外設(shè)讀出的數(shù)據(jù),然后送到CPU,輸出時(shí)存放CPU送來的數(shù)據(jù)然后從外設(shè)輸出。l設(shè)備狀態(tài)寄存器。 接口中的狀態(tài)寄存器?!懊Α?“準(zhǔn)備就緒” “錯(cuò)誤”等。接口監(jiān)視外設(shè)

8、的狀態(tài),一旦CPU用程序詢問外設(shè)時(shí),將狀態(tài)標(biāo)識(shí)信息取至CPU進(jìn)行分析。8.2程序查詢方式程序查詢方式(1)先向I/O設(shè)備發(fā)出命令字,請(qǐng)求進(jìn)行數(shù)據(jù)傳送;(2)從I/O接口讀入狀態(tài)字;(3)檢查狀態(tài)字中的標(biāo)志,看看數(shù)據(jù)交換是否可以進(jìn)行;(4)假如這個(gè)設(shè)備沒有準(zhǔn)備就緒,則第(2)、第(3)步重復(fù)進(jìn)行,一直到這個(gè)設(shè)備準(zhǔn)備好交換數(shù)據(jù),發(fā)出準(zhǔn)備就緒信號(hào)“Ready”為止;(5)CPU從I/O接口的數(shù)據(jù)緩沖寄存器輸入數(shù)據(jù),或者將數(shù)據(jù)從CPU輸出至接口的數(shù)據(jù)緩沖寄存器。與此同時(shí),CPU將接口中的狀態(tài)標(biāo)志復(fù)位。(6)數(shù)據(jù)傳送108.2程序查詢方式程序查詢方式程序查詢程序查詢I/O設(shè)備流程圖設(shè)備流程圖CAI功能功

9、能:1.數(shù)據(jù)傳送,輸入時(shí),由數(shù)據(jù)傳送,輸入時(shí),由I/O指令將設(shè)備數(shù)據(jù)送至指令將設(shè)備數(shù)據(jù)送至CPU某寄存器,再由訪存某寄存器,再由訪存指令把寄存器的數(shù)據(jù)寫入指令把寄存器的數(shù)據(jù)寫入內(nèi)存。輸出時(shí)剛好相反。內(nèi)存。輸出時(shí)剛好相反。2.修改內(nèi)存地址,為下次數(shù)修改內(nèi)存地址,為下次數(shù)據(jù)傳送做準(zhǔn)備據(jù)傳送做準(zhǔn)備3.修改傳送字節(jié)數(shù)修改傳送字節(jié)數(shù)4.進(jìn)行狀態(tài)分析或其他控制進(jìn)行狀態(tài)分析或其他控制功能功能圖中以圖中以1234為查詢順序,為查詢順序,也可以通過程序改變?cè)儐栆部梢酝ㄟ^程序改變?cè)儐柎涡?,一般先詢問?shù)據(jù)傳次序,一般先詢問數(shù)據(jù)傳輸速度較快的設(shè)備,后詢輸速度較快的設(shè)備,后詢問數(shù)據(jù)傳輸速度慢的設(shè)備問數(shù)據(jù)傳輸速度慢的設(shè)備

10、8.2程序查詢方式程序查詢方式l例1 在程序查詢方式的輸入輸系統(tǒng)中,假設(shè)不考慮處理時(shí)間,每次查詢需要100個(gè)時(shí)鐘周期,CPU的時(shí)鐘頻率是50MHz?,F(xiàn)有鼠標(biāo)和鍵盤兩個(gè)設(shè)備,CPU必須每秒都鼠標(biāo)進(jìn)行30次查詢,硬盤以32位字長為單為傳輸數(shù)據(jù),即每32位被CPU查詢一次,傳輸率為2MBps。求CPU對(duì)這兩個(gè)設(shè)備查詢所花費(fèi)的時(shí)間比率,由此可得出什么結(jié)論?l解:CPU每秒對(duì)鼠標(biāo)查詢30次,所需時(shí)鐘周期100*30=3000lCPU時(shí)鐘頻率50MHz,即每秒50*106個(gè)時(shí)鐘周期,鼠標(biāo)查詢占用CPU時(shí)間比率3000/(50*106)=0.006%l對(duì)于硬盤每秒查詢2MB/4B=512K次l每秒查詢的時(shí)鐘

11、周期是100*512*1024=52.4*106l硬盤查詢占用CPU時(shí)間比率是52.4*106/50*106=105%l可見 即使CPU將全部時(shí)間用于對(duì)硬盤的查詢也不能滿足磁盤傳輸?shù)囊?,因此CPU與硬盤交換信息不采用程序查詢方式128.3程序中斷方式程序中斷方式8.3.1 中斷的基本概念8.3.2 程序中斷方式的基本I/O接口8.3.3 單級(jí)中斷8.3.4 多級(jí)中斷8.3.5 中斷控制器8.3.6 Pentium中斷機(jī)制138.3.1中斷的基本概念中斷的基本概念l 中斷(Interrupt):當(dāng)外設(shè)的數(shù)據(jù)準(zhǔn)備就緒后,它“主動(dòng)”向CPU發(fā)出中斷請(qǐng)求信號(hào),請(qǐng)求CPU暫?,F(xiàn)在正在執(zhí)行的程序而進(jìn)行數(shù)

12、據(jù)交換。CPU響應(yīng)中斷時(shí),暫時(shí)中止現(xiàn)行程序,轉(zhuǎn)移到改設(shè)備的中斷服務(wù)程序,轉(zhuǎn)去處理隨機(jī)發(fā)生的緊急事件,處理完后自動(dòng)返回原程序。l和調(diào)用子程序類似,但是要求轉(zhuǎn)移到中斷服務(wù)程序的請(qǐng)求是由外設(shè)發(fā)出。l中斷系統(tǒng)是計(jì)算機(jī)實(shí)現(xiàn)中斷功能的軟硬件總稱。一般在CPU中設(shè)置中斷機(jī)構(gòu),在外設(shè)接口中設(shè)置中斷控制器,在軟件上設(shè)置相應(yīng)的中斷服務(wù)程序。CAI148.3.1 中斷的基本概念中斷的基本概念CAI158.3.1 中斷的基本概念中斷的基本概念l中斷處理過程注意幾個(gè)問題: l響應(yīng)中斷時(shí)機(jī):響應(yīng)中斷時(shí)機(jī):外界中斷請(qǐng)求時(shí)隨機(jī)的,但CPU只有在當(dāng)前指令執(zhí)行完畢后,才轉(zhuǎn)至公操作,這樣才不會(huì)使當(dāng)前指令收到干擾。 公操作指一條指令

13、執(zhí)行結(jié)束后CPU執(zhí)行的操作,如中斷處理,直接內(nèi)存?zhèn)魉?,取下條指令等。外界中斷請(qǐng)求信號(hào)通常放在接口的中斷源鎖存器中,并通過中斷請(qǐng)求線連接CPU,當(dāng)一條指令執(zhí)行到末尾CPU便檢查中斷請(qǐng)求信號(hào),若中斷請(qǐng)求信號(hào)為“1”,則進(jìn)入中斷中期。l斷點(diǎn)保護(hù)問題斷點(diǎn)保護(hù)問題(為了在中斷服務(wù)程序執(zhí)行結(jié)束后,能正確返回到原來主程序,必須保存PC,CPU中寄存器內(nèi)容和狀態(tài),也叫保護(hù)現(xiàn)場) 8.3.1 中斷的基本概念中斷的基本概念l原子操作原子操作:開中斷和關(guān)中斷問題。 當(dāng)CPU響應(yīng)中斷后,可能有另一個(gè)中斷源發(fā)出中斷請(qǐng)求,為了不造成混亂,在CPU的中斷管理部件必須有“中斷屏蔽”觸發(fā)器,它可以在程序的控制下置“1”(設(shè)置屏

14、蔽)或者置“0”(取消屏蔽),只有在中斷屏蔽為0時(shí)CPU才受理中斷。l當(dāng)CPU接收中斷請(qǐng)求并作出中斷響應(yīng)時(shí),它一方面發(fā)出中斷響應(yīng)信號(hào)INTA,另一方面把中斷屏蔽標(biāo)志置1,不受理另外的中斷源發(fā)出的中斷請(qǐng)求。只有當(dāng)CPU把中斷服務(wù)程序執(zhí)行完畢后,才能使中斷屏蔽標(biāo)志置0,即開中斷,并返回主程序。因此中斷服務(wù)程序的最后必須有兩條指令:開中斷,返回主程序指令。l中斷是由軟硬件結(jié)合軟硬件結(jié)合起來實(shí)現(xiàn)的。中斷周期 硬件實(shí)現(xiàn),中斷服務(wù)程序由機(jī)器指令序列實(shí)現(xiàn)。l中斷分為內(nèi)部中段內(nèi)部中段和外中斷。外中斷。 機(jī)器內(nèi)部原因?qū)е鲁鲥e(cuò)引起的中斷叫內(nèi)中斷,如除數(shù)為0. 外設(shè)請(qǐng)求服務(wù)的中斷時(shí)外中斷178.3.2 程序中斷方式

15、的基本程序中斷方式的基本I/O接口接口CAI188.3.2程序中斷方式的基本程序中斷方式的基本I/O接口接口l設(shè)備選擇器。設(shè)備選擇器用來判別總線上送出的地址(或稱呼叫的設(shè)備)是否為本設(shè)備,它實(shí)際上是設(shè)備地址的譯碼比較電路。lBS外設(shè)接口忙(BuSy)標(biāo)志lRD外設(shè)準(zhǔn)備就緒(ReaDy)標(biāo)志lEI(Enable Interrupt中斷允許觸發(fā)器)lIR(Interrupt Request)中斷請(qǐng)求觸發(fā)器lIM(Interrupt Mask)中斷屏蔽觸發(fā)器8.3.2 程序中斷方式的基本程序中斷方式的基本I/O接口接口表示由程序啟動(dòng)外設(shè),將該外設(shè)接口的“忙”標(biāo)志BS置“1”,“準(zhǔn)備就緒”標(biāo)志RD清“

16、0”;表示接口向外設(shè)發(fā)出啟動(dòng)信號(hào);表示數(shù)據(jù)由外設(shè)傳送到接口的緩沖寄存器;表示當(dāng)設(shè)備動(dòng)作結(jié)束或緩沖寄存器數(shù)據(jù)填滿時(shí),設(shè)備向接口送出一 控制信號(hào),將數(shù)據(jù)“準(zhǔn)備就緒”標(biāo)志RD置“1”;表示允許中斷標(biāo)志EI為“1”時(shí),接口向CPU發(fā)出中斷請(qǐng)求信號(hào);表示在一條指令執(zhí)行末尾CPU檢查中斷請(qǐng)求線,將中斷請(qǐng)求線的請(qǐng)求信號(hào)接收到“中斷請(qǐng)求”標(biāo)志IR;表示如果“中斷屏蔽”標(biāo)志IM為“0”時(shí),CPU在一條指令執(zhí)行結(jié)束后受理外設(shè)的中斷請(qǐng)求,向外設(shè)發(fā)出響應(yīng)中斷信號(hào)并關(guān)閉中斷;表示轉(zhuǎn)向該設(shè)備的中斷服務(wù)程序入口;表示在中斷服務(wù)程序通過輸入指令把接口中數(shù)據(jù)緩沖寄存器的數(shù)據(jù)讀至CPU中的寄存器;(10)表示CPU發(fā)出控制信號(hào)C

17、將接口中的BS和RD標(biāo)志復(fù)位。208.3.3單級(jí)中斷單級(jí)中斷l(xiāng)單級(jí)中斷的概念:所有中斷源屬于同一級(jí),離CPU越近,優(yōu)先級(jí)越高。在中斷響應(yīng)時(shí)不允許其他中斷源打斷該中斷服務(wù)程序,即使優(yōu)先權(quán)比它高的也不能打斷,只有中斷服務(wù)程序執(zhí)行完畢后,才能響應(yīng)其他中斷。l中斷源的識(shí)別:串行排隊(duì)鏈法lIR1,IR2,IR3為中斷請(qǐng)求信號(hào)lIS1,IS2,IS3為中斷選中信號(hào)lINTI為中斷排隊(duì)輸入lINTO為中斷排隊(duì)輸出218.3.3單級(jí)中斷單級(jí)中斷l(xiāng)所有中斷源屬于同一級(jí),離CPU越近,優(yōu)先級(jí)越高,圖8.7類似于第六章的鏈?zhǔn)讲樵兎绞?。l中斷源的識(shí)別:串行排隊(duì)鏈法lIR1,IR2,IR3為中斷請(qǐng)求信號(hào)lIS1,IS2

18、,IS3為中斷選中信號(hào)lINTI為中斷排隊(duì)輸入lINTO為中斷排隊(duì)輸出l中斷向量的產(chǎn)生l向量地址轉(zhuǎn)移法CAI228.3.3單級(jí)中斷單級(jí)中斷CAI238.3.3單級(jí)中斷單級(jí)中斷l(xiāng)中斷向量:l當(dāng)CPU響應(yīng)中斷時(shí),由硬件直接產(chǎn)生一個(gè)固定的地址(即向量地址),是設(shè)備編碼器產(chǎn)生的中斷源的內(nèi)存地址編號(hào),由向量地址指出每個(gè)中斷源設(shè)備的中斷服務(wù)程序入口,這種方法通常稱為向量中斷。入口地址是中斷服務(wù)程序的首地址。通過中斷向量地址訪問主存可獲得中斷服務(wù)程序的入口地址。 l 主存l向量地址 12H JMP 200l 13H JMP 300l 14H JMP 400l入口地址 200 打印機(jī)服務(wù)程序l .l 300

19、顯示器服務(wù)程序248.3.4多級(jí)中斷多級(jí)中斷 計(jì)算機(jī)系統(tǒng)中有多個(gè)中斷源,根據(jù)各中斷事件的輕重緩急程度不同分級(jí),每級(jí)有一個(gè)中斷優(yōu)先權(quán)。優(yōu)先權(quán)高的可以打斷優(yōu)先級(jí)的中斷服務(wù)程序,以程序嵌套的方式工作。l一維多級(jí)中斷:每一級(jí)中斷中只有一個(gè)中斷源l二維多級(jí)中斷:每一級(jí)中斷中可以有多個(gè)中斷源l對(duì)于多級(jí)中斷:一個(gè)系統(tǒng)有n級(jí)中斷,則CPU中有n個(gè)IR,n個(gè)IM,某級(jí)中斷被響應(yīng)后,則關(guān)閉本級(jí)和低于本級(jí)的IM(置1),開放更高級(jí)的IM(置0)。多級(jí)中斷可以嵌套,但同一級(jí)的中斷不允許嵌套,必須處理完一個(gè)中斷后再處理同一級(jí)的其他中斷。中斷響應(yīng)時(shí)希望有較快的響應(yīng)時(shí)間,確定哪一級(jí)中斷和中斷源采用硬件實(shí)現(xiàn)。在二維中斷中,除

20、了有中斷優(yōu)先級(jí)排隊(duì)電路外,還要確定優(yōu)先響應(yīng)的中斷源。采用了獨(dú)立請(qǐng)求方式和鏈?zhǔn)讲樵兎绞较嘟Y(jié)合的方式。在多級(jí)中斷中,使用多級(jí)堆棧保存現(xiàn)場(包括IM)。優(yōu)點(diǎn):1.控制邏輯簡單保存和恢復(fù)現(xiàn)場的過程按先進(jìn)后出順序進(jìn)行。2.每一級(jí)中斷不必單獨(dú)設(shè)置現(xiàn)場保護(hù)區(qū),各級(jí)中斷現(xiàn)場可按順序放在同一個(gè)棧里CAI8.3.4多級(jí)中斷多級(jí)中斷268.3.4多級(jí)中斷多級(jí)中斷l(xiāng)多級(jí)中斷源的識(shí)別l中斷優(yōu)先排隊(duì)電路l中斷向量產(chǎn)生電路CAI278.3.4 多級(jí)中斷多級(jí)中斷l(xiāng)例1、參見圖8.9所示的二維中斷系統(tǒng)。請(qǐng)問:(1)在中斷情況下,CPU和設(shè)備的優(yōu)先級(jí)如何考慮?請(qǐng)按降序排列各設(shè)備的中斷優(yōu)先級(jí)。(2)若CPU現(xiàn)執(zhí)行設(shè)備B的中斷服務(wù)程

21、序,IM2,IM1,IM0的狀態(tài)是什么?如果CPU執(zhí)行設(shè) 備D的中斷服務(wù)程序,IM2,IM1,IM0的狀態(tài)又是什么?(3)每一級(jí)的IM能否對(duì)某個(gè)優(yōu)先級(jí)的個(gè)別設(shè)備單獨(dú)進(jìn)行屏蔽?如果不能,采取什么辦法可達(dá)到目的?(4)假如設(shè)備C一提出中斷請(qǐng)求,CPU立即進(jìn)行響應(yīng),如何調(diào)整才能滿足此要求?288.3.4 多級(jí)中斷多級(jí)中斷例1 解:(1)在中斷情況下,CPU的優(yōu)先級(jí)最低。各設(shè)備的優(yōu)先次序是:ABC DEFGHICPU。(2)執(zhí)行設(shè)備B的中斷服務(wù)程序時(shí)IM2IM1IM0=111;執(zhí)行設(shè)備D的中斷服務(wù)程序時(shí),IM2IM1IM0=011。(3)每一級(jí)的IM標(biāo)志不能對(duì)某個(gè)優(yōu)先級(jí)的個(gè)別設(shè)備進(jìn)行單獨(dú)屏蔽??蓪⒔涌?/p>

22、中的EI(中斷允許)標(biāo)志清“0”,它禁止設(shè)備發(fā)出中斷請(qǐng)求。 (4)要使設(shè)備C的中斷請(qǐng)求及時(shí)得到響應(yīng),可將設(shè)備C從第2級(jí)取出來,單獨(dú)放在第3級(jí)上,使第3級(jí)的優(yōu)先級(jí)最高,即令I(lǐng)M3=0即可。298.3.4 多級(jí)中斷多級(jí)中斷l(xiāng)例2參見例1所示的系統(tǒng),只考慮A,B,C三個(gè)設(shè)備組成的單級(jí)中斷結(jié)構(gòu),它要求CPU在執(zhí)行完當(dāng)前指令時(shí)對(duì)中斷請(qǐng)求進(jìn)行服務(wù)。假設(shè):(1)CPU“中斷批準(zhǔn)”機(jī)構(gòu)在響應(yīng)一個(gè)新的 中斷之前,先要讓被中斷的程序的一條指令一定要執(zhí)行完畢;(2)TDC為查詢鏈中每個(gè)設(shè)備的延遲時(shí)間;(3)TA,TB,TC分別為設(shè)備A,B,C的服務(wù)程序所需的執(zhí)行時(shí)間; (4)TS,TR為保存現(xiàn)場和恢復(fù)現(xiàn)場所需的時(shí)間

23、;(5)主存工作周期為TM。 試問:就這個(gè)中斷請(qǐng)求環(huán)境來說,系統(tǒng)在什么情況下達(dá)到中斷飽和?30 例例2 解:解:中斷處理流程,并假設(shè)執(zhí)行一條指令的時(shí)間也為TM。如果三個(gè)設(shè)備同時(shí)發(fā)出中斷請(qǐng)求,那么依次分別處理設(shè)備A、設(shè)備B、設(shè)備C的時(shí)間如下: tA = 2TM + TDC + TS + TA + TRtB = 2TM + 2TDC + TS + TB + TRtC = 2TM + 3TDC + TS + TC + TR處理三個(gè)設(shè)備所需的總時(shí)間為:T=tA+tB+tCT是達(dá)到中斷飽和的最小時(shí)間,即中斷極限頻率為:f=1/T8.3.4 多級(jí)中斷多級(jí)中斷318.3.5中斷控制器中斷控制器l8259中斷

24、控制器是一個(gè)集成電路芯片,它將中斷接口與優(yōu)先級(jí)判斷等功能匯集于一身,常用于微型機(jī)系統(tǒng)。其內(nèi)部結(jié)構(gòu)如圖8.11所示。l8位中斷請(qǐng)求寄存器(IR)接受8個(gè)外部設(shè)備送來的中斷請(qǐng)求,每一位對(duì)應(yīng)一個(gè)設(shè)備。l中斷請(qǐng)求寄存器的各位送入優(yōu)先權(quán)判斷器,根據(jù)中斷屏蔽寄存器(IM)各位的狀態(tài)來決定最高優(yōu)先級(jí)的中斷請(qǐng)求,并將各位的狀態(tài)送入中斷狀態(tài)寄存器IS。IS保存著判優(yōu)結(jié)果。由控制邏輯向CPU發(fā)出中斷請(qǐng)求信號(hào)INT,并接受CPU的中斷響應(yīng)信號(hào)INTA。l數(shù)據(jù)緩沖器用于保存CPU內(nèi)部總線與系統(tǒng)數(shù)據(jù)總線之間進(jìn)行傳送的數(shù)據(jù)。l讀/寫邏輯決定數(shù)據(jù)傳送的方向,其中IOR為讀控制,IOW為寫控制,CS為設(shè)備選擇,A0為I/O端

25、口識(shí)別。CAI328.3.5中斷控制器中斷控制器l多個(gè)8259進(jìn)行級(jí)聯(lián)以處理多達(dá)64個(gè)中斷請(qǐng)求。在這種情況下允許有一個(gè)主中斷控制器和多個(gè)從中斷控制器,稱為主從系統(tǒng)。l優(yōu)先級(jí)選擇方式有四種:l完全嵌套方式:是一種固定優(yōu)先級(jí)方式,連至IR0的設(shè)備優(yōu)先級(jí)最高,IR7的優(yōu)先級(jí)最低。這種固定優(yōu)先級(jí)方式對(duì)級(jí)別低的中斷不利,在有些情況下最低級(jí)別的中斷請(qǐng)求可能一直不能被處理。l輪換優(yōu)先級(jí)方式A:每個(gè)級(jí)別的中斷保證有機(jī)會(huì)被處理,將給定的中斷級(jí)別處理完后,立即把它放到最低級(jí)別的位置上去。l輪換優(yōu)先級(jí)方式B:要求CPU可在任何時(shí)間規(guī)定最優(yōu)優(yōu)先級(jí),然后順序地規(guī)定其他IR線上的優(yōu)先級(jí)。l查詢方式:由CPU訪問8259的

26、中斷狀態(tài)寄存器,一個(gè)狀態(tài)字能表示出正在請(qǐng)求中斷的最高優(yōu)先級(jí)IR線,并能表示出中斷請(qǐng)求是否有效。338.3.5中斷控制器中斷控制器l8259提供了兩種屏蔽方式:l簡單屏蔽方式,提供8位屏蔽字,每位對(duì)應(yīng)著各自的IR線。被置位的任一位則禁止了對(duì)應(yīng)IR線上的中斷。l特殊屏蔽方式,允許CPU讓來自低優(yōu)先級(jí)的外設(shè)中斷請(qǐng)求去中斷高優(yōu)先級(jí)的服務(wù)程序。當(dāng)8位屏蔽位的某位置“0”時(shí),例如屏蔽字為11001111,說明IR4和IR5線上的中斷請(qǐng)求可中斷任何高級(jí)別的中斷服務(wù)程序。l8259中斷控制器的不同工作方式是通過編程來實(shí)現(xiàn)的。CPU送出一系列的初始化控制字和操作控制字來執(zhí)行選定的操作。348.3.5Pentiu

27、m中斷機(jī)制中斷機(jī)制lPentium中斷機(jī)制l中斷類型l中斷服務(wù)子程序進(jìn)入過程l中斷處理過程CAI358.4 DMA方式方式8.4.1 DMA的基本概念8.4.2 DMA傳送方式8.4.3 基本的DMA原理8.4.4 選擇型和多路型DMA控制器368.4.1 DMA的基本概念的基本概念l直接存儲(chǔ)器訪問(Direct Memory Address)DMA方式是為了在主存儲(chǔ)器與IO設(shè)備間高速交換批量數(shù)據(jù)而設(shè)置的。l基本思想是:通過硬件控制實(shí)現(xiàn)主存與IO設(shè)備間的直接數(shù)據(jù)傳送,在傳送過程中無需CPU的干預(yù)。數(shù)據(jù)傳送是在DMA控制器控制下進(jìn)行的,一般用于高速傳送成組數(shù)據(jù),DMA控制器向內(nèi)存發(fā)出地址和控制信

28、號(hào),修改地址,對(duì)傳送字的個(gè)數(shù)計(jì)數(shù),并以中斷方式向CPU報(bào)告?zhèn)魉筒僮鞯慕Y(jié)束。l優(yōu)點(diǎn):速度快。CPU不參與傳送操作,省去了CPU取指令,取數(shù),送數(shù)等操作。在數(shù)據(jù)傳送過程中,沒有保存現(xiàn)場,恢復(fù)現(xiàn)場的工作。內(nèi)存地址修改,字個(gè)數(shù)的計(jì)數(shù)也不是由軟件實(shí)現(xiàn),而是由硬件線路直接實(shí)現(xiàn)。所以DMA能滿足高速I/O要求,有利于發(fā)揮CPU的效率。378.4.2 DMA傳送方式傳送方式1、停止CPU訪問內(nèi)存l主機(jī)響應(yīng)DMA請(qǐng)求后,讓出存儲(chǔ)總線,直到一組數(shù)據(jù)傳送完畢后,DMA控制器才把總線控制權(quán)交還給CPU,采用這種工作方式的IO設(shè)備,在其接口中一般設(shè)置有小容量存儲(chǔ)器,IO設(shè)備先與小容量存儲(chǔ)器交換數(shù)據(jù),然后由小容量存儲(chǔ)器與

29、主機(jī)交換數(shù)據(jù),這樣可減少DMA傳送占用存儲(chǔ)總線的時(shí)間,也即減少了CPU暫停工作的時(shí)間。381、停止CPU訪問內(nèi)存l優(yōu)點(diǎn): 控制簡單,它適用于數(shù)據(jù)傳輸率很高的設(shè)備進(jìn)行成組傳送。l缺點(diǎn): 在DMA控制器訪內(nèi)階段,內(nèi)存的效能沒有充分發(fā)揮,相當(dāng)一部分內(nèi)存工作周期是空閑的。這是因?yàn)椋鈬O(shè)備傳送兩個(gè)數(shù)據(jù)之間的間隔一般總是大于內(nèi)存存儲(chǔ)周期,即使高速I/O設(shè)備也是如此。8.4.2 DMA傳送方式傳送方式398.4.2 DMA傳送方式傳送方式2、周期挪用方式lDMA控制器與主存儲(chǔ)器之間傳送一個(gè)數(shù)據(jù),占用(竊?。┮粋€(gè)內(nèi)存周期,即CPU暫停工作一個(gè)周期,然后繼續(xù)執(zhí)行程序。408.4.2 DMA傳送方式傳送方式3、

30、DMA與CPU交替訪內(nèi)l如果CPU的工作周期比內(nèi)存存取周期長很多,可以采用該種方法l總線控制權(quán)的轉(zhuǎn)移速度快,DMA效率高。418.4.3 基本的基本的DMA原理原理1、DMA基本構(gòu)成(1)內(nèi)存地址計(jì)數(shù)器內(nèi)存地址計(jì)數(shù)器(2)字計(jì)數(shù)器字計(jì)數(shù)器(3)數(shù)據(jù)緩沖寄存器數(shù)據(jù)緩沖寄存器(4)“DMA請(qǐng)求請(qǐng)求”標(biāo)志標(biāo)志(5)“控制控制/狀態(tài)狀態(tài)”邏輯邏輯(6)中斷機(jī)構(gòu)中斷機(jī)構(gòu)CAI428.4.3 基本的基本的DMA原理原理2、 DMA數(shù)據(jù)傳送過程當(dāng)外設(shè)有DMA請(qǐng)求時(shí),通常CPU在本機(jī)器周期結(jié)束后,響應(yīng)DMA請(qǐng)求。CAI438.4.4選擇型和多路型選擇型和多路型DMA控制器控制器l選擇型l多路型CAICAI44

31、8.4.4選擇型和多路型選擇型和多路型DMA控制器控制器l典型DMA芯片CAI45 例3下圖中假設(shè)有磁盤、磁帶、打印機(jī)三個(gè)設(shè)備同時(shí)工作。磁盤以30s的間隔向控制器發(fā)DMA請(qǐng)求,磁帶以45s的間隔發(fā)DMA請(qǐng)求,打印機(jī)以150s間隔發(fā)DMA請(qǐng)求。根據(jù)傳輸速率,磁盤優(yōu)先權(quán)最高,磁帶次之,打印機(jī)最低,圖中假設(shè)DMA控制器每完成一次DMA傳送所需的時(shí)間是5s。若采用多路型DMA控制器,請(qǐng)畫出DMA控制器服務(wù)三個(gè)設(shè)備的工作時(shí)間圖。 CAI46 例3 解: 由圖看出,T1間隔中控制器首先為打印機(jī)服務(wù),因?yàn)榇藭r(shí)只有打印機(jī)有請(qǐng)求。T2間隔前沿磁盤、磁帶同時(shí)有請(qǐng)求,首先為優(yōu)先權(quán)高的磁盤服務(wù),然后為磁帶服務(wù),每次服

32、務(wù)傳送一個(gè)字節(jié)。在120s時(shí)間階段中,為打印機(jī)服務(wù)只有一次(T1),為磁盤服務(wù)四次(T2,T4,T6,T7),為磁帶服務(wù)三次(T3,T5,T8)。從圖上看到,在這種情況下DMA尚有空閑時(shí)間,說明控制器還可以容納更多設(shè)備。 8.4.4選擇型和多路型選擇型和多路型DMA控制器控制器478.5 通道方式通道方式8.5.1 通道的功能8.5.2 通道的類型8.5.3 通道結(jié)構(gòu)的發(fā)展488.5.1 通道的功能通道的功能l執(zhí)行通道指令,組織外圍設(shè)備和內(nèi)存進(jìn)行數(shù)據(jù)傳輸,按I/O指令要求啟動(dòng)外圍設(shè)備,向CPU報(bào)告中斷等,具體有以下五項(xiàng)任務(wù):l(1)接受CPU的I/O指令,按指令要求與指定的外圍設(shè)備進(jìn)行通信。l

33、(2)從內(nèi)存選取屬于該通道程序的通道指令,經(jīng)譯碼后向設(shè)備控制器和設(shè)備發(fā)送各種命令。 l(3)組織外圍設(shè)備和內(nèi)存之間進(jìn)行數(shù)據(jù)傳送,并根據(jù)需要提供數(shù)據(jù)緩存的空間,以及提供數(shù)據(jù)存入內(nèi)存的地址和傳送的數(shù)據(jù)量。 l(4)從外圍設(shè)備得到設(shè)備的狀態(tài)信息,形成并保存通道本身的狀態(tài)信息,根據(jù)要求將這些狀態(tài)信息送到內(nèi)存的指定單元,供CPU使用。l(5)將外圍設(shè)備的中斷請(qǐng)求和通道本身的中斷請(qǐng)求,按次序及時(shí)報(bào)告CPU。 498.5.1 通道的功能通道的功能l通道結(jié)構(gòu)l 在一般用戶程序中,通過調(diào)用通道來完成一次數(shù)據(jù)輸入輸出的過程如圖1所示lCPU執(zhí)行用戶程序和管理程序,通道處理機(jī)執(zhí)行通道程序的時(shí)間關(guān)系如圖所示。 CAI

34、508.5.2 通道的類型通道的類型l選擇通道 l選擇通道每次只能從所連接的設(shè)備中選擇一臺(tái)IO設(shè)備的通道程序,此刻該通道程序獨(dú)占了整個(gè)通道。連接在選擇通道上的若干設(shè)備,只能依次使用通道與主存?zhèn)魉蛿?shù)據(jù)l數(shù)據(jù)傳送以成組(數(shù)據(jù)塊)方式進(jìn)行,每次傳送一個(gè)數(shù)據(jù)塊,因此,傳送速率很高。選擇通道多適合于快速設(shè)備(磁盤),這些設(shè)備相鄰字之間的傳送空閑時(shí)間極短。518.5.2 通道的類型通道的類型l字節(jié)多路通道 (Byte Multiplexor Channel) l是一種簡單的共享通道,在時(shí)間分割的基礎(chǔ)上,服務(wù)于多臺(tái)低速和中速面向字符的外圍設(shè)備。l字節(jié)多路通道包括多個(gè)子通道,每個(gè)子通道服務(wù)于一個(gè)設(shè)備控制器,可

35、以獨(dú)立地執(zhí)行通道指令。每個(gè)子通道都需要有字符緩沖寄存器、IO請(qǐng)求標(biāo)志控制寄存器、主存地址寄存器和字節(jié)計(jì)數(shù)寄存器。而所有于通道的控制部分是公共的,由所有子通道所共享。通常,每個(gè)通道的有關(guān)指令和參量存放在主存固定單元中。當(dāng)通道在邏輯上與某一設(shè)備連通時(shí),將這些指令和參量取出來,送入公共控制部分的寄存器中使用。l字節(jié)多路通道要求每種設(shè)備分時(shí)占用一個(gè)很短的時(shí)間片,不同的設(shè)備在各自分得的時(shí)間片內(nèi)與通道建立傳輸連接,實(shí)現(xiàn)數(shù)據(jù)的傳送。528.5.2 通道的種類通道的種類l數(shù)組多路通道(Block Multiplexor Channel)l數(shù)組多路通道把字節(jié)多路通道和選擇通道的特點(diǎn)結(jié)合起來。它有多個(gè)子通道,既可

36、以執(zhí)行多路通道程序,象字節(jié)多路通道那樣,所有子通道分時(shí)共享總通道;又可以用選擇通道那樣的方式傳送數(shù)據(jù)。l數(shù)組多路通道和字節(jié)多路通道的比較538.5.3 通道結(jié)構(gòu)的發(fā)展通道結(jié)構(gòu)的發(fā)展l輸入輸出處理機(jī)(IOP) l輸入輸出處理機(jī)(IOP)不是一臺(tái)獨(dú)立的計(jì)算機(jī),而是計(jì)算機(jī)系統(tǒng)中的一個(gè)部件。IOP可以和CPU并行工作,提供高速的DMA處理能力,實(shí)現(xiàn)數(shù)據(jù)的高速傳送。此外,有些IOP還提供數(shù)據(jù)的變換、搜索和字裝配分拆能力。l8位和16位微機(jī)中使用的Intel 8089 IO處理器就是這種通道型IO處理器548.5.2 通道結(jié)構(gòu)的發(fā)展通道結(jié)構(gòu)的發(fā)展l外圍處理機(jī) l外圍處理機(jī)結(jié)構(gòu)更接近于一般處理機(jī),或者就是選

37、用已有的通用機(jī)。外圍機(jī)基本上是獨(dú)立于主處理機(jī)工作的,應(yīng)用于大型高效率的計(jì)算機(jī)系統(tǒng)中。558.6通用通用I/O接口標(biāo)準(zhǔn)接口標(biāo)準(zhǔn)8.6.1 并行I/O標(biāo)準(zhǔn)接口SCSI8.6.2 串行I/O標(biāo)準(zhǔn)接口IEEE1394568.6.1 并行并行I/O標(biāo)準(zhǔn)接口標(biāo)準(zhǔn)接口SCSIl小型計(jì)算機(jī)系統(tǒng)接口的簡稱,它是一個(gè)高速智能接口,可以混接各種磁盤、光盤、磁 帶機(jī)、打印機(jī)、掃描儀、條碼閱讀器以及通信設(shè)備 578.6.2 串行串行I/O標(biāo)準(zhǔn)接口標(biāo)準(zhǔn)接口IEEE1394lIEEE 1394是一種高速串行I/O標(biāo)準(zhǔn)接口。各被連接裝置的關(guān)系是平等的,不用PC介入也能自成系統(tǒng)。這意味著1394在家電等消費(fèi)類設(shè)備的連接應(yīng)用方面有很好的前景。l(1)數(shù)據(jù)傳送的高速性 l(2)數(shù)據(jù)傳送的實(shí)時(shí)性l(

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論