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

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

김동현님의 프로필 이미지
김동현

작성한 질문수

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

다양한 입출력방법

메모리맵 입출력과 고립형 입출력의 물리적 차이가 이게 맞나요?

작성

·

50

0

  1. "메모리 맵 입출력은 메모리에 접근하기 위한 주소공간과 입출력 장치에 접근하기 위한 주소공간을 하나의 주소공간으로 간주하는 방법입니다." 는 한마디로 같는 램 안에 섞여잇단 말씀인가요? 예시로 1024개의 주소를 나타내는 램에 반은 일반적인 메모리를 위해, 반은 입출력장치를 위해 사용된다는 말씀인가요?

  2. 그렇다면 고립형 입출력에서 메모리에도 1024, 입출력장치도 1024개의 주소를 사용할수 잇다는 말씀은...램이 두배로 증가한것도 아닐테고...메모리를 위한 주소공간은 램에 표현되고 입출력장치를 위한 주소공간은 입출력장치 내의 레지스터나 입출력장치내의 램을 뜻하는게 맞을까요?

  3. 좀 두서없어서 죄송합니다...정리하자면 메모리맵 입출력에서 메모리를 위한 주소공간과 입출력을 위한 주소공간은 램에 존재하는 것이고 고립형 입출력에서 메모리를 위한 주소공간은 램에, 입출력장치를 위한 주소공간은 장치 컨트롤러 내의 기억장치에 존재하는 것..이 맞을까요?

답변 2

0

강민철님의 프로필 이미지
강민철
지식공유자

안녕하세요

답변이 늦어 죄송합니다.

 

하드웨어적인 주소 공간이라기보다는 논리적인 주소공간이라고 보시는 것이 옳습니다.

CPU 입장에서 바라본 주소를 하나의 주소공간으로 간주하는 방법 = 메모리 맵 입출력

CPU 입장에서 바라본 주소를 별도의 주소공간으로 간주하는 방법 = 고립형 입출력

이렇게 생각해주시기면 좋을 것 같습니다.

 

김동현님의 프로필 이미지
김동현
질문자

아~ 논리적인 구분이군요. 감사합니다

0

안녕하세요, 인프런 AI 인턴입니다. 김동현 님께서 질문하신 메모리맵 입출력과 고립형 입출력에 대한 이해를 돕기 위해 설명드리겠습니다.

  1. 메모리 맵 입출력 (MMIO): 이 방식은 말 그대로, 입출력 장치들이 메모리 주소 공간 내에 포함되어 있다는 것을 의미합니다. 즉, 시스템의 메모리 공간에서 특정 주소를 통해 메모리나 입출력 장치에 접근할 수 있습니다. 예를 들어, 1024개의 메모리 주소가 있다면, 일부는 실제 데이터 저장을 위해 사용되고, 일부분은 입출력 장치 제어를 위해 사용됩니다. 따라서, CPU는 특정 주소에 접근할 때 메모리인지 입출력 장치인지 구분 없이 통합된 방식으로 접근하는 것입니다.

  2. 고립형 입출력 (Isolated I/O): 이 방식에서는 메모리와 입출력 장치가 별도의 주소 공간을 가지게 됩니다. 따라서 메모리 접근과 입출력 장치 접근에 서로 다른 명령어가 필요합니다. 이는 메모리 공간과는 별개로 입출력 장치를 제어할 수 있도록, 주소 공간이 메모리와 독립적으로 존재하는 구조를 가지고 있음을 의미합니다. 고립형 입출력에서 메모리의 주소 공간은 실제 램에 존재하며, 입출력 장치의 주소 공간은 입출력 포트나 장치 컨트롤러의 레지스터 등에 존재하게 됩니다.

  3. 간단한 정리:

    • 메모리 맵 입출력에서는 메모리와 장치들이 동일한 주소 공간을 공유합니다.
    • 고립형 입출력에서는 메모리와 장치들의 주소 공간이 독립적으로 분리되어 있습니다.

관련된 질문과 답변으로 더 많은 정보를 얻고자 하시면, 아래의 링크를 참고해 주세요:
- 고립형 입출력 - “입출력 전용 명령어와 같은 명령어 사용 여부”
- 메모리 맵 입출력 질문 - 드라이버 설치가 어떻게 메모리 내의 입출력 장치 주소 공간을 설정하는지 설명

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.

현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

김동현님의 프로필 이미지
김동현

작성한 질문수

질문하기