묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨Arm 아키텍처: 메모리 매니지먼트(MMU) [저자직강 3부-5]
MMU와 캐시의 관계
안녕하세요, 최근 TF-A 기반 부트로더에 대해 공부중인데, 부팅 단계에서 MMU가 특별히 물리주소를 별도의 가상주소로 매핑할 필요 없이, 지정된 물리영역을 가상주소에 그대로 1대1 매핑하여 사용한다는 사실을 알게되었습니다. (물리주소 0x0000_0000 -> 가상주소 0x0000_0000 이런식으로요)그 이유가 캐시를 활성화 하기 위함이라고 들었는데, 이런 상황에서 캐시는 가상주소라고 해도 그 주소가 곧 물리주소와 동일한데, 왜 MMU를 꼭 켜야만 캐시를 사용할 수 있는 것인지 궁금합니다.
-
미해결Arm 아키텍처: 메모리 매니지먼트(MMU) [저자직강 3부-5]
실무적인 내용 문의드립니다!
최근 회사에서 팀을 옮기면서 소프트웨어 관련 업무를 하고 있습니다. 전 개발자도 아니였고, 이전 근무지에서 관련 업무를 하지 않았기 때문에 최근 열심히 임베디드/소프트웨어 관련 강의를 열심히 듣고 있는데요. (열심히 듣다보니 개념을 이해하고 있는 수준입니다) 궁금한건, 현업에선 보통 RAM/EEPROM 등 메모리 관련 충돌(읽기/쓰기중 인터럽트시 등) 등 메모리 문제점이 많아서 해당 내용의 설계 관련된 내용을 좀 실무적으로 딥하게 알고 싶은데... 강사님 강의 포함해서 인프런의 다른 강의를 봐도 메모리 설계 관련 실무적인 내용은 찾기가 어렵더라구요... 혹시 위와 같은 괴리를 좀 해결하기 위한 답변 혹은 도움이 가능하실지(강의 혹은 교재 추천 등) 싶어 문의드립니다.ㅎ
-
미해결Arm 아키텍처: 메모리 매니지먼트(MMU) [저자직강 3부-5]
MMU의 Page Table과 관련된 질문이 있습니다.
TTBR_ELn 레지스터가 가지고 있는 값은 물리 메모리 주소값을 가지고 있는 건가요?TTBRn레지스터와 가상주소 변환(멀티 레벨) 강의에서 12:12 쯤에 말씀해주신 "페이지 테이블에 적힌 물리 메모리 주소를 다시 가상 메모리로 변환해서 다음 페이지 테이블의 정보에 접근한다." 라는 부분이 잘 이해가 안되는데, 조금 더 부연 설명을 해주실 수 있으신가요? 제가 이해한 바로는 MMU가 TTBR_ELn 에 적힌 주소를 이용해서 멀티 레벨 Page Table의 모든 변환 과정을 수행해주는 것으로 이해했는데, 변환 과정 중간에 얻어진 다음 레벨의 Page Table의 엔트리 주소를 다시 가상 주소로의 변환한다는게 어떤말인지를 잘 이해못하겠습니다. 각각의 EL마다 MMU를 켜는 설정을 해줘야 하는 건가요? 만약, EL1에서는 MMU를 활성화하고, EL2에서는 MMU를 활성화하지 않게 되면 EL1에서 접근하는 주소는 가상 주소인 반면, EL2에서 접근하는 주소는 실제 물리주소에 접근하는 식인가요?
-
미해결Arm 아키텍처: 메모리 매니지먼트(MMU) [저자직강 3부-5]
mmu table 위치
안녕하세요mmu 가 page walk 를 한다고 나와 있는데요,mmu 가 multi level page 인 경우 page walk 를 알아서 찾아 가게 설계 되어 있는 건가요?(hardware 단에서 처리?) 어디까지 하드웨어 상에서 "알아서" 처리해서 가져가는지 잘 모르겠습니다..
-
미해결Arm 아키텍처: 메모리 매니지먼트(MMU) [저자직강 3부-5]
mmu page walk
안녕하세요, mmu 가 page walk 할 때 다음 레벨 페이지 주소가 가상주소인가요, 실제주소인가요? 가상주소라면 mmu 를 또 거치게 될 것 같은데, page walk 에서 page fault 가 너무 많이 일어날 수 있을 것 같아요.
-
미해결Arm 아키텍처: 캐시(Cache) [저자직강 3부-4]
캐시의 친화적인 코드
안녕하세요, 선생님 시스템 소프트웨어의 개발의 모든 것 강의에 이어서 이번 강의도 정말 잘 보았습니다. 강의 내용과, 강의 소개란에 보면"둘째, 캐시의 구조를 잘 알면 캐시 히트를 활용한 캐시의 친화적인 코드를 작성할 수 있습니다. 예를 들어, 자주 사용되는 루틴은 특정 CPU 코어에서만 실행되도록 설계할 수 있습니다." 라는 문구가 잘 이해가 안되어 질문 드립니다.실무에서 어떤 상황에 캐시 친하적인 코드를 실제로 작성하게 되는지, 자주 사용되는 루틴은 어떤 것이 있고 어떤 업무(?)를 주로 맡았을 때 저런 개발을 하게 되는지 궁금합니다.가능하시다면 조금 더 구체적인 사례를 선생님께 듣고 싶습니다.미리 감사드립니다
-
미해결Arm 아키텍처: 메모리 매니지먼트(MMU) [저자직강 3부-5]
폴트 설정 비트 필드 질문
폴트 설정하는 레지스터들의 값을 0으로 설정하여 EL0에서 EL1, EL2로 트랩되도록 허용하는 것이 보안수준을 왜 올리는 것인지 문의드립니다. 제가 생각했을 때는 사용자 레벨(EL0)에서 더 상위 익셉션 레벨(EL1, EL2)로 접근할 수 있도록 설정하는 것이 보안 수준을 낮춘다고 생각해서 문의드립니다.
-
해결됨Arm 아키텍처: 메모리 매니지먼트(MMU) [저자직강 3부-5]
멀티레벨테이블로 운영하는 이유
안녕하세요. 가상메모리를 물리주소로 변환하기 위해서 멀티레벨페이지로 운영하는 이유가 궁금합니다. 멀티레벨페이지로 운영했을때 어떤 장점들이 있는지 궁금합니다.