CPU가 DMA (Direct Memory Access Controller)보다 빠르게 데이터를 전송할 수있는 경우에 대해 다소 혼란 스럽습니다. 그 반대?어떤 경우 CPU 직접 전송이 DMA보다 빠르게 작동합니까? 어떤 경우에는 DMA 전송이 CPU 직접 전송보다 빠르게 작동합니까?
감사
CPU가 DMA (Direct Memory Access Controller)보다 빠르게 데이터를 전송할 수있는 경우에 대해 다소 혼란 스럽습니다. 그 반대?어떤 경우 CPU 직접 전송이 DMA보다 빠르게 작동합니까? 어떤 경우에는 DMA 전송이 CPU 직접 전송보다 빠르게 작동합니까?
감사
1 - DMA 이상의 CPU 빠른
CPU가 유휴 상태입니다. 귀하의 태스크를 제외하고는 태스크가 실행되고 있지 않습니다 (또는 태스크가 우선 순위가 높고 스케줄링이 우선 순위 스케줄링 임). 코어 인터럽트가 비활성화되어 있습니다. 타이머 틱 인터럽트가 없으므로 스케줄링도 중지됩니다. 이 경우, 일반적으로 CPU가 DMA에 클럭을 제공하는 버스 (ARM의 AHB) 클럭보다 빠른 클럭을 가지기 때문에 CPU 전송은 DMA보다 확실히 빠릅니다.
2 - DMA 빠른 항상 실행중인 프로세스 및 인터럽트는 CPU가 자주 ISR을 실행해야하므로 지연이 발생할 수 있으며, 프로세스 컨텍스트 점프 될 사용할 수 있습니다 몇 가지가 있습니다 정상 시스템에서 CPU
이상 스케줄링 때문에
Shaibal! 또 다른 대답을 발견 : 데이터가 내부 레지스터 사이에 전송되면 CPU가 DMA보다 빠릅니다. 이 경우에는 DMA가 버스 및 바이 패스 CPU에서 제어를 대신 할 필요가 없습니다. –
내부 레지스터 란 무엇입니까? – Shaibal
메모리가 아니라 범용 레지스터와 같은 레지스터가 포함 된 데이터 전송이 있음을 의미합니다. 그럴 수도 있습니다. –