CPU總線
- CPU總線分為數據總線、地址總線、控制總線。
- 數據總線
a. 數據總線是CPU與存儲器、CPU與I/O接口設備之間傳送數據信息(各種指令數據信息)的總線,這些信號通過數據總線往返於CPU與存儲器、CPU與I/O接口設備之間,因此,數據總線上的信息是雙向傳輸。
b. 數據總線的寬度決定了CPU和外界的數據的傳送速度。
c. 每條傳輸線一次只能傳輸一位二進制數據。(8根數據線一次可傳送一個八位二進制數據,即一個字節。)
d. 數據總線是數據線數據之和。
3.地址總線
a. 地址總線是一種計算機總線,是CPU或DMA(存儲器直接訪問)能力的單元,用來溝通這些單元想要訪問(讀取/寫入)計算機內存組件/地方的物理地址,即地址總線是CPU與內存、DMA與外設或其他器件之間的數據傳送的通道。
b. CPU通過地址總線來指定存儲單元。
c. 地址總線決定了CPU所能訪問的最大內存空間的大小。(10根地址線所能訪問的最大的內存為1024位二進制數據)
d. 地址總線是地址數據之和。
- 控制總線
a. 控制總線主要用來傳送控制信號和時序信號。控制信號中,有的是微處理器送往存儲器和輸入輸出設備接口電路的,如讀/寫信號,片選信號、中斷響應信號等。
b. CPU通過控制總線對外部器件進行控制。
c. 控制總線的寬度決定了CPU對外部器件的控制能力。
d. 控制總線是控制線數據之和。
DMA(存儲器直接訪問)
1.定義
DMA是一種高速的數據傳輸操作,DMA在DMA控制器的控制下,實現讓存儲器與外設、外設與外設之間直接交換數據,中間不需要經過CPU的累加器中轉,並且內存地址的修改、傳送完畢的結束報告都是由硬件電路(DMA控制器)實現的,CUP除了在數據傳輸開始和結束時進行中斷處理外,在整個傳輸過程中CPU都可以和輸入輸出處於並行操作狀態,一個DMA傳送只需要執行一個DMA周期,相當於一個總線讀寫周期。
- 工作流程
通常CPU總線是由CPU管理的,但在DMA工作時,CPU總線由DMA控制器接管,控制傳送的字節數,判斷DMA是否結束以及發出DMA結束信號,故DMA控制器的工作流程如下:
a. 當外設有DMA需求並准備就緒時,就向DMA控制器發送DMA請求。
b. DMA控制器接收請求后,向CPU發送總線接管請求。
c. CPU接到總線接管請求后,則會在當前總線周期結束后進行中斷處理並返回響應信號,通知DMA控制器其已經放棄了對總線的控制權。
d. DMA控制器獲得總線的控制權,並對外設發送應答信號,通知外設可以進行DMA傳輸。
e. DMA控制器向存儲器發送地址信號和向存儲器及外設發出讀/寫控制信號,控制數據按初始化設定的方向傳送,實現外設與內存的數據傳輸。
f. 數據全部傳輸結束后,DMA控制器向CPU發送結束信號,要求撤銷總線請求信號,CPU接收到信號后,收回對總線的控制權。
- DMA傳輸方式
a. 單字節傳輸:一次DMA只傳輸一個字節,效率低,但傳輸過程中CPU有機會獲取對總線的控制權。
b.數據塊傳輸方式:數據已數據塊的方式進行傳輸,只要DREQ啟用就會連續的傳送數據。一次請求傳送一個數據塊,效率高,但傳輸過程中CPU長時間無法控制總線。
c. 請求傳輸方式:DREQ信號有效就連續傳輸數據,否則不能進行數據的傳輸。
d. 級聯傳輸方式:用於通過多個DMA控制器級聯以拓展通道,第一級只起優先權網絡的作用,實際的操作由第二級芯片完成。還可由第二級到第三級等。(多個DMAC)
- DMA傳送類型
a. 兩個設備之間;
b. 設備和內存之間;(多數情況下,DMAC進行的是外設接口和內存之間的傳輸。)
c. 內存和內存之間。
- DMA拓展
DMA讀:把數據由存儲器傳送到外設。
DMA寫:把外設輸入的數據寫入存儲器。
DMA檢驗(控操作):DMAC不進行任何檢驗,外設可以進行DMA校驗,存儲器和 I/O 控制線保持無效,不進行傳送。
本文僅作學習,引用如下
https://blog.csdn.net/wuyongpeng0912/article/details/46634931
https://blog.csdn.net/wangbuji/article/details/78855672