강의

멘토링

커뮤니티

Hardware

/

Semiconductor

Learning RISC-V Architecture through Debugging - Part 3

This book provides easy and detailed explanations of the core concepts and practical tips of RISC-V, the latest open-source-based CPU architecture.

(4.3) 3 reviews

54 learners

Level Basic

Course period Unlimited

  • austinkim
시스템반도체
시스템반도체
임베디드
임베디드
이론 실습 모두
이론 실습 모두
cpu
cpu
cpu-architecture
cpu-architecture
riscv
riscv
시스템반도체
시스템반도체
임베디드
임베디드
이론 실습 모두
이론 실습 모두
cpu
cpu
cpu-architecture
cpu-architecture
riscv
riscv

What you will gain after the course

  • I can answer and explain questions related to RISC-V well in technical interviews.

  • You can learn the operating principles of virtual memory systems, memory barriers, and caches, which are core features that make up RISC-V.

  • You can learn how the RISC-V architecture is utilized in operating system kernels such as the Linux kernel.

  • You can analyze the startup code of bootloaders or Linux kernels running on RISC-V based systems.

Notice 🎯

To celebrate the launch of Korea's first RISC-V course, we're issuing a 30% discount coupon (limited to the first 100 people).

Coupon link: https://inf.run/rGFpZ

Rising in the latest system software industry
RISC-V Architecture

Recently, RISC-V architecture, an open-source based CPU architecture, has been emerging. You can immediately see the following content in IT-related press articles and news:

  • Big tech companies like nVidia, Intel, and Qualcomm are developing RISC-V-based products (chipsets).

  • The number of startup companies designing various chips using RISC-V is increasing domestically, and the proportion of developing RISC-V device-based products is growing.

  • When designing AI semiconductors, RISC-V-based CPU architectures are widely utilized.

  • By 2026, 15 billion devices are expected to be released based on RISC-V.

  • Graduate schools (processor design) are conducting various research using toolkits that can design RISC-V CPUs.

The proportion of embedded and system software companies developing products using RISC-V CPU architecture is increasing. As a result, job seekers need to prepare for RISC-V in technical interviews as well.

Background of Creating This Course

For beginners, the RISC-V architecture is difficult to learn. The reasons are as follows:

  • I don't know what's important among the vast amount of content that makes up RISC-V

  • I don't know which features among the components that make up RISC-V are actually used in real-world projects

  • Even if you read the RISC-V specification documents diligently, they are difficult to understand right away


  • It's difficult to understand what the terms used to explain RISC-V actually mean


This course is the third course in the Learning RISC-V Architecture through Debugging series, covering content to become a system software developer at a level that can command a high salary beyond beginner level - explaining memory systems (virtual memory, memory barriers, cache) and Hypervisor Extension features.

Course Structure and Roadmap for Parts 2 and 3

This lecture covers Part 3 of the complete RISC-V lecture series, which deals with the core features of RISC-V.

You can check the complete RISC-V architecture course in the roadmap - 'RISC-V Architecture for System Software Developers' course.

Key Differentiating Points of the Course

1. Explains the RISC-V architecture's memory system in an easy-to-understand way

Understanding the memory system is essential to becoming an advanced system software developer. The reasons are as follows.

  • To properly debug exception issues encountered in real-world projects, you need to have a solid understanding of the basic concepts of virtual addresses and the MMU.

  • To optimize system performance, you need to properly understand the functions of the memory system.

  • To successfully bring up a new project, you need to have a good understanding of memory-related features.

However, it is difficult to properly understand the memory system (virtual memory system, memory barriers, cache) through analysis of RISC-V reference documents. This lecture explains the core concepts essential for practical work in an easy and clear manner.

2. Learning RISC-V Memory Features Through Practical Examples

This lecture provides concrete explanations of how RISC-V's memory-related features are used through practical examples.

  • Code for setting up page tables in the Linux kernel

  • Example of preventing memory reordering with the fence instruction

  • Assembly instruction to flush the instruction cache

You can quickly develop practical skills naturally along with the content on RISC-V architecture.

3. Various Debugging Practice Lectures

Without hands-on debugging, it's difficult to fully absorb the content covered in memory systems and apply what you've learned directly to real-world development. This course provides various practical exercises through memory dump debugging practice (Crash Utility, TRACE32).

  • Check the addresses of functions and global variables (concept of virtual addresses)

  • Hands-on practice of directly translating virtual addresses to physical addresses

  • Check page table entry information (using Crash Utility, TRACE32)

4. Explaining RISC-V in Comparison with Arm Architecture

Many developers are already familiar with Arm-based SoCs and Arm architecture. This course explains the core concepts of RISC-V by comparing them with Arm architecture to aid understanding.

  • The structure of the virtual memory system

  • Memory barrier methods

  • Cache control methods

The instructor is the author of a book on Arm architecture (Excellence in Books Award - National Academy of Sciences, Republic of Korea - 2024), so they can explain RISC-V better than anyone by comparing it with Arm architecture.

Here's what you'll learn 📕

I introduce the key memory features of the RISC-V architecture and the core functions that make up the virtual memory system. I explain them in an easy-to-understand way with the big picture.

Introduces the virtual memory map, which is the core of the virtual memory system. Also provides an easy-to-understand explanation of the virtual address ranges for kernel space and user space.

This explains the satp register that configures the page table, and clearly explains the concept of virtual addresses through memory dump debugging practice. (Memory dumps are provided in the course materials.)

Explains the concepts of virtual addresses and page tables, and describes the range of virtual addresses through actual case studies.

It explains the structure of multi-level page tables and provides a detailed explanation of PTE (Page Table Entry).

It explains in detail the process of directly translating virtual addresses to physical addresses through multi-level page tables. It also includes a debugging exercise using the Crash Utility program to convert virtual addresses to physical addresses.

While analyzing the MMU specifications of SiFive's U74 core and P550 core, it provides a detailed explanation of how the MMU operates from a hardware design perspective.


We explain memory reordering and provide an easy-to-understand explanation of how the fence instruction works to prevent memory reordering.

Explains the basic structure (form) of the fence instruction and provides detailed explanations of how the fence instruction operates with various options applied.

Explains how the fence instruction operates in a multi-core system environment - analyzes the principle by which synchronization occurs with other cores when the fence instruction is executed. Also explains the fence instruction while analyzing example assembly instructions.

This section introduces the fence.i instruction and explains the overall flow of how it is processed when executed.

We analyze the fence.i instruction while examining various example assembly routines. We analyze the fence.i instruction by comparing it with the Arm architecture.

It explains the basic concepts of cache and why cache is used.

It explains the operating principles of cache in multi-core systems and analyzes the key cache features defined in RISC-V while comparing them with the Arm architecture.

It explains the basic components that make up a cache and provides a detailed explanation of how addresses are processed during cache lookup (the process of searching the cache).


Introduces the hypervisor and explains the Privilege mode in which the Hypervisor runs in the RISC-V architecture.

It introduces the core features of the Hypervisor Extension defined in the RISC-V architecture and explains how to enable the Hypervisor Extension.


When an exception is triggered in the Guest OS, it explains the execution flow where the Hypervisor controls it first.


Based on book writing/teaching experience
More in-depth and detailed than anyone else!

Unprecedented in Korea's system software field! An author who has written books on 'Arm Architecture (Armv8-A, Armv7-A)' and 'Linux Kernel' (both books selected as Outstanding Academic Books by the National Academy of Sciences of the Republic of Korea), and the first in Korea to publish "Reverse Engineering Armv8-A Systems" (in English) through an international publisher (Packt), making them a global author. Above all, they are a current industry developer who best understands the latest system software trends (electric vehicles, system semiconductors - system software). They are also an educator who is most actively engaged in knowledge dissemination activities in the system software field.

  • 'Reverse Engineering Armv8-A Systems: A practical guide to Kernel, Firmware, and TrustZone analysis' book (English) author, (Packt Publishing)

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

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

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

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

  • LG Electronics 'Linux Kernel' and 'Armv8 Architecture' in-house instructor (domestic and international developers included) - (2020~2024)

Recommended for
these people

Who is this course right for?

  • A junior developer who wants to build capabilities in system software fields including system semiconductors (fabless) and electric vehicle sectors (autonomous driving, infotainment)

  • A job seeker who wants to develop system software in the fields of system semiconductors (fabless) and electric vehicles

  • System software developers (system semiconductors, electric vehicles) who want to know how to debug in practice by utilizing the features of RISC-V architecture

  • A developer from another field looking to transition their career into systems software

  • An undergraduate student aiming for graduate school in the systems software field (memory, file systems, operating systems)

Need to know before starting?

  • Computer Architecture

  • C language

  • Operating System

Hello
This is

6,202

Learners

230

Reviews

91

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

82 lectures ∙ (9hr 17min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

3 reviews

4.3

3 reviews

  • abcd123123님의 프로필 이미지
    abcd123123

    Reviews 327

    Average Rating 5.0

    5

    61% enrolled

    • rousalome6394님의 프로필 이미지
      rousalome6394

      Reviews 4

      Average Rating 5.0

      5

      20% enrolled

      After taking this course, I passed an embedded technology interview. I'm confident that I can answer any RISC-V related questions well when asked about RISC-V. I was a bit surprised by how much I changed after taking the course. Every time I read the RISC-V specification, it felt new to me, but now I can read it smoothly. There's a lot of content that can be directly applied to projects, so I recommended it to my fellow developers as well.

      • jungmopark3648님의 프로필 이미지
        jungmopark3648

        Reviews 3

        Average Rating 4.3

        3

        100% enrolled

        Overall, since it was education based on basic knowledge, there wasn't much to gain from it.

        $93.50

        austinkim's other courses

        Check out other courses by the instructor!

        Similar courses

        Explore other courses in the same field!