Memory Mapped I/O, I/O Mapped I/O
CPU가 IO장치에 접근하기 위한 대표적인 두 가지 방법
Memory Mapped I/O
I/O Mapped I/O
입출력 장치에도 자신의 자원을 저장하기 위한 메모리가 필요하다는 것을 먼저 짚고 가자.
두 가지 방식은 입출력 장치의 메모리가 저장 위치에 따라 구분된다.
Memory Mapped I/O의 경우 주기억 장치에 I/O 자원을 할당한다. (메인 메모리의 일부를 입출력 장치에게 내주게 된다.)
I/O Mapped I/O의 경우 입출력 장치 내부에 I/O 자원을 할당한다. (장치 스스로 어드레스를 가지기 때문에 메인 메모리를 따로 사용하지 않는다)
여기서 나타나는 차이점을 살펴본다면
Memory Mapped I/O는 메인 메모리의 일부를 입출력 장치에게 따로 내줘야 하는 단점이 있다. 하지만 메인 메모리에 있는 만큼 cpu에서 접근하기도 간편하다.
(ARM, MIPS 등에서 활용된다)
I/O Mapped I/O 는 입출력 장치에 따로 메모리를 할당하므로 메인 메모리를 따로 끌어다 쓰지 않아도 된다. 하지만 cpu에서 입출력 장치에 접근하기 위하여 Read, Write 외에도 추가적인 접근 명령어가 필요하다. -> 프로그래밍이 어려워진다.
(intel 계열 x86 프로세스에서 활용된다)
<<아래는 더 자세한 내용이 소개된 페이지>>
http://www.jidum.com/jidums/view.do?jidumId=467
https://ko.wikipedia.org/wiki/%EB%A9%94%EB%AA%A8%EB%A6%AC_%EB%A7%B5_%EC%9E%85%EC%B6%9C%EB%A0%A5

댓글
댓글 쓰기