組成原理(七)IO系統


第七章 IO系統

7.1 IO系統基本概念

  1. IO設備編址方式
    (1)統一編址 : 和主存統一編址
    (2)不統一編址 : 有專門的IO指令

  2. 設備選址
    用設備選擇電路識別是否被選中

  3. 傳送方式:串行和並行

  4. 聯絡方式:
    (1)立即響應
    (2)異步工作采用應答信號
           並行:image_1atqbcuublfo1uvl1vmd1om03r49.png-5.7kB
           串行:想象網絡傳輸的包
    (3)同步工作采用同步時標

  5. IO設備與主機的連接方式
    (1)輻射式連接:每台設備都有一套控制線和一組信號線。不便於增刪設備
           image_1atqbodvc19st63d1v40186djd3m.png-5kB
    (2)總線連接:便於增刪設備

  6. IO設備分類
    (1)人機交互設備:鍵盤鼠標
    (2)計算機信息存儲設備:磁盤光盤
    (3)機機通信設備:網絡傳輸
    image_1atqe8jcdsv31r2d1cpkgjd1elh1t.png-7.3kB

7.2 CPU對IO設備的控制

  1. 程序查詢方式
    (1)由軟件控制查詢IO設備的狀態,只要設備沒准備好,CPU就會意志詢問狀態
    (2)每次只能傳輸一個字,繼續傳輸CPU就要走下一個IO詢問
    (3)踏步等待,串行傳輸,大量浪費CPU時間
    image_1atqcj49h1hdug3e152m1k4s1oe013.png-30.6kB

  2. 程序中斷方式
    (1)CPU只發出IO請求,啟動設備,然后繼續執行其他工作。IO設備傳輸數據到緩沖寄存器中,存滿則對CPU發出中斷請求,請求把數據傳輸到CPU.
    (2)IO操作和CPU的其他工作是並行進行的。沒有踏步等待,IO傳輸開始會中斷現行程序
    image_1atqdpb4pin61aicnqsv181ck61g.png-36.8kB
    (3)中斷服務程序,解決中斷酸發生的問題。(保留中斷前程序執行的現場,回復中斷后程序執行的現場)
    (4)引起中斷的方式
           人為設置的中斷:轉管指令
           程序性故障:溢出,操作碼不能識別
           硬件故障
           I/O設備
           外部事件用鍵盤中斷現行程序
    (5)中斷系統需要解決的問題
           各中斷源如何向CPU提出中斷請求
           各中斷源同時提出中斷請求怎么辦
           CPU什么條件,什么時間,以什么方式響應中斷
           如何保護現場
           如何尋找入口地址
           如何恢復現場,如何返回
            處理中斷的過程又出現新的中斷怎么辦?
    (6)中斷響應的條件
           中斷源提出中斷請求
           中斷未被屏蔽
           中斷源具有較高的優先級
           CPU允許中斷
           一條指令執行完畢
           沒有更高級的中斷服務程序正在執行
    (7)中斷請求標記和中斷判優邏輯
         中斷請求標記:INTR。INTR是一個中斷請求標記觸發器,多個INTR觸發器組成一個中斷請求寄存器。:
           image_1atsjsu6kffhn9phg51n7n1peqm.png-19.9kB
           (a)硬件實現排隊器(進行中斷判優)
                  分散在各個中斷源的接口電路中,形成鏈式排隊器
                  image_1atskoeo11t8oqot142kt49ep720.png-14.1kB
           (b)軟件實現:按照優先級的順序一次查詢這些設備是否有請求
    (8)中斷服務程序的尋址
           硬件向量法:
                  把上面排隊器的輸出接入到鄉里那個地址形成部件,輸出一個主存地址。這個地址上的內容是提前服務程序
                  排隊器的輸出又稱”向量地址“,向量地址形成部件輸出的物理地址又稱”中斷服務程序的入口地址“
                  image_1atsl9jl12c355e1ksq1iptqtb2t.png-9.7kB
    (8)中斷處理過程
         (a)執行中斷隱指令:
                   硬件關中斷:
                    保存斷點:保存當前程序斷點PC.到特定地址(0號地址),斷點進棧
                   尋找中斷服務程序入口地址:向量地址->PC(硬件向量法)
                   中斷服務程序入口地址M -> PC (軟件查詢法)
         (b)轉入中斷服務程序:
                  保護現場:保護CPU的主要狀態,PCB保存等。通用寄存器入棧保存
                  開中斷:為了響應其它優先級更高的中斷請求。另外在小中斷服務程序執行完畢后,再次響應
                  中斷處理。
                  結尾部分:關中斷,以防止在恢復現場的過程中被新的中斷打斷。
                                    恢復現場
                                    開放中斷
                                    中斷返回
    【注】:保護現場和恢復現場只是一半指令的疊加,例如PC值入棧等操作。這些操作計算並不能意識到是他個數的操作,所以要先關閉中斷,在進行保存和回復操作.
    (9)中斷屏蔽技術
         (a)多重中斷的概念:在執行中斷服務程序的時候,該程序被優先級更高的中斷請求中斷。前提是先開中斷
         (b)屏蔽技術 :
              I. 中斷的優先級是硬件電路實現的,所謂屏蔽,就是在每個電路上,加上mask掩碼電路。
              ii. 通過設置mask掩碼電路的值,和原中斷優先級的判斷進行與操作,來對中斷進行屏蔽。
              iii. (因此,mask值為1不進行屏蔽,為0進行屏蔽)
              V. 中斷屏蔽字的編碼:把所有中斷操作列出01序列,優先級高的位設置為0。

    eg:中斷屏蔽字為A:1111,B:0100,C:0110,D:0111。中斷優先級為:ADCB(0的個數依次增多)

  3. DMA方式:
    (1)概念:
         (a)在數據准備階段,CPU與外設並行工作。數據傳輸階段,DMA方式在外設和主存之間開辟一條”直接數據通道“,數據不再經CPU轉存
         (b)DMA是純硬件方式進行成組信息傳送的IO方式
         (c)因為數據不再經CPU轉存,所以也就不會有CPU保護恢復現場的操作,因此,DMA也稱數據直接存儲
    (2)總線征用方式:因為CPU和DMA控制器都能向總線傳輸數據,所以會導致總線沖突
         (a)停止CPU訪問主存
         (b)DMA與CPU交替訪問主存
         (c)周期挪用
    (3)DMA傳送過程
         (a)預處理:由CPU完成一些准備工作。測試IO設備狀態,啟動設備等。當IO設備准備好發生的數據或接受的數據后,設備向DMA控制器發送DMA請求,然后DMA控制器向CPU發送總線請求
         (b)數據傳送:完全有DMA控制器協調主存和外設進行傳輸數據
         (c)后處理:當數據傳輸完畢,DMA控制器向CPU發送中斷請求,CPU執行中斷服務程序校驗傳輸數據是否准確,是否需要繼續傳輸其他塊等
    【注】:DMA方式,只有預處理和后處理需要CPU進行干預。
         DMA和CPU同時向主存寫入數據時,DMA優先級高於CPU。先讓DMA寫入數據
         不競爭的情況下,CPU在執行完指令后,會空出一個存儲周期,用於DMA中斷

7.3 輸入輸出設備

  1. 輸入設備
    (1)鍵盤:將此鍵翻譯成ASCII碼(編碼鍵盤)

  2. 輸出設備
    (1)顯示器:
                  分辨率:顯示器所能顯示的像素個數
                  灰度級:像素點的亮暗差別(黑白)顏色。每個像素對應的舒心存儲器的位數
                  刷新:反復不斷的掃面整個屏幕
                  刷新存儲器:容量 = 分辨率*灰度級

  3. 外存儲器:硬盤
    (1)按序存儲,不能隨機存儲
    (2)存儲密度:
           道密度:沿磁盤半徑方向單位長度上的磁道數。單位是道/英寸
           位密度:磁道單位長度上能記錄的二進制字節數。單位是位/英寸
           面密度:位密度和道密度的乘積,單位是位/平方英寸
           image_1atsejm0mkun1drbbkd12dd3tr9.png-14.3kB
    (3)磁盤總的平均存取時間

\[T_a = T_s + \frac{1}{2r} + \frac{b}{rN} \]

       存取時間\(T_a\):存取時間是指從發出讀寫命令后,磁頭從某一個起始位置移動到新的記錄位置,到開始從盤面讀出或寫入信息加上傳送數據所需要的時間。
       平均找道時間\(T_s\):將磁頭移動到所要求的磁道上所需的時間(磁臂移動到哪個同心圓)
       平均等待時間\(\frac{1}{2r}\):在同心圓上,移動到哪個圓弧段。(用磁盤旋轉一周所需時間的一半)
       數據傳輸時間\(\frac{b}{rN}\):磁盤存儲器在單位時間內向主機傳送的字節數。
                                   設磁盤轉速為r轉/秒,每條磁道容量為N個字節,數據傳輸率為\(D_r = rN\)字節/秒

7.4 IO接口

  1. IO接口又稱作IO控制器,是主機和外設之間的交接面。用來實現主機和外設質檢的信息交互。主機和外設的工作方式和工作速度具有很大差異,接口正是為了解決這些差異而出現的

  2. IO接口的功能
    (1)實現主機和外設的通信聯絡控制
    (2)進行地址譯碼和設備選擇:把CPU傳來的地址號轉換為制定設備
    (3)實現數據緩沖
    (4)電平信號轉換:外社和主機的電平信號不同,要通過轉換
    (5)傳送控制命令和狀態信息:接收CPU傳來的啟動設備命令,和向CPU傳遞設備准備就緒信號

  3. 接口的邏輯電路
    (1)CPU同外設之間的信息傳送實質是對接口中某些寄存器(端口)進行讀寫。eg:傳送數據就是對DBR讀寫
    (2)內部接口:與系統總線相連,實質上是與內存,CPU相連。數據傳輸方式只能是並行傳輸
             外部接口:外部接口通過接口電纜和外設相連,外部接口的數據傳輸方式是串行傳輸。
             因此,接口要有串並轉換功能
             image_1atstr2bfac2qon1qe370j1tfg3a.png-25.8kB


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM