https://www.youtube.com/watch?v=RRgGVu8OCP4&list=PLVsNizTWUw7FCS83JhC1vflK8OcLRG0Hl&index=23&t=1935s
장치컨트롤러가 시스템 버스에 연결돼 있다.
그런데 장치컨트롤러는 한 두개가 아니다.
이때 장치컨트롤러가 시스템버스에 직접 연결돼도 괜찮을까?
장치컨트롤러가 시스템버스에 직접적으로 연결되면 DMA를 하는 과정에서
DMA컨트롤러는 불필요하게 시스템버스를 두번씩 이용하게 된다.
예를들어 메모리에 있는 정보를 하드디스크에 백업한다는 입출력 작업이 있을때
읽어들이기 위해 한번, 쓰기 위해 한번, 이렇게 두번 사용하게 되는데
시스템 버스는 공용자원이기에 CPU도 시스템버스를 사용해야한다.
그래서 이런 공용자원을 어느 하나의 장치가 점유하는 것은 좋지 않다.
위와 같이 불필요하게 시스템버스를 두번 이용하는 문제를 방지하기 위해
장치컨트롤러는 직접적으로 시스템버스에 연결되는 것이 아닌
입출력 버스라는 입출력 전용 버스에 연결되게 된다.
입출력 버스는 장치컨트롤러가 시스템버스에 직접적으로 연결됐을 때,
DMA과정에서 불필요하게 시스템 버스를 오랫동안 점유하는 문제를 해결하기 위해 등장한 개념이다.
입출력 버스의 종류
DMA방식은 최근 더욱 발전해서, 입출력 전용 프로세서를 다는 정도까지 발전했다.
(입출력 작업을 해주는, 입출력 작업 명령어 실행까지도 해주는 입출력 전용 프로세서)