(1)、比較中斷和DMA兩種傳輸方式的特點。
- 在中斷模式下,外設需與主機傳送數據時要請求主機給與中斷服務,中斷當前主程序的執行,自動轉向對應的中斷處理程序,控制數據的傳輸,過程始終是在所執行的指令控制之下。
- 在DMA模式下,系統中有一個DMA控制器,它是一個可驅動總線的主控部件。當外設與存儲器之間需要傳送數據時,外設向DMA控制器發出DMA請求,DMA控制器向CPU發出總線請求,取得總線控制權后,DMA控制器按照總線時序控制外設與存儲器間的數據傳輸而不是通過指令來控制數據傳輸,傳輸速度大大高於中斷方式。
(2)、DMA控制器應具有哪些功能?
- DMA控制器應有DMA請求輸入線,接收I/O設備的DMA請求信號;
- DMA控制器應有向主機發出總線請求的信號線和接收主機響應的信號線;
- DMA控制器在取得總線控制權以后應能發出內存地址、I/O讀寫命令及存儲器讀寫命令控制I/O與存儲器間的數據傳輸過程。
(3)、80286系統一個存儲單元是24位物理地址,而8237A在尋址內存空間時,只能給出16位地址碼,這一矛盾是如何解決的?有哪些硬件和軟件措施?
(4)、8237A提供哪幾種傳送方式?
- 8237A提供一下幾種傳送方式:
- 請求傳送方式
- 單字節傳送方式
- 數據塊傳送方式
- 級聯傳送方式
(5)、8237A只有8位數據線,為什么能完成16位數據的DMA傳送?
I/O與存儲器間在進行DMA傳送過程中,數據時通過系統的數據總線傳送的,不經過8237A的數據總線,系統總線是具有16位數據的傳送能力的。
(6)、8237A的地址線為什么是雙向的?
8237A的A0~A7地址線是雙向的,當8237A被主機編程或讀狀態處於從屬狀態,A0~A3為輸入地址信號,以便主機對其內部寄存器進行尋址訪問。當8237A取得總線控制權進行DMA傳送時,A0~A3輸出4位地址信號供存儲器尋址對應單元用,A0~A3必須時雙向的。
(7)、說明8237A單字節DMA傳送數據的全過程。
8237A取得總線控制權以后進行單字節的DMA傳送,傳送完一個字節以后修改字節計數器和地址寄存器,然后就將總線控制權放棄。若I/O的DMA請求信號DREQ
繼續有效,8237A再次請求總線使用權進行下一字節的傳送。
(8)、8237A單字節DMA傳送和數據塊DMA傳送有什么不同?
- 單字節傳送方式下,8237A沒傳送完一個字節數據就釋放總線,傳送下一字節再請求總線的控制權。
- 塊傳送方式下,8237A必須把整個數據塊傳送完才釋放總線。
(9)、8237A什么時候作為主模塊工作?什么時候作為從模塊工作?這兩種工作模式下,各控制信號處於什么狀態?
8237A取得總線控制權后,開始進行DMA傳送過程,此時8237A作為主模塊工作。8237A在被處理器編程或讀取工作狀態時,處於從模塊工作狀態。8237A處於從模塊時,若CS=0,HLDA=0說明它正被編程或讀取狀態,IOR於IOW未輸入,A0~A3為輸入。8237A處於主模塊時,輸出地址信號A0~A3(低8位A0~A7輸出,高八位經DB0~DB7輸出)。8237A還要輸出IOR、IOW、MEMR、MEMW、AEN、ADSTB等有效信號供DMA傳送過程使用。
(10)、說明8237A初始化編程的步驟。
- 寫屏蔽字,阻止某通道的DMA請求。
- 寫命令字(8號地址),確定信號有效電平、優先級方式、通道工作允許等。
- 寫模式字(B號地址),確定某通道傳送方式、傳送類型、地址寄存器變化方式等。
- 置0先/后觸發器。
- 設置地址寄存器、字節數寄存器的初值。
- 清除某通道屏蔽位,允許8237A響應其DMA請求。
(11)、8237A選擇存儲器到存儲器的傳送模式必須具備哪些條件?
- 必須使用8237A內部的暫存器作為數據傳送的緩沖器。
- 8237A通道0的地址寄存器存放存儲器的源地址。
- 8237A通道1的地址寄存器存放存儲器的目的地址。
- 字節計數器存放傳送的字節數。
- 建立通道0的軟件DMA請求來啟動這一傳輸過程。