강의

멘토링

로드맵

Inflearn brand logo image
Hardware

/

Embedded IoT

Học kiến trúc RISC-V thông qua debugging -Phần 2

Giải thích dễ hiểu và chi tiết các khái niệm cốt lõi, mẹo thực tiễn của RISC-V, kiến trúc CPU mới nhất mã nguồn mở.

(5.0) 3 đánh giá

58 học viên

  • austinkim
시스템반도체
이론 실습 모두
하드웨어
cpu-architecture
cpu
riscv

Dịch cái này sang tiếng Việt

  • Có thể trả lời và giải thích tốt các câu hỏi liên quan đến RISC-V trong phỏng vấn kỹ thuật.

  • Có thể học nguyên lý hoạt động của 익셉션(Exception), 인터럽트 콘트롤러, Calling Convention, những chức năng cốt lõi của RISC-V.

  • Sử dụng chương trình mô phỏng TRACE32, bạn có thể thực hành gỡ lỗi các chức năng như Exception, Interrupt Controller và Calling Convention.

  • Có thể biết cách kiến trúc RISC-V được sử dụng trong nhân hệ điều hành như Linux Kernel.

  • Có thể phân tích mã khởi động của bootloader hoặc nhân Linux chạy trên RISC-V.

<Thông báo>

Bài giảng mới nhất được gia hạn vào năm 2025

Chúng tôi đã thêm các bài giảng sau đây để giúp bạn tìm hiểu về các tính năng kiến trúc RISC-V mới nhất và nội dung hữu ích có thể áp dụng trực tiếp vào các dự án thực tế.

  • Đã thêm phiên 'Cách thức hoạt động của ngoại lệ đồng bộ' (4 bài giảng) - 23/07 (2025)

Trong ngành công nghiệp phần mềm hệ thống hiện đại
Kiến trúc RISC-V mới nổi

Gần đây, kiến trúc RISC-V, một kiến trúc CPU mã nguồn mở, đang ngày càng phổ biến. Nếu bạn xem các bài báo hoặc tin tức liên quan đến CNTT, bạn có thể thấy ngay những điều sau:

  • Các công ty công nghệ lớn như nVidia, Intel và Qualcomm đang phát triển các sản phẩm (chipset) dựa trên RISC-V.

  • Số lượng các công ty khởi nghiệp thiết kế nhiều loại chip sử dụng RISC-V tại Hàn Quốc đang tăng lên và tỷ lệ sản phẩm được phát triển dựa trên thiết bị RISC-V cũng ngày càng tăng.

  • Khi thiết kế chất bán dẫn AI, kiến trúc CPU dựa trên RISC-V được sử dụng rộng rãi.

  • Dự kiến sẽ có 15 tỷ thiết bị sử dụng RISC-V vào năm 2026.

  • Ở trường sau đại học (thiết kế bộ xử lý), nhiều nghiên cứu khác nhau đang được tiến hành bằng cách sử dụng bộ công cụ có thể thiết kế CPU RISC-V.

Các công ty phần mềm hệ thống và nhúng đang ngày càng phát triển các sản phẩm sử dụng kiến trúc CPU RISC-V, vì vậy người tìm việc cần chuẩn bị cho RISC-V trong các cuộc phỏng vấn kỹ thuật.

Bối cảnh tạo nên bài giảng

Đối với người mới bắt đầu, kiến trúc RISC-V khá khó học. Dưới đây là một số lý do:

  • Tôi không biết điều gì là quan trọng trong khối lượng nội dung khổng lồ tạo nên RISC-V.

  • Tôi không biết những chức năng nào của RISC-V được sử dụng trong các dự án thực tế.

  • Cho dù bạn có đọc tài liệu đặc tả RISC-V kỹ đến đâu thì cũng khó có thể hiểu ngay được.


  • Thật khó để biết thuật ngữ mô tả RISC-V có nghĩa là gì.


So với kiến trúc Arm, hiện tại chưa có đủ thông tin về kiến trúc RISC-V, và cũng thiếu thông tin giải thích cụ thể và dễ hiểu về RISC-V. Tôi biên soạn bài giảng này để giúp các nhà phát triển phần mềm hệ thống, bao gồm cả những nhà phát triển mới, vượt qua những khó khăn khi học RISC-V.

Cấu trúc bài giảng và lộ trình bài giảng cho phần 1 và phần 3

Bài giảng này trình bày Phần 2, các tính năng cốt lõi của RISC-V, trong toàn bộ danh sách bài giảng về RISC-V.

Bài giảng đầy đủ về kiến trúc RISC-V có thể được tìm thấy trong Lộ trình - bài giảng ' Kiến trúc RISC-V dành cho nhà phát triển phần mềm hệ thống '.

Những điểm khác biệt chính của bài giảng

1. Gỡ lỗi kiến trúc RISC-V bằng chương trình mô phỏng TRACE32 (sử dụng cho mục đích giáo dục)

Cách nhanh nhất để học kiến trúc RISC-V (thanh ghi, lệnh hợp ngữ, chế độ đặc quyền) là gì? Đó là thông qua thực hành gỡ lỗi thực hành.

Khi tham gia khóa học này, bạn có thể tải xuống chương trình mô phỏng TRACE32 giáo dục từ 'Tài liệu bài giảng Inflearn' và sử dụng chương trình mô phỏng TRACE32 để thực hành các thanh ghi, lệnh lắp ráp và chế độ đặc quyền của kiến trúc RISC-V.

Để tham khảo, trình gỡ lỗi TRACE32 và các chương trình liên quan được sử dụng rộng rãi trong quá trình phát triển phần mềm hệ thống. Chương trình TRACE32 yêu cầu phải có giấy phép để chạy.

2. Cung cấp năm bản sao lưu bộ nhớ kernel được trích xuất từ bo mạch RISC-V.

Năng lực quan trọng nhất cần có trong quá trình phát triển phần mềm hệ thống là khả năng giải quyết vấn đề. Trong số đó, khả năng phân tích và giải quyết sự cố là yêu cầu hàng đầu. Trong bài giảng này, chúng ta sẽ gỡ lỗi năm bản sao lưu bộ nhớ lỗi kernel được trích xuất từ Vision-Five 2, một trong những bo mạch RISC-V phổ biến nhất, và thực hành gỡ lỗi ngoại lệ và quy ước gọi. Những người tham gia bài giảng có thể tải xuống năm bản sao lưu bộ nhớ cùng với chương trình TRACE32 và gỡ lỗi ngoại lệ và quy ước gọi.

3. Chọn nội dung chính và giải thích chúng một cách dễ hiểu.

Người mới bắt đầu thường tìm kiếm và phân tích tài liệu tham khảo trước khi học RISC-V, nhưng việc xác định nội dung RISC-V nào nên học trước khá khó khăn. Lý do là vì rất khó để biết nên học tốt nội dung nào trước. Trong bài giảng này, chúng tôi sẽ lựa chọn và giải thích kỹ lưỡng những nội dung có thể áp dụng vào thực tế và phải được nhiều người biết đến. Ví dụ, chúng tôi sẽ mở các bản sao lưu bộ nhớ (memory dump) và nhật ký hạt nhân (kernel log) nhận được từ các thiết bị dựa trên RISC-V, đồng thời giải thích các thanh ghi và lệnh hợp ngữ một cách dễ hiểu và chi tiết.

4. Giải thích bằng ví dụ cụ thể kèm theo phần mềm và ngăn xếp.

RISC-V chủ yếu được học bởi những người muốn thành công trong lĩnh vực phát triển phần mềm hệ thống hoặc muốn bước chân vào lĩnh vực này. Trong bài giảng này, chúng tôi sẽ giải thích các ví dụ khác nhau về cách RISC-V được sử dụng trong các dự án thực tế.

  • Phần mềm chạy trên hệ thống RISC-V như thế nào

  • Quá trình khởi động trong hệ thống RISC-V là gì?

  • Cách gỡ lỗi và đảo ngược trên hệ thống RISC-V

Bằng cách tham gia khóa học này, bạn có thể nhanh chóng và tự nhiên có được cảm nhận thực tế về nội dung của kiến trúc RISC-V.

5. Giải thích RISC-V so với kiến trúc Arm

Nhìn vào hệ sinh thái của ngành công nghiệp phần mềm hệ thống, hệ sinh thái của ngành công nghiệp nhúng và chipset sẽ tập trung vào kiến trúc ARM vào năm 2025. Nhiều nhà phát triển phần mềm hệ thống đã quen thuộc với bộ xử lý ARM hoặc kiến trúc ARM. Trong bài giảng này, chúng tôi sẽ giải thích các khái niệm cốt lõi của RSIC-V cùng với kiến trúc ARM.

  • Các loại ngoại lệ và cách xử lý chúng

  • Cấu trúc và phương pháp xử lý của bộ điều khiển ngắt

  • Cách xử lý các quy ước gọi (Các thanh ghi được sử dụng và các hướng dẫn lắp ráp liên quan)

Vì nhà giáo dục là tác giả của một cuốn sách về kiến trúc Arm nên ông có thể giải thích RISC-V tốt hơn so với kiến trúc Arm hơn bất kỳ ai khác.

Tìm hiểu về những điều này 📕

Tài liệu này giải thích chi tiết các khái niệm cơ bản về ngoại lệ và cung cấp lời giải thích dễ hiểu về các tính năng cốt lõi của ngoại lệ được xác định trong kiến trúc RISC-V.

Mô tả luồng thực thi ngoại lệ, một tính năng cốt lõi của kiến trúc RISC-V. Tài liệu cũng giải thích chi tiết cách xử lý ngoại lệ trong một hệ thống bao gồm chế độ máy và chế độ người dùng.

Mô tả các mã ngoại lệ chỉ ra nguyên nhân của ngoại lệ như được định nghĩa trong kiến trúc RISC-V và cũng giải thích luồng xử lý ngoại lệ với lệnh hủy bộ nhớ.

Theo góc nhìn phát triển phần mềm, nó trình bày chi tiết luồng thực thi khi xảy ra ngoại lệ và sự cố.

Nó giải thích luồng ngoại lệ bằng cách phân tích từng dòng lệnh lắp ráp. Nó cũng giải thích cách xử lý ngoại lệ trên ngăn xếp khi chúng xảy ra.

Thực hành ngoại lệ bằng cách thực thi lệnh hợp ngữ với chương trình thực hành gỡ lỗi T32. Chương trình giải thích chi tiết các thanh ghi CSR (scause, mcause) nào sẽ thay đổi khi ngoại lệ được kích hoạt.

Chúng tôi sẽ giải thích chi tiết về trình xử lý ngoại lệ được xử lý trong hạt nhân Linux trong khi thực hành gây ra ngoại lệ bằng chương trình TRACE32.

Bằng cách phân tích bản sao lưu bộ nhớ lấy từ bo mạch dựa trên RISC-V, chúng tôi giải thích cách thức hoạt động của ngoại lệ trong kiến trúc RISC-V: phân tích nhật ký hạt nhân, phân tích ngăn xếp cuộc gọi.

Chúng ta sẽ thực hành gỡ lỗi bảng trang bằng chương trình TRACE32. Điều này sẽ giúp chúng ta hiểu rõ nguyên nhân cụ thể gây ra ngoại lệ.

Mô tả hoạt động cơ bản của bộ điều khiển ngắt được định nghĩa trong kiến trúc RISC-V. Giải thích cấu trúc của PLIC và CLIC một cách dễ hiểu.

Chúng tôi xem xét các mã ngoại lệ liên quan đến ngắt và giải thích cấu trúc của Bộ điều khiển ngắt cấp nền tảng (PLIC).

Mô tả các thành phần phần cứng cốt lõi tạo nên PLIC và cung cấp lời giải thích dễ hiểu về các thanh ghi CSR điều khiển PLIC.

Chúng tôi sẽ giải thích về Quy ước gọi được giới thiệu trong kiến trúc RISC-V và xem xét các thanh ghi hỗ trợ Quy ước gọi.

Giải thích bức tranh tổng quan về cách xử lý các đối số được truyền vào hàm.

Phân tích các lệnh lắp ráp hỗ trợ quy ước gọi của kiến trúc RISC-V. Cũng phân tích các lệnh lắp ráp ví dụ - phân tích lệnh c.sdsp.

Phân tích các lệnh lắp ráp hỗ trợ quy ước gọi của kiến trúc RISC-V. Cũng phân tích các lệnh lắp ráp ví dụ - phân tích lệnh c.ldsp.

Phân tích các lệnh lắp ráp hỗ trợ quy ước gọi của kiến trúc RISC-V. Cũng phân tích các lệnh lắp ráp ví dụ - phân tích lệnh c.ldsp.


Chúng ta sẽ thực hành khôi phục ngăn xếp cuộc gọi bị hỏng bằng cách gỡ lỗi TRACE32.


Trong bài tập gỡ lỗi TRACE32 này, chúng ta sẽ phân tích lỗi tràn bộ nhớ do tràn ngăn xếp.


Dựa trên kinh nghiệm viết sách và giảng bài của tôi
Sâu sắc và chi tiết hơn bất kỳ ai khác!

Vô song trong lĩnh vực phần mềm hệ thống trong nước ! Tác giả của 'Arm Architecture (Armv8-A, Armv7-A)' và 'Linux Kernel' ( cả hai đều được Viện Hàn lâm Khoa học Hàn Quốc bình chọn là sách xuất sắc ) là tác giả toàn cầu, người đã viết cuốn sách "Reverse Engineering Armv8-A Systems" (tiếng Anh) thông qua một nhà xuất bản nước ngoài (Packt) lần đầu tiên tại Hàn Quốc . Trên hết, ông là một nhà phát triển đang làm việc, am hiểu nhất về các xu hướng phần mềm hệ thống mới nhất (xe điện, chất bán dẫn hệ thống - phần mềm hệ thống). Ông cũng là một nhà giáo dục tích cực nhất trong việc phổ biến kiến thức trong lĩnh vực phần mềm hệ thống.

  • Tác giả của cuốn sách 'Kỹ thuật đảo ngược hệ thống Armv8-A: Hướng dẫn thực tế về phân tích Kernel, Firmware và TrustZone' (Nhà xuất bản Packt)

  • Tác giả của 'Cấu trúc và nguyên tắc của kiến trúc Arm cho phát triển phần mềm hệ thống' ( Giải thưởng sách xuất sắc của Viện Hàn lâm Khoa học Hàn Quốc năm 2024 )

  • Tác giả của 'Tìm hiểu cấu trúc và nguyên tắc của hạt nhân Linux thông qua gỡ lỗi' ( Giải thưởng Sách xuất sắc của Viện Hàn lâm Khoa học Hàn Quốc năm 2021 )

  • 'Khóa học dành cho lập trình viên: Chuyên gia về hệ thống và hạt nhân Linux' Giảng viên chính

  • Tháng 6 năm 2022, Hội nghị Máy tính Hàn Quốc (KCC2022) - Bài thuyết trình hướng dẫn [Chinh phục Nhân Linux bằng ftrace]

  • Giảng viên nội bộ về 'Linux Kernel' và 'Armv8 Architecture' của LG Electronics ( bao gồm các nhà phát triển trong và ngoài nước ) - (2020~2024)

Khuyến nghị cho
những người này

Khóa học này dành cho ai?

  • Lập trình viên junior muốn phát triển năng lực trong lĩnh vực phần mềm hệ thống, bao gồm bán dẫn hệ thống (fabless) và mảng xe điện (tự lái, thông tin giải trí).

  • Ứng viên tìm việc mong muốn phát triển phần mềm hệ thống trong lĩnh vực bán dẫn hệ thống (fabless) và ô tô điện.

  • Nhà phát triển phần mềm hệ thống (bán dẫn hệ thống, ô tô điện) mong muốn biết cách debug trong thực tế bằng cách tận dụng các tính năng của kiến trúc RISC-V.

  • Lập trình viên khác ngành muốn chuyển sang mảng phần mềm hệ thống

  • Sinh viên đại học mong muốn học cao học lĩnh vực phần mềm hệ thống (bộ nhớ, hệ thống tệp, hệ điều hành)

Cần biết trước khi bắt đầu?

  • Kiến trúc máy tính

  • Ngôn ngữ C

  • Hệ điều hành

Xin chào
Đây là

5,557

Học viên

156

Đánh giá

85

Trả lời

4.9

Xếp hạng

21

Các khóa học

글로벌 저자 & 리눅스 시스템 소프트웨어 개발자 (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

Chương trình giảng dạy

Tất cả

91 bài giảng ∙ (11giờ 33phút)

Tài liệu khóa học:

Tài liệu bài giảng
Ngày đăng: 
Cập nhật lần cuối: 

Đánh giá

Tất cả

3 đánh giá

5.0

3 đánh giá

  • kisanglee5393님의 프로필 이미지
    kisanglee5393

    Đánh giá 3

    Đánh giá trung bình 5.0

    5

    100% đã tham gia

    • jungmopark3648님의 프로필 이미지
      jungmopark3648

      Đánh giá 3

      Đánh giá trung bình 4.3

      5

      100% đã tham gia

      It helped a lot.

      • aceoftop1975님의 프로필 이미지
        aceoftop1975

        Đánh giá 95

        Đánh giá trung bình 5.0

        5

        100% đã tham gia

        2025/06/03/Tue 16:58 I listened to a really good lecture. I finally understood that I can debug using stack information. Have a nice day. Thank you.

        2.541.007 ₫

        Khóa học khác của austinkim

        Hãy khám phá các khóa học khác của giảng viên!

        Khóa học tương tự

        Khám phá các khóa học khác trong cùng lĩnh vực!