inflearn logo
知識共有
inflearn logo

新人開発者のための Armv8-A Architecture Overview (著者直講)

システムソフトウェアの基本中の基本、最新Armアーキテクチャ(Armv8-A)の核心を『システムソフトウェア開発のためのArmアーキテクチャの構造と原理』の著者がしっかりとお教えします!

難易度 入門

受講期間 無制限

ARM Architecture
ARM Architecture
Embedded
Embedded
armv8
armv8
cpu-architecture
cpu-architecture
ARM Architecture
ARM Architecture
Embedded
Embedded
armv8
armv8
cpu-architecture
cpu-architecture

受講後に得られること

  • ArmアーキテクチャとArmプロセッサの特徴

  • レジスタとアセンブリ命令の処理方式

  • 例外レベル(Exception Level)と例外レベル別に実行されるソフトウェアスタック

  • 例外(Exception)の種類と動作の仕組み

  • サブルーチン呼び出しのための規約であるAAPCS(Arm呼び出し規約)

  • TrustZoneを構成するノンセキュアワールドとセキュアワールドの概念

  • 仮想化とハイパーバイザーの動作原理

  • バリア、キャッシュ、そして仮想メモリシステムの動作原理

<お知らせ>

Armアーキテクチャ全編 著者直伝講義ロードマップ

今回の講義<新人開発者のためのArmv8-A Architecture(著者直講)>は、ロードマップ 'システムソフトウェア開発者のためのArm - basic course' に含まれている講義です。

体系的にArmアーキテクチャ(Armv8-A, Armv7-A)を学びたい方は、ロードマップ(全講義30%割引)を活用することをお勧めします。ちなみに、Armアーキテクチャのロードマップ(著者直講 全体)は Basic Course Advanced Course の2つで構成されています。

システムソフトウェア開発者の
必須知識、Armアーキテクチャ

AI半導体、電気自動車のAutomotive(自動運転、インフォテインメント)、そしてスマートフォンはもちろん、デジタルTVに使用されるArmプロセッサは、すべてArmv8-Aベースの64ビットCortex-Aプロセッサ(Cortex-A53、Cortex-A57、Cortex-A72など...)です。現在、システムソフトウェア業界で最も必要とされている知識がArmv8-Aアーキテクチャであると言えます。

9時間で完了する
核心 Armv8-A アーキテクチャ入門Core Armv8-A Architecture Introduction


私はArmv8-Aアーキテクチャを解説する本を執筆し、Inflearn(インフラン)で60時間以上の講義も制作しました。

しかし、60時間以上の講義は、初めてArmアーキテクチャを学ぼうとする方が消化するには3ヶ月以上の時間を要します。もちろん、一歩ずつ講義を聴き、Armアーキテクチャを体系的に学ぶことが最善の方法です。しかし、現実的には就職準備生の方々やジュニア開発者の方々は、1〜2週間以内の短期間で技術面接を準備しなければならないケースが多いです。このような受講生のニーズを反映し、コンパクトながらも核心は逃さないArmv8-Aアーキテクチャ入門講義をローンチすることになりました。

対象受講生 💁‍♂

短時間でArmv8-Aアーキテクチャに関連する技術面接に備える必要があるシステムSW分野の就職準備生

Armv8-Aの核心的な内容を把握して、実務を早く身につけたい新入およびジュニア開発者 muốn nắm bắt các nội dung cốt lõi của Armv8-A để nhanh chóng làm quen với công việc thực tế.

Armv8-Aの核心的な機能を理解し、プロジェクトを管理しようとするシステムソフトウェア分野の管理者

講義の差別化ポイント

1⃣ 技術面接で聞かれる可能性のあるArmv8-Aアーキテクチャの主要機能を要約整理

システムソフトウェア開発者の技術面接において、Armv8-Aアーキテクチャに関する質問をされる可能性は非常に高いです。ほとんどの国内リナックスシステムソフトウェア開発者(ファブレス、組み込み開発)の要件として、Armアーキテクチャが明示されています。面接の準備時間は短い一方で、膨大なArmスペック文書を分析するのは大きな負担となります。本講義を受講すれば、Armv8-Aアーキテクチャを構成する核心的な概念を短時間で把握することができます。

2⃣ 新人開発者の立場で必ず知っておくべき内容を整理

実務プロジェクトを進める際には、Armアーキテクチャ(Arm Architecture)をよく理解しておく必要があります。ブリングアップやデバッグを行う際、Armアーキテクチャを知らないと開発を進めるのが困難です。

Armv8-Aアーキテクチャを構成する機能は膨大です。関連するリファレンス文書は2000ページを超え、どの内容が現場のプロジェクトで活用されているのか把握するのは困難です。新人開発者の視点で必ず知っておくべきArmv8-Aアーキテクチャの実用的な機能を分かりやすくまとめました。

3⃣ 様々なケーススタディの紹介

Armアーキテクチャの核心的な内容を説明しながら、実戦プロジェクトでどのような方式で開発業務を進めるかを扱います。また、学んだ内容が実際の現場のプロジェクトでどのように活用されるかについて、多様なケーススタディ(実戦プロジェクトのイシュー)も説明します。さらに、Armアーキテクチャの主要機能が実装されたLinuxカーネルやブートローダーについても扱います。


今回の講義をしっかりと習得すれば、高級システムソフトウェア開発者として成長することができます。

より高い年収とポジションでキャリアをアップグレードされることを応援しています。

このような内容を学びます 📕

システム半導体を開発するプロセスを説明しながら、Armプロセッサについて紹介します。また、Armv8-Aアーキテクチャを構成する基本的な機能についても紹介します。

レジスタの構造を説明し、レジスタがどのように使用されるかを様々な例を挙げて説明します。

スペシャルレジスタについて説明し、関連するレジスタが変更される実行フローを扱います。

ブートプロセスを紹介しながら、アセンブリ命令が実際のプロジェクトでどのように活用されているかを説明します。続いて、アセンブリ命令の基本フォーマットと命令ルーチンを分析します。


様々な方式でアセンブリ命令を詳細に分析し、命令の構文(Syntax)を分かりやすく説明します。


実践的なデバッグプログラムであるTRACE32を使用して、アセンブリ命令をデバッグします。アセンブリ命令を分析しながら、レジスタがどのように使用されるかを詳細に説明します。

例外レベル(Exception Level)と特権レベル(Privilege level)の概念を分かりやすく説明します。

例外レベルごとにソフトウェアがどのように実行されるか、さまざまな事例を挙げて説明します。

ブートプロセスにおいて例外レベル(Exception Level)が設定される過程を詳細に説明します。例外レベルを確認する方法を、アセンブリ命令を通じて説明します。

例外ベクトルテーブルと例外が処理される実行フローを詳細に説明します。

割り込みはArmv8-Aアーキテクチャではエクセプションの一種として処理されます。様々な実行フローを通じて、IRQ割り込みエクセプションが処理される過程を分かりやすく説明します。

システムコールが実行される過程でエクセプションが誘発される過程を説明します。また、エクセプションベクトルテーブルとともに、エクセプションの実行フローを説明します。

TRACE32デバッグ実習を通じて、エクセプションが発生した際にArmコアがエクセプションベクタアドレスに分岐する動作を詳細に説明します。

関数のようなサブルーチンへ分岐する方法を明示したAAPCSについて、基本的な核心概念と実行フローを説明します。

ソフトウェアの観点からスタックが使用される方式と、実際のプロジェクトにすぐ適用できる最適化案について説明します。


TrustZoneの核心概念(ノンセキュアワールド、セキュアワールド)と実行フローについて、分かりやすく説明します。

TRACE32デバッグ実習を通じて、Secure monitor callの動作原理を説明します。EL1でSMC命令を実行した際にEL3へ遷移する動作を詳細に解説し、この過程で発生する例外の動作方式についても詳しく分析します。

電気自動車(Automotive)開発で広く活用されているハイパーバイザの構造と、Virtualization(仮想化)機能について説明します。

仮想化技術の核心であるHypervisor callを通じて、ゲストOSからハイパーバイザへ移行する過程を説明します。また、例外をハイパーバイザで受け取って処理する実行フローについて説明します。


TRACE32デバッグ実習を通じて、HVC命令をEL1(ゲストOS)で実行した際にEL2(ハイパーバイザー)へ進入する動作を詳細に説明します。この過程で誘発される例外の動作方式についても分かりやすく説明します。

キャッシュの基本概念を説明し、マルチレベルキャッシュの基本構造とポリシーについて分かりやすく説明します。


メモリモデルとメモリバリアについて分かりやすく説明します。

仮想メモリシステムを構成する要素と、仮想アドレスが処理される実行フローについて説明します。

執筆・講義の経験を活かし、
誰よりも深く詳細に!

国内のシステムソフトウェア分野において前例のない!「Armアーキテクチャ(Armv8-A, Armv7-A)」と「Linuxカーネル」の本を執筆した著者です。また、最新のシステムソフトウェアトレンド(電気自動車、システム半導体-システムソフトウェア)を最も熟知している現職のエンジニアであり、システムソフトウェア分野で最も活発に知識の普及活動を行っている教育者でもあります。

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

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

  • 'プログラマーズ・デブコース:Linuxシステムおよびカーネルエキスパート' メイン講師(1〜2期)

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

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

国内の誰よりも、Armv8-Aアーキテクチャを構成する主要な機能を分かりやすく説明できる教育者であると、自信を持って申し上げます。

受講生たちが残したリアルな受講レビュー

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

受講前のご参考事項

予備知識および注意事項

  • 今回の講義は予備知識がなくても無理なくついていける講義です。

  • OSやコンピュータの構造に関する知識があれば、講義を理解するのに役立ちます。

  • 講義ではC言語の基本文法は習得しているものと想定し、サンプルコードの紹介と説明を行います。

  • 今回の講義で使用するTRACE32プログラムは提供しておりません。

    TRACE32教育用の実習プログラムをダウンロードして、アセンブリ命令を詳細にデバッグしたい方は、すでに公開されている「システムソフトウェア開発のためのArmアーキテクチャの構造と原理 - 第1部/第2部」の著者直講義を受講してください。

こんな方に
おすすめです

学習対象は
誰でしょう?

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

  • システムソフトウェア分野へキャリアチェンジしようとしている他分野の開発者

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

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

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

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

  • マイクロプロセッサ

  • CPU

  • 組み込み

  • C言語

  • オペレーティングシステム

  • コンピュータ構成論

こんにちは
austinkimです。

6,316

受講生

241

受講レビュー

96

回答

4.9

講座評価

22

講座

グローバル著者 & リナックスシステムソフトウェア開発者 (Arm, RISC-V アーキテクチャ)

国内のシステムソフトウェア分野において前例のない!「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出版), (Packt Publishing)

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

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

  • 「Programmers Dev Course:Linuxシステムおよびカーネル専門家」メイン講師

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

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

韓国国内で誰よりもリ눅스カーネルとArmアーキテクチャ(Armv8-A, Armv7-A)を分かりやすく説明できる教育者であると、自信を持って申し上げます。

講義に関するお問い合わせ:austindh.kim@gmail.com

主要ロードマップ 🎯

'システムソフトウェア開発者のためのArm - basic course'

'システムソフトウェア開発者のためのArm - advanced course'

システムソフトウェア開発者のためのLinux kernel - basic course

もっと見る

カリキュラム

全体

71件 ∙ (8時間 31分)

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

受講レビュー

全体

2件

5.0

2件の受講レビュー

  • heecheolsong님의 프로필 이미지
    heecheolsong

    受講レビュー 21

    平均評価 5.0

    5

    100% 受講後に作成

    • wjdrbs09140521님의 프로필 이미지
      wjdrbs09140521

      受講レビュー 2

      平均評価 5.0

      5

      31% 受講後に作成

      説明が詳細で、難しいテーマごとに簡単な例を挙げてくれるのがとても良いです。

      austinkimの他の講座

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

      似ている講座

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

      ¥7,018