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

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

platf님의 프로필 이미지

작성한 질문수

Arm 아키텍처: 메모리 모델과 배리어 [저자직강 3부-3]

2.2-메모리 맵드 I/O 예시-BCM2711 (라즈베리 파이)

SoC

작성

·

26

0

SoC 설계 메모리 맵과 arm 에서 말하는 메모리 맵, 그리고 process 가 보는 virtual memory map 이 다 다른데요,

os 단에서 그러면 SoC 메모리 매핑 영역(memory mapped i/o) 을 모아서 운영체제에 알려주면 운영체제가 알아서 table 에 기록하게 되는 것인가요?

또 arm architecture 가 바라보는 memory map 으로 리눅스 커널의 로더 단에서 virtual memory 공간을 바꾸어주게 되는 것인가요? 역할이 다소 헷갈립니다

답변 1

0

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

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

SoC(System on a Chip)의 메모리 맵과 ARM 아키텍처에서의 메모리 맵, 그리고 프로세스가 보는 가상 메모리 맵은 모두 각자의 역할과 특성에 따라 다르게 구성됩니다.

메모리 맵과 역할

  1. SoC 설계와 메모리 매핑:

    • SoC는 각종 주변 장치와 인터페이스를 포함하는 칩으로, 메모리 맵은 이러한 장치들이 사용할 물리적 메모리 주소를 정의합니다.
    • 메모리 매핑 I/O(Memory Mapped I/O)는 CPU가 주변 장치와 상호 작용할 때 사용하는 방법으로, 특정 주소 범위에 주변 장치의 레지스터가 매핑되어 있습니다.
  2. 운영체제(OS)와 메모리 매핑:

    • 운영체제는 SoC의 물리적 메모리 맵 정보를 시스템이 초기화되는 동안 수집하여 메모리 관리 시스템에 반영합니다.
    • 이는 운영체제가 각 장치와 인터페이스를 올바르게 관리하고, 프로세스들이 해당 자원에 안전하게 접근할 수 있도록 하기 위함입니다.
  3. ARM 아키텍처와 메모리 맵:

    • ARM 프로세서는 리눅스 커널에서 초기 부팅 시, 메모리 관리 유닛(MMU)을 사용하여 가상 메모리 맵을 설정합니다.
    • 이 과정에서 물리적 메모리 주소와 가상 메모리 주소 간의 매핑이 설정되며, 시스템의 효율적인 메모리 관리를 가능하게 합니다.

리눅스 커널의 역할

리눅스 커널의 로더는 시스템 부팅 과정에서 SoC의 물리적 메모리 맵과 ARM 아키텍처의 메모리 특성에 따라 가상 메모리 맵을 구성합니다. 이로 인해 각 프로세스는 자신의 가상 메모리 공간을 갖게 되고, 운영체제는 이를 통해 메모리 보호와 효율적인 자원 사용을 보장합니다.

추가 자료

비슷한 주제를 다룬 게시물도 참고하시면 도움이 되실 것입니다:
- ARM 아키텍처에서의 메모리 관리 개론

질문자님께서 메모리 맵핑과 관련된 다양한 역할과 구조에 대해 보다 명확히 이해하시길 바랍니다. 추가적으로 궁금한 사항이 있으시면 언제든지 문의해주세요. 저의 설명이 도움이 되셨기를 바라며, 지식공유자님의 부가적인 답변도 기다려 주시기 바랍니다.

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

platf님의 프로필 이미지

작성한 질문수

질문하기