리눅스에서 DMA는 어떻게 동작하나요..
글쓴이: seed / 작성시간: 금, 2003/05/30 - 10:22오전
*
디바이스 드라이버에서 DMA동작에 관해 질문이있습니다.
보통은 드라이버에서는 보통 DMA주소만을 디바이스에 알려주고,
디바이스에서 직접 DMA를 한다고 알고있는데요.. ( :?: )
이경우 그렇다면 PC에서 기본적으로 제공되는 8개의 DMA채널은
전혀 사용하지 않게되는 것인가요?
아니면 같이 협동(??)하여 동작하게 되는것인가요.?
*
또한가지 궁금한건 DMA를 많이 사용할텐데
cat /proc/dma 해보면 동작하는 DMA가
나오지않습니다.(4번 cascade만 나옴.)
이것은 순간적으로 DMA가 사용되기 때문에 안나오는것인가요..?
아니면 요즘 디바이스들은 다 독립적으로(PC꺼 안쓰고) DMA를 하기때문인지요.?
먼저 감사드려요..^^
Forums:
DMA 에는 두종류가 있는데,"third party" DMA 라고 중
DMA 에는 두종류가 있는데,
"third party" DMA 라고 중간에 DMA 콘트롤러가 개입하는 경우와,
"first party" DMA 라고 디바이스가 직접 버스를 제어하는 경우입니다. (bus mastering)
ISA 디바이스를 위해서 "third party" DMA 콘트롤러가 있고,
/proc/dma 는 거기에 할당된 채널이 있나를 나타내는 것입니다.
PCI 디바이스의 경우, bus mastering 방식으로 메모리를 직접 억세스 할 수 있습니다.
(그게 PCI 버스의 특징이죠.)
댓글 달기