대학원/대회 준비 관련

[ZCU-104]AXI DMA Scatter Gather

오비루 2024. 5. 28. 15:45
728x90
728x90

https://digitalblocksinc09.medium.com/axi-dma-scatter-gather-what-you-need-to-know-8e84cdf8bad0

 

AXI DMA Scatter Gather — What You Need to Know

AXI DMA scatter-gather is a powerful function that allows you to move data between different memory locations in a quick and efficient…

digitalblocksinc09.medium.com

https://digitalblocksinc09.medium.com/axi-dma-with-scatter-gather-streamlining-data-transfer-in-embedded-systems-43850f32f010

 

AXI DMA with Scatter-Gather: Streamlining Data Transfer in Embedded Systems

In the world of embedded systems, efficient and fast data transfer is of utmost importance. This is where Direct Memory Access (DMA) comes…

digitalblocksinc09.medium.com

 

 

 

+) ug1085-zynq-ultrascale-trm.pdf의 DMA Controller part도 참고

DMA 모델은 다음과 같으며, LPD 혹은 FPD DMA 컨트롤러는 각각 8개의 DMA Channel을 갖는다.

이러한 채널은 Simple mode와 Scatter-Gather mode에서 SRC(소스) 버퍼와 DST(대상)버퍼로 나뉨.

→ SRC & DST를 이용해서 DDR에 데이터 전송 & 읽기 작업이 되는 듯?

  • SRC = 데이터를 읽어오는 담당 (DDR to Device)
  • DST = 데이터를 쓰는 대상 (Device to DDR)


Simple DMA Mode

해당 모드는 DMA가 단일 명령 방식으로 명령을 수신하면 데이터를 전송하기에 Single-command mode로 알려져 있다. 이 모드에서는 DMA 전송 매개변수가 Control Reg에 지정됨. DMA 채널은 이러한 매개변수를 사용하여 데이터를 SRC → DST로 전송한다.

320x100

 

전송 완료 후 DMA 채널 작동이 완료되며, 이러한 전송을 위해서는 다음 단계가 필요함.

  1. 새로운 transaction 매개변수로 Control Reg update
  2. DMA 채널 활성화

⇒ 채널의 경우 Transaction의 SRC 크기만 보고, DST의 크기는 SRC 크기와 동일하다고 가정

  • 읽기 전용 모드
    • DMA 채널이 데이터를 읽지만 데이터를 어디에도 쓰지 않습니다(레지스터 지정 위치).
  • 쓰기 전용 모드
    • DMA 채널이 제어 레지스터에서 미리 로드 된 데이터를 읽고 메모리에 기록합니다. DMA 채널은 메모리 위치에서 데이터를 읽지 않습니다. 소프트웨어는 DST 위치에 쓰기 위해 소스 데이터를 레지스터에 로드 합니다. 쓰기 전용 모드에서는 SRC 및 DST Reg가 모두 구성되어야 합니다.

Scatter-Gather이란?

단일 DMA 장치에서 여러 메모리 주소로 데이터를 전송할 수 있는 기능을 제공한다. 이는 여러 목적지로 데이터를 전송하기 위해 필요한 transaction 수를 줄임으로써 성능 향상 시킬 수 있다.

→ 그럼 이걸 이용하면 원하는 DDR 위치에 데이터 저장 가능한건가?

  • 본 기능의 이점
    • 데이터를 더 효율적으로 처리 가능
    • 네트워크 전역에 흩어져 있는 데이터를 더 빠르고 쉽게 처리 가능
      • 많은 데이터 처리가 필요한 어플리케이션에 적합함
    • 데이터가 네트워크에 흩어져 있을 때, 한 곳에 모두 저장되어 있을 때보다 더 빠르게 접근 가능함
      • 데이터 접근을 필요로 하는 어플리케이션의 성능 향상 가능
    • 해커가 한 번에 모든 데이터 접근이 어렵기에 보안 향상에도 도움을 줌

이러한 장점이 있으며, 효율적이고 빠른 데이터 전송이 매우 중요한 Embedded Sysyem에서 DMA 기술은 중요한 역할을 한다.

이는 메모리와 pheri 간에 데이터를 직접 전송할 수 있게 해주어, CPU의 부담을 덜어준다. 이는 전송 과정을 크게 가속화하다.

AXI DMA의 Scatter-Gather 기능

이는 단일 transaction에서 비연속적인 데이터 블록을 전송할 수 있게 해준다. 데이터를 통째로 전송하는 대신, 작은 연속적인 블록으로 나누어 각각의 개별적으로 전송한다. 이는 video 및 image process와 같이 대량의 데이터 전송이 필요한 application에서 더 유연하고 효율적인 데이터 전송 과정을 가능하게 한다.

Scatter-Gather 효율성과 성능 향상

앞서 언급했듯, AXI DMA의 Scatter-Gather 기능은 Embedded System에 있어 여러 이점을 제공한다.

  1. 데이터를 메모리의 연속적인 블록으로 복사할 필요가 없어 시간과 자원 절약 가능
  2. 비연속적인 데이터를 원본으로 저장할 수 있어 메모리 사용이 더 효율적임
  3. scatter-gather 기능은 여러 데이터 블록을 병렬로 처리할 수 있게 함으로써 데이터 전송 성능을 크게 향상시킴.
    1. 전송 속도를 빠르게 하고 자원 사용을 더 효율적으로 만들어, 대량의 데이터 전송이 필요한 application에 이상적이다. (이미지 혹은 비디오)

⇒ AXI DMA SG 기능은 성능 향상에 많은 도움을 준다.

Scatter Gather DMA Mode

해당 모드에서는 DMA 전송 매개변수가 memory(descriptor)에 지정되며 APB 레지스터의 매개변수는 무시된다.

 

728x90

 

[Software Program 과정]

  • SRC & DST descriptor를 메모리 시작 위치(시작 주소) 지정하는 채널 활성화
  • 채널 활성화 시 DMA 채널은 메모리에서 SRC or DST Descriptor를 들고와서 실제 데이터 전송을 수행함
  • 이때, Descripor는 채널 활성화 전에 구성되어야 한다.

[Descriptor Format]

  • SRC Descriptor
    • 지정된 주소의 데이터 읽음
  • DST Descriptor
    • 담겨있는 데이터를 지정된 위치(주소)에 기록
      • DDR과 같은 저장 위치 주소로 작성했다면, 그곳에 기록함
728x90
반응형

'대학원 > 대회 준비 관련' 카테고리의 다른 글

DMA vs CDMA  (1) 2024.06.14
[ZCU-104]DMA + echo  (0) 2024.06.11
[ZCU-104]DMA + DDR 공부 내용  (0) 2024.05.28
[ZCU-104] DMA 기본적인 배경  (2) 2024.04.18
[ZCU-104]이미지 파일 전송해서 BRAM에 저장  (4) 2024.03.23