1. 程式人生 > >【筆記】輸入輸出系統

【筆記】輸入輸出系統

一、概述

1.輸入輸出系統的組成

  輸入輸出系統由I/O軟體和I/O硬體兩部分組成。

I/O軟體

(1)I/O指令
  I/O指令的命令碼一般可表述如下幾種情況:

  • 將資料從I/O裝置輸入主機。
  • 將資料從主機輸出至I/O裝置。
  • 狀態測試。
  • 形成某些操作命令。

(2)通道指令
  通道指令是對具有通道的I/O系統專門設定的指令,這類指令一般用以指明參與傳送的資料組在主存中的首地址;指明需要傳送的位元組數或所傳送資料組的末地址;指明所選裝置的裝置碼及完成某種操作的命令碼。
  通道指令又稱為為通道控制字(CCW),它是通道用於執行I/O操作的指令, 可以由管理程式存放在主存的任何地方,由通道從主存中取出並執行。通道程式即由通道指令組成,它完成某種外圍裝置與主存之間傳送資訊的操作。
  通道指令是通道自身的指令,用來執行I/O操作,如讀、寫、磁帶走帶及磁碟找道等。

I/O硬體

  輸入輸出系統的硬體組成是多種多樣的,在帶有介面的I/O系統中,一般包括介面模組及I/O裝置兩大部分。一個通道可以和一個以上的裝置控制器相連,一個裝置控制器又可以控制若干臺同一型別的裝置。

2.裝置與主機的聯絡方式

I/O裝置編址方式

  通常將I/O裝置碼看作地址碼,對I/O地址碼的編址可採用兩種方式:統一編址不統一編址。統一編址就是將I/O地址看作是儲存器地址的一部分。
當裝置通過介面與主機相連時,CPU可以通過介面地址來訪問I/O裝置。

傳送方式

  在同一瞬間,n位資訊同時從CPU輸出至I/O裝置,或由I/O裝置輸入到CPU,這種傳送方式稱為並行傳送。其特點是傳送速度較快,但要求資料線多。
  若在同一瞬間只傳送一位資訊,在不同時刻連續逐位傳送一串資訊,這種傳送方式稱為序列傳送。其特點是傳送速度較慢,但它只需一根資料線和一根地線。

聯絡方式

(1)立即響應方式
  對於一些工作速度十分緩慢的I/O裝置,只要CPU的I/O指令一到,它們邊立即響應,故這種裝置無需特殊連絡訊號,稱為立即響應方式
(2)非同步工作採用應答訊號聯絡
  當I/O裝置與主機工作速度不匹配時,通常採用非同步工作方式。這種方式在交換資訊前,I/O裝置與CPU各自完成自身的任務,一旦出現連絡訊號,彼此才準備交換資訊。I/O裝置與CPU雙方設定一組特殊標記,用“起始”和“終止”來建立聯絡。
(3)同步工作採用同步時標聯絡
  同步工作要求I/O裝置與CPU的工作速度完全同步。這種聯絡互相之間還得配有專閘電路,用以產生同步時標來控制同步工作。

I/O裝置與主機的連線方式

  I/O裝置與合租記的連線方式通常有兩種輻射式匯流排式
  採用輻射式連線方式時,要求每臺I/O裝置都有一套控制線路和一組訊號線,因此所用的器件和連線較多,對I/O裝置的增刪都比較困難。這種連線方式大多出現在計算機發展的初級階段。

3.I/O裝置與主機資訊傳送的控制方式

  I/O裝置與合租記交換資訊時,共有5種控制方式:程式查詢方式、程式中斷方式、直接儲存器存取方式(DMA)、I/O通道方式、I/O處理機方式

程式查詢方式

  程式查詢方式是由CPU通過程式不斷查詢I/O裝置是否已做好準備,從而控制I/O裝置與主機交換資訊。可見這種方式使CPU和I/O裝置處於序列工作狀態,CPU的工作效率不高。


這裡寫圖片描述

程式中斷方式

  CPU在啟動I/O裝置後,不查詢裝置是否已準備就緒,繼續執行自身程式,只是當I/O裝置準備就緒並向CPU發出中斷請求後才予以響應。


這裡寫圖片描述

  採用程式中斷方式,CPU和I/O介面不僅在硬體方面需增加相應的電路,而且在軟體方面還必須編制中斷服務程式。

DMA方式

  在DMA方式中,主存與I/O裝置之間有一條資料通路,主存與I/O裝置交換資訊時,無須呼叫中斷服務程式。若出現DMA和CPU同時訪問主存,CPU總是將匯流排佔有權讓給DMA,通常把DMA的這種佔有稱為竊取挪用。竊取的時間一般為一個存取週期,故又把DMA佔用的存取週期稱為竊取週期挪用週期


這裡寫圖片描述

二、I/O介面

1.概述

  I/O介面通常是指主機與I/O裝置之間設定的一個硬體電路及其相應的軟體控制。主機與I/O裝置之間設定介面的原因:

  1. 一臺機器通常配有多臺I/O裝置,它們各自有其裝置號(地址),通過介面可實現I/O裝置的選擇。
  2. I/O裝置種類繁多,速度不一,與CPU速度相差可能很大, 通過介面可實現資料緩衝,達到速度匹配。
  3. 有些I/O裝置可能序列傳送資料,而CPU一般為並行傳送,通過介面可實現資料串-並格式的轉換。
  4. I/O裝置的輸入輸出電平可能與CPU的輸入輸出電平不同,通過介面可實現電平轉換。
  5. CPU啟動I/O裝置工作,要向I/O裝置發各種控制訊號,通過介面可傳送控制命令。
  6. I/O裝置需將其工作狀態及時向CPU報告,通過介面可監視裝置的工作狀態,並可儲存狀態資訊,供CPU查詢。

  埠是指介面電路中的一些暫存器,這些暫存器分別用來存放資料資訊、控制資訊和狀態資訊,相應的埠分別稱為資料埠、控制埠和狀態埠。若干個埠加上相應的控制邏輯才能組成介面。

2.介面的功能和組成

匯流排連線方式的I/O介面電路

  I/O匯流排包括資料線、裝置選擇線、命令線和狀態線。
(1)資料線
  資料線是I/O裝置與主機之間資料程式碼的傳送線,其根數一般等於儲存字長的位數或字元的位數,它通常是雙向的,也可以是單向的。
(2)裝置選擇線
  裝置選擇線是用來傳送裝置碼的,它的根數取決於I/O指令中裝置碼的位數。如果把裝置碼看作是地址號,那麼裝置選擇線又可稱為地址線。裝置選擇線可以有一組,也可以有兩組。
(3)命令線
  命令線主要用以傳輸CPU向裝置發出的各種命令訊號。它是一組單向匯流排,其根數與命令訊號多少有關。
(4)狀態線
  狀態線是將I/O裝置的狀態向主機報告的訊號線。它也是一組單向匯流排。現代計算機中大多采用三態邏輯電路來構成匯流排。

介面的功能和組成

  (1)選址功能
  (2)傳送命令的功能
  命令暫存器用來存放I/O指令中的命令碼,它受裝置選中訊號控制。命令線和所有介面電路的命令暫存器相連,只有被選中裝置的SEL訊號有效,命令暫存器才可接受命令線上的命令碼。
  (3)傳送資料的功能
  介面中通常設有資料緩衝暫存器(DBR),它用來暫存I/O裝置與主機準備交換的資訊,與I/O匯流排中的資料線是相連的。
  (4)反映I/O裝置工作狀態的功能
  為了使CPU能及時瞭解各I/O裝置的工作狀態,介面內必須設定一些反映裝置工作狀態的觸發器。

3.介面型別


這裡寫圖片描述

  1. 按資料傳送方式分類,有並行介面和序列介面兩類。並行介面是將一個位元組(或一個字)的索有為同時傳送;序列介面是在裝置與介面間一位一位傳送。由於介面與主機之間是按位元組或字並行傳送,因此對序列介面而言,其內部還必須設有串-並轉換裝置。
  2. 按功能選擇的靈活性分類,有可程式設計介面和不可程式設計介面量兩種。
  3. 按通用性分類有通用介面和專用介面。
  4. 按資料傳送的控制方式分類,有程式型介面和DMA型介面。

三、程式查詢方式

1.程式查詢流程

  通常要執行如下3條指令:

  1. 測試指令,用來查詢I/O裝置是否準備就緒。
  2. 傳送指令,當I/O裝置已準備就緒時,執行傳送指令。
  3. 轉移指令,若I/O裝置未準備就緒,執行轉移指令,轉至測試指令,繼續測試I/O裝置的狀態。

這裡寫圖片描述

四、程式中斷方式

1.中斷的概念

  計算機在執行程式的過程中,當出現異常情況或特殊請求時,計算機停止現行程式的執行,轉向對這些異常情況或特殊請求的處理,處理結束後再返回到現行程式的間斷處,繼續執行原程式,這就是“中斷”。

2.程式中斷方式的介面電路

中斷請求觸發器和中斷遮蔽觸發器

  每臺外部裝置都必須配置一箇中斷請求觸發器INTR,當其為“1”時,表示該裝置向CPU提出中斷請求。但是裝置欲提出中斷請求時,其裝置本身必須準備就緒,即介面內的完成觸發器D的狀態必須為1.
  凡能向CPU提出中斷請求的各種因素統稱為中斷源。在I/O介面中需設定一個遮蔽觸發器MASK,當其為“1時,表示被遮蔽,即封鎖其中斷源的請求。中斷請求觸發器和中斷遮蔽觸發器在I/O介面中是成對出現的。
  CPU總是在統一的時間,即每條指令執行階段的最後時刻,查詢所有的裝置是否有中斷請求。
  僅當社別準備就緒(D=1),且該裝置未被遮蔽(MASK=0)時,CPU的中斷查詢訊號可將中斷請求觸發器置為“1”(INTR=1)。

排隊器

  速度越高的I/O裝置,優先順序越高,因為若CPU不及時響應高速 I/O 的請求,其資訊可能會立即丟失。
  每個介面中有一個反相器和一個“與非”門,它們之間猶如鏈條一樣串接在一起,故稱為鏈式排隊器
  當各中斷源均無中斷請求時,各個INTRi¯為高電平,其INTP1¯INTP2¯INTP3¯均為高電平。一旦某個中斷源提出中斷請求時,就迫使比起優先順序低的中斷源INTPi¯變為低電平,封鎖其發中斷請求。

中斷向量地址形成部件(裝置編碼器)

  所謂硬體向量法,就是通過向量法,就是通過向量地址來尋找裝置的中斷服務程式入口地址,而且向量地址是由硬體電路產生的。中斷向量地址形成部件的輸入是來自排隊器的輸出INTP1¯INTP2¯INTPn¯,它的輸出是中斷向量,其位數與計算機可以處理中斷源的個數有關,即一箇中斷源對應一個向量地址。在I/O介面中的編碼器又稱為裝置編碼器

3.I/O中斷處理過程

CPU響應中斷的條件和時間

  CPU響應I/O裝置提出中斷請求的條件是必須滿足CPU中的允許中斷觸發器EINT為“1”。該觸發器可用開中斷指令置位(稱為開中斷);也可用關中斷指令或硬體自動使其復位(稱為關中斷)。CPU響應中斷的時間一定是在每條指令執行階段的結束時刻。

I/O中斷處理過程

  可將一次中斷處理過程簡單地歸納為**中斷請求、中斷判優、中斷響應、中斷服務、中斷返回**5個階段。

4.中斷服務程式的流程

  一般中斷服務程式的流程分四大部分:保護現場、中斷服務、恢復現場、終端返回

保護現場

  保護現場有兩個含義:其一是儲存程式的斷點;其二是儲存通用暫存器和狀態暫存器的內容。前者由中斷隱指令完成,後者由中斷服務程式完成。可在中斷服務程式的起始部分安排若干條存數指令,將暫存器的內容存至儲存器中儲存,或用進棧指令(PUSH)將各暫存器的內容推入堆疊儲存,即將程式中斷時的“現場”儲存起來。

中斷服務(裝置服務)

  是中斷服務程式的主體部分,對於不同的中斷請求源,其中斷服務操作內容是不同的。

恢復現場

  通常可用取數指令或出棧指令(POP),將儲存在儲存器(或堆疊)中的資訊送回到原來的暫存器中。

中斷返回

  最後一條指令通常是一條中斷返回指令,使其返回到原程式的斷點處,以便繼續執行原程式。如果CPU暫停現行的中斷服務程式,轉去處理新的中斷請求,這種現象稱為中斷巢狀,或多重中斷。倘若CPU在執行中斷服務程式時,對新的中斷請求不予理睬,這種中斷稱為單重中斷。區別在與“開中斷”的設定時間不同。
  如果不用“開中斷”指令將EINT置“1”,則意味著CPU不能再響應其他任何一箇中斷源的中斷請求。對於單重中斷,開中斷指令設定在最後“中斷返回”之前,意味著在整個中斷服務處理過程中,不能再響應其他中斷源的請求。對於多重中斷,開中斷指令提前至“保護現場”之後,意味著在保護現場後,若有級別更高的中斷源提出請求,CPU也可以響應,即再次中斷現行的服務程式,轉至新的中斷服務程式,這是單重中斷與多重中斷的主要區別。


這裡寫圖片描述

  從巨集觀上分析,程式中斷方式克服了程式查詢方式中的CPU“踏步”現象,實現了CPU與I/O的並行工作,提高了CPU 資源利用率。但從微觀操作分析,發現CPU在處理中斷服務程式時仍需暫停原程式的正常執行,尤其是當高速I/O裝置或輔助儲存器頻繁地、成批地與主存交換資訊時,需不斷地打斷CPU執行主程式而執行中斷服務程式。


這裡寫圖片描述

五、DMA方式

1.DMA方式的特點

  若出現高速I/O和CPU同時訪問主存,CPU必須將匯流排佔有權讓給DMA介面使用,即DMA採用週期竊取的方式佔用一個存取週期。通常DMA與主存交換資料時採用如下三種方法:

停止CPU訪問主存

  這種方式的優點是控制簡單,適用於資料傳輸率很高的I/O裝置實現成組資料的傳送。缺點是DMA介面在訪問主存時,CPU基本上處於不工作狀態或保持原狀態。在DMA介面中,一般設有一個小容量儲存器,使I/O裝置首先與小容量儲存器交換資料,然後由小容量儲存器與主存交換資料,這便可減少DMA傳送資料時佔用匯流排的時間,即可減少CPU的暫停工作時間。

週期挪用(或週期竊取)

  在這種方法中,每當I/O裝置發出DMA請求時,I/O裝置邊挪用或竊取匯流排佔用權一個或幾個主存週期,而DMA不請求時,CPU仍繼續訪問主存。
  I/O裝置請求DMA傳送會遇到三種情況。一種是CPU此時不需要訪問主存,故I/O裝置與CPU不發生衝突。第二種情況是I/O裝置請求DMA傳送時,CPU正在訪問主存,此時必須待存取週期結束,CPU採能將匯流排佔有權讓出。第三種情況是I/O裝置要求訪問主存時,CPU也要求訪問主存,這就出現了訪問衝突。此時I/O訪存優先於CPU訪問主存,因為I/O不立即訪問主存就可能丟失資料,這時I/O要竊取第一、二個存取週期,意味著CPU在執行訪問主存指令過程中插入了DMA請求,並挪用了一、二個存取週期,使CPU延緩了一、二個存取週期再訪問主存。

  這種方式既實現了I/O傳送,又較好地發揮了主存與CPU的效率,是一種廣泛採用的方法。I/O裝置每挪用一個主存週期都要申請匯流排控制權、建立匯流排控制權和歸還匯流排控制權。儘管傳送一個字對主存而言只佔用一個主存週期,但對DMA介面而言,實質上還要佔2~5個主存週期。因此週期挪用的方法比較合適於I/O裝置的讀/寫週期大於主存週期的情況。

DMA與CPU交替訪問

  這種方法適合於CPU的工作週期比主存存取週期長的情況。這種方式不需要匯流排使用權的申請、建立和歸還過程,匯流排使用權是通過C1C2分別控制的。CPU與DMA介面各自有獨立的訪存地址暫存器、資料暫存器和讀/寫訊號。在這種工作方式下,CPU既不停止主程式的執行也不進入等待狀態,即完成了DMA的資料傳送。


這裡寫圖片描述

2.DMA介面的功能和組成

DMA介面的功能

  利用DMA方式傳送資料時,資料的傳輸過程完全是由DMA介面電路控制,故DMA介面又有DMA控制器之稱。DMA介面應該具有如下功能:

  1. 向CPU申請DMA傳送。
  2. 在CPU允許DMA工作時,處理匯流排控制權的轉交,避免因進入DMA工作而影響CPU正常活動或引起匯流排競爭。
  3. 在DMA期間管理系統匯流排,控制資料傳送。
  4. 確定資料傳送的起始地址和資料長度,修正資料傳送過程中的資料地址和資料長度。
  5. 在資料塊傳送結束時,給出DMA操作完成的訊號。

DMA介面基本組成


這裡寫圖片描述

(1)主存地址暫存器(AR)
  AR用於存放主存中需要交換資料的地址。在DMA傳送過程中,美交換一次資料,將地址暫存器內容加1,指導一批資料傳送完畢為止。

(2)字計數器(WC)
  WC用於記錄傳送資料的總字數,通常以交換字數的補碼值預置。在DMA傳送過程中,每傳送一個字,字計數器加1,直到計數器為0,即最高為產生進位時,表示該批資料傳送完畢(若交換字數以原始碼值預置,則每傳送一個字,字計數器減1,直到計數器為0時,表示該批資料傳送結束)。於是DMA介面向CPU發中斷請求訊號。

(3)資料緩衝暫存器(BR)
  BR用於暫存每次傳送的資料。通常DMA介面與主存之間採用字傳送,而DMA與裝置之間可能是位元組或位傳送。DMA介面中還可能包括有裝配或拆卸字資訊的硬體邏輯,如資料移位緩衝暫存器、位元組計數器等。

(4)DMA控制邏輯
  DMA控制邏輯負責管理DMA的傳送過程,由控制電路、時序電路及命令狀態控制暫存器等組成。每當裝置準備好一個數據字(或一個字傳送結束),就向DMA介面提申請(DREQ),DMA控制邏輯便向CPU請求DMA服務,發出匯流排使用權的請求訊號(HRQ)。待收到CPU發出的響應訊號HLDA後,DMA控制邏輯便開始負責管理DMA傳送的全過程,包括對主存地址暫存器和字計數器的修改、識別匯流排地址、識別匯流排地址、指定傳送型別以及哦他能根治裝置已經被授予一個DMA週期(DACK)等。

(5)中斷機構
  當字計數器溢位(全“0”)時,表示一批資料交換完畢,由“溢位訊號”通過中斷機構向CPU提出中斷請求,請求CPU作DMA操作的後處理。中斷的目的不同,前面是為了資料的輸入或輸出,而這裡是為了報告一批資料傳送結束。它們是I/O系統中不同的中斷事件。

(6)裝置地址暫存器(DAR)