2012-10-25 3 views
3

Pandaboard에서 DMA가 정확히 작동하는지 알고 싶습니다. 나는 Pandaboard에서 사용되는 OMPA4460의 TRM을 읽었으며 DMA 시스템은 한 번에 총 128 개의 요청을 처리 할 수 ​​있으며 최대 32 개의 논리 채널과 4 개의 인터럽트 요청을 관리 할 수 ​​있습니다. DMA가 진행 중일 때 CPU가 한 번에 다른 작업을 수행 할 수있는 가능성이 있습니까?OMAP 4460에서 여러 DMA 전송이 진행되는 동안 CPU가 차단 되었습니까?

답변

1

하지만 DMA가 작동 중일 때 팬더 보드의 CPU에 어떤 기회가있을 때 한 번에 다른 작업을 수행 할 수 있는지 알고 싶습니까 ???

DMA의 목적은 I/O 장치와 주 메모리간에 데이터를 구체적으로 전송하는 것입니다. 의도적으로 이것은 프로그래밍 된 I/O으로 알려진이 전송을 수행하는 CPU를 완화하기위한 것입니다. 일단 CPU가이 데이터 전송을 수행하도록 DMA 컨트롤러를 설정하면 CPU는 자유롭게 다른 목적으로 명령을 실행할 수 있습니다. 그래서 대답은 "예, 100 % 기회"입니다.

PandaBoard의 SoC에는 다중 채널이있는 DMA 컨트롤러가 있으므로 여러 I/O 작업을 동시에 수행 할 수 있습니다. 성능 & 처리량에 대한 제약은 메모리 대역폭입니다. 최신 CPU는 명령어 및 데이터 캐시로 인해 메모리 대역폭을 덜 사용하는 경향이 있거나 메모리를 더 많이 사용하는 경향이 있습니다. 일반적으로 CPU와 DMA 컨트롤러가 메모리를 위해 경쟁 할 때 CPU는 메모리에 대한 우선 순위 액세스 권한이 부여됩니다.

이러한 특성은 PandaBoard에만 적용되지 않습니다.

+0

안녕하세요 sawdust.and 감사합니다. 답을 알려 주셔서 대단히 감사합니다. DMA 컨트롤러를 설정 한 후 CPU가 100 % 활용되었음을 이해합니다. –

+0

한 가지는 어떻게하면 CPU의 대역폭 사용률을 찾을 수 있습니까 ??? –

+0

CPU 사용률은 일반적으로 * 유휴 * 루프에서 경과 시간보다 오래 걸리지 않고 "사용중"비율로 계산됩니다. 커널은 스케줄러의 유휴 작업/루프에 모니터를 가지고 있어야하고 경과 된 시간 간격을 기록하는 다른 모니터가 있어야합니다. – sawdust

관련 문제