강의

멘토링

커뮤니티

Hardware

/

Embedded IoT

Armアーキテクチャ:メモリマネジメント(MMU) [著者直講 3部-5]

システムソフトウェアの基本中の基本、最新Armアーキテクチャ(Armv8-A, Armv7-A)の核である「メモリマネジメント(MMU)」を、『システムソフトウェア開発のためのArmアーキテクチャの構造と原理』の著者がしっかりと解説します!

  • austinkim
저자 직강
이론 중심
임베디드리눅스
트러블슈팅
cortex-a
ARM Architecture
armv8
memory-management

受講後に得られること

  • Armアーキテクチャ(Armv8-A)のメモリマネジメント(MMU)の基本動作原理を把握することができます。

  • Armアーキテクチャのメモリマネジメント(MMU)関連機能が、実際のプロジェクトでどのように活用されるかを知ることができます。

  • メモリマネジメント(MMU)に関連する実行フローと構造を大まかに把握できます。

  • 面接でメモリマネージメント(MMU)に関する質問に的確に答えることができます。

<お知らせ>

1. 300名突破30%割引クーポン発行

受講生300名突破(1、2部)を記念して30%割引クーポンを発行いたします。ありがとうございます。先着300名です。

2. ロードマップガイド 🎯

今回の講義ロードマップ'システムソフトウェア開発者のためのArm - advanced course'に含まれる講義です。


体系的にArmアーキテクチャ(Armv8-A、Armv7-A)を学びたい方は、ロードマップ(全講義30%割引)を活用されると良いでしょう。参考までに、Armアーキテクチャロードマップ(著者直講全体)はBasic Course上級コース2つで構成されています。


最新のシステムソフトウェアにおける
最も重要なArmアーキテクチャ

スマートフォンはもちろん、AI用SoCシステム半導体、電気自動車Automotive(自動運転、インフォテインメント)そしてクラウドサーバーおよびMacBookで使用されるArmプロセッサは、すべてArmv8-A基盤64ビットCortex-Aプロセッサ(Cortex-A53、Cortex-A57、Cortex-A72など...)です。現在システムソフトウェア業界で最も多く必要とされる基盤知識が要求される内容がArmv8-Aアーキテクチャだと言えるでしょう。

上級システムSW開発者になる第一歩!
メモリ管理方式を理解する 🙋‍♂


しかし、高度なシステムソフトウェア開発者になるためには、Armアーキテクチャを構成する主要機能の中でメモリを管理する方式をよく知っておく必要があります。メモリを管理する方式の核心は「メモリマネジメント(MMU)」、「キャッシュ動作原理」とメモリモデルとバリアです。
この中でシステムソフトウェア開発者が知っておくべき最も重要な機能の一つは仮想メモリシステムに関連する「メモリマネジメント(MMU)」です。


'メモリマネジメント(MMU)'をなぜ学ぶべきなのでしょうか?

1⃣ 第一に、RTOSやLinuxカーネルベースのシステムでブリングアップを行ったり、デバイスドライバを開発する際、仮想メモリの概念をよく理解していないと、適切な開発を進めることができません。ボードをブリングアップする時に仮想アドレスの属性や権限を設定する状況が発生する可能性がありますが、これに必要な概念が仮想メモリとMMUの概念です。

2⃣ 第二に、メモリアボートやページフォルト、そしてデマンドページングの動作方式を理解するための基盤知識が仮想メモリとMMUです。仮想アドレスをページで管理する方式をよく知らなければ、このような動作原理を正しく把握することはできません。

3⃣ 第三に、仮想メモリとMMUは、Armプロセッサ内部の動作原理を詳細に把握できる基盤知識です。

4⃣ 四つ目は、システムソフトウェア開発関連の技術面接で良い結果を出すために「仮想メモリとMMUの概念」をよく理解しておく必要があります。経験者の面接でよく出る質問の一つが「仮想メモリとMMU」に関する内容です。

最近開発されているほとんどのシステムソフトウェアは仮想メモリシステム環境で実行されるため、これに関連する知識は必ず身につけておく必要があります。

システムSW開発者のノウハウを
簡単で詳しく込めました!


この講義は「システムソフトウェア開発のためのArmアーキテクチャの構造と原理」の著者直講講義で、メモリシステムの核心であるArmアーキテクチャ(Armv8-A)のメモリマネジメント(MMU)について詳細に扱います。
今回の講義は、これまで制作した著者直講講義の中で最も多くの時間をかけて制作しました。


⭐️ 講義の差別化ポイント

1⃣今回の講義では、仮想メモリと仮想アドレス、そしてArmアーキテクチャでサポートされる仮想メモリシステムに関する核心的な内容をすべて分かりやすく解説します。

2⃣ 「システムソフトウェア開発のためのArmアーキテクチャの構造と原理」という本を執筆する際、紙面の制約により扱いきれなかった内容が多くありましたが、これらをすべて講義に盛り込んで詳しく説明します。

3⃣ MMUの詳細動作を設定するアセンブリ命令語と関連システムレジスタを、Linuxカーネルとxenハイパーバイザーのサンプルコードで詳しく説明します。

4⃣ TRACE32やcrash-utilityなどのデバッグツールを使用して、システムレジスタの主要なビットフィールドから例外が処理される流れまで詳細に説明します。

今回の講義をしっかりと消化していただければ、高級システムソフトウェア開発者として成長することができます。より高い年俸とポジションでキャリアをアップグレードされることを応援しています。

こんな内容を学びます 📕

メモリマネジメントを構成する主要機能と流れを詳細に説明します。


実戦開発の観点からメモリマネジメントに関連する内容をどのように活用できるかを説明します。


MMUの主要機能を説明する前に、仮想メモリの概念をまず理解する必要があります。
仮想メモリシステムを構成する主要要素と構造を詳細に説明します。

MMUの構造と実行フローそしてMMUを構成する主要機能を詳細に説明します。
仮想アドレスを物理アドレスに変換する詳細な動作原理とマルチレベルページの構造を合わせて説明します。

仮想アドレスを物理アドレスに変換する詳細な動作原理とマルチレベルページの構造を一緒に説明します。

仮想アドレスの範囲とMMUの機能を設定する際に実行されるアセンブリ命令語を詳細に紹介します。

TRACE32デバッグプログラムを使用しながらTCR_EL1レジスタを構成する主要ビットフィールドを詳細に説明します。フォルトと関連する情報を知ることができる各種システムレジスタをcrash-utilityというデバッグプログラムを通じて分析し、実習してみます。

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

国内システムソフトウェア分野で前代未聞!「Armアーキテクチャ(Armv8-A、Armv7-A)」と「Linuxカーネル」の本を書いた著者です。また、最新システムソフトウェアトレンド(電気自動車、システム半導体-システムソフトウェア)を最もよく知っている現役開発者であり、システムソフトウェア分野で最も知識普及活動を活発に行っている教育者です。

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

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

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

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

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


国内で誰よりもArmアーキテクチャ(Armv8-A、Armv7-A)を構成する主要機能をよく説明できる教育者だと自信を持って申し上げることができます。

学習者が残したリアルな受講レビュー

<システムソフトウェア開発のためのArmアーキテクチャの構造と原理 - 1/2部 著者直講>


受講前の参考事項

前提知識および注意事項

  • 「メモリマネジメント(MMU)」講義は前提知識がなくても無難についてこられる講義です。

  • アセンブリ命令語とレジスタに関する基本概念を理解している必要があります。

  • マルチコアシステムとシステム構造について理解していると良いです。

こんな方に
おすすめです

学習対象は
誰でしょう?

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

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

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

  • システムソフトウェア分野へキャリアチェンジを目指す他分野のエンジニア

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

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

  • コンピュータ構造

  • オーエス

こんにちは
です。

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

カリキュラム

全体

25件 ∙ (4時間 18分)

講座掲載日: 
最終更新日: 

受講レビュー

全体

2件

5.0

2件の受講レビュー

  • Embedded June님의 프로필 이미지
    Embedded June

    受講レビュー 4

    平均評価 5.0

    5

    100% 受講後に作成

    3부 (트러스트존, 가상화, 메모리(메모리모델, 캐시, MMU)) 모두 수강했습니다. 특히 메모리쪽에서 기존에 머릿속에 알고있던 어렴풋한 추상적인 메모리 관련 내용들이 정확하게 레지스터 단위까지 순차적으로 정리되는 느낌이었습니다. 친절하게 설명해주셔서 감사합니다!!

    • sunny75님의 프로필 이미지
      sunny75

      受講レビュー 112

      平均評価 5.0

      5

      100% 受講後に作成

      2024/7/30/화 07:55 강의 잘 들었습니다. 강의 들을 때 마다 항상 새로운 지식을 얻고 있습니다. 이렇게 어려운 내용을 잘 설명해 주셔서 감사합니다.

      ¥4,230

      austinkimの他の講座

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