Inflearn brand logo image
Inflearn brand logo image
Inflearn brand logo image
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 CourseAdvanced Course 2つで構成されています。


最新のシステムソフトウェアから
最も重要な Arm アーキテクチャ

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

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


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


メモリマネジメント(MMU) 」をなぜ学ぶのですか?

1⃣まず、RTOSやLinuxカーネルベースのシステムでブリンクアップしたり、デバイスドライバを開発するとき、仮想メモリの概念がわからないと、正しく開発を進めることができません。ボードをブリングアップする際に仮想アドレスの属性や権限を設定する状況が生じることがありますが、これに必要な概念が仮想メモリとMMUの概念です。

2⃣第二に、メモリアボット、ページフォールト、およびディメンションページングの動作方法を理解できる基盤知識が仮想メモリとMMUです。仮想アドレスをページで管理する方法がわからない場合は、この動作原理を正しく把握できません。

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

4⃣第四に、システムソフトウェア開発関連の技術面接をよく見るために「仮想メモリとMMUの概念」をよく知る必要があります。キャリア開発者のインタビューでたくさん出てくる質問の1つは、「仮想メモリと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アーキテクチャの機能を活用して実務でどのようにデバッグするのか知りたいシステムソフトウェア開発者(システム半導体、電気自動車)

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

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

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

  • コンピュータ構造

  • オーエス

こんにちは
です。

5,441

受講生

149

受講レビュー

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'

'시스템 소프트웨어 개발자를 위한 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

      受講レビュー 94

      平均評価 5.0

      5

      100% 受講後に作成

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

      ¥4,044

      austinkimの他の講座

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