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