...

Cortex-A9 マイクロプロセッサ・ユニット・サブシステム

by user

on
Category: Documents
12

views

Report

Comments

Transcript

Cortex-A9 マイクロプロセッサ・ユニット・サブシステム
6. Cortex-A9 マイクロプロセッサ・ユ
ニット・サブシステム
November 2012
cv_54006-1.2
cv_54006-1.2
Altera® SoC FPGA デバイスのハード・プロセッサ・システム(HPS)には、スタンド
アロンでフル機能の ARM® Cortex™-A9 MPCore™ のシングル・コアまたはデュアル・
コアの 32 ビットのアプリケーション・プロセッサが含まれています。Cortex-A9 MPU
サブシステムは、Cortex-A9 MP Core、Level 2(L2)キャッシュ、アクセラレータ・コ
ヒーレンシ・ポート(ACP)ID マッパ、およびデバッグ・モジュールから構成され
ています。
Cortex-A9 MPU サブシステムの機能
アルテラ Cortex-A9 MPU サブシステムには、以下の機能があります。
■
1 つまたは 2 つの Cortex-A9 プロセッサ
■
割り込みコントローラ
■
各プロセッサ用のプライベート・インターバルおよびウォッチドッグ・タイマ
■
グローバル・タイマ
■
TrustZone® システム・セキュリティ拡張子
■
SMP(Symmetric Multiprocessing)モードおよび AMP(Asymmetric Multiprocessing)
モード
■
デバッグ・モジュール
© 2012 Altera Corporation. All rights reserved. ALTERA, ARRIA, CYCLONE, HARDCOPY, MAX, MEGACORE, NIOS, QUARTUS and STRATIX words and logos
are trademarks of Altera Corporation and registered in the U.S. Patent and Trademark Office and in other countries. All other words and logos identified as
trademarks or service marks are the property of their respective holders as described at www.altera.com/common/legal.html. Altera warrants performance of its
semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any products and
services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information, product, or service
described herein except as expressly agreed to in writing by Altera. Altera customers are advised to obtain the latest version of device specifications before relying
on any published information and before placing orders for products or services.
Portions © 2011 ARM Limited. Used with permission. All rights reserved. ARM, the ARM Powered logo, AMBA, Jazelle, StrongARM, Thumb, and TrustZone are
registered trademarks of ARM Limited. The ARM logo, Angel, ARMulator, AHB, APB, ASB, ATB, AXI, CoreSight, Cortex, EmbeddedICE, ModelGen, MPCore,
Multi-ICE, NEON, PrimeCell, ARM7TDMI, ARM7TDMI-S, ARM9TDMI, ARM9E-S, ARM966E-S, ETM7, ETM9, TDMI and STRONG are trademarks of ARM
Limited. All other products or services mentioned herein may be trademarks of their respective owners. Neither the whole nor any part of the information contained
in, or the product described in, this document may be adapted or reproduced in any material form except with the prior written permission of the copyright holder.
The product described in this document is subject to continuous developments and improvements. All particulars of the product and its use contained in this
document are given by ARM in good faith. However, all warranties implied or expressed, including but not limited to implied warranties of merchantability, or
fitness for purpose, are excluded. This document is intended only to assist the reader in the use of the product. ARM Limited shall not be liable for any loss or
damage arising from the use of any information in this document, or any error or omission in such information, or any incorrect use of the product. Where the term
ARM is used it means “ARM or any of its subsidiaries as appropriate”. This document is Non-Confidential. The right to use, copy and disclose this document may
be subject to license restrictions in accordance with the terms of the agreement entered into by ARM and the party that ARM delivered this document to. The
information in this document is final, that is for a developed product.
ISO
9001:2008
Registered
Cyclone V デバイス・ハンドブック
Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル
2012 年 11 月
Subscribe
6‒2
第 6 章: Cortex-A9 マイクロプロセッサ・ユニット・サブシステム
Cortex-A9 MPU サブシステムのブロック図およびシステム統合
Cortex-A9 MPU サブシステムのブロック図およびシステム統合
図 6–1 に、HPS における L2 キャッシュを持ったデュアル・コア MPU サブシステム
を示します。L2 キャッシュは Level 3(L3)インタコネクト・ファブリックまたは
SDRAM のどちらかへのアクセスが可能です。
図 6‒1. L3 インタコネクトを持っている Cortex-A9 MPU サブシステム
L3 Interconnect
(NIC-301)
MPU Subsystem
ARM Cortex-A9 MPCore
Interrupts
CPU0
ACP ID
Mapper
M0
ACP
CPU1
SCU
Debug Infrastructure
L2 Cache
M1
SDRAM
Controller
Subsystem
Cyclone V デバイス・ハンドブック
Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル
2012 年 11 月
Altera Corporation
第 6 章: Cortex-A9 マイクロプロセッサ・ユニット・サブシステム
Cortex-A9 MPU サブシステム・コンポーネント
6‒3
図 6–2 に、アルテラ Cortex-A9 MPU サブシステムのブロック図を示します。
図 6‒2. Cortex-A9 MPU サブシステムの内部
Cortex-A9 MPU Subsystem
ARM Cortex-A9 MPCore
CPU1 (Dual-Core HPS Only)
CPU0
ARM Cortex-A9 Processor
ARM Cortex-A9 Processor
NEON Media SIMD
Processing Engine with FPU
NEON Media SIMD
Processing Engine with FPU
MMU
MMU
32 KB
Instruction
Cache
32 KB
Data
Cache
CPU0 Private Interval Timer
32 KB
Instruction
Cache
CPU0 Private Watchdog Timer
32 KB
Data
Cache
CPU1 Private Interval Timer
CPU1 Private Watchdog Timer
GIC (Generic Interrupt Controller)
Global Timer
Accelerator Coherency Port
Snoop Control Unit
512 KB L2 Cache
ACP ID Mapper
Debugging Modules
CoreSight Multicore Debug and Trace
Cross Triggering
Event Trace
CPU0 Performance Monitor
CPU1 Performance Monitor
CPU0 Program Trace
CPU1 Program Trace
Cortex-A9 MPU サブシステム・コンポーネント
アルテラ Cortex-A9 MPU サブシステムは、以下のハードウェア・ブロックで構成され
ています。
2012 年 11 月
■
ARM Cortex-A9 MPCore
■
ARM L2C-310 L2 キャッシュ・コントローラ
Altera Corporation
Cyclone V デバイス・ハンドブック
Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル
6‒4
第 6 章: Cortex-A9 マイクロプロセッサ・ユニット・サブシステム
Cortex-A9 MPU サブシステム・コンポーネント
■
ACP ID マッパ
■
デバッグ機能およびトレース機能
この項では、Cortex-A9 MPU サブシステムのコンポーネントについて説明します。
Cortex-A9 MPCore
MPU サブシステムには、スタンドアロンでフル機能の ARM Cortex-A9 MPCore のシン
グル・コアまたはデュアル・コアの 32 ビットのアプリケーション・プロセッサが含
まれています。このプロセッサは、他の HPS マスタのように、HPS-to-FPGA ブリッ
ジを経由して FPGA ファブリックの IP にアクセスできます。
機能の説明
ARM Cortex-A9 MPCore には、以下のブロックが含まれています。
■
SMP モードまたは AMP モードで動作する1 つまたは 2 つの Cortex-A9 Revision r3p0 プ
ロセッサ
■
スヌープ・コントロール・ユニット(SCU)
■
各プロセッサ・コア用のプライベート・インターバル・タイマ
■
各プロセッサ・コア用のプライベート・ウォッチドッグ・タイマ
■
グローバル・タイマ
■
割り込みコントローラ
アルテラ Cortex-A9 MPU サブシステムから生成される各トランザクションは、セキュ
アまたはノンセキュアとして通知されることがあります。
Cyclone V デバイス・ハンドブック
Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル
2012 年 11 月
Altera Corporation
第 6 章: Cortex-A9 マイクロプロセッサ・ユニット・サブシステム
Cortex-A9 MPU サブシステム・コンポーネント
6‒5
実装の詳細
表 6–1 に、アルテラ Cortex-A9 MPCore のパラメータ設定を示します。
表 6‒1. Cortex-A9 MPCore プロセッサ・コンフィギュレーション
機能
オプション
Cortex-A9 プロセッサ
1 または 2
Cortex-A9 プロセッサ毎の命令キャッシュ・サイズ
32 KB
Cortex-A9 プロセッサ毎のデータ・キャッシュ・サイズ
32 KB
Cortex-A9 プロセッサ毎の TLB サイズ
128 エントリ
Cortex-A9 プロセッサ毎の NEON™ テクノロジ付きメディア・プロセッシ
含む
ング・エンジン (1)
Cortex-A9 プロセッサ毎のプリロード・エンジン
含む
Cortex-A9 プロセッサ毎のプリロード・エンジン FIFO のエントリ数
16
Cortex-A9 プロセッサ毎の Jazelle DBX 拡張子
フル
Cortex-A9 プロセッサ毎の PTM インタフェース
含む
パリティ・エラー検出用のサポート
含む
(2)
ARM_BIST
含む
マスタ・ポート
2個
アクセラレータ・コヒーレンシ・ポート
含む
表 6–1 の注:
(1) 浮動小数点動作のサポートが含まれています。
(2) パリティ・エラー手法およびパリティ・エラー信号について詳しくは、ARM のウェブサイト
(infocenter.arm.com)で使用可能な Cortex-A9 Technical Reference Manual の Revision r3p0 を参照してく
ださい。
f Cortex-A9 MPCore のコンフィギュレーション可能なオプションについて詳しくは、
ARM のウェブサイト(infocenter.arm.com)で使用可能な Cortex-A9 MPCore Technical
Reference Manual の Revision r3p0 の Introduction の章を参照してください。
Cortex-A9 プロセッサ
各 Cortex-A9 プロセッサには以下のハードウェア・ブロックが含まれています。
■
■
■
2012 年 11 月
メディア処理および信号処理を高速化するためのベクタ浮動小数点(VFP)v3 倍
精度浮動小数点ユニットを持っている、ARM NEON™ シングル命令の複数データ
(SIMD)コプロセッサ
■
単精度または倍精度の IEEE-754 浮動小数点の演算サポート
■
整数および多項式の演算サポート
パリティ・チェックのある Level 1(L1)キャッシュ
■
32 KB の 4 方向セット連想命令キャッシュ
■
32 KB の 4 方向セット連想データ・キャッシュ
CoreSight™ Program Trace Macrocell (PTM)サポートの命令キャッシュ
Altera Corporation
Cyclone V デバイス・ハンドブック
Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル
6‒6
第 6 章: Cortex-A9 マイクロプロセッサ・ユニット・サブシステム
Cortex-A9 MPU サブシステム・コンポーネント
各 Cortex-A9 プロセッサは、以下の機能をサポートしています。
■
高度な分岐予測を持っているデュアル発行スーパースカラ・パイプライン
■
OoO(Out-of-order)ディスパッチおよび予測的な命令実行
■
Dhrystone 2.1 ベンチマークに基づく 2.5 MIPS(million instructions per second)/MHz
■
128 エントリ変換索引バッファ(TLB)
■
TrustZone セキュリティ拡張子
■
コンフィギュレーション可能なデータ・エンディアンネス
■
バイト・コード・ダイナミック・コンパイラ・サポート用の Jazelle® DBX 拡張子
■
Cortex-A9 プロセッサ・アーキテクチャは、以下の命令セットをサポートしていま
す。
■
ARMv7-A のパフォーマンス最適化された命令セット
■
メモリ最適化された humb®-2 混合命令セット
■
■
■
電力効率の向上
■
31% 小さいメモリ・フットプリント
■
元の Thumb 命令セットよりも 38% の高速化
Thumb 命令セット — レガシー・アプリケーション用にサポート
アルテラ HPS の各プロセッサ・コアには、今日の動作システムに共通のメモリ・
マネージメント要件をサポートするメモリ・マネージメント・ユニット(MMU)
が含まれています。
Cortex-A9 プロセッサは、CPU0 および CPU1 と指定されます。
f ARM Cortex-A9 シリーズのプロセッサについて詳しくは、ARM のウェブサイト
(infocenter.arm.com)で使用可能な ARM Cortex-A9 シリーズ・プロセッサの Revision
r3p0 の資料を参照してください。
インタラクティブ・デバッグ機能
各 Cortex-A9 プロセッサには、以下の機能を含むビルトイン・デバッグ機能がありま
す。
■
Context ID 比較機能を持っている 2 個のブレークポイントを含む 6 個のハードウェ
ア・ブレークポイント
■
4 個のウォッチポイント
インタラクティブ・デバッグ機能は、外部 JTAG ツールまたはプロセッサ・ベースの
モニタ・コードによって制御できます。
f インタラクティブ・デバッグ機能について詳しくは、ARM のウェブサイト
(infocenter.arm.com)で使用可能な Cortex-A9 Technical Reference Manual の Revision r3p0
の Debug の章を参照してください。
Cyclone V デバイス・ハンドブック
Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル
2012 年 11 月
Altera Corporation
第 6 章: Cortex-A9 マイクロプロセッサ・ユニット・サブシステム
Cortex-A9 MPU サブシステム・コンポーネント
6‒7
L1 キャッシュ
関連するプロセッサと密に結合しているキャッシュ・メモリは、Level 1 キャッシュ
または L1 キャッシュと呼ばれます。各 Cortex-A9 プロセッサには独立した 2 つの
32 KB の L1 キャッシュ(1 つは命令用、もう 1 つはデータ用)があり、同時の命令
フェッチおよびデータ・アクセスが可能となります。
各 L1 キャッシュは、ラインごとに 32 バイトを持っている 4 方向セット連想であり、
パリティ・チェックをサポートしています。
プリロード・エンジン
プリロード・エンジン(PLE)は、メモリのプリロード選択の領域に L2 キャッシュ
をイネーブルするハードウェア・ブロックです。L2 キャッシュでキャッシュ・ライ
ンが必要となる場合、PLE は、プロセッサ・データ・マスタ・ポートにデータの
フェッチを開始させることによって L2 キャッシュを送信します。プロセッサ・デー
タ・マスタは、プロセッサへのデータのフェッチまたは返信を完了しません。しか
し、L2 キャッシュはキャッシュ・ラインのロードに進むことができます。データは
L2 キャッシュのみにロードされ、L1 キャッシュやプロセッサ・レジスタにはロード
されません。
プリロード機能は、ソフトウェアの制御下です。以下の PLE コントロール・パラ
メータをプログラムする必要があります。
■
以下を含むプログラムされたパラメータ
■
ベース・アドレス
■
ストライドの長さ
■
ブロックの数
■
バリッド・ビット
■
NS(ノン・セキュア)ステート・ビットを持っているキャッシュ・メモリ用の
TrustZone メモリ保護
■
変換テーブル・ベース(TTB)アドレス
■
アドレス・スペース識別子(ASID)値
f PLE について詳しくは、ARM のウェブサイト(infocenter.arm.com)で使用可能な
Cortex-A9 Technical Reference Manual の Revision r3p0 の Preload Engine の章を参照してく
ださい。
浮動小数点ユニット
各 ARM Cortex-A9 プロセッサには、IEEE-754 浮動小数点動作用のフル・サポートが含
まれています。浮動小数点ユニット(FPU)は、以下の動作の半精度、単精度、およ
び倍精度それぞれをフルにサポートしています。
2012 年 11 月
■
加算
■
減算
■
乗算
■
除算
■
MAC(乗算累積)
Altera Corporation
Cyclone V デバイス・ハンドブック
Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル
6‒8
第 6 章: Cortex-A9 マイクロプロセッサ・ユニット・サブシステム
Cortex-A9 MPU サブシステム・コンポーネント
■
平方根
また、FPU は、高水準言語で必要なゼロに丸める特別な動作を含め、浮動小数点
データのフォーマットおよび整数の間を変換します。
NEON マルチメディア・プロセッシング・エンジン
NEON マルチメディア・プロセッシング・エンジン(MPE)は、メディアおよび信号
のプロセッシング・アプリケーション用のハードウェア・アクセラレーションを提
供します。図 6–3 に示すように、各 ARM Cortex-A9 プロセッサには、SIMD プロセッ
シングをサポートする ARM NEON MPE が含まれています。NEON プロセッシング・エ
ンジンは、ビデオのエンコーディングおよびデコーディング、2D や 3D のグラ
フィック、オーディオおよび音声の処理、画像処理、電話用、および音声合成など
のマルチメディア処理および信号処理のアルゴリズムを高速化します。
図 6‒3. シングル命令の複数データ(SIMD)プロセッシング
Single Instruction
Multiple Data
Source Register
Source Register
Op
Op
Op
Op
Destination Register
Cortex-A9 NEON MPE は、以下のタイプの動作を実行します。
■
SIMD およびスカラの単精度の浮動小数点演算
■
スカラの倍精度の浮動小数点演算
■
SIMD およびスカラの半精度の浮動小数点変換
■
8 ビット、
16 ビット、32 ビット、および 64 ビットの符号あり / 符号なし整数 SIMD 演
算
■
8 ビットまたは 16 ビットのシングル・ビット係数用の多項式演算
以下の動作は使用可能です。
■
加算および減算
■
オプショナルの累算付き乗算(MAC)
■
レーン選択動作で駆動される最大値または最小値
■
逆平方根近似
■
レジスタ・バンク・レジデント・テーブル・ルックアップを含む包括的なデータ
構造のロード命令
Cyclone V デバイス・ハンドブック
Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル
2012 年 11 月
Altera Corporation
第 6 章: Cortex-A9 マイクロプロセッサ・ユニット・サブシステム
Cortex-A9 MPU サブシステム・コンポーネント
6‒9
f Cortex-A9 NEON MPE について詳しくは、ARM のウェブサイト(infocenter.arm.com)か
らダウンロード可能な Cortex-A9 NEON™ Media Processing Engine Technical Reference
Manual の Revision r3p0 を参照してください。
メモリ・マネージメント・ユニット
MMU は L1 キャッシュおよび L2 キャッシュと併用されて、ソフトウェアで使用され
るバーチャル・アドレスをハードウェアで使用される物理アドレスに変換します。
各プロセッサにはプライベート MMU があります。
MMU は表 6–2 に示す TLB をサポートしています。
表 6‒2. サポートされている TLB
TLB タイプ
メモリ・タイプ
エントリ数
連想性
マイクロ TLB
命令
32
完全連想
マイクロ TLB
データ
32
完全連想
メイン TLB
命令バスおよびデータ 128
2 方向連想
メイン TLB には以下の機能があります。
■
ロック・バイ・エントリ・モデルを使用したロック可能エントリ
■
L1 データ・キャッシュでのルックアップを実行するハードウェア・ページ・テー
ブル作業のサポート
f MMU について詳しくは、ARM のウェブサイト(infocenter.arm.com)で使用可能な
Cortex-A9 Technical Reference Manual の Revision r3p0 の Memory Management Unit の章を
参照してください。
MPU のアドレス・マップは、以下の領域に分割されます。
■
ブート領域
■
SDRAM 領域
■
FPGA スレーブ領域
■
HPS ペリフェラル領域
この項では、各領域の位置と内容を説明します。
ブート領域
ブート領域は 1 MB のサイズで、アドレス 0 をベースにします。パワー・オン後、ま
たは L3 インタコネクトのリセット後、ブート領域はブート ROM によって占有され、
Cortex-A9 MPCore がブートできるようにします。ブート領域は 1 MB ですが、ブート
ROM が 64 KB のみなので 64 KB を超えるアクセスはイリーガルとなります。
図 6–4 に示すように、この 1 MB の領域は SDRAM の下位 1 MB に確実にリマップでき
ます。詳しくは、「SDRAM 領域」を参照してください。
1
2012 年 11 月
あるいは、ブート領域を 64 KB のオンチップ RAM にマップすることができます。詳し
くは、Cyclone V デバイス・ハンドブック volume 3 の Interconnect の章を参照してくだ
さい。
Altera Corporation
Cyclone V デバイス・ハンドブック
Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル
6‒10
第 6 章: Cortex-A9 マイクロプロセッサ・ユニット・サブシステム
Cortex-A9 MPU サブシステム・コンポーネント
図 6‒4. MPCore アドレス・マップ
Addresses Are Not To Scale
0xFFFF FFFF
HPS Peripherals (64 MB)
0xFC00 0000
HPS-to-FPGA
(FPGA-Based Peripherals)
0xC000 0000 (3 GB)
L2 Cache Filtering
0x8000 0000 (2 GB)
SDRAM
Mapping Options
On-Chip RAM (64 KB)
0x4000 0000 (1 GB)
Boot ROM (64 KB)
SDRAM (1 MB)
(Mapping Provided by
L2 Cache Filtering)
0x1000 0000 (1 MB)
Boot Region
0
SDRAM 領域
SDRAM 領域は、アドレス 0x100000(1 MB)で開始します。領域の最上位は、L2
キャッシュ・フィルタによって決定されます。
L2 キャッシュには、SDRAM および L3 インタコネクトへのアクセスを配線するフィ
ルタリング手法が含まれています。フィルタは、開始アドレスおよび終了アドレス
のフィルタ範囲を定義します。このフィルタ範囲内の任意のアクセスは、SDRAM サ
ブシステムに配線されます。このフィルタ範囲外のアクセスは、L3 インタコネクト
に配線されます。
開始アドレスおよび終了アドレスは、以下のレジスタ・フィールドによって指定さ
れます。
■
reg12_addr_filtering_start.address_filtering_start
■
reg12_address_filtering_end.address_filtering_end
SDRAM の下位 1 MB をブート領域にリマップするには、0x0 と 0xFFFFF の間のアクセ
スが SDRAM に配線されることを確認するためにフィルタの開始アドレスを 0x0 に設
定します。独立して 0xC0000000 上の 1 MB インクリメントのフィルタ終了アドレス
を設定し、SDRAM 領域の上位境界を拡張することができます。しかし、この範囲の
拡張によって、FPGA ペリフェラルのアドレス・スパンが消費することになります。
L2 キャッシュのアドレス・フィルタ設定によって、SDRAM 領域の最上位は
0xBFFFFFFF ~ 0xFBFFFFFF の範囲をとります。
L2 キャッシュについて詳しくは、6–25 ページの「L2 キャッシュ」を参照してくださ
い。
Cyclone V デバイス・ハンドブック
Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル
2012 年 11 月
Altera Corporation
第 6 章: Cortex-A9 マイクロプロセッサ・ユニット・サブシステム
Cortex-A9 MPU サブシステム・コンポーネント
6‒11
FPGA スレーブ領域
Cortex-A9 MPU サブシステムは、FPGA ベースのペリフェラルと通信するさまざまなサ
イズの FPGA スレーブ領域をサポートしています。L2 キャッシュのアドレス・フィ
ルタ設定によって、この領域は 0xC0000000 ほど下位で開始できます。FPGA スレー
ブ領域の最上位は 0xFBFFFFFF に位置しています。その結果、FPGA スレーブ領域の
サイズは 0 ~ 0x3F000000 バイトの範囲をとります。
HPS ペリフェラル領域
HPS ペリフェラル領域はアドレス空間の最上位 64 MB で、0xFC000000 から開始して
0xFFFFFFFF まで拡張します。HPS ペリフェラル領域は、通常、アルテラ Cortex-A9
MPU サブシステム用に HPS 専用ペリフェラルに割り当てられます。
パフォーマンス・モニタリング・ユニット
各 Cortex-A9 には、パフォーマンス・モニタリング・ユニット(PMU)があります。
PMU は、プロセッサおよびメモリ・システムの動作上で統計を収集するための 58 個
のイベントをサポートしています。PMU の 6 個のカウンタは、イベントをリアルタ
イムで累積します。PMU のカウンタは、コプロセッサ 14(CP14)を使用してプロ
セッサ自身から、または外部デバッガからアクセス可能です。また、イベントは
PTM に供給され、トリガ用またはトレース用に使用できます。
f PMU について詳しくは、ARM のウェブサイト( infocenter.arm.com)で使用可能な
Cortex-A9 Technical Reference Manual の Revision r3p0 の Performance Monitoring Unit の章
を参照してください。
MPCore タイマ
各プロセッサ用として、1 個のインターバル・タイマおよび 1 個のウォッチドッグ・
タイマがあります。
機能の説明
各タイマはプライベートであり、関連するプロセッサのみがアクセスできます。
ウォッチドッグ・タイマが必要ない場合、2 番目のインターバル・タイマとしてコン
フィギュレーションできます。
各プライベートのインターバル・タイマおよびウォッチドッグ・タイマには以下の
機能があります。
■
ゼロに達するときに割り込みをオプションとして生成する 32 ビットのカウンタ
■
カウンタ用のコンフィギュレーション可能な開始値
■
クロック期間を適用する 8 ビットのプレスケーラ値
実装の詳細
タイマはシングル・ショット・モードまたは自動リロード・モードのどちらかにコ
ンフィギュレーション可能です。タイマ・ブロックは mpu_periph_clk によってク
ロックされ、mpu_clk の ¼ のレートで動作します。
f プライベート・タイマについて詳しくは、ARM のウェブサイト( infocenter.arm.com)
で使用可能な Cortex-A9 MPCore Technical Reference Manual の Revision r3p0 の Global
timer, Private timers, and Watchdog registers の章の「About the private timer and watchdog
blocks」を参照してください。
2012 年 11 月
Altera Corporation
Cyclone V デバイス・ハンドブック
Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル
6‒12
第 6 章: Cortex-A9 マイクロプロセッサ・ユニット・サブシステム
Cortex-A9 MPU サブシステム・コンポーネント
汎用割り込みコントローラ
機能の説明
汎用割り込みコントローラ(GIC)は、FPGA ファブリックに実装されている専用ペ
リフェラルおよび IP を含めて最大 180 の割り込みソースをサポートしています。
デュアル・コア・システムでは、GIC は 2 つの Cortex-A9 プロセッサで共有されます。
また、各プロセッサには、バンクされた 16 個のソフトウェア生成の割り込み、およ
びバンクされた 16 個のプライベート・ペリフェラル割り込みがあります。
実装の詳細
GIC のコンフィギュレーションおよびコントロールはメモリ・マップされており、
SCU を通してアクセスされます。GIC は mpu_periph_clk によってクロックされ、
mpu_clk の ¼ のレートで動作します。
f GIC について詳しくは、ARM のウェブサイト(infocenter.arm.com)で使用可能な
Cortex-A9 MPCore Technical Reference Manual の Revision r3p0 の Interrupt Controller の章を
参照してください。
表 6–3 に、割り込みマップを示します。
表 6‒3. GIC の割り込みマップ(その1)
GIC の
割り込
み数 (1)
ソース・ブロック
割り込み名
32
CortexA9_0
cpu0_parityfail
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
CortexA9_0
CortexA9_0
CortexA9_0
CortexA9_0
CortexA9_0
CortexA9_0
CortexA9_0
CortexA9_0
CortexA9_0
CortexA9_0
CortexA9_0
CortexA9_0
CortexA9_0
CortexA9_0
CortexA9_0
CortexA9_1
cpu0_parityfail_BTAC
cpu0_parityfail_GHB
cpu0_parityfail_I_Tag
cpu0_parityfail_I_Data
cpu0_parityfail_TLB
cpu0_parityfail_D_Outer
cpu0_parityfail_D_Tag
cpu0_parityfail_D_Data
cpu0_deflags0
cpu0_deflags1
cpu0_deflags2
cpu0_deflags3
cpu0_deflags4
cpu0_deflags5
cpu0_deflags6
cpu1_parityfail
49
50
51
52
53
54
55
56
57
CortexA9_1
CortexA9_1
CortexA9_1
CortexA9_1
CortexA9_1
CortexA9_1
CortexA9_1
CortexA9_1
CortexA9_1
cpu1_parityfail_BTAC
cpu1_parityfail_GHB
cpu1_parityfail_I_Tag
cpu1_parityfail_I_Data
cpu1_parityfail_TLB
cpu1_parityfail_D_Outer
cpu1_parityfail_D_Tag
cpu1_parityfail_D_Data
cpu1_deflags0
Cyclone V デバイス・ハンドブック
Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル
組み合
わせ割
り込み
(2)
(3)
トリガ
エッジ
エッジ
エッジ
エッジ
エッジ
エッジ
エッジ
エッジ
エッジ
レベル
レベル
レベル
レベル
レベル
レベル
レベル
エッジ
エッジ
エッジ
エッジ
エッジ
エッジ
エッジ
エッジ
エッジ
レベル
2012 年 11 月
Altera Corporation
第 6 章: Cortex-A9 マイクロプロセッサ・ユニット・サブシステム
Cortex-A9 MPU サブシステム・コンポーネント
6‒13
表 6‒3. GIC の割り込みマップ(その2)
GIC の
割り込
み数 (1)
2012 年 11 月
ソース・ブロック
割り込み名
組み合
わせ割
り込み
トリガ
58
59
60
61
62
63
64
CortexA9_1
CortexA9_1
CortexA9_1
CortexA9_1
CortexA9_1
CortexA9_1
SCU
cpu1_deflags1
cpu1_deflags2
cpu1_deflags3
cpu1_deflags4
cpu1_deflags5
cpu1_deflags6
scu_parityfail0
—
レベル
レベル
レベル
レベル
レベル
レベル
エッジ
65
SCU
scu_parityfail1
—
エッジ
66
67
SCU
L2 キャッシュ
scu_ev_abort
l2_ecc_byte_wr_IRQ
—
エッジ
エッジ
68
L2 キャッシュ
l2_ecc_corrected_IRQ
—
エッジ
69
L2 キャッシュ
l2_ecc_uncorrected_IRQ
—
エッジ
(4)
レベル
70
L2 キャッシュ
l2_combined_IRQ
71
DDR
ddr_ecc_error_IRQ
—
レベル
72
FPGA
FPGA_IRQ0
—
レベルまたはエッジ
73
FPGA
FPGA_IRQ1
—
レベルまたはエッジ
74
FPGA
FPGA_IRQ2
—
レベルまたはエッジ
75
FPGA
FPGA_IRQ3
—
レベルまたはエッジ
76
FPGA
FPGA_IRQ4
—
レベルまたはエッジ
77
FPGA
FPGA_IRQ5
—
レベルまたはエッジ
78
FPGA
FPGA_IRQ6
—
レベルまたはエッジ
79
FPGA
FPGA_IRQ7
—
レベルまたはエッジ
80
FPGA
FPGA_IRQ8
—
レベルまたはエッジ
81
FPGA
FPGA_IRQ9
—
レベルまたはエッジ
82
FPGA
FPGA_IRQ10
—
レベルまたはエッジ
83
FPGA
FPGA_IRQ11
—
レベルまたはエッジ
84
FPGA
FPGA_IRQ12
—
レベルまたはエッジ
85
FPGA
FPGA_IRQ13
—
レベルまたはエッジ
86
FPGA
FPGA_IRQ14
—
レベルまたはエッジ
87
FPGA
FPGA_IRQ15
—
レベルまたはエッジ
88
FPGA
FPGA_IRQ16
—
レベルまたはエッジ
89
FPGA
FPGA_IRQ17
—
レベルまたはエッジ
90
FPGA
FPGA_IRQ18
—
レベルまたはエッジ
91
FPGA
FPGA_IRQ19
—
レベルまたはエッジ
92
FPGA
FPGA_IRQ20
—
レベルまたはエッジ
93
FPGA
FPGA_IRQ21
—
レベルまたはエッジ
94
FPGA
FPGA_IRQ22
—
レベルまたはエッジ
95
FPGA
FPGA_IRQ23
—
レベルまたはエッジ
96
FPGA
FPGA_IRQ24
—
レベルまたはエッジ
Altera Corporation
Cyclone V デバイス・ハンドブック
Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル
6‒14
第 6 章: Cortex-A9 マイクロプロセッサ・ユニット・サブシステム
Cortex-A9 MPU サブシステム・コンポーネント
表 6‒3. GIC の割り込みマップ(その3)
GIC の
割り込
み数 (1)
ソース・ブロック
割り込み名
組み合
わせ割
り込み
トリガ
97
FPGA
FPGA_IRQ25
—
レベルまたはエッジ
98
FPGA
FPGA_IRQ26
—
レベルまたはエッジ
99
FPGA
FPGA_IRQ27
—
レベルまたはエッジ
100
FPGA
FPGA_IRQ28
—
レベルまたはエッジ
101
FPGA
FPGA_IRQ29
—
レベルまたはエッジ
102
FPGA
FPGA_IRQ30
—
レベルまたはエッジ
103
FPGA
FPGA_IRQ31
—
レベルまたはエッジ
104
FPGA
FPGA_IRQ32
—
レベルまたはエッジ
105
FPGA
FPGA_IRQ33
—
レベルまたはエッジ
106
FPGA
FPGA_IRQ34
—
レベルまたはエッジ
107
FPGA
FPGA_IRQ35
—
レベルまたはエッジ
108
FPGA
FPGA_IRQ36
—
レベルまたはエッジ
109
FPGA
FPGA_IRQ37
—
レベルまたはエッジ
110
FPGA
FPGA_IRQ38
—
レベルまたはエッジ
111
FPGA
FPGA_IRQ39
—
レベルまたはエッジ
112
FPGA
FPGA_IRQ40
—
レベルまたはエッジ
113
FPGA
FPGA_IRQ41
—
レベルまたはエッジ
114
FPGA
FPGA_IRQ42
—
レベルまたはエッジ
115
FPGA
FPGA_IRQ43
—
レベルまたはエッジ
116
FPGA
FPGA_IRQ44
—
レベルまたはエッジ
117
FPGA
FPGA_IRQ45
—
レベルまたはエッジ
118
FPGA
FPGA_IRQ46
—
レベルまたはエッジ
119
FPGA
FPGA_IRQ47
—
レベルまたはエッジ
120
FPGA
FPGA_IRQ48
—
レベルまたはエッジ
121
FPGA
FPGA_IRQ49
—
レベルまたはエッジ
122
FPGA
FPGA_IRQ50
—
レベルまたはエッジ
123
FPGA
FPGA_IRQ51
—
レベルまたはエッジ
124
FPGA
FPGA_IRQ52
—
レベルまたはエッジ
125
FPGA
FPGA_IRQ53
—
レベルまたはエッジ
126
FPGA
FPGA_IRQ54
—
レベルまたはエッジ
127
FPGA
FPGA_IRQ55
—
レベルまたはエッジ
128
FPGA
FPGA_IRQ56
—
レベルまたはエッジ
129
FPGA
FPGA_IRQ57
—
レベルまたはエッジ
130
FPGA
FPGA_IRQ58
—
レベルまたはエッジ
131
FPGA
FPGA_IRQ59
—
レベルまたはエッジ
132
FPGA
FPGA_IRQ60
—
レベルまたはエッジ
133
FPGA
FPGA_IRQ61
—
レベルまたはエッジ
134
FPGA
FPGA_IRQ62
—
レベルまたはエッジ
Cyclone V デバイス・ハンドブック
Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル
2012 年 11 月
Altera Corporation
第 6 章: Cortex-A9 マイクロプロセッサ・ユニット・サブシステム
Cortex-A9 MPU サブシステム・コンポーネント
6‒15
表 6‒3. GIC の割り込みマップ(その4)
GIC の
割り込
み数 (1)
割り込み名
組み合
わせ割
り込み
トリガ
135
FPGA
FPGA_IRQ63
—
レベルまたはエッジ
136
DMA
dma_IRQ0
—
レベル
137
DMA
dma_IRQ1
—
レベル
138
DMA
dma_IRQ2
—
レベル
139
DMA
dma_IRQ3
—
レベル
140
DMA
dma_IRQ4
—
レベル
141
DMA
dma_IRQ5
—
レベル
142
DMA
dma_IRQ6
—
レベル
143
DMA
dma_IRQ7
—
レベル
144
DMA
dma_irq_abort
—
レベル
145
DMA
dma_ecc_corrected_IRQ
146
DMA
dma_ecc_uncorrected_IRQ
147
2012 年 11 月
ソース・ブロック
レベル
レベル
(5)
EMAC0
emac0_IRQ
148
EMAC0
emac0_tx_ecc_corrected_IR
Q
レベル
149
EMAC0
emac0_tx_ecc_uncorrected_
IRQ
レベル
150
EMAC0
emac0_rx_ecc_corrected_IR
Q
レベル
151
EMAC0
emac0_rx_ecc_uncorrected_
IRQ
レベル
152
EMAC1
emac1_IRQ
153
EMAC1
emac1_tx_ecc_corrected_IR
Q
レベル
154
EMAC1
emac1_tx_ecc_uncorrected_
IRQ
レベル
155
EMAC1
emac1_rx_ecc_corrected_IR
Q
レベル
156
EMAC1
emac1_rx_ecc_uncorrected_
IRQ
レベル
157
USB0
usb0_IRQ
レベル
158
USB0
usb0_ecc_corrected_IRQ
レベル
159
USB0
usb0_ecc_uncorrected_IRQ
レベル
160
USB1
usb1_IRQ
レベル
161
USB1
usb1_ecc_corrected_IRQ
レベル
162
USB1
usb1_ecc_uncorrected_IRQ
レベル
163
CAN0
can0_sts_IRQ
レベル
164
CAN0
can0_mo_IRQ
レベル
165
CAN0
can0_ecc_corrected_IRQ
レベル
166
CAN0
can0_ecc_uncorrected_IRQ
レベル
Altera Corporation
(5)
レベル
レベル
Cyclone V デバイス・ハンドブック
Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル
6‒16
第 6 章: Cortex-A9 マイクロプロセッサ・ユニット・サブシステム
Cortex-A9 MPU サブシステム・コンポーネント
表 6‒3. GIC の割り込みマップ(その5)
GIC の
割り込
み数 (1)
ソース・ブロック
割り込み名
組み合
わせ割
り込み
トリガ
167
CAN1
can1_sts_IRQ
レベル
168
CAN1
can1_mo_IRQ
レベル
169
CAN1
can1_ecc_corrected_IRQ
レベル
170
CAN1
can1_ecc_uncorrected_IRQ
レベル
171
SDMMC
sdmmc_IRQ
レベル
172
SDMMC
sdmmc_porta_ecc_corrected
_IRQ
レベル
173
SDMMC
sdmmc_porta_ecc_uncorrect
ed_IRQ
レベル
174
SDMMC
sdmmc_portb_ecc_corrected
_IRQ
レベル
175
SDMMC
sdmmc_portb_ecc_uncorrect
ed_IRQ
レベル
176
NAND
nand_IRQ
レベル
177
NAND
nandr_ecc_corrected_IRQ
レベル
178
NAND
nandr_ecc_uncorrected_IRQ
レベル
179
NAND
nandw_ecc_corrected_IRQ
レベル
180
NAND
nandw_ecc_uncorrected_IRQ
レベル
181
NAND
nande_ecc_corrected_IRQ
レベル
182
NAND
nande_ecc_uncorrected_IRQ
レベル
183
QSPI
qspi_IRQ
レベル
184
QSPI
qspi_ecc_corrected_IRQ
レベル
185
QSPI
qspi_ecc_uncorrected_IRQ
186
SPI0
spi0_IRQ
(6)
レベル
187
SPI1
spi1_IRQ
(6)
レベル
spi2_IRQ
(6)
レベル
spi3_IRQ
(6)
レベル
i2c0_IRQ
(7)
レベル
レベル
188
189
190
SPI2
SPI3
I2C0
レベル
191
I2C1
i2c1_IRQ
(7)
192
I2C2
i2c2_IRQ
(7)
レベル
193
I2C3
i2c3_IRQ
(7)
レベル
194
UART0
uart0_IRQ
レベル
195
UART1
uart1_IRQ
レベル
196
GPIO0
gpio0_IRQ
—
レベル
197
GPIO1
gpio1_IRQ
—
レベル
198
GPIO2
gpio2_IRQ
—
レベル
レベル
199
タイマ 0
timer_l4sp_0_IRQ
(8)
200
タイマ 1
timer_l4sp_1_IRQ
(8)
レベル
201
タイマ 2
timer_osc1_0_IRQ
(8)
レベル
Cyclone V デバイス・ハンドブック
Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル
2012 年 11 月
Altera Corporation
第 6 章: Cortex-A9 マイクロプロセッサ・ユニット・サブシステム
Cortex-A9 MPU サブシステム・コンポーネント
6‒17
表 6‒3. GIC の割り込みマップ(その6)
GIC の
割り込
み数 (1)
ソース・ブロック
割り込み名
組み合
わせ割
り込み
トリガ
(8)
レベル
ウォッチドッグ 0 wdog0_IRQ
—
レベル
204
ウォッチドッグ 1 wdog1_IRQ
—
レベル
205
クロック・マ
ネージャ
clkmgr_IRQ
レベル
206
クロック・マ
ネージャ
mpuwakeup_IRQ
レベル
207
FPGA マネージャ
fpga_man_IRQ
208
CoreSight
nCTIIRQ[0]
レベル
209
CoreSight
nCTIIRQ[1]
レベル
210
オンチップ RAM
ram_ecc_corrected_IRQ
レベル
211
オンチップ RAM
ram_ecc_uncorrected_IRQ
レベル
202
タイマ 3
203
timer_osc1_1_IRQ
(9)
レベル
表 6–3 の注:
(1) 正しい GIC 割り込み数を使用していることを確認するには、コードが割り込み名コラムで示してい
る記号の割り込み名である必要があります。記号の割り込み名は、動作システム用のソース・イン
ストールと共に分配されるヘッダ・ファイルで定義されます。
(2) この割り込みは、cpu0_parityfail_* という名前の割り込みと組み合わせを作ります。
(3) この割り込みは、cpu1_parityfail_* という名前の割り込みと結み合わせを作ります。
(4) この割り込みは、次の割り込みと組み合わせを作ります:DECERRINTR、ECNTRINTR、ERRRDINTR、
ERRRTINTR、ERRWDINTR、ERRWTINTR、PARRDINTR、PARRTINTR、および SLVERRINTR。
(5) この割り込みは、sbd_intr_o、lpi_intr_o、および pmt_intr_o と組み合わせを作ります。
(6) この割り込みは、次の割り込みと組み合わせを作ります:ssi_txe_intr、ssi_txo_intr、
ssi_rxf_intr、ssi_rxo_intr、ssi_rxu_intr、および ssi_mst_intr。
(7) この割り込みは、次の割り込みと組み合わせを作ります:ic_rx_under_intr、ic_rx_full_intr、
ic_tx_over_intr、ic_tx_empty_intr、ic_rd_req_intr、ic_tx_abrt_intr, ic_rx_done_intr、
ic_activity_intr、ic_stop_det_intr、ic_start_det_intr、および ic_gen_call_intr。
(8) この割り込みは、TIMINT1 および TIMINT2 と組み合わせを作ります。
(9) この割り込みは、以下の割り込みと組み合わせを作ります:fpga_man_irq[7..0]。
グローバル・タイマ
MPU は、グローバルで 64 ビットの自動インクリメント・タイマを機能させます。こ
れは、動作システムによって最初に使用されます。
機能の説明
グローバル・タイマは、SCU を経由したメモリ・マップド・アクセスを使用してプ
ロセッサによってアクセス可能です。グローバル・タイマには以下の機能がありま
す。
2012 年 11 月
■
自動インクリメント機能を持っている 64 ビットのインクリメント・カウンタ。割
り込みの送信後にインクリメントを継続します。
■
プライベート・メモリ領域へのメモリ・マップド。
■
セキュア・ステートのみでのリセット時のアクセス。セキュア・ステートは 1 回
のみ設定可能ですが、セキュア・コードの読み出しは何度でも可能です。
■
MPCore の Cortex-A9 プロセッサ両方にアクセス可能。
Altera Corporation
Cyclone V デバイス・ハンドブック
Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル
6‒18
第 6 章: Cortex-A9 マイクロプロセッサ・ユニット・サブシステム
Cortex-A9 MPU サブシステム・コンポーネント
実装の詳細
各 Cortex-A9 プロセッサには、カウンタが特定の値に達する場合にプライベート割り
込みを生成する、プライベートの 64 ビットのコンパレータがあります。この割り込
みで各 Cortex-A9 プロセッサはバンクされた ID の ID27 を使用します。ID27 は、プラ
イベート・ペリフェラル割り込み(PPI)として GIC に送信されます。
グローバル・タイマは mpu_periph_clk によってクロックされ、mpu_clk の ¼ のレート
で動作します。
f グローバル・タイマについて詳しくは、ARM のウェブサイト(infocenter.arm.com)で
使用可能な Cortex-A9 MPCore Technical Reference Manual の Revision r3p0 の Global timer,
Private timers, and Watchdog registers の章の「About the Global Timer」を参照してくださ
い。
スヌープ・コントロール・ユニット(SCU)
SCU は、L2 キャッシュを含む Cortex-A9 プロセッサ用およびメモリ・システム用の
データ・トラフィックを管理します。マルチ・マスタ・システムでは、プロセッサ
および他のマスタは共有データ上で動作できます。SCU は、キャッシュ・コヒーレ
ンシを維持しながら各プロセッサが最新のデータ・コピー上で動作することを確認
します。
機能の説明
SCU は Cortex-A9 プロセッサおよび ACP を L2 キャッシュ・コントローラに接続する
ために使用されます。SCU は以下の機能を実行します。
■
プロセッサが SMP モードに設定されている場合、SCU はプロセッサ間のデータ・
キャッシュ・コヒーレンシを維持します。
1
SCU は、命令キャッシュのコヒーレンシは維持しません。
■
L2 キャッシュ・メモリ・アクセスを初期化します。
■
L2 アクセスを要求しているプロセッサ間を調停します。
■
キャッシュ・コヒーレンシ機能を使用して ACP アクセスを管理します。
Cyclone V デバイス・ハンドブック
Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル
2012 年 11 月
Altera Corporation
第 6 章: Cortex-A9 マイクロプロセッサ・ユニット・サブシステム
Cortex-A9 MPU サブシステム・コンポーネント
6‒19
図 6–5 に、L1 データ・キャッシュおよび SCU の間でのデータ・フローを表示し、
デュアル・プロセッサ・システムの SCU を示します。
図 6‒5. コヒーレント・メモリ、SCU、およびアクセラレータ・コヒーレンシ・ポート
ARM Cortex-A9
32-Bit Dual-Issue
Superscalar
RISC Processor
L1 Data
Cache
Level 3 (L3)
Interconnect
L1 Data
Cache
32 KB
Instruction
Cache
32 KB
Instruction
Cache
Snoop Control Unit (SCU)
Accelerator
Coherency
Port (ACP)
Level 2 (L2) Unified Cache
ACP
HPS
Mastering
Peripherals
ID Mapper
FPGA Fabric
ARM Cortex-A9
32-Bit Dual-Issue
Superscalar
RISC Processor
Unidirectional
Coherency
Bidirectional
Coherency
Coherent
Memory
f SCU について詳しくは、ARM のウェブサイト(infocenter.arm.com)で使用可能な
Cortex-A9 MPCore Technical Reference Manual の Revision r3p0 の Snoop Control Unit の章を
参照してください。
実装の詳細
プロセッサが任意のコヒーレント・メモリ位置に書き込む場合、SCU は関連する
データがコヒーレントであることを確認します(更新されているか、タッグされて
いるか、または無効にされているか)。同様に、SCU は、コヒーレント・メモリ位置
からの読み出し動作をモニタします。必要なデータが既に他のプロセッサの L1
キャッシュに保存されている場合、データは要求しているプロセッサに直接返され
ます。データが L1 キャッシュにない場合、SCU は L2 キャッシュに読み出しを発行
します。データが L2 キャッシュ・メモリにない場合、最終的に読み出しがメイン・
メモリに転送されます。最優先目標は、電力消費を最小化すること、およびメモリ
性能全体を最大化することです。
SCU は、プロセッサに属する L1 データキャッシュ間で双方向コヒーレンシを維持し
ます。1 つのプロセッサが L1 キャッシュの位置に書き込むとき、同じ位置が他の L1
キャッシュによってキャッシュされている場合は SCU がそれを更新します。
ノン・コヒーレント・データは、標準的な読み出し動作または書き込み動作として
通過します。
また、両方のプロセッサが同時に L2 キャッシュにアクセスしようとする場合、SCU
は Cortex-A9 プロセッサ間を調停し、ACP からのアクセスを管理します。
2012 年 11 月
Altera Corporation
Cyclone V デバイス・ハンドブック
Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル
6‒20
第 6 章: Cortex-A9 マイクロプロセッサ・ユニット・サブシステム
Cortex-A9 MPU サブシステム・コンポーネント
アクセラレータ・コヒーレンシ・ポート
ACP は、Cortex-A9 MPCore プロセッサおよび SCU を使用して、FPGA ベースのペリ
フェラルを含むペリフェラルがデータ・コヒーレンシを維持できるようにします。
6–19 ページの 図 6–5 に示すように、HPS 内の専用ペリフェラル、および FPGA ロ
ジックに内蔵されたペリフェラルは、ACP ID マッパおよび ACP を経由してコヒーレ
ンシ・メモリにアクセスします。ACP ID マッパについて詳しくは、6–21 ページの
「ACP ID マッパ」を参照してください。
FPGA データ・ポートを含む高帯域幅ペリフェラルは、L3 インタコネクトに接続しま
す。
バースト・サイズおよびバイト・ストローブ
ACP は、FPGA ファブリックのハードウェア・アクセラレータ用のシステム性能を向
上させます。しかし、高レベル性能を実現するには、表 6–4 に示すバースト・タイ
プを使用する必要があります。他のバースト・タイプでは著しく低い性能になって
しまいます。
表 6‒4. 推奨されるバースト・タイプ
バースト・タイ
プ
ビート
幅(ビット) アドレス・タイプ
バイト・スト
ローブ
ラップ
4
64
64 ビット・アラ
インメント
アサート
インクリメント
4
64
32 ビット・アラ
インメント
アサート
1
FPGA-to-HPS ブリッジのスレーブ・ポートが 64 ビットの幅を持っていない場合、
FPGA-to-HPS ブリッジを上記のバースト・タイプにサイズ変更するバーストが必要と
なります。例えば、FPGA-to-HPS ブリッジのスレーブ・データ幅が 32 ビットの場合、
ACP に効率的にアクセスする上で、32 ビットによる 8 ビートのバーストが必要とな
ります。
c
ACP へのトランザクションのアドレスおよびバースト・サイズが上記の条件のいずれ
かに一致する場合、MPU ロジックは、トランザクションにすべてのバイト・スト
ローブ・セットがあると見なします。バイト・ストローブが全セットではない場合、
実際には書き込みによって全てのバイトが上書きされるわけではありません。その
かわり、キャッシュはキャッシュ・ライン全体が有効であると見なします。このラ
インがダーティである場合(そして、そのために SDRAM に書き出される場合)、
データ破壊が起きる可能性があります。
排他的なアクセスおよびロックされたアクセス
ACP は、コヒーレント・メモリへの排他的なアクセスをサポートしていません。ACP
はノン・コヒーレント・メモリへの排他的なアクセスをサポートしていますが、排
他的なアクセスのトランザクションは FPGA-to-HPS ブリッジまたは L3 インタコネク
トのロジックのサイズ変更の影響を受けないという点は重要です。ロジックのサイ
ズ変更のために排他的なアクセスが複数のトランザクションに分割される場合、排
他的なアクセスのビットはブリッジまたはインタコネクトによってクリアされ、排
他的なアクセスは失敗します。
Cyclone V デバイス・ハンドブック
Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル
2012 年 11 月
Altera Corporation
第 6 章: Cortex-A9 マイクロプロセッサ・ユニット・サブシステム
Cortex-A9 MPU サブシステム・コンポーネント
1
6‒21
アルテラは、L3 インタコネクトに直接接続されている SDRAM コントローラの 32 ビッ
トのスレーブ・ポートを経由して、または FPGA-to-SDRAM を経由して、排他的なア
クセスを完全に ACP にバイパスすることを推奨しています。
f SDRAM コントローラ・サブシステムの排他的なアクセスのサポートについて詳しく
は、Cyclone® V デバイス・ハンドブック volume 3 の SDRAM Controller Subsystem の章
を参照してください。
ACP ID マッパは、ロックされたアクセスをサポートしていません。共有データへの
相互排他的なアクセスを確認するには、SDRAM コントローラ内に組み込まれている
排他的なアクセスへのサポートを使用します。
ACP ID マッパ
ACP ID マッパは、Level 3(L3)インタコネクトおよび MPU サブシステム ACP スレー
ブ間に位置しています。このマッパは、ACP スレーブ・ポートでサポートされてい
る 3 ビットの AXI IDs(出力 ID)に対して、L3 インタコネクトから 12 ビットの
Advanced Microcontroller Bus Architecture(AMBA®)Advanced eXtensible Interface(AXI™)
IDs(入力 ID)をマップします。
また、ACP ID マッパは、1 GB のコヒーレント・ウィンドウを 4 GB のアドレス空間に
実装します。
機能の説明
ACP スレーブは、最大 6 個のマスタをサポートしています。しかし、FPGA ファブ
リックに実装されているカスタム・ペリフェラルは、ACP スレーブにアクセスする
上で必要なマスタとしてさらに多くのマスタを持つことができます。ACP ID マッパ
は、これらのマスタが ACP にアクセスできるようにします。
ACP ID マッパは、インタコネクトおよび MPU サブシステムの ACP スレーブの間にあ
ります。このマッパには以下のような特性があります。
■
最大 6 個の同時 ID マッピングのサポート
■
4 GB の MPCore アドレス空間内への 1 GB のコヒーレント・ウィンドウ
■
スヌープ・コントロール・ユニット(SCU)および L2 キャッシュによって使用さ
れる 5 ビットのユーザー側波帯信号のリマップ
f AXI ユーザー側波帯信号について詳しくは、ARM のウェブサイト(infocenter.arm.com)
からダウンロードできる CoreLink Level 2 Cache Controller L2C-310 Technical Reference
Manual を参照してください。
実装の詳細
ACP は、コヒーレント・メモリへのアクセスに必要なマスタによってアクセスされ
ます。ACP スレーブ・ポートは、FPGA ファブリックに実装されているマスタによる
アクセスと同じように L3 インタコネクトのマスタ・ペリフェラルによってアクセス
できます(FPGA-to-HPS ブリッジを介して)。6–2 ページの 図 6–1 に ACP ID マッパを
示します。
ACP ID マッパは、以下の ID マッピング・モードをサポートしています。
■
2012 年 11 月
ダイナミック・マッピング
Altera Corporation
Cyclone V デバイス・ハンドブック
Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル
6‒22
第 6 章: Cortex-A9 マイクロプロセッサ・ユニット・サブシステム
Cortex-A9 MPU サブシステム・コンポーネント
■
固定マッピング
ソフトウェアは ID ごとに ID マッピングを選択できます。固定マッピング用にコン
フィギュレーションされた入力 ID では、入力 ID から出力 ID に対して 1 対 1 のマッ
ピングとなります。入力 ID がダイナミック・マッピングにコンフィギュレーション
されている場合、入力 ID は使用可能な出力 ID に自動的にマップされます。ダイナ
ミック・モードではハードウェアがマッピングを行うため、より柔軟性に富んでい
ます。ハードウェアのマッピングによって、1 個の出力 ID を 1 個以上の入力 ID に使
用できるようになります。出力 ID は先着順に入力 ID に割り当てられます。
8 個の出力 ID の合計のうち 6 個のみが L3 インタコネクトのマスタに使用可能です。
最初の 2 個の出力 ID(0 および 1)は MPU サブシステムの Cortex-A9 プロセッサ・コ
アに専用で、残りの 6 個の ID(2 ~ 7)は ACP ID マッパに使用可能です。出力 ID 2
~ 6 は固定モードおよびダイナミック・モードの動作をサポートしていますが、出
力 ID 7 はダイナミック・モードのみをサポートしています。
動作モードは ACP ID マッパのコントロール・レジスタおよびステータス・レジスタ
へのアクセスを通してプログラム可能で、Level 4 のペリフェラル・バス接続を介し
て使用可能です。リセット時には、ACP ID マッパは出力 ID 2 以外のすべての出力 ID
をダイナミック ID マッピングにデフォルトし、DAP(Debug Access Port)の入力 ID
を固定マッピングにリセットします。
表 6–5 に、3 ビット出力 ID の想定されている使用方法およびリセット時のそれらの
設定を示します。
表 6‒5. 想定されている ID の使用方法
出力
ID
リセット・ス
テート
7
ダイナミック
ダイナミック・マッピングのみです。
ダイナミック
固定マッピングまたはダイナミック・マッピングで、ソフト
ウェアによりプログラムされます。
想定されている使用方法
6
5
4
3
2
1
0
リセット時に DAP の入力 ID に割り当てられます。リセット
0x001(DAP)
後、固定マッピングまたはダイナミック・マッピングのどち
で固定
らかが可能で、ソフトウェアによりプログラムされます。
—
ACP ID マッパによって使用されることはありません。
受信されるトランザクションの AXI ユーザー側波帯信号を駆動できないマスタでは、
ACP ID マッパがこの信号のオーバーライドを制御できます。また、ACP ID マッパは、
メモリ内への 1 GB のコヒーレント・ウィンドウのうちどれが L3 インタコネクトの
マスタによってアクセスされるかということも制御できます。各固定マッピングに
は異なるユーザー側波帯信号およびメモリ・ウィンドウを割り当てることができて、
異なるマスタ用の特別な設定が可能となります。すべてのダイナミック・マッピン
グは共通のユーザー側波帯信号およびメモリ・ウィンドウ設定を共有します。
Cyclone V デバイス・ハンドブック
Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル
2012 年 11 月
Altera Corporation
第 6 章: Cortex-A9 マイクロプロセッサ・ユニット・サブシステム
Cortex-A9 MPU サブシステム・コンポーネント
6‒23
トランザクション機能
どの時点においても、ACP ID マッパは ID マッピングごとに最大 15 個のトランザク
ションを受信および発行できます。書き込みおよび読み出しの ID マッピングは別々
のリストで管理され、固有の入力 ID をいつでもリマップできるようになっていま
す。同じ入力 ID を持っている一連の読み出しおよび書き込みをマスタが発行する場
合、順序の制約はありません。
使用可能な出力 ID が 6 個しかないため、固有 ID を持っているリードおよびライト・
トランザクションそれぞれを一度に 6 より多くすることはできません。ACP スレー
ブによる書き込みの受け入れは 5 個のトランザクションで、読み出しの受け入れは
13 個のトランザクションです。コヒーレント・リード・トランザクションは、ID
マッピングごとに一度に 4 個のみ未処理にできます。
ダイナミック・マッピング・モード
ダイナミック・モードでは、L3 マスタ・ポートから受信されるすべての固有入力 ID
は未使用出力 ID に割り当てられます。新規の出力 ID は、SCU の ACP スレーブに発
行されたものとしてトランザクションに適用されます。ACP ID マッパに到達するト
ランザクションのうち既に実行中のトランザクションと一致する入力 ID を持ったト
ランザクションは、それ(実行中のトランザクション)と同じ出力 ID にマップされ
ます。ID マッピング上のすべてのトランザクションが完了すると、出力 ID がリリー
スされて他の入力 ID に再度使用されます。
固定マッピング・モード
固定モードでは、出力 ID 2 ~ 6 はソフトウェアによって 12 ビットの特別な入力 ID
に割り当てることができます。これにより、マスタからの入力トランザクションの
ID が常に特別な出力 ID に割り当てられるため、L2 キャッシュ・コントローラのロッ
ク・バイ・マスタ機能を使用できるようになります。ダイナミック・モードとは異
なり、システムのデッドロックを回避するために ID 7 がダイナミック・モード用の
みに予約されているため、ID 7 は固定マッピングに使用不可能です。
ACP ID マッパには、マッピングの動作を制御するためのレジスタのバンクが 2 個、
すなわちリクエスト・バンクおよび読み出し専用ステータス・バンクがあります。
どちらのバンクにも同じ数のレジスタが内蔵されています。特定のマッピング(特
別な固定 ID またはすべてのダイナミック・マッピングのいずれか)の設定を変更す
るには、ソフトウェアがリクエスト・バンクの適切なレジスタに書き込む必要があ
ります。ハードウェアはリクエストを決定し、安全な場合、つまり出力 ID を持つ未
処理トランザクションがない場合のみ変更を適用します。変更が適用されると、ス
テータス・レジスタが更新されます。ソフトウェアは、対応するステータス・レジ
スタをポーリングすることで、実際に変更が起きたことを確認する必要があります。
2012 年 11 月
Altera Corporation
Cyclone V デバイス・ハンドブック
Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル
6‒24
第 6 章: Cortex-A9 マイクロプロセッサ・ユニット・サブシステム
Cortex-A9 MPU サブシステム・コンポーネント
表 6–6 に、ACP ID マッパにアクセスできる、各 HPS ペリフェラル・マスタ用にイン
タコネクトから発行される入力 ID を示します。
表 6‒6. HPS ペリフェラル・マスタの入力 ID
インタコネクト・マスタ
ID (1)
DMA
00000xxxx011
EMAC0
10000xxxx001
EMAC1
10000xxxx010
USB0
100000000011
USB1
100000000110
NAND
1xxxxxxxx100
ETR
100000000000
DAP
000000000001
SD/MMC
100000000101
FPGA-to-HPS ブリッジ
0xxxxxxxx100
表 6–6 の注:
(1) これらの値はバイナリです。x の文字は、各マスタが各トランザクションに渡す変数の ID ビットを
示しています。
AXI ユーザー側波帯信号の制御
ACP ID マッパ・モジュールは、AXI ユーザー側波帯信号の値の制御を可能にします。
すべてのマスタがこれらの信号を駆動するわけではないので、ACP ID マッパは、デ
フォルト値(ダイナミック・モード)または特別な値(固定モード)のいずれかを
持つ 5 ビットのユーザー側波帯信号を駆動できるようにします。
ユーザー側波帯信号のデフォルト値をすべてのトランザクションにコンフィギュ
レーションし、固定マッピング・モードでこれらの信号の固定値を特定のトランザ
クションにコンフィギュレーションする上で使用可能なレジスタがあります。ダイ
ナミック・モードでは、受信トランザクションのユーザー側波帯信号はレジスタに
保存されているデフォルト値にマップされます。固定マッピング・モードでは、ト
ランザクションの入力 ID は 3 ビットの出力 ID にマップされ、トランザクションの
ユーザー側波帯信号はレジスタ内に保存されている出力 ID 対応の値にマップされま
す。しかし、ID に関連するユーザー側波帯の値に関係なく、常に FPGA-to-HPS ブ
リッジからのユーザー側波帯信号が ACP を通過できるようにする、という重要な例
外が ACP ID マッパにはあります。
Cyclone V デバイス・ハンドブック
Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル
2012 年 11 月
Altera Corporation
第 6 章: Cortex-A9 マイクロプロセッサ・ユニット・サブシステム
Cortex-A9 MPU サブシステム・コンポーネント
6‒25
メモリ領域のリマップ
ACP ID マッパには、デフォルトでは下位 1 GB の SDRAM へのビューである 1 GB のア
ドレス空間があります。また、マッパは、ダイナミック・モードでも固定モードで
も、ページと呼ばれる 1 GB サイズのさまざまなメモリ領域にトランザクションが配
線されるようにします。受信される 32 ビット AXI アドレス信号の 2 つの極めて重要
なビットは、ユーザーによるコンフィギュレーション可能な 2 ビットのアドレス・
ページのデコード情報と置き換えられます。ページ・デコーダは、表 6–7 に示す値
を使用します。
表 6‒7. ページ・デコーダの値
ページ
アドレス範囲
0
0x00000000—0x3FFFFFFF
1
0x40000000—0x7FFFFFFF
2
0x80000000—0xBFFFFFFF
3
0xC0000000—0xFFFFFFFF
MPU サブシステムとのキャッシュ・コヒーレンシが維持されている間、このペー
ジ・デコード情報を使用して、マスタは 4 GB のメモリ空間の任意の 1 GB 領域に対
して読み出しおよび書き込みができます。
この機能を使用して、デバッガはプロセッサを停止させることなくメイン・メモリ
へのコヒーレント・ビューを保持することができます。例えば、リセット時に DAP
入力 ID(0x001)が出力 ID 2 にマップされるため、デバッガは ACP への他のトラ
フィック・フローに影響を与えることなく DAP にアクセスする 1 GB のウィンドウを
変更することができます。
L2 キャッシュ
MPU サブシステムには、512 KB の L2 セカンダリ共有統一キャッシュ・メモリが含
まれています。
機能の説明
L2 キャッシュは L1 キャッシュよりもはるかに大容量です。L2 キャッシュは外部メ
モリよりも極端に低いレイテンシです。L2 キャッシュは最大 8 方向連想で、最小 1
方向までコンフィギュレーション可能です(直接マップ)。L1 キャッシュと同様に、
L2 キャッシュはキャッシュ・ライン、方向、またはバス・マスタによってロック可
能です。
L2 キャッシュは、誤り訂正コード(ECC)および ECC エラー・レポートを実装しま
す。このキャッシュはプロセッサおよび動作システムへのイベントの数をレポート
できます。
L2 キャッシュは、以下のようにコンフィギュレーションされた ARM L2C-310 L2
キャッシュ・コントローラから構成されています。
2012 年 11 月
■
512 KB の合計メモリ
■
8 方向連想性
■
物理的にアドレスされ、物理的にタグされた状態
■
32 バイトのライン長
Altera Corporation
Cyclone V デバイス・ハンドブック
Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル
6‒26
第 6 章: Cortex-A9 マイクロプロセッサ・ユニット・サブシステム
Cortex-A9 MPU サブシステム・コンポーネント
■
クリティカル・ファースト・ワード・ラインフィル
■
表 6–8 に示すような AXI キャッシュ・モードのサポート
表 6‒8. AXI キャッシュ・モードのサポート
キャッシュ・モード
ライト・スルー
(1)
ライト・バック
(1)
リード割り当て
ライト割り当て
リードおよびライト割り当て
表 6–8 の注:
(1) ECC を使用している場合は制約があります。SEU 保護について詳しくは、Cyclone V デバイス・ハン
ドブック volume 3 の System Manager の章を参照してください。
■
SEU(Single Event Upset)保護
■
タグ RAM 上でのパリティ
■
L2 データ RAM 上での ECC
f SEU 保護について詳しくは、Cyclone V デバイス・ハンドブック volume 3 の
System Manager の章を参照してください。
■
SCU にマスタされた 2 個のスレーブ・ポート
■
以下のスレーブ・ポートに接続された 2 個のマスタ・ポート
■
■
64 ビットのスレーブ・ポート幅の SDRAM コントローラ
■
64 ビットのスレーブ・ポート幅の L3 インタコネクト
以下のようなキャッシュ・ロックダウン機能
■
ライン・ロックダウン
■
方向によるロックダウン
■
マスタによるロックダウン(プロセッサおよび ACP マスタの両方)
■
TrustZone サポート
■
キャッシュ・イベントのモニタ。詳しくは、6–28 ページの「L2 キャッシュ・イベ
ントのモニタ」を参照してください。
6–2 ページの 図 6–1 に L2 キャッシュを示しています。L2 キャッシュは、L3 インタ
コネクト・ファブリックまたは SDRAM のどちらかにアクセスできます。L2 キャッ
シュのアドレス・フィルタリングは、6–9 ページの「メモリ・マネージメント・ユ
ニット」で説明しているように、HPS-to-FPGA ブリッジおよび SDRAM に割り当てら
れるそれぞれのアドレス空間の容量を決定します。
ECC サポート
L2 キャッシュには、キャッシュ RAM での SEU エラーから保護するために ECC を使
用するオプションがあります。
Cyclone V デバイス・ハンドブック
Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル
2012 年 11 月
Altera Corporation
第 6 章: Cortex-A9 マイクロプロセッサ・ユニット・サブシステム
Cortex-A9 MPU サブシステム・コンポーネント
6‒27
ECC をイネーブルしても L2 キャッシュのパフォーマンスに影響しません。ECC ビッ
トは、64 ビット幅(8 バイト、またはキャッシュ・ライン長の 4 分の 1)のデータ
RAM への書き込みのためのみに計算されます。ECC ロジックは、ECC ビットを計算
しているときはリード・モディファイ・ライトを実行しません。ECC 保護ビットは
以下の場合では有効ではありません。
■
メモリにアラインメントされていない 64 ビットのデータが書き込まれる場合。
■
64 ビットより狭い幅のデータが書き込まれる場合。
これらの場合、Byte Write Error 割り込みがアサートされます。そのようなエラーが起
きる場合、キャッシュ・データはまだ書き込まれています。しかし、ECC エラー検
出および ECC エラー訂正は機能し続けます。そのため、キャッシュ・データは次の
読み出し時に不正となる可能性があります。
ECC を使用するには、ソフトウェアおよびシステムが以下の要件を満たしている必
要があります。
■
L1 および L2 キャッシュが任意のキャッシュ可能領域にライト・バック割り当てと
してコンフィギュレーションされていること。
■
ACP を使用している FPGA ソフト IP が以下のタイプのデータ書き込みのみを実行す
ること。
■
メモリにアラインメントされた 64 ビット
■
64 ビット幅のアクセス
f SEU エラーについて詳しくは、Cyclone V デバイス・ハンドブック volume 3 の System
Manager の章を参照してください。
実装の詳細
表 6–9 に、キャッシュ・コントローラのパラメータ設定を示します。
表 6‒9. キャッシュ・コントローラのコンフィギュレーション
機能
意味
キャッシュ方向サイズ
64 KB
キャッシュ方向の数
8 方向
RAM レイテンシ
2 サイクルのレイテンシ
パリティ・ロジック
パリティ・ロジックがイネーブル状態
マスタによるロックダウン
マスタによるロックダウンがイネーブル状態
ラインによるロックダウン
ラインによるロックダウンがイネーブル状態
スレーブ・ポートでの AXI ID 幅
スレーブ・ポートでの AXI ID 6 ビット
アドレス・フィルタリング
アドレス・フィルタリング・ロジックがイ
ネーブル状態
推定的な読み出し
推定的な読み出しをサポートするロジックが
イネーブル状態
ARUSERMx および AWUSERMx の側波帯
側波帯信号がイネーブル状態
信号の存在
2012 年 11 月
Altera Corporation
Cyclone V デバイス・ハンドブック
Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル
6‒28
第 6 章: Cortex-A9 マイクロプロセッサ・ユニット・サブシステム
Cortex-A9 MPU サブシステム・コンポーネント
f キャッシュ・コントローラのコンフィギュレーション可能なオプションについて詳
しくは、ARM のウェブサイト(infocenter.arm.com)で使用可能な CoreLink Level 2
Cache Controller L2C-310 Technical Reference Manual の Revision r3p2 を参照してくださ
い。
L2 キャッシュ・ロックダウン機能
L2 キャッシュには、キャッシュ RAM のデータをロックする方法が 3 種類あります。
■
ラインによるロックダウン — キャッシュのラインをロックするために使用されま
す。これは、ソフトウェアのクリティカルな部分を一時的にキャッシュ内にロー
ドするために一般的に使用されます。
■
方向によるロックダウン — キャッシュの 8 方向のうち任意またはすべてをロック
できるようにします。これは、クリティカルなデータまたはコードをキャッシュ
内にロードするために一般的に使用されます。
■
マスタによるロックダウン — キャッシュの方向がシングル・マスタ・ポートに対
して専用にします。これによって、大規模なキャッシュが複数のマスタ・ポート
に対してより小規模なキャッシュに見えるようにします。L2 キャッシュは、合計
8 個の可能なマスタ・ポート用として CPU0、CPU1、または 6 個の ACP マスタに
よってマスタできます。
f L2 キャッシュのロックダウン機能について詳しくは、ARM のウェブサイト
(infocenter.arm.com)で使用可能な CoreLink Level 2 Cache Controller L2C-310 Technical
Reference Manual の Revision r3p2 の Functional Overview の章の「Cache operation」を参
照してください。
L2 キャッシュ・イベントのモニタ
L2 キャッシュは、表 6–10 に示すビルトイン・キャッシュ・イベント・モニタリング
信号をサポートしています。L2 キャッシュは、どの時点でも一度に 2 つのイベント
をカウントすることができます。
Cyclone V デバイス・ハンドブック
Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル
2012 年 11 月
Altera Corporation
第 6 章: Cortex-A9 マイクロプロセッサ・ユニット・サブシステム
Cortex-A9 MPU サブシステム・コンポーネント
6‒29
表 6‒10. L2 キャッシュ・イベント
イベント
CO
説明
L2 キャッシュからのラインのキャッシュ・アウトです。
DRHIT
L2 キャッシュでのデータ・リード・ヒットです。
DRREQ
L2 キャッシュへのデータ・リード・ルックアップです。その後、結果はヒットまたはミス
となります。
DWHIT
L2 キャッシュでのデータ・ライト・ヒットです。
DWREQ
L2 キャッシュへのデータ・リード・ルックアップです。その後、結果はヒットまたはミス
となります。
DWTREQ
ライト・スルー属性を持っている L2 キャッシュへのデータ・ライト・ルックアップです。
その後、結果はヒットまたはミスとなります。
EPFALLOC
L2 キャッシュ内に割り当てられたプリフェッチ・ヒントです。
EPFHIT
L2 キャッシュでのプリフェッチ・ヒント・ヒットです。
EPFRCVDS0
スレーブ・ポート S0 によって受信されるプリフェッチ・ヒントです。
EPFRCVDS1
スレーブ・ポート S1 によって受信されるプリフェッチ・ヒントです。
IPFALLOC
L2 キャッシュ・コントローラによって生成されたプリフェッチの L2 キャッシュへの割り
当てです。
IRHIT
L2 キャッシュでの命令リード・ヒットです。
IRREQ
L2 キャッシュへの命令リード・ルックアップです。その後、結果はヒットまたはミスとな
ります。
SPNIDEN
セキュア非侵襲的特権デバッグのイネーブルです。
SRCONFS0
スレーブ・ポート S0 で確認される推定的な読み出しです。
SRCONFS1
スレーブ・ポート S1 で確認される推定的な読み出しです。
SRRCVDS0
スレーブ・ポート S0 で受信される推定的な読み出しです。
SRRCVDS1
スレーブ・ポート S1 で受信される推定的な読み出しです。
WA
ライト割り当て属性を持った書き込みのミスに起因する L2 キャッシュへのプリフェッチ
の割り当てです。
f ビルトイン L2 イベントのモニタリング機能について詳しくは、ARM のウェブサイト
(infocenter.arm.com)で使用可能な CoreLink Level 2 Cache Controller L2C-310 Technical
Reference Manual の Revision r3p2 の Functional Overview の章の「Implementation details」
を参照してください。
更に L2 キャッシュ・イベントは、専用デバッグ回路を使用してキャプチャおよびタ
イムスタンプできます。
f L2 イベント・キャプチャについて詳しくは、ARM のウェブサイト
(infocenter.arm.com)で使用可能な Cortex-A9 MPCore Technical Reference Manual の
Revision r3p0 の Debug の章を参照してください。
デバッグ・モジュール
MPU サブシステムには、ARM CoreSight のオンチップ・デバッグおよびトレースを経
由するデバッグ・リソースが含まれています。以下の機能が含まれています。
■
2012 年 11 月
各プロセッサ用の個別のプログラム・トレース
Altera Corporation
Cyclone V デバイス・ハンドブック
Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル
6‒30
第 6 章: Cortex-A9 マイクロプロセッサ・ユニット・サブシステム
Cortex-A9 MPU サブシステム・コンポーネント
■
Cortex-A9 MPCore 用のイベント・トレース
■
プロセッサおよび他の HPS デバッグの機能間のクロス・トリガ
プログラム・トレース
各プロセッサには、リアルタイムの命令フロー・トレースを提供する独立した PTM
が内蔵されています。PTM は、多くのサード・パーティのデバッグ・ツールと互換
性があります。
PTM は、高圧縮フォーマットのトレース・データを提供します。トレース・データ
には、ウェイポイントと呼ばれるプログラム実行フローでの特定ポイントのための
タグが含まれています。ウェイポイントは、プログラム・フローにおける特定イベ
ントまたは変更です。
PTM は、表 6–11 に示したウェイポイントを認識してタグを付けます。
表 6‒11. PTM でサポートされているウェイポイント
タイプ
間接分岐
ウェイポイントに関する追加情報
ターゲット・アドレスおよびコンディ
ション・コード
直接分岐
コンディション・コード
命令バリアの命令
—
例外
例外が発生した位置
プロセッサ命令設定ステートの変更
—
プロセッサ・セキュリティ・ステートの変更
—
コンテキスト ID の変更
—
停止デバッグ・モードがイネーブルされてい
る場合のデバッグ・ステート間の出入り
—
PTM は、以下を含むウェイポイントの追加情報をオプションとして提供します。
■
ウェイポイント間のプロセッサ・サイクル・カウント
■
グローバル・タイムスタンプ値
f グローバル・タイムスタンプについて詳しくは、Cyclone V デバイス・ハン
ドブック volume 3 の CoreSight Debug and Trace の章を参照してください。
■
直接分岐用のターゲット・アドレス
f PTM について詳しくは、ARM のウェブサイト(infocenter.arm.com)で使用可能な
CoreSight PTM-A9 Technical Reference Manual の Revision r1p0 を参照してください。
イベント・トレース
各プロセッサからのイベントは PTM への入力として使用できます。PTM は、これら
のイベントをトレース状態およびトリガ状態として使用できます。
イベント・トレースについて詳しくは、6–11 ページの「パフォーマンス・モニタリ
ング・ユニット」を参照してください。.
Cyclone V デバイス・ハンドブック
Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル
2012 年 11 月
Altera Corporation
第 6 章: Cortex-A9 マイクロプロセッサ・ユニット・サブシステム
Cortex-A9 MPU サブシステムのレジスタ実装
6‒31
f トリガ機能およびトレース機能について詳しくは、ARM のウェブサイト
(infocenter.arm.com)で使用可能な CoreSight PTM-A9 Technical Reference Manual の
Revision r1p0 を参照してください。
クロス・トリガ
PTM は、トリガ・イベントをエクスポートしてトリガ入力時に動作を実行できます。
クロス・トリガ信号は、FPGA ファブリックを含む他の HPS デバッグ・コンポーネン
トとインタフェースします。また、1 つのプロセッサのブレークポイントは他のプロ
セッサのブレークをトリガできます。
f クロス・トリガについて詳しくは、Cyclone V デバイス・ハンドブック volume 3 の
CoreSight Debug and Trace の章を参照してください。
f MPU のハードウェアのデバッグについて詳しくは、Cyclone V デバイス・ハンドブッ
ク volume 3 の CoreSight Debug and Trace の章を参照してください。
Cortex-A9 MPU サブシステムのレジスタ実装
以下のコンフィギュレーションは、Cortex-A9 サブシステムのレジスタを通して使用
可能です。
■
MMU や L1 キャッシュを含むプロセッサに関連するすべての制御は、各個別のプロ
セッサの Coprocessor 15(CP15)レジスタを使用して制御されます。
■
タイマおよび GIC 用の制御を含むすべての SCU レジスタは、メモリ・マップ・アク
セス可能です。
■
すべての L2 キャッシュ・レジスタはメモリ・マップされています。
f SCU および L2 キャッシュを含むペリフェラル・スレーブ・ポートのアドレス・マップ
について詳しくは、Cyclone V デバイス・ハンドブック volume 3 の Introduction to the
Hard Processor System の章を参照してください。アルテラ Cortex-A9 MPU サブシステ
ムの詳細な定義について詳しくは、ARM のウェブサイト(infocenter.arm.com)で使
用可能な Cortex-A9 MPCore Technical Reference Manual の Revision r1p0、および CoreLink
Level 2 Cache Controller L2C-310 Technical Reference Manual の Revision r3p2 を参照してく
ださい。
改訂履歴
表 6–12 に、本資料の改訂履歴を示します。
表 6‒12. 改訂履歴
バー
ジョン
日付
2012 年 11 月
1.2
2012 年 5 月
1.1
2012 年 1 月
1.0
2012 年 11 月
変更内容
マイナーな更新。
■
ACP ID マッパの説明の追加。
■
冗長な情報の集約。
初版。
Altera Corporation
Cyclone V デバイス・ハンドブック
Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル
6‒32
第 6 章: Cortex-A9 マイクロプロセッサ・ユニット・サブシステム
改訂履歴
Cyclone V デバイス・ハンドブック
Volume 3:ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル
2012 年 11 月
Altera Corporation
Fly UP