2017-04-16 3 views

답변

0

1 - DMA 이상의 CPU 빠른

CPU가 유휴 상태입니다. 귀하의 태스크를 제외하고는 태스크가 실행되고 있지 않습니다 (또는 태스크가 우선 순위가 높고 스케줄링이 우선 순위 스케줄링 임). 코어 인터럽트가 비활성화되어 있습니다. 타이머 틱 인터럽트가 없으므로 스케줄링도 중지됩니다. 이 경우, 일반적으로 CPU가 DMA에 클럭을 제공하는 버스 (ARM의 AHB) 클럭보다 빠른 클럭을 가지기 때문에 CPU 전송은 DMA보다 확실히 빠릅니다.

2 - DMA 빠른 항상 실행중인 프로세스 및 인터럽트는 CPU가 자주 ISR을 실행해야하므로 지연이 발생할 수 있으며, 프로세스 컨텍스트 점프 될 사용할 수 있습니다 몇 가지가 있습니다 정상 시스템에서 CPU

이상 스케줄링 때문에

+0

Shaibal! 또 다른 대답을 발견 : 데이터가 내부 레지스터 사이에 전송되면 CPU가 DMA보다 빠릅니다. 이 경우에는 DMA가 버스 및 바이 패스 CPU에서 제어를 대신 할 필요가 없습니다. –

+0

내부 레지스터 란 무엇입니까? – Shaibal

+0

메모리가 아니라 범용 레지스터와 같은 레지스터가 포함 된 데이터 전송이 있음을 의미합니다. 그럴 수도 있습니다. –

관련 문제