EDMA3淺析

1. EDMA3概述

基於C66x的內核處理器主要具有兩種DMA傳輸:IDMAEDMA3

IDMA:只提供核內部(L1PL1DL2CFG)的數據移動服務。

EDMA3:實現器件上兩個存儲器映射的從終端(Slave Endpoint)之間的數據傳輸(如DDR3MSM SRAML2)。

EDMA3控制器由用戶設定,服務於器件上兩個存儲器映射的從終端之間的數據傳輸;服務於軟件驅動的頁傳輸(例如,在外部存儲器和內部存儲器之間),執行分解或子幀取出多種數據結構,服務事件驅動的外圍設備並減輕器件CPU數據傳輸任務。

2. EDMA3淺析

2.1      EDMA3構成

C6678處理器中,IDMA具有兩個通道,EDMA具有三個通道控制器(CC0CC1CC2)和10個傳輸控制器(CC0TC0CC0TC1CC1TC0CC1TC1CC1TC2CC1TC3CC2TC0CC2TC1CC2TC2CC2TC3)。

如圖2-1所示,CC016DMA通道,8QDMA通道,16箇中斷通道,2個事件隊列,2個傳輸控制TCCC164DMA通道,8QDMA通道,64箇中斷通道,4個事件隊列,4個傳輸控制TCCC264DMA通道,8QDMA通道,64箇中斷通道,4個事件隊列,4個傳輸控制TC

image.png

2-1 EDMA3 CC資源圖

每個TC的資源情況如圖2-2所示。

image.png

2-2 EDMA3 TC資源圖

 

2.2      功能用法

CC0被優化用於內部MSMCMulticore Shared Memory ControllerDDR3子系統之間的數據傳輸CC1CC2被用作系統外圍設備和在系統存儲器間移動數據等其他傳輸。

每個CC有兩種通道類型:DMA通道和QDMA通道。每個通道與一個給定的事件隊列、傳輸控制器相關,並與一個給定的PaRAM參數集相關。

DMA通道和QDMA通道的主要區別在於傳輸是如何被系統觸發的。

DMA通道傳輸必需一個觸發事件。QDMA通道傳輸只需設定好觸發字即可自動觸發。

每個事件隊列深度是16,同一時刻最多支持16個傳輸事件。

每個DMAQDMA通道分配到的事件隊列是可編程的。

如果在不同的通道上,事件同時被檢測,事件隊列會基於一個固定優先級仲裁機制仲裁。DMA通道具有比QDMA通道更高的優先級。最小編號的通道最有最高優先級。

每個事件在事件隊列中按照FIFO順序被處理。

DMAQDMAchannel可以統一一起連續編號,TI就是如此處理的。

  Global Region和Shadow Region的區別:當使用Global Region配置EDMA時,所有內核都會響應;當使用Shadow Region時,通過DRAE/DRAEH(對於DMA)和QRAE/QRAEH(對於QDMA)寄存器將不想觸發的事件屏蔽,這樣即使系統中的事件觸發了,Shadow Region中對應的事件也不會觸發。當使用global region配置EDMA時,所有的core都會響應,這樣就存在某些core不想使用的event也會被觸發,如果使用shadow region,通過DRE/DREH將不想觸發的event屏蔽,這樣即便系統中對應的event觸發了,shadow region中的event也不會觸發。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章