인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

W-Hand님의 프로필 이미지

작성한 질문수

개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제

다양한 입출력방법

메모리맵 IO와 고립형 IO 차이 질문

작성

·

21

0

다른 분도 유사한 질문을 남겼지만 해당 답변으로 의문이 해소되지 않아 질문 남기는 점 양해바랍니다.

메모리맵 IO 는 메모리와 입출력장치가 같은 주소공간을 사용하기 때문에 메모리의 주소공간이 줄어들고 고립형은 그렇지 않은 것으로 말씀해주셨으나 이해가 잘 되지 않습니다.

10비트 운영체제를 사용한다고 가정하면 이 운영체제는 1024개의 주소공간을 다룰 수 있는 것으로 알고 있습니다.

이때 고립형 IO라고 하더라도 1024개 중 일부를 입출력장치를 위한 주소공간으로 사용하게 되면 당연히 그만큼 메모리를 위한 주소공간이 줄어들 게 되는 것 아닌가요?

메모리맵 IO와 이 점에서 왜 차이가 있는 것인지 모르겠습니다!

답변 1

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다. W-Hand님.

메모리맵 IO와 고립형 IO의 차이점에 대해 이해하기 어려운 점이 있으신 것 같습니다. 간단히 설명드리겠습니다.

메모리맵 IO

메모리맵 IO(Memory-Mapped IO)는 입출력 장치가 메모리 주소의 일부를 차지하는 방식입니다. 즉, 특정 범위의 메모리 주소를 입출력 장치의 레지스터와 매핑하여, 메모리와 입출력 장치가 동일한 주소 공간을 공유하게 됩니다. 이렇게 되면 CPU는 메모리에 접근하듯이 동일한 방법으로 입출력 장치에 접근할 수 있습니다. 이 경우, 실제로 메모리에 할당할 수 있는 주소 공간은 줄어들게 됩니다. 예를 들어, 1024개의 주소 공간 중 일부가 입출력 장치에 할당된다면, 그만큼 메모리 주소로 사용할 수 있는 범위가 줄어드는 거죠.

고립형 IO

고립형 IO(Isolated IO), 또는 포트 IO(Port IO)는 입출력 장치가 메모리와 별도의 주소 공간을 사용하는 방식입니다. 이 경우, CPU는 특수한 명령어를 사용하여 입출력 장치에 접근합니다. 포트 IO를 사용하게 되면, 메모리의 주소 공간은 입출력 장치에 의해 영향을 받지 않습니다. 따라서 CPU는 입출력 명령어별로 포트 주소로 직접 접근하며, 메모리의 주소 공간을 온전히 메모리를 위해 사용할 수 있습니다.

차이점 요약

따라서 메모리맵 IO는 메모리 주소 공간을 입출력 장치와 공유하여 메모리 영역이 줄어들지만, 고립형 IO는 입출력 장치를 위한 별도의 주소 공간을 사용해 메모리 공간과 상관없이 독립적인 주소 공간을 가집니다.

관련 질문을 참고하고자 하신다면 아래의 링크들을 참조해주세요.
- 고립형 입출력 질문 답변
- 메모리 맵 입출력 질문과 답변

질문에 대한 답변이 조금 더 명확히 이해되었기를 바랍니다. 저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

W-Hand님의 프로필 이미지
W-Hand
질문자

메모리맵IO에서는 포트라는 개념을 사용하지 않는 거고, 고립형 IO에서 포트별로 주소공간을 분리할 수 있는 건가요?

1번포트 0-1023번

2번포트 0-1023번

이런 식으로요!

W-Hand님의 프로필 이미지

작성한 질문수

질문하기