設備管理的主要任務之一是控制設備和內存或處理機之間的數據傳送,外圍設備和內存之間的輸入/輸出控制方式有四種,下面分別介紹。
程序直接控制方式
如圖5-1(a)所示,計算機從外部設備讀取數據到存儲器,每次讀一個字的數據。 對讀入的每個字,CPU需要對外設狀態進行循環檢查,直到確定該字已經在I/O控制器的數據寄存器中。 在程序直接控制方式中,由于CPU的高速性和I/O設備的低速性,致使CPU的絕大部分時間都處于等待I/O設備完成數據I/O的循環測試中,造成了 CPU資源的極大浪費。 在該方式中,CPU之所以要不斷地測試I/O設備的狀態,就是因為在CPU中沒有釆用中斷機構,使I/O設備無法向CPU報告它已完成了一個字符的輸入操作。
程序直接控制方式雖然簡單易于實現,但是其缺點也是顯而易見的,由于cpu和I/O設備只能串行工作,導致CPU的利用率相當低。
中斷驅動方式
中斷驅動方式的思想是,允許I/O設備主動打斷CPU的運行并請求服務,從而“解放”CPU,使得其向I/O控制器發送讀命令后可以繼續做其他有用的工作。 如圖5-1(b)所示,我們從I/O控制器和CPU兩個角度分別來看中斷驅動方式的工作過程:
從I/O控制器的角度來看,I/O控制器從CPU接收一個讀命令,然后從外圍設備讀數據。 一旦數據讀入到該I/O控制器的數據寄存器,便通過控制線給CPU發出一個中斷信號,表示數據已準備好,然后等待CPU請求該數據。 I/O控制器收到CPU發出的取數據請求后,將數據放到數據總線上,傳到CPU的寄存器中。 至此,本次I/O操作完成,I/O控制器又可幵始下一次I/O操作。
圖5-1 I/O控制方式
從CPU的角度來看,CPU發出讀命令,然后保存當前運行程序的上下文(現場,包括程序計數器及處理機寄存器),轉去執行其他程序。 在每個指令周期的末尾,CPU檢查中斷。 當有來自I/O控制器的中斷時,CPU保存當前正在運行程序的上下文,轉去執行中斷處理程序處理該中斷。 這時,CPU從I/O控制器讀一個字的數據傳送到寄存器,并存入主存。 接著, CPU恢復發出I/O命令的程序(或其他程序)的上下文,然后繼續運行。
中斷驅動方式比程序直接控制方式有效,但由于數據中的每個字在存儲器與I/O控制器之間的傳輸都必須經過CPU,這就導致了中斷驅動方式仍然會消耗較多的CPU時間。
DMA方式
在中斷驅動方式中,I/O設備與內存之間的數據交換必須要經過CPU中的寄存器,所以速度還是受限,而DMA(直接存儲器存取)方式的基本思想是在I/O設備和內存之間開辟直接的數據交換通路,徹底“解放” CPU。 DMA方式的特點是:
基本單位是數據塊。
所傳送的數據,是從設備直接送入內存的,或者相反。
僅在傳送一個或多個數據塊的開始和結束時,才需CPU干預,整塊數據的傳送是在 DMA控制器的控制下完成的。
圖5-2列出了 DMA控制器的組成。
圖5-2 DMA控制器的組成
為了實現在主機與控制器之間成塊數據的直接交換,必須在DMA控制器中設置如下四類寄存器:
命令/狀態寄存器(CR):用于接收從CPU發來的I/O命令或有關控制信息,或設備的狀態。
內存地址寄存器(MAR):在輸入時,它存放把數據從設備傳送到內存的起始目標地址; 在輸出時,它存放由內存到設備的內存源地址。
數據寄存器(DR):用于暫存從設備到內存,或從內存到設備的數據。
數據計數器(DC):存放本次CPU要讀或寫的字(節)數。
如圖5-1(c)所示,DMA方式的工作過程是:CPU讀寫數據時,它給I/O控制器發出一條命令,啟動DMA控制器,然后繼續其他工作。 之后CPU就把控制操作委托給DMA控制器,由該控制器負責處理。 DMA控制器直接與存儲器交互,傳送整個數據塊,每次傳送一個字,這個過程不需要CPU參與。 當傳送完成后,DMA控制器發送一個中斷信號給處理器。 因此只有在傳送開始和結束時才需要CPU的參與。
DMA控制方式與中斷驅動方式的主要區別是中斷驅動方式在每個數據需要傳輸時中斷CPU,而DMA控制方式則是在所要求傳送的一批數據全部傳送結束時才中斷CPU; 此外,中斷驅動方式數據傳送是在中斷處理時由CPU控制完成的,而DMA控制方式則是在DMA 控制器的控制下完成的。
通道控制方式
I/O通道是指專門負責輸入/輸出的處理機。 I/O通道方式是DMA方式的發展,它可以進一步減少CPU的干預,即把對一個數據塊的讀(或寫)為單位的干預,減少為對一組數據塊的讀(或寫)及有關的控制和管理為單位的干預。 同時,又可以實現CPU、通道和I/O設備三者的并行操作,從而更有效地提高整個系統的資源利用率。
例如,當CPU要完成一組相關的讀(或寫)操作及有關控制時,只需向I/O通道發送一條I/O指令,以給出其所要執行的通道程序的首地址和要訪問的I/O設備,通道接到該指令后,通過執行通道程序便可完成CPU指定的I/O任務,數據傳送結束時向CPU發中斷請求。 I/O通道與一般處理機的區別是:通道指令的類型單一,沒有自己的內存,通道所執行的通道程序是放在主機的內存中的,也就是說通道與CPU共享內存。
I/O通道與DMA方式的區別是:DMA方式需要CPU來控制傳輸的數據塊大小、傳輸的內存位置,而通道方式中這些信息是由通道控制的。 另外,每個DMA控制器對應一臺設備與內存傳遞數據,而一個通道可以控制多臺設備與內存的數據交換。
審核編輯:湯梓紅
-
控制器
+關注
關注
112文章
16214瀏覽量
177481 -
plc
+關注
關注
5008文章
13167瀏覽量
462195 -
控制方式
+關注
關注
0文章
55瀏覽量
10727 -
中斷
+關注
關注
5文章
895瀏覽量
41401 -
程序
+關注
關注
116文章
3778瀏覽量
80860
原文標題:PLC I/O(輸入/輸出)控制方式
文章出處:【微信號:中泰PLC自動化教學,微信公眾號:中泰PLC自動化教學】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論