原理
從信息傳輸速率來講,相差也很懸殊。如果把高速工作的主機同不同速度工作的外圍設備相連線,保證主機與外圍設備在時間上同步要討論的外圍設備的定時問題。輸入/輸出設備同CPU交換數據的過程:
輸入過程:
(1)CPU把一個地址值放在地址匯流排上,這一步將選擇某一輸入設備;
(2)CPU等候輸入設備的數據成為有效;
(3)CPU從數據匯流排讀入數據,並放在一個相應的暫存器中。
輸出過程:
(1)CPU把一個地址值放在地址匯流排上,選擇輸出設備;
(2)CPU把數據放在數據匯流排上;
(3)輸出設備認為數據有效,從而把數據取走。
定時方式
由於輸入/輸出設備本身的速度差異很大,因此,對於不同速度的外圍設備,需要有不同的定時方式,總的說來,CPU與外圍設備之間的定時,有以下三種情況。1.速度極慢或簡單的外圍設備
對這類設備,如機械開關、顯示二極體等等,CPU總是能足夠快地作出回響。換句話說,對機械開關來講,CPU可以認為輸入的數據一直有效,因為機械開關的動作相對CPU的速度來講是非常慢的,對顯示二極體來講,CPU可以認為輸出一定準備就緒,因為只要給出數據,顯示二極體就能進行顯示,所以,在這種情況下,CPU只要接收或傳送數據就可以了。
2.慢速或中速的外圍設備
由於這類設備的速度和CPU的速度並不在一個數量級,或者由於設備(如鍵盤)本身是在不規則時間間隔下操作的,因此,CPU與這類設備之間的數據交換通常採用異步定時方式。其定時過程如下:
如果CPU從外設接收一個字,則它首先詢問外設的狀態,如果該外設的狀態標誌表明設備已“準備就緒”,那么CPU就從匯流排上接收數據。CPU在接收數據以後,發出輸入回響信號,告訴外設已經把數據匯流排上的數據取走。然後,外設把“準備就緒”的狀態標誌復位,並準備下一個字的交換。如果CPU起先詢問外設時,外設沒有“準備就緒”,那么它就發出表示外設“忙”的標誌。於是,CPU將進入一個循環程式中等待,並在每次循環中詢問外設的狀態,一直到外設發出“準備就緒”信號以後,才從外設接收數據。CPU傳送數據的情況也與上述情況相似,外設先發出請求輸出信號,而後,CPU詢問外設是否準備就緒。如果外設已準備就緒,CPU便發出準備就緒信號,並送出數據。外設接收數據以後,將向CPU發出“數據已經取走”的通知。
通常,把這種在CPU和外設間用問答信號進行定時的方式叫做應答式數據交換。
3.高速的外圍設備
由於這類外設是以相等的時間間隔操作的,而CPU也是以等間隔的速率執行輸入/輸出指令的,因此,這種方式叫做同步定時方式。一旦CPU和外設發生同步,它們之間的數據交換便靠時鐘脈衝控制來進行。
控制方式
程式查詢方式和程式中斷方式適用於數據傳輸率比較低的外圍設備,而DMA方式、通道方式和PPU方式適用於數據傳輸率比較高的設備。在單片機和微型機中多採用程式查詢方式、程式中斷方式和DMA方式。通道方式和PPU方式大都用在中、大型計算機中。在計算機系統中,CPU管理外圍設備也有幾種類似的方式:
1程式查詢方式
程式查詢方式是早期計算機中使用的一種方式。數據在CPU和外圍設備之間的傳送完全靠電腦程式控制,查詢方式的優點是CPU的操作和外圍設備的操作能夠同步,而且硬體結構比較簡單。但問題是,外圍設備動作很慢,程式進入查詢循環時將白白浪費掉CPU很多時間。這種情況同上述例子中第一種方法相仿,CPU此時只能等待,不能處理其他業務。即使CPU採用定期地由主程式轉向查詢設備狀態的子程式進行掃描輪詢的辦法,CPU寶貴資源的浪費也是可觀的。因此當前除單片機外,很少使用程式查詢方式。
2程式中斷方式中斷是外圍設備用來“主動”通知CPU,準備送出輸入數據或接收輸出數據的一種方法。通常,當一個中斷髮生時,CPU暫停它的現行程式,而轉向中斷處理程式,從而可以輸入或輸出一個數據。當中斷處理完畢後,CPU又返回到它原來的任務,並從它停止的地方開始執行程式。這種方式和我們前述例子的第二種方法相類似。可以看出,它節省了CPU寶貴的時間,是管理I/O操作的一個比較有效的方法。中斷方式一般適用於隨機出現的服務,並且一旦提出要求,應立即進行。同程式查詢方式相比,硬體結構相對複雜一些,服務開銷時間較大。
用中斷方式交換數據時,每處理一次I/O交換,約需幾十微秒到幾百微秒。對於一些高速的外圍設備,以及成組交換數據的情況,仍然顯得速度太慢。直接記憶體訪問(DMA)方式是一種完全由硬體執行I/O交換的工作方式。這種方式既考慮到中斷回響,同時又要節約中斷開銷。此時,DMA控制器從CPU完全接管對匯流排的控制,數據交換不經過CPU,而直接在記憶體和外圍設備之間進行,以高速傳送數據。這種方式和前述例子的第三種方法相仿,主要優點是數據傳送速度很高,傳送速率僅受到記憶體訪問時間的限制。與中斷方式相比,需要更多的硬體。DMA方式適用於記憶體和高速外圍設備之間大批數據交換的場合。
4通道方式DMA方式的出現已經減輕了CPU對I/O操作的控制,使得CPU的效率有顯著的提高,而通道的出現則進一步提高了CPU的效率。這是因為,CPU將部分權力下放給通道。通道是一個具有特殊功能的處理器,某些套用中稱為輸入輸出處理器(IOP),它可以實現對外圍設備的統一管理和外圍設備與記憶體之間的數據傳送。這種方式與前述例子的第四種方法相仿,大大提高了CPU的工作效率。然而這種提高CPU效率的辦法是以花費更多硬體為代價的。
5外圍處理機方式
外圍處理機(PPU)方式是通道方式的進一步發展。由於PPU基本上獨立於主機工作,它的結構更接近一般處理機,甚至就是微小型計算機。在一些系統中,設定了多台PPU,分別承擔I/O控制、通信、維護診斷等任務。從某種意義上說,這種系統已變成分散式的多機系統。
外圍設備
外圍設備的種類相當繁多,有機械式和電動式,也有電子式和其他形式。其輸入信號,可以是數字式的電壓,也可以是模擬式的電壓和電流。外圍設備包括輸入設備、輸出設備和磁碟存儲器、磁帶存儲器、光碟存儲器等。輸入設備:向計算機輸入數據和信息的設備。是計算機與用戶或其他設備通信的橋樑。輸入設備是用戶和計算機系統之間進行信息交換的主要裝置之一。鍵盤,滑鼠,攝像頭,掃瞄器,光筆,手寫輸入板,遊戲桿,語音輸入裝置等都屬於輸入設備。輸入設備(InputDevice)是人或外部與計算機進行互動的一種裝置,用於把原始數據和處理這些數的程式輸入到計算機中。計算機能夠接收各種各樣的數據,既可以是數值型的數據,也可以是各種非數值型的數據,如圖形、圖像、聲音等都可以通過不同類型的輸入設備輸入到計算機中,進行存儲、處理和輸出。
輸出設備輸出設備(OutputDevice)是人與計算機互動的一種部件,用於數據的輸出。它把各種計算結果數據或信息以數字、字元、圖像、聲音等形式表示出來。常見的有顯示器、印表機、繪圖儀、影像輸出系統、語音輸出系統、磁記錄設備等。將計算機輸出信息的表現形式轉換成外界能接受的表現形式的設備。利用各種輸出設備可將計算機的輸出信息轉換成印在紙上的數字、文字、符號、圖形和圖像等,或記錄在磁碟、磁帶、紙帶和卡片上,或轉換成模擬信號直接送給有關控制設備。有的輸出設備還能將計算機的輸出轉換成語聲。
存儲器(Memory)是計算機系統中的記憶設備,用來存放程式和數據。計算機中的全部信息,包括輸入的原始數據、電腦程式、中間運行結果和最終運行結果都保存在存儲器中。它根據控制器指定的位置存入和取出信息。存儲器是用來存儲程式和數據的部件,有了存儲器,計算機才有記憶功能,才能保證正常工作。按用途存儲器可分為主存儲器(記憶體)和輔助存儲器(外存)。外存通常是磁性介質或光碟等,能長期保存信息。記憶體指主機板上的存儲部件,用來存放當前正在執行的數據和程式,但僅用於暫時存放程式和數據,關閉電源或斷電,數據就會丟失。