天天看點

408計算機組成原理強化I/O裝置

I/O裝置

程式查詢方式

程式查詢方式接口中設定一個資料緩沖寄存器(資料端口)和一個裝置狀态寄存器(狀态端口)。主機進行I/O操作時,先發出詢問信号,讀取裝置的狀态并且根據裝置狀态決定下一步操作究竟是進行資料傳送還是等待。

這種題型要注意CPU查詢的速率是否能夠跟上I/O裝置輸入的速率,如果跟不上就會導緻資訊丢失。

408計算機組成原理強化I/O裝置

具體計算流程是先figure out裝置的速率是多少,然後再用裝置的速率除以緩沖區可以緩存的資料容量,計算CPU定時查詢的頻率。

CPU的查詢頻率必須>=上述計算的CPU查詢頻率

滿足這一條件可以計算CPU定時查詢的時間占比,去題目裡面找查詢一次的時間開銷,然後根據結論算出一秒鐘查詢多少次。

程式中斷方式

概述

程式中斷是指在計算機執行現行程式的過程中,出現某些急需處理的異常情況或者特殊請求,CPU暫時中止執行程式,而轉去對這些異常情況或者特殊請求進行處理,處理完畢後再傳回到現行程式的斷點處,繼續執行原程式。早期的中斷處理技術是為了處理資料傳送。

随着計算機的發展,中斷技術不斷被賦予新的功能,主要功能有:

  1. 實作CPU與I/O裝置的并行工作
  2. 處理硬體故障和軟體錯誤
  3. 實作人機互動,使用者幹預機器需要用到中斷系統
  4. 實作多道程式、分時操作,多到程式的切換需要借助于中斷系統
  5. 實時處理需要借助中斷系統來實作快速響應
  6. 實作應用程式和作業系統(管态程式)的切換,稱為"軟中斷"
  7. 多處理器系統中各處理器之間的資訊交流和任務切換
408計算機組成原理強化I/O裝置

流程

不可屏蔽中斷>内部異常>可屏蔽中斷

内部異常中,硬體故障>軟體中斷

可屏蔽中斷中,DMA裝置中斷請求>I/O裝置傳送的中斷請求

I/O裝置傳送請求中,高速裝置>低速裝置

中斷分類

廣義上的可以細分為異常(由CPU内部産生,也稱為内中斷)和中斷(來自CPU外部的裝置向CPU發出的中斷請求)

異常是指CPU執行一條指令時,由CPU在其内部檢測到的與正在執行的指令相關的同步事件,氛圍硬故障中斷(終止,例如存儲器校驗錯、總線錯誤等)和程式性異常(也稱為軟體中斷,軟體中斷例如:整除0、溢出、斷點、單步跟蹤、非法指令、棧溢出、位址越界、缺頁等;要注意的是硬體中斷=終止異常+外中斷,也就是說:軟體中斷+硬體中斷=異常+中斷,硬故障中斷=終止,例如存儲器校驗錯、總線錯誤、控制器出錯)。

1)故障:指引起故障的指令啟動後,執行結束前被檢測到的異常事件。例如“缺段”,“缺頁”,“非法操作碼”,“除數為零”。

2)自陷:自陷也稱陷阱或陷入,它是預先安排的一種“異常”事件,例如用于程式調試“斷點設定”和單步跟蹤的功能就是通過陷阱機制實作的。

3)終止:如果正在執行的指令的過程中發生了使計算機無法繼續執行的硬體故障,那麼程式無法繼續執行,隻能終止,此時調出中斷服務程式來重新開機系統。

中斷處理過程

  1. 關中斷:
  2. 儲存斷點:PC,PSW
  3. 中斷服務程式尋址:對應的服務程式入口位址送入程式計數器PC,有兩種方法識别中斷源:<1>硬體向量法<2>軟體查詢法
  4. 儲存現場和屏蔽字
  5. 開中斷
  6. 執行中斷服務程式
  7. 關中斷
  8. 恢複現場和屏蔽字
  9. 開中斷、中斷傳回:中斷服務程式的最後一條通常是中斷傳回指令

1.~ 3.由中斷隐指令完成而 4.~ 9.由中斷服務程式完成

要注意的是每個終端都有唯一的中斷類型号,每個中斷類型号都對應一個中斷服務程式,每個中斷服務程式都有一個入口位址,即中斷向量。把系統中的全部中斷向量集中存放到存儲器的某個區域内,這個存放中斷向量的存儲區就被稱為中斷向量表。

CPU響應中斷後,通過識别中斷源獲得中斷類型号,然後根據此計算出對應中斷向量的位址;再根據該位址從中斷向量表中取出中斷服務程式的入口位址,并送入程式計數器PC,轉而執行中斷服務程式,這種方法被稱為中斷向量法,采用中斷向量法的中斷被稱為向量中斷。

做題要點

速率/緩沖區大小=中斷頻率 與 一秒鐘PU能處理多少次中斷

2009年真題

408計算機組成原理強化I/O裝置

讀題目可以得到:中斷服務處理18條指令 中斷響應處理2條指令 是以總共的時間開銷為20條指令=每次傳輸的開銷

(1)

(2)

2018年真題

408計算機組成原理強化I/O裝置

(1)

資料緩沖區大小=32位=4B

裝置A速率=2MB/s

每秒查詢 2MB/4B = 0.5M 次

<1>故CPU最多間隔1/0.5M = 2us 時間查詢一次

<2>占總時間百分比=0.5M104/500MHz=4%

(2)

中斷響應和中斷處理的時間為400*(1/500M) = 0.8us

這是需要判斷的是裝置B準備32位資料需要的時間,若準備資料的時間小于中斷響應和中斷處理的時間,那麼說明資料會被重新整理,造成資料的丢失。經過計算,裝置B準備32位資料所用的時間為4B/40MB = 0.1us 是以B不适合采用中斷I/O方式

408計算機組成原理強化I/O裝置

(3)

采用DMA方式時,隻有預處理和後處理需要CPU處理,資料的傳送過程由DMA控制。裝置B每秒的DMA次數最多為40MB/1000B = 40000,CPU用于裝置B輸入/輸出的時間最多為2*107個時鐘周期,占CPU總時間的百分比最多為2*107 /500M = 4%

DMA方式

概述

DMA方式是一種完全由硬體進行成組資訊傳送的控制方式,它具有程式中斷方式的優點,即在資料準備階段,CPU與外設并行工作。DMA方式在外設與主存之間開辟一條“直接資料通路”,資訊傳送不再經過CPU,降低了CPU在傳送資料時的開銷,是以稱為直接存儲器存取方式。由于資料傳送不再經過CPU,是以不必中斷現行程式,I/O與主機并行工作,程式和傳送并行工作。

408計算機組成原理強化I/O裝置

過程

  1. 預處理:由CPU完成一些必要的準備工作。首先,CPU執行幾條I/O指令,用以測試I/O裝置狀态,向DMA控制器的有關寄存器置初值、設定傳送方向、啟動該裝置等
  2. 資料傳送:DMA的資料傳輸可以以單位元組(或字)為基本機關,也可以以資料塊為基本機關。對于以資料塊為機關的傳送(如硬碟),DMA占用總線後的資料輸入和輸出操作都是通過循環來實作的。需要指出的是,這一循環也是由DMA控制器(而非通過CPU執行程式)來實作的,及資料傳送階段完全由DMA(硬體)控制。值得注意的是即使是在DMA與主機以塊為機關進行傳輸時,DMA傳送資料到總線上依然是由字為機關進行傳輸的,正如圖中表明的那樣。
  3. 後處理:DMA控制器向CPU發送中斷請求,CPU執行中斷服務程式做DMA結束處理,包括校驗送入主存的資料是否正确、測試傳送過程中是否出錯(錯誤則轉診斷程式)及決定是否使用DMA傳送其他程式等