인프런 영문 브랜드 로고
인프런 영문 브랜드 로고
하드웨어

/

임베디드 · IoT

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

시스템 소프트웨어의 기본 중의 기본, 최신 Arm 아키텍처(Armv8-A, Armv7-A)의 핵심인 '메모리 매니지먼트(MMU)'를 "시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리"의 저자가 제대로 잡아드립니다!

(5.0) 수강평 1개

수강생 81명

Thumbnail

초급자를 위해 준비한
[임베디드 · IoT, 반도체] 강의입니다.

이런 걸
배워요!

  • Arm 아키텍처(Armv8-A)의 메모리 매니지먼트(MMU)의 기본 동작 원리를 파악할 수 있습니다.

  • Arm 아키텍처의 메모리 매니지먼트(MMU) 관련 기능이 실제 프로젝트에 어떻게 활용되는지 알 수 있습니다.

  • 메모리 매니지먼트(MMU)와 관련된 실행 흐름과 구조를 큰 그림으로 파악할 수 있습니다.

  • 면접에서 메모리 매니지먼트(MMU)에 관한 질문에 잘 대답할 수 있습니다.

<공지>

1. 200명 돌파 30% 할인 쿠폰 발행 

수강생 200명 돌파(1,2부)를 기념하여 30% 할인 쿠폰을 발행합니다. 감사합니다. 선착순 200명입니다.

  • 쿠폰 : 17880-b57e622e1867

2. 로드맵 안내 🎯

이번 강의 <Arm 아키텍처: 메모리 매니지먼트(MMU) [저자직강 3부-5]>는 로드맵 '시스템 소프트웨어 개발자를 위한 Arm - advanced course' 에 포함된 강의입니다.


체계적으로 Arm 아키텍처(Armv8-A, Armv7-A)을 배우시려는 분은 로드맵(전체 강의 30% 할인)을 활용하시면 좋습니다. 참고로 Arm 아키텍처 로드맵(저자 직강 전체)은 Basic Course Advanced Course 2가지로 구성되어 있습니다.


최신 시스템 소프트웨어에서
가장 중요한 Arm 아키텍처

스마트폰은 물론 AI용 SoC 시스템 반도체, 전기자동차 Automotive(자율주행, 인포테인먼트) 그리고 클라우드 서버 및 맥북에서 사용되는 Arm 프로세서는 모두 Armv8-A 기반 64비트 Cortex-A 프로세서 (Cortex-A53, Cortex-A57, Cortex-A72 등...) 입니다. 현재 시스템 소프트웨어 업계에서 가장 많이 필요한 기반 지식이 요구되는 내용이 Armv8-A 아키텍처라고 볼 수 있어요.

고급 시스템 SW개발자가 되는 첫걸음!
메모리관리 방식 이해하기 🙋‍♂


그런데 고급 시스템 소프트웨어 개발자가 되기 위해서는 Arm 아키텍처를 구성하는 주요 기능 중에 메모리를 관리하는 방식을 잘 알아야 합니다. 메모리를 관리하는 방식의 핵심은 '메모리 매니지먼트(MMU)', '캐시 동작 원리'와 '메모리 모델과 배리어'입니다.
이 중 시스템 소프트웨어 개발자가 알아야 할 가장 중요한 기능 중 하나는 가상 메모리 시스템과 관련된 '메모리 매니지먼트(MMU)'입니다.


'메모리 매니지먼트(MMU)'를 왜 배워할까요?

1⃣ 첫째, RTOS나 리눅스 커널 기반의 시스템에서 브링업을 하거나 디바이스 드라이버를 개발할 때, 가상 메모리에 대한 개념을 잘 모르면 제대로 개발을 진행할 수 없습니다. 보드를 브링업할 때 가상 주소의 속성이나 권한을 설정하는 상황이 생길 수 있는데, 이를 위해 필요한 개념이 가상 메모리와 MMU의 개념입니다.

2⃣ 둘째, 메모리 어보트나 페이지 폴트 그리고 디멘트 페이징 동작 방식을 이해할 수 있는 기반 지식이 가상 메모리와 MMU입니다. 가상 주소를 페이지로 관리하는 방식을 잘 모르면 이와 같은 동작 원리를 제대로 파악할 수 없습니다.

3⃣ 셋째, 가상 메모리와 MMU는 Arm 프로세서 내부의 동작 원리를 세세히 파악할 수 있는 기반 지식입니다.

4⃣ 넷째, 시스템 소프트웨어 개발 관련 기술 면접을 잘 보기 위해서 '가상 메모리와 MMU의 개념'을 잘 알아야 합니다. 경력 개발자 면접에서 많이 나오는 질문 중 하나가 '가상 메모리와 MMU'와 관련된 내용입니다.

최근에 개발되는 대부분 시스템 소프트웨어는 가상 메모리 시스템 환경에서 실행 되므로 이와 관련된 지식은 반드시 알고 있어야 합니다.

시스템 SW 개발자의 노하우를
쉽고 자세하게 담았습니다!


이 강의는 '시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리'의 저자 직강 강의로, 메모리 시스템의 핵심인 Arm 아키텍처(Armv8-A)의 메모리 매니지먼트(MMU)에 대해 상세히 다룹니다.
이번 강의는 그 동안 제작한 저자 직강 강의 중에 가장 많은 시간을 들여 제작했습니다.


강의의 차별화 포인트

1⃣ 이번 강의에서는 가상 메모리와 가상 주소 그리고 Arm 아키텍처에서 지원하는 가상 메모리 시스템에 대한 핵심 내용을 모두 잘 풀어서 설명합니다.

2⃣ '시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리' 책을 집필할 때 지면의 한계로 다 다루지 못한 내용이 많았는데, 이를 모두 강의에 담아 상세히 설명합니다.

3⃣ MMU의 세부 동작을 설정하는 어셈블리 명령어와 관련 시스템 레지스터를 리눅스 커널과 XEN 하이퍼바이저 예시 코드로 상세하게 설명합니다.

4⃣ TRACE32와 crash-utility와 같은 디버깅 툴을 사용해 시스템 레지스터의 주요 비트 필드와 익셉션이 처리되는 흐름까지 상세하게 설명합니다.

이번 강의를 잘 소화하시면 고급 시스템 소프트웨어 개발자로 성장하실 수 있습니다. 더 높은 연봉과 포지션에서 커리어를 업그레이드하시길 응원니다.

이런 내용을 배워요 📕

메모리 매니지먼트를 이루는 주요 기능과 흐름을 상세하게 설명합니다.


실전 개발 관점으로 메모리 매니지먼트와 관련된 내용을 어떻게 활용할 수 있는지 설명합니다.


MMU의 주요 기능을 설명하기 앞서 가상 메모리에 대한 개념을 먼저 익힐 필요가 있습니다.
가상 메모리 시스템을 구성하는 주요 요소와 구조를 상세하게 설명합니다.

MMU의 구조와 실행 흐름 그리고 MMU를 구성하는 주요 기능을 상세하게 설명합니다.
가상 주소를 물리 주소로 변환하는 세세한 동작 원리와 멀티 레벨 페이지의 구조를 함께 설명합니다.

가상 주소를 물리 주소로 변환하는 세세한 동작 원리와 멀티 레벨 페이지의 구조를 함께 설명합니다.

가상 주소의 범위와 MMU의 기능을 설정할 때 실행되는 어셈블리 명령어를 상세하게 소개합니다.

TRACE32 디버깅 프로그램을 사용하면서 TCR_EL1 레지스터를 구성하는 주요 비트 필드를 상세하게 설명합니다. 폴트와 관련된 정보를 알 수 있는 각종 시스템 레지스터를 crash-utility라는 디버깅 프로그램을 통해 분석하고, 실습해봅니다.

책 집필/강의경력을 바탕으로
누구보다 깊고 상세하게!

국내 시스템 소프트웨어 분야에서 전무후무한! 'Arm 아키텍처(Armv8-A, Armv7-A)'와 '리눅스 커널' 책을 쓴 저자입니다. 또한 최신 시스템 소프트웨어 트렌드(전기자동차, 시스템 반도체- 시스템 소프트웨어)를 가장 잘 알고 있는 현업 개발자이자, 시스템 소프트웨어 분야에서 가장 지식 전파 활동을 활발하게 하는 교육자입니다. 

  • '시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리' (2024년, 대한민국 학술원 우수도서상) 저자

  • '디버깅을 통해 배우는 리눅스 커널의 구조와 원리' (2021년, 대한민국 학술원 우수도서상) 저자

  • '프로그래머스 데브 코스: 리눅스 시스템 및 커널 전문가' 메인 강사

  • 2022년 6월, 한국컴퓨터종합학술대회 (KCC2022) - 튜토리얼 발표 [ftrace를 이용해 리눅스 커널 정복하기]

  • LG전자 '리눅스 커널' 및 'Armv8 아키텍처' 사내 강사(국내 및 해외 개발자 포함) - (2020년~2024) 


국내에서 어느 누구보다 Arm 아키텍처(Armv8-A, Armv7-A)를 이루는 주요 기능을 잘 설명할 수 있는 교육자라고 자신있게 말씀드릴 수 있습니다.

학습자들이 남긴 생생한 수강평

<시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 1/2부 저자 직강>


수강 전 참고 사항

선수 지식 및 유의사항

  • '메모리 매니지먼트(MMU)' 강의는 선수 지식이 없어도 무난하게 따라올 수 있는 강의입니다.

  • 어셈블리 명령어와 레지스터에 대한 기본 개념을 알고 있어야 합니다.

  • 멀티 코어 시스템과 시스템 구조에 대해 이해하고 있으면 좋습니다.

이런 분들께
추천드려요!

학습 대상은
누구일까요?

  • 시스템 반도체(펩리스), 전기 자동차 분야(자율주행, 인포테인먼트)를 포함한 시스템 소프트웨어 분야에서 역량을 키우고 싶은 주니어 개발자

  • 시스템 반도체(펩리스), 전기 자동차 분야에서 시스템 소프트웨어 개발을 하고 싶은 취준생

  • Arm 아키텍처의 기능을 활용해 실무에서 어떻게 디버깅하는지 알고 싶은 시스템 소프트웨어 개발자(시스템 반도체, 전기 자동차)

  • 시스템 소프트웨어 분야로 커리어를 전환하려는 다른 분야의 개발자

  • 시스템 소프트웨어 분야(메모리, 파일 시스템, 운영체제)의 대학원 진학을 목표로 하는 대학생

선수 지식,
필요할까요?

  • 컴퓨터구조

  • 운영체제

안녕하세요
김동현 (Austin Kim)입니다.

수강생 수

3,544

수강평 수

67

강의 평점

4.9

강의 수

16

국내 시스템 소프트웨어 분야에서 전무후무한! 'Arm 아키텍처(Armv8-A, Armv7-A)'와 '리눅스 커널' 책을 쓴 저자(2권의 책 모두 대한민국 학술원 우수도서에 선정)이며, 최신 시스템 소프트웨어 트렌드(전기자동차, 시스템 반도체- 시스템 소프트웨어)를 가장 잘 알고 있는 현업 개발자입니다. 또한 시스템 소프트웨어 분야에서 가장 지식 전파 활동을 활발하게 하는 교육자입니다. 

  • '시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리'(2024년, 대한민국 학술원 우수도서상) 저자

  • '디버깅을 통해 배우는 리눅스 커널의 구조와 원리' (2021년, 대한민국 학술원 우수도서상) 저자

  • '프로그래머스 데브 코스: 리눅스 시스템 및 커널 전문가' 메인 강사

  • 2022년 6월, 한국컴퓨터종합학술대회 (KCC2022) - 튜토리얼 발표 [ftrace를 이용해 리눅스 커널 정복하기]

  • LG전자 '리눅스 커널' 및 'Armv8 아키텍처' 사내 강사(국내 및 해외 개발자 포함) - (2020년~현재)

국내에서 어느 누구보다 리눅스 커널과 Arm 아키텍처(Armv8-A, Armv7-A)를 잘 설명할 수 있는 교육자라고 자신있게 말씀드릴 수 있습니다.

주요 로드맵 🎯

'시스템 소프트웨어 개발자를 위한 Arm - basic course'

'시스템 소프트웨어 개발자를 위한 Arm - advanced course'

 

시스템 소프트웨어 개발자를 위한 Linux kernel - basic course

체계적으로 Arm 아키텍처(Armv8-A, Armv7-A)와 리눅스 커널을 배우시려는 분은 로드맵(전체 강의 30% 할인)을 활용하시면 좋습니다.

커리큘럼

전체

25개 ∙ (4시간 22분)

강의 게시일: 
마지막 업데이트일: 

수강평

아직 충분한 평가를 받지 못한 강의입니다.
모두에게 도움이 되는 수강평의 주인공이 되어주세요!