1. 横河ディジタルコンピュータ ホーム > 
  2. 製品・サービス情報 > 
  3. ARM社純正 開発ツール > 
  4. ARMテクニカルトレーニング
ARM社純正開発ツール
  • 統合開発環境
  • デバッグハードウェア
  • 開発ボード
  • 製品一覧表
  • ARMトレーニング
  • ARM認定試験対策トレーニング
  • ARM純正製品 無料テクニカル相談会
  • ARMサポート
  • MDK-ARM MPU対応製品検索
  • DS-5評価版
  • MDK-ARM評価版
  • Linuxシステムチューニングのヒント MP3エンコーダをNEONで高速化!
  • CycloneVスタートアップガイド
  • お問い合わせ
  • お見積りのご依頼

ARMテクニカルトレーニング

ARMトレーニング

オープンコース

NEWARM Cortex-A-53MP ソフトウェア開発コース

日程:ARM Cortex-A53 MPソフトウェア開発コース
UNIT1 : 2017年3月7日 東京開催 ( ARMv8-Aアーキテクチャの導入 )
UNIT2 : 2017年3月8日 東京開催 ( ARMv8-Aメモリ管理 )
UNIT3 : 2017年5月18日 東京開催 ( ARMv8-A拡張機能とソフトウェア開発手法 )

時間:東京開催 9:00〜18:00

その他の開催日程は、開催日程表をご覧下さい。

コースの概要 ※各UNIT単体での受講が可能です。
このコースはARMv8-Aをベースとしたプラットフォームでソフトウェアを開発するエンジニア向けに設計されています。
コースは3つのユニットから構成されており、習熟度や習得したい内容にあわせて、自由に組み合わせて御受講頂けます。
◆ UNIT1 ARMv8-Aアーキテクチャの導入
ARMv8-Aアーキテクチャの導入と例外モデル、メモリ管理およびCortex-A53プロセッサの概要を学びます。
◆ UNIT2 ARMv8-Aメモリ管理
ARMv8-Aメモリモデル、キャッシュ、バリア、同期化、キャッシュコヒーレンシおよびOSサポートについて理解します。
◆ UNIT3 ARMv8-A拡張機能とソフトウェア開発手法
Cortex-A53/A57開発をに必要なブーティング処理や電源管理、ARMv8の仮想化やセキュリティ、GIC、デバッグについて学習します。
受講対象者 ARM Cortex-A53等、ARMv8-Aアーキテクチャベースのプロセッサコア向けのアプリケーション・ソフトを開発時に必要になる知識を習得したいソフトウェア技術者
履修条件 ・UNIT1、UNIT2、UNIT3:組込みシステムのソフトウェアに関する基礎的な知識があること
・UNIT1、UNIT2、UNIT3:ARMv7-Aアーキテクチャに関する知識があること
会場 東京会場(横河ディジタルコンピュータ株式会社 会議室)
東京都渋谷区代々木4-30-3 新宿MIDWESTビル6F
  ・JR線「新宿駅」南口より徒歩16分
  ・京王新線「初台駅」より徒歩6分
  ・小田急線「参宮橋駅」より徒歩10分
  ・大江戸線「都庁前駅」より徒歩14分
※アクセスはこちらをご覧下さい
お申し込み方法 「ARM テクニカル・トレーニングコースのお申込について」
受付終了: コース開催の1週間前まで
定員:   16名
受講料: 
 UNIT1 : 60,000円(税抜き)
 UNIT2 : 60,000円(税抜き)
 UNIT3 : 60,000円(税抜き)
※UNIT1およびUNIT2をご受講いただいたお客様は、UNIT3を20%OFFでご受講いただけます。
※受講料につきましてご不明な点がありましたらお問い合わせください。
お問い合わせ先 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 メモリモデル
  • メモリのモデル/アラインメント/仮想アドレス空間/複数の仮想アドレス空間/物理アドレス空間
  • 1.7 付録
  • ARMv8用語参考情報/REServedビットおよびv8アーキテクチャ/リセット時のシステムレジスタの内容/ARMv8-Aソフトウェアサポート
2 ARMv8-A AArch64 命令セットアーキテクチャ概要
  • 2.1 はじめに
  • はじめに/命令セット
  • 2.2 レジスタセット
  • 汎用レジスタ/スカラFPおよびSIMDレジスタ/システムレジスタ
  • 2.3 ロード/ストア
  • レジスタのロードとストア/例:バイトロード/ロードおよびストアアドレスの指定/アドレス指定モード/浮動小数点のロードおよびストア/ロードおよびストアのレジスタペア/PCの使用
  • 2.4 データ処理およびフロー制御
  • データ処理/シフトとローテート/ビット操作/拡張/乗算と除算/分岐/条件実行/ALUフラグの設定/ALUフラグの使用/条件分岐/条件付操作/条件付実行の例
  • 2.5 スカラ浮動小数点とSIMD
  • 浮動小数点の操作/SIMDの操作/ベクタ
  • 2.6 付録
  • A32からの主な違い/ロードサイズレジスタの指定/条件コード/AArch64の暗号化命令
3 ARMv8-A AArch64 例外モデル
  • 3.1 AArch64例外モデル
  • 例外レベル/AArch64例外/例外と取得/例外の経路/PSTATEとSPSR/例外ステートの変更/例外の戻りアドレス/例外のスタック/AArch32レジスタマッピング/AArch64ベクタテーブル
  • 3.2 割込み
  • 割込みの取り扱い/GIC/簡単な割込みの例/簡単な割込みハンドラの例/ネストされた割込みの例/ネストされた割込みハンドラの例/例外の戻りアドレス/例外のスタック/AArch32レジスタマッピング/AArch64ベクタテーブル
  • 3.3 割込みの同期
  • 割込みの同期/システムコール/割込み同期の取り扱い/例外の一連のレジスタ
  • 3.4 SError例外
  • SError例外
  • 3.5 EL2およびEL3の例外
  • EL2/EL3へのシステムコール/EL2およびEL3への例外の経路/例/EL3のシステムの例(非セキュア)/EL3のシステムの例(セキュア)
4 ARMv8-Aメモリ管理
  • 4.1 メモリ管理理論
  • メモリ管理が必要な理由/仮想アドレス指定とは/メモリ管理ユニットとは/物理アドレスのフォーマット/多重レベルの変換テーブル
  • 4.2 EL1/0での第一変換
  • ARMv8-A変換テーブル/AArch64変換テーブル/AArch64テーブル記述フォーマット/4KB単位のAArch64テーブル/16KB単位のAArch64テーブル/64KB単位のAArch64テーブル/アプリケーションおよびカーネル空間ごとの個々のテーブル/変換制御レジスタ/レベル1ルックアップの設定/変換テーブルのキャッシュ/連続するブロックエントリ
  • 4.3 EL2/EL3での変換
  • 変換テーブルの概要/ステージ2変換(IPA  PA)/ステージ1変換EL2およびEL3/セキュアワールドの変換テーブル
  • 4.4 TLBのメンテナンス
  • 変換テーブルの変更例/AArch64命令
5 Cortex-A53プロセッサ概要
  • 5.1 Cortex-A53のイントロダクション
  • Cortex-A53の機能/Cortex-A53の構成/ARMv8-Aアーキテクチャ/ソフトウェアサポート/パフォーマンスモニタリングユニット(PMU)/デバッグとトレース/汎用タイマアーキテクチャ
  • 5.2 Cortex-A53の新しい機能
  • ARMv7-A CPU以降の新しい機能/ARMv8-A A64の概要/AArch64特権モデル/ARMV8-Aの高度なSIMDおよびFP/MMUサポート/AMBA 5 CHIバスアーキテクチャ/ARMv8デバッグ/Cortex-A53割込みハンドラ/参照マテリアル
UNIT2 ARMv8-Aメモリ管理
1 ARMv8-Aメモリモデル
  • 1.1 ARMv8-Aメモリモデル
  • メモリモデル/属性の指定方法/階層の属性
  • 1.2 タイプ
  • メモリタイプ/メモリタイプ(ノーマル)/メモリタイプ(デバイス)/デバイスアクセスの順序/言語認識/タイプの指定
  • 1.3 属性
  • キャッシュの属性/共有/アクセス許可/実行可能/アクセスフラグ/グローバル・非グローバル変換/ASID/予約ビット/NS属性
  • 1.4 アラインメントとエンディアン
  • アラインメント/AArch64のエンディアン
  • 1.5 タグ化されたポインタ
  • タグ化されたポインタ/Linuxのアクセスフラグの例/ADIDのショート記述子フォーマット
2 ARMv8-A キャッシュと分岐予測
  • 2.1 一般的なキャッシュの情報
  • キャッシュ/どのようにキャッシュにデータが格納されるか/ どのようにキャッシュアクセスされるのか?/32KB L1 ARMデータキャッシュの例/レベル1およびレベル2キャッシュの相互利用/分岐予測
  • 2.2 キャッシュの属性
  • キャッシュのポリシー/ライトバックとライトスルー/内部と外部/投機とプリロード
  • 2.3 キャッシュのメンテナンス操作
  • キャッシュのメンテナンス/PoUとPoCおよびキャッシュメンテナンス/PoUとPoCの比較/AArch64命令/メンテナンスブロードキャスト/メンテナンスブロードキャスト-AArch64
  • 2.4 キャッシュディスカバリ
  • キャッシュディスカバリコード/統合されていないキャッシュ/付録:AArch32ニーモニック/付録:メンテナンスブロードキャスト-AArch32/キャッシュ無効の際の挙動/付録:命令キャッシュのポリシー
3 ARMv8-Aのバリア
  • 3.1 ARMv8-Aのバリア
  • メモリモデル/なぜアクセス順序をケアしなければならないのか?/バリア
  • 3.2 データバリア
  • DMB vs DSB/DMB/DSB/相違点の観察/DMBおよびDSB修飾子/バリア修飾子/メイルボックスの例/バリアの影響/メモリマップドペリフェラル/一方通行のバリア
  • 3.3 命令バリア
  • ISB/ISBの例/変換テーブル変更の例/自己修正コード/付録:コンパイラバリア
4 ARMv8-A同期化
  • 4.1 ARMv8-A同期化
  • メモリタイプ/アトミックな処理/クリティカルセクション/シンプルなロックの実装/同期化命令/どのように動作するか/AArch64のlock()の例/AArch64のunlock()の例/マルチスレッドのロックの例
  • 4.2 ローカルおよびグローバルの排他モニタ
  • 排他モニタはどこにある?/コンテキストスイッチ/排他モニタの単位/ココヒーレントロックの例/プログラムはスマートでなければならない/付録:ARM Linuxの例/AArch64 Linuxの例/AArch32 Linuxの例
5 ARMv8-Aキャッシュコヒーレンシ
  • 5.1 コヒーレンシの紹介
  • キャッシュコヒーレンシとは?/ソフトウェアとハードウェアのコヒーレンシ/進化したARMコヒーレンシサポート/Cortex-Aファミリのコヒーレンシ/ACEシステムレベルコヒーレンシ/GPUとDMAのシステムコヒーレンシ/変換テーブルの共有化/ソフトウェアの共有化/big.LITTLE実装の例/
  • 5.2 コヒーレンシの詳細-マルチコアプロセッサ
  • コヒーレンシ:実装の詳細/MPCoreのコヒーレンシ管理/コヒーレンシロジック/キャッシュコヒーレンシロジックの例
  • 5.3 コヒーレンシの詳細-マルチプロセッサシステム
  • マルチクラスタコヒーレンシ/コヒーレンシの例:リード/コヒーレンシの例:ライト/バリア/バリアとACE
6 ARMv8-A OSサポート機能
  • 6.1 コンテキストスイッチ
  • 変換テーブルの分割/グローバル/非グローバル変換/ASID/スレッドレジスタ
  • 6.2 変換テーブルの変更
  • 変換テーブル変更の例/変換テーブルのキャッシュ/アクセスフラグ/予約ビット/ポインタのタグ化
  • 6.3 特権エスカレーション保護
  • 実行可能か?/非特権でのロードとストア/
  • 6.4 タイマ
  • システムタイマ/EL1/0のシステムタイマレジスタ
  • 6.5 付録
  • Linuxのテーブル変更の例/Linuxのアクセスフラグ変更の例/ASIDのショートディスクリプタフォーマット
UNIT3 ARMv8-A拡張機能とソフトウェア開発手法
1 Cortex-A53 ソフトウェアガイド
  • 1.1 Cortex-A53 ソフトウェアガイド
  • 概要/構成オプション/パイプライン/分岐予測リソース/キャッシュ概要とデータキャッシュコヒーレンシ/メモリ管理/その他のマイクロアーキテクチャ機能/割り込みとバスインターフェイス/デバッグとタイマ/電力管理
2 Cortex-A53/A57のブート処理
  • 2.1 Cortex-A53/A57のブート処理
  • Cortex-A5xのパワーオンリセット/ブート時のプロセッサ状態/AArch64 および AArch32 のブートシーケンス/AArch64のリセット時の動作/例外レベル/リセット後のプロセッサセットアップ/ベクタテーブルとスタック/FPとSIMD/キャッシュとMMU/MPブート処理/CPU識別方法
3 Cortex-A SW電力管理
  • 3.1 電力概要
  • 電力概要/消費電力/削減テクニック/ドメイン/モードとインターコネクト/エネルギーコスト
  • 3.2 プロセッサ電力モード
  • ARMプロセッサの電力モード/スタンバイモード/スタンバイモードの使用ケースと考慮/WFEを使ったスタンバイモードへの移行/プロセッサパワーダウン/パワーダウンの例/バリアと電力モード/電力モードの移行/パワーダウンモード継続のポイント
  • 3.3 マルチプロセッサとシステム電力モード
  • マルチプロセッサの電力モード/L2 キャッシュの電力考慮/パワーダウンモードの例/パワーダウンのためのL2キャッシュ準備/SoCとシステムのパワーダウン
  • 3.4 Cortex-A5 と Cortex-A9 の電力モード
  • Cortex-A9/-A5 の考慮点/Cortex-A9のドーマントモード例/PL310 L2 キャッシュ/NEON電力制御オプション
4 ARMv8 仮想化
  • 4.1 仮想化とは?
  • 仮想化とは?/サーバー/自動化/BYOD/ハイパーバイザ
  • 4.2 ARM仮想化サポート
  • ARMv8-Aの仮想化/命令とレジスタのトラップ/2ndステージの変換/2ndステージのメモリ管理/変換制度/2ndステージの変換オーバーヘッド/VMID/デバイス割り込みルーチン/仮想化例外/EL2/ハイパーバイザへの例外ルーチン/仮想例外/GICv2 仮想割り込み/バーチャル割り込み信号(GIC/内部)
  • 4.3 付録
  • ARMv7-A から ARMv8-A への変更
5 ARMv8 セキュリティ
  • 5.1 ソフトウェアスタック
  • セキュリティが必要な理由と攻撃の種類/ソフトウェアスタック/各ワールドの通信方法/セキュアモニタ/トラストブート/マルチコアトポロジー/セキュアワールドのスケジューリング
  • 5.2 メモリシステム
  • 物理アドレス空間/キャッシュとTLB/システム例
  • 5.3 デバッグ
  • デバッグ構成/デバッグ認証
  • 5.4 TBSA
  • TBSAとは/TBBR 機能
6 GIC プログラミング (GICv2)
  • 6.1 分配とCPUインタフェース
  • GICアーキテクチャ/割り込みタイプ/レジスタ・インターフェイス/分配インターフェイス/CPUインターフェイス/プログラミングガイドライン
  • 6.2 割り込みのイネーブルおよび設定方法
  • ICの有効化/割り込み設定
  • 6.3 割込み処理方法
  • 割込み状態/割り込み発生/どのCPUがSPIをサービスするか/優先度マスクレジスタ/割り込み優先度レジスタ/優先度実行/プリエンプション/割り込みのネスティング
  • 6.4 ソフトウェア割り込みを送信する方法
  • SGI性能/SGIの送信/SGIの受信
  • 6.5 セキュリティ拡張
  • セキュリティ拡張(TrustZone)/割り込み承認/優先度とバンク
7 ARMv8 デバッグ
  • 7.1 デバッグインターフェイス
  • デバッグインターフェイス/デバッグロジックへアクセスする方法/デバッグのタイプ
  • 7.2 侵襲性デバッグ
  • ホスト対セルフ-ホスト/メモリの見え方/キャッシュに対するデバッガの影響/命令ブレークポイントタイプ/ブレークポイント比較/例外キャッチ
  • 7.3 非侵襲性デバッグ
  • パフォーマンスモニタリングハードウェア/イベントとフィルタリング/トレース概要/トレースシステム例

ページの先頭へ