Arm® Cortex®-A53/A55 ソフトウェア開発トレーニングコース(オンライン)
- 日程:※オンラインにて開催致します
- UNIT1 :2025年1月22日(水) 9:00~18:00 (Armv8-Aアーキテクチャの概要とメモリモデル)
- UNIT2 :2025年1月23日(木) 9:00~18:00 (キャッシュ、分岐予測、同期化、電力管理とArmv8-A拡張機能)
- UNIT3 :2025年1月24日(金)13:00~17:00(Armv8-Aコアのブーティングと各コアの特徴およびDSU)
(Cortex-A55を含む、2.5日のコースになりました)
※終了時間は進行状況により若干変動する可能性があります。
コースの概要
※各UNIT単体での受講が可能です。
このコースはArmv8-Aをベースとしたプラットフォームでソフトウェアを開発するエンジニア向けに設計されています。
コースは3つのユニットから構成されており、習熟度や習得したい内容にあわせて、自由に組み合わせて御受講頂けます
UNIT1 Armv8-Aアーキテクチャの概要とメモリモデル
Armv8-Aアーキテクチャの導入とメモリモデル、バリアについて学習します。
UNIT2 キャッシュ、分岐予測、同期化、電力管理とArmv8-A拡張機能
キャッシュの分岐予測・コヒーレンシ、同期化、電源管理、Armv8の仮想化やセキュリティについて学習します。
UNIT3 Armv8-Aコアのブーティングと各コアの特徴およびDSU
Armv8-Aのブート処理、Cortex-A53 MPCore/A55 各コアの特徴、DynamIQ Shared Unit (DSU) について学習します。
受講対象者
- Arm Cortex-A53/A55等、Armv8-Aアーキテクチャベースのプロセッサコア向けのアプリケーション・ソフトを開発時に必要な知識を習得したいソフトウェアエンジニア
履修条件
- マイコンについて基礎的な理解があること(メモリマップ、レジスタ、割り込み、内蔵メモリの概念等)
- アセンブラやCプログラミングについて知識があること(C言語、アセンブリ言語でプログラムの作成経験がある等)※必須ではありません
- 組込みシステムのソフトウェアに関する基礎的な知識があること
- Armv7-Aアーキテクチャに関する知識があること
オンライン開催にあたり
- Web会議サービス(Zoom)で開催します。
- ブラウザでのご参加は「Google Chrome」のみ対応しています。
※Google Chromeの使用ができない場合は、Zoomアプリのインストールが必要になります。
※Zoomのアカウントの取得は必須ではございません。
お申し込み方法
受付終了:2025年1月15日(水)18:00まで
受講料:UNIT1: 60,000円(受講者1名様/税抜き) UNIT2: 60,000円(受講者1名様/税抜き) UNIT3: 40,000円(受講者1名様/税抜き)
- 各UNIT単体での受講が可能です。
下記コース名をクリックしてお申し込みフォームからお申込みください。
※同業者様等のお申し込みについてはお断りする場合もございます。
「Arm® Cortex®-A53/A55 ソフトウェア開発トレーニングコース」
お支払方法
請求書はお申し込みいただいた講座の開催が確定した後、講座の開催月にお申込書に記載されたお申込者様宛にお送りいたします。
請求書に記載される期日(請求書の発行月末締め翌月末振込み)に受講料を弊社指定銀行へお振込ください。
(振込手数料は振込者がご負担下さい。)
支払い処理について上記の方法以外をご希望の場合、 Armトレーニング事務局までご連絡下さい。ご相談に応じます。
お問い合わせ先
Armトレーニング事務局
TEL : 03-6756-9405
E-mail : arm_training@dts-insight.co.jp
コース内容
UNIT1 Armv8-Aアーキテクチャの概要とメモリモデル
1 アーキテクチャ概要 Armv8-A
- 1.1 Arm アーキテクチャバージョン
Armアーキテクチャの開発/Armv8-Aの新機能とは? - 1.2 特権レベル
AArch64特権モデル/AArch32特権モデル/AArch32とAArch64間の遷移 - 1.3 AArch64レジスタ
レジスタバンク/その他のレジスタ/プロセッサの状態/プロシージャコール標準/AArch64とAArch32間のレジスタマッピング/システム制御/いくつかの重要なシステムレジスタ - 1.4 A64命令セット
A64の概要 - 1.5 AArch64 例外モデル
AArch64の例外/例外の受付 - 1.6 AArch64 メモリモデル
メモリタイプ/アラインメント/仮想アドレス空間/複数の仮想アドレス空間/物理アドレス空間/MPCore コンフィギュレーション
2 A64 ISA概要 Armv8-A
- 2.1 はじめに…/命令セット
- 2.2 レジスタ
汎用レジスタ/スカラFPとSIMDレジスタ/システムレジスタ - 2.3 ロードとストア
レジスタのロード/ストア/例:バイトロード/ロード/ストアのアドレスの指定/アドレッシングモード/浮動小数点のロードおよびストア/レジスタペアのロード/ストア/PCの使用 - 2.4 データ処理とフローの制御
データ処理/シフトとローテート/ビット操作/拡張/乗算と除算/分岐/条件付き実行/ALUフラグの設定/ALUフラグの使用/条件付き分岐/条件付き処理/例:条件付き実行 - 2.5 スカラ浮動小数点とSIMD
浮動小数点の操作/SIMD操作/ベクタ
3 AArch64 例外モデル Armv8-A
- 3.1 AArch64例外モデル
例外レベル/AArch64例外/例外の受付/例外のルーティング/PSTATEとSPSR/実行状態の変更/例外のリターンアドレス/例外スタック/AArch32レジスタマッピング/AArch64ベクタテーブル - 3.2 割込み
割込みのハンドリング/汎用割込みコントローラ(GIC)/単純な割込みの例/ 単純な割込みハンドラの記述例/ネストされた割り込みの例/ネストされた割り込みハンドラの記述例 - 3.3 同期例外
同期例外/システムコール/同期例外のハンドリング/Exception Syndrome Register - 3.4 SError例外
SError例外 - 3.5 EL2およびEL3の例外
EL2/EL3へのシステムコール/EL2およびEL3への例外のルーティング/EL3への例外ルーティング例/EL3を使用したシステム例 – 非セキュア/EL3を使用したシステム例 – セキュア
4 メモリ管理 Armv8-A
- 4.1 メモリ管理が必要な理由/仮想アドレッシングとは?/メモリ管理ユニット(MMU)とは?/ 物理アドレスはどう構成されるか/複数レベルの変換テーブル
- 4.2 EL1/0でのステージ1変換
Armv8-A変換テーブル/AArch64変換テーブル/AArch64テーブル記述フォーマット/AArch64 4KB 変換単位のテーブル/AArch64 16KB 変換単位のテーブル/AArch64 64KB 変換単位のテーブル/アプリケーション/カーネル空間用に分離したテーブル/変換制御レジスタ/レベル1ルックアップの設定/変換テーブルのキャッシュ/連続するブロックエントリ - 4.3 EL2/EL3での変換
変換テーブルの概要/ステージ2の変換(IPA → PA)/EL2/3 におけるステージ1の変換/セキュアワールドの変換テーブル - 4.4 TLBのメンテナンス
変換テーブル変更の例/AArch64命令
5 メモリモデル Armv8-A
- 5.1 Armv8-Aメモリモデル
メモリモデル/属性を指定する方法/階層的な属性 - 5.2 タイプ
メモリタイプ/メモリタイプ:ノーマル/メモリタイプ:デバイス/デバイスアクセスの順序/タイプの指定/デバイスメモリの強弱 - 5.3 属性
キャッシュ可能/共有可能/ノーマルメモリの動作と保証/アクセスパーミッション/実行可能/アクセスフラグ/グローバル/ノン・グローバル変換/ASID/予約ビット/物理アドレス空間 - 5.4 アラインメントとエンディアン
アラインメント/AArch64のエンディアン - 5.5 タグ付きのポインタ
ポインタのタグ化
6 バリア Armv8-A
- 6.1 Armv8-Aのバリア
メモリモデル/なぜアクセス順序が重要なのか?/バリア - 6.2 データバリア
DMB vs DSB/DMB/DSB/異なるオブザーバー/DMBとDSBの修飾子/バリア修飾子/ Mailboxの例/バリアをまたぐ投機/メモリマップされたペリフェラル/”一方通行”のバリア - 6.3 命令バリア
ISB/ISBの例/変換テーブル変更の例/自己修正コード
UNIT2 キャッシュ、分岐予測、同期化、電力管理とArmv8-A拡張機能
7 キャッシュと分岐予測 Armv8-A
- 7.1 一般的なキャッシュの情報
キャッシュ/データはどのようにキャッシュへ保存される?/キャッシュのアクセス方法は?/例:32KB 2way L1データキャッシュ/Level1およびLevel2キャッシュの相互作用/分岐予測 - 7.2 キャッシュの属性
キャッシュポリシー/ライトバックとライトスルー/内部と外部/投機とプリロード - 7.3 キャッシュメンテナンス操作
キャッシュメンテナンス/PoUとPoCおよびキャッシュメンテナンス/PoUとPoCの比較/AArch64命令/メンテナンス ブロードキャスト/メンテナンス ブロードキャスト-AArch64 - 7.4 キャッシュの検出
キャッシュ検出コード/非統合キャッシュ
8 キャッシュコヒーレンシ Armv8-A
- 8.1 コヒーレンシの概要
キャッシュコヒーレンシとは?/Armコヒーレンシサポートの進化/変換テーブル内の共有属性/Cortex-Aファミリーにおけるコヒーレンシ/AMBA 4 ACEおよびAMBA 5 CHI/GPUとDMAのシステムコヒーレンシ - 8.2 コヒーレンシの詳細-マルチコアプロセッサ
コヒーレンシ実装の詳細/MPCoreコヒーレンシ管理/コヒーレンシロジック/キャッシュコヒーレンシロジックの例 - 8.3 コヒーレンシの詳細-マルチプロセッサシステム
マルチクラスタコヒーレンシ/コヒーレンシの例:読み出し/コヒーレンシの例:書き込み
9 同期化 Armv8-A
- 9.1 イントロダクション
アトミック操作の競合/クリティカルセクション/シンプルなロックの実装 - 9.2 Armv8-A同期化
同期化命令/どのように動作するのか?/AArch64 lock()の例/AArch64 unlock()の例/マルチスレッドのロックの例 - 9.3 ローカルおよびグローバルの排他モニタ
排他モニタはどこにある?/コンテキストスイッチ/排他モニタの単位/コヒーレントロックの例/WFE/プログラムはスマートでなければならない
10 Cortex-A 電力管理 Armv8-A
- 10.1 イントロダクション
なぜ電力管理が必要ですか?/何が消費電力に影響を与えますか?/電力管理のタイプ (Linux) - 10.2 電力概要
Arm コア - 実行/Arm コア - スタンバイ/Arm コア - シャットダウン/スタンバイモード/スタンバイの用途と考慮点/シャットダウンモード - 10.3 電力制御
電力の制御/シャットダウンモードへの移行/パワーアップシーケンス/復帰不能点(Point of no return)/Dynamic retention - 10.4 Arm マルチコアプロセッサの電力モード
Arm MPCore プロセッサ/Arm MPCore プロセッサ - L2 Retention/Arm MPCore プロセッサ - シャットダウン/Arm MPCore プロセッサ - L2 ドーマント/パワーダウン後のデバッグ - 10.5 電力状態の調整
電源管理は誰が行いますか?/Power State Coordination Interface (PSCI)/PSCIの例/PSCI 呼び出しを行うと何が起きますか?
11 セキュア環境 Armv8-A
- 11.1 なぜセキュアな環境を必要としますか?
なぜセキュアな環境を必要としますか?/何を保護しますか?/何から保護しなければなりませんか?/保護すべきものの価値は?/例: ファームウェア/OS アップデート/例: ファイルシステム - 11.2 ソフトウェアスタック
TrustZoneソフトウェアスタックはどのように見えるか?/スケジューリング/トラステッドブート/例:Arm Trusted Firmware + OP-TEE - 11.3 システムアーキテクチャ
メモリシステムサポート/どのシステムリソースが必要ですか?/TBSAおよびTBBR
12 仮想化 Armv8-A
- 12.1 仮想化とは?
仮想化とは?/なぜ仮想化が必要か? - サーバー/自動車/BYOD/タイプ1および2ハイパーバイザ - 12.2 Arm 仮想化サポート
Arm v8-Aの仮想化/命令/レジスタトラップ - 12.3 メモリ管理
2段階の変換/ステージ2 メモリ管理/変換の形態/ステージ2 変換のオーバーヘッド/VMID - 12.4 例外の取り扱い
デバイス割り込みのルート/例外の仮想化/EL2/ハイパーバイザへの割り込みルート/仮想例外/仮想割り込み(GICv2 & GICv3)/仮想割り込み信号(GIC)/仮想割り込み信号(内部)
UNIT3 Armv8-Aコアのブーティングと各コアの特徴およびDSU
13 ブーティング Armv8-A
- 13.1 イントロダクション
ブーティングとは? - 13.2 AArch64 でのArmv8-A プロセッサのブーティング
コールドリセット時のプロセッサ状態/ウォームリセット時のプロセッサ状態/より低い例外レベルへの遷移/例: EL3からEL2への遷移/Saved Program Status Register/ブートコードは何を行いますか?/CPU 固有のパワーアップとパワーダウンシーケンス/浮動小数点/SIMD の有効化/MMU とキャッシュの有効化/追加の考慮点 - 13.3 マルチコアおよびマルチプロセッサシステムのブーティング
マルチコアプロセッサ/マルチプロセッサシステム/Cache coherent interconnects - 13.4 実環境でのブーティング
単純なブートシーケンス/複雑なシステムのブーティング/Trusted Firmware-A/ブートローダのステージ/Arm Trusted Firmware アーキテクチャ/Arm Trusted Firmware の使用
14 Cortex-A53 MPCoreソフトウェアエンジニアガイド
- 14.1
概要/構成オプション/HW構成オプション/Cortex-A53パイプライン/分岐予測リソース/キャッシュ概要/データキャッシュコヒーレンシ/メモリ管理/その他のマイクロアーキテクチャ機能/割り込みおよびバスインタフェース/デバッグおよびタイマ/電力管理
15 Cortex-A55ソフトウェアエンジニアガイド
- 15.1
Cortex-A55 CPU/L1キャッシュの概要/L2キャッシュの概要/L1/ L2キャッシュアロケーション(命令フェッチ)/L1/L2キャッシュアロケーション(データアクセス)/コアとクラスタのキャッシュポリシー/System Control Register (SCTLR)/メモリシステム/AArch64 PRFM (prefetch memory) 命令/Non-temporal loadとstore/Writebackアロケーションのヒント/ECCおよびパリティエラー検知と修正
16 DynamIQ Shared Unit (DSU) ソフトウェアエンジニアガイド
- 16.1
DynamIQ Shared Unit (DSU)/CPU ブリッジ/CPU キャッシュ/DSU スヌープフィルタと L3/L3 キャッシュアロケーション/DSU メモリインターフェイス/デバッグとトレース/電源管理