計算機組成原理——I/O通道

Cuzblind發表於2020-12-15

1、I/O通道裝置的引入(I/O Channel)

---- 在CPU與I/O裝置之間增加了裝置控制器後,已能大大減少CPU對I/O的干預,但當主機所配置的外設很多時,CPU的負擔仍然很重。

為此,在CPU和裝置控制器之間又增設了通道。其主要目的是為了建立獨立的I/O操作,不僅使資料的傳送能獨立於CPU,而且也希望有關

對I/O操作的組織、管理及其結束處理儘量獨立,以保證CPU有更多的時間去進行資料處理。

---- 或者說其目的是:使一些原來由CPU處理的I/O任務轉由通道來承擔,從而把CPU從繁雜的I/O任務中解脫出來。

在設定了通道後,CPU只需向通道傳送一條I/O指令。通道在收到該指令後,便從記憶體中取出本次要執行的通道程式,然後執行該通道程式,

僅當通道完成了規定的I/O任務後,才向CPU發中斷訊號。

---- 實際上,I/O通道是一種特殊的處理機,它具有執行I/O指令的能力,並通過執行通道(I/O)程式來控制I/O操作。

但I/O通道又與一般的處理機不同,主要表現在以下兩個方面:

1)其指令型別單一,這是由於通道硬體比較簡單,其所能執行的命令主要侷限於與I/O操作有關的指令。

2)通道沒有自己的記憶體,通道所執行的通道程式是放在主機的記憶體中的,換言之,是通道與CPU共享記憶體。

2、通道型別

---- 通道是用於控制外圍裝置(包括字元裝置和塊裝置)的。由於外圍裝置的型別較多,且其傳輸速率相差甚大,因而使通道具有多種型別。

根據資訊交換方式的不同,可把通道分成以下三種型別:

1)位元組多路通道(Byte Multiplexor Channel)

這是一種按位元組交叉方式工作的通道。它通常都含有許多非分配型子通道,其數量可從幾十到數百個,每一個子通道連線一臺I/O裝置,並控制

該裝置的I/O操作。這些子通道按時間片輪轉方式共享主通道。當第一個子通道控制其I/O裝置完成一個位元組的交換後,便立即騰出主通道,讓給

第二個子通道使用;當第二個子通道也完成一個位元組的交換後,同樣也把主通道讓給第三個子通道,依此類推。

– 當所有子通道輪轉一週後,重又返回來由第一個子通道去使用位元組多路主通道。這樣,只要位元組多路通道掃描每個子通道的速率足夠快,而

連線到子通道上的裝置的速率不是太高時,便不致丟失資訊。

2)陣列選擇通道(Block Selector Channel)

位元組多路通道不適於連線高速裝置,這推動了按陣列方式進行資料傳送的陣列選擇通道的形成。這種通道雖然可以連線多臺高速裝置,但由於

它只含有一個分配型子通道,在一段時間內只能執行一道通道程式,控制一臺裝置進行資料傳送,致使當某臺裝置佔用了該通道後,便一直由它

獨佔,即使是它無資料傳送,通道被閒置,也不允許其他裝置使用該通道,直至該裝置傳送完畢釋放該通道。這種通道的利用率很低。

3)陣列多路通道(Block Multiplexor Channel)

---- 陣列選擇通道雖有很高的傳輸速率,但它卻每次只允許一個裝置傳輸資料。陣列多路通道是將陣列選擇通道傳輸速率高和位元組多路通道能使各

子通道(裝置)分時並行操作的優點相結合而形成的一種新通道。它含有多個非分配型子通道,因而這種通道既具有很高的資料傳輸速率,又能

獲得令人滿意的通道利用率。因此該通道被廣泛的用於連線多臺高、中速的外圍裝置,資料傳送是按陣列方式進行的。

相關文章