IO系統的控制方式


概述

輸入輸出(I/O)系統作為計算機重要組成部分,其重要性也不言而喻。在面試中我們也常常遇到關於該部分的的面試題,下邊讓我一起從系統結構角度來學習一下 I/O系統

I/O 的組成與功能

要學習 I/O 系統,我們首先要知道什么是 I/O 系統,首先我們給出 I/O 系統的學術定義,

概念 I/O 系統,英文全稱為“Input output system”,中文全稱為“輸入輸出系統”,包括 I/O 設備,設備控制器及 I/O 有關軟硬件,是計算機系統的重要組成部分。在計算機系統中,通常把處理器和主存儲器之外的部分稱為輸入輸出系統。

學術定義比較枯燥,我們舉一個簡單例子來幫助大家理解。以打印機為例,打印機設備、連接線、驅動程序等整體便可以算作一個 I/O系統

I/O系統 的主要功能是:對指定外設進行 I/O 操作,同時完成許多其他的控制。包括:外設編址,數據通路的建立,向主機提供外設的狀態信息等。

I/O 系統的控制方式

為了有效地實現物理 I/O 操作,必須通過硬件和軟件技術,對 CPU 和 I/O 設備的職能進行合理的分工,以調節系統性能和硬件成本之間的矛盾。按照 I/O 控制器功能的強弱以及和 CPU 之間聯系方式的不同,可以把 I/O 設備的控制方式分為五類:

  1. 程序控制
  2. 中斷方式
  3. DMA 方式
  4. CH(通道)方式
  5. PPU 方式

下邊我們分五個小專題來對這五種方式來進行講解。

程序控制方式

首先,我們能想到的,當然也是最容易的控制方式毫無疑問肯定是程序控制方式。程序控制方式由用戶進程直接控制主存或 CPU 和外圍設備之間的信息傳送。直接程序控制方式又稱為詢問方式,或忙/等待方式。通過 I/O 指令或詢問指令測試 I/O 設備的忙/閑標志位,決定主存與外圍設備之間是否交換一個字符或一個字。其整個過程的時序圖如下所示:

image-20200320153145053

程序在執行到 IO 操作時,會以一定周期查詢 IO 設備的狀態標志位,如果處於”忙狀態“程序會等待一個周期后,再次進行查詢,直到 IO 設備變為“閑狀態”。整個過程的流程圖如下所示:

image-20200320155000210

直接程序控制方式雖然簡單,不需要多少硬件的支持,但由於高速的 CPU 和低速的 I/O 設備之間的速度上不匹配,因此,CPU 與外圍設備只能串行工作,使 CPU 的絕大部分時間都處於等待是否完成 I/O 操作的循環測試中,造成 CPU 的極大浪費,外圍設備也不能得到合理的使用,整個系統的效率很低。因此,這種 I/O 控制方式只適合於 CPU 執行速度較慢,且外圍設備較少的系統。

中斷方式

為了減少程序直接控制方式下 CPU 的等待時間以及提高系統的並行程度,系統引入了中斷機制。中斷機制引入后,在需要 I/O 服務時才中斷 CPU 的現行工作,轉去執行 I/O 服務。在 I/O 設備輸入每個數據的過程中,由於無需 CPU 的干預,一定程度上實現了 CPU 與 I/O 設備的並行工作。僅當輸入或輸出完一個數據時,才需 CPU 花費極短的時間做中斷處理。

image-20200323103814333

雖然說中斷方式在一定程度上,提高了 CPU 的利用率,由於 I/O 操作直接由 CPU 控制,每傳送一個字符或一個字,都要發生一次中斷,仍然占用了大量的 CPU 處理時間。

我們可以看到,上邊兩種方式本質上還是以 CPU 為中心,所有數據的 IO 操作都需要 CPU 來控制,CPU 的利用率仍然不是很高,為了進一步提高 CPU 利用率,盡量多的讓 CPU 專注於運算工作,減少 IO 任務對 CPU 的干擾,人們又提出了下邊三種方式。

DMA 方式

DMA(Direct Memory Access)方式,或者說直接存儲器訪問控制方式,該種方式下,在 DMA 控制器的控制下,采用竊取或挪用總線控制權,在設備和主存之間開辟直接數據交換通道,成批地交換數據,而不必讓 CPU 干預。

image-20200323105609521

DMA方式 直接依靠硬件在主存與 I/O 設備間進行直接的數據傳遞,在傳遞期不需 CPU 干預。但是注意,雖然好多 IO 操作由 DMA 控制器完成,但是由於 DMA 方式沒有自己的指令集,IO 指令的編碼譯碼工作仍然需要由 CPU 參與。

它具有如下特點:

  1. 對於高速外設可在很大程度上解放了 CPU(數據傳送時,無須 CPU 干預)
  2. 接口電路復雜
  3. 僅屬於初步解放 CPU
  4. 交換數據時靈活性差。

通道(CH)方式

通道,獨立於 CPU 的專門負責輸入輸出控制的處理機,它控制設備與內存直接進行數據交換。有自己的通道指令,這些指令由 CPU 啟動,並在操作結束時向 CPU 發出中斷信號。

通道控制方式,實現了 CPU、通道和 I/O 設備三者的並行操作,從而更加有效地提高整個系統的資源利用率。例如,當 CPU 要完成一組相關的讀(或寫)操作時,只需要向 I/O 通道發出一條 I/O 指令,指出其所要執行的通道程序的首址和要訪問的 I/O 設備,通道接收到該指令后,通過執行通道程序便可完成 CPU 指定的 I/O 任務。可見,通道只是在 I/O 操作的起始和結束時向 CPU 發出 I/O 中斷申請,相對於之前的控制方式進一步減少了 CPU 的干預程度。

但是通道方式也有自己的不足,它雖然有自己的指令系統,但是通道指令功能簡單,使用面窄,與 CPU 共用一個主存,還不是獨立的 I/O 處理機。

外圍處理機方式(PPU)

用一個功能較弱的計算機管理 I/O,徹底解放 CPU,硬件結構最復雜。這個方式下,IO 操作幾乎全部由外圍處理機來完成,此時外圍處理機類似一個小型 PC。

總結

最后我們用一個表格來總結一下這五種 IO 控制方式的特點:

控制方式 特點
直接程序控制方式 ①接口電路簡單,控制方便
②對 CPU 的利用率不充分
中斷方式 ①對於中低速外設,可極大地提高對CPU的利用率.
②接口電路較復雜
③ 對高速外設有可能降低對 CPU 的利用率。
DMA 方式 ①對於高速外設可在很大程度上解放了 CPU(數據傳送時,無須 CPU 干預)
②接口電路復雜
③僅屬於初步解放 CPU
④交換數據時靈活性差。
通道方式 ①有自己的指令系統(CH 指令)和程序(CH 程序)。
②執行通道程序時可與 CPU 的運行同時進行——並行性。
③通道指令功能簡單,使用面窄,與 CPU 共用一個主存,還不是獨立的 I/O 處理機。
外圍處理機方式 ①獨立於主機工作,結構接近 CPU,承擔控制、通信、維護診斷等任務。
②結構復雜成本高


免責聲明!

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



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