0. 이론

DMA란? (Direct Memory Access?)

Beginner:) 2021. 12. 23.
320x100

DMA란 Direct Memory Access의 약자로 말 그대로 메모리에 직접적으로 접근하는 방법을 말한다.

 

데이터를 가져오거나 사용할 때에는 항상 CPU가 필요하다.

 

근데 CPU는 접근 속도가 느릴뿐더러 이외에도 하는 일이 많다.

 

만약 메모리에 대량의 데이터를 전송한다면 CPU도 먹통이 되는 것이니 시스템 전체에 영향이 가해질 수밖에 없다.

 

그렇다면 DMA는 어떤 식으로 접근을 하는가?

 

DMA를 제어하는 DMAC(Direct Memory Access Control)가 있다.

 

CPU가 DMAC한테 주소, 데이터 길이 등을 알려주면 DMAC가 처리를 한 뒤,

 

HW 인터럽트로 처리가 끝났음을 알린다.

 

그럼 DMAC가 데이터를 처리하는 동안 CPU는 다른 일을 할 수 있는 것이다.

 

 

 

참고로 CPU가 DMAC한테 일을 시킬 때 필요한 레지스터들이 있는데, source주소, destination 주소, counter 주소, control 레지스트리 등이 필요하다고 한다.

 

아래는 참고한 사이트이다.

 

참고)

 

http://recipes.egloos.com/5152867

https://www.sony.co.kr/electronics/support/articles/S500082606

 

 

 

 

반응형

댓글