计算机组成原理(哈工大刘宏伟)135讲(二)
第5章 輸入輸出系統(tǒng)
5.1 概述
輸入輸出系統(tǒng)的發(fā)展概況
輸入輸出系統(tǒng)的組成
1.I/O軟件
- 設(shè)備 通過 接口 連接在 總線 上,和 主機(jī) 進(jìn)行信息交互
I/O設(shè)備與主機(jī)的聯(lián)系方式
-
I/O設(shè)備編址方式 :
1.統(tǒng)一編址 :就是把 I/O設(shè)備的地址 看成是 內(nèi)存地址的一部分;這種情況下,cpu可以直接利用取數(shù)或者存數(shù)指令對(duì)I/O設(shè)備進(jìn)行訪問/控制,不需要單獨(dú)的I/O指令,只要取數(shù)(存數(shù))指令中的地址落在了I/O設(shè)備;如果內(nèi)存系統(tǒng)的編址空間比較大,就可以使用這種
2.不統(tǒng)一編址 :在內(nèi)存地址空間以外專門設(shè)立一個(gè)地址空間,為了區(qū)分一條指令 究竟是對(duì) 內(nèi)存進(jìn)行操作還是I/O進(jìn)行操作,在單獨(dú)編址的計(jì)算機(jī)中,輸入輸出系統(tǒng)就不能再采用計(jì)算機(jī)系統(tǒng)原有的取數(shù)存數(shù)指令,要有專用的I/O指令對(duì)它控制 -
數(shù)據(jù)傳送方式 :(與第三章同)
1.串行 :數(shù)據(jù)一位一位的進(jìn)行傳輸,傳輸速度比較慢,但適合進(jìn)行 遠(yuǎn)程傳輸
2.并行 :同時(shí)有多位數(shù)據(jù)在數(shù)據(jù)線上傳輸,通常數(shù)據(jù)線的條數(shù)是8的倍數(shù)
-
聯(lián)絡(luò)方式 :主要是外部設(shè)備接收或者發(fā)送數(shù)據(jù)的相應(yīng)情況
異步 分成 兩種,可以 并行傳輸,也可以 串行傳輸;cpu與接口之間一般都是并行傳輸
同步工作 :設(shè)備和主機(jī)之間如果要 同步工作 的話,必須有一個(gè)定寬定距的時(shí)標(biāo),來控制在某一個(gè)時(shí)間點(diǎn)必須開始某一項(xiàng)工作,在某一個(gè)時(shí)間點(diǎn)某一項(xiàng)工作必須結(jié)束
-
連接方式 :
輻射式連接 :其實(shí)就是 分散式連接,增加一個(gè)I/O設(shè)備,在主機(jī)中就需要增加一套控制電路,對(duì)這個(gè)設(shè)備進(jìn)行控制,早期由于外部設(shè)備數(shù)量比較少,采用這種方式,而現(xiàn)在外部設(shè)備越來越多,不合適
總線連接 :外部設(shè)備 通過 接口,和主機(jī)進(jìn)行連接,接口可以向外部設(shè)備傳送主機(jī)的控制命令,可以向主機(jī)傳送外部設(shè)備的狀態(tài)信息,同樣,接口還可以完成信息傳送,還可以用來在接口緩存;只要外部設(shè)備采用標(biāo)準(zhǔn)接口的方式,就可以增刪設(shè)備
I/O設(shè)備與主機(jī)信息傳送的控制方式
- 程序查詢方式 :
這是最早的方式
在這種方式中,cpu與外設(shè)采用 串行 方式進(jìn)行工作 - 程序中斷方式 :
這種方式中cpu實(shí)現(xiàn)了與I/O設(shè)備之間 部分的并行工作,也就是在I/O設(shè)備進(jìn)行數(shù)據(jù)準(zhǔn)備時(shí),cpu還可以執(zhí)行自己的程序,不需要停 - DMA方式 :
這種方式把cpu進(jìn)一步的從 數(shù)據(jù)的輸入輸出 這個(gè)工作中解放出來,使外部設(shè)備與內(nèi)存之間可以建立直接的的連接,由dma接口,或者dma控制器直接控制外部設(shè)備和內(nèi)存之間進(jìn)行數(shù)據(jù)交換
-
這種方式,cpu效率非常低;這種方式中,內(nèi)存與I/O之間要想進(jìn)行數(shù)據(jù)交換的話,必須要通過cpu,先要送入cpu之中
-
是對(duì)第一種方式的一個(gè)改進(jìn),在這種方式中,cpu一定程度上從數(shù)據(jù)的輸入輸出工作中解放出來
-
I/O工作可以分成兩個(gè)階段 :1.數(shù)據(jù)準(zhǔn)備階段,也就是自身準(zhǔn)備;2.才是與主機(jī)交換信息。在程序查詢方式中,這兩個(gè)階段cpu都要工作都要參與。而在 中斷方式中,第一個(gè)階段是cpu與I/O是 并行工作的
-
在 中斷 方式中,要想輸入一個(gè)數(shù)據(jù),把它輸入到內(nèi)存中去,依然是先要把這個(gè)數(shù)據(jù)讀入cpu,然后從cpu寫入到內(nèi)存,或者是發(fā)給I/O設(shè)備。也就是說,即使是中斷方式,內(nèi)存、cpu、I/O設(shè)備這三者的關(guān)系,依然是cpu在兩者的中間,內(nèi)存和外設(shè)在兩邊,它們兩者之間如果要進(jìn)行信息的傳輸,依然需要cpu的參與,所以即使是在 中斷 的方式中,數(shù)據(jù)的傳輸過程,依然需要cpu來做
-
DMA方式中,cpu被進(jìn)一步的從數(shù)據(jù)的輸入輸出工作中解放出來
-
這種方式,在內(nèi)存和I/O之間建立了直接的通路
-
在這個(gè)周期中,cpu不能使用總線對(duì)內(nèi)存進(jìn)行訪問,這個(gè)周期結(jié)束以后,I/O設(shè)備可以繼續(xù)進(jìn)行準(zhǔn)備,cpu可以繼續(xù)執(zhí)行現(xiàn)行的程序,也就是說,這個(gè)周期結(jié)束后,總線的控制權(quán)、對(duì)內(nèi)存的使用權(quán)又歸還給了cpu,在這一個(gè)存取周期中,cpu雖然不能使用系統(tǒng)的總線,不能使用內(nèi)存,不能進(jìn)行訪存操作,但是在這個(gè)周期中,cpu還是可以執(zhí)行
5.2 I/O設(shè)備
概述
輸入設(shè)備
輸出設(shè)備
其他、多媒體技術(shù)
5.3 I/O接口
概述
接口的功能和組成
- 狀態(tài)標(biāo)記 由 觸發(fā)器 實(shí)現(xiàn)
接口類型
5.4 程序查詢方式
程序查詢流程
- 因?yàn)?程序查詢方式 中,要完成內(nèi)存與外設(shè)之間數(shù)據(jù)的輸入輸出,需要借助cpu中的某一個(gè)寄存器對(duì)數(shù)據(jù)進(jìn)行暫存
- 設(shè)置計(jì)數(shù)器的值,是為了控制我們傳輸?shù)臄?shù)據(jù)量
- 設(shè)置計(jì)數(shù)值,有兩種方式 :1.如果我們要傳輸n個(gè)字,計(jì)數(shù)器的值就設(shè)為n,每完成一個(gè)字的傳輸,計(jì)數(shù)器的值就減1,直到減為0;2.把計(jì)數(shù)器的值設(shè)為-n,并且這個(gè)負(fù)數(shù)用補(bǔ)碼來表示,直到計(jì)數(shù)器發(fā)生溢出,里面的值變?yōu)?
- 設(shè)置計(jì)數(shù)值后,為了完成內(nèi)存與I/O之間數(shù)據(jù)傳輸,我們要知道內(nèi)存的這個(gè)塊的起始地址,因此要設(shè)置主存緩沖區(qū)的地址,我們保存數(shù)據(jù)或者讀取數(shù)據(jù)就從這個(gè)緩沖區(qū)的起始地址開始
- 然后就可以啟動(dòng)外部設(shè)備,然后,因?yàn)槲覀兪?程序查詢方式,cpu開始查詢I/O接口的狀態(tài)是否準(zhǔn)備好,如果沒有準(zhǔn)備好,cpu就原地踏步反復(fù)進(jìn)行查詢,一直到狀態(tài)標(biāo)志表明數(shù)據(jù)已經(jīng)準(zhǔn)備好了,這個(gè)查詢才會(huì)停止,
- 傳送好后,修改主存地址,+1或者-1,為輸入或者輸出下一個(gè)數(shù)據(jù)進(jìn)行準(zhǔn)備,同時(shí),為了表面還有多少數(shù)據(jù)需要傳輸,計(jì)數(shù)器的值也要進(jìn)行修改,+1或者-1
程序查詢方式的接口電路
- 首先需要 SEL信號(hào) 有效且 啟動(dòng)命令 有效,這個(gè)I/O接口電路才會(huì)開始工作
- 以 輸入數(shù)據(jù) 為例 :
cpu通過 地址線 給出外部設(shè)備的地址
設(shè)備選擇電路把自己的地址或者端口號(hào)和地址線上的地址進(jìn)行比較,如果相同,說明這次啟動(dòng)的是連接在這個(gè)接口上的設(shè)備,SEL這個(gè)信號(hào)會(huì)有效
在啟動(dòng)命令和SEL都有效的前提下,我們對(duì)兩個(gè)狀態(tài)標(biāo)記進(jìn)行質(zhì)問,到目前為止,是cpu發(fā)出讀命令,設(shè)備還沒開始工作,因此 標(biāo)記D 應(yīng)該為0,表示數(shù)據(jù)還沒有準(zhǔn)備好
B1后,表示設(shè)備忙,設(shè)備開始工作,把數(shù)據(jù)準(zhǔn)備好,并且通過輸入的數(shù)據(jù)線把它保存到DBR,此時(shí),設(shè)備的工作結(jié)束,設(shè)備會(huì)通過設(shè)備的狀態(tài)線向接口電路送入工作結(jié)束信號(hào),這個(gè)信號(hào)會(huì)修改接口電路中的兩個(gè)標(biāo)記,此時(shí),標(biāo)記D應(yīng)該被修改為1,表示數(shù)據(jù)已經(jīng)準(zhǔn)備好了,同時(shí)標(biāo)記B被改為0,表示設(shè)備已經(jīng)工作完成,不忙了
在這個(gè)過程中,一直到D信號(hào)變成1之前,cpu都在原地踏步進(jìn)行查詢,就是查詢D是否變成了1,查詢到D為1說明數(shù)據(jù)已經(jīng)被放入到DBR中了,cpu可以進(jìn)行數(shù)據(jù)傳輸了,cpu就通過數(shù)據(jù)線把數(shù)據(jù)進(jìn)行讀入
5.5 程序中斷方式
中斷的概念
- 中斷 指的是,cpu在執(zhí)行程序的過程中,如果發(fā)生意外事件,或者特殊事件,cpu要中斷當(dāng)前程序的處理,或者當(dāng)前程序的執(zhí)行,轉(zhuǎn)而去處理特殊事件,或者是異常事件;處理結(jié)束后,要返回到被中斷程序的程序斷點(diǎn)繼續(xù)執(zhí)行原來程序
I/O中斷的產(chǎn)生
程序中斷方式的接口電路
- 程序中斷方式的接口電路,除了選址、數(shù)據(jù)緩存等等,還需要圖上這些
- 1.需要 中斷請(qǐng)求標(biāo)志,由外設(shè)對(duì)中斷請(qǐng)求標(biāo)志進(jìn)行設(shè)置,表示有中斷請(qǐng)求;這個(gè)中斷請(qǐng)求標(biāo)志能否變成中斷請(qǐng)求信號(hào)向cpu發(fā)出中斷請(qǐng)求,還要看這個(gè)中斷請(qǐng)求標(biāo)志是否會(huì)被屏蔽掉,所以我們需要一個(gè)中斷屏蔽觸發(fā)器,因?yàn)橛械臅r(shí)候,計(jì)算機(jī)正在執(zhí)行的程序,或者正在執(zhí)行的中斷服務(wù)程序,它的重要性要比這個(gè)設(shè)備提出的中斷請(qǐng)求的重要性要高,那么這個(gè)中斷標(biāo)志就會(huì)被屏蔽掉,不會(huì)對(duì)cpu發(fā)出中斷請(qǐng)求
- 2.我們要用 排隊(duì)電路,在同一個(gè)時(shí)刻,向cpu發(fā)出中斷請(qǐng)求的可能有多個(gè)設(shè)備,這些設(shè)備的優(yōu)先級(jí)不同,比如高速設(shè)備的優(yōu)先級(jí)比較高,不然保存的數(shù)據(jù)可能丟失。經(jīng)過排隊(duì)器后,只有優(yōu)先級(jí)最高的那個(gè)設(shè)備提出的中斷可以被響應(yīng)
- 如果要響應(yīng)這個(gè)中斷,去執(zhí)行中斷服務(wù)程序,cpu必須要知道中斷服務(wù)程序的入口地址,也就是中斷服務(wù)程序在內(nèi)存中的起始地址,因此要采用 中斷向量地址形成部件
- 當(dāng) 完成觸發(fā)器D =1時(shí),設(shè)備已經(jīng)準(zhǔn)備好數(shù)據(jù)了并且把數(shù)據(jù)放在了DBR中,MASK若為0不被屏蔽,此時(shí),中斷請(qǐng)求觸發(fā)器被設(shè)置為1,表示有中斷請(qǐng)求,另外,指令執(zhí)行周期結(jié)束前,cpu會(huì)發(fā)出中斷查詢信號(hào),這個(gè)中斷查詢信號(hào)會(huì)是INTR的D端的輸入,產(chǎn)生中斷請(qǐng)求
-
排隊(duì)有兩種方式,一種是通過硬件實(shí)現(xiàn),另一種是軟件
-
有兩種方式完成硬件實(shí)現(xiàn) :將排隊(duì)電路集中放在cpu內(nèi)部,也可以把硬件的排隊(duì)電路放在每一個(gè)接口中,然后連接在一起,組成一個(gè)鏈,這樣是鏈?zhǔn)脚抨?duì)器
-
軟件方式實(shí)現(xiàn)排隊(duì),實(shí)際上是通過查詢的方法,中斷的優(yōu)先級(jí)在一個(gè)表格中進(jìn)行規(guī)定
-
圖上是 鏈?zhǔn)脚抨?duì)器
-
中斷向量,可以理解成中斷服務(wù)程序的入口地址
-
向量地址 指的是 中斷向量保存的內(nèi)存單元的地址
I/O中斷處理過程
中斷服務(wù)程序流程
5.6 DMA方式
DMA方式的特點(diǎn)
-
這里提到的 周期 ,指的是 訪存周期(內(nèi)存訪問周期)
-
這種情況下,與上一種相比,cpu可以利用這個(gè) 間隙 進(jìn)行訪存操作,使主存儲(chǔ)器和總線的利用率更高
-
這種方式中,由于不需要DMA提出申請(qǐng),建立對(duì)總線的控制權(quán)和對(duì)內(nèi)存的使用權(quán),因此,速度會(huì)比較快
DMA接口的功能和組成
DMA的工作過程
DMA接口的類型
-
通道 也是一種 小型的DMA接口
-
速度越高的設(shè)備,優(yōu)先級(jí) 越高
總結(jié)
以上是生活随笔為你收集整理的计算机组成原理(哈工大刘宏伟)135讲(二)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 尚硅谷最新版JavaWeb全套教程,ja
- 下一篇: 第十一届蓝桥杯大赛软件赛省赛第二场 C/