강의

멘토링

커뮤니티

Hardware

/

Semiconductor

デバッグで学ぶ RISC-V アーキテクチャ - 3部

オープンソースベースの最新CPUアーキテクチャであるRISC-Vの主要な概念と実用的なヒントをわかりやすく詳細に説明します。

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

受講後に得られること

  • 技術面接でRISC-V関連の質問に、適切に回答し説明できます。

  • RISC-Vを構成する主要機能である仮想メモリシステム、メモリバリア、キャッシュの動作原理を学ぶことができます。

  • Linux KernelのようなOSカーネルでのRISC-Vアーキテクチャの活用方法を知ることができます。

  • RISC-Vベースで実行されるブートローダーやLinuxカーネルのスタートアップコードを解析できます。

お知らせ 🎯

国内初のRISC-V講義ローンチを記念して30%割引クーポンを発行(先着100名)いたします。

クーポンリンク: https://inf.run/vH1PK

最新システムソフトウェア業界で
注目されているRISC-Vアーキテクチャ

最近、オープンソースベースのCPUアーキテクチャであるRISC-Vアーキテクチャが注目されています。ITに関連する報道記事やニュースを見ると、以下のような内容をすぐに確認することができます:

  • nVidia、インテル、Qualcommなどのビッグテック企業がRISC-Vベースの製品(チップセット)を開発している。

  • 国内でRISC-Vを活用した様々なチップを設計するスタートアップ企業が増えており、RISC-Vデバイスベースの製品を開発する比重が高まっている。

  • AI半導体を設計する際、RISC-Vベースの CPUアーキテクチャを多く活用する。

  • 2026年までに150億台のデバイスがRISC-Vベースでリリースされる予定である。

  • 大学院(プロセッサ設計)では、RISC-V CPUを設計できるツールキットを使用して様々な研究を進行中である。

組み込みおよびシステムソフトウェア企業において、RISC-V CPUアーキテクチャを活用した製品開発の割合が高まっています。そのため、就職活動中の学生は技術面接でもRISC-Vに関する準備をしなければならない状況です。

講義を作った背景

初心者の立場からRISC-Vアーキテクチャは学習が困難です。その理由は以下の通りです:

  • RISC-Vを構成する膨大な内容の中で何が重要なのかわからない

  • RISC-Vを構成する内容の中で、どの機能が実戦プロジェクトに活用されるのかわからない

  • RISC-Vスペック文書をいくら一生懸命読んでもすぐに理解するのは難しい


  • RISC-Vを説明する用語そのものが何を意味するのか理解するのが難しい


今回の講義はデバッグで学ぶRISC-Vアーキテクチャシリーズの第3回講義として、入門者レベルを超えて高い年収を得られるレベルのシステムソフトウェア開発者になるための内容を扱います - メモリシステム(仮想メモリ、メモリバリア、キャッシュ)とHypervisor Extension機能について説明します。

講義の構成と2部、3部講義ロードマップ

今回の講義は、RISC-V全体の講義リストの中で、RISC-Vの核心機能である第3部の内容を扱います。

RISC-Vアーキテクチャ全体の講義は、ロードマップ - 'システムソフトウェア開発者のためのRISC-Vアーキテクチャ'講義で確認できます。

講義の核心的差別化ポイント

1. RISC-Vアーキテクチャのメモリシステムをわかりやすく説明します

高度なシステムソフトウェア開発者になるためには、メモリシステムに対する理解は必須です。その理由は以下の通りです。

  • 実戦プロジェクトで遭遇する例外問題を適切にデバッグするためには、仮想アドレスの基本概念とMMUをよく理解している必要があります。

  • システムの性能を最適化するためには、メモリシステムの機能を正しく理解している必要があります。

  • 新しいプロジェクトのブリングアップをうまく行うためにも、メモリ関連機能をよく把握する必要があります。

しかし、RISC-Vリファレンス文書の分析を通じてメモリシステム(仮想メモリシステム、メモリバリア、キャッシュ)を適切に把握するのは困難です。今回の講義では、実務に必須の核心概念を分かりやすく明確に説明します。

2. 実務例で学ぶRISC-Vメモリ機能

今回の講義では、実戦例を通じてRISC-Vのメモリ関連機能がどのように使用されるかを具体的に説明します。

  • Linuxカーネルでページテーブルを設定するコード

  • fence命令でメモリリオーダリングを防ぐ例

  • Instruction cacheをflushするアセンブリ命令語

RISC-Vアーキテクチャの内容と共に自然に実戦感覚を素早く身につけることができます。

3. 様々なデバッグ実習講義

メモリシステムで扱う内容は、直接デバッグを行わなければ、学んだ内容を消化することが困難で、学んだ内容を実戦開発にすぐに活用することが困難です。今回の講義では、メモリダンプデバッグ実習(Crash Utility、TRACE32)を通じて様々な実習を進めます。

  • 関数およびグローバル変数のアドレス確認(仮想アドレスの概念)

  • 仮想アドレスを直接物理アドレスに変換する実習

  • ページテーブルのEntry情報を確認(Crash Utility、TRACE32活用)

4.ArmアーキテクチャとRISC-Vの比較説明

多くの開発者がすでにArmベースのSoCやArmアーキテクチャに慣れ親しんでいます。今回の講義は理解を助けるため、RISC-Vの核心概念をArmアーキテクチャと比較して説明します。

  • 仮想メモリシステムの構造

  • メモリバリア方式

  • キャッシュ制御方法

教育者はArmアーキテクチャの書籍の著者(優秀図書賞受賞 - 大韓民国学術院 - 2024年)であるため、誰よりもRISC-VをArmアーキテクチャと比較しながらよく説明することができます。

こんな内容を学びます 📕

RISC-Vアーキテクチャの主要メモリ機能を紹介し、仮想メモリシステムを構成する核心機能も紹介します。大きな図とともに分かりやすく説明します。

仮想メモリシステムの核心である仮想メモリマップを紹介します。また、カーネル空間とユーザー空間別に仮想アドレスの範囲について分かりやすく説明します。

ページテーブルを設定するsatpレジスタを説明し、メモリダンプデバッグ実習を通じて仮想アドレスの概念をわかりやすく説明します。(メモリダンプは講義資料で提供します。)

仮想アドレスとページテーブルの概念を説明し、実際のケーススタディを通じて仮想アドレスの範囲について説明します。

マルチレベルページテーブルの構造を説明し、PTE(Page Table Entry)を詳細に説明します。

マルチレベルページテーブルを通じて仮想アドレスを直接物理アドレスに変換する過程を詳細に説明します。Crash Utilityプログラムを使用して仮想アドレスを物理アドレスに変換するデバッグ実習も進行します。

SiFiveのU74コアとP550コアのMMUスペックを分析しながら、MMUの動作方式をハードウェア設計観点から詳細に説明します。


メモリリオーダリングについて説明し、メモリリオーダリングを防ぐfence命令の動作原理をわかりやすく説明します。

fence コマンドの基本構造(form)を説明し、様々なオプションを適用した fence コマンドの動作方式を詳細に説明します。

マルチコアシステム環境におけるfence命令の動作方式を説明します - fence命令を実行すると、どのような原理で他のコアに同期されるかを分析します。また、例題アセンブリ命令を分析しながらfence命令を説明します。

fence.i命令を紹介し、大きな図でfence.i命令を実行すると処理される流れまで説明します。

様々な例示アセンブリルーチンを分析しながらfence.i命令を分析します。Armアーキテクチャと比較しながらfence.i命令を分析します。

キャッシュの基本概念を説明し、キャッシュがなぜ使用されるのかについても説明します。

マルチコアシステムにおけるキャッシュの動作原理を説明し、Armアーキテクチャと比較しながらRISC-Vで定義されたキャッシュの核心フィーチャについて分析します。

キャッシュを構成する基本要素について説明し、キャッシュルックアップ(キャッシュを探していく過程)においてアドレスがどのような方式で処理されるかについて詳細に説明します。


ハイパーバイザーを紹介し、RISC-Vアーキテクチャでハイパーバイザーが実行されるPrivilegeモードを説明します。

RISC-Vアーキテクチャで定義されたHypervisor Extensionの核心機能を紹介し、Hypervisor Extensionを有効化する方法を説明します。


Guest OSで例外が発生すると、Hypervisorがこれを最初に制御する実行フローについて説明します。


書籍執筆・講義経験をもとに
誰よりも深く詳細に!

国内システムソフトウェア分野で前代未聞!「Armアーキテクチャ(Armv8-A、Armv7-A)」と「Linuxカーネル」の本を書いた著者(2冊の本がすべて大韓民国学術院優秀図書に選定であり、国内初で海外出版社(Packt)を通じて「Reverse Engineering Armv8-A Systems」の本(英語)を執筆したグローバル著者です。何よりも最新システムソフトウェアトレンド(電気自動車、システム半導体-システムソフトウェア)を最もよく知っている現役開発者です。また、システムソフトウェア分野で最も知識普及活動を活発に行っている教育者です。

  • 'Reverse Engineering Armv8-A Systems: A practical guide to Kernel, Firmware, and TrustZone analysis' 書籍(英語)著者、(Packt出版社)

  • 「システムソフトウェア開発のためのArmアーキテクチャの構造と原理」(2024年、大韓民国学術院優秀図書賞著者

  • 「デバッグを通して学ぶLinuxカーネルの構造と原理」2021年、大韓民国学術院優秀図書賞)著者

  • 'プログラマース デブ コース: Linuxシステム及びカーネル専門家' メイン講師

  • 2022年6月、韓国コンピュータ総合学術大会(KCC2022)- チュートリアル発表 [ftraceを利用してLinuxカーネルを征服する]

  • LG電子「Linuxカーネル」及び「Armv8アーキテクチャ」社内講師(国内及び海外開発者含む) - (2020年~2024)

こんな方に
おすすめです

学習対象は
誰でしょう?

  • システム半導体(ファブレス)、電気自動車分野(自動運転、インフォテインメント)を含むシステムソフトウェア分野で能力を培いたいジュニア開発者

  • システム半導体(ファブレス)、電気自動車分野でシステムソフトウェア開発をしたい就活生

  • RISC-Vアーキテクチャの機能を活用し、実務でどのようにデバッグするのか知りたいシステムソフトウェア開発者(システム半導体、電気自動車)

  • システムソフトウェア分野へキャリアを転換しようとする他分野の開発者

  • システムソフトウェア分野(メモリ、ファイルシステム、OS)の大学院進学を目指す大学生

前提知識、
必要でしょうか?

  • コンピュータ構造

  • C言語

  • OS

こんにちは
です。

6,018

受講生

200

受講レビュー

89

回答

4.9

講座評価

22

講座

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

カリキュラム

全体

82件 ∙ (9時間 17分)

講座資料(こうぎしりょう):

授業資料
講座掲載日: 
最終更新日: 

受講レビュー

全体

3件

4.3

3件の受講レビュー

  • abcd123123님의 프로필 이미지
    abcd123123

    受講レビュー 325

    平均評価 5.0

    5

    61% 受講後に作成

    • rousalome6394님의 프로필 이미지
      rousalome6394

      受講レビュー 4

      平均評価 5.0

      5

      20% 受講後に作成

      この講義を聞いて組み込み技術面接に合格しました。RISC-V関連の質問を受けたら、RISC-Vについてどんな質問でもうまく答えられるという確信があります。講義を聞いて変わった自分の姿が少し驚きでした。 RISC-Vスペックを読むたびに新鮮でしたが、今ではスラスラ読めるようになりました。プロジェクトにすぐ適用できる内容も多くて、周りの同僚開発者にも推薦しました。

      • jungmopark3648님의 프로필 이미지
        jungmopark3648

        受講レビュー 3

        平均評価 4.3

        3

        100% 受講後に作成

        全体的に基礎知識に基づいた教育だったので、得るものがあまりありませんでした。

        ¥14,980

        austinkimの他の講座

        知識共有者の他の講座を見てみましょう!

        似ている講座

        同じ分野の他の講座を見てみましょう!