• 카테고리

    질문 & 답변
  • 세부 분야

    기타 (개발 · 프로그래밍)

  • 해결 여부

    해결됨

메모리맵 입출력 - 주소공간의 개념에 대한 질문

24.01.29 20:34 작성 조회수 178

0

안녕하세요! 교재와 같이 강의를 공부하고 있는 수강생 입니다.

복습을 하다, 한 가지 내용이 헷갈려서 질문드립니다.

 

메모리맵 입출력에서, '주소공간'이라는 개념이 나오는데, 이 개념이 이해가 되지 않습니다.

 

교재의 그림 설명에서처럼, 특정 입출력장치의 레지스터들은(데이터 레지스터, 상태 레지스터, 제어 레지스터) 메모리가 아닌 그 입출력장치의 컨트롤러 안에 있습니다.

그런데 주소공간이라는 개념이 나오고, "그 주소공간의 516번지는 프린트 컨트롤러의 데이터레지스터로 약속했다"는 교재의 설명에서 개인적으로 주소공간과 메모리의 개념이 헷갈리네요..ㅠ

여러번 읽어보고 주소공간은 결국 메모리이며, '메모리의 xx번지는 ~다'정도의 정보를 저장하는 것 같은데, 제대로 이해한 걸까요?

 

양질의 강의 제공해주셔서 감사합니다.ㅎㅎ

답변 2

·

답변을 작성해보세요.

0

'메모리의 xx번지는 ~다'정도의 정보

맞습니다.

 

CPU 입장에서 생각해보시면 쉽습니다.

516 번지에 접근할 때 메모리와 다름없이 접근한다,

'메모리 처럼 간주하는 주소 공간' 이라고 생각하시면 쉽습니다.

 

좋게 들어주셔서 감사합니다 :)

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.01.29

안녕하세요, 인프런 AI 인턴입니다.

주송준 님께서 질문하신 내용은 메모리 맵 입출력(MMIO)과 주소 공간의 개념에 대한 이해와 관련이 있습니다. “주소공간”은 CPU가 접근할 수 있는 메모리 및 입출력 장치의 주소들을 통칭하는 용어로, 메모리 주소 공간과 입출력 장치들의 주소 공간으로 구분됩니다. 메모리 맵 입출력이란 입출력 장치를 일반 메모리처럼 메모리 주소 공간 내에 나타나게 하여, CPU가 메모리에 접근하는 것처럼 입출력 장치의 레지스터에 접근하게 하는 방식을 의미합니다.

이와 관련하여 유사한 질문에 대한 답변이 있으니, 정보를 얻는 데 도움이 될 수 있을 것 같습니다. 메모리 맵 입출력 질문에 대한 답변을 참고해 주세요. 질문과 해당 답변에서 “입출력 장치를 위한 주소공간의 정보들은 드라이버 설치를 통해 메모리에 해당 정보가 저장된다”는 설명이 나오는데요, 이는 메모리 맵 입출력과 드라이버와의 관계를 설명해주는 내용입니다.

또 다른 관련 질문인 9:22 메모리맵 입출력에서 제어레지스터는 어디에있나요? 또한 “장치 컨트롤러에 있는 제어 레지스터 및 데이터 레지스터”에 대한 설명을 포함하고 있습니다.

주소공간에 대한 개념이 헷갈려진다면, 간단하게 이렇게 이해할 수 있습니다: CPU는 메모리 주소 공간을 통해 데이터를 읽고 쓸 수 있으며, MMIO 방식을 통해 일정 범위의 주소 공간이 실제 메모리가 아닌 입출력 장치의 레지스터와 매핑됩니다. 따라서 CPU는 해당 주소에 접근함으로써 간접적으로 입출력장치를 제어할 수 있게 됩니다.

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