강의

멘토링

로드맵

Inflearn brand logo image
Hardware

/

Embedded IoT

Arm Architecture: Memory Model and Barriers [Author's Direct Lecture Part 3-3]

The author of "Arm Architecture Structure and Principles for System Software Development" will properly address 'Memory Model and Barrier,' the very fundamentals of system software and core to the latest Arm architectures (Armv8-A, Armv7-A)!

(4.8) 6 reviews

102 learners

  • austinkim
저자 직강
이론 중심
동시성문제
임베디드리눅스
ARM Architecture
memory-mapped-io
barrier
armv8
cortex-a

What you will learn!

  • You can understand the basic operating principles of the memory model and barriers in Arm architecture (Armv8-A).

  • Learn how Arm architecture's memory model and barrier features are applied in real projects.

  • You can get an overview of the execution flow and structure related to memory models and barriers.

  • I can answer memory model and barrier interview questions well.

<Notice>

1. 30% discount coupon issued when 300 people sign up

To celebrate reaching 300 students (Part 1 and 2), we are issuing a 30% discount coupon. Thank you. It is for the first 200 people.

2. Roadmap Guide 🎯

This lecture is a roadmap 'Arm - advanced course for system software developers ' This lecture is included in .


If you want to learn Arm architecture (Armv8-A, Armv7-A) systematically , it is recommended to use the roadmap ( 30% discount on all lectures ). For reference, the Arm architecture roadmap (all author lectures) is Basic Course and Advanced Course It consists of two parts.


In the latest system software
The most important Arm architecture

The Arm processors used in smartphones, AI SoC system semiconductors, electric vehicles (autonomous driving, infotainment), cloud servers, and MacBooks are all Armv8-A based 64-bit Cortex-A processors (Cortex-A53, Cortex-A57, Cortex-A72, etc.). It can be said that the area requiring the most basic knowledge in the current system software industry is the Armv8-A architecture.

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

However, in order to become an advanced system software developer, you need to understand how to manage memory, which is one of the main functions that make up the Arm architecture. The core of how to manage memory is the 'virtual memory system', 'cache operation principles', and 'memory model and barrier' .


Why learn 'Memory Model and Barrier'?

1⃣ First, if you know the memory model and barriers well, you can develop a good device driver . Most device drivers control peripheral devices in a memory-mapped I/O manner, and the memory model (normal memory, device memory) covers device memory, which is the basis of the memory-mapped I/O method, in detail.

2⃣ Second, you need to understand the device memory (one of the memory models), which is the basis of memory-mapped I/O, to be able to efficiently control the hardware that makes up the system semiconductor in programming. This is because most independent modules (IPs) that make up the system semiconductor are designed using the memory-mapped I/O method in system semiconductors (fabless).

3⃣ Third, if you know the memory model and barriers well, you can understand the working principles inside the Arm processor in detail . In particular, you will often encounter situations where barriers are used to solve concurrency problems in multi-core systems, and 'memory models and barriers' can be basic knowledge.

4⃣ Fourth, in order to do well in technical interviews related to system software development, you need to know 'memory models and barriers' well. One of the questions that comes up frequently in interviews for experienced developers is about memory reordering and memory-mapped I/O.


A lecture directly written by the author containing the know-how of a 12-year system engineer!

The book 'Arm Architecture Structure and Principles for System Software Development' (Chapter 17) covers 'Memory Model and Barrier' in detail. I hope that you will grow further as a system software developer through the author's lectures.

Learn about these things

Introduces the types of memory models defined in the Arm architecture and normal memory.

By analyzing the Arm specification document in detail, we introduce the types of memory models (normal memory and device memory).

We will detail the device memory, which is a memory-mapped I/O interface, and review the memory-mapped I/O of the BCM2711 (used on a Raspberry Pi).

Analyzing memory-mapped I/O interfaces with debugging (Crash-Utility).

Introduces barriers and provides detailed examples of barriers.

Describes the scope of barriers and data consistency in multi-core systems.

This article details how barriers are actually utilized in the Linux kernel and XEN hypervisor.

Based on my experience writing books and giving lectures
More in-depth and detailed than anyone else!

The author of the unprecedented 'Arm Architecture (Armv8-A, Armv7-A)' and 'Linux Kernel' books in the domestic system software field. He is also a working developer who knows the latest system software trends (electric vehicles, system semiconductors - system software) the best, and an educator who is most active in spreading knowledge in the system software field.

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

  • Author of 'Learning the Structure and Principles of the Linux Kernel through Debugging' ( 2021, Korean Academy of Sciences Outstanding Book Award )

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

  • June 2022, Korea Computer Conference (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 the educator who can explain the key features of the Arm architecture (Armv8-A, Armv7-A) better than anyone else in Korea.

Vivid course reviews left by students

<Structure and Principles of Arm Architecture for System Software Development - Part 1/2 Author's Lecture>


Things to note before taking the class

Player Knowledge & Notes 📢

  • The lecture 'Memory Model and Barrier' is one that can be easily followed even without prior knowledge.

  • You should have a basic understanding of assembly instructions and registers.

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


Recommended for
these people

Who is this course right for?

  • Junior developer who wants to grow skills in the system software field, including system semiconductor (fabless) and electric vehicle sector (autonomous driving, infotainment)

  • Aspiring system software developer for system semiconductor (fabless) and electric vehicle fields

  • System software developer (system semiconductors, electric vehicles) interested in how to debug in practice using Arm architecture's capabilities.

Need to know before starting?

  • Computer Architecture

  • Operating System

Hello
This is

5,548

Learners

156

Reviews

85

Answers

4.9

Rating

21

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

27 lectures ∙ (3hr 50min)

Published: 
Last updated: 

Reviews

All

6 reviews

4.8

6 reviews

  • 토끼야놀자님의 프로필 이미지
    토끼야놀자

    Reviews 4

    Average Rating 5.0

    5

    100% enrolled

    배리어가 직접 쓰이는 커널 코드를 예시로 들어서 설명해주시는 것이 정말 좋습니다.

    • 김동현 (Austin Kim)
      Instructor

      좋은 평가 감사합니다.

  • 김건우님의 프로필 이미지
    김건우

    Reviews 5

    Average Rating 5.0

    5

    33% enrolled

    • 이지수님의 프로필 이미지
      이지수

      Reviews 5

      Average Rating 5.0

      5

      100% enrolled

      • 이진후님의 프로필 이미지
        이진후

        Reviews 3

        Average Rating 5.0

        5

        63% enrolled

        • sunny75님의 프로필 이미지
          sunny75

          Reviews 95

          Average Rating 5.0

          5

          100% enrolled

          2024/07/29/월 15:30 강의 잘 들었습니다. 강의를 들을 때 마다, "아~ 아~" 를 몇 번씩 한 것 같네요. 모르는 것을 알게 되어, 저도 모르게 감동 받았습니다. 수강 기간:무제한 이고, 수강 비용도 저렴하고, 현재 전 아주 급하게 듣고 있지만, 나중엔 차분하게 여러 번 들을 것 같습니다. 좋은 강의 만들어 주셔서 감사합니다.

          $26.40

          austinkim's other courses

          Check out other courses by the instructor!