數據傳送

用手机看条目

出自 MBA智库百科(https://wiki.mbalib.com/)

數據傳送(Data Transfer,DT)

目錄

什麼是數據傳送[1]

  數據傳送是指數據從一種設備傳送到另一種設備,或從同一個設備的一個存儲位置傳送到另一個存儲位置中去。

數據傳送的方向[2]

  串列通信中,數據通常是在兩個站點(如終端和微機)之間進行傳送,按照數據流的方向可分成三種基本的傳送模式,這就是全雙工方式、半雙工方式和單工方式。單工方式目前已很少採用,下麵僅介紹前兩種模式。

  1.全雙工方式(full duplex)

  若數據的發送和接收分別使用兩套獨立的資源、由兩條不同的傳輸線同時傳送,使通信雙方都能在同一時刻進行發送和接收操作,這樣的傳送方式就是全雙工制,如圖1所示。在全雙工方式下,通信系統的每一端都設置了發送器和接收器,因此,能控制數據同時在兩個方向上傳送。全雙工方式無須進行方向的切換,因此,沒有切換操作所產生的時間延遲(一般為毫秒級),這對那些不能有時間延誤的互動式應用(例如遠程監測和控制系統)十分有利。

Image:全双工通信方式示意.jpg

  2.半雙工方式(half duplex)

  當使用同一條傳輸線既作輸入又作輸出時,雖然數據可以在兩個方向上傳送,但顯然通信雙方不能同時收發數據,即它們只能依賴分寸切換方向實現互相收發數據。這樣的傳送方式就是半雙工制,如圖2所示。採用半雙工方式時,通信系統每一端的發送器和接收器,通過收/發開關接到通信線上,進行方向的切換,因此,會產生時間延遲。收/發開關實際上是由軟體控制的電子開關。
Image:半双工通信方式示意.jpg

  目前多數終端和串列介面都有半雙工模式的換向功能,也為全雙工模式提供了兩條獨立的引腳。在實際使用時,有時並不需要通信雙方同時既發送又接收,像印表機這類的單向傳送設備,半雙工就能勝任,也無須倒向。

數據傳送方式和類型[3]

  1.8237A的DMA操作方式

  在8237A的有效操作周期內,8237A將以下述4種傳送方式之一進行DMA操作。

  1)單位元組傳送方式

  此時8237A獲得匯流排控制權後僅傳送一個位元組的數據,然後釋放系統匯流排,歸還給CPU使用。同時修改通道內的當前地址寄存器和當前字計數寄存器的內容,當計數器從0減為FFFFH時,產生終止計數信號,使EOP變為低電平。

  單位元組傳送方式的優點是保證在任何二次DMA操作之間,CPU至少能在一個匯流排周期內獲得匯流排控制權,達到CPU與DMA控制器處於並行工作的狀態。

  2)數據塊傳送方式

  此時,8237A一旦獲得匯流排控制權後將連續傳送完一個數據塊(它由N個位元組的數據組成),然後釋放系統匯流排歸還給CPU使用。在這種傳送方式中,一次DMA操作最多能傳送64KB的數據塊,DMA傳送結束將取決於下麵兩種條件中的任一個:當前字計數寄存器的內容從0減為FFFFH時,併發出EOP有效信號;外部強加一個EOP為低電平的輸入信號時,迫使8237A退出DMA操作。

  在數據塊傳送方式中,要求DMA請求信號DREQ保持到DACK變為有效時即可,因為8237A一旦進入有效周期後就不再去採樣DREQ信號了。

  3)請求傳送方式

  這種傳送方式類似於數據傳送方式,但此時要求在數據傳送期間必須保持DREQ信號有效。因為此時8237A每傳送一個位元組的數據之後都要採樣DREQ引腳。當出現當前字計數寄存器由0變為FFFFH或者EOP輸入端加入低電平信號或者DREQ信號無效時都將停止DMA傳送。

  4)級聯方式

  這是當多片8237A級聯應用時採用的傳送方式,從而實現多於4個通道的DMA方式。此時,從片8237A的HRQ和HLDA引腳應和主片8237A某個通道的DREQ和DACK引腳依次連接。

  以上4種DMA傳送方式均由方式控制字中的D7和D6兩位來控制

  2.數據傳送類型

  在單位元組傳送、數據塊傳送和請求傳送3種傳送方式下,都可以採用DMA讀、DMA寫和校驗傳送3種基本傳送類型,它們是通過方式控制字來設定的;此外,還有存儲器到存儲器、壓縮時序、自動預置和迴圈優先順序4種特殊的傳送類型,它們是通過8237A的命令字來設定的。

  1)DMA讀

  實現從存儲器到I/O介面器件的傳送,此時8237將發出MEMR和IOW控制信號以實現DMA讀操作。

  2)DMA寫

  實現從I/O介面器件到存儲器的傳送,此時8237A將發出IOR和MEMW控制信號,以實現DMA寫操作。

  3)校驗傳送

  用於校驗8237A的內部功能,它也產生地址的an/減1,字計數值減1及當計數值從0減為FFFFH時產生EOP信號等,但所有的讀/寫控制信號都處於無效狀態。

  4)存儲器到存儲器傳送

  用來實現數據塊從一個存儲空間快速地傳送到另一個存儲空問。但這種類型僅適用於通道0和通道1,此時通道0產生源存儲器的地址,通道1產生目的存儲器的地址,每傳送一個位元組的數據需執行8個狀態,前4個狀態用於從源存儲器中讀取數據並存放於8237A中的數據暫存器,而後4個狀態用於將數據暫存器的內容寫入到目的存儲器中。

  5)自動預置傳送

  它可在完成DMA服務並出現EOP有效信號後,將該通道的基地址寄存器和基本位元組計數器的內容重新裝入當前地址寄存器和當前位元組計數器中,從而使該通道繼續執行另一次DMA服務,無須CPU來預置上述地址值和計數值。

  6)迴圈優先傳送

  這是一種採用迴圈優先順序管理方式使8237A中4個通道的優先順序別做動態地迴圈改變,從而使每一個通道都有享受最高優先順序別的資格,防止了一個通道獨占DMA操作的局面。

  7)壓縮時序傳送

  這是一種能獲得更高的數據傳送率的傳送類型。

參考文獻

  1. 謝書良編著.程式設計基礎.清華大學出版社,2010.05.
  2. 寧飛 王維華編著.微型電腦原理與介面實踐.清華大學出版社,2006年12月.
  3. 馬世偉 楊幫華 劉廷章等編著.電腦硬體技術基礎.清華大學出版社,2009.07.
本條目對我有幫助2
MBA智库APP

扫一扫,下载MBA智库APP

分享到:
  如果您認為本條目還有待完善,需要補充新內容或修改錯誤內容,請編輯條目

本条目由以下用户参与贡献

连晓雾,Yixi,方小莉,Tracy,Mis铭,LuyinT.

評論(共0條)

提示:評論內容為網友針對條目"數據傳送"展開的討論,與本站觀點立場無關。

發表評論請文明上網,理性發言並遵守有關規定。

MBA智库
打开APP

以上内容根据网友推荐自动排序生成