강의

멘토링

커뮤니티

Hardware

/

Embedded IoT

Arm Architecture: Memory Management (MMU) [Author's Direct Lecture Part 3-5]

The author of "Structure and Principles of Arm Architecture for System Software Development" will properly guide you through 'Memory Management (MMU)', the very foundation of system software and the core of the latest Arm architectures (Armv8-A, Armv7-A)!

(5.0) 2 reviews

121 learners

  • austinkim
저자 직강
이론 중심
임베디드리눅스
트러블슈팅
cortex-a
ARM Architecture
armv8
memory-management

What you will gain after the course

  • You can understand the basic operating principles of the Memory Management (MMU) in Arm architecture (Armv8-A).

  • You can learn how Arm architecture's Memory Management (MMU) related features are used in actual projects.

  • You can get a big picture of the execution flow and structure related to Memory Management (MMU).

  • I can answer questions about Memory Management (MMU) well in interviews.

1. 30% Discount Coupon Issued for Breaking 300 Students

To commemorate reaching 300 students (Parts 1 & 2), we are issuing a 30% discount coupon. Thank you. Limited to the first 300 people.

2. Roadmap Guide 🎯

This lectureRoad Map'Arm for System Software Developers - Advanced Course'is included in the course.


For those who want to learn Arm architecture (Armv8-A, Armv7-A) systematically, it would be good to utilize the roadmap (30% discount on all courses). For reference, the Arm architecture roadmap (all courses taught directly by the author) isBasic Course andAdvanced CourseIt consists of 2 parts.


In the latest system software
The most important Arm architecture

Not only smartphones, but also AI SoC system semiconductors, electric vehicle Automotive (autonomous driving, infotainment), and Arm processors used in cloud servers and MacBooks are all Armv8-A based 64-bit Cortex-A processors (Cortex-A53, Cortex-A57, Cortex-A72, etc...). Currently, the content that requires the most fundamental knowledge needed in the system software industry can be considered the Armv8-A architecture.

The first step to becoming an advanced system SW developer!
Understanding memory management methods 🙋‍♂


However, to become an advanced system software developer, you need to have a good understanding of how memory is managed among the key features that make up the Arm architecture. The core of memory management consists of 'Memory Management Unit (MMU)', 'cache operation principles', and 'memory model and barriers'.
Among these, one of the most important features that system software developers need to know is the 'Memory Management Unit (MMU)' related to virtual memory systems.


'Memory Management (MMU)' - Why should we learn it?

1⃣ First, when bringing up systems based on RTOS or Linux kernel or developing device drivers, you cannot proceed with development properly without a good understanding of virtual memory concepts. When bringing up a board, situations may arise where you need to set the attributes or permissions of virtual addresses, and the concepts of virtual memory and MMU are necessary for this.

2⃣ Second, the foundational knowledge for understanding memory abort, page fault, and demand paging operation mechanisms is virtual memory and MMU. Without a proper understanding of how virtual addresses are managed in pages, you cannot properly grasp these operational principles.

3⃣ Third, virtual memory and MMU are foundational knowledge that allows you to understand the detailed operational principles inside Arm processors.

4⃣ Fourth, to perform well in technical interviews related to system software development, you must have a good understanding of 'the concepts of virtual memory and MMU'. One of the frequently asked questions in experienced developer interviews is content related to 'virtual memory and MMU'.

Since most system software developed recently runs in virtual memory system environments, knowledge related to this is essential.

The know-how of system SW developers
presented in an easy and detailed way!


This course is a direct lecture by the author of 'Structure and Principles of Arm Architecture for System Software Development', covering in detail the Memory Management Unit (MMU) of Arm architecture (Armv8-A), which is the core of memory systems.
This lecture took the most time to produce among all the author's direct lectures I have created so far.


⭐️ Course Differentiation Points

1⃣ In this lecture, we thoroughly explain all the key concepts of virtual memory, virtual addresses, and the virtual memory system supported by the Arm architecture in an easy-to-understand way.

2⃣ When writing the book 'Structure and Principles of Arm Architecture for System Software Development', there was a lot of content that couldn't be covered due to space limitations, but all of this will be included in the lectures with detailed explanations.

3⃣ Provides detailed explanations of assembly instructions and related system registers that configure the detailed operations of the MMU, using example code from the Linux kernel and XEN hypervisor.

4⃣ Provides detailed explanations of key bit fields in system registers and the flow of exception handling using debugging tools like TRACE32 and crash-utility.

If you digest this course well, you can grow into an advanced system software developer. I support you in upgrading your career to higher salaries and positions.

You'll learn this kind of content 📕

It provides a detailed explanation of the main functions and flow that constitute memory management.


Explains how to utilize memory management-related content from a practical development perspective.


Before explaining the main functions of the MMU, it is necessary to first understand the concept of virtual memory.
This section provides a detailed explanation of the key components and structure that make up a virtual memory system.

This section provides a detailed explanation of the MMU's structure, execution flow, and the main functions that comprise the MMU.
It explains the detailed operating principles of converting virtual addresses to physical addresses along with the structure of multi-level pages.

This explains the detailed operational principles of converting virtual addresses to physical addresses along with the structure of multi-level pages.

This section provides a detailed introduction to the assembly instructions executed when setting the range of virtual addresses and the functions of the MMU.

This course provides a detailed explanation of the major bit fields that make up the TCR_EL1 register while using the TRACE32 debugging program. It analyzes various system registers that provide fault-related information through a debugging program called crash-utility and includes hands-on practice.

Based on book writing/lecture experience
Deeper and more detailed than anyone else!

In the domestic system software field, I am the unprecedented author who wrote books on 'Arm Architecture (Armv8-A, Armv7-A)' and 'Linux Kernel'. I am also a current industry developer who has the best understanding of the latest system software trends (electric vehicles, system semiconductors - system software), and an educator who is most actively engaged in knowledge dissemination activities in the system software field.

  • Author of 'Structure and Principles of Arm Architecture for System Software Development' (2024 Korea Academy Outstanding Book Award)

  • 'Learning Linux Kernel Structure and Principles Through Debugging' (2021 Korea Academy Outstanding Book Award) Author

  • Main instructor for 'Programmers Dev Course: Linux System and Kernel Expert'

  • June 2022, Korea Computer Congress (KCC2022) - Tutorial Presentation [Conquering the Linux Kernel Using ftrace]

  • LG Electronics 'Linux Kernel' and 'Armv8 Architecture' In-house Instructor (including domestic and overseas developers) - (2020~2024)


I can confidently say that I am an educator who can explain the key features that make up the Arm architecture (Armv8-A, Armv7-A) better than anyone else in Korea.

Vivid course reviews left by learners


Pre-enrollment Reference Information

Prerequisites and Important Notes

  • The 'Memory Management (MMU)' course is a course that can be easily followed even without prerequisite knowledge.

  • You need to know the basic concepts of assembly instructions and registers.

  • It would be good to have an understanding of multi-core systems and system architecture.

Recommended for
these people

Who is this course right for?

  • Junior developer eager to develop skills in system software, including system semiconductors (fabless) and the electric vehicle sector (autonomous driving, infotainment).

  • Job seeker who wants to do system software development in the field of system semiconductor (fabless) and electric vehicles.

  • System software developer (system semiconductors, electric vehicles) seeking practical debugging methods leveraging Arm architecture features.

  • Developers from other fields who want to transition their careers to the system software field

  • University student aiming for graduate school in the system software field (memory, file system, operating system)

Need to know before starting?

  • Computer Architecture

  • Operating System

Hello
This is

6,010

Learners

198

Reviews

89

Answers

4.9

Rating

22

Courses

글로벌 저자 & 리눅스 시스템 소프트웨어 개발자 (Arm, RISC-V 아키텍처)

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

  • 'Reverse Engineering Armv8-A Systems: A practical guide to Kernel, Firmware, and TrustZone analysis' 책(영어) 저자, (Packt 출판사)

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

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

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

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

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

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

강의문의 : austindh.kim@gmail.com

주요 로드맵 🎯

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

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

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

Curriculum

All

25 lectures ∙ (4hr 18min)

Published: 
Last updated: 

Reviews

All

2 reviews

5.0

2 reviews

  • Embedded June님의 프로필 이미지
    Embedded June

    Reviews 4

    Average Rating 5.0

    5

    100% enrolled

    3부 (트러스트존, 가상화, 메모리(메모리모델, 캐시, MMU)) 모두 수강했습니다. 특히 메모리쪽에서 기존에 머릿속에 알고있던 어렴풋한 추상적인 메모리 관련 내용들이 정확하게 레지스터 단위까지 순차적으로 정리되는 느낌이었습니다. 친절하게 설명해주셔서 감사합니다!!

    • sunny75님의 프로필 이미지
      sunny75

      Reviews 112

      Average Rating 5.0

      5

      100% enrolled

      2024/7/30/화 07:55 강의 잘 들었습니다. 강의 들을 때 마다 항상 새로운 지식을 얻고 있습니다. 이렇게 어려운 내용을 잘 설명해 주셔서 감사합니다.

      $26.40

      austinkim's other courses

      Check out other courses by the instructor!