PDF version - ARM Information Center

Cortex -M4
®
リ ビ ジ ョ ン r0p1
テ ク ニ カル リ フ ァ レ ン ス マニ ュ アル
こ こ に記載 さ れる内容は英語原文よ り 抄訳 さ れた も のです。 抄訳が原文に
相違する場合はすべて原文が優先 し ます。 また、 英語版の改訂版が発行 さ
れた場合には、 最新の情報は英語版を ご覧 く だ さ い。
Copyright © 2009, 2010 ARM Limited. All rights reserved.
ARM DDI 0439CJ (ID050813)
Cortex-M4
テ ク ニ カル リ フ ァ レ ン ス マニ ュ アル
Copyright © 2009, 2010 ARM Limited. All rights reserved.
リ リ ース情報
本書には次の変更が加え ら れてい ます。
改訂履歴
日付
変更箇所
公開の有無
変更内容
2009 年 12 月 22 日
A
公開版、 限定ア ク セ ス
r0p0 用の最初の リ リ ース
2010 年 3 月 2 日
B
公開
r0p0 用の 2 番目の リ リ ース
2010 年 6 月 29 日
C
公開
r0p1 用の最初の リ リ ース
著作権
®
ま たは ™ の付いた用語 と ロ ゴは、 本著作権条項で特に明記 さ れていない限 り 、 EU お よ び他諸国におけ る
ARM® Limited の登録商標 ま たは商標です。 本書に記載 さ れてい る他の商標その他の名前は、 対応す る 所有
者の商標の場合があ り ます。
本書に記載 さ れてい る情報の全部 ま たは一部、 な ら びに本書で紹介す る 製品は、 著作権所有者の文書に よ
る事前の許可を得ない限 り 、 転用 ・ 複製す る こ と を禁 じ ます。
本書に説明 さ れてい る製品は、 継続的に開発 と 改良が行われてい ます。 本書に含 まれてい る 製品お よ びそ
の利用方法についての情報は、 ARM Limited が利用者の利益のために提供す る も のです。 し たがっ て当社
では、 製品の商品性 ま たは目的への適合性を含め、 黙示的 ・ 明示的に関係な く 一切の保証を行い ません。
本書は、 本製品の利用者をサポー ト す る こ と だけ を目的 と し てい ます。 本書に記載 さ れてい る 情報の使
用、 情報の誤 り ま たは省略、 あ る いは本製品の誤使用に よ っ て発生 し たいかな る 損失や損害について も 、
ARM Limited は一切責任を負い ません。
本書におけ る ARM と い う 用語は、 「ARM、 ま たは該当す る 場合にはその子会社を含む」 と い う 意味で使
用 さ れてい ます。
本書に記載 さ れてい る情報の一部は、 IEEE 規格 754-2008、 『IEEE Standard for Binary Floating-Point
Arithmetic』 に基づいてい ます。 IEEE は、 本書に記載 さ れてい る 方法に よ る設置お よ び使用か ら 生 じ る い
かな る 問題について も 責任を負い ません。
機密保持ス テー タ ス
本書は非機密扱いで あ り 、 本書を使用、 複製、 お よ び開示す る権利は、 ARM お よ び ARM が本書を提供 し
た当事者 と の間で締結 し た契約の条項に基づいた ラ イ セ ン ス の制限に よ り 異な り ます。
製品ス テー タ ス
本書には最終情報 (完成製品に関す る 情報) が記載 さ れてい ます。
Web ア ド レ ス
http://www.arm.com
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
ii
目次
Cortex-M4 テ ク ニ カル リ フ ァ レ ン ス マニ ュ アル
序章
本書について .............................................................................................................. ix
ご意見 ・ ご質問 ......................................................................................................... xii
第1章
は じ めに
1.1
1.2
1.3
1.4
1.5
1.6
第2章
機能について ........................................................................................................... 2-2
イ ン タ フ ェ ース ....................................................................................................... 2-5
プ ロ グ ラ マ モデル
3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8
3.9
ARM DDI 0439CJ
ID 0 5 0 8 1 3
1-2
1-3
1-4
1-5
1-6
1-9
機能の説明
2.1
2.2
第3章
このプ ロ セ ッ サについて .........................................................................................
機能 ..........................................................................................................................
イ ン タ フ ェ ース .......................................................................................................
構成可能なオプ シ ョ ン .............................................................................................
製品説明書 ...............................................................................................................
製品 リ ビ ジ ョ ン .......................................................................................................
プ ログ ラ マモデルについて ..................................................................................... 3-2
動作 と 実行のモー ド ................................................................................................ 3-3
命令セ ッ ト の概要 .................................................................................................... 3-4
システム ア ド レ スマ ッ プ ...................................................................................... 3-15
ラ イ ト バ ッ フ ァ ..................................................................................................... 3-18
排他モニ タ ............................................................................................................. 3-19
ビ ッ ト バン ド ......................................................................................................... 3-20
プ ロ セ ッ サ コ ア レ ジス タ の概要 ........................................................................... 3-22
例外 ........................................................................................................................ 3-24
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
iii
目次
第4章
シ ス テム制御
4.1
4.2
4.3
第5章
メ モ リ 保護ユニ ッ ト
5.1
5.2
5.3
第6章
ITM について ......................................................................................................... 10-2
ITM の機能の説明 .................................................................................................. 10-3
ITM のプ ログ ラ マ モデル ....................................................................................... 10-4
ト レ ースポー ト イ ン タ フ ェ ースユニ ッ ト
11.1
11.2
11.3
付録 A
DWT について ......................................................................................................... 9-2
DWT の機能の説明 .................................................................................................. 9-3
DWT のプ ログ ラ マモデル ....................................................................................... 9-4
計装 ト レ ース マ ク ロ セル ユニ ッ ト
10.1
10.2
10.3
第 11 章
デバ ッ グについて .................................................................................................... 8-2
AHB-AP について .................................................................................................... 8-6
フ ラ ッ シ ュパ ッ チおよびブ レー ク ポ イ ン ト ユニ ッ ト (FPB) について .................... 8-9
デー タ ウ ォ ッ チポ イ ン ト および ト レ ースユニ ッ ト
9.1
9.2
9.3
第 10 章
FPU について .......................................................................................................... 7-2
FPU の機能の説明 ................................................................................................... 7-3
FPU のプ ログ ラ マモデル ........................................................................................ 7-9
デバ ッ グ
8.1
8.2
8.3
第9章
NVIC について ......................................................................................................... 6-2
NVIC の機能の説明 .................................................................................................. 6-3
NVIC のプ ログ ラ マモデル ....................................................................................... 6-4
浮動小数点ユニ ッ ト
7.1
7.2
7.3
第8章
MPU について ......................................................................................................... 5-2
MPU の機能の説明 .................................................................................................. 5-3
MPU のプ ログ ラ マモデル ....................................................................................... 5-4
ネス ト 型ベ ク タ 割 り 込み コ ン ト ロー ラ
6.1
6.2
6.3
第7章
システム制御について ............................................................................................. 4-2
レ ジス タ の概要 ....................................................................................................... 4-3
レ ジス タ の説明 ....................................................................................................... 4-5
Cortex-M4 TPIU について ..................................................................................... 11-2
TPIU の機能の説明 ................................................................................................ 11-3
TPIU のプ ロ グ ラ マモデル ..................................................................................... 11-5
リ ビジ ョ ン
用語集
ARM DDI 0439CJ
ID 0 5 0 8 1 3
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
iv
表目次
Cortex-M4 テ ク ニ カル リ フ ァ レ ン ス マニ ュ アル
表 1-1
表 3-1
表 3-2
表 3-3
表 4-1
表 4-2
表 4-3
表 4-4
表 5-1
表 6-1
表 6-2
表 7-1
表 7-2
表 7-3
表 7-4
表 8-1
表 8-2
表 8-3
表 8-4
表 8-5
表 8-6
表 8-7
表 9-1
表 10-1
表 10-2
表 11-1
表 11-2
表 11-3
ARM DDI 0439CJ
ID050813
改訂履歴 .......................................................................................................................................... ii
オプ シ ョ ン実装 コ ンポーネ ン ト .................................................................................................. 1-5
Cortex-M4 の命令セ ッ ト の概要 .................................................................................................. 3-4
Cortex-M4 の DSP 命令セ ッ ト の概要 ......................................................................................... 3-9
メ モ リ 領域 ................................................................................................................................ 3-16
シス テム制御レ ジス タ ................................................................................................................ 4-3
ACTLR のビ ッ ト 割 り 当て .......................................................................................................... 4-5
CPUID のビ ッ ト 割 り 当て ........................................................................................................... 4-6
AFSR のビ ッ ト 割 り 当て ............................................................................................................. 4-7
MPU レ ジス タ ............................................................................................................................. 5-4
NVIC レ ジス タ ............................................................................................................................ 6-4
ICTR のビ ッ ト 割 り 当て .............................................................................................................. 6-5
FPU の命令セ ッ ト ...................................................................................................................... 7-4
デ フ ォル ト NaN 値 ..................................................................................................................... 7-6
QNaN と SNaN の処理 ............................................................................................................... 7-7
Cortex-M4 (FPU 付き) の浮動小数点シス テムレ ジス タ .......................................................... 7-9
Cortex-M4 ROM テーブルの識別値 ............................................................................................ 8-3
Cortex-M4 ROM テーブルの コ ンポーネン ト .............................................................................. 8-4
SCS 識別値 ................................................................................................................................. 8-5
デバ ッ グレ ジス タ ....................................................................................................................... 8-5
AHB-AP レ ジス タ の概要 ............................................................................................................ 8-6
CSW のビ ッ ト 割 り 当て .............................................................................................................. 8-7
FPB レ ジス タ の概要 ................................................................................................................. 8-10
DWT レ ジス タ の概要 .................................................................................................................. 9-4
ITM レ ジス タ の概要 .................................................................................................................. 10-4
ITM_TPR のビ ッ ト 割 り 当て ..................................................................................................... 10-5
TPIU レ ジス タ .......................................................................................................................... 11-5
TPIU_ACPR のビ ッ ト 割 り 当て ................................................................................................ 11-6
TPIU_FFSR のビ ッ ト 割 り 当て ................................................................................................. 11-7
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
v
表目次
表
表
表
表
表
表
表
表
表
表
表
11-4
11-5
11-6
11-7
11-8
11-9
11-10
11-11
A-1
A-2
A-3
ARM DDI 0439CJ
ID050813
TPIU_FFCR のビ ッ ト 割 り 当て ................................................................................................ 11-8
TRIGGER のビ ッ ト 割 り 当て .................................................................................................... 11-9
統合 ETM デー タ のビ ッ ト 割 り 当て .......................................................................................... 11-9
ITATBCTR2 のビ ッ ト 割 り 当て ............................................................................................... 11-10
統合 ITM デー タ のビ ッ ト 割 り 当て ......................................................................................... 11-11
ITATBCTR0 のビ ッ ト 割 り 当て ............................................................................................... 11-12
TPIU_ITCTRL のビ ッ ト 割 り 当て ........................................................................................... 11-12
TPIU_DEVID のビ ッ ト 割 り 当て ............................................................................................. 11-13
A 版 ............................................................................................................................................. A-1
A 版 と B 版の相違点 ................................................................................................................... A-1
B 版 と C 版の相違点 ................................................................................................................... A-1
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
vi
図目次
Cortex-M4 テ ク ニ カル リ フ ァ レ ン ス マニ ュ アル
図 2-1
図 3-1
図 3-2
図 3-3
図 4-1
図 4-2
図 4-3
図 6-1
図 7-1
図 8-1
図 8-2
図 10-1
図 11-1
図 11-2
図 11-3
図 11-4
図 11-5
図 11-6
図 11-7
図 11-8
図 11-9
図 11-10
図 11-11
図 11-12
ARM DDI 0439CJ
ID050813
Cortex-M4 のブ ロ ッ ク図 ............................................................................................................. 2-2
シス テム ア ド レ スマ ッ プ ......................................................................................................... 3-15
ビ ッ ト バン ド のマ ッ ピ ング ....................................................................................................... 3-21
プ ロ セ ッ サのレ ジス タ セ ッ ト ................................................................................................... 3-22
ACTLR のビ ッ ト 割 り 当て .......................................................................................................... 4-5
CPUID のビ ッ ト 割 り 当て ........................................................................................................... 4-6
AFSR のビ ッ ト 割 り 当て ............................................................................................................. 4-7
ICTR のビ ッ ト 割 り 当て .............................................................................................................. 6-4
FPU のレ ジス タ バン ク ............................................................................................................... 7-3
CoreSight の検出 ........................................................................................................................ 8-2
CSW のビ ッ ト 割 り 当て .............................................................................................................. 8-7
ITM_TPR のビ ッ ト 割 り 当て ..................................................................................................... 10-5
TPIU のブ ロ ッ ク図 ................................................................................................................... 11-3
TPIU_ACPR のビ ッ ト 割 り 当て ................................................................................................ 11-6
TPIU_FFSR のビ ッ ト 割 り 当て ................................................................................................. 11-7
TPIU_FFCR のビ ッ ト 割 り 当て ................................................................................................ 11-7
TRIGGER のビ ッ ト 割 り 当て .................................................................................................... 11-8
統合 ETM デー タ のビ ッ ト 割 り 当て .......................................................................................... 11-9
ITATBCTR2 のビ ッ ト 割 り 当て ............................................................................................... 11-10
統合 ITM デー タ のビ ッ ト 割 り 当て ......................................................................................... 11-11
ITATBCTR0 のビ ッ ト 割 り 当て ............................................................................................... 11-11
TPIU_ITCTRL のビ ッ ト 割 り 当て ........................................................................................... 11-12
TPIU_DEVID のビ ッ ト 割 り 当て ............................................................................................. 11-13
TPIU_DEVTYPE のビ ッ ト 割 り 当て ....................................................................................... 11-14
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
vii
序章
本章では、 Cortex-M4 テ ク ニカル リ フ ァ レ ン ス マニ ュ アル (TRM) の概要を紹介 し ます。
本章は次のセ ク シ ョ ンで構成 さ れてい ます。
•
「本書について」 (ページ ix)
「ご意見 ・ ご質問」 (ページ xii)
•
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
viii
序章
本書について
本書は、 Cortex-M4 プ ロ セ ッ サ用のテ ク ニ カル リ フ ァ レ ン ス マニ ュ アルです。
製品 リ ビ ジ ョ ン ス テー タ ス
rnpn 識別子は、 本書に記載 さ れてい る 製品の リ ビ ジ ョ ン ス テー タ ス を示 し てお り 、
それぞれの意味は次の と お り です。
rn
製品が大幅に修正 さ れた こ と を示 し てい ま す。
pn
製品に小 さ な修正ま たは変更が加え ら れた こ と を示 し てい ます。
対象読者
本書は、 Cortex-M4 プ ロ セ ッ サ をベース と し た シ ス テ ム オンチ ッ プ (SoC) デバ イ ス の
実装を計画 し てい る シ ス テ ム設計者、 シ ス テ ム イ ン テ グ レー タ 、 検証技術者、 ソ フ
ト ウ ェ アプ ロ グ ラ マ を対象 と し てい ます。
本書の使用法
本書は以下の章に分かれてい ます。
第 1 章 は じ めに
プ ロ セ ッ サの コ ン ポーネ ン ト お よ び製品説明書について説明 し ます。
第 2 章 機能の説明
プ ロ セ ッ サの機能について説明 し ます。
第 3 章 プ ロ グ ラ マモデル
プ ロ セ ッ サの レ ジ ス タ セ ッ ト 、 動作モー ド 、 その他プ ロ セ ッ サのプ ロ グ
ラ ミ ン グに関す る 情報について説明 し ます。
第 4 章 シ ス テ ム制御
シ ス テ ム制御用の レ ジ ス タ お よ びプ ロ グ ラ マモデルについて説明 し ま
す。
第 5 章 メ モ リ 保護ユニ ッ ト
メ モ リ 保護ユニ ッ ト (MPU) について説明 し ます。
第 6 章 ネ ス ト 型ベ ク タ割 り 込みコ ン ト ロー ラ
割 り 込みの処理 と 制御について説明 し ます。
第 7 章 浮動小数点ユニ ッ ト
浮動小数点ユニ ッ ト (FPU) について説明 し ます。
第 8 章 デバ ッ グ
プ ロ セ ッ サ コ アのデバ ッ グお よ びテ ス ト について説明 し ます。
第 9 章 デー タ ウ ォ ッ チポ イ ン ト および ト レース ユニ ッ ト
デー タ ウ ォ ッ チポ イ ン ト および ト レース (DWT) ユニ ッ ト について説明
し ます。
第 10 章 計装 ト レース マ ク ロ セル ユニ ッ ト
計装 ト レース マ ク ロ セル (ITM) ユニ ッ ト について説明 し ます。
第 11 章 ト レース ポー ト イ ン タ フ ェ ース ユニ ッ ト
ト レース ポー ト イ ン タ フ ェース ユニ ッ ト (TPIU) について説明 し ます。
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
ix
序章
付録 A リ ビ ジ ョ ン
本書の各版におけ る 技術的な変更点について説明 し ます。
用語集
本書で使用 さ れてい る用語の定義について説明 し ます。
表記規則
本書では次の表記規則が採用 さ れてい ます。
•
「書体の一般的な規則」
書体の一般的な規則
本書で使用 さ れてい る 書体の一般的な規則は次の と お り です。
斜体
重要な注釈の強調、 特別な用語の初出時、 本書内での相互参照 と
引用に使用 さ れます。
太字
メ ニ ュー名な ど の イ ン タ フ ェ ース要素を強調す る ために太字が使
用 さ れます。 信号名を示すために も 使用 さ れてい ます。 ま た、 必
要に応 じ て説明表の用語に も 太字が使用 さ れてい ます。
monospace
コ マ ン ド 、 フ ァ イ ル名、 プ ロ グ ラ ム名、 ソ ース コ ー ド な ど の、
キーボー ド か ら 入力可能なテ キ ス ト を示 し てい ます。
monospace
コ マ ン ド ま たはオプシ ョ ンに使用可能な略語を示 し てい ます。 コ
マ ン ド やオプシ ョ ンの名前を全部入力す る 代わ り に、 下線部分の
テ キ ス ト だけ を入力 し て こ れ ら を指定で き ます。
monospace italic
具体的な値に置 き 換え ら れ る 引数を示 し てい ます。
monospace
サンプル コ ー ド 以外で使用 さ れてい る 場合、 言語のキー ワー ド を
示 し てい ます。
< および >
コ ー ド ま たは コ ー ド 片の中で不等号の括弧で囲まれてい る 部分
は、 アセ ンブ ラ 構文内で置 き 換え可能な こ と を示 し てい ます。 次
に例を示 し ます。
ADD Rd, Rn, <op2>
参照資料
こ のセ ク シ ョ ンでは、 ARM Limited やサー ド パーテ ィ が発行 し てい る出版物を紹介
し ます。
ARM ド キ ュ メ ン ト は、 Infocenter(http://infocenter.arm.com) でご覧になれます。
ARM の刊行物
本書には、 こ の製品に固有の情報が記載 さ れてい ます。 他の関連情報については、
以下の出版物を参照 し て下 さ い。
•
ARMv7-M アーキテ ク チ ャ リ フ ァ レ ン ス マニ ュ アル (ARM DDI 0403)
•
ARM Cortex-M4 統合および実装マニ ュ アル (ARM DII 0239)
•
ARM ETM-M4 テ ク ニ カル リ フ ァ レ ン ス マニ ュ アル (ARM DDI 0440)
•
ARM AMBA® 3 AHB-Lite プ ロ ト コ ル (v1.0) (ARM IHI 0033)
•
ARM AMBA™ 3 APB プ ロ ト コ ル仕様 (ARM IHI 0024)
•
ARM CoreSight™ コ ン ポーネ ン ト テ ク ニ カル リ フ ァ レ ン ス マニ ュ アル (ARM DDI
0314)
•
ARM デバ ッ グ イ ン タ フ ェ ース v5、 アーキテ ク チ ャ 仕様 (ARM IHI 0031)
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
x
序章
その他の刊行物
こ のセ ク シ ョ ンでは、 サー ド パーテ ィ が発行 し てい る 関連出版物を紹介 し ます。
•
IEEE 規格 『Test Access Port and Boundary-Scan Architecture 』 1149.1-2001 (JTAG)
•
IEEE 規格 『IEEE Standard for Binary Floating-Point Arithmetic』 754-2008
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
xi
序章
ご意見 ・ ご質問
ARM では、 製品 と 本書に関す る ご意見 ・ ご質問な ど をお待ち し てお り ます。
製品に関する ご意見
本製品に関す る ご意見 ・ ご質問な ど がご ざい ま し た ら 、 次の情報 と と も に製品購入
元ま でご連絡下 さ い。
•
製品名
•
製品の リ ビ ジ ョ ン ま たはバージ ョ ン
•
で き る だけ詳細な説明。 該当す る 場合には、 現象や診断手順 も ご記載下 さ い。
本書に関する ご意見
内容に関 し てのご意見は、 次の情報を ご記載の う え、 電子 メ ールで [email protected] へ
お寄せ下 さ い。
•
題名
•
文書番号 (ARM DDI 0439C)
•
ご意見のあ る ページ番号
•
ご意見についての簡潔な説明
補足ま たは改善すべ き 点についての一般的な ご意見 も お待ち し てお り ます。
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
xii
第1章
は じ めに
本章では、 プ ロ セ ッ サ と その命令セ ッ ト の概要を紹介 し ます。 本章は次のセ ク シ ョ ンで
構成 さ れてい ます。
•
「 こ のプ ロ セ ッ サについて」 (ページ 1-2)
「機能」 (ページ 1-3)
•
「 イ ン タ フ ェ ース」 (ページ 1-4)
•
「構成可能なオプシ ョ ン」 (ページ 1-5)
•
「製品説明書」 (ページ 1-6) .
•
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
1-1
は じ めに
1.1
このプ ロ セ ッ サについて
Cortex-M4 プ ロ セ ッ サは、 少ないゲー ト 数、 短い割 り 込みレ イ テ ン シ、 低 コ ス ト のデ
バ ッ グの特徴を持つ低電力プ ロ セ ッ サです。 Cortex-M4 (FPU 付 き) は Cortex-M4 プ
ロ セ ッ サ と 同 じ 機能を持ち、 浮動小数点算術演算機能を含むプ ロ セ ッ サです
(第 7 章 浮動小数点ユニ ッ ト を参照)。 ど ち ら のプ ロ セ ッ サ も 、 高速な割 り 込み応答
機能を要求す る 組み込み用途に適 し てい ます。
本書を通 じ て、 Cortex-M4 と い う 用語は、 特に記載がなければ Cortex-M4 と
Cortex-M4 (FPU 付 き ) の両方のプ ロ セ ッ サを指 し て使用 さ れてい ます。
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
1-2
は じ めに
1.2
機能
Cortex-M4 プ ロ セ ッ サは次の部分で構成 さ れます。
ARM DDI 0439CJ
ID050813
•
プロセ ッサコア
•
ネ ス ト 型ベ ク タ割 り 込みコ ン ト ロ ー ラ (NVIC)。 NVIC は密接にプ ロ セ ッ サ コ ア
に統合 さ れてい る ため、 割 り 込み処理レ イ テ ン シが短縮 さ れてい ます。
•
複数のハ イ パフ ォーマ ン ス バ ス イ ン タ フ ェース
•
次の よ う なオプシ ョ ン機能を持つ、 低 コ ス ト のデバ ッ グ ソ リ ュ ーシ ョ ン
— ブ レー ク ポ イ ン ト と コ ー ド へのパ ッ チの実装
—
ウ ォ ッ チポ イ ン ト 、 ト レース、 シ ス テ ムプ ロ フ ァ イ リ ン グの実装
— printf() 形式のデバ ッ グのサポー ト
—
ト レース ポー ト アナ ラ イ ザ (TPA) と のブ リ ッ ジ
•
メ モ リ 保護ユニ ッ ト (MPU) オプシ ョ ン
•
Cortex-M4 (FPU 付 き ) のみ、 浮動小数点 (FPU) ユニ ッ ト
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
1-3
は じ めに
1.3
イ ン タ フ ェ ース
プ ロ セ ッ サには次の外部 イ ン タ フ ェース があ り ます。
•
複数の メ モ リ お よ びデバ イ ス バ ス イ ン タ フ ェース
•
ETM イ ン タ フ ェース
•
ト レース ポー ト イ ン タ フ ェ ース
•
デバ ッ グポー ト イ ン タ フ ェ ース
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
1-4
は じ めに
1.4
構成可能なオプ シ ョ ン
Cortex-M4 実装の構成には、 表 1-1 に示す次のオプシ ョ ン コ ン ポーネ ン ト を含め る こ
と がで き ます。
表 1-1 オプ シ ョ ン実装 コ ンポーネン ト
コ ンポーネン ト
説明
MPU
第 5 章 メ モ リ 保護ユニ ッ ト を参照
FPB
第 8 章 デバ ッ グ を参照
DWT
第 9 章 データ ウ ォ ッ チポ イ ン ト およ び ト レース
ユニ ッ ト を参照
ITM
第 10 章 計装 ト レース マ ク ロ セル ユニ ッ ト を参照
ETM
『ETM-M4 テ ク ニカル リ フ ァ レ ン ス マニ ュ アル』
を参照
AHB-AP
第 8 章 デバ ッ グ を参照
HTM イ ン タ フ ェー
ス
「AHB ト レース マ ク ロ セル イ ン タ フ ェース」
TPIU
第 11 章 ト レース ポー ト イ ン タ フ ェース ユニ ッ ト
を参照
WIC
「低電力モー ド 」 (ページ 6-3) を参照
デバ ッ グ ポー ト
「デバ ッ グポー ト AHB-AP イ ン タ フ ェース」
(ページ 2-7) を参照
FPU
第 7 章 浮動小数点ユニ ッ ト を参照
ビ ッ ト バン ド
「ビ ッ ト バン ド 」 (ページ 3-20) を参照
AHB の継続的な制
御
「バス イ ン タ フ ェース」 (ページ 2-5) を参照
(ページ 2-7) を参照
注
ト レース機能は、 次の組み合わせでのみ構成可能です。
•
ト レース機能な し
•
ITM と DWT
•
ITM、 DWT、 ETM
•
ITM、 DWT、 ETM、 HTM
DWT で提供 さ れ る 機能は個別に構成可能です。
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
1-5
は じ めに
1.5
製品説明書
こ のセ ク シ ョ ンでは、 プ ロ セ ッ サの説明書、 設計フ ロ ー と の関係、 お よ び関連す る
アーキ テ ク チ ャ の標準 と プ ロ ト コ ルについて説明 し ます。
こ のセ ク シ ョ ンに記載 さ れてい る 説明書の詳細については、 「参照資料」 (ページ x)
を参照 し て下 さ い。
1.5.1
説明書
Cortex-M4 の説明書は次の と お り です。
テ ク ニ カル リ フ ァ レ ン ス マニ ュ アル
『 テ ク ニ カル リ フ ァ レ ン ス マニ ュ アル』 (TRM) には、 Cortex-M4 プ ロ
セ ッ サの機能 と 、 動作に対す る 機能オプシ ョ ンの影響が記載 さ れてい ま
す。 設計フ ロ ーのすべての段階で必要 と な り ます。 Cortex-M4 プ ロ セ ッ
サの実装 と 統合の方法に よ っ ては、 TRM に記載 さ れてい る 動作の一部
が適用 さ れない場合があ り ます。 Cortex-M4 プ ロ セ ッ サのプ ロ グ ラ ミ ン
グに関 し てのお問い合わせ先は次の と お り です。
•
次の事項を決定す る には、 実装者へお問い合わせ下 さ い。
—
実装のビル ド 構成
プ ロ セ ッ サの実装前に統合が行われたか、 行われた場合はそ
の内容
使用す る SoC のピ ン構成を決定す る 場合は、 イ ン テ グ レー タ にお
問い合わせ下 さ い。
—
•
統合お よ び実装マニ ュ アル
『統合および実装マニ ュ アル』 (IIM) には、 次の内容が記載 さ れてい ます。
•
利用可能な ビル ド 構成オプシ ョ ン と 、 それ ら のオプシ ョ ンの選択
に関連す る 考慮点
•
ビル ド 構成オプシ ョ ンで レ ジ ス タ転送レベル (RTL) を構成す る 方
法
•
プ ロ セ ッ サ を SoC に統合す る 方法。 こ れには、 統合キ ッ ト の説明
と 、 必要な統合を実現す る よ う にマ ク ロ セルを構成す る ため、 イ
ン テ グ レー タ が固定す る 必要のあ る ピ ンについての説明が含まれ
てい ます。
•
プ ロ セ ッ サ を設計に組み入れ る 方法。 こ れには、 基本設計のガ イ
ド ラ イ ン、 テ ス ト 設計 (DFT) に関す る情報、 お よ びネ ッ ト リ ス ト
の動的な検証を プ ロ セ ッ サで実行す る 方法についての説明が含ま
れてい ます。
•
設計の統合 と 実装をサ イ ンオ フす る手順
ARM 製品の配布物には、 リ フ ァ レ ン ス ス ク リ プ ト と 、 それ ら を使用 し
て設計を実装す る 方法についての説明が含ま れてい ます。
EDA ツールのベン ダか ら 入手で き る リ フ ァ レ ン ス手法の説明書は、 こ
の IIM を補完す る も のです。
IIM は非公開書籍で、 ラ イ セ ン ス に よ っ てのみ入手で き ます。
ETM-M4 テ ク ニカル リ フ ァ レ ン ス マニ ュ アル
『ETM-M4 テ ク ニ カル リ フ ァ レ ン ス マニ ュ アル』 (TRM) には、
Cortex-M4 のエ ンベデ ッ ド ト レース マ ク ロ セルの機能 と 動作が記載 さ れ
てい ます。 設計フ ロ ーのすべての段階で必要 と な り ます。 一般に
ETM-M4 は、 単一のマ ク ロ セル と し て実装 さ れ る前に、 Cortex-M4 プ ロ
セ ッ サ と 統合 さ れます。
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
1-6
は じ めに
Cortex-M4 ユーザガ イ ド リ フ ァ レ ン ス マニ ュ アル
こ の ド キ ュ メ ン ト には、 ARM パー ト ナーが構成で き 、 ARM Cortex-M4
プ ロ セ ッ サのユーザガ イ ド に含め る こ と がで き る 参照資料が記載 さ れて
い ます。 一般に、 次の よ う に対応 さ せ る こ と がで き ます。
•
こ の参照資料の各章が、 ユーザガ イ ド のセ ク シ ョ ンに対応す る 。
•
こ の参照資料の各 ト ッ プ レベル セ ク シ ョ ンが、 ユーザガ イ ド の章
に対応す る 。
ただ し 、 ARM が こ の資料を提供す る と き の ラ イ セ ン ス契約の条件に
よ っ ては、 こ の資料を ど の よ う に編成す る こ と も で き ます。
1.5.2
設計フ ロー
プ ロ セ ッ サは、 合成可能な RTL と し て配布 さ れます。 プ ロ セ ッ サ を製品で使用す る
前に、 次の手順を実行す る 必要があ り ます。
実装
実装者は RTL を構成 し 、 合成 し ます。
統合
イ ン テ グ レー タ は、 実装 さ れた設計を接続 し て SoC に し ます。 こ れに
は、 メ モ リ シ ス テ ムお よ びペ リ フ ェ ラ ルへの接続 も 含まれます。
プロ グ ラ ミ ング
シ ス テ ムプ ロ グ ラ マは、 プ ロ セ ッ サの構成 と 初期化に必要な ソ フ ト ウ ェ
ア を開発 し 、 必要な アプ リ ケーシ ョ ン ソ フ ト ウ ェ ア を テ ス ト し ます。
プ ロ セ ス の各段階は、 それぞれ別の団体が行っ て も か ま い ません。 実装 と 統合での
選択は、 プ ロ セ ッ サの動作 と 機能に影響 し ます。
MCU では多 く の場合、 完全な設計を合成す る前に、 1 つの設計チームがプ ロ セ ッ サ
を統合 し ます。 ま たは、 チームがプ ロ セ ッ サを自分た ちだけで合成す る か、 部分的
に統合 し て、 マ ク ロ セルを生成 し 、 別のチームが統合す る こ と も で き ます。
最終的なデバ イ ス の運用は、 次の要素に依存 し ます。
ビル ド の構成
実装者は、 RTL ソ ース フ ァ イ ルの事前処理方法に影響す る オプシ ョ ン を
選択 し ます。 こ れ ら のオプシ ョ ンには通常、 1 つ以上の領域に影響す る
ロ ジ ッ ク を含め る か ど う か、 最大周波数、 お よ び結果 と し て作成 さ れ る
マ ク ロ セルの機能が含まれます。
構成入力
イ ン テ グ レー タ は、 入力を特定の値に固定する こ と で、 プ ロ セ ッ サの機
能の一部を構成 し ます。 こ れ ら の構成は、 ソ フ ト ウ ェ ア構成が行われ る
前の、 起動時の動作に影響 し ます。 構成に よ り 、 ソ フ ト ウ ェ アで使用可
能なオプシ ョ ン を制限す る こ と も で き ます。
ソ フ ト ウ ェ ア構成
プ ロ グ ラ マは、 レ ジ ス タ に特定の値をプ ロ グ ラ ム し て、 プ ロ セ ッ サを構
成 し ます。 こ の操作は、 プ ロ セ ッ サの動作に影響を与え ます。
注
本書には、 ビル ド 構成オプシ ョ ンに適用可能な実装定義の機能が記載 さ れてい ます。
機能が含ま れてい る と 記載 さ れてい る場合、 適切な ビル ド お よ びピ ン構成オプシ ョ
ンが選択 さ れてい る こ と を意味 し ます。 機能が稼働 し てい る / 可能であ る と 記載 さ れ
てい る 場合、 その機能が ソ フ ト ウ ェ アで も 構成 さ れてい る こ と を意味 し ます。
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
1-7
は じ めに
1.5.3
アーキテ ク チ ャ と プ ロ ト コルの情報
プ ロ セ ッ サは、 次に示す各仕様に準拠、 ま たは こ れ ら の仕様を実装 し ます。
•
「ARM アーキテ ク チ ャ」
•
「バス アーキ テ ク チ ャ」
•
「デバ ッ グ」
•
「エンベデ ッ ド ト レース マ ク ロ セル」
本書は、 アーキ テ ク チ ャ リ フ ァ レ ン ス マニ ュ アル、 アーキテ ク チ ャ 仕様、 プ ロ ト コ
ル仕様、 お よ び関連す る外部標準を補完す る も のです。 こ れ ら の ソ ース に記載 さ れ
てい る 情報は、 本書で繰 り 返 し 言及 さ れてい ません。
ARM アーキテ ク チ ャ
プ ロ セ ッ サには、 ARMv7-M アーキテ ク チ ャ プ ロ フ ァ イ ルが実装 さ れてい ます。
『ARMv7-M アーキ テ ク チ ャ リ フ ァ レ ン ス マニ ュ アル』 を参照 し て下 さ い。
バス アーキテ ク チ ャ
プ ロ セ ッ サには、 3 つのプ ラ イ マ リ バ ス イ ン タ フ ェース が存在 し 、 AMBA 3
AHB-Lite プ ロ ト コ ルのバ リ ア ン ト が実装 さ れてい ます。 CoreSight 用の イ ン タ フ ェ ー
ス と 、 AMBA 3 APB プ ロ ト コ ルを使用す る他のデバ ッ グ コ ン ポーネ ン ト も 実装 さ れ
てい ます。 次に示す仕様を参照 し て下 さ い。
•
『ARM AMBA 3 AHB-Lite プ ロ ト コ ル (v1.0)』
•
『ARM AMBA 3 APB プ ロ ト コ ル仕様』
デバ ッ グ
プ ロ セ ッ サのデバ ッ グ機能には、 ARM デバ ッ グ イ ン タ フ ェース アーキ テ ク チ ャ が実
装 さ れてい ます。 『ARM デバ ッ グ イ ン タ フ ェース v5、 アーキ テ ク チ ャ 仕様』 を参照
し て下 さ い。
エ ンベデ ッ ド ト レース マ ク ロ セル
プ ロ セ ッ サの ト レース機能には、 ARM エンベデ ッ ド ト レース マ ク ロ セルアーキテ ク
チ ャ が実装 さ れてい ます。 『ARM エンべデ ッ ド ト レース マ ク ロ セルアーキテ ク チ ャ
仕様』 を参照 し て下 さ い。
浮動小数点ユニ ッ ト
Cortex-M4 (FPU 付 き ) プ ロ セ ッ サには、 ARMv7-M アーキ テ ク チ ャ の一部であ る
FPv4-SP アーキ テ ク チ ャ で定義 さ れた単精度浮動小数点デー タ 処理が実装 さ れてい ま
す。 『ANSI/IEEE Std 754-2008, IEEE Standard for Binary Floating-Point Arithmetic』 に準拠
し た浮動小数点計算機能を使用で き ます。 『ARMv7-M アーキ テ ク チ ャ リ フ ァ レ ン ス
マニ ュ アル』 お よ び第 7 章 浮動小数点ユニ ッ ト を参照 し て下 さ い。
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
1-8
は じ めに
1.6
製品 リ ビ ジ ョ ン
こ こ では、 製品 リ ビ ジ ョ ン間の機能の相違点について説明 し ます。
•
1.6.1
「r0p0 と r0p1 の機能的な違い」
r0p0 と r0p1 の機能的な違い
機能面の相違点の概要は、 次の と お り です。
•
ARM DDI 0439CJ
ID050813
ウ ェ イ ト ス テー ト が挿入 さ れ る転送中に、 継続的な AHB の制御を保証す る た
めの新 し い実装オプシ ョ ン
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
1-9
第2章
機能の説明
本章では、 プ ロ セ ッ サ と その外部 イ ン タ フ ェース の概要を紹介 し ます。 本章は次のセ ク
シ ョ ンで構成 さ れてい ます。
•
「機能について」 (ページ 2-2)
「 イ ン タ フ ェ ース」 (ページ 2-5)
•
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
2-1
機能の説明
2.1
機能について
Cortex-M4 プ ロ セ ッ サの構造を、 図 2-1 に示 し ます。
䣅䣱䣴䣶䣧䣺䢯䣏䢶儻兑償儧儙
๭僰㎸僥傰僮僙䢢
㟁ຊไᚚ
‡
儊儋兠儓儆儧儻䢢
๭僰㎸僥䢢
儗兗儬兑兠免䢢
䢪䣙䣋䣅䢫
‡ 儛兎儆兏兓儈先
儱儝儬ᆺ䢢儽儓儣䢢
๭僰㎸僥䢢
儗兗儬兑兠免䢢
䢪䣐䣘䣋䣅䢫
‡
†
䣅䣱䣴䣶䣧䣺䢯䣏䢶僤僅僕䢢
䣅䣱䣴䣶䣧䣺䢯䣏䢶
凚䣈䣒䣗௜傳凛䢢䢢
‡
儹免儧儛光儵儧儥䢢
儺児兠儓允儈兗儬䢢
䢪䣈䣒䣄䢫
儌兗儽儫儧儭䢢儬児兠儝䢢
兂儓兑償兏䢢䢪䣇䣖䣏䢫
‡
充兆兎䢢ಖㆤ
兊儯儧儬䢢䢪䣏䣒䣗䢫
‡
僤僅僕䣌䣖䣃䣉䢢
儫儴儧儔允兠儬
䢢䢪䣕䣙䢯䣆䣒僤僅僕䢢
䣕䣙䣌䢯䣆䣒䢫
‡
儫兠儣䢢
儊儍儧儥允儈兗儬䢢
傰僮僙儬児兠儝䢢
䢪䣆䣙䣖䢫
‡
䣃䣊䣄
儆儓償儝䢢允兠儬䢢
䢪䣃䣊䣄䢯䣃䣒䢫
儛兎儆兏兓儈先僤僅
僕䢢䣌䣖䣃䣉儫儴儧儔䢢
儈兗儣儹儋兠儝
䣋䣅䣱䣦䣧䢢䣃䣊䣄䢯
䣎䣫䣶䣧䢢࿨௧䢢
儈兗儣儹儋兠儝
儴儝兂儬兎儧儓儝
䣆䣅䣱䣦䣧䢢
䣃䣊䣄䢯䣎䣫䣶䣧䢢
儫兠儣䢢
儈兗儣儹儋兠儝
儛儝優兄䢢
䣃䣊䣄䢯䣎䣫䣶䣧䢢
儛儝優兄䢢
儈兗儣儹儋兠儝
‡
ィ⿦䢢
儬児兠儝兂儓兑償兏䢢
䢪䣋䣖䣏䢫
儬児兠儝允兠儬䢢
儈兗儣儹儋兠儝兊儯儧儬䢢
䢪䣖䣒䣋䣗䢫
儬児兠儝允兠儬䢢
儈兗儣儹儋兠儝
‡䢢䣅䣱䣴䣧䣕䣫䣩䣪䣶䢢
䣔䣑䣏優兠儺兏
䣒䣒䣄䢢䣃䣒䣄䢢
儫儴儧儔儛儝優兄䢢
儈兗儣儹儋兠儝
†䢢䣅䣱䣴䣶䣧䣺䣦䢯䣏䢶䣈儻兑償儧儙僔ሙྜ傎儗儆僑僕ᾋືᑠᩘⅬ兊儯儧儬䢪䣈䣒䣗䢫傲ྵ僤僲僤傿
‡䢢儎儻儛克兗儗兗允兠儱兗儬
図 2-1 Cortex-M4 のブ ロ ッ ク図
Cortex-M4 プ ロ セ ッ サは次の部分で構成 さ れます。
•
ARM DDI 0439CJ
ID050813
ゲー ト 数の少ない、 割 り 込み処理レ イ テ ン シの短いプ ロ セ ッ サ コ ア。 コ アには
次の も のが含ま れます。
—
『ARMv7-M アーキ テ ク チ ャ リ フ ァ レ ン ス マニ ュ アル』 で定義 さ れてい る
Thumb 命令セ ッ ト のサブセ ッ ト
—
バン ク 付 き ス タ ッ ク ポ イ ン タ (SP)
—
ハー ド ウ ェ ア整数除算命令 SDIV と UDIV
—
ハン ド ラ モー ド と ス レ ッ ド モー ド
—
Thumb 状態 と デバ ッ グ状態
—
割 り 込みレ イ テ ン シ を短縮す る ための割 り 込み可能な継続命令 LDM、 STM、
PUSH、 POP のサポー ト
—
割 り 込み処理ルーチン (ISR) への入退出の レ イ テ ン シ を短縮す る ため、 自
動的にプ ロ セ ッ サ状態を保存 / 復元
—
ARMv6 のビ ッ グエ ンデ ィ ア ン バ イ ト 不変お よ び リ ト ルエ ンデ ィ ア ン ア ク
セ ス のサポー ト
—
ARMv6 のア ン ア ラ イ ン ド ア ク セ ス のサポー ト
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
2-2
機能の説明
•
•
•
•
Cortex-M4 (FPU 付 き ) には浮動小数点ユニ ッ ト (FPU) が搭載 さ れてお り 、 次
の機能があ り ます。
—
単精度 (C float) デー タ 処理操作用の 32 ビ ッ ト 命令
—
精度向上のための複合積和演算命令 (融合 MAC)
—
変換、 加算、 減算、 乗算 (オプシ ョ ンで累積付 き )、 除算、 平方根のハー
ド ウ ェ アでのサポー ト
—
非正規化 と すべての IEEE 丸めモー ド のハー ド ウ ェ アでのサポー ト
—
32 本の専用の 32 ビ ッ ト 単精度レ ジ ス タ 。 16 本のダブル ワー ド レ ジ ス タ
と し て も 使用可能です。
—
分離 さ れた 3 ス テージのパ イ プ ラ イ ン
ネ ス ト 型ベ ク タ割 り 込みコ ン ト ロ ー ラ (NVIC)。 NVIC は密接にプ ロ セ ッ サ コ ア
に統合 さ れてい る ため、 割 り 込み処理レ イ テ ン シが短縮 さ れてい ます。 次の機
能が含ま れてい ます。
—
外部割 り 込み。 数は 1 ~ 240 で構成可能です。
—
優先度ビ ッ ト 。 ビ ッ ト 数は 3 ~ 8 で構成可能です。
—
—
割 り 込みの優先度を動的に再設定
優先度のグループ化。 こ れに よ り 、 横取 り す る 割 り 込みレベル と 横取 り し
ない割 り 込みレベルを選択で き る よ う にな り ます。
—
割 り 込みのテールチ ェ イ ン と 後着をサポー ト 。 こ れに よ り 、 割 り 込み と 割
り 込みの間におけ る 状態の保存 と 復元のオーバヘ ッ ド な し で、 連続 し て割
り 込み処理が可能にな り ます。
—
プ ロ セ ッ サの状態は割 り 込み開始時に自動的に保存 さ れ、 割 り 込みか ら の
復帰時には自動的に復元 さ れ、 命令のオーバヘ ッ ド は発生 し ません。
—
(オプシ ョ ン) ウ ェー ク ア ッ プ割 り 込みコ ン ト ロー ラ (WIC)。 超低電力の
ス リ ープモー ド をサポー ト し ます。
メ モ リ 保護ユニ ッ ト (MPU)。 メ モ リ 保護に使用 さ れ る オプシ ョ ンの MPU で、
次の特徴があ り ます。
—
8 つの メ モ リ 領域
—
サブ領域デ ィ セーブル (SRD) に よ り 、 メ モ リ 領域を効率的に活用で き ます。
—
バ ッ ク グ ラ ウ ン ド 領域の許可に よ り 、 デフ ォ ル ト の メ モ リ マ ッ プ属性を与
え る こ と が可能
バス イ ン タ フ ェース
—
3 つの ア ド バン ス ト ハ イ パフ ォーマン ス バス ラ イ ト (AHB-Lite) イ ン タ
フ ェース : ICode、 DCode、 シ ス テ ムバ ス イ ン タ フ ェース
—
専用ペ リ フ ェ ラ ルバス (PPB)。 こ れは ア ド バン ス ト ペ リ フ ェ ラ ルバス
(APB) イ ン タ フ ェ ース を基礎 と し てい ます。
—
•
—
メ モ リ ア ク セ ス のア ラ イ メ ン ト
—
書 き込みデー タ をバ ッ フ ァ す る ための ラ イ ト バ ッ フ ァ
—
マルチプ ロ セ ッ サシ ス テ ム用の排他ア ク セ ス転送
低 コ ス ト のデバ ッ グ ソ リ ュ ーシ ョ ン。 次の機能が含まれてい ます。
—
ARM DDI 0439CJ
ID050813
不可分な ビ ッ ト バン ド 書 き 込みお よ び読み出 し 操作を持つビ ッ ト バン ド の
サポー ト
メ モ リ マ ッ プ さ れたデバ イ スへのア ク セ ス、 コ アがホール ト し た と き の内
部 コ ア レ ジ ス タ へのア ク セ ス、 お よ び SYSRESETn がアサー ト 中のデ
バ ッ グ制御レ ジ ス タ へのア ク セ ス を含む、 シ ス テ ム内のすべての メ モ リ お
よ びレ ジ ス タ に対す る デバ ッ グ ア ク セ ス
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
2-3
機能の説明
ARM DDI 0439CJ
ID050813
—
シ リ アルワ イ ヤ デバ ッ グポー ト (SW-DP) ま たは シ リ アル ワ イ ヤ JTAG デ
バ ッ グポー ト (SWJ-DP) デバ ッ グ ア ク セ ス
—
(オプシ ョ ン) フ ラ ッ シ ュ パ ッ チおよ びブ レー ク ポ イ ン ト (FPB) ユニ ッ ト
に よ る 、 ブ レー ク ポ イ ン ト お よ び コ ー ド へのパ ッ チの実装
—
(オプシ ョ ン) データ ウ ォ ッ チポ イ ン ト およ び ト レース (DWT) ユニ ッ ト に
よ る、 ウ ォ ッ チポ イ ン ト 、 デー タ ト レース、 シ ス テ ムプ ロ フ ァ イ リ ン グの
実装
—
(オプシ ョ ン) 計装 ト レース マ ク ロ セル (ITM) に よ る 、 printf() 形式のデ
バ ッ グのサポー ト
—
(オプシ ョ ン) ト レース ポー ト イ ン タ フ ェース ユニ ッ ト (TPIU)。 ト レース
ポー ト アナ ラ イ ザ (TPA) へのブ リ ッ ジ用で、 シ ン グルワ イ ヤ出力 (SWO)
モー ド が含まれます。
—
(オプシ ョ ン) 命令 ト レース用の エンベデ ッ ド ト レース マ ク ロ セル (ETM)
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
2-4
機能の説明
2.2
イ ン タ フ ェ ース
プ ロ セ ッ サには次の外部 イ ン タ フ ェース が含まれます。
•
「バス イ ン タ フ ェ ース」
•
「ETM イ ン タ フ ェース」 (ページ 2-7)
「AHB ト レース マ ク ロ セル イ ン タ フ ェ ース」 (ページ 2-7)
•
「デバ ッ グポー ト AHB-AP イ ン タ フ ェース」 (ページ 2-7)
•
2.2.1
バス イ ン タ フ ェ ース
プ ロ セ ッ サには、 3 つの外部 ア ド バン ス ト ハ イ パフ ォーマン ス バス (AHB)-Lite バス
イ ン タ フ ェース と 、 1 つの ア ド バン ス ト ペ リ フ ェ ラ ルバス (APB) イ ン タ フ ェース が
含ま れてい ます。
•
「ICode メ モ リ イ ン タ フ ェース」
•
「DCode メ モ リ イ ン タ フ ェース」 (ページ 2-6)
「シ ス テ ム イ ン タ フ ェース」 (ページ 2-6)
•
「専用ペ リ フ ェ ラ ルバス (PPB)」 (ページ 2-6)
•
プ ロ セ ッ サは、 ウ ェ イ ト が行われた転送中の制御情報の保持を除いて、 AMBA 3 仕
様を満た し てい ます。 AMBA 3 AHB-Lite プ ロ ト コ ルでは、 ス レーブが ウ ェ イ ト 状態
を要求 し てい る 場合、 マ ス タ は次の場合を除いては転送 タ イ プを変更で き ません。
•
IDLE 転送時は、 マ ス タ は転送 タ イ プを IDLE か ら NONSEQ に変更で き ます。
•
BUSY 転送で固定長バース ト の場合、 マ ス タ は転送 タ イ プを BUSY か ら SEQ
へ変更で き ます。
•
BUSY 転送でバース ト 長が未定義の場合、 マ ス タ は転送 タ イ プを BUSY か ら 任
意の転送 タ イ プへ変更で き ます。
プ ロ セ ッ サは、 ウ ェ イ ト が行われた転送中にア ク セ ス タ イ プを SEQ ま たは NONSEQ
か ら IDLE へ変更す る こ と があ る ため、 こ の定義を満た し てい ません。 ま た、 プ ロ
セ ッ サはア ド レ スや他の制御情報を変更 し 、 それに よ っ て新 し い位置へのア ク セ ス
を要求す る こ と があ り ます。 取 り 消 さ れた元のア ド レ ス は再度要求で き ません。 こ
の場合、 前のア ク セ ス が ウ ェ イ ト 状態で完了待ちであ る ために実行 さ れていない転
送は取 り 消 さ れます。 こ れに よ っ て、 プ ロ セ ッ サは必要がな く な っ た ア ク セ ス を取
り 消 し 、 ウ ェ イ ト 状態のシ ス テ ムで も 割 り 込みレ イ テ ン シの短縮 と 高パフ ォーマ ン
ス を実現で き ます。
AMBA 3 仕様への完全な準拠が必要な場合は、 設計で AHB_CONST_CTRL パ ラ メ ー
タ を 1 に設定す る こ と も で き ます。 こ れに よ っ て、 ウ ェ イ ト 状態の応答中に転送が
発行 さ れた場合、 その転送は取 り 消 し や変更が行われず、 元の転送が実行 さ れます。
こ のパ ラ メ ー タ を設定す る と 、 ウ ェ イ ト 状態のシ ス テ ム で割 り 込みや分岐の レ イ テ
ン シが増大 し 、 コ アのパフ ォーマ ン ス が低下す る 可能性があ り ます。
ICode メ モ リ イ ン タ フ ェ ース
コ ー ド メ モ リ 空間であ る 0x00000000 ~ 0x1FFFFFFC の命令フ ェ ッ チは、 こ の 32 ビ ッ ト
AHB-Lite バ ス上で行われます。
デバ ッ ガは こ の イ ン タ フ ェ ース にア ク セ ス で き ません。 すべての フ ェ ッ チは ワー ド
幅です。 ワー ド あ た り の フ ェ ッ チ さ れ る 命令数は、 実行 さ れてい る コ ー ド と 、 メ モ
リ 内での コー ド のア ラ イ メ ン ト に よ っ て異な り ます。
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
2-5
機能の説明
DCode メ モ リ イ ン タ フ ェ ース
コ ー ド メ モ リ 空間であ る 0x00000000 ~ 0x1FFFFFFF のデー タ お よ びデバ ッ グ ア ク セ ス は、
こ の 32 ビ ッ ト AHB-Lite バ ス上で行われます。 こ のバ ス上での コ アデー タ ア ク セ ス
は、 デバ ッ グ ア ク セ ス よ り も 優先 さ れます。 こ のため、 こ のバ ス に対 し て コ ア ア ク
セ ス と デバ ッ グ ア ク セ ス が同時に発生す る と 、 コ ア ア ク セ ス が完了す る ま でデバ ッ
グ ア ク セ ス は ウ ェ イ ト 状態にな り ます。
こ の イ ン タ フ ェース の制御 ロ ジ ッ ク は、 ア ン ア ラ イ ン ド なデー タ お よ びデバ ッ グ ア
ク セ ス を、 2 つま たは 3 つの (ア ン ア ラ イ ン ド ア ク セ ス のサ イ ズ と ア ラ イ メ ン ト に
よ っ て異な り ます) ア ラ イ ン ド ア ク セ ス に変換 し ます。 こ のため、 ア ン ア ラ イ ン ド
ア ク セ ス が完了す る ま で、 以後のデー タ ま たはデバ ッ グ ア ク セ ス はすべて ス ト ール
し ます。
注
ICode AHB バ ス イ ン タ フ ェース と DCode AHB バ ス イ ン タ フ ェース と の外部アービ ト
レーシ ョ ンでは常に、 DCode の優先度を ICode よ り も 高 く す る こ と を強 く お勧め し
ます。
シス テムイ ン タ フ ェ ース
ア ド レ ス範囲 0x20000000 ~ 0xDFFFFFFF と 、 0xE0100000 ~ 0xFFFFFFFF の命令フ ェ ッ チ と デー
タ お よ びデバ ッ グ ア ク セ ス は、 こ の 32 ビ ッ ト AHB-Lite バス上で行われます。
こ のバ スへ同時にア ク セ ス が行われた場合、 アービ ト レーシ ョ ンは優先順位の高い
も のか ら 低い も のへ、 次の順序で行われます。
•
デー タ ア ク セ ス
•
命令お よ びベ ク タ フ ェ ッ チ
•
デバ ッ グ
シ ス テ ムバ ス イ ン タ フ ェース には、 ア ン ア ラ イ ン ド ア ク セ ス、 FPB の リ マ ッ プ さ れ
た ア ク セ ス、 ビ ッ ト バン ド ア ク セ ス、 パ イ プ ラ イ ン化 さ れた命令フ ェ ッ チを処理す
る ための制御 ロ ジ ッ ク が含ま れてい ます。
専用ペ リ フ ェ ラルバス (PPB)
外部 PPB 空間であ る 0xE0040000 ~ 0xE00FFFFF のデー タ お よ びデバ ッ グ ア ク セ ス は、 こ
の 32 ビ ッ ト ア ド バン ス ト ペ リ フ ェ ラ ルバス (APB) 上で行われます。 ト レース ポー ト
イ ン タ フ ェース ユニ ッ ト (TPIU) お よ びベン ダ固有のペ リ フ ェ ラ ルは こ のバ ス上に存
在 し ます。
コ アデー タ ア ク セ ス はデバ ッ グ ア ク セ ス よ り も 優先度が高いため、 こ のバ ス に対 し
て コ ア ア ク セ ス と デバ ッ グ ア ク セ ス が同時に発生す る と 、 コ ア ア ク セ ス が完了す る
ま でデバ ッ グ ア ク セ ス は ウ ェ イ ト 状態にな り ます。 こ の イ ン タ フ ェース では、 外部
PPB 空間をデ コー ド す る ために必要な ア ド レ ス ビ ッ ト のみがサポー ト さ れます。
外部 PPB (EPPB) 空間であ る 0xE0040000 ~ 0xE0100000 は、 CoreSight 互換のデバ ッ グお よ
び ト レース コ ン ポーネ ン ト で使用す る ための も ので、 多 く の特殊な制限があ る ため、
通常のシ ス テ ムペ リ フ ェ ラ ルには適 し てい ません。 シ ス テ ムペ リ フ ェ ラ ルはシ ス テ
ムバ ス ア ド レ ス空間の適切なデバ イ ス タ イ プ領域に配置 し 、 APB ベース のデバ イ ス
には AHB2APB プ ロ ト コ ル コ ンバー タ を使用す る こ と をお勧め し ます。
EPPB 空間の制限は次の と お り です。
ARM DDI 0439CJ
ID050813
•
特権モー ド でのみア ク セ ス可能
•
プ ロ セ ッ サでデー タ のエ ンデ ィ ア ン形式が ど の よ う に設定 さ れてい る かにかか
わ ら ず、 常に リ ト ルエ ンデ ィ ア ン形式でア ク セ ス さ れ る 。
•
ア ク セ ス が ス ト ロ ン グ リ オーダ
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
2-6
機能の説明
2.2.2
•
ア ン ア ラ イ ン ド ア ク セ ス の結果が予測不能
•
32 ビ ッ ト のデー タ ア ク セ ス のみサポー ト
•
デバ ッ グポー ト と ロ ーカルプ ロ セ ッ サか ら はア ク セ ス可能だが、 シ ス テ ム内の
他のプ ロ セ ッ サか ら はア ク セ ス で き ない。
ETM イ ン タ フ ェ ース
ETM イ ン タ フ ェースは、 ETM-M4 か ら プ ロ セ ッ サへの簡単な接続を可能に し ます。
こ の イ ン タ フ ェース には、 命令 ト レース か ら ETM へのチ ャ ネルが用意 さ れてい ます。
『ARM エンべデ ッ ド ト レース マ ク ロ セルアーキテ ク チ ャ仕様』 を参照 し て下 さ い。
2.2.3
AHB ト レースマ ク ロ セル イ ン タ フ ェ ース
AHB ト レース マ ク ロ セル (HTM) イ ン タ フ ェース を使用す る と 、 AHB ト レース マ ク
ロ セルをプ ロ セ ッ サへ簡単に接続で き ます。 こ の イ ン タ フ ェース は、 HTM へのデー
タ ト レース用チ ャ ネル と し て動作 し ます。
実装で HTM イ ン タ フ ェース を使用す る には、 こ の イ ン タ フ ェース を提供す る 必要が
あ り ます。 HTM ポー ト で ト レースデー タ の供給を可能にす る 前に、 デバ ッ グ例外お
よ びモニ タ 制御レ ジ ス タ (DEMCR) の TRCENA を 1 にセ ッ ト す る 必要があ り ます。
『ARMv7-M アーキ テ ク チ ャ リ フ ァ レ ン ス マニ ュ アル』 を参照 し て下 さ い。
2.2.4
デバ ッ グポー ト AHB-AP イ ン タ フ ェ ース
プ ロ セ ッ サには、 デバ ッ グ ア ク セ ス用の ア ド バン ス ト ハ イ パフ ォーマ ン ス バス ア ク
セ ス ポー ト (AHB-AP) イ ン タ フ ェース が含ま れてい ます。 外部のデバ ッ グポー ト
(DP) コ ン ポーネ ン ト は、 こ の イ ン タ フ ェ ース にア ク セ ス し ます。 Cortex-M4 シ ス テ
ムは、 次の 3 つの DP 実装をサポー ト し てい ます。
•
シ リ アル ワ イ ヤ JTAG デバ ッ グポー ト (SWJ-DP)。 SWJ-DP は、 JTAG-DP と シ リ
アルワ イ ヤ デバ ッ グポー ト (SW-DP) を組み合わせた、 標準的な CoreSight デ
バ ッ グ ポー ト です。
•
SW-DP。 AHB-AP ポー ト への 2 ピ ン イ ン タ フ ェース を提供 し ます。
•
DP な し。 プ ロ セ ッ サ内にデバ ッ グ機能が存在し ない場合、 DP は必要あ り ません。
こ れ ら 2 つの DP 実装では、 プ ロ セ ッ サへのデバ ッ グ ア ク セ ス を行 う ために提供 さ れ
る 機構が異な り ます。 実装には、 一方の コ ン ポーネ ン ト のみを搭載す る必要があ り
ます。
注
実装には、 SW-DP や SWJ-DP の代わ り に、 実装者固有の DP が搭載 さ れてい る こ と
も あ り ます。 詳細については、 実装者に問い合わせて下 さ い。
DP コ ン ポーネン ト の詳細については、 『CoreSight コ ン ポーネ ン ト テ ク ニ カル リ フ ァ
レ ン ス マニ ュ アル』 を参照 し て下 さ い。
AHB-AP の詳細については、 第 8 章 デバ ッ グ を参照 し て下 さ い。
DP と AP は、 組み合わせて デバ ッ グ ア ク セ ス ポー ト (DAP) と 呼ばれます。
デバ ッ グ イ ン タ フ ェ ース の詳細については、 『ARM デバ ッ グ イ ン タ フ ェース v5、
アーキ テ ク チ ャ 仕様』 を参照 し て下 さ い。
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
2-7
第3章
プ ログ ラ マ モデル
本章では、 プ ロ セ ッ サのプ ロ グ ラ マモデルについて説明 し ます。 本章は次のセ ク シ ョ ン
で構成 さ れてい ます。
•
「プ ロ グ ラ マモデルについて」 (ページ 3-2)
「動作 と 実行のモー ド 」 (ページ 3-3)
•
「命令セ ッ ト の概要」 (ページ 3-4)
•
「シ ス テ ム ア ド レ ス マ ッ プ」 (ページ 3-15)
•
「 ラ イ ト バ ッ フ ァ 」 (ページ 3-18)
•
「ビ ッ ト バン ド 」 (ページ 3-20)
•
「プ ロ セ ッ サ コ ア レ ジ ス タ の概要」 (ページ 3-22)
•
「例外」 (ページ 3-24)
•
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
3-1
プ ログ ラ マ モデル
3.1
プ ログ ラ マ モデルについて
『ARMv7-M アーキ テ ク チ ャ リ フ ァ レ ン ス マニ ュ アル』 には、 プ ロ グ ラ マモデルの完
全な説明が含ま れてい ます。 本章では、 Cortex-M4 プ ロ セ ッ サのプ ロ グ ラ マモデルの
概要について説明 し 、 実装定義のオプシ ョ ン を解説 し ます。 ま た、 モデルで使用 さ
れ る ARMv7-M Thumb 命令 と 、 プ ロ セ ッ サでの各命令のサ イ ク ル数について も 説明
し ます。 その他、 次に示す内容についてはそれぞれの章で説明 さ れてい ます。
•
第 4 章では、 プ ロ グ ラ マモデルのシ ス テ ム制御機能の概要について説明 し ます。
•
第 5 章では、 プ ロ グ ラ マモデルの MPU 機能の概要について説明 し ます。
•
第 6 章では、 プ ロ グ ラ マモデルの NVIC 機能の概要について説明 し ます。
•
第 7 章では、 プ ロ グ ラ マモデルの FPU 機能の概要について説明 し ます。
•
第 8 章では、 プ ロ グ ラ マモデルのデバ ッ グ機能の概要について説明 し ます。
•
第 9 章では、 プ ロ グ ラ マモデルの DWT 機能の概要について説明 し ます。
•
第 10 章では、 プ ロ グ ラ マモデルの ITM 機能の概要について説明 し ます。
•
第 11 章では、 プ ロ グ ラ マモデルの TPIU 機能の概要について説明 し ます。
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
3-2
プ ログ ラ マ モデル
3.2
動作 と 実行のモー ド
こ のセ ク シ ョ ンでは、 Cortex-M4 プ ロ セ ッ サの動作 と 実行のモー ド について簡単に説
明 し ます。 詳細については、 『ARMv7-M アーキ テ ク チ ャ リ フ ァ レ ン ス マニ ュ アル』
を参照 し て下 さ い。
3.2.1
動作モー ド
プ ロ セ ッ サは、 ス レ ッ ド モー ド と ハン ド ラ モー ド の 2 つの動作モー ド をサポー ト し
てい ます。
3.2.2
•
プ ロ セ ッ サは リ セ ッ ト 時、 ま たは例外か ら の復帰の結果 と し て ス レ ッ ド モー ド
に移行 し ます。 ス レ ッ ド モー ド では、 特権 コー ド と 非特権 コ ー ド の両方が実行
で き ます。
•
プ ロ セ ッ サは、 例外の結果 と し てハン ド ラ モー ド に移行 し ます。 ハン ド ラ モー
ド では、 すべての コ ー ド が特権 コ ー ド です。
動作状態
プ ロ セ ッ サは、 次の 2 つの動作状態で動作で き ます。
3.2.3
•
Thumb 状態。 こ れは、 16 ビ ッ ト お よ び 32 ビ ッ ト のハーフ ワー ド ア ラ イ ン ド
Thumb 命令を実行す る通常の実行状態です。
•
デバ ッ グ状態。 こ れは、 プ ロ セ ッ サがホール ト デバ ッ グ を行っ てい る 状態で
す。
特権ア ク セス と ユーザア ク セス
コ ー ド は、 特権ま たは非特権 と し て実行で き ます。 非特権実行では、 一部の リ ソ ー
スへのア ク セ ス が制限ま たは禁止 さ れます。 特権実行では、 すべての リ ソ ース にア
ク セ ス で き ます。 ハン ド ラ モー ド は常に特権です。 ス レ ッ ド モー ド は、 特権ま たは
非特権のいずれかで実行で き ます。
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
3-3
プ ログ ラ マ モデル
3.3
命令セ ッ ト の概要
こ のセ ク シ ョ ンでは、 次の内容を解説 し ます。
•
「Cortex-M4 の命令」
•
「 ロ ー ド / ス ト アの タ イ ミ ン グ」 (ページ 3-12)
「他の Cortex プ ロ セ ッ サ と のバ イ ナ リ 互換性」 (ページ 3-14)
•
3.3.1
Cortex-M4 の命令
プ ロ セ ッ サには、 ARMv7-M Thumb 命令セ ッ ト が実装 さ れてい ます。 Cortex-M4 命令
と 、 各命令のサ イ ク ル数を、 表 3-1 に示 し ます。 サ イ ク ル数は、 0 ウ ェ イ ト ス テー ト
のシ ス テ ム を基準 と し た も のです。
アセ ンブ ラ 構文で、 動作に よ っ ては <op2> フ ィ ール ド を次のいずれか 1 つのオプシ ョ
ンに置 き 換え る こ と がで き ます。
•
単純な レ ジ ス タ 指定子、 例 と し て Rm
•
イ ミ デ ィ エー ト 値でシ フ ト し た レ ジ ス タ 、 例 と し て Rm, LSL #4
•
レ ジ ス タ 値でシ フ ト し た レ ジ ス タ 、 例 と し て Rm, LSL Rs
•
イ ミ デ ィ エー ト 値、 例 と し て #0xE000E000
表の簡素化のため、 ロ ー ド / ス ト アのすべてのア ド レ シ ン グモー ド は示 さ れてい ませ
ん。 詳細については、 『ARMv7-M アーキ テ ク チ ャ リ フ ァ レ ン ス マニ ュ アル』 を参照
し て下 さ い。
表 3-1 のサ イ ク ルの列では、 次の略語が使用 さ れてい ます。
P
パ イ プ ラ イ ンの リ フ ィ ルに必要なサ イ ク ル数。 こ れは、 対象の命令のア
ラ イ メ ン ト と 幅、 お よ びプ ロ セ ッ サが早期にア ド レ ス を予測で き る かに
よ り 、 1 ~ 3 サ イ ク ルです。
B
バ リ ア操作を実行す る ために必要なサ イ ク ル数。 DSB お よ び DMB の場合、
最小サ イ ク ル数は 0 です。 ISB の場合、 最小サ イ ク ル数はパ イ プ ラ イ ン
の リ フ ィ ルに必要なサ イ ク ル数 と 同 じ です。
N
ロ ー ド / ス ト ア対象の レ ジ ス タ リ ス ト に含ま れ る レ ジ ス タ の数。 PC や
LR も 含ま れます。
W
適切な イ ベン ト を待つために費や さ れ る サ イ ク ル数。
表 3-1 Cortex-M4 の命令セ ッ ト の概要
動作
説明
アセ ン ブ ラ
サイ クル数
移動
レジス タ
MOV Rd, <op2>
1
16 ビ ッ ト イ ミ デ ィ エー
ト
MOVW Rd, #<imm>
1
イ ミ デ ィ エー ト 値か ら 上
位ビ ッ ト へ
MOVT Rd, #<imm>
1
PC へ
MOV PC, Rm
1+P
加算
ADD Rd, Rn, <op2>
1
PC へ加算
ADD PC, PC, Rm
1+P
キ ャ リ ー付き 加算
ADC Rd, Rn, <op2>
1
ア ド レ ス の生成
ADR Rd, <label>
1
加算
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
3-4
プ ログ ラ マ モデル
表 3-1 Cortex-M4 の命令セ ッ ト の概要 ( 続き )
動作
説明
アセ ン ブ ラ
サイ クル数
減算
減算
SUB Rd, Rn, <op2>
1
ボ ロ ー付き 減算
SBC Rd, Rn, <op2>
1
反転
RSB Rd, Rn, <op2>
1
乗算
MUL Rd, Rn, Rm
1
積和演算
MLA Rd, Rn, Rm
1
積減算
MLS Rd, Rn, Rm
1
符号付き ロ ン グ
SMULL RdLo, RdHi, Rn, Rm
1
符号な し ロ ン グ
UMULL RdLo, RdHi, Rn, Rm
1
符号付き ロ ン グ積和
SMLAL RdLo, RdHi, Rn, Rm
1
符号な し ロ ン グ積和
UMLAL RdLo, RdHi, Rn, Rm
1
符号付き
SDIV Rd, Rn, Rm
2 ~ 12a
符号な し
UDIV Rd, Rn, Rm
2 ~ 12a
符号付き
SSAT Rd, #<imm>, <op2>
1
符号な し
USAT Rd, #<imm>, <op2>
1
比較
CMP Rn, <op2>
1
否定
CMN Rn, <op2>
1
論理積
AND Rd, Rn, <op2>
1
排他的論理和
EOR Rd, Rn, <op2>
1
論理和
ORR Rd, Rn, <op2>
1
否定論理和
ORN Rd, Rn, <op2>
1
ビッ ト ク リア
BIC Rd, Rn, <op2>
1
補数移動
MVN Rd, <op2>
1
論理積テ ス ト
TST Rn, <op2>
1
排他的論理和テ ス ト
TEQ Rn, <op1>
論理左シ フ ト
LSL Rd, Rn, #<imm>
1
論理左シ フ ト
LSL Rd, Rn, Rs
1
論理右シ フ ト
LSR Rd, Rn, #<imm>
1
論理右シ フ ト
LSR Rd, Rn, Rs
1
算術右シ フ ト
ASR Rd, Rn, #<imm>
1
算術右シ フ ト
ASR Rd, Rn, Rs
1
乗算
除算
飽和
比較
論理
シフ ト
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
3-5
プ ログ ラ マ モデル
表 3-1 Cortex-M4 の命令セ ッ ト の概要 ( 続き )
ARM DDI 0439CJ
ID050813
動作
説明
アセ ン ブ ラ
サイ クル数
ロ ーテー ト
右 ロ ーテー ト
ROR Rd, Rn, #<imm>
1
右 ロ ーテー ト
ROR Rd, Rn, Rs
1
拡張付き
RRX Rd, Rn
1
カウン ト
先行ゼ ロ
CLZ Rd, Rn
1
ロー ド
ワー ド
LDR Rd, [Rn, <op2>]
2b
PC へ
LDR PC, [Rn, <op2>]
2b + P
ハーフ ワー ド
LDRH Rd, [Rn, <op2>]
2b
バイ ト
LDRB Rd, [Rn, <op2>]
2b
符号付き ハーフ ワー ド
LDRSH Rd, [Rn, <op2>]
2b
符号付き バ イ ト
LDRSB Rd, [Rn, <op2>]
2b
ユーザ ワー ド
LDRT Rd, [Rn, #<imm>]
2b
ユーザハーフ ワー ド
LDRHT Rd, [Rn, #<imm>]
2b
ユーザバ イ ト
LDRBT Rd, [Rn, #<imm>]
2b
ユーザ符号付き ハーフ
ワー ド
LDRSHT Rd, [Rn, #<imm>]
2b
ユーザ符号付き バ イ ト
LDRSBT Rd, [Rn, #<imm>]
2b
PC 相対
LDR Rd,[PC, #<imm>]
2b
ダブル ワー ド
LDRD Rd, Rd, [Rn, #<imm>]
1+N
複数
LDM Rn, {<reglist>}
1+N
複数、 PC を含む
LDM Rn, {<reglist>, PC}
1+N+P
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
3-6
プ ログ ラ マ モデル
表 3-1 Cortex-M4 の命令セ ッ ト の概要 ( 続き )
動作
説明
アセ ン ブ ラ
サイ クル数
ストア
ワー ド
STR Rd, [Rn, <op2>]
2b
ハーフ ワー ド
STRH Rd, [Rn, <op2>]
2b
バイ ト
STRB Rd, [Rn, <op2>]
2b
符号付き ハーフ ワー ド
STRSH Rd, [Rn, <op2>]
2b
符号付き バ イ ト
STRSB Rd, [Rn, <op2>]
2b
ユーザ ワー ド
STRT Rd, [Rn, #<imm>]
2b
ユーザハーフ ワー ド
STRHT Rd, [Rn, #<imm>]
2b
ユーザバ イ ト
STRBT Rd, [Rn, #<imm>]
2b
ユーザ符号付き ハーフ
ワー ド
STRSHT Rd, [Rn, #<imm>]
2b
ユーザ符号付き バ イ ト
STRSBT Rd, [Rn, #<imm>]
2b
ダブル ワー ド
STRD Rd, Rd, [Rn, #<imm>]
1+N
複数
STM Rn, {<reglist>}
1+N
プッシュ
PUSH {<reglist>}
1+N
リ ン ク レ ジ ス タ 付き プ ッ
シュ
PUSH {<reglist>, LR}
1+N
ポップ
POP {<reglist>}
1+N
ポ ッ プお よ び復帰
POP {<reglist>, PC}
1+N+P
排他 ロ ー ド
LDREX Rd, [Rn, #<imm>]
2
排他 ロ ー ド 、 ハーフ
LDREXH Rd, [Rn]
2
排他 ロ ー ド 、 バ イ ト
LDREXB Rd, [Rn]
2
排他ス ト ア
STREX Rd, Rt, [Rn, #<imm>]
2
排他ス ト ア、 ハーフ
STREXH Rd, Rt, [Rn]
2
排他ス ト ア、 バ イ ト
STREXB Rd, Rt, [Rn]
2
排他モニ タ の ク リ ア
CLREX
1
プッシュ
ポップ
セマ フ ォ
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
3-7
プ ログ ラ マ モデル
表 3-1 Cortex-M4 の命令セ ッ ト の概要 ( 続き )
動作
説明
アセ ン ブ ラ
サイ クル数
分岐
条件付き
B<cc> <label>
1 ま たは 1
+ Pc
無条件
B <label>
1+P
リ ン ク 付き
BL <label>
1+P
交換付き
BX Rm
1+P
リ ン ク 付き 交換
BLX Rm
1+P
0 の場合に分岐
CBZ Rn, <label>
1 ま たは 1
+ Pc
非 0 の場合に分岐
CBNZ Rn, <label>
1 ま たは 1
+ Pc
バ イ ト テーブル分岐
TBB [Rn, Rm]
2+P
ハーフ ワー ド テーブル分
岐
TBH [Rn, Rm, LSL#1]
2+P
スーパバ イ ザ コ ール
SVC #<imm>
-
If-then-else
IT...<cond>
1d
割 り 込みを不可能にする
CPSID <flags>
1 ま たは 2
割 り 込みを可能にする
CPSIE <flags>
1 ま たは 2
特殊レ ジ ス タ 読み出 し
MRS Rd, <specreg>
1 ま たは 2
特殊レ ジ ス タ 書き 込み
MSR <specreg>, Rn
1 ま たは 2
ブ レー ク ポ イ ン ト
BKPT #<imm>
-
符号付き ハーフ ワー ド か
ら ワー ド
SXTH Rd, <op2>
1
符号付き バ イ ト か ら ワー
ド
SXTB Rd, <op2>
1
符号な し ハーフ ワー ド
UXTH Rd, <op2>
1
符号な し バ イ ト
UXTB Rd, <op2>
1
符号な し 抽出
UBFX Rd, Rn, #<imm>, #<imm>
1
符号付き 抽出
SBFX Rd, Rn, #<imm>, #<imm>
1
クリア
BFC Rd, Rn, #<imm>, #<imm>
1
挿入
BFI Rd, Rn, #<imm>, #<imm>
1
ワー ド 内のバ イ ト
REV Rd, Rm
1
両方のハーフ ワー ド 内の
バイ ト
REV16 Rd, Rm
1
符号付き 下位ハーフ ワー
ド
REVSH Rd, Rm
1
ワー ド 内のビ ッ ト
RBIT Rd, Rm
1
状態変更
拡張
ビッ ト
フ ィ ール ド
反転
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
3-8
プ ログ ラ マ モデル
表 3-1 Cortex-M4 の命令セ ッ ト の概要 ( 続き )
動作
説明
アセ ン ブ ラ
サイ クル数
ヒント
イ ベン ト 送信
SEV
1
イ ベン ト 待ち
WFE
1+W
割 り 込み待ち
WFI
1+W
無操作
NOP
1
命令同期
ISB
1+B
デー タ メ モ リ
DMB
1+B
デー タ 同期
DSB <flags>
1+B
バリア
a. 除算操作では、 必要サ イ ク ル数を最小化す る ため、 入力オペ ラ ン ド の先行の 1 と 0
の数に応 じ て、 早期終了が使用 さ れ ます。
b. 連続す る 単一 ロ ー ド / ス ト ア命令は、 ア ド レ ス お よ びデー タ フ ェ ーズのパ イ プ ラ イ
ン化が可能です。 こ れに よ っ て、 こ れ ら の命令を 1 実行サ イ ク ルで完了で き ます。
c. 条件付 き 分岐は、 分岐が行われない場合は 1 サ イ ク ルで完了 し ます。
d. IT 命令は前の 16 ビ ッ ト Thumb 命令に フ ォ ール ド で き 、 0 サ イ ク ルで実行可能で
す。
Cortex-M4 プ ロ セ ッ サに実装 さ れてい る DSP 命令を、 表 3-2 に示 し ます。
表 3-2 Cortex-M4 の DSP 命令セ ッ ト の概要
動作
説明
アセ ン ブ ラ
サイ クル数
乗算
最上位 32 ビ ッ ト 累算付 き 32 ビ ッ ト 乗算
SMMLA
1
最上位 32 ビ ッ ト 減算付 き 32 ビ ッ ト 乗算
SMMLS
1
最上位 32 ビ ッ ト を返す 32 ビ ッ ト 乗算
SMMUL
1
丸め付 き最上位 32 ビ ッ ト 累算付 き 32 ビ ッ ト 乗算
SMMLAR
1
丸め付 き最上位 32 ビ ッ ト 減算付 き 32 ビ ッ ト 乗算
SMMLSR
1
丸め付 き最上位 32 ビ ッ ト を返す 32 ビ ッ ト 乗算
SMMULR
1
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
3-9
プ ログ ラ マ モデル
表 3-2 Cortex-M4 の DSP 命令セ ッ ト の概要 ( 続き )
動作
説明
アセ ン ブ ラ
サイ クル数
符号付 き乗算
Q を セ ッ ト す る 32 ビ ッ ト 累算付き 16 ビ ッ ト 符号付 き乗算、 下位 × 下位
SMLABB
1
Q を セ ッ ト す る 32 ビ ッ ト 累算付き 16 ビ ッ ト 符号付 き乗算、 下位 × 上位
SMLABT
1
64 ビ ッ ト 累算付 き 16 ビ ッ ト 符号付 き乗算、 下位 × 下位
SMLALBB
1
64 ビ ッ ト 累算付 き 16 ビ ッ ト 符号付 き乗算、 下位 × 上位
SMLALBT
1
単一の 64 ビ ッ ト 累算付 きデ ュ アル 16 ビ ッ ト 符号付 き乗算
SMLALD{X}
1
64 ビ ッ ト 累算付 き 16 ビ ッ ト 符号付 き乗算、 上位 × 下位
SMLALTB
1
64 ビ ッ ト 累算付 き 16 ビ ッ ト 符号付 き乗算、 上位 × 上位
SMLALTT
1
32 ビ ッ ト の結果を生成す る 16 ビ ッ ト 符号付 き乗算、 下位 × 下位
SMULBB
1
32 ビ ッ ト の結果を生成す る 16 ビ ッ ト 符号付 き乗算、 下位 × 上位
SMULBT
1
32 ビ ッ ト の結果を生成す る 16 ビ ッ ト 符号付 き乗算、 上位 × 下位
SMULTB
1
32 ビ ッ ト の結果を生成す る 16 ビ ッ ト 符号付 き乗算、 上位 × 上位
SMULTT
1
最上位 32 ビ ッ ト を返す 16 ビ ッ ト × 32 ビ ッ ト 符号付 き乗算、 下位
SMULWB
1
最上位 32 ビ ッ ト を返す 16 ビ ッ ト × 32 ビ ッ ト 符号付 き乗算、 上位
SMULWT
1
差を返すデ ュ アル 16 ビ ッ ト 符号付 き乗算
SMUSD{X}
1
Q を セ ッ ト す る 32 ビ ッ ト 累算付き 16 ビ ッ ト 符号付 き乗算、 上位 × 下位
SMLATB
1
Q を セ ッ ト す る 32 ビ ッ ト 累算付き 16 ビ ッ ト 符号付 き乗算、 上位 × 上位
SMLATT
1
Q を セ ッ ト す る 単一の 32 ビ ッ ト 累算付き デュ アル 16 ビ ッ ト 符号付 き乗算
SMLAD{X}
1
Q を セ ッ ト す る 32 ビ ッ ト 累算付き 16 ビ ッ ト × 32 ビ ッ ト 符号付 き乗算、
下位
SMLAWB
1
Q を セ ッ ト す る 32 ビ ッ ト 累算付き 16 ビ ッ ト × 32 ビ ッ ト 符号付 き乗算、
上位
SMLAWT
1
Q を セ ッ ト す る 32 ビ ッ ト 累算付き デュ アル 16 ビ ッ ト 符号付 き積減算
SMLSD{X}
1
Q を セ ッ ト す る 64 ビ ッ ト 累算付き デュ アル 16 ビ ッ ト 符号付 き積減算
SMLSLD{X}
1
Q を セ ッ ト す るデ ュ アル 16 ビ ッ ト 符号付き 乗算の和
SMUAD{X}
1
符号な し 乗算
64 ビ ッ ト の結果を生成す る、 ダブル 32 ビ ッ ト 累算付 き 32 ビ ッ ト 符号な
し乗算
UMAAL
1
飽和
Q を セ ッ ト す るデ ュ アル 16 ビ ッ ト 飽和
SSAT16
1
Q を セ ッ ト す るデ ュ アル 16 ビ ッ ト 符号な し 飽和
USAT16
1
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
3-10
プ ログ ラ マ モデル
表 3-2 Cortex-M4 の DSP 命令セ ッ ト の概要 ( 続き )
動作
説明
アセ ン ブ ラ
サイ クル数
パ ッ キ ン グお
よ びア ンパ ッ
キング
ハーフ ワー ド の上位を シ フ ト し た下位 と パ ッ ク す る
PKHTB
1
ハーフ ワー ド の下位を シ フ ト し た上位 と パ ッ ク す る
PKHBT
1
8 ビ ッ ト を抽出 し 32 ビ ッ ト へ符号拡張
SXTB
1
デ ュ アルで 8 ビ ッ ト を抽出 し それぞれを 16 ビ ッ ト へ符号拡張
SXTB16
1
16 ビ ッ ト を抽出 し 32 ビ ッ ト へ符号拡張
SXTH
1
8 ビ ッ ト を抽出 し 32 ビ ッ ト へゼ ロ 拡張
UXTB
1
デ ュ アルで 8 ビ ッ ト を抽出 し 16 ビ ッ ト へゼ ロ 拡張
UXTB16
1
16 ビ ッ ト を抽出 し 32 ビ ッ ト へゼ ロ拡張
UXTH
1
8 ビ ッ ト を抽出 し 32 ビ ッ ト へ符号な し 加算
UXTAB
1
デ ュ アルで 8 ビ ッ ト を抽出 し 16 ビ ッ ト へ符号な し 加算
UXTAB16
1
16 ビ ッ ト を抽出 し 32 ビ ッ ト へ符号な し加算
UXTAH
1
8 ビ ッ ト を抽出 し 32 ビ ッ ト へ符号付 き加算
SXTAB
1
デ ュ アルで 8 ビ ッ ト を抽出 し 16 ビ ッ ト へ符号付 き加算
SXTAB16
1
16 ビ ッ ト を抽出 し 32 ビ ッ ト へ符号付 き加算
SXTAH
1
GE ビ ッ ト に基づいてバ イ ト を選択
SEL
1
ク ワ ッ ド 8 ビ ッ ト 符号な し 絶対差の符号な し 和
USAD8
1
ク ワ ッ ド 8 ビ ッ ト 符号な し 絶対差の符号な し 和、 32 ビ ッ ト 累算付 き
USADA8
1
デ ュ アル 16 ビ ッ ト 符号な し 飽和加算
UQADD16
1
ク ワ ッ ド 8 ビ ッ ト 符号な し飽和加算
UQADD8
1
Q を セ ッ ト す る飽和加算
QADD
1
Q を セ ッ ト す るデ ュ アル 16 ビ ッ ト 飽和加算
QADD16
1
Q を セ ッ ト す る ク ワ ッ ド 8 ビ ッ ト 飽和加算
QADD8
1
Q を セ ッ ト す る飽和ダブルお よ び加算
QDADD
1
GE を セ ッ ト す る ク ワ ッ ド 8 ビ ッ ト 符号付 き加算
SADD8
1
GE を セ ッ ト す るデ ュ アル 16 ビ ッ ト 符号付 き加算
SADD16
1
結果を半減す るデ ュ アル 16 ビ ッ ト 符号付 き加算
SHADD16
1
結果を半減す る ク ワ ッ ド 8 ビ ッ ト 符号付 き加算
SHADD8
1
GE を セ ッ ト す るデ ュ アル 16 ビ ッ ト 符号な し加算
UADD16
1
GE を セ ッ ト す る ク ワ ッ ド 8 ビ ッ ト 符号な し 加算
UADD8
1
結果を半減す るデ ュ アル 16 ビ ッ ト 符号な し 加算
UHADD16
1
結果を半減す る ク ワ ッ ド 8 ビ ッ ト 符号な し加算
UHADD8
1
その他のデー
タ 処理
加算
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
3-11
プ ログ ラ マ モデル
表 3-2 Cortex-M4 の DSP 命令セ ッ ト の概要 ( 続き )
動作
説明
アセ ン ブ ラ
サイ クル数
減算
Q を セ ッ ト す る飽和ダブルお よ び減算
QDSUB
1
デ ュ アル 16 ビ ッ ト 符号な し 飽和減算
UQSUB16
1
ク ワ ッ ド 8 ビ ッ ト 符号な し飽和減算
UQSUB8
1
Q を セ ッ ト す る飽和減算
QSUB
1
Q を セ ッ ト す るデ ュ アル 16 ビ ッ ト 飽和減算
QSUB16
1
Q を セ ッ ト す る ク ワ ッ ド 8 ビ ッ ト 飽和減算
QSUB8
1
結果を半減す るデ ュ アル 16 ビ ッ ト 符号付 き減算
SHSUB16
1
結果を半減す る ク ワ ッ ド 8 ビ ッ ト 符号付 き減算
SHSUB8
1
GE を セ ッ ト す るデ ュ アル 16 ビ ッ ト 符号付 き減算
SSUB16
1
GE を セ ッ ト す る ク ワ ッ ド 8 ビ ッ ト 符号付 き減算
SSUB8
1
結果を半減す るデ ュ アル 16 ビ ッ ト 符号な し 減算
UHSUB16
1
結果を半減す る ク ワ ッ ド 8 ビ ッ ト 符号な し減算
UHSUB8
1
GE を セ ッ ト す るデ ュ アル 16 ビ ッ ト 符号な し減算
USUB16
1
GE を セ ッ ト す る ク ワ ッ ド 8 ビ ッ ト 符号な し 減算
USUB8
1
デ ュ アル 16 ビ ッ ト 符号な し 飽和加算お よ び減算、 交換付 き
UQASX
1
デ ュ アル 16 ビ ッ ト 符号な し 飽和減算お よ び加算、 交換付 き
UQSAX
1
GE を セ ッ ト す るデ ュ アル 16 ビ ッ ト 加算お よ び減算、 交換付 き
SASX
1
Q を セ ッ ト す るデ ュ アル 16 ビ ッ ト 加算お よ び減算、 交換付き
QASX
1
Q を セ ッ ト す るデ ュ アル 16 ビ ッ ト 減算お よ び加算、 交換付き
QSAX
1
結果を半減す るデ ュ アル 16 ビ ッ ト 符号付 き加算お よ び減算
SHASX
1
結果を半減す るデ ュ アル 16 ビ ッ ト 符号付 き減算お よ び加算
SHSAX
1
GE を セ ッ ト す るデ ュ アル 16 ビ ッ ト 符号付 き減算お よ び加算、 交換付 き
SSAX
1
GE を セ ッ ト す るデ ュ アル 16 ビ ッ ト 符号な し加算お よ び減算、 交換付 き
UASX
1
結果を半減す るデ ュ アル 16 ビ ッ ト 符号な し 加算お よ び減算、 交換付 き
UHASX
1
結果を半減す るデ ュ アル 16 ビ ッ ト 符号な し 減算お よ び加算、 交換付 き
UHSAX
1
GE を セ ッ ト す るデ ュ アル 16 ビ ッ ト 符号な し減算お よ び加算、 交換付 き
USAX
1
並列加算お よ
び減算
3.3.2
ロー ド / ス ト アの タ イ ミ ング
こ のセ ク シ ョ ンでは、 タ イ ミ ン グ を短縮す る ために命令を組み合わせ る最適の方法
について説明 し ます。
•
STR Rx,[Ry,#imm] は常に 1 サ イ ク ルです。 こ れは、 ア ド レ ス生成は最初のサ イ ク
ルで実行 さ れ、 デー タ ス ト アは次の命令の実行 と 同時に行われ る ためです。 ラ
イ ト バ ッ フ ァ が フル ま たは非稼働の と き に、 その ラ イ ト バ ッ フ ァ に対 し て ス ト
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
3-12
プ ログ ラ マ モデル
アが行われた場合、 次の命令は ス ト アが完了す る ま で遅延 し ます。 ス ト アが
コ ー ド セグ メ ン ト な ど、 ラ イ ト バ ッ フ ァ 以外に対 し て実行 さ れ、 その ト ラ ンザ
ク シ ョ ンが ス ト ール し た場合は、 完了前に別の ロ ー ド / ス ト ア操作が実行 さ れ
た場合のみ、 タ イ ミ ン グへの影響が発生 し ます。
•
LDR PC,[any] は、 常にブ ロ ッ キ ン グ操作です。 こ れは、 最低で も ロ ー ド に 2 サ イ
ク ル、 パ イ プ ラ イ ンの リ ロ ー ド に 3 サ イ ク ルが必要な こ と を意味 し ます。 つま
り 、 こ の操作には最低で も 5 サ イ ク ルが必要です ( ロ ー ド ま たは フ ェ ッ チで ス
ト ールが発生 し た場合は さ ら に長 く な り ます)。
•
ロ ー ド / ス ト アで生成 さ れ る ア ド レ ス が、 前のデー タ 処理操作の結果に依存す
る 場合は、 レ ジ ス タ バン ク が更新 さ れ る 間、 パ イ プ ラ イ ンが余計に 1 サ イ ク ル
ス ト ール し ます。 こ のシナ リ オではフ ォ ワー ド パ ス は存在 し ません。
•
フ ェ ッ チユニ ッ ト と の競合が原因で、 LDR Rx,[PC,#imm] が 1 サ イ ク ル長 く な る こ
と があ り ます。
•
TBB お よ び TBH も ブ ロ ッ キ ン グ操作です。 こ れ ら の命令では、 最低で も ロ ー ド に
2 サ イ ク ル、 加算に 1 サ イ ク ル、 パ イ プ ラ イ ンの リ ロ ー ド に 3 サ イ ク ルが必要
です。 つま り 、 最低で も 6 サ イ ク ルが必要です ( ロ ー ド ま たはフ ェ ッ チで ス
ト ールが発生 し た場合は さ ら に長 く な り ます)。
•
LDR [any] は、 可能な場合はパ イ プ ラ イ ン処理 さ れます。 つま り 、 も し 次の命令
が LDR ま たは STR で、 最初の LDR のデス テ ィ ネーシ ョ ンが次の命令のア ド レ ス を
計算す る ために使用 さ れない と き は、 次の命令の コ ス ト か ら 1 サ イ ク ルが差 し
引かれます。 こ のため、 LDR の後に STR が続 く と 、 LDR に よ っ て ロ ー ド さ れた内
容が STR に よ っ て書 き込ま れます。 さ ら に多 く の LDR を一緒にパ イ プ ラ イ ン処
理す る こ と がで き ます。 最適化 さ れた例をい く つか挙げます。
—
LDR R0,[R1]; LDR R1,[R2] - 通常は合計 3 サ イ ク ル
—
LDR R0,[R1,R2]; STR R0,[R3,#20] - 通常は合計 3 サ イ ク ル
—
LDR R0,[R1,R2]; STR R1,[R3,R2] - 通常は合計 3 サ イ ク ル
—
LDR R0,[R1,R5]; LDR R1,[R2]; LDR R2,[R3,#4] - 通常は合計 4 サ イ ク ル
•
他の命令は、 レ ジ ス タ オ フ セ ッ ト 付 き の STR の後でパ イ プ ラ イ ン処理で き ませ
ん。 STR は、 LDR の後でのみパ イ プ ラ イ ン処理が可能で、 ス ト アの後でパ イ プ ラ
イ ン処理で き る 命令はあ り ません。 ラ イ ト バ ッ フ ァ があ る ため、 STR は ス ト ール
し た場合 も 通常は 2 サ イ ク ルで完了 し ます。
•
LDREX と STREX は、 LDR と 全 く 同様にパ イ プ ラ イ ン処理で き ます。 STREX は LDR と
同様に扱われ る ため、 LDR についての説明 と 同様にパ イ プ ラ イ ン処理で き ます。
LDREX も 同様に、 LDR と 全 く 同 じ よ う に扱われ る ので、 パ イ プ ラ イ ン処理で き ま
す。
•
LDRD と STRD は、 先行す る 命令や後の命令 と 一緒にパ イ プ ラ イ ン処理で き ませ
ん。 ただ し 、 2 つの ワー ド は一緒にパ イ プ ラ イ ン処理 さ れます。 こ のため、 こ
の操作は ス ト ール し ない場合に 3 サ イ ク ルを必要 と し ます。
•
LDM と STM は、 先行す る 命令や後の命令 と 一緒にパ イ プ ラ イ ン処理で き ません。
ただ し 、 最初のエ レ メ ン ト 以降のすべてのエ レ メ ン ト は一緒にパ イ プ ラ イ ン処
理 さ れます。 こ のため、 ス ト ールが発生 し ない場合、 3 エ レ メ ン ト の LDM は 2 +
1 + 1、 ま たは 5 サ イ ク ルで実行 さ れます。 同様に、 8 エ レ メ ン ト の ス ト アは、
ス ト ールが発生 し ない場合は 9 サ イ ク ルで実行 さ れます。 割 り 込みが発生 し た
場合、 LDM お よ び STM 命令は復帰の際に、 中断 し た と こ ろか ら 再開 さ れます。 再
開動作に よ り 、 最初のエ レ メ ン ト を開始す る ために、 1 ま たは 2 サ イ ク ルが余
分に費や さ れます。
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
3-13
プ ログ ラ マ モデル
•
3.3.3
ア ン ア ラ イ ン ド な ワ ー ド ま たはハーフ ワ ー ド の ロ ー ド / ス ト アには、 ペナル
テ ィ サ イ ク ルが追加 さ れます。 バ イ ト ア ラ イ ン ド のハーフ ワー ド ロ ー ド / ス ト
アは 2 つのバ イ ト と し て操作が実行 さ れ る ため、 実行時間に 1 サ イ ク ルが追加
さ れます。 ハーフ ワ ー ド ア ラ イ ン ド の ワ ー ド ロ ー ド / ス ト アは 2 つのハーフ
ワー ド と し て操作が実行 さ れ る ため、 実行時間に 1 サ イ ク ルが追加 さ れます。
バ イ ト ア ラ イ ン ド の ワー ド ロ ー ド / ス ト アは、 バ イ ト 、 ハーフ ワ ー ド 、 バ イ ト
の操作に分割 し て実行 さ れ る ため、 実行時間に 2 サ イ ク ルが追加 さ れます。 メ
モ リ が ス ト ール し た場合、 こ れ ら の数字は増加 し ます。 STR ま たは STRH では、
ラ イ ト バ ッ フ ァ があ る ため、 プ ロ セ ッ サの遅延は発生 し ません。
他の Cortex プ ロ セ ッ サ と のバイ ナ リ 互換性
プ ロ セ ッ サには、 他の Cortex-M プ ロ フ ァ イ ルプ ロ セ ッ サで提供 さ れてい る 命令セ ッ
ト と 機能にバ イ ナ リ 互換のサブセ ッ ト が実装 さ れてい ます。 Cortex-M4 プ ロ セ ッ サか
ら 他の Cortex-M プ ロ フ ァ イ ルのプ ロ セ ッ サへは、 シ ス テ ム レベルの ソ フ ト ウ ェ ア も
含めて、 ソ フ ト ウ ェ ア を移動で き ます。
円滑な移行を保証す る ため、 他の Cortex-M プ ロ フ ァ イ ルのプ ロ セ ッ サアーキ テ ク
チ ャ で動作す る よ う に設計す る コ ー ド では、 以下の規則に従い、 構成およ び制御レ
ジ ス タ (CCR) を適切に構成す る こ と をお勧め し ます。
ARM DDI 0439CJ
ID050813
•
NVIC お よ び シ ス テ ム制御空間 (SCS) の レ ジ ス タ へのア ク セ ス には、 ワー ド 転
送のみを使用す る。
•
プ ロ セ ッ サの未使用の SCS レ ジ ス タ お よ びレ ジ ス タ フ ィ ール ド はすべて、 変更
不可 と し て扱 う 。
•
CCR の フ ィ ール ド を次の よ う に構成す る 。
— STKALIGN ビ ッ ト を 1 にセ ッ ト
— UNALIGN_TRP ビ ッ ト を 1 にセ ッ ト
— CCR レ ジ ス タ の他の ビ ッ ト はすべて、 元の値の ま ま
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
3-14
プ ログ ラ マ モデル
3.4
シス テム ア ド レ スマ ッ プ
プ ロ セ ッ サには、 プ ロ セ ッ サ コ ア と オプシ ョ ンのデバ ッ グ ア ク セ ス ポー ト (DAP) か
ら 、 外部 メ モ リ シ ス テ ムお よ び内部の シ ス テ ム制御空間 (SCS) と デバ ッ グ コ ン ポー
ネ ン ト の両方に対す る メ モ リ ア ク セ ス を調整す る 、 バ ス マ ト リ ッ ク ス が含ま れてい
ます。
すべてのデバ ッ グ ア ク セ ス が可能な限 り 非侵襲性であ る こ と を保証す る ため、 プ ロ
セ ッ サに よ る ア ク セ ス が常に優先 さ れます。 0 ウ ェ イ ト ス テー ト シ ス テ ムの場合、
シ ス テ ム メ モ リ 、 SCS、 デバ ッ グ リ ソ ースへのデバ ッ グ ア ク セ ス はすべて、 完全に非
侵襲性です。
シ ス テ ム ア ド レ ス マ ッ プを、 図 3-1 に示 し ます。
䢲䣺䣇䢲䢳䢲䢲䢲䢲䢲
䢲䣺䣇䢲䢲䣈䣈䢲䢲䢲
䢲䣺䣇䢲䢲䢶䢴䢲䢲䢲
䢲䣺䣇䢲䢲䢶䢳䢲䢲䢲
䢲䣺䣇䢲䢲䢶䢲䢲䢲䢲
䣔䣑䣏優兠儺兏
እ㒊䣒䣒䣄
䣇䣖䣏
䣖䣒䣋䣗
䢲䣺䣈䣈䣈䣈䣈䣈䣈䣈
儛儝優兄
䢲䣺䣇䢲䢳䢲䢲䢲䢲䢲
ᑓ⏝儾兎儹儋免兏儴儝䢢䢯䢢እ㒊
䢲䣺䣇䢲䢲䢶䢲䢲䢲䢲
ᑓ⏝儾兎儹儋免兏儴儝䢢䢯䢢ෆ㒊
䢲䣺䣇䢲䢲䢶䢲䢲䢲䢲
䢲䣺䣇䢲䢲䢲䣈䢲䢲䢲
䢲䣺䣇䢲䢲䢲䣇䢲䢲䢲
䢲䣺䣇䢲䢲䢲䢵䢲䢲䢲
䢲䣺䣇䢲䢲䢲䢴䢲䢲䢲
䢲䣺䣇䢲䢲䢲䢳䢲䢲䢲
䢲䣺䣇䢲䢲䢲䢲䢲䢲䢲
ண⣙
䣕䣅䣕
ண⣙
䣈䣒䣄
䣆䣙䣖
䣋䣖䣏
䢲䣺䣇䢲䢲䢲䢲䢲䢲䢲
እ㒊儫儴儈儝
䢲䣺䢶䢶䢲䢲䢲䢲䢲䢲
䢲䣺䣃䢲䢲䢲䢲䢲䢲䢲
እ㒊䣔䣃䣏
䢵䢴䣏䣄
䢳䢰䢲䣉䣄
䢳䢰䢲䣉䣄
儷儧儬儴兗儭䢢儌儈兎儆儝
䢲䣺䢶䢴䢲䢲䢲䢲䢲䢲
䢲䣺䢸䢲䢲䢲䢲䢲䢲䢲
䢵䢳䣏䣄
儾兎儹儋免兏
䢲䣺䢶䢲䢳䢲䢲䢲䢲䢲
䢳䣏䣄
䢲䣺䢶䢲䢲䢲䢲䢲䢲䢲
䢲䣺䢴䢶䢲䢲䢲䢲䢲䢲
䢲䢰䢷䣉䣄
儷儧儬儴兗儭㡿ᇦ
䢲䣺䢶䢲䢲䢲䢲䢲䢲䢲
䢵䢴䣏䣄
儷儧儬儴兗儭䢢儌儈兎儆儝
䣕䣔䣃䣏
䢲䢰䢷䣉䣄
䢲䣺䢴䢲䢲䢲䢲䢲䢲䢲
䢲䣺䢴䢴䢲䢲䢲䢲䢲䢲
䢵䢳䣏䣄
䢲䣺䢴䢲䢳䢲䢲䢲䢲䢲
䢳䣏䣄
䢲䣺䢴䢲䢲䢲䢲䢲䢲䢲
儗兠儭
䢲䢰䢷䣉䣄
儷儧儬儴兗儭㡿ᇦ
䢲䣺䢲䢲䢲䢲䢲䢲䢲䢲
図 3-1 シス テム ア ド レ スマ ッ プ
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
3-15
プ ログ ラ マ モデル
各ア ド レ ス に割 り 当て ら れ る メ モ リ マ ッ プの領域におけ る プ ロ セ ッ サの イ ン タ
フ ェース を、 表 3-3 に示 し ます。
表 3-3 メ モ リ 領域
メモリマップ
領域
コー ド
命令フ ェ ッ チは ICode バ ス 上で、 デー タ ア ク セ ス は DCode バ ス上で実行 さ れます。
SRAM
命令フ ェ ッ チお よ びデー タ ア ク セ スは、 シ ス テ ムバス上で実行 さ れます。
SRAM ビ ッ ト バン ド
エ イ リ ア ス領域。 デー タ ア ク セ スはエ イ リ ア ス で行われます。 命令ア ク セ ス にはエ
イ リ ア スは使用 さ れません。
ペ リ フ ェ ラル
命令フ ェ ッ チお よ びデー タ ア ク セ スは、 シ ス テ ムバス上で実行 さ れます。
ペ リ フ ェ ラル ビ ッ ト
バン ド
エ イ リ ア ス領域。 デー タ ア ク セ スはエ イ リ ア ス で行われます。 命令ア ク セ ス にはエ
イ リ ア スは使用 さ れません。
外部 RAM
命令フ ェ ッ チお よ びデー タ ア ク セ スは、 シ ス テ ムバス上で実行 さ れます。
外部デバ イ ス
命令フ ェ ッ チお よ びデー タ ア ク セ スは、 シ ス テ ムバス上で実行 さ れます。
専用ペ リ フ ェ ラ ルバス
外部お よ び内部の専用ペ リ フ ェ ラ ルパス (PPB) イ ン タ フ ェース。 「専用ペ リ フ ェ ラ
ルバス」 を参照 し て下 さ い。
こ の メ モ リ 領域は実行不可 (XN) に設定 さ れてい る ため、 命令フ ェ ッ チは禁止 さ れ
ます。 MPU があ る場合で も 、 こ れは変更で き ません。
システム
シ ス テ ム セグ メ ン ト はベン ダのシ ス テ ムペ リ フ ェ ラ ル用です。 こ の メ モ リ 領域は
XN に設定 さ れてい る ため、 命令フ ェ ッ チは禁止 さ れます。 MPU があ る 場合で も 、
こ れは変更で き ません。
メ モ リ モデルの詳細については、 『ARMv7-M アーキ テ ク チ ャ リ フ ァ レ ン ス マニ ュ ア
ル』 を参照 し て下 さ い。
3.4.1
専用ペ リ フ ェ ラ ルバス
内部の 専用ペ リ フ ェ ラ ルパス (PPB) イ ン タ フ ェース は、 次の も のへア ク セ スす る た
めに使用 さ れます。
•
計装 ト レース マ ク ロ セル (ITM)
•
データ ウ ォ ッ チポ イ ン ト お よび ト レース (DWT)
•
フ ラ ッ シ ュ パ ッ チお よびブ レー ク ポ イ ン ト (FPB)
•
シ ス テ ム制御空間 (SCS)。 メ モ リ 保護ユニ ッ ト (MPU) と ネ ス ト 型ベ ク タ 割 り 込
み コ ン ト ロ ー ラ (NVIC) も 含まれます。
外部 PPB イ ン タ フ ェース は、 次の も のへア ク セ スす る ために使用 さ れます。
ト レース ポー ト イ ン タ フ ェ ース ユニ ッ ト (TPIU)
•
エンべデ ッ ド ト レース マ ク ロ セル (ETM)
•
•
ROM テーブル
•
PPB メ モ リ マ ッ プの実装固有の領域
3.4.2
領域間にまたがる ア ン ア ラ イ ン ド ア ク セス
Cortex-M4 プ ロ セ ッ サは ARMv7 のア ン ア ラ イ ン ド ア ク セ ス をサポー ト し てお り 、 す
べてのア ク セ ス を単一のア ン ア ラ イ ン ド ア ク セ ス と し て実行 し ます。 こ れ ら は、
DCode お よ びシ ス テ ムバ ス イ ン タ フ ェース に よ り 、 2 つま たはそれ以上のア ラ イ ン
ド ア ク セ ス に変換 さ れます。
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
3-16
プ ログ ラ マ モデル
注
Cortex-M4 のすべての外部ア ク セ ス はア ラ イ ン ド ア ク セ ス です。
ア ン ア ラ イ ン ド のサポー ト は、 単一 ロ ー ド / ス ト ア LDR や LDRH, STR, STRH でのみ利用
で き ます。 ダブル ロ ー ド / ス ト アはすでに ワ ー ド ア ラ イ ン ド のア ク セ ス をサポー ト し
てい ますが、 他のア ン ア ラ イ ン ド ア ク セ ス を許可せず、 試み ら れた場合はフ ォール
ト が生成 さ れます。
メ モ リ マ ッ プの境界に ま たが る ア ン ア ラ イ ン ド ア ク セ ス は、 アーキ テ ク チ ャ の関係
で予測不能です。 プ ロ セ ッ サの動作は、 以下に示す よ う に境界に依存 し てい ます。
•
DCode ア ク セ ス は領域内で ラ ッ プア ラ ウ ン ド し ます。 例えば、 コ ー ド 空間の最
後のバ イ ト (0x1FFFFFFF) に対 し て ア ン ア ラ イ ン ド のハーフ ワー ド ア ク セ ス が行わ
れ る と 、 DCode イ ン タ フ ェース に よ っ て、 0x1FFFFFFF へのバ イ ト ア ク セ ス と 、 そ
れに続 く 0x00000000 へのバ イ ト ア ク セ ス に変換 さ れます。
•
PPB 空間に ま たが る シ ス テ ム ア ク セ ス は、 シ ス テ ム空間内で ラ ッ プア ラ ウ ン ド
し ません。 例えば、 シ ス テ ム空間の最後のバ イ ト (0xDFFFFFFF) に対 し てア ン ア ラ
イ ン ド のハーフ ワー ド ア ク セ ス が行われ る と 、 シ ス テ ム イ ン タ フ ェース に よ っ
て、 0xDFFFFFFF へのバ イ ト ア ク セ ス と 、 それに続 く 0xE0000000 へのバ イ ト ア ク セ ス
に変換 さ れます。 0xE0000000 は、 シ ス テ ムバ ス上で有効な ア ド レ ス ではあ り ませ
ん。
•
コ ー ド 空間に ま たが る シ ス テ ム ア ク セ ス は、 シ ス テ ム空間内で ラ ッ プア ラ ウ ン
ド し ません。 例えば、 シ ス テ ム空間の最後のバ イ ト (0xFFFFFFFF) に対 し て ア ン ア
ラ イ ン ド のハーフ ワ ー ド ア ク セ ス が行われ る と 、 シ ス テ ム イ ン タ フ ェース に
よ っ て、 0xFFFFFFFF へのバ イ ト ア ク セ ス と 、 それに続 く 0x00000000 へのバ イ ト ア ク
セ ス に変換 さ れます。 0x00000000 は、 シ ス テ ムバ ス上で有効なア ド レ ス ではあ り
ません。
•
PPB 空間ではア ン ア ラ イ ン ド ア ク セ ス はサポー ト さ れていないため、 PPB ア ク
セ ス については境界に ま たが る例はあ り ません。
ビ ッ ト バン ド エ イ リ ア ス領域に ま たが る ア ン ア ラ イ ン ド ア ク セ ス も 、 アーキ テ ク
チ ャ の関係で予測不能です。 プ ロ セ ッ サはビ ッ ト バン ド エ イ リ ア ス のア ド レ スへの
ア ク セ ス を実行 し ますが、 こ れはビ ッ ト バン ド 操作 と はな り ません。 例えば、
0x21FFFFFF へのア ン ア ラ イ ン ド のハーフ ワ ー ド ア ク セ ス は、 0x21FFFFFF へのバ イ ト ア ク
セ ス と 、 それに続 く 0x22000000 (ビ ッ ト バン ド エ イ リ ア ス の最初のバ イ ト ) へのバ イ
ト ア ク セ ス と し て実行 さ れます。
FPB の リ テ ラ ル コ ンパレー タ に対 し て一致す る ア ン ア ラ イ ン ド ロ ー ド は リ マ ッ プ さ
れません。 FPB は、 ア ラ イ ン ド ア ド レ ス のみを リ マ ッ プ し ます。
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
3-17
プ ログ ラ マ モデル
3.5
ラ イ トバッ フ ァ
デー タ ス ト ア時にバ ス ウ ェ イ ト サ イ ク ルに よ っ てプ ロ セ ッ サが ス ト ールす る こ と を
防止す る ため、 DCode お よ びシ ス テ ムバ スへのバ ッ フ ァ さ れた ス ト アは、 1 エ ン ト リ
の ラ イ ト バ ッ フ ァ を経由 し ます。 ラ イ ト バ ッ フ ァ が フルの場合、 ラ イ ト バ ッ フ ァ が
ド レ イ ン さ れ る ま で、 バ スへの以後のア ク セ ス は ス ト ール し ます。 バ ス がバ ッ フ ァ
さ れた ス ト アのデー タ フ ェ ーズ を待っ てい る場合のみ、 ラ イ ト バ ッ フ ァ が使用 さ れ
ます。 それ以外の場合、 ト ラ ンザ ク シ ョ ンはバ ス上で完了 し ます。
DMB お よ び DSB 命令は、 完了する 前に ラ イ ト バ ッ フ ァ の ド レ イ ン を待ち ます。 DMB ま た
は DSB が ラ イ ト バ ッ フ ァ の ド レ イ ン を待っ てい る間に割 り 込みが発生 し た場合、 プ ロ
セ ッ サは割 り 込みの完了後に DMB ま たは DSB の次の命令に復帰 し ます。 こ れは、 割 り
込み処理自体が メ モ リ バ リ ア操作 と し て機能す る ためです。
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
3-18
プ ログ ラ マ モデル
3.6
排他モニ タ
Cortex-M4 プ ロ セ ッ サには、 ロ ーカル排他モニ タ が実装 さ れてい ます。 セマ フ ォ と
ロ ーカル排他モニ タ の詳細については、 『ARMv7-M ARM アーキ テ ク チ ャ リ フ ァ レ ン
ス マニ ュ アル』 を参照 し て下 さ い。
プ ロ セ ッ サ内の ロ ーカルモニ タ は、 物理ア ド レ ス を保持せず、 すべてのア ク セ ス が
前の LDREX のア ド レ ス と 一致す る も の と し て扱 う よ う に構築 さ れてい ます。 つま
り 、 実装 さ れてい る 排他予約粒度は、 メ モ リ ア ド レ ス範囲の全体です。
Cortex-M4 プロ セ ッ サは、 ビ ッ ト バン ド 領域への排他ア ク セス をサポー ト し ていません。
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
3-19
プ ログ ラ マ モデル
3.7
ビ ッ ト バン ド
ビ ッ ト バン ド は、 Cortex-M4 プ ロ セ ッ サのオプシ ョ ン機能です。 ビ ッ ト バン ド は、 メ
モ リ の完全な ワー ド を、 ビ ッ ト バン ド 領域の単一の ビ ッ ト へマ ッ プ し ます。 例えば、
エ イ リ ア ス ワ ー ド の 1 つへ書 き込む と 、 ビ ッ ト バン ド 領域の対応す る ビ ッ ト がセ ッ
ト / ク リ ア さ れます。 こ れに よ っ て、 ビ ッ ト バン ド 領域の個別の ビ ッ ト すべてが、 単
一の LDR 命令を使用 し て、 ワー ド ア ラ イ ン ド のア ド レ ス か ら 直接ア ク セ ス可能にな り
ます。 同時に、 読み出 し - 変更 - 書 き 込み命令シーケ ン ス を実行せずに、 個別のビ ッ
ト を ト グル可能にな り ます。
プ ロ セ ッ サの メ モ リ マ ッ プには、 2 つのビ ッ ト バン ド 領域が含まれます。 こ れ ら の領
域は、 それぞれ SRAM お よ びペ リ フ ェ ラ ルの メ モ リ 領域の最下位 1MB を占有 し ま
す。 ビ ッ ト バン ド 領域は、 メ モ リ のエ イ リ ア ス領域の各ワー ド を、 メ モ リ のビ ッ ト
バン ド 領域の ビ ッ ト にマ ッ プ し ます。
シ ス テ ムバ ス イ ン タ フ ェース には、 次の よ う に ビ ッ ト バン ド ア ク セ ス を制御す る ロ
ジ ッ ク が組み込ま れてい ます。
•
ビ ッ ト バン ド エ イ リ ア ス のア ド レ ス を、 ビ ッ ト バン ド 領域に リ マ ッ プ し ます。
•
読み出 し の場合、 読み出 し たバ イ ト か ら 要求 さ れた ビ ッ ト を抽出 し 、 読み出 し
デー タ の 最下位ビ ッ ト (LSB) と し て コ アへ返 し ます。
•
書 き込みの場合、 書 き 込みを不可分な読み出 し - 変更 - 書き 込み操作に変換 し
ます。
•
プ ロ セ ッ サは、 ビ ッ ト バン ド 操作の実行中にシ ス テ ムバ スへのア ク セ ス を試み
ない限 り 、 ビ ッ ト バン ド 操作中に ス ト ールす る こ と はあ り ません。
メ モ リ マ ッ プには 2 つの 32MB エ イ リ ア ス領域が存在 し 、 こ れ ら は 2 つの 1MB ビ ッ
ト バン ド 領域にマ ッ プ さ れます。
•
32MB の SRAM エ イ リ ア ス領域へのア ク セ ス は、 1MB の SRAM ビ ッ ト バン ド
領域にマ ッ プ さ れます。
•
32MB のペ リ フ ェ ラ ルエ イ リ ア ス領域へのア ク セ ス は、 1MB のペ リ フ ェ ラ ル
ビ ッ ト バン ド 領域にマ ッ プ さ れます。
エ イ リ ア ス領域の各 ワー ド が、 ビ ッ ト バン ド 領域の対応ビ ッ ト 、 すなわち タ ーゲ ッ
ト のビ ッ ト を ど の よ う に参照す る かは、 マ ッ ピ ン グの式に よ り 示 さ れます。 マ ッ ピ
ン グの式は次の と お り です。
bit_word_offset = (byte_offset x 32) + (bit_number ´ 4)
bit_word_addr = bit_band_base + bit_word_offset
各項目の説明については以下を参照 し て下 さ い。
•
bit_word_offset
は、 ビ ッ ト バン ド メ モ リ 領域での、 タ ーゲ ッ ト ビ ッ ト の位置で
す。
は、 エ イ リ ア ス メ モ リ 領域内の ワー ド のア ド レ ス で、 タ ーゲ ッ ト
ビ ッ ト にマ ッ プ さ れます。
•
bit_word_addr
•
bit_band_base
•
byte_offset
は、 エ イ リ ア ス領域の開始ア ド レ ス です。
は、 ビ ッ ト バン ド 領域内の、 タ ーゲ ッ ト ビ ッ ト を含むバ イ ト の番号
です。
•
bit_number
は、 タ ーゲ ッ ト ビ ッ ト の ビ ッ ト 位置 (0 ~ 7) です。
SRAM ビ ッ ト バン ド エ イ リ ア ス領域 と 、 SRAM ビ ッ ト バン ド 領域 と のビ ッ ト バン ド
マ ッ プの例を、 図 3-2 (ページ 3-21) に示 し ます。
•
ARM DDI 0439CJ
ID050813
のエ イ リ ア ス ワー ド は、 0x200FFFFF のビ ッ ト バン ド バ イ ト の ビ ッ ト [0]
にマ ッ プ さ れます : 0x23FFFFE0 = 0x22000000 + (0xFFFFF * 32) + 0 * 4
0x23FFFFE0
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
3-20
プ ログ ラ マ モデル
のエ イ リ ア ス ワー ド は、 0x200FFFFF のビ ッ ト バン ド バ イ ト の ビ ッ ト [7]
にマ ッ プ さ れます : 0x23FFFFFC = 0x22000000 + (0xFFFFF * 32) + 7 * 4
•
0x23FFFFFC
•
0x22000000
•
0x2200001C
のエ イ リ ア ス ワー ド は、 0x20000000 のビ ッ ト バン ド バ イ ト の ビ ッ ト [0]
にマ ッ プ さ れます : 0x22000000 = 0x22000000 + (0 * 32) + 0 * 4
のエ イ リ ア ス ワー ド は、 0x20000000 のビ ッ ト バン ド バ イ ト の ビ ッ ト [7]
にマ ッ プ さ れます : 0x2200001C = 0x22000000 + (0 * 32) + 7 * 4
䢵䢴䣏䣄僔儌儈兎儆儝㡿ᇦ
䢲䣺䢴䢵䣈䣈䣈䣈䣈䣅
䢲䣺䢴䢵䣈䣈䣈䣈䣈䢺
䢲䣺䢴䢵䣈䣈䣈䣈䣈䢶
䢲䣺䢴䢵䣈䣈䣈䣈䣈䢲
䢲䣺䢴䢵䣈䣈䣈䣈䣇䣅
䢲䣺䢴䢵䣈䣈䣈䣈䣇䢺
䢲䣺䢴䢵䣈䣈䣈䣈䣇䢶
䢲䣺䢴䢵䣈䣈䣈䣈䣇䢲
䢲䣺䢴䢴䢲䢲䢲䢲䢳䣅
䢲䣺䢴䢴䢲䢲䢲䢲䢳䢺
䢲䣺䢴䢴䢲䢲䢲䢲䢳䢶
䢲䣺䢴䢴䢲䢲䢲䢲䢳䢲
䢲䣺䢴䢴䢲䢲䢲䢲䢲䣅
䢲䣺䢴䢴䢲䢲䢲䢲䢲䢺
䢲䣺䢴䢴䢲䢲䢲䢲䢲䢶
䢲䣺䢴䢴䢲䢲䢲䢲䢲䢲
䢳䣏䣄僔䣕䣔䣃䣏儷儧儬儴兗儭㡿ᇦ
䢹
䢸
䢷
䢶
䢵
䢴
䢳
䢲
䢹
䢸
䢲䣺䢴䢲䢲䣈䣈䣈䣈䣈
䢹
䢸
䢷
䢶
䢵
䢴
䢷
䢶
䢵
䢴
䢳
䢲
䢹
䢸
䢲䣺䢴䢲䢲䣈䣈䣈䣈䣇
䢳
䢲
䢲䣺䢴䢲䢲䢲䢲䢲䢲䢵
䢹
䢸
䢷
䢶
䢵
䢲䣺䢴䢲䢲䢲䢲䢲䢲䢴
䢴
䢷
䢶
䢵
䢴
䢳
䢲
䢹
䢸
䢲䣺䢴䢲䢲䣈䣈䣈䣈䣆
䢳
䢲
䢹
䢸
䢷
䢶
䢵
䢲䣺䢴䢲䢲䢲䢲䢲䢲䢳
䢴
䢷
䢶
䢵
䢴
䢳
䢲
䢳
䢲
䢲䣺䢴䢲䢲䣈䣈䣈䣈䣅
䢳
䢲
䢹
䢸
䢷
䢶
䢵
䢴
䢲䣺䢴䢲䢲䢲䢲䢲䢲䢲
図 3-2 ビ ッ ト バン ド のマ ッ ピ ン グ
3.7.1
エ イ リ アス領域への直接ア ク セス
エ イ リ ア ス領域の ワ ー ド への書 き 込みは、 ビ ッ ト バン ド 領域の タ ーゲ ッ ト ビ ッ ト に
対す る 読み出 し - 変更 - 書 き込み操作 と 同 じ 効果があ り ます。
エ イ リ ア ス領域の ワ ー ド に書 き込ま れ る 値の ビ ッ ト [0] に よ り 、 ビ ッ ト バン ド 領域の
タ ーゲ ッ ト ビ ッ ト に書 き込ま れ る 値が決定 さ れます。 ビ ッ ト [0] が 1 にセ ッ ト さ れた
値を書 き 込む と 、 ビ ッ ト バン ド の ビ ッ ト に 1 が書 き込ま れ、 ビ ッ ト [0] が 0 に ク リ ア
さ れた値を書 き 込む と 、 ビ ッ ト バン ド の ビ ッ ト に 0 が書 き込ま れます。
エ イ リ ア ス の ワー ド のビ ッ ト [31:1] は、 ビ ッ ト バン ド の ビ ッ ト には影響 し ません。
の書 き込みは、 0xFF の書 き込み と 同 じ 結果にな り ます。 0x00 の書 き 込みは、 0x0E の
書 き込み と 同 じ 結果にな り ます。
0x01
エ イ リ ア ス領域の ワ ー ド を読み出す と 、 0x01 ま たは 0x00 が返 さ れます。 0x01 と い う 値
は、 ビ ッ ト バン ド 領域の タ ーゲ ッ ト ビ ッ ト が 1 にセ ッ ト さ れてい る こ と を示 し ます。
0x00 と い う 値は、 タ ーゲ ッ ト ビ ッ ト が 0 に ク リ ア さ れてい る こ と を示 し ます。 読み出
し では、 ビ ッ ト [31:1] は常に 0 です。
3.7.2
ビ ッ ト バン ド 領域への直接ア ク セス
ビ ッ ト バン ド 領域に対 し て、 通常の読み出 し や書 き込みで直接ア ク セ スす る こ と も
で き ます。
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
3-21
プ ログ ラ マ モデル
3.8
プ ロ セ ッ サ コ ア レ ジス タ の概要
プ ロ セ ッ サには、 次の 32 ビ ッ ト レ ジ ス タ があ り ます。
•
13 個の汎用レ ジ ス タ 、 R0 ~ R12
ス タ ッ ク ポ イ ン タ (SP)、 R13。 バン ク レ ジ ス タ SP_process お よ び SP_main のエ
•
イ リ ア ス です。
•
リ ン ク レ ジ ス タ (LR)、 R14
プ ロ グ ラ ム カ ウ ン タ (PC)、 R15
•
•
特殊用途の プ ロ グ ラ ム ス テータ ス レ ジ ス タ 、 (xPSR)
プ ロ セ ッ サの レ ジ ス タ セ ッ ト を、 図 3-3 に示 し ます。
ୗ఩児儜儝儣
ୖ఩児儜儝儣
儻兑儔免兄儝優兠儣儝䢢児儜儝儣
䣔䢲
䣔䢳
䣔䢴
䣔䢵
䣔䢶
䣔䢷
䣔䢸
䣔䢹
䣔䢺
䣔䢻
䣔䢳䢲
䣔䢳䢳
䣔䢳䢴
䣔䢳䢵䢢䢪䣕䣒䢫
䣔䢳䢶䢢䢪䣎䣔䢫
䣔䢳䢷䢢䢪䣒䣅䢫
䣺䣒䣕䣔
䣕䣒䣡䣲䣴䣱䣥䣧䣵䣵
䣕䣒䣡䣯䣣䣫䣰
図 3-3 プ ロ セ ッ サのレ ジス タ セ ッ ト
汎用レ ジ ス タ R0 ~ R12 には、 アーキテ ク チ ャ で定義 さ れた特別な用途はあ り ませ
ん。 汎用レ ジ ス タ を指定す る ほ と ん どの命令は、 R0 ~ R12 を使用で き ます。
下位レ ジ ス タ
レ ジ ス タ R0 ~ R7 は、 汎用レ ジ ス タ を指定す る すべての命令に
よ っ て ア ク セ ス可能です。
上位レ ジ ス タ
レ ジ ス タ R8 ~ R12 は、 汎用レ ジ ス タ を指定す る すべての 32 ビ ッ
ト 命令に よ っ て ア ク セ ス可能です。
レ ジ ス タ R8 ~ R12 は、 16 ビ ッ ト 命令ではア ク セ ス で き ません。
レ ジ ス タ R13、 R14、 R15 には、 次に示す特別な機能があ り ます。
ス タ ッ ク ポ イ ン タ レ ジ ス タ R13 は、 ス タ ッ ク ポ イ ン タ (SP) と し て使用 さ れます。
SP はビ ッ ト [1:0] への書 き 込みを無視す る ため、 4 バ イ ト 境界の
ワ ー ド に自動的にア ラ イ ン さ れます。
ハン ド ラ モー ド では常時 SP_main が使用 さ れます。 ス レ ッ ド モー
ド では SP_main ま たは SP_process のいずれか を使用する よ う に構
成で き ます。
リ ン ク レジス タ
レ ジ ス タ R14 は、 サブルーチンの リ ン ク レ ジ ス タ (LR) です。
LR は、 リ ン ク 付き 分岐 (BL) ま たは リ ン ク 付き分岐交換 (BLX) 命令
が実行 さ れた と き 、 PC か ら 復帰ア ド レ ス を受け取 り ます。
LR は例外か ら の復帰に も 使用 さ れます。
それ以外の場合は、 R14 を汎用レ ジ ス タ と し て使用で き ます。
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
3-22
プ ログ ラ マ モデル
プロ グ ラ ムカ ウ ン タ レ ジ ス タ R15 は プ ロ グ ラ ム カ ウ ン タ (PC) です。
ビ ッ ト [0] は常時 0 のため、 命令は常に ワー ド ま たはハーフ ワー
ド 境界にア ラ イ ン さ れます。
詳細については、 『ARMv7-M アーキ テ ク チ ャ リ フ ァ レ ン ス マニ ュ アル』 を参照 し て
下 さ い。
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
3-23
プ ログ ラ マ モデル
3.9
例外
プ ロ セ ッ サ と ネ ス ト 型ベ ク タ割 り 込みコ ン ト ロ ー ラ (NVIC) は、 すべての例外に優先
度を付けて処理 し ます。 割 り 込みを処理す る と き は、 次の規則が適用 さ れます。
•
•
•
すべての例外はハン ド ラ モー ド で処理 さ れます。
プ ロ セ ッ サの状態は、 例外の発生時に自動的に ス タ ッ ク に保存 さ れ、 割 り 込み
処理ルーチン (ISR) の終了時に自動的に ス タ ッ ク か ら 復元 さ れます。
割 り 込みの開始を効率的に行 う ため、 ベ ク タ のフ ェ ッ チは状態の保存 と 並行 し
て行われます。
プ ロ セ ッ サはテールチ ェ イ ン をサポー ト し てい る ため、 状態の保存 と 復元のオーバ
ヘ ッ ド な し に連続 し た割 り 込みが可能です。
割 り 込みの数 と 、 割 り 込み優先度のビ ッ ト の数は、 実装時に構成 し ます。 ソ フ ト
ウ ェ アで選択で き る のは、 構成 さ れてい る 割 り 込みの一部を可能にす る こ と と 、 構
成 さ れてい る 優先度の う ち何ビ ッ ト を使用す る かのみです。
注
ベ ク タ テーブルのエン ト リ は、 ARM 命令 と Thumb 命令 と の イ ン タ ーワーキ ン グに
互換性があ り ます。 こ のため、 ベ ク タ の値の ビ ッ ト [0] は、 例外の開始時に 実行プ ロ
グ ラ ム ス テータ ス レ ジ ス タ (EPSR) の T ビ ッ ト に ロ ー ド さ れます。 ベ ク タ テーブル
のエ ン ト リ に書 き込ま れ る ベ ク タ はすべて、 ビ ッ ト [0] がセ ッ ト さ れてい る必要があ
り ます。 ビ ッ ト [0] が ク リ ア さ れたテーブルエ ン ト リ を作成す る と 、 そのベ ク タ に対
応す る ハン ド ラ の最初の命令で INVSTATE フ ォール ト が生成 さ れます。
3.9.1
例外処理
プ ロ セ ッ サには、 『ARMv7-M アーキ テ ク チ ャ リ フ ァ レ ン ス マニ ュ アル』 で説明 さ れ
てい る 、 高度な例外お よ び割 り 込み処理が実装 さ れてい ます。
割 り 込みの レ イ テ ン シ を短縮す る ため、 プ ロ セ ッ サには、 ARMv7-M アーキテ ク チ ャ
に定義 さ れてい る、 後着割 り 込みお よ び割 り 込みテールチ ェ イ ン機構が実装 さ れて
い ます。
•
割 り 込みを アサー ト し てか ら 、 ISR の最初の命令が実行 さ れ る ま での レ イ テ ン
シは、 ア ク セ ス さ れ る メ モ リ に 0 ウ ェ イ ト ス テー ト が適用 さ れ る場合、 最大 12
サ イ ク ルです。 最初に実行 さ れ る 命令は、 ス タ ッ ク プ ッ シ ュ と 並列に フ ェ ッ チ
さ れます。
•
割 り 込みか ら の復帰では、 同様に復帰先の命令が ス タ ッ ク ポ ッ プ と 並列に
フ ェ ッ チ さ れ、 12 サ イ ク ルが必要です。
•
テールチ ェ イ ンは、 0 ウ ェ イ ト ス テー ト の メ モ リ を使用 し てい る 場合に 6 サ イ
ク ルが必要です。 ス タ ッ ク のプ ッ シ ュやポ ッ プは実行 さ れず、 次の ISR の命令
のみが フ ェ ッ チ さ れます。
プ ロ セ ッ サの例外モデルには、 アーキテ ク チ ャ 定義の動作に加えて、 次の よ う な実
装定義の動作が含まれてい ます。
•
HardFault か ら NMI ロ ッ ク ア ッ プ ま での ス タ ッ ク 操作におけ る 例外を NMI 優先
度で動作
•
NMI か ら HardFault ロ ッ ク ア ッ プ ま でのア ン ス タ ッ ク 操作におけ る 例外を
HardFault 優先度で動作
割 り 込みレ イ テ ン シ を最小化す る ため、 プ ロ セ ッ サは除算命令を破棄 し て保留中の
割 り 込みを取得 し ます。 割 り 込みハン ド ラ か ら 復帰す る と 、 プ ロ セ ッ サは除算命令
を最初か ら や り 直 し ます。 プ ロ セ ッ サには、 割 り 込み可能で再開可能な命令フ ィ ー
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
3-24
プ ログ ラ マ モデル
ル ド が実装 さ れてい ます。 複数 ロ ー ド (LDM) 操作 と 複数ス ト ア (STM) 操作は割 り 込み
可能です。 EPSR には、 割 り 込みが発生 し た場所か ら 複数 ロ ー ド / ス ト ア を再開す る
ために必要な情報が保持 さ れてい ます。
こ のため、 ソ フ ト ウ ェ アでデバ イ ス にア ク セ スす る と き 、 あ る いは読み出 し ま たは
繰 り 返 し 書 き 込みの影響を受け る メ モ リ 領域へア ク セ スす る 場合、 複数 ロ ー ド ま た
は複数ス ト ア命令を使用で き ません。 読み出 し ま たは書 き込みの繰 り 返 し に よ り 不
整合な結果や、 望ま し く ない副作用が発生す る 可能性があ る 場合、 ソ フ ト ウ ェ アで
こ れ ら の命令を使用で き ません。
LDM および STM 操作でのベース レ ジス タ 更新
LDM ま たは STM に よ り ベース レ ジ ス タ が更新 さ れ る 場合があ り ます。
•
命令に よ り ベース レ ジ ス タ の ラ イ ト バ ッ ク が指定 さ れた場合、 ベース レ ジ ス タ
は更新後のア ド レ ス に変更 さ れます。 アボー ト が発生す る と 、 元のベース値が
復元 さ れます。
•
LDM の レ ジ ス タ リ ス ト にベース レ ジ ス タ が含ま れてい る が、 リ ス ト の最後の レ
ジ ス タ ではない場合、 ベース レ ジ ス タ は ロ ー ド さ れた値に変更 さ れます。
次の場合、 LDM ま たは STM は継続 さ れず、 最初か ら や り 直 し さ れます。
•
命令が フ ォール ト し た場合
•
その命令が IT 内に含まれてい る 場合
LDM でベース の ロ ー ド が完了 し てい る 場合、 転送はベース の ロ ー ド 前の状態か ら 継続
さ れます。
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
3-25
第4章
シ ス テム制御
本章では、 プ ロ セ ッ サ をプ ロ グ ラ ムす る ための レ ジ ス タ について説明 し ます。 本章は次
のセ ク シ ョ ンで構成 さ れてい ます。
•
「シ ス テ ム制御について」 (ページ 4-2)
「レ ジ ス タ の概要」 (ページ 4-3)
•
「レ ジ ス タ の説明」 (ページ 4-5)
•
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
4-1
シス テム制御
4.1
シス テム制御について
本章では、 プ ロ セ ッ サの動作を制御す る レ ジ ス タ について説明 し ます。
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
4-2
シス テム制御
4.2
レ ジス タ の概要
シ ス テ ム制御レ ジ ス タ を、 表 4-1 に示 し ます。 本章で説明 さ れていない レ ジ ス タ につ
いては、 『ARMv7-M アーキテ ク チ ャ リ フ ァ レ ン ス マニ ュ アル』 を参照 し て下 さ い。
表 4-1 シス テム制御レ ジス タ
ア ド レス
名前
タ イプ
リ セ ッ ト 時の値
説明
0xE000E008
ACTLR
RW
0x00000000
「補助制御レ ジ ス タ 、 ACTLR」 (ページ 4-5)
0xE000E010
STCSR
RW
0x00000000
SysTick 制御お よ びス テー タ ス レ ジ ス タ
0xE000E014
STRVR
RW
未知
SysTick リ ロ ー ド 値レ ジ ス タ
0xE000E018
STCVR
RW ク リ ア
未知
SysTick 現在値レ ジ ス タ
0xE000E01C
STCR
RO
STCALIB
SysTick 較正値レ ジ ス タ
0xE000ED00
CPUID
RO
0x410FC241
「CPUID ベース レ ジ ス タ 、 CPUID」 (ページ
4-5)
0xE000ED04
ICSR
RW ま たは
RO
0x00000000
割 り 込み制御お よ び状態レ ジ ス タ
0xE000ED08
VTOR
RW
0x00000000
ベ ク タ テーブル オフ セ ッ ト レ ジ ス タ
0xE000ED0C
AIRCR
RW
0x00000000a
アプ リ ケーシ ョ ン割 り 込みお よ び リ セ ッ ト 制
御レ ジ ス タ
0xE000ED10
SCR
RW
0x00000000
シ ス テ ム制御レ ジ ス タ
0xE000ED14
CCR
RW
0x00000200
構成お よ び制御レ ジ ス タ
0xE000ED18
SHPR1
RW
0x00000000
シ ス テ ムハン ド ラ 優先度レ ジ ス タ 1
0xE000ED1C
SHPR2
RW
0x00000000
シ ス テ ムハン ド ラ 優先度レ ジ ス タ 2
0xE000ED20
SHPR3
RW
0x00000000
シ ス テ ムハン ド ラ 優先度レ ジ ス タ 3
0xE000ED24
SHCSR
RW
0x00000000
シ ス テ ムハン ド ラ 制御お よ び状態レ ジ ス タ
0xE000ED28
CFSR
RW
0x00000000
構成可能フ ォール ト ス テー タ ス レ ジ ス タ
0xE000ED2C
HFSR
RW
0x00000000
HardFault ス テー タ ス レ ジ ス タ
0xE000ED30
DFSR
RW
0x00000000
デバ ッ グ フ ォール ト ス テー タ ス レ ジ ス タ
0xE000ED34
MMFAR
RW
未知
MemManage フ ォール ト ア ド レ ス レ ジ ス タ b
0xE000ED38
BFAR
RW
未知
BusFault ア ド レ ス レ ジ ス タ b
0xE000ED3C
AFSR
RW
0x00000000
「補助フ ォール ト ス テータ ス レ ジ ス タ、
AFSR」 (ページ 4-6)
0xE000ED40
ID_PFR0
RO
0x00000030
プ ロ セ ッ サ機能レ ジ ス タ 0
0xE000ED44
ID_PFR1
RO
0x00000200
プ ロ セ ッ サ機能レ ジ ス タ 1
0xE000ED48
ID_DFR0
RO
0x00100000
デバ ッ グ機能レ ジ ス タ 0c
0xE000ED4C
ID_AFR0
RO
0x00000000
補助機能レ ジ ス タ 0
0xE000ED50
ID_MMFR0
RO
0x00100030
メ モ リ モデル機能レ ジ ス タ 0
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
4-3
シス テム制御
表 4-1 システム制御レ ジス タ ( 続き )
ア ド レス
名前
タ イプ
リ セ ッ ト 時の値
説明
0xE000ED54
ID_ MMFR1
RO
0x00000000
メ モ リ モデル機能レ ジ ス タ 1
0xE000ED58
ID_MMFR2
RO
0x01000000
メ モ リ モデル機能レ ジ ス タ 2
0xE000ED5C
ID_MMFR3
RO
0x00000000
メ モ リ モデル機能レ ジ ス タ 3
0xE000ED60
ID_ISAR0
RO
0x01141110
命令セ ッ ト 属性レ ジ ス タ 0
0xE000ED64
ID_ISAR1
RO
0x02112000
命令セ ッ ト 属性レ ジ ス タ 1
0xE000ED68
ID_ISAR2
RO
0x21232231
命令セ ッ ト 属性レ ジ ス タ 2
0xE000ED6C
ID_ISAR3
RO
0x01111131
命令セ ッ ト 属性レ ジ ス タ 3
0xE000ED70
ID_ISAR4
RO
0x01310132
命令セ ッ ト 属性レ ジ ス タ 4
0xE000ED88
CPACR
RW
-
コ プ ロ セ ッ サア ク セ ス制御レ ジ ス タ
0xE000EF00
STIR
WO
0x00000000
ソ フ ト ウ ェ ア ト リ ガ割 り 込みレ ジ ス タ
a. ビ ッ ト [10:8] の リ セ ッ ト 時の値は 0 です。 ENDIANNESS ビ ッ ト (ビ ッ ト [15]) の リ セ ッ ト 時の値は実装に
よ っ て決ま り ます。
b. BFAR と MMFAR は同 じ 物理レ ジ ス タ です。 こ のため、 BFARVALID ビ ッ ト と MMFARVALID ビ ッ ト は相互
に排他的です。
c. デバ ッ グサポー ト が実装 さ れていない場合、 ID_DFR0 の読み出 し 値は 0 です。
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
4-4
シス テム制御
4.3
レ ジス タ の説明
こ のセ ク シ ョ ンでは、 実装が こ のプ ロ セ ッ サに固有であ る シ ス テ ム制御レ ジ ス タ に
ついて説明 し ます。
4.3.1
補助制御レ ジ ス タ 、 ACTLR
ACTLR の特徴は次の と お り です。
目的
プ ロ セ ッ サ内の機能について、 特定の部分を非稼働に し ます。
使用制限
使用制限はあ り ません。
構成
こ の レ ジ ス タ は、 すべてのプ ロ セ ッ サ構成で利用可能です。
属性
レジス タの概要については、 表 4-1 (ページ 4-3) を参照し て下さ
い。
ACTLR のビ ッ ト 割 り 当て を、 図 4-1 に示 し ます。
䢳䢲 䢻 䢺 䢹
䢵䢳
ண⣙
䢵 䢴 䢳 䢲
ண⣙
䣆䣋䣕䣑䣑䣈䣒
䣆䣋䣕䣈䣒䣅䣃
䣆䣋䣕䣈䣑䣎䣆
䣆䣋䣕䣆䣇䣈䣙䣄䣗䣈
䣆䣋䣕䣏䣅䣛䣅䣋䣐䣖
図 4-1 ACTLR のビ ッ ト 割 り 当て
ACTLR のビ ッ ト 割 り 当て を、 表 4-2 に示 し ます。
表 4-2 ACTLR のビ ッ ト 割 り 当て
4.3.2
ビッ ト
名前
機能
[31:10]
-
予約
[9]
DISOOFP
浮動小数点命令が、 整数命令 と の前後関係について順不同に完了する こ と を不可
能に し ます。
[8]
DISFPCA
CONTROL.FPCA の自動更新を不可能に し ます。 詳細については、 「例外」 (ペー
ジ 7-8) を
参照 し て下 さ い。
[7:3]
-
予約
[2]
DISFOLD
IT 命令の フ ォールデ ィ ン グ を不可能に し ます。
[1]
DISDEFWBUF
デフ ォル ト の メ モ リ マ ッ プ ア ク セ ス中の ラ イ ト バ ッ フ ァ の使用を不可能に し ま
す。 こ れに よ っ て、 すべてのバ ス フ ォール ト が正確バス フ ォール ト にな り ます
が、 メ モ リ への ス ト アが完了 し なければ次の命令を実行で き ないため、 プ ロ セ ッ
サの性能が低下 し ます。
[0]
DISMCYCINT
マルチサ イ ク ル命令の割 り 込みを不可能に し ます。 こ れに よ っ て、 割 り 込みの ス
タ ッ キ ン グが行われ る 前に ロ ー ド / ス ト ア と 乗算 / 除算操作が完了 さ れ る ため、 プ
ロ セ ッ サの割 り 込みレ イ テ ン シが増大 し ます。
CPUID ベース レ ジス タ 、 CPUID
CPUID には次の特徴があ り ます。
目的
ARM DDI 0439CJ
ID050813
次の も の を指定 し ます。
•
プ ロ セ ッ サ コ アの ID 番号
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
4-5
シス テム制御
•
•
プ ロ セ ッ サ コ アのバージ ョ ン番号
プ ロ セ ッ サ コ アの実装の詳細
使用制限
使用制限はあ り ません。
構成
こ の レ ジ ス タ は、 すべてのプ ロ セ ッ サ構成で利用可能です。
属性
レ ジ ス タ の概要については、 表 4-1 (ページ 4-3) を参照 し て下 さ
い。
CPUID の ビ ッ ト 割 り 当て を、 図 4-2 に示 し ます。
䢵䢳
䢴䢶 䢴䢵
䣋䣏䣒䣎䣇䣏䣇䣐䣖䣇䣔
䢴䢲 䢳䢻
䣘䣃䣔䣋䣃䣐䣖
䢳䢸 䢳䢷
凚ᐃᩘ凛
䢶 䢵
䣒䣃䣔䣖䣐䣑
䢲
䣔䣇䣘䣋䣕䣋䣑䣐
図 4-2 CPUID のビ ッ ト 割 り 当て
CPUID の ビ ッ ト 割 り 当て を、 表 4-3 に示 し ます。
表 4-3 CPUID のビ ッ ト 割 り 当て
4.3.3
ビッ ト
名前
機能
[31:24]
IMPLEMENTER
実装者を示 し ます。 0x41 = ARM
[23:20]
VARIANT
プ ロ セ ッ サの リ ビ ジ ョ ン を示 し ます。 0x0 = リ
ビジ ョ ン 0
[19:16]
(定数)
0xF と し て読み出 さ れます。
[15:4]
PARTNO
部品番号を示 し ます。 0xC24 = Cortex-M4
[3:0]
REVISION
パ ッ チ リ リ ース を示 し ます。 0x1 = パ ッ チ 1
補助フ ォ ール ト ス テー タ ス レ ジス タ 、 AFSR
AFSR には次の特徴があ り ます。
目的
追加のシ ス テ ム フ ォール ト 情報を ソ フ ト ウ ェ アに対 し て指定 し ま
す。
使用制限
AFSR フ ラ グは、 プ ロ セ ッ サの AUXFAULT 入力に直接マ ッ プ さ
れます。 外部ピ ンが 1 サ イ ク ルの間 HIGH レベルにな る と 、 対応
す る AFSR ビ ッ ト が 1 と し て ラ ッ チ さ れます。 こ のビ ッ ト は、 対
応す る AFSR ビ ッ ト に 1 を書 き 込む こ と に よ っ てのみ ク リ アで き
ます。
AFSR ビ ッ ト が書 き 込ま れた場合、 ま たは 1 と し て ラ ッ チ さ れた
場合、 例外は発生 し ません。 AUXFAULT 入力信号を使用す る に
は、 ソ フ ト ウ ェ アが AFSR を ポー リ ン グす る 必要があ り ます。
構成
こ の レ ジ ス タ は、 すべてのプ ロ セ ッ サ構成で利用可能です。
属性
レ ジ ス タ の概要については、 表 4-1 (ページ 4-3) を参照 し て下 さ
い。
AFSR のビ ッ ト 割 り 当て を、 図 4-3 (ページ 4-7) に示 し ます。
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
4-6
シス テム制御
31
0
AUXFAULT
図 4-3 AFSR のビ ッ ト 割 り 当て
AFSR のビ ッ ト 割 り 当て を、 表 4-4 に示 し ます。
表 4-4 AFSR のビ ッ ト 割 り 当て
ARM DDI 0439CJ
ID050813
ビッ ト
名前
機能
[31:0]
AUXFAULT
AUXFAULT 入力の ラ ッ チ さ れた も の
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
4-7
第5章
メ モ リ 保護ユニ ッ ト
本章では、 プ ロ セ ッ サの メ モ リ 保護ユニ ッ ト (MPU) について説明 し ます。 本章は次の
セ ク シ ョ ンで構成 さ れてい ます。
•
「MPU について」 (ページ 5-2)
「MPU の機能の説明」 (ページ 5-3)
•
「MPU のプ ロ グ ラ マモデル」 (ページ 5-4)
•
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
5-1
メ モ リ 保護ユニ ッ ト
5.1
MPU について
MPU は、 メ モ リ を保護す る ためのオプシ ョ ン コ ン ポーネン ト です。 プ ロ セ ッ サは、
標準の ARMv7 保護 メ モ リ シ ス テ ム アーキテ ク チ ャ モデルをサポー ト し てい ます。
MPU は、 次の機能を完全にサポー ト し てい ます。
•
保護領域
•
保護領域のオーバ ラ ッ プ。 優先度は次の と お り です。
— 7 = 最高優先度
— 0 = 最低優先度
•
ア ク セ ス許可
•
シ ス テ ムへの メ モ リ 属性のエ ク ス ポー ト
MPU で不一致やア ク セ ス許可違反が発生す る と 、 優先度をプ ロ グ ラ ム可能な
MemManage フ ォール ト ハン ド ラ が呼び出 さ れます。 詳細については、 『ARMv7-M
アーキ テ ク チ ャ リ フ ァ レ ン ス マニ ュ アル』 を参照 し て下 さ い。
MPU は、 次の目的に使用で き ます。
•
特権規則の強制
•
プ ロ セ ス の分離
•
ア ク セ ス規則の強制
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
5-2
メ モ リ 保護ユニ ッ ト
5.2
MPU の機能の説明
領域ア ク セ ス制御レ ジ ス タ のア ク セ ス許可ビ ッ ト TEX、 C、 B、 AP、 XN に よ っ て、
対応す る メ モ リ 領域へのア ク セ ス が制御 さ れます。 必要な許可な し に メ モ リ 領域へ
ア ク セ ス を行 う と 、 ア ク セ ス許可フ ォール ト が発生 し ます。 詳細については、
『ARMv7-M アーキ テ ク チ ャ リ フ ァ レ ン ス マニ ュ アル』 を参照 し て下 さ い。
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
5-3
メ モ リ 保護ユニ ッ ト
5.3
MPU のプ ログ ラ マ モデル
MPU レ ジ ス タ を、 表 5-1 に示 し ます。 こ れ ら の レ ジ ス タ については、 『ARMv7-M
アーキ テ ク チ ャ リ フ ァ レ ン ス マニ ュ アル』 で解説 さ れてい ます。
表 5-1 MPU レ ジス タ
ARM DDI 0439CJ
ID050813
ア ド レス
名前
タ イプ
リセッ ト時
の値
説明
0xE000ED90
MPU_TYPE
RO
0x00000800
MPU タ イ プ レ ジ ス タ
0xE000ED94
MPU_CTRL
RW
0x00000000
MPU 制御レ ジ ス タ
0xE000ED98
MPU_RNR
RW
0x00000000
MPU 領域番号レ ジ ス タ
0xE000ED9C
MPU_RBAR
RW
0x00000000
MPU 領域ベース ア ド レ ス レ ジ ス タ
0xE000EDA0
MPU_RASR
RW
0x00000000
MPU 領域属性およびサイズレジス タ
0xE000EDA4
MPU_RBAR_A1
0x00000000
MPU エ イ リ ア ス レ ジ ス タ
0xE000EDA8
MPU_RASR_A1
0x00000000
0xE000EDAC
MPU_RBAR_A2
0x00000000
0xE000EDB0
MPU_RASR_A2
0x00000000
0xE000EDB4
MPU_RBAR_A3
0x00000000
0xE000EDB8
MPU_RASR_A3
0x00000000
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
5-4
第6章
ネス ト 型ベ ク タ 割 り 込み コ ン ト ロー ラ
本章では、 ネ ス ト 型ベ ク タ割 り 込みコ ン ト ロー ラ (NVIC) について説明 し ます。 本章は
次のセ ク シ ョ ンで構成 さ れてい ます。
•
「NVIC について」 (ページ 6-2)
「NVIC の機能の説明」 (ページ 6-3)
•
「NVIC のプ ロ グ ラ マモデル」 (ページ 6-4)
•
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
6-1
ネス ト 型ベ ク タ 割 り 込みコ ン ト ロー ラ
6.1
NVIC について
NVIC は、 構成可能な割 り 込み処理を プ ロ セ ッ サに提供す る も ので、 次の機能があ り
ます。
•
レ イ テ ン シが短い例外お よ び割 り 込み処理を実現す る
•
電力管理を制御す る
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
6-2
ネス ト 型ベ ク タ 割 り 込みコ ン ト ロー ラ
6.2
NVIC の機能の説明
NVIC は最大 240 の割 り 込みを サポー ト し 、 各割 り 込みには最大 256 レベルの優先度
を設定で き ます。 割 り 込みの優先度は動的に変更可能です。 NVIC と プ ロ セ ッ サ コ ア
の イ ン タ フ ェ ース は密接に結合 さ れてい る ため、 レ イ テ ン シの短い割 り 込み処理や、
後着割 り 込みの効率的な処理が可能です。 NVIC は、 割 り 込みのテールチ ェ イ ン を可
能にす る ため、 ス タ ッ ク さ れた (ネ ス ト さ れた) 割 り 込みの情報を保持 し ます。
NVIC への完全な ア ク セ ス は特権モー ド か ら のみ実行で き ますが、 構成お よ び制御レ
ジ ス タ を稼働す る と 、 ユーザモー ド で割 り 込みを保留状態にで き ます。 ユーザモー
ド でそれ以外のア ク セ ス を行 う と 、 常にバ ス フ ォール ト が引 き 起 こ さ れます。
すべての NVIC レ ジ ス タ は、 特に記載 さ れていない限 り 、 バ イ ト 、 ハーフ ワー ド 、
ワー ド ア ク セ ス を使用し てア ク セ ス で き ます。 NVIC レ ジ ス タ は SCS 内に存在し ます。
すべての NVIC レ ジ ス タ と シ ス テ ムデバ ッ グ レ ジ ス タ は、 プ ロ セ ッ サのエ ンデ ィ ア
ン形式の状態にかかわ ら ず、 リ ト ルエ ンデ ィ ア ン です。
プ ロ セ ッ サの例外処理については、 「例外」 (ページ 3-24) を参照 し て下 さ い。
6.2.1
低電力モー ド
実装に ウ ェー ク ア ッ プ割 り 込みコ ン ト ロ ー ラ (WIC) を含め る こ と がで き ます。 こ れ
に よ っ て、 プ ロ セ ッ サ と NVIC を超低電力の ス リ ープモー ド に移行 し 、 割 り 込みの
識別 と 優先度付けは WIC に任せ る こ と がで き ます。
プ ロ セ ッ サには、 割 り 込み待ち (WFI)、 イ ベン ト 待ち (WFE)、 イ ベン ト 送信 (SEV) 命令
が完全に実装 さ れてい ます。 さ ら に、 プ ロ セ ッ サは SLEEPONEXIT の使用 も サポー
ト し てお り 、 こ れを使用 し た場合、 プ ロ セ ッ サ コ アが例外ハン ド ラ か ら ス レ ッ ド
モー ド に復帰 し た と き に ス リ ープモー ド に移行 し ます。 詳細については、 『ARMv7-M
アーキ テ ク チ ャ リ フ ァ レ ン ス マニ ュ アル』 を参照 し て下 さ い。
6.2.2
レベル割 り 込み と パルス割 り 込みの比較
プ ロ セ ッ サは、 レベル割 り 込み と パル ス割 り 込みの両方をサポー ト し てい ます。 レ
ベル割 り 込みは、 デバ イ ス にア ク セ スす る ISR に よ っ て ク リ ア さ れ る ま で、 アサー
ト さ れ続け ます。 パル ス割 り 込みは、 エ ッ ジモデルの一種です。 パル ス のサンプ リ
ン グは非同期ではな く 、 Cortex-M4 の ク ロ ッ ク FCLK の立ち上が り エ ッ ジで行われ
る こ と を保証す る必要があ り ます。
レベル割 り 込みの場合、 割 り 込みルーチンか ら 復帰す る 前に信号がアサー ト 解除 さ
れない と き は、 割 り 込みは再度保留状態に移行 し てか ら 、 再度ア ク テ ィ ブにな り ま
す。 こ れは FIFO お よ びバ ッ フ ァ ベース のデバ イ ス の場合に特に有用です。 こ れに よ
り 、 それ ら のデバ イ ス が余分な作業な し に、 1 つの ISR に よ っ て、 ま たは起動の繰 り
返 し に よ っ て ド レ イ ン さ れ る こ と が保証 さ れ る のが理由です。 こ れは、 デバ イ ス は
空にな る ま で、 信号を アサー ト の ま ま保持す る こ と を意味 し ます。
パル ス割 り 込みは、 ISR の間に再アサー ト す る こ と がで き ます。 こ のため、 割 り 込み
が同時に保留中 と ア ク テ ィ ブの両方の状態にな る 場合があ り ます。 割 り 込みが保留
中に別のパル ス が到着 し た場合、 その割 り 込みは保留中に維持 さ れ、 ISR は 1 回 し か
実行 さ れません。
パル ス割 り 込みは、 ほ と んど の場合外部信号に よ っ て、 一定の間隔で発生す る、 ま
たは繰 り 返 し 発生す る 信号に使用 さ れます。
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
6-3
ネス ト 型ベ ク タ 割 り 込みコ ン ト ロー ラ
6.3
NVIC のプ ログ ラ マモデル
NCIC レ ジ ス タ を、 表 6-1 に示 し ます。
表 6-1 NVIC レ ジス タ
ア ド レス
名前
タ イプ
リセッ ト時
の値
0xE000E004
ICTR
RO
-
「割 り 込みコ ン ト ローラ タ イ プ
レ ジ ス タ、 ICTR」
0xE000E100 ~
0xE000E11C
NVIC_ISER0 ~
NVIC_ISER7
RW
0x00000000
割 り 込み イ ネーブルセ ッ ト レ ジ
スタ
0xE000E180 ~
0xE000E19C
NVIC_ICER0 ~
NVIC_ICER7
RW
0x00000000
割 り 込み イ ネーブル ク リ ア レ ジ
スタ
0xE000E200 ~
0xE000E21C
NVIC_ISPR0 ~
NVIC_ISPR7
RW
0x00000000
割 り 込み保留セ ッ ト レ ジ ス タ
0xE000E280 ~
0xE000E29C
NVIC_ICPR0 ~
NVIC_ICPR7
RW
0x00000000
割 り 込み保留 ク リ ア レ ジ ス タ
0xE000E300 ~
0xE000E31C
NVIC_IABR0 ~
NVIC_IABR7
RO
0x00000000
割 り 込みア ク テ ィ ブ ビ ッ ト レ ジ
スタ
0xE000E400 ~
0xE000E4EC
NVIC_IPR0 ~
NVIC_IPR59
RW
0x00000000
割 り 込み優先度レ ジ ス タ
説明
以下のセ ク シ ョ ンでは、 実装が こ のプ ロ セ ッ サに固有であ る NVIC レ ジ ス タ につい
て説明 し ます。 他の レ ジ ス タ については、 『ARMv7-M アーキ テ ク チ ャ リ フ ァ レ ン ス
マニ ュ アル』 で解説 さ れてい ます。
6.3.1
割 り 込み コ ン ト ロー ラ タ イ プ レ ジス タ 、 ICTR
ICTR には次の特徴があ り ます。
目的
NVIC がサポー ト す る 割 り 込み ラ イ ンの数を示 し ます。
使用制限
使用制限はあ り ません。
構成
こ の レ ジ ス タ は、 すべてのプ ロ セ ッ サ構成で利用可能です。
属性
レ ジ ス タ の概要については、 表 6-1 を参照 し て下 さ い。
ICTR の ビ ッ ト 割 り 当て を、 図 6-1 に示 し ます。
䢵䢳
䢶 䢵
䢲
ண⣙
䣋䣐䣖䣎䣋䣐䣇䣕䣐䣗䣏
図 6-1 ICTR のビ ッ ト 割 り 当て
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
6-4
ネス ト 型ベ ク タ 割 り 込みコ ン ト ロー ラ
ICTR の ビ ッ ト 割 り 当て を、 表 6-2 に示 し ます。
表 6-2 ICTR のビ ッ ト 割 り 当て
ビッ ト
名前
機能
[31:4]
-
予約
[3:0]
INTLINESNUM
割 り 込み ラ イ ンの総数で、 32 個のグルー
プ単位で示 さ れます。
b0000 = 0 ~ 32
b0001 = 33 ~ 64
b0010 = 65 ~ 96
b0011 = 97 ~ 128
b0100 = 129 ~ 160
b0101 = 161 ~ 192
b0110 = 193 ~ 224
b0111 = 225 ~ 256a
a. プ ロ セ ッ サは、 最大 240 の外部割 り 込みを サポー ト し ます。
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
6-5
第7章
浮動小数点ユニ ッ ト
本章では、 浮動小数点ユニ ッ ト (FPU) のプ ロ グ ラ マモデルについて説明 し ます。 本章は
次のセ ク シ ョ ンで構成 さ れてい ます。
•
「FPU について」 (ページ 7-2)
「FPU の機能の説明」 (ページ 7-3)
•
「FPU のプ ロ グ ラ マモデル」 (ページ 7-9)
•
Cortex-M4 (FPU 付 き) プ ロ セ ッ サは、 オプシ ョ ンの FPU を搭載 し てい る Cortex-M4 プ
ロ セ ッ サです。 本章では、 プ ロ セ ッ サ と い う 一般的な用語は Cortex-M4 (FPU 付き ) プ
ロ セ ッ サのみを意味 し ます。
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
7-1
浮動小数点ユニ ッ ト
7.1
FPU について
Cortex-M4 の FPU は、 ARMv7-M 浮動小数点拡張機能の単精度バ リ ア ン ト の実装です
(FPv4-SP)。 IEEE 754 規格 と 呼ばれ る 、 『ANSI/IEEE Std 754-2008, IEEE Standard for
Binary Floating-Point Arithmetic』 に準拠 し た浮動小数点計算機能が提供 さ れてい ます。
FPU は、 『ARM アーキ テ ク チ ャ リ フ ァ レ ン ス マニ ュ アル』 で解説 さ れてい るすべて
の単精度デー タ 処理命令 と デー タ 型をサポー ト し てい ます。
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
7-2
浮動小数点ユニ ッ ト
7.2
FPU の機能の説明
FPU は、 単精度の加算、 減算、 乗算、 除算、 積和演算、 平方根演算を完全にサポー
ト し ます。 ま た、 固定小数点 と 浮動小数点のデー タ 形式の相互変換、 お よ び浮動小
数点定数命令 も 提供 し ます。
FPU の機能の説明には、 次の ト ピ ッ ク が含ま れます。
•
「レ ジ ス タ バン ク の FPU ビ ュー」
•
「動作モー ド 」
•
「FPU の命令セ ッ ト 」 (ページ 7-4)
「IEEE 754 規格への準拠」 (ページ 7-6)
•
「IEEE 754 規格の完全な実装」 (ページ 7-6)
•
「IEEE 754 規格の実装の選択」 (ページ 7-6)
•
「例外」 (ページ 7-8)
•
「FPU の稼働」 (ページ 7-9)
•
7.2.1
レ ジス タ バン クの FPU ビ ュ ー
FPU が提供す る 拡張レ ジ ス タ フ ァ イ ルには、 32 本の単精度レ ジ ス タ が含ま れます。
こ れ ら の レ ジ ス タ は、 次のいずれかの形式で参照で き ます。
•
16 本の 64 ビ ッ ト ダブル ワー ド レ ジ ス タ 、 D0 ~ D15
•
32 本の 32 ビ ッ ト シ ン グル ワー ド レ ジ ス タ 、 S0 ~ S31
•
こ れ ら のビ ュ ーに含ま れ る レ ジ ス タ の組み合わせ
S0
S1
S2
S3
S4
S5
S6
S7
…
S28
S29
S30
S31
D0
D1
D2
D3
…
D14
D15
図 7-1 FPU のレ ジス タ バン ク
レ ジ ス タ 間のマ ッ ピ ン グは次の と お り です。
•
S<2n> は、 D<n> の下位半分にマ ッ プ さ れます。
•
S<2n+1> は、 D<n> の上位半分にマ ッ プ さ れます。
例えば、 D6 の値の下位半分にア ク セ スす る には S12 に、 上位半分にア ク セ スす る には
にア ク セ ス し ます。
S13
7.2.2
動作モー ド
各種のアプ リ ケーシ ョ ンに対応す る ため、 FPU には 3 つの動作モー ド が存在 し ます。
「完全準拠モー ド 」 (ページ 7-4)
•
「Flush-to-Zero モー ド 」 (ページ 7-4)
•
「デフ ォル ト NaN モー ド 」 (ページ 7-4)
•
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
7-3
浮動小数点ユニ ッ ト
完全準拠モー ド
完全準拠モー ド では、 FPU はすべての動作を、 IEEE 754 規格に従っ てハー ド ウ ェ ア
で処理 し ます。
Flush-to-Zero モー ド
浮動小数点ス テータ スおよ び制御レ ジ ス タ の FZ ビ ッ ト (FPSCR[24]) を セ ッ ト す る
と 、 Flush-to-Zero モー ド が可能にな り ます。 こ のモー ド では、 FPU は算術 CDP 演算の
非正規化入力オペ ラ ン ド をすべて、 0 と し て演算で扱い ます。 0 のオペ ラ ン ド か ら 発
生す る 例外は、 適切に通知 さ れます。 VABS、 VNEG、 VMOV 命令は算術 CDP 演算 と 見な さ れ
ないため、 Flush-to-Zero モー ド の影響を受け ません。 IEEE 754 規格で定義 さ れてい
る よ う に、 丸め前の結果が、 デス テ ィ ネーシ ョ ンの精度で表現で き る 最小の正規化
数値 よ り も 絶対値が小 さ い場合、 その結果は小 さ い と 見な さ れ、 正の 0 で置 き換え
ら れます。 IDC フ ラ グ (FPSCR[7]) は、 入力フ ラ ッ シ ュ が行われた こ と を示 し ます。
UFC フ ラ グ (FPSCR[3]) は、 結果フ ラ ッ シ ュ が行われた こ と を示 し ます。
デ フ ォ ル ト NaN モー ド
DN ビ ッ ト (FPSCR[25]) を セ ッ ト す る と 、 デフ ォ ル ト NaN モー ド が可能にな り ます。
こ のモー ド では、 入力に NaN が含ま れてい る 、 ま たは NaN の結果を生成す る すべて
の算術デー タ 処理操作で、 結果 と し てデフ ォ ル ト NaN が返 さ れます。 仮数ビ ッ ト の
伝播は、 VABS、 VNEG、 VMOV 操作でのみ維持 さ れます。 他のすべての CDP 操作では、 入力
NaN の仮数ビ ッ ト に含まれてい る 情報は無視 さ れます。
7.2.3
FPU の命令セ ッ ト
FPU の命令セ ッ ト を、 表 7-1 に示 し ます。
表 7-1 FPU の命令セ ッ ト
操作
説明
アセ ン ブ ラ
サイ クル数
絶対値
浮動小数点の絶対値
VABS.F32
1
加算
浮動小数点加算
VADD.F32
1
比較
レ ジ ス タ ま たは 0 と の浮動小数点比較
VCMP.F32
1
レ ジ ス タ ま たは 0 と の浮動小数点比較
VCMPE.F32
1
変換
整数、 固定小数点数、 半精度、 単精度
VCVT.F32
1
除算
浮動小数点数
VDIV.F32
14
ロード
複数の倍精度
VLDM.64
1 + 2 * N、 N は倍精度
数値の数
複数の単精度
VLDM.32
1 + N、 N は単精度数
値の数
単一の倍精度
VLDR.64
3
単一の単精度
VLDR.32
2
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
7-4
浮動小数点ユニ ッ ト
表 7-1 FPU の命令セ ッ ト ( 続き )
操作
説明
アセ ン ブ ラ
サイ クル数
移動
ダブルワー ド の上位 / 下位半分 と コ ア レ ジ ス タ と の
間
VMOV
1
イ ミ デ ィ エー ト / 単精度 と 浮動小数点レ ジ ス タ と の
間
VMOV
1
2 つの単精度 /1 つの倍精度 と 2 つの コ ア レ ジ ス タ
と の間、 ま たは 1 つの単精度 と 1 つの コ ア レ ジ ス
タ と の間
VMOV
2
浮動小数点制御 / ス テー タ ス か ら コ ア レ ジ ス タ へ
VMRS
1
コ ア レ ジ ス タ か ら 浮動小数点制御 / ス テー タ スへ
VMSR
1
単精度
VMUL.F32
1
乗算後に単精度累算
VMLA.F32
3
乗算後に単精度減算
VMLS.F32
3
乗算後に単精度累算 し てか ら 補数
VNMLA.F32
3
乗算後に単精度減算 し てか ら 補数
VNMLS.F32
3
乗算後に単精度累算
VFMA.F32
3
乗算後に単精度減算
VFMS.F32
3
乗算後に単精度累算 し てか ら 補数
VFNMA.F32
3
乗算後に単精度減算 し てか ら 補数
VFNMS.F32
3
単精度
VNEG.F32
1
お よ び単精度乗算
VNMUL.F32
1
ス タ ッ ク か ら 倍精度レ ジ ス タ を ポ ッ プ
VPOP.64
1 + 2 * N、 N は倍精度
レ ジ ス タ の数
ス タ ッ ク か ら 単精度レ ジ ス タ を ポ ッ プ
VPOP.32
1 + N、 N はレ ジ ス タ
の数
ス タ ッ ク に倍精度レ ジ ス タ をプ ッ シ ュ
VPUSH.64
1 + 2 * N、 N は倍精度
レ ジ ス タ の数
ス タ ッ ク に単精度レ ジ ス タ をプ ッ シ ュ
VPUSH.32
1 + N、 N はレ ジ ス タ
の数
平方根
単精度数値の平方根
VSQRT.F32
14
ストア
複数の倍精度レ ジ ス タ
VSTM.64
1 + 2 * N、 N は倍精度
数値の数
複数の単精度レ ジ ス タ
VSTM.32
1 + N、 N は単精度数
値の数
単一の倍精度レ ジ ス タ
VSTR.64
3
単一の単精度レ ジ ス タ
VSTR.32
2
単精度
VSUB.F32
1
乗算
乗算 (融合)
補数
ポップ
プッシュ
減算
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
7-5
浮動小数点ユニ ッ ト
注
•
VDIVR ま たは VSQRT 命令の後に続 く 整数のみの命令は、 ア ウ ト オブ オーダに完了
さ れます。 VDIV お よ び VSQRT 命令は、 以後に浮動小数点命令が実行 さ れなけれ
ば 1 サ イ ク ルで完了 し ます。
7.2.4
•
浮動小数点算術デー タ 処理命令、 例えば加算、 減算、 乗算、 除算、 平方根、 す
べての形式の積和演算、 すべての型の変換は、 次の命令でその結果が使用 さ れ
る 場合は余分に 1 サ イ ク ルが必要です。
•
融合お よ びチ ェ イ ン積和演算命令は、 1 サ イ ク ル後に加数を使用す る ため、 算
術演算命令の後に積和演算命令が続 く 場合、 算術演算命令の結果は MAC 命令
の加数 と し て使用 さ れます。
IEEE 754 規格への準拠
デフ ォル ト NaN(DN) お よ び Flush-to-Zero(FZ) モー ド が不可能な場合、 FPv4 の機能は
ハー ド ウ ェ アで IEEE 754 規格に準拠 し てい ます。 こ の準拠を実現す る ためにサポー
ト コー ド は必要あ り ません。
FP アーキ テ ク チ ャ での IEEE 754 規格への準拠については、 『ARM アーキ テ ク チ ャ リ
フ ァ レ ン ス マニ ュ アル』 を参照 し て下 さ い。
7.2.5
IEEE 754 規格の完全な実装
Cortex-M4 (FPU 付 き ) 浮動小数点命令セ ッ ト は、 IEEE 754-2008 規格で定義 さ れて
い るすべての操作を サポー ト し てい ません。 サポー ト さ れていない操作を次に示 し
ますが、 こ れで全部ではあ り ません。
•
剰余
•
浮動小数点数の整数値浮動小数点数への丸め
•
2 進数か ら 10 進数への変換
•
10 進数か ら 2 進数への変換
•
単精度値 と 倍精度値 と の直接比較
Cortex-M4 の FPU は、 IEEE 規格に記載 さ れてい る 融合 MAC 演算をサポー ト し てい
ます。 IEEE 754-2008 規格を完全に実装す る には、 ラ イ ブ ラ リ 関数を使用 し て浮動小
数点機能を拡張す る 必要があ り ます。
7.2.6
IEEE 754 規格の実装の選択
IEEE 754-2008 規格で許可 さ れ、 FPv4 アーキテ ク チ ャ で使用 さ れてい る実装選択のい
く つかは、 『ARM アーキ テ ク チ ャ リ フ ァ レ ン ス マニ ュ アル』 に記載 さ れてい ます。
NaN 処理
指数フ ィ ール ド が最大値で、 仮数フ ィ ール ド が 0 以外の単精度値はすべて、 有効な
NaN です。 仮数の最上位ビ ッ ト が 0 の場合、 シ グナル NaN (SNaN) を示 し ます。 1 の
場合、 ク ワ イ エ ッ ト NaN (QNaN) を示 し ます。 2 つの NaN 値は、 いずれかの ビ ッ ト
が異な る 場合に別の NaN と し て扱われます。 デフ ォ ル ト NaN 値を、 表 7-2 に示 し ま
す。
表 7-2 デ フ ォル ト NaN 値
ARM DDI 0439CJ
ID050813
符号
指数
仮数
0
00xFF
ビ ッ ト [22] = 1、 ビ ッ ト [21:0] =
すべて 0
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
7-6
浮動小数点ユニ ッ ト
ARM 浮動小数点機能 と ラ イ ブ ラ リ での NaN 入力処理は、 次の よ う に定義 さ れます。
•
完全準拠モー ド では、 NaN は 『ARM アーキ テ ク チ ャ リ フ ァ レ ン ス マニ ュ アル』
に記載 さ れてい る よ う に処理 さ れます。 ハー ド ウ ェ アは、 算術 CDP 命令につい
て NaN を直接処理 し ます。 デー タ 転送操作では、 NaN は無効演算例外を引 き
起 こ さ ずに転送 さ れます。 算術以外の CDP 命令 と 、 VABS、 VNEG、 VMOV では、 NaN は
コ ピー さ れ、 命令に よ っ て指定 さ れていれば符号が変更 さ れ、 無効演算例外は
発生 し ません。
•
デフ ォ ル ト NaN モー ド では、 NaN オペ ラ ン ド を含む算術 CDP 命令について、
NaN オペ ラ ン ド の仮数部に関係な く 、 デフ ォ ル ト NaN が返 さ れます。 算術 CDP
操作に SNaN が含ま れてい る と 、 IOC フ ラ グ (FPSCR[0]) がセ ッ ト さ れます。
デー タ 転送命令 と 非算術 CDP 命令に よ る NaN の処理は、 完全準拠モー ド での処
理 と 同 じ です。
命令実行に対す る NaN オペ ラ ン ド の影響の要約を、 表 7-3 に示 し ます。
表 7-3 QNaN と SNaN の処理
命令の種類
デ フ ォル ト
NaN モー ド
オフ
算術 CDP
オン
オフ
非算術 CDP
QNaN オペ ラ ン ド がある場合
SNaN オペ ラ ン ド がある場合
『ARM アーキテ ク チ ャ リ フ ァ レ ン ス マ
ニ ュ アル』 に記載 さ れてい る規則に従
い、 QNaN オペ ラ ン ド 、 複数の QNaN
オペ ラ ン ド が存在す る場合にはそのい
ずれかが返 さ れます。
IOCa がセ ッ ト さ れます。 SNaN は
ク ワ イ エ ッ ト 化 さ れ、 『ARM アー
デフ ォ ル ト NaN が返 さ れます。
IOCa がセ ッ ト さ れます。 デフ ォ ル
ト NaN が返 さ れます。
キテ ク チ ャ リ フ ァ レ ン ス マニ ュ ア
ル』 に記載 さ れてい る規則に従っ
て、 結果 と な る NaN が決定 さ れ
ます。
NaN は、 必要に応 じ て符号が変更 さ れ、 デス テ ィ ネーシ ョ ンに渡 さ れます。
オン
FCMP(Z)
-
順序付け無 し の比較が行われます。
IOC がセ ッ ト さ れます。 順序付け
無 し の比較が行われます。
FCMPE(Z)
-
IOC がセ ッ ト さ れます。 順序付け無 し
の比較が行われます。
IOC がセ ッ ト さ れます。 順序付け
無 し の比較が行われます。
ロー ド / ス
トア
オフ
すべての NaN が転送 さ れます。
オン
a. IOC は、 無効演算例外フ ラ グ (FPSCR[0]) の略称です。
比較
比較結果に よ り 、 FPSCR の フ ラ グが変更 さ れます。 MVRS APSR_nzcv 命令 (従来の FMSTAT)
を使用 し て、 現在の フ ラ グ を FPSCR か ら APSR へ転送で き ます。 IEEE 754-2008 規
格の命題か ら ARM の条件へのマ ッ ピ ン グについては、 『ARM アーキテ ク チ ャ リ フ ァ
レ ン ス マニ ュ アル』 を参照 し て下 さ い。 使用す る フ ラ グは、 後続の ARM 命令の条件
付 き実行で、 IEEE 規格に定義 さ れてい る命題がテ ス ト で き る よ う に選択 さ れてい ま
す。
ア ン ダー フ ロー
Cortex-M4 (FPU 付 き ) の FPU は、 ア ン ダーフ ロ ー例外を生成す る ため、 IEEE
754-2008 規格に記載 さ れてい る 丸め前形式の小 さ さ と 、 不正確な結果形式の精度損
失 を使用 し ます。
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
7-7
浮動小数点ユニ ッ ト
Flush-to-Zero モー ド では、 IEEE 規格の記載に従っ て、 丸め前に結果が小 さ い場合は
0 に フ ラ ッ シ ュ さ れ、 UFC フ ラ グ (FPSCR[3]) がセ ッ ト さ れます。 Flash-to-Zero モー
ド の詳細については、 『ARM アーキ テ ク チ ャ リ フ ァ レ ン ス マニ ュ アル』 を参照 し て
下 さ い。
FPU が Flush-to-Zero モー ド でない場合、 非正規数のオペ ラ ン ド に対 し て も 演算が実
行 さ れます。 演算で小 さ な結果が生成 さ れなかっ た場合は、 計算結果が返 さ れ、
UFC フ ラ グ (FPSCR[3]) はセ ッ ト さ れません。 演算が不正確な場合は、 IXC フ ラ グ
(FPSCR[4]) がセ ッ ト さ れます。 演算で小 さ な結果が生成 さ れた場合、 結果は非正規
数値ま たは 0 値にな り 、 結果が不正確で も あ る 場合は UFC フ ラ グ (FPSCR[3]) がセ ッ
ト さ れます。
7.2.7
例外
FPU は、 FPv4 アーキ テ ク チ ャ に従い、 各命令での必要に応 じ て、 FPSCR レ ジ ス タ の
累積例外ス テー タ ス フ ラ グ を設定 し ます。 FPU はユーザモー ド ト ラ ッ プをサポー ト
し てい ません。 FPSCR の例外 イ ネーブルビ ッ ト は読み出 し 値 0 で、 書 き込みは無視
さ れます。 プ ロ セ ッ サには FPIXC、 FPUFC、 FPOFC、 FPDZC、 FPIDC、 FPIOC の
6 つの出力ピ ン も あ り 、 それぞれが累積例外フ ラ グの 1 つの ス テー タ ス を反映 し てい
ます。 こ れ ら の出力の説明については、 『Cortex-M4 統合お よび実装マニ ュ アル』 を
参照 し て下 さ い。
プ ロ セ ッ サは、 レ イ ジース タ ッ ク を使用 し て例外の レ イ テ ン シ を短縮で き ます。 「補
助制御レ ジ ス タ、 ACTLR」 (ページ 4-5) を参照 し て下 さ い。 こ れは、 プ ロ セ ッ サは
FP 状態用の領域を ス タ ッ ク 上に予約す る が、 その状態情報を ス タ ッ ク へ保存 し ない
こ と を意味 し ます。 詳細については、 『ARMv7-M アーキ テ ク チ ャ リ フ ァ レ ン ス マ
ニ ュ アル』 を参照 し て下 さ い。
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
7-8
浮動小数点ユニ ッ ト
7.3
FPU のプ ログ ラ マモデル
Cortex-M4 (FPU 付 き ) の FPU の FP シ ス テ ム レ ジ ス タ を、 表 7-4 に示 し ます。
表 7-4 Cortex-M4 (FPU 付き) の浮動小数点シス テムレ ジス タ
ア ド レス
名前
タ イプ
リセッ ト時
の値
説明
0xE000EF34
FPCCR
RW
0xC0000000
FP コ ン テ キ ス ト 制御レ ジ ス タ
0xE000EF38
FPCAR
RW
-
FP コ ン テ キ ス ト ア ド レ ス レ ジ ス タ
0xE000EF3C
FPDSCR
RW
0x00000000
FP デフ ォル ト ス テー タ ス制御レ ジ
スタ
0xE000EF40
MVFR0
RO
0x10110021
メ デ ィ アお よび VFP 機能レ ジ ス タ
0、 MVFR0
0xE000EF44
MVFR1
RO
0x11000011
メ デ ィ アお よび VFP 機能レ ジ ス タ
1、 MVFR1
Cortex-M4 (FPU 付 き ) の FPU レ ジ ス タ はすべて、 『ARMv7-M アーキ テ ク チ ャ リ
フ ァ レ ン ス マニ ュ アル』 に解説 さ れてい ます。
7.3.1
FPU の稼働
特権お よ びユーザモー ド の両方で FPU を稼働す る ための コ ー ド シーケ ン ス例を、
例 7-1 に示 し ます。 CPACR への読み出 し と 書 き込みを行 う には、 プ ロ セ ッ サが特権
モー ド であ る 必要があ り ます。
例 7-1 FPU の稼働
; CPACR is located at address 0xE000ED88
LDR.W
R0, =0xE000ED88
; Read CPACR
LDR
R1, [R0]
; Set bits 20-23 to enable CP10 and CP11 coprocessors
ORR
R1, R1, #(0xF << 20)
; Write back the modified value to the CPACR
STR
R1, [R0]
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
7-9
第8章
デバ ッ グ
本章では、 プ ロ セ ッ サで実行 さ れてい る ソ フ ト ウ ェ アのデバ ッ グ と テ ス ト を行 う 方法に
ついて説明 し ます。 本章は次のセ ク シ ョ ンで構成 さ れてい ます。
•
「デバ ッ グについて」 (ページ 8-2)
「AHB-AP について」 (ページ 8-6)
•
「フ ラ ッ シ ュ パ ッ チおよびブ レー ク ポ イ ン ト ユニ ッ ト (FPB) について」 (ページ
•
8-9)
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
8-1
デバ ッ グ
8.1
デバ ッ グについて
デバ ッ グの構成は、 デバ ッ グが実装 さ れ る か ど う か も 含め、 プ ロ セ ッ サの実装に よ
り 決定 さ れます。 プ ロ セ ッ サにデバ ッ グが実装 さ れない場合、 ROM テーブルは存在
せず、 ホール ト 、 ブ レー ク ポ イ ン ト 、 ウ ォ ッ チポ イ ン ト の機能 も 存在 し ません。
基本的なデバ ッ グ機能には、 プ ロ セ ッ サのホール ト 、 シ ン グル ス テ ッ プ、 プ ロ セ ッ
サの コ ア レ ジ ス タ へのア ク セ ス、 ベ ク タ キ ャ ッ チ、 無制限の ソ フ ト ウ ェ アブ レー ク
ポ イ ン ト 、 シ ス テ ム メ モ リ への完全な ア ク セ ス が含まれます。 詳細については、
『ARMv7-M アーキ テ ク チ ャ リ フ ァ レ ン ス マニ ュ アル』 を参照 し て下 さ い。
デバ ッ グ機能には、 オプシ ョ ン と し て次の も のを含め る こ と がで き ます。
•
2 つの リ テ ラ ル コ ンパレー タ と 6 つの命令 コ ンパレー タ 、 ま たは 2 つの命令 コ
ンパレー タ のみをサポー ト す る ブ レー ク ポ イ ン ト ユニ ッ ト
•
1 つま たは 4 つの ウ ォ ッ チポ イ ン ト をサポー ト す る ウ ォ ッ チポ イ ン ト ユニ ッ ト
デバ ッ グが実装 さ れてい る プ ロ セ ッ サの場合、 デバ ッ ガでは CoreSight デバ ッ グ イ ン
フ ラ ス ト ラ ク チ ャ を使用 し てデバ ッ グ コ ン ポーネ ン ト を識別 し 、 接続す る こ と をお
勧め し ます。
デバ ッ ガは、 図 8-1 の推奨フ ロ ーに従っ て CoreSight デバ ッ グ イ ン フ ラ ス ト ラ ク チ ャ
内の コ ン ポーネ ン ト を検出で き ます。 こ の例では、 デバ ッ ガは CoreSight シ ス テ ムに
含ま れてい る 各 CoreSight コ ンポーネ ン ト のペ リ フ ェ ラ ルお よ び コ ン ポーネ ン ト ID
レ ジ ス タ を読み出 し ます。
䣅䣱䣴䣧䣕䣫䣩䣪䣶儫儴儧儔允兠儬
䣅䣱䣴䣧䣕䣫䣩䣪䣶儆儓償儝允兠儬
儽兠儝允儈兗儣
‡䢢儛儝優兄䣔䣑䣏優兠儺兏傲
䢢ᐇ⿦傻僲僌傪僱ሙྜ傎優兠儺兏傱僯僔兎儤儈児儓儛克兗
䣅䣱䣴䣶䣧䣺䢯䣏䢶䢢䣔䣑䣏優兠儺兏
䣅䣱䣴䣧䣕䣫䣩䣪䣶䢢䣋䣆
允儈兗儣
儛儝優兄ไᚚ✵㛫
‡䢢儫兠儣儊儍儧儥允儈兗儬䢢兊儯儧儬
‡䢢儺児兠儓允儈兗儬䢢兊儯儧儬
䣅䣱䣴䣧䣕䣫䣩䣪䣶䢢䣋䣆
䣅䣱䣴䣧䣕䣫䣩䣪䣶䢢䣋䣆
䣅䣱䣴䣧䣕䣫䣩䣪䣶䢢䣋䣆
䣅䣱䣴䣶䣧䣺䢯䣏䢶䢢䣅䣒䣗䣋䣆
儊儍儧儥允儈兗儬ไᚚ
儺児兠儓允儈兗儬䢢ไᚚ
儫儴儧儔ไᚚ
‡䢢儎儻儛克兗儗兗允兠儱兗儬
図 8-1 CoreSight の検出
CoreSight シ ス テ ム内の Cortex-M4 プ ロ セ ッ サを識別す る には、 デバ ッ ガで次の動作
を実行す る こ と をお勧め し ます。
1.
ARM DDI 0439CJ
ID050813
CoreSight 識別を使用 し て、 Cortex-M4 ROM テーブルの位置を見つけ、 識別 し
ます。 詳細については、 表 8-1 (ページ 8-3) を参照 し て下 さ い。
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
8-2
デバ ッ グ
2.
その Cortex-M4 ROM テーブル内で、 次のポ イ ン タ を追跡 し ます。
シ ス テ ム制御空間 (SCS)
a.
ブ レー ク ポ イ ン ト ユニ ッ ト (BPU)
b.
データ ウ ォ ッ チポ イ ン ト ユニ ッ ト (DWT)
c.
詳細については、 表 8-2 (ページ 8-4) を参照 し て下 さ い。
デバ ッ ガが CoreSight 識別か ら SCS を識別す る と き、 SCS のア ド レ ス 0xE000ED00 にあ
る CPUID レ ジ ス タ か ら 、 プ ロ セ ッ サ と その リ ビ ジ ョ ン番号を識別で き ます。
デバ ッ ガでは、 最初に検出 し た ROM テーブルが Cortex-M4 ROM テーブルであ る と
想定す る こ と はで き ません。 他の CoreSight コ ン ポーネ ン ト がシ ス テ ムに存在す る 場
合、 ア ク セ ス ポー ト と Cortex-M4 ROM テーブル と の間にシ ス テ ム ROM テーブルが
必要にな る こ と があ り ます。 シ ス テ ム ROM テーブルが存在す る 場合、 実装固有の識
別子がそのテーブルに含まれてい る こ と があ り ます。
8.1.1
Cortex-M4 ROM テーブルの識別 と エ ン ト リ
デバ ッ ガ検出用の ROM テーブル識別レ ジ ス タ と その値を、 表 8-1 に示 し ます。 こ れ
ら の レ ジ ス タ に よ り 、 デバ ッ ガはプ ロ セ ッ サ と 、 そのデバ ッ グ機能を識別で き ます。
表 8-1 Cortex-M4 ROM テーブルの識別値
ア ド レス
レ ジス タ
値
説明
0xE00FFFD0
ペ リ フ ェ ラ ル ID4
0x00000004
0xE00FFFD4
ペ リ フ ェ ラ ル ID5
0x00000000
『ARMv7-M アーキ テ ク チ ャ リ フ ァ レ ン ス マ
ニ ュ アル』 の 「 コ ン ポーネン ト およびペ リ
フ ェ ラ ル ID レ ジ ス タ のフ ォーマ ッ ト 」
0xE00FFFD8
ペ リ フ ェ ラ ル ID6
0x00000000
0xE00FFFDC
ペ リ フ ェ ラ ル ID7
0x00000000
0xE00FFFE0
ペ リ フ ェ ラ ル ID0
0x000000C4
0xE00FFFE4
ペ リ フ ェ ラ ル ID1
0x000000B4
0xE00FFFE8
ペ リ フ ェ ラ ル ID2
0x0000000B
0xE00FFFEC
ペ リ フ ェ ラ ル ID3
0x00000000
0xE00FFFF0
コ ン ポーネ ン ト ID0
0x0000000D
0xE00FFFF4
コ ン ポーネ ン ト ID1
0x00000010
0xE00FFFF8
コ ン ポーネ ン ト ID2
0x00000005
0xE00FFFFC
コ ン ポーネ ン ト ID3
0x000000B1
ペ リ フ ェ ラ ル ID レ ジ ス タ では、 こ れ ら の値に よ り 、 Cortex-M4 プ ロ セ ッ サ用の汎用
の ROM テーブル と し て識別 さ れます。 実装では こ れ ら の レ ジ ス タ を使用 し て、 デバ
イ ス の製造業者 と 部品番号を識別で き ます。
こ れは、 コ ンポーネン ト ID レ ジ ス タ で CoreSight ROM テーブル と し て識別 さ れます。
注
Cortex-M4 ROM テーブルは、 ワー ド サ イ ズの ト ラ ンザ ク シ ョ ンのみをサポー ト し ます。
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
8-3
デバ ッ グ
Cortex-M4 ROM テーブルが指 し 示す CoreSight コ ン ポーネ ン ト を、 表 8-2 に示 し ま
す。 値は、 実装 さ れてい る デバ ッ グ構成に よ っ て異な り ます。
表 8-2 Cortex-M4 ROM テーブルの コ ンポーネン ト
ア ド レス
コ ンポーネン ト
値
説明
0xE00FF000
SCS
0xFFF0F003
「シ ス テ ム制御空間」 を参照
0xE00FF004
DWT
0xFFF02003a
表 9-1 (ページ 9-4) を参照
0xE00FF008
FPB
0xFFF03003b
表 8-7 (ページ 8-10) を参照
0xE00FF00C
ITM
0xFFF01003c
表 10-1 (ページ 10-4) を参照
0xE00FF010
TPIU
0xFFF41003d
表 11-1 (ページ 11-5) を参照
0xE00FF014
ETM
0xFFF42003e
『ETM-M4 テ ク ニカル リ フ ァ レ ン ス マニ ュ
アル』 を参照
0xE00FF018
終了マーカ
0x00000000
0xE00FFFCC
システムア ク セス
0x00000001
『ARMv7-M アーキ テ ク チ ャ リ フ ァ レ ン ス マ
ニ ュ アル』 の 「DAP ア ク セ ス可能な ROM
テーブル」 を参照
a.
b.
c.
d.
e.
ウ ォ ッ チポ イ ン ト が実装 さ れていない場合、 読み出 し 値は 0xFFF02002 です。
ブ レー ク ポ イ ン ト が実装 さ れていない場合、 読み出 し 値は 0xFFF03002 です。
ITM が実装 さ れていない場合、 読み出 し 値は 0xFFF01002 です。
TPIU が実装 さ れていない場合、 読み出 し 値は 0xFFF41002 です。
ETM が実装 さ れていない場合、 読み出 し 値は 0xFFF42002 です。
ROM テーブルエ ン ト リ は、 プ ロ セ ッ サのデバ ッ グ コ ン ポーネン ト を指 し てい ます。
各エ ン ト リ の値は、 ROM テーブルのベース ア ド レ ス 0xE00FF000 か ら その コ ン ポーネ
ン ト へのオ フ セ ッ ト です。
ROM テーブルの ID と コ ン ポーネ ン ト レ ジ ス タ 、 お よ びそれ ら のア ド レ ス と ア ク セ
ス タ イ プの詳細については、 『ARMv7-M アーキ テ ク チ ャ リ フ ァ レ ン ス マニ ュ アル』
お よ び 『ARM CoreSight コ ン ポーネ ン ト テ ク ニ カル リ フ ァ レ ン ス マニ ュ アル』 を参
照 し て下 さ い。
8.1.2
シス テム制御空間
デバ ッ グが実装 さ れてい る 場合、 プ ロ セ ッ サは SCS の レ ジ ス タ を経由 し てデバ ッ グ
を提供 し ます。 次のセ ク シ ョ ン を参照 し て下 さ い。
•
「デバ ッ グ レ ジ ス タ の概要」 (ページ 8-5)
「シ ス テ ム ア ド レ ス マ ッ プ」 (ページ 3-15)
•
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
8-4
デバ ッ グ
SCS CoreSight 識別
デバ ッ ガ検出用の SCS CoreSight 識別レ ジ ス タ と その値を、 表 8-3 に示 し ます。
Cortex-M4 プ ロ セ ッ サのデバ ッ ガの最終的な識別は、 SCS の CPUID レ ジ ス タ に よ っ
て行われます。 「CPUID ベース レ ジ ス タ、 CPUID」 (ページ 4-5) を参照 し て下 さ い。
表 8-3 SCS 識別値
ア ド レス
レ ジス タ
値
説明
0xE000EFD0
ペ リ フ ェ ラ ル ID4
0x00000004
0xE000EFE0
ペ リ フ ェ ラ ル ID0
0x0000000C
『ARMv7-M アーキテ ク チ ャ リ フ ァ レ ン ス
マニ ュ アル』 の 「コ ン ポーネン ト およ び
ペ リ フ ェ ラ ル ID レ ジ ス タ のフ ォーマ ッ
ト 」」
0xE000EFE4
ペ リ フ ェ ラ ル ID1
0x000000B0
0xE000EFE8
ペ リ フ ェ ラ ル ID2
0x0000000B
0xE000EFEC
ペ リ フ ェ ラ ル ID3
0x00000000
0xE000EFF0
コ ン ポーネ ン ト ID0
0x0000000D
0xE000EFF4
コ ン ポーネ ン ト ID1
0x000000E0
0xE000EFF8
コ ン ポーネ ン ト ID2
0x00000005
0xE000EFFC
コ ン ポーネ ン ト ID3
0x000000B1
SCS CoreSight 識別レ ジ ス タ 、 お よ びそれ ら のア ド レ ス と ア ク セ ス タ イ プの詳細につ
いては、 『ARMv7-M アーキテ ク チ ャ リ フ ァ レ ン ス マニ ュ アル』 お よ び 『ARM
CoreSight コ ン ポーネ ン ト テ ク ニ カル リ フ ァ レ ン ス マニ ュ アル』 を参照 し て下 さ い。
8.1.3
デバ ッ グ レ ジ ス タ の概要
デバ ッ グ レ ジ ス タ を、 表 8-4 に示 し ます。 こ れ ら の レ ジ ス タ はすべて 32 ビ ッ ト 幅で
す。 詳細については、 『ARMv7-M アーキ テ ク チ ャ リ フ ァ レ ン ス マニ ュ アル』 を参照
し て下 さ い。
表 8-4 デバ ッ グレ ジス タ
ア ド レス
名前
タ イプ
リセッ ト時
の値
説明
0xE000ED30
DFSR
RW
0x00000000a
デバ ッ グ フ ォール ト ス テー タ ス レ ジ ス タ
0xE000EDF0
DHCSR
RW
0x00000000
デバ ッ グ ホール ト 制御お よ びス テー タ ス
レジス タ
0xE000EDF4
DCRSR
WO
-
デバ ッ グ コ ア レ ジ ス タ セ レ ク タ レ ジ ス タ
0xE000EDF8
DCRDR
RW
-
デバ ッ グ コ ア レ ジ ス タ デー タ レ ジ ス タ
0xE000EDFC
DEMCR
RW
0x00000000
デバ ッ グ例外お よ びモニ タ 制御レ ジ ス タ
a. パ ワ ーオ ン リ セ ッ ト 時のみ
コ アデバ ッ グはオプシ ョ ンの コ ン ポーネン ト です。 コ アデバ ッ グ を取 り 除いた場合、
ホール ト モー ド でのデバ ッ グはサポー ト さ れないため、 ホール ト 、 ス テ ッ プ実行、
レ ジ ス タ 転送の機能は存在 し ません。 こ の場合で も 、 デバ ッ グモニ タ モー ド はサ
ポー ト さ れます。
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
8-5
デバ ッ グ
8.2
AHB-AP について
AHB-AP は、 『ARM デバ ッ グ イ ン タ フ ェース v5、 アーキ テ ク チ ャ 仕様』 で定義 さ れ
てい る メ モ リ ア ク セ ス ポー ト です。 AHB-AP は Cortex-M4 シ ス テ ムへのオプシ ョ ン
のデバ ッ グ ア ク セ ス ポー ト で、 SCS 経由で、 プ ロ セ ッ サ レ ジ ス タ を含むシ ス テ ム内
のすべての メ モ リ お よ びレ ジ ス タ へのア ク セ ス を提供 し ます。 シ ス テ ム ア ク セ ス は、
プ ロ セ ッ サ ス テー タ ス か ら 独立 し てい ます。 AHB-AP へのア ク セ ス には、 SW-DP ま
たは SWJ-DP が使用 さ れます。
AHB-AP はバ ス マ ト リ ッ ク ス のマ ス タ です。 ト ラ ンザ ク シ ョ ンは AHB-AP プ ロ グ ラ
マモデルを使用 し て行われ、 バ ス マ ト リ ッ ク スへの AHB-Lite ト ラ ンザ ク シ ョ ンが生
成 さ れます。
8.2.1
AHB-AP ト ラ ンザ ク シ ョ ン タ イ プ
AHB-AP はバ ス上で連続す る ト ラ ンザ ク シ ョ ン を実行 し ないため、 すべての ト ラ ン
ザ ク シ ョ ンは非シーケ ン シ ャ ルです。 AHB-AP は、 ア ン ア ラ イ ン ド お よ びビ ッ ト バ
ン ド の ト ラ ンザ ク シ ョ ン を実行で き ます。 こ れ ら の ト ラ ンザ ク シ ョ ンは、 バ ス マ ト
リ ッ ク ス に よ り 処理 さ れます。 AHB-AP ト ラ ンザ ク シ ョ ンは MPU ル ッ ク ア ッ プの対
象ではあ り ません。 AHB-AP ト ラ ンザ ク シ ョ ンは FPB をバ イ パ スす る ため、 FPB は
AHB-AP ト ラ ンザ ク シ ョ ン を リ マ ッ プで き ません。
AHB-AP ト ラ ンザ ク シ ョ ンは リ ト ルエ ンデ ィ ア ンです。
8.2.2
AHB-AP のプ ロ グ ラ マモデル
AHB-AP の レ ジ ス タ を、 表 8-5 に示 し ます。 AHB-AP が存在 し ない場合、 こ れ ら の レ
ジ ス タ の読み出 し 値は 0 です。 こ の表に示 さ れていない レ ジ ス タ の読み出 し 値はす
べて 0 です。
表 8-5 AHB-AP レ ジス タ の概要
リセッ ト時
の値
説明
RW
レジス タ参
照
「AHB-AP 制御お よびス テー タ ス ワー
ド レ ジ ス タ、 CSW」 (ページ 8-7)
TAR
RW
-
AHB-AP 転送ア ド レ ス レ ジ ス タ
0x0C
DRW
RW
-
AHB-AP デー タ 読み出 し / 書 き込み
レジス タ
0x10
BD0
RW
-
AHB-AP バン ク デー タ レ ジ ス タ 0
0x14
BD1
RW
-
AHB-AP バン ク デー タ レ ジ ス タ 1
0x18
BD2
RW
-
AHB-AP バン ク デー タ レ ジ ス タ 2
0x1C
BD3
RW
-
AHB-AP バン ク デー タ レ ジ ス タ 3
0xF8
DBGDRAR
RO
0xE00FF003
AHB-AP ROM ア ド レ ス レ ジ ス タ
0xFC
IDR
RO
0x24770011
AHB-AP 識別レ ジ ス タ
オフセ ッ ト a
名前
タ イプ
0x00
CSW
0x04
a. こ の表に示 さ れてい る オ フ セ ッ ト は、 DAP メ モ リ 空間の AHB-AP の位置に対す る相対値で
す。 こ の空間は、 ア ク セ ス ポー ト か ら のみ参照で き ます。 プ ロ セ ッ サの メ モ リ マ ッ プの一
部ではあ り ません。
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
8-6
デバ ッ グ
以下のセ ク シ ョ ンでは、 実装が こ のプ ロ セ ッ サに固有であ る AHB-AP レ ジ ス タ につ
いて説明 し ます。 他の レ ジ ス タ については、 『CoreSight コ ン ポーネ ン ト テ ク ニ カル
リ フ ァ レ ン ス マニ ュ アル』 で解説 さ れてい ます。
AHB-AP 制御およびス テー タ スワー ド レ ジ ス タ 、 CSW
CSW には次の特徴があ り ます。
目的
AHB イ ン タ フ ェース に よ る転送の構成 と 制御を行い ます。
使用制限
使用制限はあ り ません。
構成
こ の レ ジ ス タ は、 すべてのプ ロ セ ッ サ構成で利用可能です。
属性
レ ジ ス タ の概要については、 表 8-5 (ページ 8-6) を参照 し て下 さ
い。
CSW のビ ッ ト 割 り 当て を、 図 8-2 に示 し ます。
䢵䢳 䢵䢲 䢴䢻 䢴䢺
䢴䢸 䢴䢷 䢴䢶
䢳䢴 䢳䢳
兆兠儭
ண⣙
䣊䣲䣴䣱䣶䢳
ண⣙
䣏䣣䣵䣶䣧䣴䣖䣻䣲䣧
ண⣙
䢺 䢹 䢸 䢷 䢶 䢵 䢴
䢲
儙儈儞
䣖䣴䣣䣰䣵䣋䣰䣒䣴䣱䣩
䣆䣤䣩䣕䣶䣣䣶䣷䣵
䣃䣦䣦䣴䣋䣰䣥
ண⣙
図 8-2 CSW のビ ッ ト 割 り 当て
CSW のビ ッ ト 割 り 当て を、 表 8-6 に示 し ます。
表 8-6 CSW のビ ッ ト 割 り 当て
ビッ ト
名前
機能
[31:30]
-
予約。 b00 と し て読み出 さ れます。
[29]
MasterTypea
0 = コア
1 = デバ ッ グ
ト ラ ンザ ク シ ョ ンが未解決の場合、 こ のビ ッ ト を変更す る こ と はで き ません。 デ
バ ッ ガは最初にビ ッ ト [7]、 TransInProg をチ ェ ッ ク す る必要があ り ます。
リ セ ッ ト 時の値 = b1
実装で、 こ のビ ッ ト の読み出 し 値が常に 1 と な る よ う に構成可能です。 こ の場合、
ト ラ ンザ ク シ ョ ンは常にデバ ッ グ と し て示 さ れます。
[28:26]
-
予約、 b000
[25]
Hprot1
ユーザお よ び特権制御 - HPROT[1]
リ セ ッ ト 時の値 = b1
[24]
-
予約、 b1
[23:12]
-
予約、 0x000
[11:8]
モー ド
動作モー ド 。 ビ ッ ト は以下のいずれかです。
b0000 = 標準ダ ウ ン ロ ー ド お よ びア ッ プ ロ ー ド モー ド
b0001 ~ b1111 は予約 さ れてい ます。
リ セ ッ ト 時の値 = b0000
[7]
TransInProg
転送が進行中です。 こ の フ ィ ール ド は、 APB マ ス タ ポー ト 上で転送が進行中であ
る か ど う かを示 し ます。
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
8-7
デバ ッ グ
表 8-6 CSW のビ ッ ト 割 り 当て ( 続き )
ビッ ト
名前
機能
[6]
DbgStatus
DAPEN ポー ト の ス テー タ ス を示 し ます。
1 = AHB 転送が許可 さ れています。
0 = AHB 転送が許可 さ れていません。
[5:4]
AddrInc
読み出 し ま たは書 き込みデー タ ア ク セ ス時の自動ア ド レ ス イ ン ク リ メ ン ト お よ び
パ ッ ク モー ド 。 現在の ト ラ ンザ ク シ ョ ンがエ ラ ーな し で完了 し た場合にのみ イ ン ク
リ メ ン ト さ れます。
自動ア ド レ ス イ ン ク リ メ ン ト お よ びパ ッ ク 転送は、 バン ク デー タ レ ジ ス タ 0x10 ~
0x1C へのア ク セ ス の際は実行 さ れません。 こ の場合、 こ れ ら の ビ ッ ト の状態は無視
さ れます。
4KB ア ド レ ス境界内で イ ン ク リ メ ン ト と ラ ッ プア ラ ウ ン ド が行われます。 例えば、
ワー ド が 0x1000 ~ 0x1FFC に イ ン ク リ メ ン ト さ れます。 開始ア ド レ ス が 0x14A0 であれ
ば、 カ ウ ン タ は 0x1FFC ま で イ ン ク リ メ ン ト さ れ、 0x1000 に ラ ッ プア ラ ウ ン ド し てか
ら 、 0x149C ま で イ ン ク リ メ ン ト さ れます。
b00 = 自動 イ ン ク リ メ ン ト オ フ
b01 = 単一 イ ン ク リ メ ン ト 。 対応する バ イ ト レーンか ら の単一の転送。
b10 = パ ッ ク イ ン ク リ メ ン ト b
b11 = 予約。 転送な し 。
ア ド レ ス イ ン ク リ メ ン ト のサ イ ズは、 サ イ ズ フ ィ ール ド [2:0] に よ っ て定義 さ れま
す。
リ セ ッ ト 時の値 : b00
[3]
-
予約
[2:0]
サイ ズ
ア ク セ ス フ ィ ール ド のサ イ ズ。
b000 = 8 ビ ッ ト
b001 = 16 ビ ッ ト
b010 = 32 ビ ッ ト
b011 ~ 111 は予約 さ れてい ます。
リ セ ッ ト 時の値 : b000
a. こ の ビ ッ ト が ク リ ア さ れてい る 場合、 デバ ッ ガはデバ ッ グ ホール ト 制御お よ び ス テー タ ス レ ジ ス タ の
C_DEBUGEN ビ ッ ト を セ ッ ト す る こ と を禁止 さ れ る ため、 プ ロ セ ッ サ を ホール ト す る こ と がで き ません。
b. 『ARM デバ ッ グ イ ン タ フ ェース v5、 アーキ テ ク チ ャ仕様』 のパ ッ ク 転送の定義を参照 し て下 さ い。
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
8-8
デバ ッ グ
8.3
フ ラ ッ シ ュパ ッ チおよびブ レー ク ポ イ ン ト ユニ ッ ト (FPB) について
FPB には次の機能があ り ます。
•
ハー ド ウ ェ アブ レー ク ポ イ ン ト を実装す る 。
•
コ ー ド 空間か ら シ ス テ ム空間へ、 コ ー ド お よ びデー タ にパ ッ チを適用す る 。
完全な FPB ユニ ッ ト には、 次の コ ンポーネ ン ト が含ま れます。
•
コ ー ド 空間か ら の リ テ ラ ル ロ ー ド と の一致を検出 し 、 シ ス テ ム空間の対応す る
領域に リ マ ッ プす る ための 2 つの リ テ ラ ル コ ンパレー タ
•
コ ー ド 空間か ら の命令フ ェ ッ チ と の一致を検出 し 、 シ ス テ ム空間の対応す る 領
域に リ マ ッ プす る ための 6 つの命令 コ ンパレー タ 。 ま たは、 各 コ ンパレー タ を
個別に構成 し 、 一致時にプ ロ セ ッ サ コ アへ ブ レー ク ポ イ ン ト 命令 (BKPT) を返す
よ う に し て、 ハー ド ウ ェ アブ レー ク ポ イ ン ト 機能を提供す る こ と も で き ます。
縮小版 FPB ユニ ッ ト には、 次の コ ンポーネ ン ト が含ま れます。
•
8.3.1
2 つの命令 コ ンパレー タ 。 各 コ ンパレー タ を個別に構成 し 、 一致時にプ ロ セ ッ
サへブ レー ク ポ イ ン ト 命令を返す よ う にす る こ と で、 ハー ド ウ ェ アブ レー ク ポ
イ ン ト 機能を提供で き ます。
FPB の機能の説明
FPB はグ ロ ーバルに可能にす る こ と も 、 8 つの コ ンパレー タ に対 し て個別に可能にす
る こ と も で き ます。 エ ン ト リ の比較が一致 し た場合、 ア ド レ ス に対 し て次のいずれ
かの操作が行われます。
•
リ マ ッ プ レ ジ ス タ 内のア ド レ ス セ ッ ト に、 一致 し た コ ンパレー タ に対応す る オ
フ セ ッ ト を加えて リ マ ッ プ さ れます。
•
機能が可能にな っ ていれば、 BKPT 命令に リ マ ッ プ さ れます。
比較は動的に行われますが、 比較の結果の発生が遅すぎ る ため、 コ ー ド 空間で発生
す る元の命令フ ェ ッ チお よ び リ テ ラ ル ロ ー ド は中止で き ません。 ただ し 、 プ ロ セ ッ
サは こ の ト ラ ンザ ク シ ョ ン を無視 し 、 リ マ ッ プ さ れた ト ラ ンザ ク シ ョ ンのみが使用
さ れます。
MPU が存在す る 場合は、 リ マ ッ プ さ れた ア ド レ ス ではな く 元のア ド レ ス に対 し て
MPU ル ッ ク ア ッ プが実行 さ れます。
デバ ッ グ機能が必要ない場合、 ま たはサポー ト す る ブ レー ク ポ イ ン ト の数を 2 ま で
減 ら し て も 問題ない場合は、 FPB を取 り 除 く こ と がで き ます。 FPB が 2 つのブ レー
ク ポ イ ン ト し かサポー ト し ない場合、 コ ンパレー タ 0 お よ び 1 のみが使用 さ れ、 フ
ラ ッ シ ュ パ ッ チはサポー ト さ れません。
注
ARM DDI 0439CJ
ID050813
•
ア ン ア ラ イ ン ド な リ テ ラ ルア ク セ ス は リ マ ッ プ さ れません。 こ の場合、 DCode
バス に対す る 元のア ク セ ス が実行 さ れます。
•
排他 ロ ー ド ア ク セ ス は リ マ ッ プ可能です。 ただ し 、 こ れ ら のア ク セ ス が排他ア
ク セ ス と し て実行 さ れ る かど う かは予測不能です。
•
フ ラ ッ シ ュ パ ッ チの リ マ ッ プ位置を ビ ッ ト バン ド エ イ リ ア ス に設定す る こ と は
サポー ト さ れてお ら ず、 その結果行われ る 動作は予測不能です。
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
8-9
デバ ッ グ
8.3.2
FPB のプ ログ ラ マモデル
FPB の レ ジ ス タ を、 表 8-7 に示 し ます。 プ ロ セ ッ サの実装に よ っ ては、 こ れ ら の レ
ジ ス タ の一部は存在 し ない こ と があ り ます。 存在 し ない も の と し て構成 さ れてい る
すべての レ ジ ス タ は、 0 と し て読み出 さ れます。
表 8-7 FPB レ ジス タ の概要
ア ド レス
名前
タ イプ
リセッ ト時
の値
説明
0xE0002000
FP_CTRL
RW
0x260
フ ラ ッ シ ュ パ ッ チ制御レ ジ ス
タ
0xE0002004
FP_REMAP
RW
-
フ ラ ッ シ ュパ ッ チ リ マ ッ プレ
ジス タ
0xE0002008
FP_COMP0
RW
b0a
フ ラ ッ シ ュ パ ッ チ コ ンパレー
タ レジス タ 0
0xE000200C
FP_COMP1
RW
b0
フ ラ ッ シ ュ パ ッ チ コ ンパレー
タ レジス タ 1
0xE0002010
FP_COMP2
RW
b0
フ ラ ッ シ ュ パ ッ チ コ ンパレー
タ レジス タ 2
0xE0002014
FP_COMP3
RW
b0
フ ラ ッ シ ュ パ ッ チ コ ンパレー
タ レジス タ 3
0xE0002018
FP_COMP4
RW
b0
フ ラ ッ シ ュ パ ッ チ コ ンパレー
タ レジス タ 4
0xE000201C
FP_COMP5
RW
b0
フ ラ ッ シ ュ パ ッ チ コ ンパレー
タ レジス タ 5
0xE0002020
FP_COMP6
RW
b0
フ ラ ッ シ ュ パ ッ チ コ ンパレー
タ レジス タ 6
0xE0002024
FP_COMP7
RW
b0
フ ラ ッ シ ュ パ ッ チ コ ンパレー
タ レジス タ 7
0xE0002FD0
PID4
RO
0x04
ペ リ フ ェ ラ ル識別レ ジ ス タ
0xE0002FD4
PID5
RO
0x00
0xE0002FD8
PID6
RO
0x00
0xE0002FDC
PID7
RO
0x00
0xE0002FE0
PID0
RO
0x03
0xE0002FE4
PID1
RO
0xB0
0xE0002FE8
PID2
RO
0x2B
0xE0002FEC
PID3
RO
0x00
0xE0002FF0
CID0
RO
0x0D
0xE0002FF4
CID1
RO
0xE0
0xE0002FF8
CID2
RO
0x05
0xE0002FFC
CID3
RO
0xB1
コ ンポーネ ン ト 識別レ ジ ス タ
a. FP_COMP0 ~ FP_COMP7 では、 ビ ッ ト 0 の リ セ ッ ト 時の値は 0 です。 こ れ ら の
レ ジ ス タ の他の ビ ッ ト は リ セ ッ ト さ れ ません。
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
8-10
デバ ッ グ
すべての FPB レ ジ ス タ は、 『ARMv7-M アーキテ ク チ ャ リ フ ァ レ ン ス マニ ュ アル』 に
解説 さ れてい ます。
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
8-11
第9章
デー タ ウ ォ ッ チポ イ ン ト および ト レースユニ ッ ト
本章では、 デー タ ウ ォ ッ チポ イ ン ト および ト レース (DWT) ユニ ッ ト について説明 し ま
す。 本章は次のセ ク シ ョ ンで構成 さ れてい ます。
•
「DWT について」 (ページ 9-2)
「DWT の機能の説明」 (ページ 9-3)
•
「DWT のプ ロ グ ラ マモデル」 (ページ 9-4)
•
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
9-1
デー タ ウ ォ ッ チポ イ ン ト および ト レースユニ ッ ト
9.1
DWT について
DWT はオプシ ョ ンのデバ ッ グユニ ッ ト で、 ウ ォ ッ チポ イ ン ト 、 デー タ ト レース、 シ
ス テ ムプ ロ フ ァ イ リ ン グ を プ ロ セ ッ サに提供 し ます。
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
9-2
デー タ ウ ォ ッ チポ イ ン ト および ト レースユニ ッ ト
9.2
DWT の機能の説明
完全な DWT には 4 つの コ ンパ レー タ が含まれ、 次の よ う に構成可能です。
•
ハー ド ウ ェ ア ウ ォ ッ チポ イ ン ト
•
ETM ト リ ガ
•
PC サンプ ラ イ ベン ト ト リ ガ
•
デー タ ア ド レ ス サンプ ラ イ ベン ト ト リ ガ
最初の コ ンパ レー タ DWT_COMP0 は、 ク ロ ッ ク サ イ ク ル カ ウ ン タ CYCCNT に対 し
て比較す る こ と も で き ます。 ま た、 2 番目の コ ンパ レー タ DWT_COMP1 をデー タ コ
ンパレー タ と し て使用す る こ と も で き ます。
縮小版 DWT には 1 つの コ ンパ レー タ が含まれ、 ウ ォ ッ チポ イ ン ト ま たは ト リ ガ と し
て使用で き ます。 こ の DWT では、 デー タ 一致はサポー ト さ れません。
DWT が存在す る 場合、 次のカ ウ ン タ が組み込まれてい ます。
•
ク ロ ッ ク サ イ ク ル (CYCCNT)
•
フ ォール ド さ れた命令
ロー ド ス ト ア ユニ ッ ト (LSU) 操作
•
•
ス リ ープサ イ ク ル
•
CPI (最初のサ イ ク ルを除 く すべての命令サ イ ク ル)
•
割 り 込みオーバヘ ッ ド
注
カ ウ ン タ がオーバフ ロ ーす る たびに イ ベン ト が生成 さ れます。
DWT は、 定義 さ れた間隔で PC サンプルを生成す る 、 お よ び割 り 込み イ ベン ト 情報
を生成す る よ う に構成で き ます。
実装に Cortex-M4 TPIU が含まれ る 場合、 DWT は、 ITM お よ び TPIU に対す る 定期的
なプ ロ ト コ ル同期要求を提供 し ます。
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
9-3
デー タ ウ ォ ッ チポ イ ン ト および ト レースユニ ッ ト
9.3
DWT のプ ログ ラ マモデル
DWT の レ ジ ス タ を、 表 9-1 に示 し ます。 プ ロ セ ッ サの実装に よ っ ては、 こ れ ら の レ
ジ ス タ の一部は存在 し ない こ と があ り ます。 存在 し ない も の と し て構成 さ れてい る
すべての レ ジ ス タ は、 0 と し て読み出 さ れます。
表 9-1 DWT レ ジス タ の概要
ARM DDI 0439CJ
ID050813
ア ド レス
名前
タ イプ
リセッ ト時
の値
0xE0001000
DWT_CTRL
RW
a
0xE0001004
DWT_CYCCNT
RW
0x00000000
サ イ ク ルカ ウ ン ト レ ジ ス タ
0xE0001008
DWT_CPICNT
RW
-
CPI カ ウ ン ト レ ジ ス タ
0xE000100C
DWT_EXCCNT
RW
-
例外オーバヘ ッ ド カ ウ ン ト レ
ジス タ
0xE0001010
DWT_SLEEPCNT
RW
-
ス リ ープカ ウ ン ト レ ジ ス タ
0xE0001014
DWT_LSUCNT
RW
-
LSU カ ウ ン ト レ ジ ス タ
0xE0001018
DWT_FOLDCNT
RW
-
フ ォール ド さ れた命令のカ ウ
ン ト レジス タ
0xE000101C
DWT_PCSR
RO
-
プ ロ グ ラ ム カ ウ ン タ サンプル
レジス タ
0xE0001020
DWT_COMP0
RW
-
コ ンパレー タ レ ジ ス タ 0
0xE0001024
DWT_MASK0
RW
-
マス ク レジス タ 0
0xE0001028
DWT_FUNCTION0
RW
0x00000000
機能レ ジ ス タ 0
0xE0001030
DWT_COMP1
RW
-
コ ンパレー タ レ ジ ス タ 1
0xE0001034
DWT_MASK1
RW
-
マス ク レジス タ 1
0xE0001038
DWT_FUNCTION1
RW
0x00000000
機能レ ジ ス タ 1
0xE0001040
DWT_COMP2
RW
-
コ ンパレー タ レ ジ ス タ 2
0xE0001044
DWT_MASK2
RW
-
マス ク レジス タ 2
0xE0001048
DWT_FUNCTION2
RW
0x00000000
機能レ ジ ス タ 2
0xE0001050
DWT_COMP3
RW
-
コ ンパレー タ レ ジ ス タ 3
0xE0001054
DWT_MASK3
RW
-
マス ク レジス タ 3
0xE0001058
DWT_FUNCTION3
RW
0x00000000
機能レ ジ ス タ 3
を参照
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
説明
制御レ ジ ス タ
9-4
デー タ ウ ォ ッ チポ イ ン ト および ト レースユニ ッ ト
表 9-1 DWT レ ジス タ の概要 ( 続き )
ア ド レス
名前
タ イプ
リセッ ト時
の値
説明
0xE0001FD0
PID4
RO
0x04
ペ リ フ ェ ラ ル識別レ ジ ス タ
0xE0001FD4
PID5
RO
0x00
0xE0001FD8
PID6
RO
0x00
0xE0001FDC
PID7
RO
0x00
0xE0001FE0
PID0
RO
0x02
0xE0001FE4
PID1
RO
0xB0
0xE0001FE8
PID2
RO
0x3B
0xE0001FEC
PID3
RO
0x00
0xE0001FF0
CID0
RO
0x0D
0xE0001FF4
CID1
RO
0xE0
0xE0001FF8
CID2
RO
0x05
0xE0001FFC
CID3
RO
0xB1
コ ン ポーネ ン ト 識別レ ジ ス タ
a. リ セ ッ ト 時の可能な値は次の と お り です。
ウ ォ ッ チポ イ ン ト お よ び ト リ ガ用の 4 つの コ ンパ レー タ が存在す る 場合、 0x40000000
ウ ォ ッ チポ イ ン ト 専用の 4 つの コ ンパレ ー タ が存在す る 場合、 0x4F000000
コ ンパレー タ が 1 つだけ存在す る 場合、 0x10000000
ウ ォ ッ チポ イ ン ト 用で、 ト リ ガ用ではない コ ンパ レー タ が 1 つだけ存在す る場合、 0x1F000000
DWT が存在 し ない場合、 0x00000000
DWT レ ジ ス タ については、 『ARMv7-M アーキ テ ク チ ャ リ フ ァ レ ン ス マニ ュ アル』 で
解説 さ れてい ます。 ペ リ フ ェ ラ ル識別レ ジ ス タ お よ び コ ン ポーネ ン ト 識別レ ジ ス タ
については、 『ARM CoreSight コ ン ポーネン ト テ ク ニカル リ フ ァ レ ン ス マニ ュ アル』
で解説 さ れてい ます。
注
ARM DDI 0439CJ
ID050813
•
サ イ ク ル一致機能は、 コ ンパレー タ 0 でのみ利用可能です。
•
デー タ 一致機能は、 コ ンパ レー タ 1 でのみ利用可能です。
•
デー タ 値は、 MPU ま たはバ ス フ ォール ト が発生 し ないア ク セ ス についてのみサ
ンプ リ ン グ さ れます。 PC は、 フ ォール ト が発生す る か ど う かにかかわ ら ずサ
ンプ リ ン グ さ れます。 PC は、 バース ト の最初のア ド レ ス についてのみサンプ
リ ン グ さ れます。
•
DWT_FUNCTION1 レ ジ ス タ の FUNCTION フ ィ ール ド は、 DWT_FUNCTION1
の DATAVMATCH も セ ッ ト さ れてい る 場合、 DATAVADDR0 お よ び
DATAVADDR1 に よ っ て指定 さ れた コ ンパ レー タ について上書き さ れます。 こ
の場合、 DATAVADDR0 お よ び DATAVADDR1 に よ っ て指定 さ れた コ ンパレー
タ は、 コ ンパ レー タ 1 のデー タ 一致に対 し てのみア ド レ ス コ ンパレー タ 一致を
実行で き ます。
•
実装時にデー タ 一致機能が組み込ま れていない場合、 DWT_FUNCTION1 の
DATAVADDR0、 DATAVADDR1、 DATAVMATCH を セ ッ ト する こ と はで き ま
せん。 こ れは、 その実装ではデー タ 一致機能が使用で き ない こ と を意味 し ま
す。 デー タ 一致が使用で き る か ど う かを テ ス ト す る には、 DWT_FUNCTION1
の DATAVMATCH ビ ッ ト を書 き 込んでか ら 読み出 し ます。 こ のビ ッ ト を セ ッ
ト で き ない場合、 デー タ 一致は使用で き ません。
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
9-5
デー タ ウ ォ ッ チポ イ ン ト および ト レースユニ ッ ト
•
ARM DDI 0439CJ
ID050813
ウ ォ ッ チポ イ ン ト は命令の後で停止す る ため、 ウ ォ ッ チポ イ ン ト での PC 一致
は推奨 さ れません。 こ れは、 主に ETM を ガー ド し て ト リ ガ し ます。
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
9-6
第 10 章
計装 ト レース マ ク ロ セル ユニ ッ ト
本章では、 計装 ト レース マ ク ロ セル (ITM) ユニ ッ ト について説明 し ます。 本章は次のセ
ク シ ョ ンで構成 さ れてい ます。
•
「ITM について」 (ページ 10-2)
「ITM の機能の説明」 (ページ 10-3)
•
「ITM のプ ロ グ ラ マモデル」 (ページ 10-4)
•
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
10-1
計装 ト レース マ ク ロ セル ユニ ッ ト
10.1
ITM について
ITM は、 printf 形式のデバ ッ グ をサポー ト す る 、 オプシ ョ ンのアプ リ ケーシ ョ ン駆動
型 ト レース ソ ース で、 オペレーテ ィ ン グ シ ス テ ムお よ びアプ リ ケーシ ョ ンの イ ベン
ト を ト レース し 、 シ ス テ ム診断情報を生成 し ます。
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
10-2
計装 ト レース マ ク ロ セル ユニ ッ ト
10.2
ITM の機能の説明
ITM は ト レース情報をパケ ッ ト と し て生成 し ます。 パケ ッ ト を生成可能な ソ ース は 4
つあ り ます。 複数の ソ ース が同時にパケ ッ ト を生成 し た場合は、 ITM に よ っ てパ
ケ ッ ト の出力順序が調整 さ れます。 ソ ース は、 優先度の高い も のか ら 順に、 次の 4
つです。
ARM DDI 0439CJ
ID050813
•
ソ フ ト ウ ェ ア ト レース。 ソ フ ト ウ ェ アは ITM ス テ ィ ム ラ ス レ ジ ス タ に直接書 き
込みを行い、 パケ ッ ト を生成で き ます。
•
ハー ド ウ ェ ア ト レース。 こ れ ら のパケ ッ ト は DWT に よ り 生成 さ れ、 ITM に
よ っ て出力 さ れます。
•
タ イ ム ス タ ンプ。 タ イ ム ス タ ンプはパケ ッ ト に関連 し て生成 さ れます。 ITM に
は、 タ イ ム ス タ ンプを生成す る 21 ビ ッ ト カ ウ ン タ が組み込ま れてい ます。 カ
ウ ン タ は、 Cortex-M4 ク ロ ッ ク 、 ま たは シ リ アル ワ イ ヤ ビ ュ ーア (SWV) 出力の
ビ ッ ト ク ロ ッ ク レー ト に よ り 駆動 さ れます。
•
シ ス テ ムのグ ロ ーバル タ イ ム ス タ ンプ。 オプシ ョ ン と し て、 シ ス テ ム全体で共
通の 48 ビ ッ ト のカ ウ ン ト 値を使用 し て タ イ ム ス タ ンプを生成す る こ と も で き
ます。 ETM ト レース ス ト リ ームに タ イ ム ス タ ンプを挿入す る ために も 同 じ カ ウ
ン ト 値を使用で き、 粒度の粗い相互関連付けに使 う こ と がで き ます。
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
10-3
計装 ト レース マ ク ロ セル ユニ ッ ト
10.3
ITM のプ ログ ラ マ モデル
ITM の レ ジ ス タ を、 表 10-1 に示 し ます。 プ ロ セ ッ サの実装に よ っ ては、 ITM レ ジ ス
タ は存在 し ない こ と があ り ます。 存在 し ない も の と し て構成 さ れてい るすべての レ
ジ ス タ は、 0 と し て読み出 さ れます。
注
•
ITM を プ ロ グ ラ ム ま たは使用す る 前に、 デバ ッ グ例外お よ びモニ タ 制御レ ジ ス
タ の TRCENA を可能にす る必要があ り ます。
•
ITM ス ト リ ームで同期パケ ッ ト が必要な場合、 DWT で同期パケ ッ ト レー ト を
構成す る 必要があ り ます。
表 10-1 ITM レ ジス タ の概要
ア ド レス
名前
タ イプ
リセッ ト時
の値
説明
0xE0000000 ~
ITM_STIM0 ~
ITM_STIM31
RW
-
ス テ ィ ム ラ ス ポー ト レ ジ ス タ 0 ~ 31
0xE000007C
0xE0000E00
ITM_TER
RW
0x00000000
ト レース イ ネーブル レ ジ ス タ
ITM_TPR
RW
0x00000000
「ITM ト レース特権レ ジ ス タ、 ITM_TPR」
0xE0000E40
(ページ 10-5)
0xE0000E80
ITM_TCR
RW
0x00000000
ト レース制御レ ジ ス タ
0xE0000FD0
PID4
RO
0x00000004
ペ リ フ ェ ラ ル識別レ ジ ス タ
0xE0000FD4
PID5
RO
0x00000000
0xE0000FD8
PID6
RO
0x00000000
0xE0000FDC
PID7
RO
0x00000000
0xE0000FE0
PID0
RO
0x00000001
0xE0000FE4
PID1
RO
0x000000B0
0xE0000FE8
PID2
RO
0x0000003B
0xE0000FEC
PID3
RO
0x00000000
0xE0000FF0
CID0
RO
0x0000000D
0xE0000FF4
CID1
RO
0x000000E0
0xE0000FF8
CID2
RO
0x00000005
0xE0000FFC
CID3
RO
0x000000B1
コ ン ポーネ ン ト 識別レ ジ ス タ
注
ITM レ ジ ス タ は特権モー ド では完全にア ク セ ス可能です。 ユーザモー ド ではすべて
の レ ジ ス タ を読み出せますが、 書 き 込みは ス テ ィ ム ラ ス レ ジ ス タ お よ び ト レース イ
ネーブル レ ジ ス タ に対 し てのみ行え ます。 ま た、 対応す る ト レース特権レ ジ ス タ の
ビ ッ ト がセ ッ ト さ れてい る 場合にのみ書 き 込みが可能です。 ITM レ ジ ス タ への無効
なユーザモー ド 書 き 込みは破棄 さ れます。
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
10-4
計装 ト レース マ ク ロ セル ユニ ッ ト
以下のセ ク シ ョ ンでは、 実装が こ のプ ロ セ ッ サに固有であ る ITM レ ジ ス タ について
説明 し ます。 他の レ ジ ス タ については、 『ARMv7-M アーキ テ ク チ ャ リ フ ァ レ ン ス マ
ニ ュ アル』 で解説 さ れてい ます。
10.3.1
ITM ト レース特権レ ジス タ 、 ITM_TPR
ITM_TPR には次の特徴があ り ます。
目的
オペレーテ ィ ン グ シ ス テ ムで、 ユーザ コー ド か ら ア ク セ ス可能な
ス テ ィ ム ラ ス ポー ト を制御す る ために使用 さ れます。
使用制限
特権モー ド でのみ、 こ の レ ジ ス タ に書 き込む こ と がで き ます。
構成
こ の レ ジ ス タ は、 実装に ITM が構成 さ れてい る 場合に利用可能で
す。
属性
表 10-1 (ページ 10-4) を参照 し て下 さ い。
ITM_TPR のビ ッ ト 割 り 当て を、 図 10-1 に示 し ます。
䢵䢳
䢶 䢵
䢲
ண⣙
䣒䣔䣋䣘䣏䣃䣕䣍
図 10-1 ITM_TPR のビ ッ ト 割 り 当て
ITM_TPR のビ ッ ト 割 り 当て を、 表 10-2 に示 し ます。
表 10-2 ITM_TPR のビ ッ ト 割 り 当て
ARM DDI 0439CJ
ID050813
ビッ ト
名前
機能
[31:4]
-
予約
[3:0]
PRIVMASK
ITM ス テ ィ ム ラ ス ポー ト での ト レース を可
能にす る ビ ッ ト マ ス ク 。
ビ ッ ト [0] = ス テ ィ ム ラ ス ポー ト [7:0]
ビ ッ ト [1] = ス テ ィ ム ラ ス ポー ト [15:8]
ビ ッ ト [2] = ス テ ィ ム ラ ス ポー ト [23:16]
ビ ッ ト [3] = ス テ ィ ム ラ ス ポー ト [31:24]
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
10-5
第 11 章
ト レースポー ト イ ン タ フ ェ ースユニ ッ ト
本章では、 Cortex-M4 プ ロ セ ッ サに固有の ト レース ポー ト イ ン タ フ ェース ユニ ッ ト であ
る Cortex-M4 TPIU について説明 し ます。 本章は次のセ ク シ ョ ンで構成 さ れてい ます。
「Cortex-M4 TPIU について」 (ページ 11-2)
•
「TPIU の機能の説明」 (ページ 11-3)
•
「TPIU のプ ロ グ ラ マモデル」 (ページ 11-5)
•
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
11-1
ト レースポー ト イ ン タ フ ェ ースユニ ッ ト
11.1
Cortex-M4 TPIU について
Cortex-M4 TPIU はオプシ ョ ンの コ ン ポーネン ト で、 別々の ID を持つ エンベデ ッ ド ト
レース マ ク ロ セル (ETM) お よ び計装 ト レース マ ク ロ セル (ITM) か ら のオ ンチ ッ プ ト
レースデー タ と 、 デー タ ス ト リ ーム と の間でブ リ ッ ジ と し て動作 し ます。 TPIU は必
要に応 じ て ID を カプセル化 し 、 デー タ ス ト リ ームは ト レース ポー ト アナ ラ イ ザ
(TPA) に よ っ て キ ャ プチ ャ さ れます。
Cortex-M4 TPIU は低コ ス ト のデバ ッ グ用に特化 し て設計 さ れてい ます。 こ れは、
CoreSight TPIU の特別なバージ ョ ンです。 実装で CoreSight TPIU の追加機能が必要な
場合、 Cortex-M4 TPIU を他の CoreSight コ ンポーネン ト に置 き換え る こ と がで き ます。
本章では、 TPIU と い う 用語は Cortex-M4 TPIU を指 し ます。 CoreSight TPIU の詳細に
ついては、 『ARM CoreSight コ ン ポーネ ン ト テ ク ニ カル リ フ ァ レ ン ス マニ ュ アル』 を
参照 し て下 さ い。
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
11-2
ト レースポー ト イ ン タ フ ェ ースユニ ッ ト
11.2
TPIU の機能の説明
TPIU には、 次の 2 つの構成があ り ます。
•
ITM デバ ッ グ ト レース をサポー ト する 構成
•
ITM お よ び ETM デバ ッ グ ト レース の両方を サポー ト す る 構成
実装で ト レース のサポー ト が必要ない場合、 TPIU を搭載す る 必要はあ り ません。
注
Cortex-M4 シ ス テ ムでオプシ ョ ンの ETM コ ン ポーネン ト を使用 し てい る 場合、 TPIU
の構成は、 ITM お よ び ETM デバ ッ グ ト レース の両方をサポー ト し てい ます。
『ETM-M4 テ ク ニ カル リ フ ァ レ ン ス マニ ュ アル』 を参照 し て下 さ い。
11.2.1
TPIU のブ ロ ッ ク 図
両方の構成について、 TPIU の コ ン ポーネ ン ト レ イ ア ウ ト を図 11-1 に示 し ます。
䣖䣔䣃䣅䣇䣅䣎䣍䣋䣐儭充儈兗
䣅䣎䣍儭充儈兗
†䢢䣇䣖䣏䢢
䣃䣖䣄儝児兠儺允兠儬
䣖䣔䣃䣅䣇䣅䣎䣍䣋䣐
†䢢䣃䣖䣄䢢
儈兗儣儹儋兠儝
䣖䣔䣃䣅䣇䣅䣎䣍
儹儍兠兂儧儣
䣋䣖䣏䢢䣃䣖䣄儝児兠儺允兠儬
䣃䣒䣄儝児兠儺允兠儬
儬児兠儝ฟຊ
䢪儛兎儆免儈儚凛
䣃䣖䣄䢢
儈兗儣儹儋兠儝
䣖䣔䣃䣅䣇䣆䣃䣖䣃䢢䣝䢵䢼䢲䣟
䣖䣔䣃䣅䣇䣕䣙䣑
䣃䣒䣄
儈兗儣儹儋兠儝
†䢢儎儻儛克兗儗兗允兠儱兗儬
図 11-1 TPIU のブ ロ ッ ク図
11.2.2
TPIU フ ォ ーマ ッ タ
フ ォーマ ッ タ は、 ト レースデー タ を ト レース ソ ース と 再び対応付けで き る よ う に、
ソ ース ID 信号をデー タ パケ ッ ト ス ト リ ームに挿入 し ます。 ト レース ポー ト モー ド
がア ク テ ィ ブな場合、 フ ォ ーマ ッ タ は常時ア ク テ ィ ブです。
フ ォーマ ッ ト 付けのプ ロ ト コ ルは、 『CoreSight アーキテ ク チ ャ 仕様』 に解説 さ れてい
ます。 フ ォーマ ッ タ の同期を提供す る には、 DWT の同期パケ ッ ト を可能にす る必要
があ り ます。
フ ォーマ ッ タ が可能な時、 フ レームの開始後に出力すべ きデー タ が存在 し なければ、
ハーフ シ ン ク パケ ッ ト を挿入で き ます。 DWT か ら の分散同期に よ り 引 き 起 こ さ れ る
同期化に よ っ て、 すべての部分的な フ レームが完了 し 、 最低 1 つの完全な同期パ
ケ ッ ト が生成 さ れ る こ と が保証 さ れます。
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
11-3
ト レースポー ト イ ン タ フ ェ ースユニ ッ ト
11.2.3
シ リ アルワ イ ヤ出力の形式
TPIU は、 ト レースデー タ を シ リ アルワ イ ヤ出力 (SWO) 形式で出力で き ます。
•
TPIU_DEVID は、 サポー ト さ れてい る 形式を指定 し ます。 「TPIU_DEVID」
(ページ 11-12) を参照 し て下 さ い。
•
TPIU_SPPR は、 使用 さ れてい る SWO 形式を指定 し ます。 『ARMv7-M アーキ テ
ク チ ャ リ フ ァ レ ン ス マニ ュ アル』 を参照 し て下 さ い。
2 つの SWO モー ド の う ち 1 つが選択 さ れてい る と き 、 TPIU で ト レース出力につい
て フ ォ ーマ ッ ト をバ イ パ ス可能にす る こ と がで き ます。 フ ォ ーマ ッ タ がバ イ パ ス さ
れ る と 、 ITM お よ び DWT ト レース ソ ース のみが通過 し ます。 TPIU は、 ETM か ら の
デー タ を受け付け、 破棄 し ます。 こ の機能を使用 し て、 ETM を含むデバ イ ス を、
SWO デー タ のみを キ ャ プチ ャ で き る ト レース キ ャ プチ ャ デバ イ ス に接続で き ます。
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
11-4
ト レースポー ト イ ン タ フ ェ ースユニ ッ ト
11.3
TPIU のプ ログ ラ マモデル
TPIU レ ジ ス タ の概要を、 表 11-1 に示し ます。 プ ロ セ ッ サの実装に よ っ ては、 TPIU
レ ジ ス タ が存在し ない場合や、 代わ り に CoreSight TPIU が存在する場合があ り ます。
存在 し ない も の と し て構成 さ れてい るすべてのレ ジ ス タ は、 0 と し て読み出 さ れま
す。
表 11-1 TPIU レ ジス タ
ア ド レス
名前
タ イプ
リセッ ト時
の値
説明
0xE0040000
TPIU_SSPSR
RO
0x0xx
サポー ト さ れ る パ ラ レルポー ト のサ イ ズ レ ジ ス タ
0xE0040004
TPIU_CSPSR
RW
0x01
カ レ ン ト パ ラ レルポー ト サ イ ズ レ ジ ス タ
0xE0040010
TPIU_ACPR
RW
0x0000
「非同期 ク ロ ッ ク プ リ ス ケー ラ レ ジ ス タ、 TPIU_ACPR」
(ページ 11-6)
0xE00400F0
TPIU_SPPR
RW
0x01
選択ピ ンプ ロ ト コ ル レ ジ ス タ
0xE0040300
TPIU_FFSR
RO
0x08
「フ ォーマ ッ タおよびフ ラ ッ シ ュ ス テータ ス レ ジ ス タ、
TPIU_FFSR」 (ページ 11-6)
0xE0040304
TPIU_FFCR
RW
0x102
「フ ォーマ ッ タおよびフ ラ ッ シ ュ制御レ ジ ス タ、
TPIU_FFCR」 (ページ 11-7)
0xE0040308
TPIU_FSCR
RO
0x00
フ ォーマ ッ タ 同期化カ ウ ン タ レ ジ ス タ
0xE0040EE8
TRIGGER
RO
0x0
「TRIGGER」 (ページ 11-8)
0xE0040EEC
FIFO デー タ 0
RO
0x--000000
「統合 ETM データ 」 (ページ 11-9)
0xE0040EF0
ITATBCTR2
RO
0x0
「ITATBCTR2」 (ページ 11-10)
0xE0040EFC
FIFO デー タ 1
RO
0x--000000
「統合 ITM データ 」 (ページ 11-10)
0xE0040EF8
ITATBCTR0
RO
0x0
「ITATBCTR0」 (ページ 11-11)
0xE0040F00
ITCTRL
RW
0x0
「統合モー ド 制御、 TPIU_ITCTRL」 (ページ 11-12)
0xE0040FA0
CLAIMSET
RW
0xF
ク レーム タ グ セ ッ ト
0xE0040FA4
CLAIMCLR
RW
0x0
ク レーム タ グ ク リ ア
0xE0040FC8
DEVID
RO
0xCA0/0xCA1
「TPIU_DEVID」 (ページ 11-12)
0xE0040FCC
DEVTYPE
RO
0x11
「TPIU_DEVTYPE」 (ページ 11-13)
0xE0040FD0
PID4
RO
0x04
ペ リ フ ェ ラ ル識別レ ジ ス タ
0xE0040FD4
PID5
RO
0x00
0xE0040FD8
PID6
RO
0x00
0xE0040FDC
PID7
RO
0x00
0xE0040FE0
PID0
RO
0xA1
0xE0040FE4
PID1
RO
0xB9
0xE0040FE8
PID2
RO
0x0B
0xE0040FEC
PID3
RO
0x00
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
11-5
ト レースポー ト イ ン タ フ ェ ースユニ ッ ト
表 11-1 TPIU レ ジス タ ( 続き )
ア ド レス
名前
タ イプ
リセッ ト時
の値
説明
0xE0040FF0
CID0
RO
0x0D
コ ン ポーネ ン ト 識別レ ジ ス タ
0xE0040FF4
CID1
RO
0x90
0xE0040FF8
CID2
RO
0x05
0xE0040FFC
CID3
RO
0xB1
以下のセ ク シ ョ ンでは、 実装が こ のプ ロ セ ッ サに固有であ る TPIU レ ジ ス タ について
説明 し ます。 フ ォーマ ッ タ 、 統合モー ド 制御、 ク レーム タ グ レ ジ ス タ については、
『CoreSight コ ン ポーネン ト テ ク ニカル リ フ ァ レ ン ス マニ ュ アル』 で解説 さ れてい ま
す。 他の レ ジ ス タ については、 『ARMv7-M アーキ テ ク チ ャ リ フ ァ レ ン ス マニ ュ アル』
で解説 さ れてい ます。
11.3.1
非同期 ク ロ ッ ク プ リ スケー ラ レ ジス タ 、 TPIU_ACPR
TPIU_ACPR には次の特徴があ り ます。
目的
非同期出力のボーレー ト を調整 し ます。
使用制限
使用制限はあ り ません。
構成
こ の レ ジ ス タ は、 すべてのプ ロ セ ッ サ構成で利用可能です。
属性
表 11-1 (ページ 11-5) を参照 し て下 さ い。
TPIU_ACPR の ビ ッ ト 割 り 当て を、 図 11-2 に示 し ます。
䢵䢳
䢳䢵 䢳䢴
ண⣙
䢲
䣒䣔䣇䣕䣅䣃䣎䣇䣔
図 11-2 TPIU_ACPR のビ ッ ト 割 り 当て
TPIU_ACPR の ビ ッ ト 割 り 当て を、 表 11-2 に示 し ます。
表 11-2 TPIU_ACPR のビ ッ ト 割 り 当て
11.3.2
ビッ ト
名前
機能
[31:13]
-
予約。 RAZ/SBZP。
[12:0]
PRESCALER
TRACECLKIN の除数は、
PRESCALER + 1 で指定 さ れます。
フ ォ ーマ ッ タ および フ ラ ッ シ ュ ス テー タ ス レ ジス タ 、 TPIU_FFSR
TPIU_FFSR には次の特徴があ り ます。
目的
TPIU フ ォーマ ッ タ の ス テー タ ス を示 し ます。
使用制限
使用制限はあ り ません。
構成
こ の レ ジ ス タ は、 すべてのプ ロ セ ッ サ構成で利用可能です。
属性
表 11-1 (ページ 11-5) を参照 し て下 さ い。
TPIU_FFSR のビ ッ ト 割 り 当て を、 図 11-3 (ページ 11-7) に示 し ます。
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
11-6
ト レースポー ト イ ン タ フ ェ ースユニ ッ ト
䢵䢳
䢶 䢵 䢴 䢳 䢲
ண⣙
䣈䣶䣐䣱䣰䣕䣶䣱䣲
䣖䣅䣒䣴䣧䣵䣧䣰䣶
䣈䣶䣕䣶䣱䣲䣲䣧䣦
䣈䣮䣋䣰䣒䣴䣱䣩
図 11-3 TPIU_FFSR のビ ッ ト 割 り 当て
TPIU_FFSR のビ ッ ト 割 り 当て を、 表 11-3 に示 し ます。
表 11-3 TPIU_FFSR のビ ッ ト 割 り 当て
11.3.3
ビッ ト
名前
機能
[31:4]
-
予約
[3]
FtNonStop
フ ォーマ ッ タ は中止で き
ません。
[2]
TCPresent
こ の ビ ッ ト は、 常に 0 と
し て読み出 さ れます。
[1]
FtStopped
こ の ビ ッ ト は、 常に 0 と
し て読み出 さ れます。
[0]
FlInProg
こ の ビ ッ ト は、 常に 0 と
し て読み出 さ れます。
フ ォ ーマ ッ タ および フ ラ ッ シ ュ制御レ ジ ス タ 、 TPIU_FFCR
TPIU_FFCR には次の特徴があ り ます。
目的
TPIU フ ォーマ ッ タ を制御 し ます。
使用制限
使用制限はあ り ません。
構成
こ の レ ジ ス タ は、 すべてのプ ロ セ ッ サ構成で利用可能です。
属性
表 11-1 (ページ 11-5) を参照 し て下 さ い。
TPIU_FFCR の ビ ッ ト 割 り 当て を、 図 11-4 に示 し ます。
䢵䢳
䢻 䢺 䢹
ண⣙
䢴 䢳 䢲
ண⣙
䣖䣴䣫䣩䣋䣰
䣇䣰䣈䣅䣱䣰䣶
ண⣙
図 11-4 TPIU_FFCR のビ ッ ト 割 り 当て
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
11-7
ト レースポー ト イ ン タ フ ェ ースユニ ッ ト
TPIU_FFCR の ビ ッ ト 割 り 当て を、 表 11-4 に示 し ます。
表 11-4 TPIU_FFCR のビ ッ ト 割 り 当て
ビッ ト
名前
機能
[31:9]
-
予約
[8]
TrigIn
こ のビ ッ ト は読み出 し 値 1 (RAO) で、 ト リ ガ ピ ンがアサー ト さ れた と き に ト リ ガが挿
入 さ れ る こ と を示 し ています。
[7:2]
-
予約
[1]
EnFCont
連続フ ォーマ ッ ト を可能に し ます。 値は次のいずれかです。
0 = 連続フ ォーマ ッ ト は不可能です。
1 = 連続フ ォーマ ッ ト が可能です。
[0]
-
予約
TPIU は、 ト レースデー タ を シ リ アルワ イ ヤ出力 (SWO) 形式で出力で き ます。 「シ リ
アルワ イ ヤ出力の形式」 (ページ 11-4) を参照 し て下 さ い。
2 つの SWO モー ド の う ち 1 つが選択 さ れ る と 、 TPIU_FFCR の ビ ッ ト [1] に よ り
フ ォーマ ッ タ のバ イ パ ス が可能にな り ます。 フ ォーマ ッ タ がバ イ パ ス さ れ る と 、 ITM
お よ び DWT ト レース ソ ース のみが通過 し ます。 TPIU は、 ETM か ら のデー タ を受け
付け、 破棄 し ます。 こ の機能を使用 し て、 ETM を含むデバ イ ス を、 SWO デー タ のみ
を キ ャ プチ ャ で き る ト レース キ ャ プチ ャ デバ イ ス に接続で き ます。 フ ォーマ ッ タ を
可能ま たは不可能にす る と 、 デー タ が一時的に破損 し ます。
注
TPIU_SPPR の設定に よ り ト レース ポー ト モー ド が選択 さ れ る と 、 フ ォーマ ッ タ が自
動的に可能にな り ます。 その後で SWO モー ド の 1 つを選択 し た場合、 TPIU_FFCR
は以前にプ ロ グ ラ ム さ れた値に戻 り ます。
11.3.4
TRIGGER
TRIGGER には次の特徴があ り ます。
目的
TRIGGER 入力の統合テ ス ト 。
使用制限
使用制限はあ り ません。
構成
こ の レ ジ ス タ は、 すべてのプ ロ セ ッ サ構成で利用可能です。
属性
表 11-1 (ページ 11-5) を参照 し て下 さ い。
TRIGGER のビ ッ ト 割 り 当て を、 図 11-5 に示 し ま す。
䢵䢳
䢳 䢲
ண⣙
䣖䣔䣋䣉䣉䣇䣔僔ධຊ್
図 11-5 TRIGGER のビ ッ ト 割 り 当て
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
11-8
ト レースポー ト イ ン タ フ ェ ースユニ ッ ト
TRIGGER のビ ッ ト 割 り 当て を、 表 11-5 に示 し ま す。
表 11-5 TRIGGER のビ ッ ト 割 り 当て
11.3.5
ビッ ト
名前
機能
[31:1]
-
予約
[0]
TRIGGER の入力値
こ の ビ ッ ト を読み出 し た場合、 TRIGGER
入力の値が返 さ れます。
統合 ETM デー タ
統合 ETM デー タ の特徴は次の と お り です。
目的
ト レースデー タ の統合テ ス ト 。
使用制限
こ の レ ジ ス タ を使用す る には、 TPIU_ITCTRL の ビ ッ ト [1] を セ ッ
ト す る必要があ り ます。 「統合モー ド 制御、 TPIU_ITCTRL」 (ペー
ジ 11-12) を参照 し て下 さ い。
構成
こ の レ ジ ス タ は、 すべてのプ ロ セ ッ サ構成で利用可能です。
属性
表 11-1 (ページ 11-5) を参照 し て下 さ い。
統合 ETM デー タ のビ ッ ト 割 り 当て を、 図 11-6 に示 し ます。
䢵䢳 䢵䢲 䢴䢻 䢴䢺 䢴䢹 䢴䢸 䢴䢷 䢴䢶 䢴䢵
䢳䢸 䢳䢷
䢺 䢹
䣇䣖䣏䢢儫兠儣䢢䢴
䣇䣖䣏䢢儫兠儣䢢䢳
䢲
䣇䣖䣏䢢儫兠儣䢢䢲
䣇䣖䣏儴儈儬儏儊兗儬
䣇䣖䣏䢢䣃䣖䣘䣃䣎䣋䣆
䣋䣖䣏儴儈儬儏儊兗儬
䣋䣖䣏䢢䣃䣖䣘䣃䣎䣋䣆
ண⣙
図 11-6 統合 ETM デー タ のビ ッ ト 割 り 当て
統合 ETM デー タ のビ ッ ト 割 り 当て を、 表 11-6 に示 し ます。
表 11-6 統合 ETM デー タ のビ ッ ト 割 り 当て
ビッ ト
名前
機能
[31:30]
-
予約
[29]
ITM ATVALID 入力
ITM ATVALID 信号の値を返 し ます。
[28:27]
ITM バ イ ト カ ウ ン ト
統合 ITM デー タ レ ジ ス タ が最後に読み出 さ れた後の、 ITM ト レースデー タ
のバ イ ト 数
[26]
ETM ATVALID 入力
ETM ATVALID 信号の値を返 し ます。
[25:24]
ETM バ イ ト カ ウ ン ト
統合 ETM デー タ レ ジ ス タ が最後に読み出 さ れた後の、 ETM ト レースデー
タ のバ イ ト 数
[23:16]
ETM デー タ 2
ETM ト レースデー タ 。 TPIU は、 レ ジ ス タ が読み出 さ れた と き に、 こ の
デー タ を破棄 し ます。
[15:8]
ETM デー タ 1
[7:0]
ETM デー タ 0
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
11-9
ト レースポー ト イ ン タ フ ェ ースユニ ッ ト
11.3.6
ITATBCTR2
ITATBCTR2 には次の特徴があ り ます。
目的
統合テ ス ト 。
使用制限
こ の レ ジ ス タ を使用す る には、 TPIU_ITCTRL の ビ ッ ト [0] を セ ッ
ト す る必要があ り ます。 「統合モー ド 制御、 TPIU_ITCTRL」 (ペー
ジ 11-12) を参照 し て下 さ い。
構成
こ の レ ジ ス タ は、 すべてのプ ロ セ ッ サ構成で利用可能です。
属性
表 11-1 (ページ 11-5) を参照 し て下 さ い。
ITATBCTR2 のビ ッ ト 割 り 当て を、 図 11-7 に示 し ます。
䢳 䢲
䢵䢳
ண⣙
䣃䣖䣔䣇䣃䣆䣛䢳
䣃䣖䣔䣇䣃䣆䣛䢴
図 11-7 ITATBCTR2 のビ ッ ト 割 り 当て
ITATBCTR2 のビ ッ ト 割 り 当て を、 表 11-7 に示 し ます。
表 11-7 ITATBCTR2 のビ ッ ト 割 り 当て
11.3.7
ビッ ト
名前
機能
[31:1]
-
予約
[0]
ATREADY1、
ATREADY2
こ のビ ッ ト は、 TPIU が統合テ ス ト モー ド の と き、 ETM
お よ び ITM の ATREADY 出力の値を設定 し ます。
統合 ITM デー タ
統合 ITM デー タ の特徴は次の と お り です。
目的
ト レースデー タ の統合テ ス ト 。
使用制限
こ の レ ジ ス タ を使用す る には、 TPIU_ITCTRL の ビ ッ ト [1] を セ ッ
ト す る必要があ り ます。 「統合モー ド 制御、 TPIU_ITCTRL」 (ペー
ジ 11-12) を参照 し て下 さ い。
構成
こ の レ ジ ス タ は、 すべてのプ ロ セ ッ サ構成で利用可能です。
属性
表 11-1 (ページ 11-5) を参照 し て下 さ い。
統合 ITM デー タ のビ ッ ト 割 り 当て を、 図 11-8 (ページ 11-11) に示 し ます。
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
11-10
ト レースポー ト イ ン タ フ ェ ースユニ ッ ト
䢵䢳 䢵䢲 䢴䢻 䢴䢺 䢴䢹 䢴䢸 䢴䢷 䢴䢶 䢴䢵
䢳䢸 䢳䢷
䢺 䢹
䣋䣖䣏儫兠儣䢴
䣋䣖䣏儫兠儣䢳
䢲
䣋䣖䣏儫兠儣䢲
䣇䣖䣏儴儈儬儏儊兗儬
䣇䣖䣏䢢䣃䣖䣘䣃䣎䣋䣆ධຊ
䣋䣖䣏儴儈儬儏儊兗儬
䣋䣖䣏䢢䣃䣖䣘䣃䣎䣋䣆ධຊ
ண⣙
図 11-8 統合 ITM デー タ のビ ッ ト 割 り 当て
統合 ITM デー タ のビ ッ ト 割 り 当て を、 表 11-8 に示 し ます。
表 11-8 統合 ITM デー タ のビ ッ ト 割 り 当て
11.3.8
ビッ ト
名前
機能
[31:30]
-
予約
[29]
ITM ATVALID 入力
ITM ATVALID 信号の値を返 し ます。
[28:27]
ITM バ イ ト カ ウ ン ト
統合 ITM デー タ レ ジ ス タ が最後に読み出 さ れた後の、 ITM ト レースデー タ
のバ イ ト 数。
[26]
ETM ATVALID 入力
ETM ATVALID 信号の値を返 し ます。
[25:24]
ETM バ イ ト カ ウ ン ト
統合 ETM デー タ レ ジ ス タ が最後に読み出 さ れた後の、 ETM ト レースデー
タ のバ イ ト 数。
[23:16]
ITM デー タ 2
ITM ト レースデー タ 。 TPIU は、 レ ジ ス タ が読み出 さ れた と き に、 こ のデー
タ を破棄 し ます。
[15:8]
ITM デー タ 1
[7:0]
ITM デー タ 0
ITATBCTR0
ITATBCTR0 には次の特徴があ り ます。
目的
統合テ ス ト 。
使用制限
使用制限はあ り ません。
構成
こ の レ ジ ス タ は、 すべてのプ ロ セ ッ サ構成で利用可能です。
属性
表 11-1 (ページ 11-5) を参照 し て下 さ い。
ITATBCTR0 のビ ッ ト 割 り 当て を、 図 11-9 に示 し ます。
䢳 䢲
䢵䢳
ண⣙
䣃䣖䣘䣃䣎䣋䣆䢳
䣃䣖䣘䣃䣎䣋䣆䢴
図 11-9 ITATBCTR0 のビ ッ ト 割 り 当て
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
11-11
ト レースポー ト イ ン タ フ ェ ースユニ ッ ト
ITATBCTR0 のビ ッ ト 割 り 当て を、 表 11-9 に示 し ます。
表 11-9 ITATBCTR0 のビ ッ ト 割 り 当て
11.3.9
ビッ ト
名前
機能
[31:1]
-
予約
[0]
ATVALID1、
ATVALID2
こ の ビ ッ ト を読み出す と 、 ATVALIDS1 と ATVALIDS2
の値に対 し て OR 演算を行っ た結果が返 さ れます。
統合モー ド 制御、 TPIU_ITCTRL
TPIU_ITCTRL には次の特徴があ り ます。
目的
TPIU の通常ま たは統合モー ド を指定 し ます。
使用制限
使用制限はあ り ません。
構成
こ の レ ジ ス タ は、 すべてのプ ロ セ ッ サ構成で利用可能です。
属性
表 11-1 (ページ 11-5) を参照 し て下 さ い。
TPIU_ITCTRL のビ ッ ト 割 り 当て を、 図 11-10 に示 し ます。
䢵䢳
䢴 䢳 䢲
ண⣙
兆兠儭
図 11-10 TPIU_ITCTRL のビ ッ ト 割 り 当て
TPIU_ITCTRL のビ ッ ト 割 り 当て を、 表 11-10 に示 し ます。
表 11-10 TPIU_ITCTRL のビ ッ ト 割 り 当て
ビッ ト
名前
機能
[31:2]
-
予約
[1:0]
モー ド
TPIU の現在のモー ド を指定 し ます。
通常モー ド
統合テ ス ト モー ド
統合デー タ テ ス ト モー ド
b11
予約
統合デー タ テ ス ト モー ド では、 ト レース出力は不可能にな り 、 デー タ は
統合デー タ レ ジ ス タ を使用 し て、 各入力ポー ト か ら 直接読み出す こ と の
みが可能です。
b00
b01
b10
11.3.10 TPIU_DEVID
TPIU_DEVID には次の特徴があ り ます。
ARM DDI 0439CJ
ID050813
目的
ト ポ ロ ジ検出で使用す る ため TPIU に よ り 提供 さ れてい る 機能を
示 し ます。
使用制限
使用制限はあ り ません。
構成
こ の レ ジ ス タ は、 すべてのプ ロ セ ッ サ構成で利用可能です。
属性
表 11-1 (ページ 11-5) を参照 し て下 さ い。
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
11-12
ト レースポー ト イ ン タ フ ェ ースユニ ッ ト
TPIU_DEVID のビ ッ ト 割 り 当て を、 図 11-11 に示 し ます。
䢵䢳
䢳䢴 䢳䢳 䢳䢲 䢻 䢺
䢸 䢷 䢶
䢲
ண⣙
㠀ྠᮇ儛兎儆兏兓儈先ฟຊ䢪䣐䣔䣜䢫
㠀ྠᮇ儛兎儆兏兓儈先ฟຊ䢪䣏䣣䣰䣥䣪䣧䣵䣶䣧䣴䢫
儬児兠儝儫兠儣僎儓兑儧儓兆兠儭
᭱ᑠ儴儧儹儅儙儈儞
㠀ྠᮇ䣖䣔䣃䣅䣇䣅䣎䣍䣋䣐
儬児兠儝ධຊ僔ᩘ
図 11-11 TPIU_DEVID のビ ッ ト 割 り 当て
TPIU_DEVID のビ ッ ト 割 り 当て を、 表 11-11 に示 し ます。
表 11-11 TPIU_DEVID のビ ッ ト 割 り 当て
ビッ ト
名前
機能
[31:12]
-
予約
[11]
非同期シ リ アル ワ イ ヤ出力 (NRZ)
こ の ビ ッ ト は読み出 し値 1 (RAO) で、 出力がサポー ト さ れてい
る こ と を示 し ます。
[10]
非同期シ リ アル ワ イ ヤ出力 (Manchester)
こ の ビ ッ ト は読み出 し値 1 (RAO) で、 出力がサポー ト さ れてい
る こ と を示 し ます。
[9]
ト レースデー タ と ク ロ ッ ク モー ド
こ の ビ ッ ト は読み出 し値 0 (RAZ) で、 ト レースデー タ と ク ロ ッ
ク モー ド がサポー ト さ れてい る こ と を示 し ます。
[8:6]
最小バ ッ フ ァ サ イ ズ
TPIU の最小バ ッ フ ァ サ イ ズ を指定 し ます。
b010 = 4 バ イ ト
[5]
非同期 TRACECLKIN
TRACECLKIN を CLK に対 し て非同期にで き る かど う かを指
定 し ます。
b0 = TRACECLKIN は CLK に同期 し てい る必要があ り ます。
b1 = TRACECLKIN は CLK に対 し て非同期で も か ま い ません。
[4:0]
ト レース入力の数
ト レース入力の数を指定 し ます。
b000000 = 1 つの入力
b000001 = 2 つの入力
実装に ETM が含まれ る場合、 こ の フ ィ ール ド の値は b000001
です。
11.3.11 TPIU_DEVTYPE
デバ イ ス タ イ プ識別レ ジ ス タ は読み出 し 専用です。 部品番号フ ィ ール ド が識別 さ れ
ない と き 、 コ ン ポーネ ン ト に関す る 情報をデバ ッ ガに提供 し ます。 その後で、 デ
バ ッ ガは こ の情報を報告で き ます。
TPIU_DEVTYPE には次の特徴があ り ます。
ARM DDI 0439CJ
ID050813
目的
コ ン ポーネ ン ト でサポー ト さ れてい る 機能の タ イ プを示 し ます。
使用制限
使用制限はあ り ません。
構成
こ の レ ジ ス タ は、 すべてのプ ロ セ ッ サ構成で利用可能です。
属性
デバ イ ス タ イ プの読み出 し 値は 0x11 で、 こ のデバ イ ス が ト レー
ス シ ン ク 、 具体的には TPIU であ る こ と を示 し ます。
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
11-13
ト レースポー ト イ ン タ フ ェ ースユニ ッ ト
䢵䢳
䢺 䢹
䢶 䢵
䢲
ண⣙
儙儺儣儈儻
充儜兇兠儣儈儻
図 11-12 TPIU_DEVTYPE のビ ッ ト 割 り 当て
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
11-14
付録 A
リ ビジ ョ ン
こ の付録では、 本書の各版の技術的な相違点について説明 し ます。
表 A-1 A 版
変更内容
場所
影響範囲
初版
-
-
表 A-2 A 版 と B 版の相違点
変更内容
場所
影響範囲
技術的変更な し
-
-
表 A-3 B 版 と C 版の相違点
変更内容
場所
影響範囲
バ ス イ ン タ フ ェース の情報を追加
「バス イ ン タ フ ェース」 (ページ 2-5)
すべて
専用ペ リ フ ェ ラ ルパス の情報を追加
「専用ペ リ フ ェ ラ ルバス (PPB)」 (ページ 2-6)
すべて
Cortex-M4 命令セ ッ ト のサ イ ク ル数を更新
表 3-1 (ページ 3-4)
すべて
DSP 命令の符号付き 乗算命令のアセ ンブ ラ を更新
表 3-2 (ページ 3-9)
すべて
ロ ー ド / ス ト アの タ イ ミ ン グ情報を更新
「ロー ド / ス ト アの タ イ ミ ン グ」 (ページ
すべて
3-12)
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
A-1
リ ビジ ョ ン
表 A-3 B 版 と C 版の相違点 ( 続き )
変更内容
場所
影響範囲
ロ ーカル排他モニ タ の情報を追加
「排他モニ タ」 (ページ 3-19)
すべて
リ セ ッ ト 時の値を更新
表 5-1 (ページ 5-4)
すべて
補助制御レ ジ ス タ の ビ ッ ト 順序を更新
図 4-1 (ページ 4-5)
すべて
補助制御レ ジ ス タ の ビ ッ ト 順序を更新
表 4-2 (ページ 4-5)
すべて
補助フ ォール ト ス テー タ ス レ ジ ス タ の情報を更新
「補助フ ォール ト ス テータ ス レ ジ ス タ、
AFSR」 (ページ 4-6)
すべて
NVIC_IPR レ ジ ス タ のア ド レ ス範囲を変更
表 6-1 (ページ 6-4)
すべて
ペ リ フ ェ ラ ル ID 5 ~ 7 を追加
表 8-1 (ページ 8-3)
すべて
リ セ ッ ト 時の値を更新
表 8-7 (ページ 8-10)
すべて
TPIU レ ジ ス タ の名前を追加。 リ セ ッ ト 時の値を更新 し 、
TPIU_DEVTYPE を追加。
表 11-1 (ページ 11-5)
すべて
TPIU_DEVTYPE の ビ ッ ト 割 り 当て を追加
「TPIU_DEVTYPE」 (ページ 11-13)
すべて
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
A-2
用語集
こ の用語集では、 ARM Limited の発行す る 技術文書で使用 さ れてい る 用語のい く つかに
ついて説明 し ます。
アボー ト
試み ら れた メ モ リ ア ク セ ス が無効であ る か許可 さ れていない、 あ る いは メ モ リ ア ク セ ス
に よ っ て返 さ れたデー タ が無効であ る こ と を コ アに通知す る機構。 アボー ト は、 無効な
ま たは保護 さ れた命令やデー タ メ モ リ へのア ク セ ス を実行 し た結果 と し て、 外部ま たは
内部の メ モ リ シ ス テ ムに よ っ て引 き 起 こ さ れ る可能性があ り ます。
デー タ アボー ト 、 外部アボー ト 、 プ リ フ ェ ッ チアボー ト も 参照。
ア ド レ シ ングモー ド
命令で使用す る 値を生成す る ために、 複数の さ ま ざ ま な命令で共有 さ れ る各種の機構。
ア ド バン ス ト ハイパフ ォ ーマ ン ス バス (AHB)
ア ド レ ス / 制御フ ェ ーズ と デー タ フ ェーズ と の間で 1 つの固定パ イ プ ラ イ ン を使用す る
バ ス プ ロ ト コ ル。 AMBA AXI プ ロ ト コ ルで提供 さ れてい る 機能のサブセ ッ ト のみをサ
ポー ト し ます。 完全な AMBA AHB プ ロ ト コ ル仕様には、 一般的なマ ス タ / ス レーブの
IP 開発では必要のない機能が多 く 含まれてい る ため、 通常はプ ロ ト コ ルのサブセ ッ ト
だけ を使用す る こ と をお勧め し ます。 こ のサブセ ッ ト は、 AMBA AHB-Lite プ ロ ト コ ル
と し て定義 さ れてい ます。
ア ド バン ス ト マ イ ク ロ コ ン ト ロ ー ラ バス アーキ テ ク チ ャ お よ び AHB-Lite も 参照。
ア ド バン ス ト マ イ ク ロ コ ン ト ロー ラバス アーキテ ク チ ャ (AMBA)
相互接続のための方針が記載 さ れた、 プ ロ ト コ ル仕様のフ ァ ミ リ 。 AMBA は、 オ ン
チ ッ プバ ス に関する ARM のオープン な規格です。 シ ス テ ム オンチ ッ プ (SoC) を構築す
る 機能ブ ロ ッ ク の相互接続 と 管理のための方針が詳 し く 記載 さ れた、 オンチ ッ プ バス の
仕様です。 1 つま たは複数の CPU や信号プ ロ セ ッ サ、 お よ び複数のペ リ フ ェ ラ ルを含む
組み込みプ ロ セ ッ サの開発に役立ち ます。 AMBA は、 SoC モジ ュール用の共通バ ッ ク
ボーン を定義す る こ と に よ っ て、 再利用可能な設計手法を よ り 完全な も のに し ます。
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
Glossary-1
用語集
ア ド バン ス ト ペ リ フ ェ ラルバス (APB)
AXI や AHB よ り も 単純なバ ス プ ロ ト コ ル。 タ イ マ、 割 り 込み コ ン ト ロ ー ラ 、
UART、 I/O ポー ト な ど の補助的な、 ま たは汎用のペ リ フ ェ ラ ルで使用す る ために設
計 さ れてい ます。 メ イ ンのシ ス テ ムバ スへの接続は、 シ ス テ ム と ペ リ フ ェ ラ ル と の
間のバ ス ブ リ ッ ジ を経由 し て行われ る ため、 シ ス テ ムの消費電力を抑え ら れます。
AHB
ア ド バン ス ト ハ イ パフ ォーマ ン ス バ ス 参照。
AHB ア ク セスポー ト (AHB-AP)
DAP のオプシ ョ ン コ ン ポーネ ン ト で、 SoC への AHB イ ン タ フ ェース を提供 し ます。
AHB-AP
AHB ア ク セ ス ポー ト 参照。
AHB-Lite
完全な AMBA AHB プ ロ ト コ ル仕様のサブセ ッ ト 。 大部分の AMBA AHB マ ス タ / ス
レーブ設計に必要なすべての基本機能を提供 し てお り 、 特にマルチ レ イ ヤの AMBA
相互接続で使用 さ れます。 ほ と んど の場合、 完全な AMBA AHB イ ン タ フ ェース で提
供 さ れてい る 追加機能は、 AMBA AXI プ ロ ト コ ル イ ン タ フ ェース で実装す る と よ り
効率的にな り ます。
AHB ト レースマ ク ロ セル
プ ロ セ ッ サ コ アに接続 さ れた と き に、 ト レース ポー ト にデー タ の ト レース情報を出
力す る ハー ド ウ ェ アマ ク ロ セル。
アライン ド
デー タ サ イ ズ を定義 し てい る バ イ ト 数で割 り 切れ る ア ド レ ス に格納 さ れてい るデー
タ 項目を、 ア ラ イ ン ド 、 ま たはア ラ イ ン し てい る と 呼びます。 ア ラ イ ン し てい る
ワー ド と ハーフ ワー ド のア ド レ ス は、 それぞれ 4 と 2 で割 り 切れます。 し たがっ て、
ワー ド ア ラ イ ン ド と ハーフ ワー ド ア ラ イ ン ド と い う 用語は、 それぞれ 4 と 2 で割 り
切れ る ア ド レ ス を意味 し ます。
AMBA
ア ド バン ス ト マ イ ク ロ コ ン ト ロ ー ラ バ ス アーキテ ク チ ャ 参照。
ア ド バン ス ト ト レースバス (ATB)
CoreSight のキ ャ プチ ャ リ ソ ース を共有す る ため、 ト レースデバ イ ス に よ っ て使用 さ
れ る バ ス。
APB
ア ド バン ス ト ペ リ フ ェ ラ ルバ ス 参照。
特定用途向け集積回路 (ASIC)
特定用途の機能を発揮す る ために設計 さ れた集積回路。 特注ま たは量産が可能です。
アーキテ ク チ ャ
プ ロ セ ッ サ と 、 プ ロ セ ッ サに接続 さ れてい る コ ン ポーネ ン ト を特徴付け る ハー ド
ウ ェ アお よ び ソ フ ト ウ ェ アの構成。 装置の動作を記述す る と き に、 類似の特徴を持
つ装置を ま と めて扱え る よ う に し ます。 例えば、 ハーバー ド アーキ テ ク チ ャ、 命令
セ ッ ト アーキ テ ク チ ャ 、 ARMv7-M アーキテ ク チ ャ な ど。
ARM 命令
ARM 命令セ ッ ト アーキ テ ク チ ャ (ISA) の命令。 こ れ ら の命令は Cortex-M4 プ ロ セ ッ
サでは実行で き ません。
ARM 状態
プ ロ セ ッ サ状態の う ち、 プ ロ セ ッ サが ARM ISA の命令を実行す る 状態。 Cortex-M4
プ ロ セ ッ サは Thumb 状態でのみ動作 し 、 ARM 状態では動作 し ません。
ASIC
特定用途向け集積回路参照。
ATB
ア ド バン ス ト ト レース バ ス 参照。
ATB ブ リ ッ ジ
同期 ATB ブ リ ッ ジは レ ジ ス タ ス ラ イ ス を提供す る ため、 パ イ プ ラ イ ン ス テージの追
加に よ っ て、 タ イ ミ ン グ収束が容易にな り ます。 ま た、 2 つの同期 ATB ド メ イ ン間
の単方向 リ ン ク を提供 し ます。
非同期 ATB ブ リ ッ ジは、 非同期 ク ロ ッ ク を使用す る 2 つの ATB ド メ イ ン間の単方
向 リ ン ク を提供 し ます。 こ れは、 異な る ク ロ ッ ク ド メ イ ンに存在す る コ ン ポーネン
ト について、 ATB ポー ト に よ る 接続をサポー ト する こ と が目的です。
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
Glossary-2
用語集
ベース レ ジス タ
命令のア ド レ ス計算の基盤 と な る 値を保持す る ため、 ロ ー ド / ス ト ア命令で指定 さ れ
る レ ジ ス タ 。 命令 と そのア ド レ シ ン グモー ド に よ っ ては、 ベース レ ジ ス タ 値にオ フ
セ ッ ト が加算ま たは減算 さ れて、 メ モ リ に送信す る ア ド レ ス が生成 さ れ る 場合があ
り ます。
ベース レ ジス タ ラ イ ト バ ッ ク
命令の タ ーゲ ッ ト ア ド レ ス計算に使用 さ れ るベース レ ジ ス タ の内容を、 ア ド レ ス が
メ モ リ 順序で次の上位ま たは下位ア ド レ ス を指 し 示す よ う に更新す る こ と 。 こ れに
よ っ て、 命令で連続 し た転送を行 う と き 、 そのたびに タ ーゲ ッ ト ア ド レ ス を フ ェ ッ
チす る 必要がな く 、 連続す る メ モ リ に対 し て よ り 高速なバース ト ア ク セ ス が可能に
な り ます。
ビー ト
1 つのバース ト 転送中の個々のデー タ 転送を、 ビー ト と も 呼びます。 例えば、 INCR4
バース ト は 4 ビー ト で構成 さ れます。
BE-8
バ イ ト 不変シ ス テ ムでの、 ビ ッ グエ ンデ ィ ア ン形式の メ モ リ ビ ュー。
BE-32、 LE、 バ イ ト 不変、 ワー ド 不変 も 参照。
BE-32
ワー ド 不変シ ス テ ムでの、 ビ ッ グエ ンデ ィ ア ン形式の メ モ リ ビ ュー。
BE-8、 LE、 バ イ ト 不変、 ワー ド 不変 も 参照。
ビ ッ グエ ンデ ィ ア ン
デー タ ワー ド 内の最上位バ イ ト か ら 最下位バ イ ト ま でが、 メ モ リ 内のア ド レ ス の昇
順に保存 さ れ る バ イ ト 配列方式。
リ ト ルエ ンデ ィ ア ン と エ ンデ ィ ア ン形式 も 参照。
ビ ッ グエ ンデ ィ ア ン メ モ リ
次の条件を満たす メ モ リ を指 し ます。
•
ワー ド ア ラ イ ン し た ア ド レ ス のバ イ ト ま たはハーフ ワー ド が、 そのア ド レ ス の
ワー ド 内で最上位のバ イ ト ま たはハーフ ワー ド であ る 。
•
ハーフ ワー ド ア ラ イ ン し た ア ド レ ス のバ イ ト が、 そのア ド レ ス のハーフ ワー ド
内で最上位バ イ ト であ る。
リ ト ルエ ンデ ィ ア ン メ モ リ も 参照。
バウン ダ リ スキ ャ ン チ ェ イ ン
バ ウ ン ダ リ ス キ ャ ン チ ェ イ ンは、 標準の JTAG TAP イ ン タ フ ェース を使用 し てバ ウ
ン ダ リ ス キ ャ ン技術を実装 し てい る デバ イ ス のシ リ アル接続で構成 さ れます。 各デ
バ イ ス には少な く と も 1 つの TAP コ ン ト ロ ー ラ があ り 、 TDI と TDO と の間の接続
チ ェ イ ン を形成す る シ フ ト レ ジ ス タ を搭載 し てい ます。 こ のチ ェ イ ン を通 し て、 テ
ス ト デー タ がシ フ ト さ れます。 プ ロ セ ッ サには数個のシ フ ト レ ジ ス タ を搭載で き る
ため、 デバ イ ス の選択 し た部分にア ク セ ス で き ます。
分岐フ ォ ールデ ィ ング
実行パ イ プ ラ イ ンに送 ら れ る 命令ス ト リ ームか ら 、 分岐命令を完全に取 り 除 く 手法。
ブ レー ク ポ イ ン ト
プ ロ グ ラ ムの実行を停止 さ せ よ う と す る 位置にあ る命令を識別す る ために、 デバ ッ
ガに よ っ て提供 さ れ る 機構。 プ ロ グ ラ マは、 ブ レー ク ポ イ ン ト を挿入す る こ と に
よ っ て、 プ ロ グ ラ ムの実行中の決ま っ た位置で、 レ ジ ス タ の内容、 メ モ リ 位置、 変
数の値を検査 し て、 プ ロ グ ラ ムが正常に動作 し てい る か ど う かを テ ス ト で き ます。
プ ロ グ ラ ムのテ ス ト が完了 し た後で、 ブ レー ク ポ イ ン ト は削除 さ れます。
ウ ォ ッ チポ イ ン ト も 参照。
バース ト
連続ア ド レ ス に対す る 一連の転送。 ア ド レ ス が連続 し てい る ため、 2 回目以降の転送
ではア ド レ ス を指定す る必要があ り ません。 こ の方法に よ っ て、 一連の転送の実行
速度が向上 し ます。 AMBA 経由のバース ト は、 バース ト の長 さ と ア ド レ ス の イ ン ク
リ メ ン ト 方法を示す信号に よ っ て制御 さ れます。
ビー ト も 参照。
バイ ト
ARM DDI 0439CJ
ID050813
8 ビ ッ ト のデー タ 項目。
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
Glossary-3
用語集
バイ ト 不変
バ イ ト 不変のシ ス テ ムでは、 リ ト ルエ ンデ ィ ア ン と ビ ッ グエンデ ィ ア ン と の間で動
作が切 り 替え ら れて も 、 メ モ リ の各バ イ ト のア ド レ ス は変更 さ れません。 1 バ イ ト を
超え る デー タ 項目を メ モ リ か ら ロ ー ド 、 ま たは メ モ リ に ス ト アす る と き、 そのデー
タ 項目を構成す る バ イ ト が、 メ モ リ ア ク セ ス のエ ンデ ィ ア ン形式に応 じ て正 し い順
序に配列 さ れます。 ARM アーキテ ク チ ャ では、 ARMv6 お よ びそれ以降のバージ ョ
ンでバ イ ト 不変シ ス テ ムがサポー ト さ れてい ます。 バ イ ト 不変のサポー ト が選択 さ
れてい る 場合は、 ア ン ア ラ イ ン ド のハーフ ワー ド と ワー ド での メ モ リ ア ク セ ス も サ
ポー ト さ れます。 複数ワー ド ア ク セ ス は、 ワー ド ア ラ イ ン し てい る 必要があ り ます。
ワー ド 不変 も 参照。
ク ロ ッ ク ゲー ト
制御信号でマ ク ロ セルの ク ロ ッ ク 信号を ゲー ト し 、 変更 さ れた ク ロ ッ ク を使用 し て
マ ク ロ セルの動作状態を制御す る こ と 。
命令あた り のク ロ ッ ク数 (CPI)
命令あ た り のサ イ ク ル数 (CPI) 参照。
コ ール ド リ セ ッ ト
パ ワーオ ン リ セ ッ ト と 呼ばれ る こ と も あ り ます。
ウ ォーム リ セ ッ ト も 参照。
コ ン テキス ト
マルチ タ ス ク のオペレーテ ィ ン グ シ ス テ ムで、 各プ ロ セ ス が動作す る 環境。
高速 コ ン テ キ ス ト ス イ ッ チ も 参照。
コア
プ ロ セ ッ サの一部で、 ALU、 デー タ パス、 汎用レ ジ ス タ 、 プ ロ グ ラ ム カ ウ ン タ 、 命
令デ コ ー ド お よ び制御回路が含まれます。
コアリセッ ト
ウ ォーム リ セ ッ ト 参照。
CoreSight
完全な シ ス テ ム オ ンチ ッ プ (SoC) のモニ タ 、 ト レース、 デバ ッ グ を行 う ための イ ン
フ ラ ス ト ラ ク チャ。
CPI
命令あ た り のサ イ ク ル数 (CPI) 参照。
命令あた り のサイ クル数 (CPI)
命令あ た り のサ イ ク ル数 (ま たは命令あ た り の ク ロ ッ ク 数) は、 1 ク ロ ッ ク サ イ ク ル
で実行可能な コ ン ピ ュ ー タ 命令の数の指標です。 こ の性能指標は、 同 じ 命令セ ッ ト
を実装 し た異な る CPU のパフ ォーマ ン ス を比較す る ために使用で き ます。 値が低い
ほど、 パフ ォ ーマ ン ス が高い こ と を意味 し ます。
デー タ アボー ト
デー タ メ モ リ の不正な位置にア ク セ ス が試み ら れた こ と を、 メ モ リ シ ス テ ムか ら コ
アへ通知す る 方法。 アボー ト を引 き 起 こ し たデー タ の使用を プ ロ セ ッ サが試みた場
合、 例外を引 き 起 こ す必要があ り ます。
アボー ト も 参照。
DCode メ モ リ
0x00000000
~ 0x1FFFFFFFF の メ モ リ 空間。
デバ ッ グア ク セス ポー ト (DAP)
シ ス テ ムバ スへのア ク セ ス で、 AMBA、 AHB、 ま たは AHB-Lite マ ス タ と し て動作す
る TAP ブ ロ ッ ク 。 DAP は、 シ ス テ ム規模のデバ ッ グ をサポー ト す る 、 モジ ュ ラ ブ
ロ ッ ク のセ ッ ト を総称す る 用語です。 DAP はモジ ュ ラ コ ンポーネ ン ト で、 単一のデ
バ ッ グ イ ン タ フ ェース を通 し て、 メ モ リ マ ッ プ さ れた AHB や CoreSight APB な ど複
数のシ ス テ ムに対 し て、 オプシ ョ ンのア ク セ ス をサポー ト す る よ う 拡張可能な こ と
を意図 し てい ます。
デバ ッ ガ
ソ フ ト ウ ェ アの障害を検出 し 、 場所を特定 し 、 修正す る ために使用 さ れ る プ ロ グ ラ
ム と 、 ソ フ ト ウ ェ アのデバ ッ グ を サポー ト す る カ ス タ ムハー ド ウ ェ ア と を組み合わ
せたデバ ッ グ シ ス テ ム。
エ ンベデ ッ ド ト レースバ ッ フ ァ
ETB は、 サ イ ズが構成可能な RAM を使用 し て、 ト レースデー タ のオ ンチ ッ プの ス
ト レージ を行い ます。
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
Glossary-4
用語集
エ ンべデ ッ ド ト レース マ ク ロ セル (ETM)
ハー ド ウ ェ アマ ク ロ セルで、 プ ロ セ ッ サ コ アに接続 さ れた と き に、 ト レース ポー ト
に命令 ト レース情報を出力 し ます。
エ ンデ ィ ア ン形式
バ イ ト の順序。 デー タ ワー ド の連続す る バ イ ト が メ モ リ に保存 さ れ る 順序を決定す
る 方式。 シ ス テ ムの メ モ リ マ ッ ピ ン グの見え方を表 し ます。
リ ト ルエ ンデ ィ ア ン と ビ ッ グエ ンデ ィ ア ン も 参照。
ETB
エ ンベデ ッ ド ト レース バ ッ フ ァ 参照。
ETM
エンベデ ッ ド ト レース マ ク ロ セル参照。
例外
エ ラ ーま たは イ ベン ト で、 こ れが発生す る と プ ロ セ ッ サは現在実行中の命令ス ト
リ ーム を停止 し 、 特定の例外ハン ド ラ ま たは割 り 込み処理ルーチン を実行 し ます。
例外には外部割込みや NMI のほか、 プ ロ グ ラ ムの実行を中断す る必要があ る ほ ど深
刻だ と 見な さ れ る フ ォール ト やエ ラ ー イ ベン ト が含まれます。 例 と し て、 無効な メ
モ リ ア ク セ ス、 外部割 り 込み、 未定義命令の実行な ど が挙げ ら れます。 例外が発生
す る と 、 通常のプ ロ グ ラ ム フ ロ ーが中断 さ れ、 対応す る 例外ベ ク タ で実行が再開 さ
れます。 例外ベ ク タ には、 例外を処理す る 割 り 込み処理ルーチンの最初の命令が含
ま れてい ます。
例外ハン ド ラ
割 り 込み処理ルーチン 参照。
例外ベ ク タ
割 り 込みベ ク タ 参照。
外部 PPB
0xE0040000
~ 0xE00FFFFF の PPB メ モ リ 空間。
フ ラ ッ シ ュパ ッ チおよびブ レー ク ポイ ン ト ユニ ッ ト (FPB)
ア ド レ ス一致 タ グのセ ッ ト で、 フ ラ ッ シ ュ へのア ク セ ス を SRAM の特別な場所への
ア ク セ ス にルーテ ィ ン グ し ます。 こ れに よ っ て、 フ ラ ッ シ ュ の位置にパ ッ チを適用
し 、 ブ レー ク ポ イ ン ト や、 迅速な修正ま たは変更が可能にな り ます。
フ ォ ーマ ッ タ
フ ォーマ ッ タ は ETB と TPIU の内部入力ブ ロ ッ ク で、 ト レース ソ ース の ID をデー タ
に埋め込み、 単一の ト レース ス ト リ ーム を生成 し ます。
ハー フ ワー ド
16 ビ ッ ト のデー タ 項目。
ホール ト モー ド
互いに排他な 2 つのデバ ッ グモー ド の う ちの 1 つ。 ホール ト モー ド では、 ブ レー ク
ポ イ ン ト ま たは ウ ォ ッ チポ イ ン ト に遭遇 し た と き に、 プ ロ セ ッ サの実行がすべて停
止 し ます。 すべてのプ ロ セ ッ サの状態、 コ プ ロ セ ッ サの状態、 メ モ リ と I/O の位置
を、 JTAG イ ン タ フ ェース か ら 検査お よ び変更で き ます。
モニ タ デバ ッ グモー ド も 参照。
ホス ト
デー タ や他のサービ ス を別の コ ン ピ ュー タ に提供す る コ ン ピ ュ ー タ 。 特に、 デバ ッ
グ対象の タ ーゲ ッ ト にデバ ッ グサービ ス を提供す る コ ン ピ ュ ー タ 。
HTM
AHB ト レース マ ク ロ セル参照。
ICode メ モ リ
0x00000000
不正命令
アーキ テ ク チ ャ で未定義の命令。
実装定義
動作がアーキ テ ク チ ャ で定義 さ れてお ら ず、 個別の実装に よ っ て定義や文書化が行
われます。
実装固有
動作がアーキ テ ク チ ャ で定義 さ れていないが、 実装ご と に文書化す る 必要がない こ
と を意味 し ます。 使用可能な実装オプシ ョ ンが多数あ り 、 選択 し たオプシ ョ ンに
よ っ て ソ フ ト ウ ェ アの互換性に影響がない場合に使用 さ れます。
命令サイ クル数
命令がパ イ プ ラ イ ンの実行ス テージ を占有す る サ イ ク ル数。
計装 ト レース
リ アル タ イ ム シ ス テ ム をデバ ッ グす る ための コ ン ポーネ ン ト で、 メ モ リ マ ッ プ さ れ
た単純な ト レース イ ン タ フ ェース に よ り 、 printf 形式のデバ ッ グ を提供 し ます。
ARM DDI 0439CJ
ID050813
~ 0x1FFFFFFF の メ モ リ 空間。
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
Glossary-5
用語集
イ ン テ リ ジ ェ ン ト 電力管理 (IEM)
デバ イ ス の消費電力を低減す る ために使用 さ れ る 技術で、 動的な電圧ス ケー リ ン グ
と ク ロ ッ ク 周波数の変更を可能に し ます。
~ 0xE003FFFF の PPB メ モ リ 空間。
内部 PPB
0xE0000000
割 り 込み処理ルーチ ン
割 り 込みが発生 し た と き に、 プ ロ セ ッ サの制御が渡 さ れ る プ ロ グ ラ ム。
割 り 込みベ ク タ
下位 メ モ リ にあ る多 く の固定ア ド レ ス の 1 つで、 対応す る割 り 込み処理ルーチンの
最初の命令が含ま れてい ます。
ジ ョ イ ン ト テス ト ア ク シ ョ ングループ (JTAG)
IEEE 1149.1 規格を策定 し た団体の名前。 こ の規格では、 集積回路デバ イ ス の イ ン
サーキ ッ ト テ ス ト に使用 さ れ る 、 バ ウ ン ダ リ ス キ ャ ン アーキテ ク チ ャ が定義 さ れて
い ます。 頭文字の JTAG で広 く 知 ら れてい ます。
JTAG
ジ ョ イ ン ト テ ス ト ア ク シ ョ ン グループ参照。
JTAG デバ ッ グポー ト (JTAG-DP)
デバ ッ グ ア ク セ ス用に標準の JTAG イ ン タ フ ェース を提供す る、 DAP 用のオプシ ョ
ンの外部 イ ン タ フ ェ ース。
JTAG-DP
JTAG デバ ッ グ ポー ト 参照。
LE
バ イ ト 不変 と ワー ド 不変の両方のシ ス テ ムにおけ る、 リ ト ルエ ンデ ィ ア ン形式の メ
モ リ ビ ュ ー。 バ イ ト 不変 と ワー ド 不変 も 参照。
リ ト ルエ ンデ ィ ア ン
デー タ ワー ド 内の最下位バ イ ト か ら 最上位バ イ ト ま でが、 メ モ リ 内のア ド レ ス の昇
順に保存 さ れ る バ イ ト 配列方式。
ビ ッ グエ ンデ ィ ア ン と エ ンデ ィ ア ン形式 も 参照。
リ ト ルエ ンデ ィ ア ン メ モ リ
次の条件を満たす メ モ リ を指 し ます。
•
ワー ド ア ラ イ ン さ れた ア ド レ ス のバ イ ト ま たはハーフ ワー ド が、 そのア ド レ ス
にあ る ワー ド 内の最下位のバ イ ト ま たはハーフ ワー ド であ る 。
•
ハーフ ワー ド ア ラ イ ン さ れた ア ド レ ス のバ イ ト が、 そのア ド レ ス にあ る ハーフ
ワー ド 内の最下位バ イ ト であ る。
ビ ッ グエ ンデ ィ ア ン メ モ リ も 参照。
ロー ド / ス ト アアーキテ ク チ ャ
デー タ 処理操作が、 メ モ リ の内容に対 し て直接ではな く 、 レ ジ ス タ の内容に対 し て
のみ行われ る プ ロ セ ッ サアーキテ ク チ ャ 。
ロー ド ス ト ア ユニ ッ ト (LSU)
プ ロ セ ッ サで、 ロ ー ド / ス ト ア転送を処理す る 部分。
LSU
ロ ー ド ス ト ア ユニ ッ ト 参照。
マ ク ロ セル
イ ン タ フ ェース と 動作が定義 さ れた複合論理ブ ロ ッ ク 。 一般的な VLSI シ ス テ ムは、
複数のマ ク ロ セル (プ ロ セ ッ サ、 ETM、 メ モ リ ブ ロ ッ ク な ど) と 、 特定用途の論理
回路で構成 さ れます。
メ モ リ コ ヒ ーレ ン シ
メ モ リ は、 デー タ 読み出 し ま たは命令フ ェ ッ チに よ っ て読み出 さ れた値が、 最後に
その位置に書 き 込まれた値 と 一致 し ていれば、 コ ヒ ーレ ン ト です。 メ モ リ コ ヒ ーレ
ン シは、 メ イ ン メ モ リ 、 ラ イ ト バ ッ フ ァ 、 キ ャ ッ シ ュ を搭載 し たシ ス テ ムの よ う に、
対応す る 物理位置が複数存在す る 場合には、 実現が難 し く な り ます。
メ モ リ 保護ユニ ッ ト (MPU)
メ モ リ ブ ロ ッ ク に対す る ア ク セ ス許可を制御す る ハー ド ウ ェ ア。 MMU と は異な り 、
MPU はア ド レ ス を変更 し ません。
マイ ク ロプロセ ッサ
ARM DDI 0439CJ
ID050813
プ ロ セ ッ サ参照。
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
Glossary-6
用語集
モニ タ デバ ッ グモー ド
互いに排他な 2 つのデバ ッ グモー ド の う ちの 1 つ。 モニ タ デバ ッ グモー ド では、 プ
ロ セ ッ サは、 デバ ッ グモニ タ ま たはオペレーテ ィ ン グ シ ス テ ムのデバ ッ グ タ ス ク で
提供 さ れ る ソ フ ト ウ ェ ア アボー ト ハン ド ラ を稼働 し ます。 こ れに よ っ て、 ブ レー ク
ポ イ ン ト ま たは ウ ォ ッ チポ イ ン ト に遭遇 し て、 通常のプ ロ グ ラ ム実行が中断 し てい
る 間であ っ て も 、 重要なシ ス テ ム割 り 込みの処理を継続で き ます。
ホール ト モー ド も 参照。
MPU
メ モ リ 保護ユニ ッ ト 参照。
マルチ レ イヤ
ク ロ ス バース イ ッ チに似た相互接続方式。 相互接続の各マ ス タ には、 それぞれの ス
レーブへの直接 リ ン ク があ り 、 こ の リ ン ク は他のマ ス タ と は共有 さ れません。 こ れ
に よ っ て、 各マ ス タ は他のマ ス タ と 並列に転送を処理で き ます。 マルチレ イ ヤ相互
接続での競合は、 ペ イ ロ ー ド の宛先、 通常は ス レーブでのみ発生 し ます。
ネス ト 型ベ ク タ 割 り 込みコ ン ト ロー ラ (NVIC)
プ ロ セ ッ サに、 構成可能な割 り 込み処理機能を提供 し ます。
NMI
マ ス ク 不能割 り 込み参照。
マス ク不能割 り 込み
マ ス ク 不能割 り 込み (NMI) は、 ペ リ フ ェ ラ ルか ら の信号か、 ソ フ ト ウ ェ アに よ っ て
ト リ ガ さ れます。 こ れは、 リ セ ッ ト を除いて最 も 優先度の高い例外です。 こ の割 り
込みは常時有効で、 優先度は - 2 に固定 さ れてい ます。 NMI に対 し て、 次の動作は行
え ません。
•
他の例外に よ っ てマ ス ク す る 、 ま たは起動 し ない よ う にす る 。
•
リ セ ッ ト 以外の例外に よ っ て横取 り す る 。
NVIC
ネ ス ト 型ベ ク タ 割 り 込み コ ン ト ロ ー ラ 参照。
ペナルテ ィ
命令フ ロ ーが仮定ま たは予想 と 異な る ため、 実行ス テージの有効なパ イ プ ラ イ ン動
作が発生 し ないサ イ ク ル数。
PFU
プ リ フ ェ ッ チユニ ッ ト 参照。
PMU
電力管理ユニ ッ ト 参照。
電力管理ユニ ッ ト (PMU)
プ ロ セ ッ サに電力管理機能を提供 し ます。
パワーオ ン リ セ ッ ト
コ ール ド リ セ ッ ト 参照。
PPB
専用ペ リ フ ェ ラ ルバ ス 参照。
プリ フェ ッチ
パ イ プ ラ イ ン処理のプ ロ セ ッ サで、 先行す る命令の実行が完了す る 前に、 その後の
命令を メ モ リ か ら フ ェ ッ チ し てパ イ プ ラ イ ンに送 り 込む処理。 プ リ フ ェ ッ チ さ れた
命令は、 必ず実行 さ れ る と は限 り ません。
プ リ フ ェ ッ チアボー ト
メ モ リ の不正な位置か ら 命令が フ ェ ッ チ さ れた こ と を、 メ モ リ シ ス テ ムか ら コ アへ
通知す る こ と 。 プ ロ セ ッ サがその命令を実行 し よ う と し た場合、 例外を引 き 起 こ す
必要があ り ます。 プ リ フ ェ ッ チアボー ト は、 無効な命令 メ モ リ へのア ク セ ス を試み
た結果 と し て、 外部ま たは内部の メ モ リ シ ス テ ムに よ り 引 き 起 こ さ れ る可能性があ
り ます。
デー タ アボー ト 、 アボー ト も 参照。
プ リ フ ェ ッ チユニ ッ ト (PFU)
PFU は、 サ イ ク ルご と に 1 ワー ド を供給可能な メ モ リ シ ス テ ムか ら 命令を フ ェ ッ チ
し ます。 PFU は 3 ワ ー ド ま での フ ェ ッ チを FIFO にバ ッ フ ァ で き ます。 つま り 、 最大
3 つの 32 ビ ッ ト Thumb 命令、 ま たは 6 つの 16 ビ ッ ト Thumb 命令をバ ッ フ ァ する こ
と がで き ます。
~ 0xE00FFFFF の メ モ リ 空間。
専用ペ リ フ ェ ラルバス
0xE0000000
プロセ ッサ
コ ン ピ ュ ー タ 命令を使用 し てデー タ を処理す る ために必要な、 コ ン ピ ュー タ シ ス テ
ムの回路。 プ ロ セ ッ サは、 マ イ ク ロ プ ロ セ ッ サの略称です。 完全に機能す る 最小の
コ ン ピ ュ ー タ シ ス テ ム を作成す る には、 ク ロ ッ ク ソ ース、 電源、 メ イ ン メ モ リ も 必
要です。
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
Glossary-7
用語集
RW1C
RW1C にマー ク さ れてい る レ ジ ス タ の ビ ッ ト は、 通常に読み出す こ と がで き、 「1 を
書 き込んで ク リ ア」 をサポー ト し てい ます。 レ ジ ス タ を読み出 し てか ら 結果を レ ジ
ス タ へ書 き戻す と 、 セ ッ ト さ れてい るすべてのビ ッ ト が ク リ ア さ れます。 RW1C は、
読み出 し - 変更 - 書 き込み時に、 レ ジ ス タ の読み出 し と 値の書 き 戻 し と の間で ビ ッ ト
がセ ッ ト さ れた場合にエ ラ ーが発生す る こ と を防止 し ます (その ビ ッ ト は 0 と し て
書 き込ま れ る ため、 ク リ ア さ れません)。
RealView ICE
JTAG イ ン タ フ ェース を使用 し て、 組み込みプ ロ セ ッ サ コ ア をデバ ッ グす る ためのシ
ス テ ム。
予約
制御レ ジ ス タ ま たは命令の形式に含ま れてい る フ ィ ール ド が実装で定義 さ れ る、 ま
たは 0 ではない場合に予測不能な結果が引 き起 こ さ れ る 場合、 そのフ ィ ール ド は予
約 と 記載 さ れてい ます。 こ れ ら の フ ィ ール ド は、 アーキ テ ク チ ャ の将来の拡張に備
えて予約 さ れてい る 場合 と 、 実装固有の場合があ り ます。 実装で使用 さ れないすべ
ての予約ビ ッ ト は、 0 と し て読み書 き する 必要があ り ます。
スキ ャ ン チ ェ イ ン
ス キ ャ ンチ ェ イ ンはシ リ アル接続 さ れたデバ イ ス で構成 さ れ、 標準の JTAG TAP イ
ン タ フ ェース を使用 し てバ ウ ン ダ リ ス キ ャ ン技術を実装 し てい ます。 各デバ イ ス に
は少な く と も 1 つの TAP コ ン ト ロ ー ラ があ り 、 TDI と TDO と の間の接続チ ェ イ ン
を形成す る シ フ ト レ ジ ス タ を搭載 し てい ます。 こ のチ ェ イ ン を通 し て、 テ ス ト デー
タ がシ フ ト さ れます。 プ ロ セ ッ サには数個のシ フ ト レ ジ ス タ を搭載で き る ため、 デ
バ イ ス の選択 し た部分にア ク セ ス で き ます。
シ リ アルワ イヤ デバ ッ グポー ト
DAP 用のオプシ ョ ンの外部 イ ン タ フ ェース で、 シ リ アル ワ イ ヤの双方向デバ ッ グ イ
ン タ フ ェース を提供 し ます。
シ リ アルワ イヤ JTAG デバ ッ グポー ト
JTAG-DP と SW-DP を組み合わせた、 標準のデバ ッ グ ポー ト 。
SW-DP
シ リ アル ワ イ ヤ デバ ッ グポー ト 参照。
SWJ-DP
シ リ アル ワ イ ヤ JTAG デバ ッ グ ポー ト 参照。
同期化基本命令
メ モ リ 同期化基本命令は、 メ モ リ の同期を保証す る ために使用 さ れ る 命令です。
LDREX お よ び STREX 命令が該当 し ます。
シス テム メ モ リ
0x20000000
TAP
~ 0xFFFFFFFF の メ モ リ 空間、 ただ し 、 0xE0000000 ~ 0xE00FFFFF の PPB 空間は除
外 さ れます。
テ ス ト ア ク セ ス ポー ト 参照。
テス ト ア ク セスポー ト (TAP)
JTAG バ ウ ン ダ リ ス キ ャ ン アーキ テ ク チ ャ の入出力 イ ン タ フ ェース と 制御 イ ン タ
フ ェース を構成す る 、 4 つの必須端子 と 1 つのオプシ ョ ン端子の集合。 必須端子は
TDI、 TDO、 TMS、 TCK です。 オプシ ョ ン端子は TRST です。 こ の信号はデバ ッ グ
ロ ジ ッ ク の リ セ ッ ト に使用 さ れ る ため、 ARM コ アでは必須です。
ス レ ッ ド 制御ブ ロ ッ ク
オペレーテ ィ ン グ シ ス テ ムのカーネルが、 実行中の 1 つの ス レ ッ ド に固有の情報を
保持す る ために使用す るデー タ 構造。
Thumb 命令
ARM プ ロ セ ッ サが Thumb 状態で実行す る 動作を指定す る ハーフ ワ ー ド 。 Thumb 命
令は、 ハーフ ワー ド ア ラ イ ン ド の必要があ り ます。
Thumb 状態
Thumb (16 ビ ッ ト ) ハーフ ワー ド ア ラ イ ン ド 命令を実行 し てい る プ ロ セ ッ サは、
Thumb 状態で動作 し てい ます。
TPA
ト レース ポー ト アナ ラ イ ザ参照。
TPIU
ト レース ポー ト イ ン タ フ ェ ース ユニ ッ ト 参照。
ト レースポー ト アナ ラ イザ (TPA)
ト レース ポー ト に出力 さ れ る ト レース情報を キ ャ プチ ャす る ハー ド ウ ェ アデバ イ ス。
ト レース の取得、 ま たは ロ ジ ッ ク アナ ラ イ ザ と し て使用す る 目的に設計 さ れた、 低
コ ス ト の製品 と す る こ と がで き ます。
ARM DDI 0439CJ
ID050813
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
Glossary-8
用語集
ト レースポー ト イ ン タ フ ェ ースユニ ッ ト (TPIU)
ト レースデー タ を出力 し 、 オ ンチ ッ プの ト レースデー タ と 、 TPA に よ り キ ャ プチ ャ
さ れ る デー タ ス ト リ ーム と の間のブ リ ッ ジ と し て機能 し ます。
アンアラ イ ン ド
デー タ サ イ ズ を定義す る バ イ ト 数で割 り 切れないア ド レ ス に保存 さ れてい る デー タ
項目を、 ア ン ア ラ イ ン ド ま たはア ラ イ ン し ていない と 呼びます。 例えば、 4 で割 り 切
れないア ド レ ス に保存 さ れてい る ワー ド はア ン ア ラ イ ン ド です。
ウ ェ ー ク ア ッ プ割 り 込みコ ン ト ロー ラ (WIC)
ウ ェー ク ア ッ プ割 り 込み コ ン ト ロ ー ラ に よ り 、 割 り 込み検出お よ び優先度付け ロ
ジ ッ ク のゲー ト 数を大幅に削減で き ます。
ウ ォ ーム リ セ ッ ト
コ ア リ セ ッ ト と 呼ばれ る こ と も あ り ます。 デバ ッ グ コ ン ト ロ ー ラ と デバ ッ グ ロ ジ ッ
ク を除 く 、 プ ロ セ ッ サの大部分を初期化 し ます。 こ の種類の リ セ ッ ト は、 プ ロ セ ッ
サのデバ ッ グ機能を使用 し てい る 場合に便利です。
ウ ォ ッ チポ イ ン ト
ウ ォ ッ チポ イ ン ト は、 デバ ッ ガで提供 さ れてい る 機構で、 特定の メ モ リ ア ド レ ス に
保存 さ れてい る デー タ が変更 さ れた と き にプ ロ グ ラ ムの実行を停止 し ます。 プ ロ グ
ラ マは、 ウ ォ ッ チポ イ ン ト を挿入す る こ と に よ っ て、 メ モ リ が書 き 込ま れた と き の
レ ジ ス タ の内容、 メ モ リ の位置、 変数の値を検査 し て、 プ ロ グ ラ ムが正常に動作 し
てい る かど う かを テ ス ト で き ます。 プ ロ グ ラ ムのテ ス ト が完了 し た後で、 ウ ォ ッ チ
ポ イ ン ト は削除 さ れます。 ブ レー ク ポ イ ン ト も 参照。
WIC
ウ ェー ク ア ッ プ割 り 込み コ ン ト ロ ー ラ 参照。
ワー ド
32 ビ ッ ト のデー タ 項目。
ワー ド 不変
ワー ド 不変シ ス テ ムでは、 リ ト ルエ ンデ ィ ア ン動作 と ビ ッ グエ ンデ ィ ア ン動作 と の
切 り 替え時に、 各 メ モ リ バ イ ト のア ド レ ス が変更 さ れます。 こ れに よ っ て、 一方の
エ ンデ ィ ア ン形式でア ド レ ス A が割 り 当て ら れたバ イ ト は、 他方のエンデ ィ ア ン形
式ではア ド レ ス A EOR 3 が割 り 当て ら れます。 こ のため、 メ モ リ のア ラ イ ン さ れた
ワー ド は、 エンデ ィ ア ン形式に関係な く 、 常に メ モ リ 上の同 じ 4 バ イ ト に同 じ 順序
で構成 さ れます。 エンデ ィ ア ン形式の変更は、 バ イ ト 配列が変わ る ためではな く 、
バ イ ト ア ド レ ス が変更 さ れ る ために発生 し ます。
ARM アーキテ ク チ ャ では、 ARMv3 お よ びそれ以降のバージ ョ ンで ワ ー ド 不変シ ス
テ ムがサポー ト さ れてい ます。 ワ ー ド 不変のサポー ト が選択 さ れてい る場合、 ア ン
ア ラ イ ン ド ア ド レ ス が指定 さ れた ロ ー ド / ス ト ア命令の動作は命令に よ っ て異な り 、
通常は、 ア ン ア ラ イ ン ド ア ク セ ス に対 し て予測 さ れ る 動作にはな り ません。 ワー ド
不変シ ス テ ムでは、 エ ンデ ィ ア ン形式が設定 さ れ る前の リ セ ッ ト ハン ド ラ の冒頭部
分を除 き 、 常に期待どお り のバ イ ト ア ド レ ス が生成 さ れ る エンデ ィ ア ン形式を使用
す る こ と をお勧め し ます。 リ セ ッ ト ハン ド ラ の冒頭部分では、 ア ラ イ ン し た ワー ド
メ モ リ ア ク セ ス のみを使用する 必要があ り ます。
バ イ ト 不変 も 参照。
ラ イ ト バッ フ ァ
ARM DDI 0439CJ
ID050813
書 き込みデー タ をバ ッ フ ァ し 、 バ ス の ス ト ールに よ っ てプ ロ セ ッ サが ス ト ールす る
こ と を防止す る ためのパ イ プ ラ イ ン ス テージ。
Copyright © 2009, 2010 ARM Limited. All rights reserved.
Non-Confidential
Glossary-9