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設備的方式
3. 設備的連線和工作方式
起兩個問題:
承擔,CPU的I/O負擔很重,不能專心於用
戶程式的計算。
多,但是一般並不同時工作。
6.5.3 通道
1. 通道的功能
(1) 接受CPU發來的I/O指令,根據指令要求選
(2) 執行CPU為通道組織的通道程式,從主存中
取出通道指令,對通道指令進行解碼,並根
據需要向被選中的設備控制器發出各種操作
命令。
作的數據所在的位置。
(4) 給出主存緩衝區的首地址,這個緩衝區用來暫時
要輸出到外圍設備中去的數據。
(5) 控制外圍設備與主存緩衝區之間數據交換的個數,
作是否結束。
(6) 指定傳送工作結束時要進行的操作。
(7) 檢查外圍設備的工作狀態,是正常或
故障。根據
需要將設備的狀態信息送往主存指定單元保存。
(8) 在數據傳輸過程中完成必要的格式變換。
2. 通道的主要硬體
(1) 暫存器部分
主存地址計數器
傳輸位元組數計數器
(2) 控制部分
分時控制
地址分配
數據裝配
拆卸
3. 通道對
外圍設備的控制通過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)分時傳送:分時傳送有兩層含義,一層含義是在匯流排上分時傳送不同類型的信息;另一層含義是共享匯流排的各部件分時使用匯流排。