"메모리 맵 입출력"의 두 판 사이의 차이

잔글
잔글
포트 매핑 입출력을 사용할 때 얻을 수 있는 가장 큰 장점은 어드레싱 능력이 제한된 CPU를 사용할 때 나타난다. 포트 매핑 입출력이 입출력 접근을 메모리 접근과 분리하기 때문에 메모리용으로 주소 영역 전체를 사용할 수 있다. 또다른 장점은 [[어셈블리어]]로 된 소스 목록을 볼 때, 언제 입출력이 수행되는지를 알아보기가 쉽다. 이는 바로 입출력용으로만 쓰는 명령어를 써서 입출력을 수행하기 때문이다.
 
메모리 매핑 입출력을 사용하는 장점은, 포트 입출력을 구현할 때 필요한 부수적인 복잡성이 없어지기 때문에, CPU는 내부 로직이 덜 필요하고, 그러므로 더 저렴하고, 더 빠르고, 더 쉽게 CPU를 만들 수 있다는 것이다. 바로 이 점은 [[RISC|reduced instruction set computing]] 추구하는 것과바와 그런 노선을 따르는 것이고, 이런 방식은 [[임베디드 시스템]]을 구현할 때 장점으로 작용한다. [[16비트]] CPU 구조가 없어지고, [[32비트]]와 [[64비트]] 구조로 대치되어 감에 따라, 입출력 장치를 위해 메모리 맵 일부를 확보해 놓는 것은 더 이상 문제가 되지 않는다.{{출처|날짜=2007년 10월}} <!-- 하위 호환성은 어떨까?... 문제가 되지 않겠는가? --> 그리고 장치를 어드레싱하기 위해서 일반적인 메모리 명령어를 사용한다는 것은 메모리뿐 아니라 입출력을 위해서도 모든 CPU 어드레싱 모드가 다 지원된다는 것을 의미한다.
 
하지만 메모리 매핑 입출력은 어드레스와 데이터 버스를 무척 많이 사용하게 된다. 그래서 보통 메인 메모리에 접근하는 것보다 매핑된 장치에 접근하는 것이 더 느리다. 반면, 포트 매핑 입출력은 입출력용으로 할당된 버스를 사용할 경우 느리지 않다.