Learning RISC-V Architecture Through Debugging - Part 2
austinkim
Explains the core concepts and practical tips of RISC-V, the latest open-source based CPU architecture, simply and in detail.
초급
cpu-architecture, cpu, riscv
オープンソースベースの最新CPUアーキテクチャであるRISC-Vの主要な概念と実用的なヒントをわかりやすく詳細に説明します。
技術面接でRISC-V関連の質問に、適切に回答し説明できます。
RISC-Vを構成する主要機能である仮想メモリシステム、メモリバリア、キャッシュの動作原理を学ぶことができます。
Linux KernelのようなOSカーネルでのRISC-Vアーキテクチャの活用方法を知ることができます。
RISC-Vベースで実行されるブートローダーやLinuxカーネルのスタートアップコードを解析できます。
最近、オープンソースベースのCPUアーキテクチャであるRISC-Vアーキテクチャが浮上しています。
nVidia、Intel、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アーキテクチャシリーズの3番目の講義で、入門者レベルを超えて高い年俸を受けることができるレベルのシステムソフトウェア開発者になるための内容を取り上げます - メモリシステム(仮想メモリ、メモリバリア、キャッシュ)とHypervisor Extension機能について説明します。
今回の講義は、RISC-V全体の講義リストのうち、RISC-Vの中核機能である3部の内容を取り上げます。
パート1:RISC-Vの紹介、レジスタ、アセンブリ命令、Privilege Mode(デバッグを通じて学ぶRISC-Vアーキテクチャのパート1 )
パート 2: アクセプション (Memory Abort Exception), 割り込み, PLIC (Platform-level Interrupt Controller), Calling convention (デバッグを通じて学ぶ RISC-V アーキテクチャ パート 2 )
パート3:仮想メモリシステム、キャッシュ(Cache)、フェンス(Fence)/バリア、Hypervisor extension
RISC-Vアーキテクチャの完全なレッスンは、ロードマップ - 「システムソフトウェア開発者向けのRISC-Vアーキテクチャ」のレッスンで確認できます。
1. RISC-Vアーキテクチャのメモリシステムをわかりやすく説明
高度なシステムソフトウェア開発者になるためには、メモリシステムの理解が不可欠です。
本番プロジェクトで遭遇する受付の問題をうまくデバッグするには、仮想アドレスの基本概念とMMUをよく知る必要があります。
システムのパフォーマンスを最適化するには、メモリシステムの機能を正しく知っておく必要があります。
新しいプロジェクトのブリングアップをよくするためにも、メモリ関連の機能をよく把握する必要があります。
しかし、RISC-Vのリファレンスドキュメント分析により、メモリシステム(仮想メモリシステム、メモリバリア、キャッシュ)を適切に把握することは困難です。
2. 実務例として学ぶRISC-Vメモリ機能
今回のレッスンでは、実践例でRISC-Vのメモリ関連機能をどのように使用するかを具体的に説明します。
Linuxカーネルでページテーブルを設定するコード
フェンス命令によるメモリのリオーダリングを防止する例
Instruction cacheをflushするアセンブリ命令
RISC-Vアーキテクチャの内容とともに、自然に実戦感覚を素早く身につけることができます。
3. 様々なデバッグ実習講義
メモリシステムで扱う内容は直接デバッグをしないと、学んだ内容を消化しにくく、学んだ内容を実戦開発にすぐに活用することが難しいです。
関数とグローバル変数のアドレス解決(仮想アドレスの概念)
仮想アドレスを直接物理アドレスに変換する実習
ページテーブルのエントリ情報を確認する(Crash Utility、TRACE32を活用)
4.Armアーキテクチャと比較してRISC-Vを説明
多くの開発者はすでにArmベースのSoCまたはArmアーキテクチャに精通しています。
仮想メモリシステムの構造
メモリバリア方式
キャッシュ制御方法
教育者はArmアーキテクチャの本の著者(優秀図書賞受賞 - 韓国学術院 - 2024年)なので、誰よりもRISC-VをArmアーキテクチャと比較しながらよく説明することができます。
RISC-Vアーキテクチャの主要なメモリ機能を紹介し、仮想メモリシステムを構成する重要な機能も紹介します。
仮想メモリシステムの中核となる仮想メモリマップも紹介します。
ページテーブルを設定する satp レジスタを記述し、メモリダンプのデバッグの実践を通じて仮想アドレスの概念をわかりやすく説明します。
仮想アドレスとページテーブルの概念を説明し、実際のケーススタディによる仮想アドレスの範囲について説明します。
マルチレベルページテーブルの構造を説明し、PTE(Page Table Entry)について詳細に説明する。
マルチレベルページテーブルを使用して仮想アドレスを物理アドレスに直接変換するプロセスを詳細に説明します。
SiFiveのU74コアとP550コアのMMU仕様を分析しながら、MMUの動作方法をハードウェア設計の観点から詳しく説明します。
メモリリオーダリングについて説明し、メモリリオーダリングを防止するfence命令の動作原理をわかりやすく説明します。
fence命令の基本構造を説明し、さまざまなオプションを適用したfence命令の動作方法を詳しく説明します。
マルチコアシステム環境でのフェンス命令の動作方法を説明します - フェンス命令を実行すると、どの原理で他のコアに同期するかを分析します。また、サンプルアセンブリ命令を解析しながら、フェンス命令についても説明します。
fence.i命令を紹介し、大きな図でfence.i命令を実行すると処理されるフローまで説明します。
さまざまなサンプルアセンブリルーチンを分析しながら、fence.i命令を分析します。 Arm アーキテクチャと比較しながら fence.i 命令を分析します。
キャッシュの基本概念を説明し、キャッシュが使用される理由についても説明します。
マルチコアシステムにおけるキャッシュの動作原理を説明し、Armアーキテクチャと比較しながらRISC-Vで定義されたキャッシュのコアフィーチャを分析します。
キャッシュを構成する基本要素について説明し、キャッシュルックアップ(キャッシュを探す過程)でアドレスがどのように処理されるかについて詳しく説明します。
ハイパーバイザーを紹介し、RISC-VアーキテクチャでHypervisorを実行する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
5,437
受講生
148
受講レビュー
84
回答
4.9
講座評価
21
講座
글로벌 저자 & 리눅스 시스템 소프트웨어 개발자 (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'
全体
82件 ∙ (9時間 17分)
講座資料(こうぎしりょう):
¥14,296
知識共有者の他の講座を見てみましょう!
同じ分野の他の講座を見てみましょう!