Published on

Memory mapped I/O & Ported I/O

Authors
  • avatar
    Name
    유사공대생
    Twitter

Memory mapped I/O와 Ported I/O는 입출력(I/O) 디바이스에 접근하는 데 사용되는 두 가지 메모리 매핑 방식입니다.

Memory mapped I/O

image

  • 입출력 장치가 메모리 주소 공간에 매핑된다.
  • 입출력 명령어는 메모리에 저장된 데이터와 동일한 방식으로 주소를 사용한다.
  • 프로그래머는 입출력 명령어를 통해 메모리 주소를 직접 사용하여 입출력 장치와 상호 작용할 수 있다.
  • Memory mapped I/O는 간단하고 편리하며, 입출력 장치에 대한 액세스가 빠르다.

Ported I/O

image

  • 입출력 장치가 메모리 주소 공간이 아닌 독립된 주소 공간에 매핑된다.
  • 입출력 명령어는 메모리에서 데이터를 읽거나 쓰는 것이 아니라, 입출력 장치의 포트 번호와 데이터를 직접 지정한다.
  • 프로그래머는 입출력 명령어를 통해 입출력 포트를 직접 사용하여 입출력 장치와 상호 작용할 수 있다.
  • Ported I/O는 Memory mapped I/O와 달리 입출력 장치에 대한 액세스가 느리지만, 입출력 장치와 메모리 간의 충돌 문제를 방지할 수 있다.

따라서, Memory mapped I/O와 Ported I/O는 각각의 장단점을 가지고 있으며, 입출력 장치와 상호 작용하는 방식이 서로 다르다. 프로그래밍 환경과 입출력 장치의 종류 및 성능 등에 따라 적합한 방식을 선택해야 한다.