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

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

jjjj님의 프로필 이미지

작성한 질문수

Arm 아키텍처: 메모리 매니지먼트(MMU) [저자직강 3부-5]

MMU와 캐시의 관계

해결된 질문

작성

·

33

0

안녕하세요, 최근 TF-A 기반 부트로더에 대해 공부중인데, 부팅 단계에서 MMU가 특별히 물리주소를 별도의 가상주소로 매핑할 필요 없이, 지정된 물리영역을 가상주소에 그대로 1대1 매핑하여 사용한다는 사실을 알게되었습니다. (물리주소 0x0000_0000 -> 가상주소 0x0000_0000 이런식으로요)

그 이유가 캐시를 활성화 하기 위함이라고 들었는데, 이런 상황에서 캐시는 가상주소라고 해도 그 주소가 곧 물리주소와 동일한데, 왜 MMU를 꼭 켜야만 캐시를 사용할 수 있는 것인지 궁금합니다.

답변 2

0

김동현 (Austin Kim)님의 프로필 이미지
김동현 (Austin Kim)
지식공유자

부트로더는 부팅할 때 실행되며 다음과 같은 특징을 지닙니다:

1. 부팅할 때 한번 만 실행된다.

2. 칩셋이나 하드웨어 리소스(UART, 파워 콘트롤)를 초기화한다.

3. 커널이나 RTOS 이미지를 파티션 테이블에서 읽어서 실행 시킨다.

4. 물리 주소 공간에서 실행된다.

일반적으로는 물리 주소 기반으로 실행되는 시스템에서, 캐시를 사용하기 위해서 반드시 MMU를 활성화할 필요는 없습니다.

감사합니다.

0

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

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

jjjj님께서 질문하신 MMU와 캐시의 관계에 대해 설명드리겠습니다.

MMU와 캐시의 관계

캐시 메모리는 CPU와 메인 메모리 간 속도 차이를 줄이기 위해 사용되며, CPU가 메모리에 접근할 때의 지연 시간을 최소화하려고 합니다. 특히 ARM 아키텍처에서 MMU는 가상 주소를 물리 주소로 변환하여, 메모리 접근 속도를 개선하는 데 도움을 줍니다.

물리 주소와 가상 주소의 1대1 매핑

부트로더 단계에서 물리 주소와 가상 주소를 1:1 매핑하는 이유 중 하나는 캐시를 효율적으로 사용하기 위함입니다. 이 단계에서 가상 주소와 물리 주소가 동일하더라도, MMU를 활성화하면 메모리 접근이 캐시를 통해 이루어집니다. 이는 이전에 사용했던 메모리 블록을 캐시에 저장해서, 같은 주소를 반복적으로 접근할 때 빠르게 데이터를 가져올 수 있게 하기 위해서입니다.

1:1 매핑을 하면, MMU가 불필요한 번역을 제어하고 메모리 접근을 최적화할 수 있어, 캐시의 역할을 최적화하여 성능을 향상시킬 수 있습니다. 이는 매핑 설정이 단순하고, 캐시 일관성 유지가 용이하기 때문입니다.

캐시와 MMU의 활성화 필요성

사실, MMU와 캐시는 일반적으로 서로 독립적으로 작동할 수 있지만, ARM 아키텍처에서는 MMU를 활성화해야만 캐시도 정상적으로 활성화될 수 있습니다. 이는 캐시 메커니즘이 가상 주소 매핑과 밀접하게 연결되어 있기 때문에, 가상 주소 변환 없이 직접 물리 주소로 캐시를 제어하는 것이 복잡해질 수 있기 때문입니다.

유사한 질문들:

위 설명들이 jjjj님의 학습에 도움이 되기를 바랍니다. 추가적으로 궁금한 점이 있으시면 언제든지 질문해 주세요. 곧 지식공유자께서 상세히 답변해 주실 것입니다.

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

jjjj님의 프로필 이미지

작성한 질문수

질문하기