アーキテクチャを学ぶ - Aプロファイル

ArmのCPUとシステムアーキテクチャに関するその他のガイドをご覧いただけます。

 

アーキテクチャを学ぶ - Aプロファイル

アーキテクチャの基礎

Armアーキテクチャの紹介

これはArmアーキテクチャについての入門ガイドです。

AArch64例外モデル

このガイドではAArch64の例外モデルおよび特権モデルについて紹介し、割り込み - SError、IRQ、FIQ - 仮想例外を含む、例外レベル - EL0、EL1、EL2、EL3 - 同期例外・非同期例外について説明します。

AArch64命令セットアーキテクチャ(ISA)

このアーキテクチャを学ぶガイドでは、AArch64で使用されるA64命令セットについて紹介します。

AArch64仮想化

このガイドでは、基本的な仮想化理論、ステージ2変換、仮想例外、トラップなど、Armv8-AおよびArmv9-A AArch64の仮想化サポートについて紹介し、Armのネストされた仮想化、Arm VHE、Secure EL2、Arm VMIDについて説明します。

AArch64汎用タイマー

このガイドでは、AプロファイルPE用のタイマーフレームワークであるArm汎用タイマーについて紹介します。

Armv7-A Cortex-Aプログラマー向けガイド

本書では、Armv7-Aアーキテクチャに準拠したArm Cortex-Aシリーズプロセッサーを使用するプログラマー向けに、Armテクノロジーを紹介します。

Armv8.xおよびArmv9.xの拡張機能を理解する

このガイドでは、Armアーキテクチャの拡張機能について説明し、その読み方や使い方のガイダンスを提供します。また、Armv9-AとArmv8-Aの違いについても説明します。

メモリー管理とメモリーモデル

AArch64メモリ管理

このアーキテクチャを学ぶガイドでは、仮想アドレスから物理アドレスへの変換を制御するために使用されるArm MMUについて紹介します。

AArch64メモリーの属性と特性

このガイドは、Armv8-AおよびArmv9-Aにおけるメモリーの属性と特性について紹介しています。

メモリシステム、オーダリング、バリア

このガイドでは、Armv8-AおよびArmv9-Aアーキテクチャで定義されているメモリオーダリングモデルについて紹介します。

メモリモデルツールの使用

Armのメモリモデルツールの詳細、動作例、リトマステストの自動生成方法について説明します。

Armトランザクショナルメモリ拡張機能(Arm TME)の概要

このガイドでは、Armv9-Aで導入されたトランザクショナルメモリのサポートについて説明します。

ベクトルおよびマトリクス処理

Neonプログラマー向けガイド

このガイドシリーズでは、Neonを紹介し、組み込み関数を使用してCコードを最適化する方法、およびコンパイラを使用してArmv8-A Advanced SIMD命令を含むコードを自動生成する方法について説明します。

SVEとSVE2のプログラミング例

このガイドでは、SVE(スケーラブルベクタ拡張)とSVE2(スケーラブルベクタ拡張バージョン2)について、豊富なコード例を交え詳しく解説し、ソフトウェア開発者がソフトウェアでSVEまたはSVE2を説明する方法を示します。

SMEプログラマー向けガイド

このガイドで紹介するScalable Matrix Extension(SME)は、マトリクスオペレーションを加速させるためのArmによるアーキテクチャソリューションです。このガイドではSMEとSME2について説明しています。

Neonの紹介

このガイドでは、Armv8-A、Armv9-A、Armv8-R実装のための高度なSIMD(シングルインストラクション・マルチプルデータ)アーキテクチャの拡張機能である、Arm Neonテクノロジーを紹介します。

Neon組み込み関数を使用したCコードの最適化

このガイドでは、Armv8-AおよびArmv9-AアーキテクチャでAdvanced SIMDテクノロジーを活用するため、CまたはC++のコードでArm Neon組み込み関数を使用する方法を説明します。

自動ベクトル化を使用したNeon向けのコンパイリング

このガイドでは、Armコンパイラ6およびCLANGの自動ベクトル化機能を使用して、Armv8-AおよびArmv9-AのAdvanced SIMD命令を含むコードを自動生成する方法について説明します。

NeonからSVEへの移行

このガイドでは、SVEとNeonについて焦点を当て、Armv8-AおよびArmv9-A命令セットのSVE(スケーラブルベクタ拡張)とAdvanced SIMDアーキテクチャ拡張機能(Neon)の違いについて説明します。また、両コーディングのベストプラクティスについても紹介します。

SVEとSVE2

このガイドでは、Armv9-Aアーキテクチャの一部であるSVE2(スケーラブルベクタ拡張バージョン2)について紹介し、この拡張機能の概念、主な機能、アプリケーションドメイン、SVE2用プログラムの開発方法について説明します。

SVE最適化ガイド

このガイドでは、CおよびC++コードでSVEを使用する方法と、いくつかの基本的な最適化を実行する方法について説明します。

SVEとNeonのコーディング比較

このガイドでは、SVE(スケーラブルベクタ拡張)用のコーディングとNeon用のコーディングの重要な違いについてまとめています。また、すでにArmv8-A Neonハードウェアにアプリケーションを移植しているユーザー向けに、SVEにアプリケーションを移植する際に考慮すべき重要な違いについても取り上げています。

GICとSMMU

汎用割り込みコントローラv3およびv4 - 概要

このガイドでは、汎用割り込みコントローラ(GIC)の概要、Arm GICv3準拠の割り込みコントローラの動作、ベアメタル環境で使用するための設定について説明します。

汎用割り込みコントローラv3およびv4、LPI

このガイドでは、GICv3/v4で導入された割り込みの一種であるLPI(Locality-specific Peripheral Interrupts)について紹介します。

汎用割り込みコントローラv3およびv4 - 仮想化

このガイドでは、GICv3およびGICv4アーキテクチャにおける仮想化のサポートについて紹介し、仮想割り込みの生成と管理にハイパーバイザーが利用できる制御について説明します。

SMMUソフトウェアガイド

このガイドは、Armシステムメモリー管理ユニットバージョン3(SMMUv3)の基本操作と、SMMUv3のユースケースについて説明しています。

セキュリティ

AArch64のTrustZone

このガイドでは、CPUに組み込まれたハードウェア強制分離による効率的なシステム全体のセキュリティアプローチである、Arm TrustZoneアーキテクチャを紹介します。

複雑なソフトウェアに対する保護の提供

このガイドでは、ROP攻撃やJOP攻撃などのソフトウェア攻撃を軽減するための、Armv8-AおよびArmv9-Aの機能を検証し、ポインタ認証、分岐ターゲット認証、メモリタギングについて説明します。

Android OS向けMTEユーザーガイド

このガイドでは、メモリタギング拡張機能(MTE)について紹介します。MTEを使用してソフトウェアの堅牢性とセキュリティを高める方法を開発者向けに説明しています。

Arm Confidential Compute Architectureの紹介

このガイドでは、コンフィデンシャルコンピューティングの原理を説明し、Arm Confidential Compute Architecture(Arm CCA)がArmコンピュートプラットフォームでコンフィデンシャルコンピューティングを実現する方法について説明します。

Realm Management Extension

このガイドでは、Arm Confidential Compute Architectureのハードウェアコンポーネントであり、Armv9-Aで導入されたArm Realm Management Extension(RME)を紹介します。

Arm Confidential Compute Architectureソフトウェアスタック

このガイドでは、Arm Confidential Compute Architectureがコンフィデンシャルコンピューティングの環境を提供するために導入または変更する、主なソフトウェア機能について説明します。

デバッグとトレース

AArch64セルフホステッドデバッグ

このガイドでは、アプリケーションクラスプロセッサー向けのArmアーキテクチャに組み込まれたArmv8-AおよびArmv9-Aのデバッグアーキテクチャを紹介します。

AArch64外部デバッグ

このガイドでは、Armv8-AおよびArmv9-Aの外部デバッグの概要と、アーキテクチャがサポートする外部デバッグ機能について説明します。

CoreSightの紹介:デバッグとトレースのインフラストラクチャ

このガイドでは、Arm CoreSightアーキテクチャによって提供されるデバッグとトレースのインフラストラクチャサポートを紹介します。

Armv8-Aでデバッグする前に

このガイドでは、さまざまな種類のデバッグ、ターゲットの種類、ターゲットの状態など、Armv8-Aプロセッサーをデバッグする前に知っておくと便利な概念について説明します。

Armv8-Aでのデバッガーの使用

このガイドでは、Armv8-Aアーキテクチャをターゲットとするベアメタルデバッガーの一般的な特徴に焦点を当てます。また、デバッガーを使用する際に知っておくべきことや、デバッガーを使用した場合に起こりうる結果についても説明します。

Armv9-Aトレースを理解する

このガイドでは、Armv9-Aシステムにおけるトレースについて、トレースがどのように機能し、使用されるかを含め、ハイレベルな説明を提供します。

Statistical Profiling Extension(SPE)を使用したSoCテレメトリとパフォーマンス分析

このブログは、ソフトウェア開発者、パフォーマンスアナリスト、シリコンエンジニア向けに、パフォーマンス分析と根本原因分析にSPEを使用する概念を紹介するものです。

MPAM

MPAM(Memory System Resource Partitioning and Monitoring)の概要

本ガイドでは、Armアーキテクチャのオプションとして追加された、メモリシステムのパーティショニングをサポートするMPAM(Memory System Resource Partitioning and Monitoring)を紹介します。

Memory System Resource Partitioning and Monitoring(MPAM)ソフトウェアガイド

このガイドは、Memory System Resource Partitioning and Monitoring(MPAM)の一部を構成するファームウェアとソフトウェアについて説明しています。

Memory System Resource Partitioning and Monitoring(MPAM)ハードウェアガイド

このガイドでは、MPAMシステムのシステムレベル設計における検討事項と、Arm MPAM IPに導入されている管理インターフェイスについて紹介しています。

RAS

RAS(信頼性、可用性、サービス性)の概要

このガイドでは、堅牢性と信頼性に優れたコンピューターシステムの3つの重要な属性である、RAS(信頼性、可用性、サービス性)について紹介します。

ソフトウェア開発

初めての埋め込みイメージ構築

このガイドでは、プログラムのコンパイリング、メモリマップの指定、モデルを使用したイメージの実行など、埋め込みイメージの作成方法について説明します。

ブート:ベアメタル

新しいガイドを現在作成中です。準備が整うまで、アプリケーションノート「Armv8-Aプロセッサーのベアメタルブートコード」をお読みください。

DOT命令でDSP機能を加速

このブログでは、Armv8.4-Aドット積命令の3つのユースケースについて説明し、これらの命令を使用してVP9のlibvpx実装のパフォーマンスを向上させた方法について説明します。

書籍

また、ArmのアーキテクチャやCPUに関連する書籍も提供しています。以下のリンクから登録すると、これらの書籍をダウンロードすることができます。