【計算機組成原理】 輸入/輸出系統

I/O 系統基本概念程序員

I/O 系統中的幾個基本概念以下:編程

  1. 外部設備。包括輸入/輸出設備及經過輸入。輸出接口才能訪問的外存儲結構。
  2. 接口。在各個外設與主機之間傳輸數據時進行各類協調工做的邏輯部件。協調包括傳輸過程當中速度的匹配、電平和格式轉換等。
  3. 輸入設備,用於向計算機系統輸入命令和文本、數據等信息的部件。鍵盤和鼠標是最基本的輸入設備。
  4. 輸出設備。用於將計算機系統中的信息輸出到計算機外部進行顯示、交換等的部件。顯示器和打印機是最基本的輸出設備。
  5. 外存設備。指除計算機內存及 CPU 緩存等外的存儲器。硬磁盤、光盤等是最基本的外存設備。

 

通常來講,I/O 系統由 I/O 軟件和 I/O 硬件兩部分構成:緩存

  1. I/O 軟件。包括驅動程序、用戶程序、管理程序、升級補丁等。一般採用 I/O 指令和通道指令實現 CPU 與 I/O 設備的信息交換。
  2. I/O 硬件。包括外部設備、設備控制器和接口、I/O 總線等。經過設備控制器來控制 I/O 設備的具體動做:經過 I/O 接口與主機(總線)相連。

 

在輸入/輸出系統中,常常須要進行大量的數據傳輸,而傳輸過程當中有各類不一樣的 I/O 控制方式,基本的控制方式有如下 4 種:安全

  1. 程序查詢方式。由 CPU 經過程序不斷查詢 I/O 設備是否已經作好準備,從而控制 I/O 設備與主機交換信息。
  2. 程序中斷方式。只在 I/O 設備準備就緒並向 CPU 發出中斷請求時才予以響應。
  3. DMA 方式。主存和 I/O 設備之間有一條直接數據通路,當主存和 I/O 設備交換信息時,無須調用中斷服務程序。
  4. 通道方式。在系統中設有通道控制部件,每一個通道都掛接若干外設,主機在執行 I/O 命令時,只需啓動有關通道,通道將執行通道程序,從而完成 I/O 操做。

其中,方式 1 和方式 2 主要用於數據傳輸率較低的外部設備,方式 3 和方式 4 主要用於數據傳輸率較高的設備。性能

 

I/O 設備不可能直接與主板總線相連,它老是經過設備控制器來相連的。spa

I/O  指令是指令系統的一部分,時及其指令的一類,但其爲了反映與 I/O 設備交互的特色,格式和其餘通用指令相比有所不一樣。blog

通道程序存放在主存而非通道中,由通道從主存中取出並執行。通道程序由通道執行,且只能在具備通道的 I/O 系統中執行。接口

 

 

顯示器的主要參數:進程

分辨率:所能表示的像素個數,屏幕上的每一個光點就是一個像素,以寬和高的像素數的乘積表示,如 800 * 600、1280 * 1024等。事件

灰度級:灰度級是指黑白顯示器中所顯示的像素點的亮暗差異,在彩色顯示器中則表現爲顏色的不一樣,灰度級越多,圖像層次越清楚,典型的有 8 位(256級)、16 位等。

刷新:光點只能保持極短的時間便會消失,爲此必須在廣電消失以前再從新掃描顯示一遍,這個過程稱爲刷新。

刷新頻率:指單位時間內掃描整個屏幕內容的次數。按照人的視覺生理,刷新頻率大於 30 Hz 時纔不會感到閃爍,一般顯示器的刷新頻率爲 60~120 Hz。

顯示存儲器(VRAM):也稱刷新存儲器,爲了避免斷提升刷新圖像的信號,必須把一幀圖像信息存儲在刷新存儲器中。其存儲容量由圖像分辨率和灰度級決定,分辨率越高,灰度級越多。刷新存儲器容量越大。VRAM 容量 = 分辨率 * 灰度級位數,VRAM 帶寬 = 分辨率 * 灰度級位數 * 幀頻。

 

RAID(廉價冗餘磁盤陣列)是指將多個獨立的物理磁盤組成一個獨立的邏輯盤,數據在多個物理盤上分割交叉存儲、並行訪問,具備更好的存儲性能、可靠性和安全性。RAID 經過同時使用多個磁盤,提升了傳輸率;經過在多個磁盤上並行存取來大幅提升存儲系統的數據吞吐量;經過鏡像功能,提升安全可靠性;經過數據校驗,提供容錯能力。

 

在字符顯示器的 VRAM 中存放 ASCII 碼以顯示字符。

刷新存儲器中存儲單元的字長取決於顯示的顏色數,顏色數爲 m,字長爲 n,兩者的關係爲 2n = m。

 

I/O 接口

I/O 接口(I/O 控制器)是主機和外設之間的交接界面,經過接口能夠實現主機和外設之間的信息交換。主機和外設具備各自的工做特色,它們在信息形式和工做速度上具備很大的差別,接口正是爲了解決這些差別而設置的。

 

I/O 接口的主要功能以下:

  1. 實現主機和外設的通訊聯絡控制。解決主機與外設時序配合問題,協調不一樣工做速度的外設和主機之間交換信息,以保證整個計算機系統能統1、協調地工做。
  2. 進行地址譯碼和設備選擇。CPU 送來選擇外設的地址碼後,接口必須對地址進行譯碼以以產生設備選擇信息,使主機能和指定外設交換信息。
  3. 實現數據緩衝。CPU 與外設之間的速度每每不匹配,爲消除速度差別,接口必須設置數據緩衝寄存器,用於數據的暫存,以免因速度不一致而丟失數據。
  4. 信號格式的轉換。外設與主機二者的電平、數據格式均可能存在差別,接口應提供計算機與外設的信號格式的轉換功能,如電平轉換、並/串或串/並轉換、模/數或數/模轉換等。
  5. 傳送控制命令和狀態信息。CPU 要啓動某一外設時,經過接口中的命令寄存器向外設發出啓動命令;外設準備就緒時,則將「準備好」狀態信息送回接口中的狀態寄存器,並反饋給 CPU。外設向 CPU 提出中斷請求和 DMA 請求時,CPU 也應有相應的響應信號反饋給外設。

 

CPU 與外設之間的信息傳送,實質上是對接口中的某些寄存器(即端口)進行讀或寫,如傳送數據是對數據端口 DBR 進行讀寫操做。

內部接口:內部接口與系統總線相連,實質上是與內存、CPU 相連。數據的傳輸方式只能是並行傳輸。

外部接口:外部接口經過接口電纜與外設相連,外部接口的數據傳輸多是串行方式,所以 I/O 接口需具備串/並轉換功能。

接口和端口是兩個不一樣的概念。端口是指接口電路中能夠進行讀/寫的寄存器,若干端口加上相應的控制邏輯才能夠組成接口。

 

從不一樣的角度看,I/O 接口能夠分爲不一樣的類型。

  1. 按數據傳送方式可分爲並行接口(一個字節或一個字的全部位同時傳送)和串行接口(一位一位地傳送),接口要完成數據格式的轉換。(這裏所說的數據傳送方式指的是外設和接口一側的傳送方式,而在主機和接口一側,數據老是並行傳送的)
  2. 按主機訪問 I/O 設備的控制方式可分爲程序查詢接口、中斷接口和 DMA 接口等。
  3. 按功能選擇的靈活性可分爲可編程接口和不可編程接口。

 

I/O 端口是指接口電路中可被 CPU 直接訪問的寄存器,主要有數據端口、狀態端口和控制端口,若干端口加上相應的控制邏輯電路組成接口。一般,CPU 能對數據端口執行讀寫操做,但對狀態端口只能執行讀操做,對控制端口只能執行寫操做。

  

  I/O 端口要想可以被 CPU 訪問,必需要有端口地址,每一個端口對應一個端口地址。而對 I/O 端口的編址方式有與存儲器統一編址和獨立編址兩種。

  1. 統一編址,又稱存儲器映射方式,是指把 I/O 端口看成存儲器的單元進行地址分配,這種方式 CPU 不須要設置專門的 I/O 指令,用統一的訪存指令能夠訪問 I/O 端口。優勢:不須要專門的輸入/輸出指令,可以使 CPU 訪問 I/O 的操做更靈活、更方便,還可以使端口有較大的編址空間。缺點:端口占用存儲器地址,使內存容量變小,並且利用存儲器編址的 I/O 設備進行數據輸入/輸出操做,執行速度較慢。
  2. 獨立編址,又稱 I/O 映射方式,是指 I/O 端口地址與存儲器地址無關,獨立編址 CPU 須要設置專門的輸入/輸出指令訪問端口。優勢:輸入/輸出指令與存儲器指令有明顯區別,程序編制清晰,便於理解。缺點:輸入/輸出指令少,通常只能對端口進行傳送操做,尤爲須要 CPU 提供存儲器讀/寫、I/O 設備讀/寫兩組控制信號,增長了控制的複雜性。

 

在統一編址的方式下,區分存儲單元和 I/O 設備是靠不一樣的地址線。

I/O 的編址方式採用統一編址方式時,進行輸入/輸出的操做的指令是訪存指令。統一編址時,直接使用指令系統中的訪存指令來完成輸入/輸出操做;獨立編址時,則須要使用專門的輸入/輸出指令來完成輸入/輸出操做。

程序員進行系統調用訪問設備使用的是邏輯地址。

 

I/O 方式

經常使用的 I/O 方式有程序查詢、程序中斷、DMA 和通道等,其中前兩種方式更依賴於 CPU 中程序指令的執行。

 

外中斷是指來自處理器和內存之外的部件引發的中斷,包括 I/O 設備發出的 I/O 中斷、外部信號中斷(如用戶按 Esc 鍵),以及各類定時器引發的時鐘中斷等。外中斷在狹義上通常稱爲中斷。

內中斷主要是指在處理器和內存內部產生的中斷,包括程序運算引發的各類錯誤,如地址非法、校驗錯、頁面失效、存取訪問控制錯、算術溢出操做、數據格式非法、除數爲 0、非法指令、用戶程序執行特權指令、分時系統中的時間片中斷及用戶態到核心態的切換等。

 

硬件中斷:經過外部的硬件產生的中斷。硬件中斷屬於外中斷。

軟件中斷:經過某條指令產生的中斷,這種中斷是能夠編程實現的。軟件中斷是內中斷。

 

非屏蔽中斷:非屏蔽中斷是一種硬件中斷,此種中斷經過不可屏蔽中斷請求 NMI 控制,不受中斷標誌位 IF 的影響,即便在關中斷(IF = 0)的狀況下也會被響應。

可屏蔽中斷:可屏蔽中斷也是一種硬件中斷,此種中斷經過中斷請求標記觸發器 INTR 控制,且受中斷標誌位影響,在關中斷狀況下不接受中斷請求。

 

中斷判優既能夠用硬件實現,又可用軟件實現。硬件實現是經過硬件排隊器實現的,它既能夠設置在 CPU 中,又能夠分散在各個中斷源中,軟件實現是經過查詢程序實現的。通常來講,硬件故障中斷屬於最高級,其次是軟件中斷,非屏蔽中斷優於可屏蔽中斷,DMA 請求優於 I/O 設備傳送的中斷請求,高速設備優於低速設備,輸入設備優於輸出設備,實時設備優於普通設備等。

 

CPU 響應中斷後,通過某些操做,轉去執行中斷服務程序。這些操做是由硬件直接實現的,咱們將它稱爲中斷隱指令。中斷隱指令並非系統中的一體真正的指令,它沒有操做碼,因此中斷隱指令是一種不容許也不可能爲用戶使用的特殊指令。它所完成的操做以下:

  1. 關中斷。在中斷服務程序中,爲了保護中斷現場(即 CPU 主要寄存器中的內容)期間不被新的中斷打斷,必須關中斷,從而保證被中斷的程序在中斷服務程序執行完畢後能接着正確地執行。
  2. 保存斷點。爲保證在中斷服務程序執行完畢後能正確地返回到原來地程序,必須將原來程序的斷點【即程序計數器(PC)的內容】保存起來。
  3. 引出中斷服務程序。引出中斷服務程序的實質是,取出中斷服務程序的入口地址並傳送給程序計數器(PC)。

 

不一樣的設備有不一樣的中斷服務程序,每一箇中斷服務程序都有一個入口地址,CPU 必須找到這個入口地址,即中斷向量。

 

中斷處理過程:(1)關中斷(2)保存斷點(3)引出中斷服務程序(以上三步由硬件完成)(4)保存現場和屏蔽字(5)開中斷(6)執行中斷服務程序(7)關中斷(8)恢復現場和屏蔽字(9)開中斷、中斷返回(以上六步由中斷程序完成)

 

 

 

 

 

 在 DMA 方式中,中斷的做用僅限於故障和正常傳送結束時的處理。

 

主存和 DMA 接口之間有一條直接數據通路。因爲 DMA 方式傳送數據不須要通過 CPU,所以沒必要中斷現行程序,I/O 與主機並行工做,程序和傳送並行工做。

DMA 方式具備如下特色:

  1. 它使主存與 CPU 的固定聯繫脫鉤,主存既可被 CPU 訪問,又可被外設訪問。
  2. 在數據塊傳送時,主存的地址肯定、傳送數據的計數等都由硬件電路直接實現。
  3. 主存中要開闢專用緩衝區,及時供給和接收外設的數據。
  4. DMA 傳送速度快,CPU 和外設並行工做,提升了系統效率。
  5. DMA 在傳送開始以前要經過程序進行預處理,結束後要經過中斷方式進行後處理。

 

當 I/O 設備須要進行數據傳輸時,經過 DMA 控制器向 CPU 提出 DMA 傳送請求,CPU 響應後將讓出系統總線,由 DMA 控制器接管總線進行數據傳送。其主要給功能以下:

  1. 接受外設發出的 DMA 請求,並向 CPU 發出總線請求。
  2. CPU 響應此總線請求,發出總線響應信號,接管總線控制權,進入 DMA 操做週期。
  3. 肯定傳送數據的主存單元地址及長度,並自動修改主存地址計數和傳送長度計數。
  4. 規定數據在主存和外設之間的傳送方向,發出讀寫等控制信號,執行數據傳送操做。

 

主存和 DMA  控制器之間有一條數據通路,所以主存和 I/O 設備之間交換信息時,不經過 CPU。但當 I/O 設備和 CPU 同時訪問主存時,可能發生衝突,爲了有效地使用主存,DMA 控制器與 CPU一般採用如下 3 種方式使用主存:

  1. 中止 CPU 訪問主存。這種方式是當外設須要傳送成組數據時,由 DMA 接口向 CPU 發送一個信號,要求 CPU 放棄地址線、數據線及有關控制線的使用權,DMA 接口得到總線控制權後,開始進行數據傳送。數據傳送結束後,DMA 接口通知 CPU 可使用主存,並把總線控制權交還給 CPU。在這種傳送過程當中,CPU 基本處於不工做狀態或保持原始狀態。
  2. DMA 與 CPU 交替訪存。這種方式適用於 CPU 的工做週期比主存存取週期長的狀況。例如,若 CPU 的工做週期是 1.2μs,主存的存取週期小於 0.6μs,則可將一個 CPU 週期分爲 C1 和 C2 兩個週期,其中 C1 專供 DMA 訪存, C2 專供 訪存。這種方式不須要總線使用權的申請、創建和歸還過程,總線使用權是經過 C1 和 C2 分時控制的。
  3. 週期挪用(週期竊取)這種方式是前兩種方式的折中。當 I/O 設備沒有 DMA 請求時,CPU 按程序的要求訪問主存,一旦 I/O 設備有了 DMA 請求,就會遇到 3 種 狀況,第 1 種是此時 CPU 不在訪存(入 CPU 正在執行乘法指令),故 I/O 的訪存請求與 CPU 未發生衝突;第 2 種是 CPU 正在訪存,此時必須待存取週期結束後,CPU 再將總線佔有權讓出;第 3 種是 I/O 和 CPU 同時請求訪存,出現訪存衝突,此時 CPU 要暫時放棄總線佔有權,由 I/O 設備挪用一個或幾個存取週期。

 

DMA 方式和中斷方式的區別:

  1. 中斷方式是程序的切換,須要保護和恢復現場;而 DMA 方式除了預處理和後處理,其餘時候不佔用 CPU 的任何資源。
  2. 對中斷請求的響應只能發生在每條指令執行完畢時(即指令的執行週期後);而對 DMA 請求的響應能夠發生在每一個機器週期結束時(在取指週期、間址週期、執行週期後都可),只要 CPU 不佔用總線就可被響應。
  3. 中斷傳送過程須要 CPU 的干預;而 DMA 傳送過程不須要 CPU 的干預,故數據傳輸率很是高,適合於高速外設的成組數據傳送。
  4. DMA 請求的優先級高於中斷請求。
  5. 中斷方式具備對異常事件的處理能力,而 DMA 方式僅侷限於傳送數據塊的 I/O 操做。
  6. 從數據傳送來看,中斷方式靠程序傳送,DMA 方式靠硬件傳送

 

 中斷向量的地址是中斷服務程序入口地址的地址。(俄羅斯套娃再現)

只有具備 DMA J接口的設備才能產生 DMA 請求。

一條指令執行完畢不可能發生中斷請求,而可能響應中斷請求。

容許中斷觸發器置 0 表示關中斷,由中斷隱指令完成,即由硬件自動完成。

多重中斷系統在保護被中斷進程現場時關中斷,執行中斷處理程序時開中斷,即中斷處理期間 CPU 不必定處於關中斷狀態。

程序中斷方式和 DMA 方式都有中斷請求,但目的不一樣。

CPU 響應中斷方式的特色是 CPU 和外設並行工做,傳送與主程序串行工做;DMA 方式的特色是 CPU 與外設並行工做,傳送與主程序並行工做

CPU 響應 DMA 請求的條件是當前機器週期執行完。DMA 在與主存交換數據時經過週期竊取方式,竊取的是存儲週期。

DMA 方式傳送數據時,挪用週期不會改變 CPU 現場,所以無須佔用 CPU 的程序計數器和寄存器。

 

中斷響應優先級是由硬件排隊線路或中斷查詢程序的查詢順序決定的,不可動態改變;而中斷處理優先級能夠由中斷屏蔽字來改變,反映的是正在處理的中斷是否比新發生的中斷的處理優先級低(屏蔽位爲「0」,對新中斷開放),如果,則停止正在處理的中斷,轉到新中斷去處理,處理完後再回到剛纔被停止的中斷繼續處理。

 

以上均來自王道書籍及課程等

相關文章
相關標籤/搜索