I/O通道

I/O通道

I/O通道(I/O Channel)設備的引入實際上,I/O通道是一種特殊的處理機。它具有執行I/O指令的能力,並通過執行通道(I/O)程式來控制I/O操作。但I/O通道又與一般的處理機不同,主要表現在以下兩個方面:一是其指令類型單一,這是由於通道硬體比較簡單,其所能執行的命令,主要局限於與I/O操作有關的指令;再就是通道沒有自己的記憶體,通道所執行的通道程式是放在主機的記憶體中的,換言之,是通道與CPU共享記憶體。

基本介紹

  • 中文名:I/O通道
  • 外文名:I/O Channels
  • 所屬範圍:計算機技術
I/O通道(Channel),通道的類型,I/O指令和通道指令,通道的組成,通道的工作過程,信息的傳送方式,

I/O通道(Channel)

一條大型機通道(channel)某種程度上類似於PCI 匯流排(bus),它能將一個或多個控制器連線起來,而這些控制器又控制著一個或更多的設備(磁碟驅動器終端、LAN連線埠,等等。)大型機通道和PCI匯流排之間的一個主要區別是大型機通道通過幾對大的bus and tag 電纜(並行通道方式),或者通過常使用ESCON(Enterprise System Connection)光導纖維電纜(串列通道方式)以及光纖通道來連線控制器。這些通道在早期是一些外置的盒子(每個約6’X30’’X5’H大小),都已經整合到了系統框架內。
這些通道的超強I/O處理能力是大型機系統功能如此強大的原因之一。
2. CPU定址I/O設備的方式
◆ I/O設備單獨編址
無論選擇哪一種編址方法,每個I/O設備
3. 設備的連線和工作方式
直接傳送、程式查詢、中斷、DMA、I/O處理機
4. 程式控制、中斷和DMA方式管理外圍設備會引
起兩個問題:
◆ 所有外圍設備的I/O工作全部都要由CPU來
承擔,CPU的I/O負擔很重,不能專心於用
戶程式的計算。
大型計算機系統中的外圍設備台數雖然很
多,但是一般並不同時工作。
解決上述問題的方法:採用通道處理機
6.5.3 通道
通道處理機能夠負擔外圍設備的大部分I/O工作。
通道處理機:能夠執行有限I/O指令,並且能夠被多
外圍設備共享的小型DMA專用處理機
1. 通道的功能
(1) 接受CPU發來的I/O指令,根據指令要求選
擇一台指定的外圍設備與通道相連線。
(2) 執行CPU為通道組織的通道程式,從主存中
取出通道指令,對通道指令進行解碼,並根
據需要向被選中的設備控制器發出各種操作
命令。
(3) 給出外圍設備的有關地址,即進行讀/寫操
作的數據所在的位置。
磁碟存儲器的柱面號、磁頭號、扇區號等。
(4) 給出主存緩衝區的首地址,這個緩衝區用來暫時
存放從外圍設備上輸入的數據,或者暫時存放將
要輸出到外圍設備中去的數據。
(5) 控制外圍設備與主存緩衝區之間數據交換的個數,
對交換的數據個數進行計數,並判斷數據傳送
作是否結束。
(6) 指定傳送工作結束時要進行的操作。
(7) 檢查外圍設備的工作狀態,是正常或故障。根據
需要將設備的狀態信息送往主存指定單元保存。
(8) 在數據傳輸過程中完成必要的格式變換。
例如 把字拆卸為位元組,或者把位元組裝配成字
2. 通道的主要硬體
(1) 暫存器部分
主存地址計數器
傳輸位元組數計數器
(2) 控制部分
分時控制
地址分配
數據裝配
拆卸
3. 通道對外圍設備的控制通過I/O接口和設備控制
器進行
通道與設備控制器之間一般採用標準的I/O
接口來連線。

通道的類型

按通道的工作方式,通道分為選擇通道、位元組多路通道和數組多路通道三種類型。
(1)選擇通道:這種通道可以連線多台快速I/O設備,但每次只能從中選擇一台設備執行通道程式,進行主存與該設備之間的數據傳送。當數據傳送完後,才能選擇另一台設備。在這種工作方式中,數據傳送以成組方式進行,傳送速率很高,多用於連線快速I/O設備。但因連線在選擇通道上的多台設備,只能依次使用通道與主存傳送數據,故設備之間不能並行工作,且整個通道的利用率不高。
(2)位元組多路通道:這種通道可以連線多台慢速I/O設備,以交叉方式傳送數據,即各設備輪流使用通道與主存進行數據傳送,且每次只傳送一個位元組。因為每次數據傳送僅占用了不同的設備各自分得的很短的時間片,所以大大提高了通道的利用率。
(3)數組多路通道:數組多路通道綜合了選擇通道和位元組多路通道的優點,它有多個子通道。即可以像位元組多路通道那樣,執行多路通道程式,使所有子通道分時共享總通道;又可以像選擇通道那樣進行成組數據的傳送。
子通道是指實現每個通道程式所對應的硬設備。選擇通道在物理上可以連線多台設備,但在一段時間內只能執行一台設備的通道程式,即在邏輯上只能連線一台設備,所以它只包含一個子通道。位元組多路通道和數組多路通道在物理上可以連線多台設備,而且在一段時間內可輪流執行多台設備的通道程式,即在邏輯上也可以連線多台設備,所以它們包含若干子通道。需要注意的是,一個子通道可以連線多台設備,但子通道數並不等於物理上可連線的設備數,而是該通道中能夠同時工作的設備數。

I/O指令和通道指令

(1)I/O指令:I/O指令是計算機系統的一部分,由CPU執行。在採用通道的計算機系統中,I/O指令不直接控制I/O數據的傳送,它只負責啟動、停止I/O的過程、查詢通道和I/O設備的狀態、控制通道進行某些操作。
(2)通道指令及其格式:通道指令也稱通道控制字CCW,它是通道用於執行I/O操作的指令,由通道從主存中取出並執行之。
命令:命令用於說明通道和設備執行什麼操作。命令一般又分為基本操作位和補充位兩部分。通道運行時只識別基本操作位,而不識別補充位。
數據地址:它給出本次I/O操作時的主存緩衝區首地址,在數據傳送過程中,每傳送一個字或一個位元組,它就加1或減1。
傳送位元組數:它表示數據傳送位元組數,每傳送一個位元組就修改其值,當為0時,表明傳送結束。
特徵位:
數據鏈特徵位(SD) 若SD=1,表示下一條通道指令也是數據傳送指令。
命令鏈特徵位(CD) 若CD=1,表示該通道指令執行完畢,下一條要執行的通道指令與該通道指令的操作不同。
封鎖錯誤長度特徵(SLL) 錯誤長度是指通道指令中所給定的傳送位元組數與I/O設備請求傳送的位元組數不相等,則該通道指令執行完畢產生錯誤長度標誌,並向CPU發出中斷請求。若SLL=1,即使產生長度錯標誌,出不向CPU發出中斷請求,繼續向下執行通道指令。
封鎖寫入主存特徵位(SKIP) SKIP=1時,禁止將I/O設備讀出的數據寫入主存。
程式控制中斷特徵位(PCI) PCI=1時,表示執行本通道指令時,允許產生一個中斷條件。
說明:SD=0,CD=0本通道指令是通道程式的最後一條指令,可向CPU發出中斷請求。
SD=1,CD=0下一條通道指令和本條通道的操作命令相同。
SD=0,CD=1下一條通道指令和本條通道的操作命令不同。
(3)通道程式:通道程式是由一條或若干條通道指令組成,存放在主存中,它是通過命令鏈和數據鏈等特徵來實現的。

通道的組成

不同的通道,其組成也不同,下面以選擇通道為例介紹通道的組成。
(1)通道地址字暫存器CAWR:它存放從主存某固定單元中讀出的通道地址字CAW,再從CAW中取出通道程式首地址。通道中的CAWR類似於CPU中的程式計數器PC。
(2)通道指令暫存器CCWR:它存放從主存中讀出的通道指令,根據該通道指令向設備控制器發出控制命令。
(3)數據緩衝暫存器:當發生訪存衝突時,它用於暫時保存數據,等待一段時間後再傳送。另外,通道與設備之間按位元組傳送,而通道與主存之間按字傳送,故它具有組裝與拆分功能。
(4)設備地址暫存器:它接受啟動I/O指令(SIO)中所包含的設備號,並依次向I/O匯流排送出設備地址,經解碼產生選中設備信號。
(5)通道狀態字暫存器CSWR:它存放通道與設備的狀態信息。
(6)通道控制器:它產生控制通道操作的各種信號,類似於CPU中的微程式信號發生器。

通道的工作過程

(1)初始化:
編制通道程式;
根據需要在主存中開闢I/O緩衝區;
將緩衝區首址及傳送位元組數送到通道程式中,並將通道程式首地址寫入某固定單元;
執行啟動命令SIO,該指令中給出通道號及設備號。
(2)通道和設備的啟動:
指定的通道接到啟動信號後,從某固定單元中讀出通道地址字CAW;
CAW送入通道地址暫存器CAWR;
通道將SIO指令送來的設備號送入設備地址暫存器,然後向I/O匯流排送出所要啟動的設備號;
指定設備向通道送出回答信號,並回送本設備地址;
若回送的設備地址與通道送出的設備地址一致,則啟動成功;
通道根據VAWR中的內容從主存取出第一條通道指令CCW1,並存於通道指令暫存器CCWR中,然後根據CCW1中的命令碼去啟動設備;
設備在接到第一條通道發出的命令後,向通道送出狀態碼,若狀態碼全為0,則通道向CPU送出條件碼,並告之啟動成功。反之,則表示不能正常執行通道命令,並說明失敗的原因。
數據傳送:執行完第一條通道指令後,CAWR增值,以便讀出第二條通道指令。若執行的是數據傳送指令,當其傳送位元組數減到0時,表明該通道指令執行完畢,本次數據傳送結束。依次類推,直到執行的某條通道指令中SD和CD均為0,則該通道指令是本通道程式中的最後一條。
(4)通道程式的結束:當執行完通道程式的最後一條通道指令,則結束通道程式:一方面通道向設備發出結束命令,一方面向CPU發出中斷請求信號,並將通道狀態寫入主存專用單元。
設備接到結束命令後立即進行某些必要的動作,例如磁帶繼續運行一段,使磁頭停止在兩個數據之間的空白處。在設備必要的動作結束後,反饋給通道一個信號,以斷開與通道的連線。
CPU接到中斷請求信號後,回響中斷,執行I/O中斷管理程式,對通道作結束處理。

信息的傳送方式

在計算機中,信息傳送方式有四種:串列傳送、並行傳送、並串列傳送和分時傳送。
(1)串列傳送:串列傳送就是一根數據線從低到高的順序逐位傳送數據。一般外匯流排採用串列傳送方式。
(2)並行傳送:並行傳送是用多根數據線同時傳送一個字或一個位元組的所有位,將同時傳送的數據位數稱為該匯流排的數據通路寬度。系統匯流排通常採用並行傳送方式,以提高速度和效率。
(3)並串列傳送:它是並行和串列傳送的結合。例如要傳送的數據有多個位元組組成,那么傳送一個位元組時採用並行傳送,而位元組之間採用串列傳送。
(4)分時傳送:分時傳送有兩層含義,一層含義是在匯流排上分時傳送不同類型的信息;另一層含義是共享匯流排的各部件分時使用匯流排。

相關詞條

熱門詞條

聯絡我們