강의

멘토링

커뮤니티

Hardware

/

Semiconductor

Learning RISC-V Architecture with Debugging - Part 3

Core concepts and practical tips of RISC-V, the latest open-source based CPU architecture, explained easily and in detail.

(4.3) 3 reviews

45 learners

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

What you will gain after the course

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

  • You can learn the operating principles of the virtual memory system, memory barrier, and cache, which are core functions that constitute RISC-V.

  • How the RISC-V architecture is utilized in operating system kernels, such as the Linux kernel, can be understood.

  • Bootloader or Linux kernel startup code running on RISC-V can be analyzed.

Notice 🎯

To commemorate the launch of Korea's first RISC-V course, we are issuing 30% discount coupons (limited to the first 100 people).

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

In the latest system software industry
the emerging RISC-V architecture

Recently, the RISC-V architecture, an open source-based CPU architecture, has been emerging. If you look at IT-related press articles or news, you can immediately see the following content:

  • nVidia, Intel, and Qualcomm, among other big tech companies, are developing RISC-V-based products (chipsets).

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

  • AI semiconductors often utilize RISC-V-based CPU architectures in their design.

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

  • In graduate school (processor design), various research is being conducted 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. Therefore, job seekers need to prepare for RISC-V-related questions in technical interviews.

Background of Creating the Course

From a beginner's perspective, the RISC-V architecture is difficult to learn. The reasons are as follows:

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

  • I'm not sure which features among the components that make up RISC-V are utilized in real-world projects

  • No matter how hard you read the RISC-V specification document, it's difficult to understand right away


  • It's difficult to understand what the term RISC-V itself means when explaining RISC-V


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

Course Structure and Part 2, Part 3 Lecture Roadmap

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

You can check the complete RISC-V architecture lecture 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

To become an advanced system software developer, understanding memory systems is essential. The reasons are as follows.

  • To effectively 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 functionality of the memory system.

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

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

2. Learning RISC-V Memory Features Through Practical Examples

In this lecture, we will specifically explain how RISC-V's memory-related functions are used through practical examples.

  • Code for setting up page tables in the Linux kernel

  • Example of preventing memory reordering using fence commands

  • Assembly instruction to flush the instruction cache

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

3. Various Debugging Practice Lectures

The content covered in memory systems is difficult to digest and apply directly to real-world development without hands-on debugging. In this lecture, we will conduct various practical exercises through memory dump debugging practice (Crash Utility, TRACE32).

  • Function and Global Variable Address Verification (Concept of Virtual Addresses)

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

  • Check Page Table Entry Information (Using Crash Utility, TRACE32)

4. Explaining RISC-V in Comparison to Arm Architecture

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

  • Virtual Memory System Structure

  • Memory barrier method

  • Cache Control Methods

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

You'll learn this content 📕

This introduces the key memory features of the RISC-V architecture and also introduces the core functions that make up the virtual memory system. It explains them in an easy-to-understand way with the big picture.

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

This explains the satp register that sets up the page table and provides an easy-to-understand explanation of virtual address concepts 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.

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

This provides a detailed explanation of the process of directly converting virtual addresses to physical addresses through multi-level page tables. It also includes debugging practice using the Crash Utility program to convert virtual addresses to physical addresses.

This provides a detailed explanation of MMU operation from a hardware design perspective while analyzing the MMU specifications of SiFive's U74 core and P550 core.


Explains memory reordering and provides an easy-to-understand explanation of how fence instructions work to prevent memory reordering.

Explains the basic structure (form) of the fence command and describes in detail how the fence command operates with various options applied.

This explains how fence instructions operate in multi-core system environments - analyzing the principles by which fence instructions synchronize with other cores when executed. It also explains fence instructions while analyzing example assembly commands.

Introduces the fence.i instruction and explains the overall flow of what happens when the fence.i instruction is executed from a big picture perspective.

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

Explains the basic concepts of cache and also explains why cache is used.

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

Explains the basic elements that make up a cache and provides a detailed explanation of how addresses are processed during cache lookup (the process of searching through the cache).


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

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


When an exception is triggered in the Guest OS, the Hypervisor takes control first, explaining the execution flow.


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

In the domestic system software field, this is an unprecedented! author who wrote books on 'Arm Architecture (Armv8-A, Armv7-A)' and 'Linux Kernel' (both books were selected as excellent books by the Korean Academy), and is a global author who was the first in Korea to write the book "Reverse Engineering Armv8-A Systems" (in English) through an overseas publisher (Packt). Above all, they are a working 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 Outstanding Book Award)

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

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

  • 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)

Recommended for
these people

Who is this course right for?

  • Junior developer seeking to build skills in system software, including system semiconductors (fabless) and electric vehicles (autonomous driving, infotainment).

  • Job applicant aspiring to system software development in system semiconductor (fabless) and electric vehicle sectors.

  • System software developer (system semiconductors, electric vehicles) interested in practical debugging using RISC-V architecture features.

  • Developer from another field transitioning to system software

  • University student targeting graduate school in system software (memory, file system, OS)

Need to know before starting?

  • Computer Architecture

  • C language

  • Operating System

Hello
This is

6,020

Learners

201

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

82 lectures ∙ (9hr 17min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

3 reviews

4.3

3 reviews

  • abcd123123님의 프로필 이미지
    abcd123123

    Reviews 326

    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!