複製鏈接
請複製以下鏈接發送給好友

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通道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
接口來連接。

I/O通道通道的類型

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

I/O通道I/O指令和通道指令

(1)I/O指令:I/O指令是計算機系統的一部分,由CPU執行。在採用通道的計算機系統中,I/O指令不直接控制I/O數據的傳送,它只負責啓動、停止I/O的過程、查詢通道和I/O設備的狀態、控制通道進行某些操作。 [1] 
(2)通道指令及其格式:通道指令也稱通道控制字CCW,它是通道用於執行I/O操作的指令,由通道從主存中取出並執行之。 [1] 
命令:命令用於説明通道和設備執行什麼操作。命令一般又分為基本操作位和補充位兩部分。通道運行時只識別基本操作位,而不識別補充位。
數據地址:它給出本次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] 

I/O通道通道的組成

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

I/O通道通道的工作過程

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

I/O通道信息的傳送方式

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