122
© 2013 Microchip Technology Inc. Preliminary DS61192A_JP - p. 50-1 microAptiv™ コア 採用デバイスの CPU 50 セクション 50. microAptiv™ コア採用デバイスの CPU ハイライト 本セクションには以下の主要項目を記載しています。 50.1 はじめに ................................................................................................................. 50-2 50.2 アーキテクチャの概要 ............................................................................................ 50-4 50.3 PIC32 CPU の詳細 ................................................................................................. 50-7 50.4 CP0 レジスタに書き込む場合の注意点 ................................................................ 50-12 50.5 アーキテクチャ リリース 2 の詳細 ...................................................................... 50-13 50.6 CPU バス .............................................................................................................. 50-13 50.7 内部システムバス ................................................................................................. 50-14 50.8 セット / クリア / 反転 ........................................................................................... 50-14 50.9 ALU ステータスビット ......................................................................................... 50-15 50.10 割り込みおよび例外機構 ...................................................................................... 50-15 50.11 プログラミング モデル ......................................................................................... 50-15 50.12 コプロセッサ 0 (CP0) レジスタ ........................................................................... 50-22 50.13 microMIPS™ の実行 ............................................................................................. 50-95 50.14 MCU™ ASE 拡張 .................................................................................................. 50-95 50.15 MIPS ® DSP ASE 拡張 .......................................................................................... 50-96 50.16 メモリモデル (microAptiv™ MCU 専用 ) .............................................................. 50-96 50.17 メモリ管理 (microAptiv™ MPU 専用 ) .................................................................. 50-98 50.18 L1 キャッシュ (microAptiv™ MPU 専用 ) ........................................................... 50-104 50.19 CPU 命令 ............................................................................................................ 50-108 50.20 MIPS ® DSP ASE 命令 ........................................................................................ 50-114 50.21 CPU の初期化 ..................................................................................................... 50-116 50.22 リセットの影響 .................................................................................................. 50-117 50.23 関連アプリケーション ノート ............................................................................ 50-118 50.24 改訂履歴 ............................................................................................................. 50-118 注意 : この日本語版文書は参考資料としてご利用ください。最新情報は必ずオリジ ナルの英語版をご参照願います。

セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

注意 : この日本語版文書は参考資料としてご利用ください。 新情報は必ずオリジナルの英語版をご参照願います。

セクション 50. microAptiv™ コア採用デバイスの CPU

micro

Ap

tiv™コ

ア採

用デ

バイ

スの

CP

U

50

ハイライト

本セクションには以下の主要項目を記載しています。

50.1 はじめに ................................................................................................................. 50-2

50.2 アーキテクチャの概要 ............................................................................................ 50-4

50.3 PIC32 CPU の詳細 ................................................................................................. 50-7

50.4 CP0 レジスタに書き込む場合の注意点 ................................................................ 50-12

50.5 アーキテクチャ リリース 2 の詳細 ...................................................................... 50-13

50.6 CPU バス .............................................................................................................. 50-13

50.7 内部システムバス ................................................................................................. 50-14

50.8 セット / クリア / 反転 ........................................................................................... 50-14

50.9 ALU ステータスビット ......................................................................................... 50-15

50.10 割り込みおよび例外機構 ...................................................................................... 50-15

50.11 プログラミング モデル ......................................................................................... 50-15

50.12 コプロセッサ 0 (CP0) レジスタ ........................................................................... 50-22

50.13 microMIPS™ の実行 ............................................................................................. 50-95

50.14 MCU™ ASE 拡張 .................................................................................................. 50-95

50.15 MIPS® DSP ASE 拡張 .......................................................................................... 50-96

50.16 メモリモデル (microAptiv™ MCU 専用 ) .............................................................. 50-96

50.17 メモリ管理 (microAptiv™ MPU 専用 ) .................................................................. 50-98

50.18 L1 キャッシュ (microAptiv™ MPU 専用 ) ........................................................... 50-104

50.19 CPU 命令 ............................................................................................................ 50-108

50.20 MIPS® DSP ASE 命令 ........................................................................................ 50-114

50.21 CPU の初期化 ..................................................................................................... 50-116

50.22 リセットの影響 .................................................................................................. 50-117

50.23 関連アプリケーション ノート ............................................................................ 50-118

50.24 改訂履歴 ............................................................................................................. 50-118

© 2013 Microchip Technology Inc. Preliminary DS61192A_JP - p. 50-1

Page 2: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

PIC32 ファミリ リファレンス マニュアル

50.1 はじめに PIC32 は、MIPS® Technologies, Inc. の microAptiv™ マイクロプロセッサ コアに基づく SoC(System-on-Chip) です。本書は、CPU システム アーキテクチャの概要と microAptiv™ マイクロプロセッサ コアを採用した PIC32 マイクロコントローラの機能について説明します。

microAptiv™マイクロプロセッサ コアは、MIPS® M14KE™およびM14KEc™マイクロプロセッサ コアのスーパーセットです。これらのコアは、拡張 MIPS32® リリース 2 命令セットアーキテクチャ (ISA) を備える 先端の 32 ビット低消費電力 RISC プロセッサです。これらのマイクロプロセッサ コアの詳細は、MIPS® Technologies, Inc. のウェブサイト (www.mips.com) でご覧になれます。

PIC32 には、表 50-1 に示す 2 種類の microAptiv™ コア コンフィグレーション (MCU またはMPU) が存在し、どちらを採用しているかはデバイスによって異なります。

表 50-1: microAptiv™ マイクロプロセッサ コアのコンフィグレーション

両者間の大きな違いは、microAptiv™ MPU のみ L1 キャッシュと TLB ベースの MMU を実装している事です。これらの機能を使う事で、オペレーティング システムを使って仮想メモリを管理する PIC32 アプリケーションを容易に設計できます。

Note: ファミリ リファレンス マニュアルの本セクションは、デバイス データシートの補足を目的としています。本書の内容は PIC32 ファミリの一部のデバイスには対応していません。

本書の内容がお客様のご使用になるデバイスに対応しているかどうかは、 新デバイス データシート内の「CPU」の冒頭に記載している注意書きでご確認ください。

デバイス データシートとファミリ リファレンス マニュアルの各セクションは、Microchip 社のウェブサイト (http://www.microchip.com) でご覧になれます。

MCU 機能 MPU 機能

スプリットバス アーキテクチャ ユニファイドバス アーキテクチャ

DSP ASE を内蔵 DSP ASE を内蔵

MCU™ ASE を内蔵 MCU ASE を内蔵

microMIPS™ コード圧縮 microMIPS コード圧縮

FMT ベースの MMU TLB ベースの MMU

2 個のシャドーレジスタ 8 個のシャドーレジスタ

EJTAG TAP コントローラ EJTAG TAP コントローラ

パフォーマンス カウンタ パフォーマンス カウンタ

ハードウェア トレース (iFlowtrace®) ハードウェア トレース (iFlowtrace)

レベル 1 (L1) CPU キャッシュ

DS61192A_JP - p. 50-2 Preliminary © 2013 Microchip Technology Inc.

Page 3: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

セクション 50. microAptiv™ コア採用デバイスの CPUm

icroA

ptiv™

コア

採用

デバ

イス

のC

PU

50

50.1.1 microAptiv™ マイクロプロセッサ コア採用 PIC32 デバイスの全てに共通する主な特長

以下の特長は、microAptiv™ マイクロプロセッサ コアを採用した全ての PIC32 デバイスに共通する特長です。

• コードをコンパクトにする microMIPS™ 可変長命令モード

• 大 256 個の割り込み要因を備えたベクタ割り込みコントローラ

• 周辺モジュール レジスタのアトミックなビット操作 ( シングルサイクル )

• ハードウェアベースの非侵入型データ監視機能とアプリケーション データ ストリーミング機能を備えた高速 Microchip ICD ポート

• サードパーティ製デバッグ、プログラミング、テスト用ツールに幅広く対応する EJTAG デバッグポート

• 命令による電源管理モードの制御

• 5 段の命令実行パイプライン

• 内部コード保護機能による知的財産保護の強化

• 算術飽和 / オーバーフロー処理をサポート

• ゼロサイクル オーバーヘッドの飽和 / 丸め処理

• アトミックなメモリ - メモリ間「読み出し - 変更 - 書き込み」命令

• 大 4 個のアキュムレータを使う MAC 命令

• 小数データ型 (Q15, Q31) ( 丸め処理含む ) をネイティブでサポート

• デジタル信号処理 (DSP) ASE (Application-Specific Extension) リビジョン 2 を採用する事でDSP 能力を強化し、データ処理演算を強力にサポート

• 速で毎クロック 1 回の 32x32 乗算が可能な乗除算ユニット

50.1.2 MIPS® 関連の文書

下の関連文書は、MIPS Technologies, Inc. のウェブサイト (www.mips.com) からダウンロードできます。これらの文書にアクセスするにはログインが必要です。

• MIPS® Instruction Set – MD00086-2B-MIPS32BIS-AFP

• microMIPS32™ Instruction Set – MD00582-2B-microMIPS-AFP

• MIPS32® Privileged Resource Architecture – MD00090-2B-MIPS32PRA-AFP

• MCU Application Specific Extension to the MIPS32® and microMIPS32™ Architectures –MD00641-1C-MUCON-AFP

• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS® DSP Application-SpecificExtension to the MIPS32® Architecture – MD00374, Revision 2.34, May 6, 2011

• MIPS® Architecture for Programmers VolumeIV-e:The MIPS® DSP Application-SpecificExtension to the microMIPS32™ Architecture

Note: microAptiv™ マイクロプロセッサ コアの 新版ソフトウェア ユーザマニュアルは、MIPS® Technologies, Inc. ウェブサイトでご覧ください。

© 2013 Microchip Technology Inc. Preliminary DS61192A_JP - p. 50-3

Page 4: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

PIC32 ファミリ リファレンス マニュアル

50.2 アーキテクチャの概要

PIC32 ファミリのデバイスは、豊富な機能を備えた複合型 SoC です。PIC32 ファミリの全てのプロセッサは高性能な RISC CPU を実装し、32 ビットモードおよび 16 ビットモードでプログラミング可能です ( 両方のモードを混用する事も可能 )。PIC32 は、高性能割り込みコントローラ、DMA コントローラ、USB コントローラ、インサーキット デバッガユニット、高性能スイッチング マトリクス ( 周辺モジュールへの高速なデータアクセスを提供 )、内蔵データ RAM( データとプログラムを保持 ) を備えます。フラッシュメモリ用にプリフェッチ キャッシュとプリフェッチ バッファをオプションで備える事により、フラッシュのレイテンシを隠し、ゼロ待機ステートに等価な性能を提供します。

図 50-1: PIC32 のブロック図

JTAG/BSCANPriority Interrupt

Controller LDO VREG

DMAC ICDPIC32 CPU

System Bus

Prefetch Cache Data RAM

Peripheral

Flash Memory

Fla

sh C

ontr

olle

r

Clock Control/ Generation Reset Generation

PMP/PSP

PORTS

ADC

RTCC

Timers

Input Capture

PWM/OutputCompare

Comparators

SSP/SPI

I2C™

UART

128-bit

USB

Bridge

CAN

Motor ControlPWM

DAC

CTMU

ETH

Note: この図は一般例です。図中の機能と周辺モジュールが実際に利用可能かどうかは、お使いに

なるデバイスのデータシートに記載されている「デバイス概要」を参照してください。

DS61192A_JP - p. 50-4 Preliminary © 2013 Microchip Technology Inc.

Page 5: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

セクション 50. microAptiv™ コア採用デバイスの CPUm

icroA

ptiv™

コア

採用

デバ

イス

のC

PU

50

PIC32 の周辺モジュールは、システムバスと一連の内部バスを介して CPU に接続されます。メイン周辺モジュールバスは、大部分の周辺モジュール ユニットを、1 つまたは複数の周辺ブリッジ経由でシステムバスに接続します。

PIC32 の CPU は、プログラムによる制御の下に演算を実行します。命令は CPU によってフェッチされ、クロックに同期してデコードおよび実行されます。命令はプログラム フラッシュメモリまたはデータ RAM のどちらかに格納されます。加えて、microAptiv™ コアを採用した PIC32は MIPS DSP ASE リビジョン 2 を実装し、各種の強力なデータ処理演算をサポートする DSP能力を提供します。

PIC32 CPU はロード / ストア アーキテクチャに基づき、一連の内部レジスタを使ってほとんどの演算を実行します。これらの内部レジスタ間のデータ移動および外部とのデータ移動には、専用のロード命令とストア命令を使います。

図 50-2: microAptiv™ マイクロプロセッサ コアのブロック図

SystemCoprocessor

MDU(Enhanced MDU with

DSP ASE)

L1 DataCache(2)

MMU(FMT or TLB(1))

TAP

EJTAG

PowerManagement

Off-Chip Debug I/F

Execution Core(RF/ALU/Shift, DSP ASE)

On-

Chi

p M

em

ory

Trace

Off-Chip Trace I/F

MemoryInterface Dual Memory

I/F

Note 1: TLB は、microAptiv™ MPU マイクロプロセッサ コア採用デバイスにのみ実装されています。

2: レベル 1 (L1) キャッシュは、microAptiv™ MPU マイクロプロセッサ コア採用デバイスにのみ実装されています。

L1InstructionCache(2)

© 2013 Microchip Technology Inc. Preliminary DS61192A_JP - p. 50-5

Page 6: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

PIC32 ファミリ リファレンス マニュアル

50.2.1 バス

全ての PIC32 デバイスは、システムバスを使って CPU 等のバスマスタをメモリ等のターゲット デバイスに接続します。システムバスは、複数のバスマスタとターゲット間のアクセスを制御および調停します。PIC32 のシステムバスのタイプとバス アーキテクチャは、デバイスが採用している microAptiv™ CPU コアのタイプ (MCU または MPU) によって異なります。

microAptiv™ MCU マイクロプロセッサを採用した PIC32 デバイスは、スプリットバス CPUアーキテクチャを備えます。このアーキテクチャでは、命令のフェッチとデータのロード / ストアに別々のバスを使います。命令バス (I バス ) とデータバス (D バス ) はどちらもシステムバスに接続されています。システムバスは、複数のバスマスタからそれぞれ異なるターゲットへの同時アクセスを可能にし、調停アルゴリズムを使って複数のマスタから同一ターゲットへのアクセスをシリアル化します。CPU は、システムバスに接続した 2 つの異なるデータ経路を有するため、システムに対して実質的に 2 つの異なるバスマスタとして機能します。フラッシュメモリから命令を実行する場合、SRAM と内部周辺モジュールに対するロードおよびストア動作は、フラッシュメモリからの命令フェッチと並列に発生します。

microAptiv™ MPU コアを採用した PIC32 デバイスは、ユニファイドバス CPU アーキテクチャとマルチレイヤ ( クロスバー ) システムバスを備えます。このアーキテクチャでは、CPU は 1 本のバスを介してシステムバスに接続されます。システムバスは、専用のリンクを使う事で、バス イニシエータとターゲット間に複数の独立したデータ経路を提供します。これにより、バス上での同時データ転送を可能としています。

PIC32 のバージョンによって異なりますが、CPU に加えて下記もデバイス内でバスマスタとして機能します。

• DMA コントローラ

• インサーキット デバッガ (ICD)• USB コントローラ

• CAN コントローラ

• Ethernet コントローラ

50.2.2 コアタイマ

PIC32 アーキテクチャは、アプリケーション プログラムから利用できるコアタイマを備えています。このタイマは、2 個のコプロセッサ レジスタ (Count レジスタと Compare レジスタ ) の形態で実装されています。Count レジスタは、システムクロック (SYSCLK) の 2 サイクルごとにインクリメントします。オプションを選択する事で、デバッグモード中に Count レジスタのインクリメントを中止できます。Compare レジスタは、タイマ割り込みを生成するために使います。Compare レジスタの内容が Count レジスタの内容に一致すると、割り込みが生成されます。割り込みは、割り込みコントローラ内で有効にされている場合にのみ処理されます。

コアタイマの詳細は、本書の 50.12「コプロセッサ 0 (CP0) レジスタ」と、『PIC32 ファミリ リファレンス マニュアル、セクション 08. 割り込み』(DS61108) を参照してください。

Note: システムバスの詳細は、各デバイス データシート内の「メモリ構成」と、『PIC32 ファミリ リファレンス マニュアル、セクション 03. メモリ構成』(DS61115) を参照してください。

DS61192A_JP - p. 50-6 Preliminary © 2013 Microchip Technology Inc.

Page 7: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

セクション 50. microAptiv™ コア採用デバイスの CPUm

icroA

ptiv™

コア

採用

デバ

イス

のC

PU

50

50.3 PIC32 CPU の詳細

50.3.1 パイプライン段

パイプラインは下記の 5 段で構成されます。

• 命令 (I) 段

• 実行 (E) 段

• メモリ (M) 段

• アライン (A) 段

• 書き戻し (W) 段

50.3.1.1 I 段 – 命令フェッチ

I 段の動作は下記の通りです。

• 命令 SRAM から 1 個の命令をフェッチする

• microMIPS™ 命令を MIPS32® の類似命令に変換する

50.3.1.2 E 段 – 実行

E 段の動作は下記の通りです。

• レジスタファイルからオペランドをフェッチする

• M および A 段からのオペランドをこの段にバイパスする

• 算術論理ユニット (ALU) は、レジスタ間命令の算術または論理演算を始める

• ALU はロードおよびストア命令用のデータ仮想アドレスを計算し、MMU は仮想アドレスから物理アドレスへの固定変換を実行する

• ALU は分岐条件の真偽を判定し、分岐命令の分岐先仮想アドレスを計算する

• 命令ロジックは命令アドレスを選択し、MMU は仮想アドレスから物理アドレスへの固定的な変換を実行する

• 全ての乗除演算はこの段で始まる

50.3.1.3 M 段 – メモリフェッチ

M 段の動作は下記の通りです。

• ALU による算術または論理演算が完了する

• ロードおよびストア命令のデータ SRAM アクセスを実行する

• 16 x 16 または 32 x 16 MUL 演算は配列内で完了し、M 段内で 1 クロック ストールし、M 段内でキャリー伝播加算を完了する

• 32 x 32 MUL 演算は、M 段内で 2 クロック ストールし、M 段内で配列の第 2 サイクルとキャリー伝播加算を完了する

• MDU で乗算と除算を実行し、IU が命令を M 段から移動する前に計算が完了した場合、IU が命令を A 段に移動するまでの間、MDU は結果をテンポラリ レジスタで保持する ( 結果は失われない )

50.3.1.4 A 段 – アライン

A 段の動作は以下の通りです。

• ロード用アライナは、ロードしたデータを、そのワード境界で位置合わせする

• MUL 演算は書き戻し可能な結果を生成する ( 実際のレジスタ書き戻しは W 段で実行 )

• この段からは、MDU からロードしたデータまたは結果を E 段へバイパスできる

© 2013 Microchip Technology Inc. Preliminary DS61192A_JP - p. 50-7

Page 8: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

PIC32 ファミリ リファレンス マニュアル

50.3.1.5 W 段 – 書き戻し

W 段の動作は以下の通りです。

レジスタ間命令またはロード命令の結果をレジスタファイルに書き戻す

microAptiv™ マイクロプロセッサ コアは「バイパス」機構を備えています。この機構により、演算結果を一旦レジスタに書き込んでから読み戻すといった動作を経ずに、その演算結果を必要としている別の命令に直接渡す事ができます。

図 50-3: PIC32 CPU パイプラインの概要図

PIC32 コア内の命令パイプラインを使う事で、高速なシングルサイクル命令実行環境が実現します。

図 50-4: シングルサイクル実行スループット

I STAGE E STAGE M Stage

A TO E BYPASS

M to E Bypass

A STAGE W Stage

LOAD DATA, HI/LO DATAor CP0 Data

ALUMStage

ALU

EStage

BypassMultiplexers

Rt ReadRd Write

Reg File

Rt Address

Rs Read

Rs Address

Instruction

EI ? A Ω

EI ? A Ω

EI ? A Ω

EI ? A Ω

EI ? A Ω

OneCycle

OneCycle

OneCycle

OneCycle

OneCycle

OneCycle

OneCycle

OneCycle

OneCycle

DS61192A_JP - p. 50-8 Preliminary © 2013 Microchip Technology Inc.

Page 9: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

セクション 50. microAptiv™ コア採用デバイスの CPUm

icroA

ptiv™

コア

採用

デバ

イス

のC

PU

50

50.3.2 実行ユニット

PIC32 の実行ユニットは、MIPS 命令セットの大部分の命令の処理を受け持ちます。実行ユニットは、パイプライン化された実行により、大部分の命令にシングルサイクル スループットを提供します。パイプライン化された実行は「パイプライン処理」とも呼ばれ、複雑な演算を複数の「段」に細分化します。一連の処理段は、複数クロックサイクルにまたがって実行されます。

実行ユニットは下記の機能を備えます。

• 32 ビット加算器 - データアドレスの計算に使用

• アドレスユニット - 次の命令アドレスの計算に使用

• ロジック - 分岐の条件判定と分岐先アドレスの計算に使用

• ロード用アライナ

• バイパス マルチプレクサ - データを生成する命令の直後にその結果を使う命令が続く場合に、ストールを回避するために使用

• 先頭 0/1 検出ユニット - CLZおよび CLO命令の実装に使用

• 算術論理ユニット (ALU) - ビットワイズ演算の実行に使用

• シフタとストア用アライナ

50.3.3 乗除算ユニット (MDU)

MDU( 乗除算ユニット ) は乗除演算を実行します。MDU は 32 x 16 乗算器、結果累積レジスタ(HI と LO)、乗算および除算ステートマシンと、これらの機能の実行に必要な全てのマルチプレクサおよび制御ロジックにより構成されます。パイプライン化された高性能 MDU は、1 クロックに 1 回の 16 x 16 または 32 x 16 乗算演算を実行できます。32 x 32 乗算演算は 1 クロックおきに 1 回発行できます。連続した 32 x 32 乗算演算の発行をストールするために、適切なインターロックを実装しています。除算演算は、クロックあたり 1 ビットの単純な繰り返しアルゴリズムを使って実装され、 悪条件では演算の完了に 35 クロック サイクルを要します。除算がまだ実行中である時に、後続の MDU命令の発行が試みられると、除算演算が完了するまでパイプライン ストールが発生します。

microAptiv™ マイクロプロセッサ コアは、追加の乗算命令として、MUL 命令を備えています。この命令は、乗算結果の下位 32 ビットを、HI/LO レジスタペアではなく指定されたレジスタファイルに格納します。この命令は、LO レジスタを使う場合に明示的に必要となる MFLO命令を不要とし、複数のデスティネーション レジスタをサポートする事で乗算演算のスループットを改善します。積和演算には MADD/MADDU命令、積差演算には MSUB/MSUBU命令を使います。MADD命令は、2 つのオペランドを乗算した後に、積を HI および LO レジスタの内容に加算します。同様に、MSUB 命令は、2 つのオペランドを乗算した後に、積を HI および LO レジスタの内容から減算します。MADD/MADDUおよび MSUB/MSUBU演算は、デジタルシグナル プロセッサ(DSP) アルゴリズムで一般的に使われます。

整数乗算、除算演算、DSP ASE 乗算命令の場合、MDU は別のパイプラインを使います。このパイプラインは整数ユニット (IU) パイプラインと並列に動作し、IU パイプラインがストールしてもこのパイプラインはストールしません。これにより、実行時間のかかる MDU 演算は、システムストールまたは他の整数ユニット命令(またはその両方)によって部分的にマスクできます。MDUは、毎サイクル 1 回の 32 x 32 乗算または積和演算の実行をサポートします。32 ビット除算演算は、12 ~ 38 クロックサイクルで実行されます。MDU は、HI/LO レジスタを使う各種のシフト命令と、DSP ASE で定義されている乗算命令も実装しています。

50.3.4 シャドーレジスタ セット

PIC32 プロセッサは、高優先度割り込み用に、汎用レジスタ (GPR) のコピーを 1 つまたは複数個実装しています。この追加のレジスタバンクは、シャドーレジスタ セットと呼びます。高優先度の割り込みが発生すると、プロセッサはソフトウェアからの介入なしで自動的にシャドーレジスタに切り換えます。これにより、割り込みハンドラにおけるオーバーヘッドが減少し、実効レイテンシが減少します。

シャドーレジスタ セットは、システム コプロセッサ (CP0) 内のレジスタと、CPU コアの外部にある割り込みコントローラ ハードウェアによって制御されます。

シャドーレジスタ セットの詳細は、『PIC32 ファミリ リファレンス マニュアル、セクション08. 割り込み』(DS61108) を参照してください。

© 2013 Microchip Technology Inc. Preliminary DS61192A_JP - p. 50-9

Page 10: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

PIC32 ファミリ リファレンス マニュアル

50.3.5 パイプラインのインターロック処理

データ依存性や、これに類似する外的条件が原因でパイプラインのいずれかの段で命令処理の進行が妨げられると、円滑なパイプラインフローが割り込まれます。パイプライン割り込みは、完全にハードウェアで処理されます。このような依存性を「インターロック」と呼びます。インターロック条件は、実行中の全ての命令で毎サイクル チェックされます。先行する命令の結果に依存する命令は、インターロック条件に該当する一例です。

一般的に、MIPS プロセッサは下記の 2 種類のハードウェア インターロックをサポートします。

• ストール - この種のインターロックは、パイプライン全体の一時的な中断により解決します。各パイプライン段で現在実行中の全ての命令がストールの影響を受けます。

• スリップ - この種のインターロックでは、パイプラインの一部だけが一時的に停止し、その他の部分の処理は進行できます。

PIC32 プロセッサコアは全てのインターロックをスリップとして処理します。レジスタバイパスと呼ばれる方法 (50.3.6「レジスタバイパス」参照 ) を使って、他のパイプライン段から演算結果を取り込む事で、スリップを 小限に抑える事ができます。

この場合、図 50-5 に見るように、減算命令はその前の加算命令の結果であるレジスタ r3 に対してソースオペランド依存性を持ちます。減算命令は、加算結果がレジスタ r3 に書き戻されるまで 2 クロック待機する事によりスリップします。実際の PIC32 ファミリのプロセッサでは、このようなスリップは発生しません。

図 50-5: パイプライン スリップ ( レジスタバイパスを実装していない場合を想定 )

Note: パイプライン スリップの概念を説明するために、仮に PIC32 コアがレジスタバイパスを実装していなかったと想定した場合の動作を図 50-5 に示します

EI M W

ESLIPI M A WE

OneCycle

OneCycle

OneCycle

OneCycle

OneCycle

OneCycle

OneCycle

OneCycle

A

ESLIP

Add r3, r2, r1(r3 r2 + r1

Sub r4, r3, r7(r4 r3 – r7

DS61192A_JP - p. 50-10 Preliminary © 2013 Microchip Technology Inc.

Page 11: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

セクション 50. microAptiv™ コア採用デバイスの CPUm

icroA

ptiv™

コア

採用

デバ

イス

のC

PU

50

50.3.6 レジスタバイパス

既に述べたように、PIC32 プロセッサは、実行中のパイプライン スリップを低減するための機構として「レジスタバイパス」を備えています。ある命令が現在パイプラインの E 段である場合、オペランドを取得できないと次へ進む事はできません。ある命令が実行パイプライン内の別の命令の計算結果をソースオペランドとする場合、 レジスタバイパス機能を使う事でソースオペランドをパイプラインから直接取得できます。すなわち、E 段を実行中の命令は、パイプラインの M 段または A 段を実行中の別の命令からソースオペランドを取得できるという事です。図 50-6 に示した相互に依存する連続した 3 つの命令は、実行中に一切スリップしません。この場合、A から E および M から E へのレジスタバイパスを使います。図 50-7 は、A から Eへのバイパスを使ったロード命令の動作を示しています。ロード命令の結果はパイプラインがA 段になるまで利用できないため、M から E へのバイパスを使いません。

レジスタバイパスの性能上の利点は、たとえレジスタ依存性が存在する場合でも、命令スループットを 1 命令 / クロックの ALU 演算レートまで高速化できる点にあります。

図 50-6: IU パイプライン、M 段から E 段へのバイパス

図 50-7: IU パイプライン、A 段から E 段へのデータバイパス

EI M W

EI WA

OneCycle

OneCycle

OneCycle

OneCycle

OneCycle

OneCycle

A

M

Add1r3 = r2 + r1

Sub2r4 = r3 – r7

Add3r5 = r3 + r4

EI AM

M to E Bypass A to E Bypass

M to E Bypass

EI M W

EI WA

OneCycle

OneCycle

OneCycle

OneCycle

OneCycle

OneCycle

A

M

Load Instruction

Consumer of Load Data Instruction EI AM

Data Bypass from A to E

One ClockLoad Delay

© 2013 Microchip Technology Inc. Preliminary DS61192A_JP - p. 50-11

Page 12: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

PIC32 ファミリ リファレンス マニュアル

50.4 CP0 レジスタに書き込む場合の注意点

一般的に PIC32 コアは、完全にシーケンシャルなプログラムモデルに従って命令が実行される事を保証します。このため、プログラム内の各命令は、先行する命令の結果を利用できます。しかし、このモデルに従わない状況も発生します。そのような状況を「ハザード」と呼びます。

特権ソフトウェアでは、下記の 2 種類のハザードが存在します。

• 実行ハザード

• 命令ハザード

50.4.1 実行ハザード

実行ハザードは、ある命令の実行に起因し、別の命令の実行によって顕在化するハザードです。表 50-2 に実行ハザードの一覧を示します。

表 50-2: 実行ハザード

50.4.2 命令ハザード

命令ハザードは、ある命令の実行に起因して発生し、別の命令のフェッチによって顕在化するハザードです。表 50-3 に命令ハザードの一覧を示します。

表 50-3: 命令ハザード

原因 影響 ハザード発生箇所 間隔 ( 命令数 )

LL MFC0 LLAddr 1

MTC0 コプロセッサ命令の実行は、CU0 ビット(Status<28>) の更新値に依存する

CU0 ビット (Status<28>) 1

MTC0 ERET EPC、DEPC、ErrorEPC 1

MTC0, EI, DI 割り込まれた命令 IE ビット (Status<0>) 1

MTC0 割り込まれた命令 IP1 および IP0 ビット(Cause<1> および <0>)

3

MTC0 TLBR、TLBWI、TLBWR EntryHi 1

MTC0 TLBP、ロード / ストアは更新されたステートに影響される

ASID<7:0> ビット (EntryHi<7:0>) 1

MTC0 TLBWI、TLBWR インデックス 1

MTC0 RDPGPR、WRPGPR PSS<3:0> ビット (SRSCtl<9:6>) 1

MTC0 コアタイマ割り込みに遭遇していない命令 コアタイマ割り込みをクリアするコンペア値の更新

4

MTC0 変更の影響を受けた命令 その他の CP0 レジスタ 2

原因 影響 ハザード発生箇所 間隔 ( 命令数 )

TLBWR?TLBWI 更新された TLB エントリを使う命令フェッチ

TLB エントリ 3

MTC0 値の更新に遭遇した命令フェッチ(useg セグメントからの命令フェッチに先行する ERL への変更を含む )

ステータス

MTCO 更新値に遭遇していない命令フェッチ ASID<7:0> ビット(EntryHi<7:0>)

3

MTC0 更新値に遭遇していない命令フェッチ WatchHi、WatchLo 1

MTC0 割り込まれた命令 IP1および IP0ビット (Cause<1>、<0>)

2

CACHEによる命令ストリームの書き込み

更新された命令ストリームに遭遇していない命令フェッチ

キャッシュ エントリ 3

ストアによる命令ストリーム 更新された命令ストリームに遭遇していない命令フェッチ

キャッシュ エントリ システムに依存

DS61192A_JP - p. 50-12 Preliminary © 2013 Microchip Technology Inc.

Page 13: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

セクション 50. microAptiv™ コア採用デバイスの CPUm

icroA

ptiv™

コア

採用

デバ

イス

のC

PU

50

50.5 アーキテクチャ リリース 2 の詳細

PIC32 CPU は、MIPS® 32 ビットプロセッサ アーキテクチャのリリース 2 を採用し、下記のリリース 2 機能を備えます。

• コア外部の割り込みコントローラを使うベクタ割り込み

その割り込みのハンドラに対する直接的なベクタ割り込みを可能にします。

• プログラマグルな例外ベクタベース

例外ベクタのベースアドレスは、Status レジスタの BEV ビットが「0」の時に発生した例外へ移動できます。これにより、どのようなシステムでも、システム環境に適したメモリ位置に例外ベクタを配置できます。

• アトミックな割り込みの有効化 / 無効化

割り込みをアトミックに有効また無効にし、Status レジスタの以前の値を返すために、2 つの命令を追加しています。

• 省電力アプリケーション向けに Count レジスタを無効にする機能

• GPR シャドーレジスタ

GPR シャドーレジスタを追加し、これらのレジスタを束ねてベクタ割り込みまたは例外に提供します。

• フィールド、ローテート、シャッフル命令

レジスタ内のビットフィールドの処理機能を追加しています。

• 明示的なハザード管理

サイクルベースの SSNOP 法の代わりに、明示的にハザードを管理する一連の命令を提供します。

50.6 CPU バス

PIC32 の CPU バス アーキテクチャは 2 種類あり、デバイスが実装している CPU コアのタイプに応じて異なります。

microAptiv™ MCU マイクロプロセッサ コアを実装している PIC32 デバイスは、スプリットバス アーキテクチャを備え、2 つの独立したバスによる命令とデータの並列動作が可能です。ロードおよびストア動作は、命令フェッチと同時に発生します。2 つのバスは I バスと D バスと呼びます。I バスは命令を CPU に伝達するために使い、D バスはデータの転送に使います。

スプリットバス アーキテクチャでは、CPU は I パイプライン段中に命令をフェッチします。フェッチは I バスに対して発行され、システムバスによって処理されます。アドレスに応じて、システムバスは以下のいずれかを実行します。

• フェッチ要求をプリフェッチ キャッシュ ユニットに送る ( このユニットが存在する場合 )

• フェッチ要求を DRM ユニットに送る

• 例外を引き起こす

命令フェッチは、フェッチするアドレスに関係なく、常に I バスを使います。

D バスは、CPU が実行する全てのロードおよびストア動作を処理します。ロードまたはストア命令が実行される時、その要求は D バスを介してシステムバスに渡されます。この動作はパイプラインの M 段で発生し、下記のターゲットに向けられます。

• データ RAM

• プリフェッチ キャッシュ / フラッシュメモリ

• 高速周辺モジュールバス ( 割り込みコントローラ、DMA、デバッグユニット、USB、Ethernet、GPIO ポート )

• 汎用周辺モジュールバス (UART、SPI、フラッシュ コントローラ、EPMP/EPSP、RTCC タイマ、入力キャプチャ、PWM/ 出力コンペア、ADC、デュアルコンペア、I2C、クロック SIB、リセット SIB)

microAptiv™ MPU コアを採用した PIC32 デバイスでは、データバスと命令バスを 1 つに統合したユニファイドバスがシステムバスに接続されます。このアーキテクチャでは、バス イニシエータとターゲット間で同時に複数のデータ転送を実行するために、マルチレイヤ システムバスを使います。

© 2013 Microchip Technology Inc. Preliminary DS61192A_JP - p. 50-13

Page 14: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

PIC32 ファミリ リファレンス マニュアル

50.7 内部システムバス

PIC32 プロセッサの内部バスは、周辺モジュールをシステムバスに接続します。システムバスは、デバイス内部で複数のデータ経路を使って各種イニシエータからのバスアクセスを一連のターゲットへ送る事で、性能ボトルネックを効果的に排除します。

システムバスが使う経路には、用途が固定されているものと、各種ターゲットで共有されるものがあります。

データ RAM とフェッチメモリの読み出し用経路は専用です。このため、周辺モジュールバスの動作によって遅延する事なく、低レイテンシでメモリリソースにアクセスできます。高速周辺モジュールは高速バス上に配置されます。これには、割り込みコントローラ、デバッグユニット、DMA エンジン、USB ホスト / 周辺モジュール ユニット、その他の高速周辺モジュール(CAN、Ethernet エンジン等 ) を含みます。

高速を必要としない周辺モジュールは、消費電力を節約するために、別の周辺モジュールバス上に配置されます。

50.8 セット / クリア / 反転

周辺モジュールに対するシングルサイクルのビット操作を可能にするため、周辺モジュール ユニット内の各レジスタには、ビット操作専用の 3 つの異なる周辺モジュール アドレスを使ってアクセスできます。従って各レジスタは、ベースアドレスを含めて計 4 つの異なるアドレスを持ちます。このため、1 つのレジスタが 4 つの異なるレジスタのように見えますが、実際には同一物理レジスタのアドレスを 4 通りの方法で指定できるという事です。

図 50-8: 1 つの物理レジスタが持つ 4 つのアドレス

ベース レジスタアドレスは、通常の読み / 書きアクセスに使い、他の 3 つのアドレスは特殊な書き込み専用機能に使います。

• 通常アクセス

• アトミックな RMW アクセスによるビットのセット

• アトミックな RMW アクセスによるビットのクリア

• アトミックな RMW アクセスによるビットの反転

周辺モジュールの読み出しは、各周辺モジュール レジスタのベースアドレスから行う必要があります。ビットのセット / クリア / 反転用アドレスからの読み出し結果は不確定であり、周辺モジュールによって異なります。

ベースアドレスへの書き込みは、周辺モジュール レジスタに完全な値を書き込みます ( 全てのビットに書き込みます )。例として、現在 0xAAAA5555 を格納しているレジスタに 0x000000FFを書き込んだ場合、そのレジスタの値は 0x000000FF になります ( 全てのビットが読み / 書き可能ビットであると仮定 )。

周辺モジュール レジスタのビットセット用アドレスに対する書き込みでは、「1」として書き込んだビットだけが、書き込み先レジスタでセットされます。例として、現在 0xAAAA5555 を格納しているレジスタのビットセット用レジスタアドレスに 0x000000FF を書き込んだ場合、その周辺モジュール レジスタの値は 0xAAAA55FF になります。

周辺モジュール レジスタのビットクリア用アドレスに対する書き込みでは、「1」として書き込んだビットだけが、書き込み先レジスタで「0」にクリアされます。例として、現在 0xAAAA5555を格納しているレジスタのビットクリア用レジスタアドレスに 0x000000FF を書き込んだ場合、その周辺モジュール レジスタの値は 0xAAAA5500 になります。

周辺モジュール レジスタのビット反転用アドレスに対する書き込みでは、「1」として書き込んだビットがけが、書き込み先レジスタで反転 ( トグル ) されます。例として、現在 0xAAAA5555を格納しているレジスタのビット反転用レジスタアドレスに 0x000000FF を書き込んだ場合、その周辺モジュール レジスタの値は 0xAAAA55AA になります。

Peripheral RegisterRegister Address

Register Address + 4

Register Address + 8

Register Address + 12

Clear Bits

Set Bits

Invert Bits

DS61192A_JP - p. 50-14 Preliminary © 2013 Microchip Technology Inc.

Page 15: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

セクション 50. microAptiv™ コア採用デバイスの CPUm

icroA

ptiv™

コア

採用

デバ

イス

のC

PU

50

50.9 ALU ステータスビット

他の PIC® マイクロコントローラとは異なり、PIC32 プロセッサはステータス レジスタフラグを使いません。他の多くのプロセッサは、プログラム実行中に各種の条件判断を行うために、条件フラグを使います。これらのフラグは、比較演算または何らかの算術演算の結果に基づいてセットされます。このようなプロセッサにおける条件分岐命令は、複数の条件コードから成る 1 つの条件の値に基づいて条件判断します。

これとは異なり、PIC32 プロセッサの命令は、比較と同時に汎用レジスタにフラグまたは値を保存します。条件分岐は、この汎用レジスタをオペランドとして使って実行されます。

50.10 割り込みおよび例外機構

PIC32 ファミリのプロセッサは、効率的で柔軟な割り込みおよび例外処理機構を備えています。割り込み処理と例外処理は、どちらも特殊なプロセスを実行するために現在の命令フローを一時的に変更するという点では同じですが、割り込みは一般的に正常動作の結果として発生するのに対し、例外はバスエラー等のエラー条件の結果として発生します。

割り込みまたは例外が発生した時、プロセッサは下記のように対応します。

1. ハンドラが処理を元のルーチンに返した直後に実行する命令の PC を、コプロセッサ レジスタに保存する

2. 例外または割り込みの原因を示すために Cause レジスタを更新する

3. カーネルモードの実行を開始するために Status レジスタの EXL または ERL ビットをセットする

4. ハンドラの PC を Ebase および OFFSET 値から計算する

5. 自動割り込みエピローグ機能により、割り込み処理の準備中に一部の COP0 ステートをスタックに保存して一部の COP0 レジスタを自動的に更新する

6. プロセッサは更新された PC から実行を始める

上記は、割り込みおよび例外機構の概要です。詳細は各デバイス データシート内の「CPU 例外および割り込みコントローラ」を参照してください。

50.11 プログラミング モデル

PIC32 ファミリのプロセッサは、C 言語等の高級言語に適するよう設計されています。このため、高級言語で必要となる各種のデータ型とシンプルで柔軟なアドレッシング モードをサポートします。また、32 個の汎用レジスタと、乗除算用に 2 個の専用レジスタを備えています。

PIC32 プロセッサ用のマシン語命令には、下記の 3 種類のフォーマットが存在します。

• 即値 (I 型 ) CPU 命令

• ジャンプ (J 型 ) CPU 命令

• レジスタ (R 型 ) CPU 命令

大部分の動作にはレジスタを使います。レジスタ型 CPU 命令は 3 個のオペランド (2 個のソースオペランドと 1 個のデスティネーション オペランド ) を使います。

3 個のオペランドと豊富なレジスタセットにより、アセンブリ言語プログラマおよびコンパイラは CPU リソースを効率的に使う事ができます。中間結果をレジスタで保持できるため、メモリとの間でデータを頻繁にやり取りする必要がなく、従ってより高速でコンパクトなプログラムを作成できます。

即値型命令は、即値オペランド、ソースオペランド、デスティネーション オペランドを使います。ジャンプ型命令は、ジャンプ先の計算用に 26 ビットの相対命令オフセット フィールドを使います。

Note: 本書では、例外に関して「識別可能な」および「識別困難な」という表現を使います。識別可能な例外では、EPC (CP0 レジスタ 14、Select 0) を使って、例外を引き起こした命令を識別できます。識別困難な例外では、例外を引き起こした命令を識別できません。ほとんどの例外は識別可能ですが、バスエラー例外は識別困難な場合があります。

© 2013 Microchip Technology Inc. Preliminary DS61192A_JP - p. 50-15

Page 16: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

PIC32 ファミリ リファレンス マニュアル

50.11.1 CPU 命令のフォーマット

CPU 命令は 1 ワード (32 ビット幅 ) です。CPU 命令には下記の種類があります。

• 即値 ( 図 50-9 参照 )

• ジャンプ ( 図 50-10 参照 )

• レジスタ ( 図 50-11 参照 )

表 50-4 に、これらの命令が使うフィールドを示します。

表 50-4: CPU 命令フォーマットのフィールド

図 50-9: 即値 (I 型 ) CPU 命令のフォーマット

図 50-10: ジャンプ (J 型 ) CPU 命令のフォーマット

図 50-11: レジスタ (R 型 ) CPU 命令のフォーマット

50.11.2 CPU レジスタ

PIC32 アーキテクチャでは下記の CPU レジスタを定義しています。

• 32 個の 32 ビット汎用レジスタ (GPR)

• 4 個のアキュムレータ レジスタペア標準 MIPS32® アーキテクチャは HI/LO アキュムレータ レジスタペア (AC0) を 1 つだけ定義していますが、PIC32 の microAptiv™ コアは DSP ASE を実装しているため、3 つの HI/LOアキュムレータ レジスタペア (AC1、AC2、AC3) が追加されています。これらのレジスタによって、個々のアキュムレーション ルーチンの並列化が改善されます。アキュムレータをターゲットとする DSP 命令は、デスティネーション アキュムレータを指定するために 2 つの命令ビットを使います。

• 特定の命令によって間接的にのみ影響を受ける特殊な用途のプログラム カウンタ(PC) (アーキテクチャ的には不可視のレジスタ )

フィールド 概要

opcode 6 ビットのプライマリ オペコード

rd デスティネーション レジスタを指定する 5 ビットの修飾子

rs ソースレジスタを指定する 5 ビットの修飾子

rt ターゲット ( ソース / デスティネーション ) レジスタを指定する 5 ビットの修飾子 ( プライマリ オペコード REGIMM 内で関数を指定するためにも使用 )

immediate 論理オペランド、算術オペランド、ロード / ストア アドレスバイト オフセット、PC 相対分岐命令の符号付きオフセットに使う 16 ビットの符号付き即値オペランド

instr_index ジャンプ先アドレスの下位 28 ビットを提供するために左に 2 ビットシフトした 26 ビットのインデックス

sa 5 ビットのシフト量

function プライマリ オペコード SPECIAL 内で関数を指定するために使う 6 ビットの関数フィールド

31 26 25 21 20 16 15 0

opcode rs rt immediate

6 5 5 16

31 26 25 21 20 16 15 11 10 6 5 0

opcode instr_index

6 26

31 26 25 21 20 16 15 11 10 6 5 0

opcode rs rt rd sa function

6 5 5 5 5 6

DS61192A_JP - p. 50-16 Preliminary © 2013 Microchip Technology Inc.

Page 17: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

セクション 50. microAptiv™ コア採用デバイスの CPUm

icroA

ptiv™

コア

採用

デバ

イス

のC

PU

50

50.11.2.1 CPU 汎用レジスタ

CPU 汎用レジスタの内、下記の 2 個にだけ特定の機能が割り当てられています。

• r0 - このレジスタは、ハードウェアで値「0」に結線されており、全ての命令でターゲットレジスタとして使えますが、その場合、命令の結果は破棄されます。r0 は、値として「0」が必要な時に、ソースとして使う事もできます。

• r31 - JAL、BLTZAL、BLTZALL、BGEZAL、BGEZALL はこのレジスタを暗黙的にデスティネーション レジスタとして使います ( 命令ワードで明示的に指定する必要はありません )。その他の命令は r31 を通常の汎用レジスタとして使えます。

上記以外のレジスタは全て汎用的に使えます。

50.11.2.2 推奨するレジスタの使用方法

PIC32 アーキテクチャ内の大部分のレジスタは汎用レジスタですが、Microchip MPLAB® XC32C/C++ コンパイラ等の高級言語で作成したソフトウェアを適正に動作させるために、表 50-5 に示した用法に従う事を推奨します。

表 50-5: 推奨するレジスタの使用方法

50.11.2.3 CPU 専用レジスタ

CPU は下記の専用レジスタを備えています。

• PC - プログラム カウンタレジスタ

• AC0 ~ AC3 - 64 ビット アキュムレータ レジスタペア (HI/LO)

- HI/LO - 乗除算レジスタペア ( 結果の上位と下位 )

• 乗算の場合、HI および LO レジスタは整数乗算の積を格納します。

• 積和または積差演算の場合、HI および LO レジスタは整数積和または積差の結果を格納します。

• 除算の場合、LO レジスタは整数除算の商を格納し、HI レジスタは剰余を格納します。

• 累積乗算の場合、HI および LO レジスタは演算の累積結果を格納します。

CPUレジスタ

レジスタの記号表記

使用方法

r0 zero 常に「0」 (Note 1 参照 )

r1 at アセンブラでテンポラリ レジスタとして使用

r2 - r3 v0-v1 関数の戻り値

r4 - r7 a0-a3 関数への引数

r8 - r15 t0-t7 テンポラリ - 関数呼び出し元は内容を保持する必要はない

r16 - r23 s0-s7 保存テンポラリ - 関数呼び出し元は内容を保持する必要がある

r24 - r25 t8-t9 テンポラリ - 関数呼び出し元は内容を保持する必要はない

r26 - r27 k0-k1 カーネル テンポラリ - 割り込みおよび例外処理に使用

r28 gp グローバル ポインタ - 共通データへの高速アクセスに使用

r29 sp スタック ポインタ - ソフトウェア スタック

r30 s8 またはfp

保存テンポラリ - 関数呼び出し元は内容を保持する必要がある またはフレームポインタ - スタックにフレームを生成するためのポインタ

r31 ra リターンアドレス (Note 1 参照 )

Note 1: これは推奨の用法ではなく、ハードウェアで強制される用法です。

© 2013 Microchip Technology Inc. Preliminary DS61192A_JP - p. 50-17

Page 18: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

PIC32 ファミリ リファレンス マニュアル

図 50-12 に CPU レジスタの配置を示します。

図 50-12: CPU レジスタ

31 0 31 0

r0 (zero) HI (0)

r1 (at) LO (0)

r2 (v0) HI (1)

r3 (v1) LO (1)

r4 (a0) HI (2)

r5 (a1) LO (2)

r6 (a2) HI (3)

r7 (a3) LO (3)

r8 (t0)

r9 (t1)

r10 (t2)

r11 (t3)

r12 (t4)

r13 (t5)

r14 (t6)

r15 (t7)

r16 (s0)

r17 (s1)

r18 (s2)

r19 (s3)

r20 (s4)

r21 (s5)

r22 (s6)

r23 (s7)

r24 (t8)

r25 (t9)

r26 (k0)

r27 (k1)

r28 (gp)

r29 (sp)

r30 (s8 or fp) 31 0

r31 (ra) PC

General Purpose Registers Special Purpose Registers

DS61192A_JP - p. 50-18 Preliminary © 2013 Microchip Technology Inc.

Page 19: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

セクション 50. microAptiv™ コア採用デバイスの CPUm

icroA

ptiv™

コア

採用

デバ

イス

のC

PU

50

表 50-6: microMIPS™ 16 ビット命令レジスタの使用方法

表 50-7: microMIPS™ 専用レジスタ

16ビット

レジスタ エンコード

32ビットMIPSレジスタ エンコード

シンボル名 概要

0 16/0 s0/zero 汎用レジスタ

1 17 s1 汎用レジスタ

2 2 v0 汎用レジスタ

3 3 v1 汎用レジスタ

4 4 a0 汎用レジスタ

5 5 a1 汎用レジスタ

6 6 a2 汎用レジスタ

7 7 a3 汎用レジスタ

N/A 28 gp microMIPS™ が暗黙的に参照する汎用ポインタレジスタ

N/A 29 sp microMIPS が暗黙的に参照するスタックポインタ レジスタ

N/A 31 ra microMIPS が暗黙的に参照するリターンアドレス レジスタ

シンボル名 目的

PC プログラムカウンタ : PC 相対命令はこのレジスタをオペランドとして使用可能

HI 乗算または除算結果の上位ワードを格納

LO 乗算または除算結果の下位ワードを格納

© 2013 Microchip Technology Inc. Preliminary DS61192A_JP - p. 50-19

Page 20: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

PIC32 ファミリ リファレンス マニュアル

50.11.3 スタックの実装方法 /MIPS の呼び出し規則

PIC32 CPU はハードウェア スタックを備えません。プロセッサは、ソフトウェアに依存してこの機能を提供します。ハードウェアはスタック動作そのものを実行しないため、システム内の全てのソフトウェアで同じスタック動作を得るために、統一した規則が必要です。例えば、スタックはアドレスが大きくなる方向にも小さくなる方向にも変化できます。ソフトウェアの一部のルーチンが「スタックはアドレスが小さくなる方向に変化する」という事を前提とし、そのルーチンが「スタックはアドレスが大きくなる方向に変化する」という事を前提とする別のルーチンを呼び出した場合、スタックは正しく機能しません。

システム全体を通して呼び出し時の規則を統一する事で、このような問題を防げます。Microchip® MPLAB XC32 C/C++ コンパイラでは、「スタックはアドレスが小さくなる方向に変化する」事を前提とします。

50.11.4 プロセッサモード

PIC32 ファミリの CPU には、2 つの動作モード ( ユーザモード、カーネルモード ) と 1 つの特殊な実行モード ( デバッグモード ) が存在します。プロセッサはカーネルモードで実行を始め、通常動作中もカーネルモードで動作できます。ユーザモードはオプションのモードです。このモードでは、コードを特権ソフトウェアと非特権ソフトウェアに分割できます。通常、デバッグモードはデバッガまたはモニタのみで使います。

これらの各動作モードでは、ソフトウェアからアクセスできるメモリアドレスが異なります。ユーザモードでは、周辺モジュールにアクセスできません。図 50-13 に、各モードにおけるメモリマップを示します。プロセッサのメモリマップに関する詳細は『PIC32 ファミリ リファレンス マニュアル、セクション 03. メモリ構成』(DS61115) を参照してください。

図 50-13: 各 CPU モードのメモリマップ

useg kuseg kuseg

kseg0

kseg1

kseg2

kseg3

kseg2

kseg1

kseg0

kseg3

kseg3

dseg

User Mode Kernel Mode Debug ModeVirtual Address

0x7FFF_FFFF

0x8000_0000

0x9FFF_FFFF

0xBFFF_FFFF

0xDFFF_FFFF

0xFF1F_FFFF

0xFF3F_FFFF

0xFFFF_FFFF

0xA000_0000

0xC000_0000

0xE000_0000

0xFF20_0000

0xFF40_0000

0x0000_0000

DS61192A_JP - p. 50-20 Preliminary © 2013 Microchip Technology Inc.

Page 21: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

セクション 50. microAptiv™ コア採用デバイスの CPUm

icroA

ptiv™

コア

採用

デバ

イス

のC

PU

50

50.11.4.1 カーネルモード

ハードウェア リソースの多くにアクセスするには、プロセッサをカーネルモードで動作させる必要があります。カーネルモードの場合、ソフトウェアはプロセッサのアドレス空間の全域にアクセスできます。また、特権命令へのアクセスも可能です。

Debug レジスタの DM ビットが「0」かつ Status レジスタで下記の条件が 1 つまたは複数成立する場合、プロセッサはカーネルモードで動作します。

• UM = 0

• ERL = 1

• EXL = 1

例外 ( デバッグ例外を除く ) が検出されると、EXL または ERL がセットされ、プロセッサはカーネルモードに移行します。例外ハンドラルーチンの 後では、一般的に例外からの復帰(ERET)命令が実行されます。ERET命令は、例外PC (例外の種類に応じてEPCまたは ErrorPC)へジャンプして、ERL をクリアし、ERL= 0であれば EXL をクリアします。

UM = 1 の場合、ERL と EXL が「0」にリセットされて例外から復帰した後に、プロセッサはユーザモードに戻ります。

50.11.4.2 ユーザモード

ユーザモードでは、ソフトウェアはプロセッサ リソースの 1 つのサブセットだけを使えます。多くの場合、アプリケーション レベルのコードはユーザモードで実行する事を推奨します。そうする事により、発生したエラーを封じ込めて、カーネルモードのコードに影響してしまう事を防げます。

アプリケーションは、SYSCALL 機構等の制御されたインターフェイスを介してカーネルモードの関数にアクセスできます。

図 50-13 が示すように、ユーザモード ソフトウェアは USEG メモリ領域にアクセスできます。

ユーザモードで動作するには、Status レジスタ内のビット値が下記のように設定されている必要があります。

• UM = 1

• EXL = 0

• ERL = 0

50.11.4.3 デバッグモード

デバッグモードはプロセッサの特殊なモードであり、通常、このモードを使うのはデバッガまたはシステムモニタに限られます。デバッグモードにはデバッグ例外を介して移行します。このモードでは、全てのカーネルモード リソースに加えて、デバッグ アプリケーションが使う特殊なハードウェア リソースにもアクセスできます。

Debug レジスタの DM ビットが「1」であれば、プロセッサはデバッグモードで動作します。

通常、デバッグモードは、デバッグハンドラから DERET命令を実行する事により終了します。

© 2013 Microchip Technology Inc. Preliminary DS61192A_JP - p. 50-21

Page 22: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

PIC32 ファミリ リファレンス マニュアル

50.12 コプロセッサ 0 (CP0) レジスタ

PIC32 は、システム ソフトウェアと CPU の間でステータス情報と制御情報を交換するために、特殊なレジスタ インターフェイスを使います。このインターフェイスは、コプロセッサ 0 (CP0)と呼びます。コプロセッサ 0 を介して可視となる CPU 機能は下記の通りです。

• TLB (Translation Lookaside Buffer)

• コアタイマ

• 割り込みおよび例外制御

• 仮想メモリのコンフィグレーション

• シャドーレジスタ セットの制御

• プロセッサ ID

• デバッガ制御

• パフォーマンス カウンタ

システム ソフトウェアは、MFC0 や MTC0 等のコプロセッサ命令を使って、CP0 内のレジスタにアクセスします。表 50-8 に、PIC32 が備える CP0 レジスタを示します。

表 50-8: CP0 レジスタ

レジスタ番号

レジスタ名 機能

0 Index TLB 配列に対するインデックス (microAptiv™ MPU 専用 )

1 Random TLB 配列に対するランダムに生成されたインデックス (microAptiv™ MPU 専用 )

2 EntryLo0 偶数番号の仮想ページに対する TLB エントリの下位部 (microAptiv™ MPU 専用 )

3 EntryLo1 奇数番号の仮想ページに対する TLB エントリの下位部 (microAptiv™ MPU 専用 )

4 Context/UserLocal

メモリ内のページテーブル エントリを指すポインタ (microAptiv™ MPU 専用 ) 特権ソフトウェアを使って書き込み、RDHWR命令を使って読み出す事ができるユーザ情報

5 PageMask/PageGrain

PageMask は TLB エントリ内の可変ページサイズを制御し、PageGrain は TLB 内の1 KB ページのサポートを有効にする (microAptiv™ MPU 専用 )

6 Wired 固定された (wired の ) TLB エントリの数を制御する (microAptiv™ MPU 専用 )

7 HWREna 非特権モードでの RDHWR命令による一部ハードウェア レジスタへのアクセスを有効にする

8 BadVAddr 直前に発生したアドレス関連の例外のアドレスを格納する

9 Count プロセッサ サイクル数

10 EntryHi TLB エントリの上位部 (microAptiv™ MPU 専用 )

11 Compare コアタイマ割り込みの制御

12 Status プロセッサのステータスと制御

IntCtl ベクタ間隔の割り込み制御

SRSCtl シャドーレジスタ セットの制御

SRSMap シャドーレジスタ割り当ての制御

View_IPL Status レジスタのビットを出し入れする事なく優先度を読み / 書きできるようにする

SRSMAP2 2 個の 4 ビットフィールドを格納 ( これらは、ベクタ番号からシャドーセット番号への割り当てを定義し、割り込み等をサービスする時に使われる )

13 Cause 直前の例外の原因を示す

NestedExc 現在の例外が発生する前のエラー / 例外レベル ステータスビットの値を格納する

View_RIPL Cause レジスタ内の RIPL ビットへの読み出しアクセスを有効にする

14 EPC 直前の例外が発生した時のプログラム カウンタ

NestedEPC 現在の例外が発生する前の例外プログラム カウンタの値を格納する

DS61192A_JP - p. 50-22 Preliminary © 2013 Microchip Technology Inc.

Page 23: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

セクション 50. microAptiv™ コア採用デバイスの CPUm

icroA

ptiv™

コア

採用

デバ

イス

のC

PU

50

15 PRID プロセッサの ID とリビジョン

Ebase 例外ベクタの例外ベースアドレス

CDMMBase 共通デバイスメモリ マップベース

16 Config コンフィグレーション レジスタ

Config1 コンフィグレーション レジスタ 1

Config2 コンフィグレーション レジスタ 2

Config3 コンフィグレーション レジスタ 3

Config4 コンフィグレーション レジスタ 4

Config5 コンフィグレーション レジスタ 5

Config7 コンフィグレーション レジスタ 7

17 LLAddr ロードリンク アドレス (microAptiv™ MPU 専用 )

18 WatchLo ウォッチポイントの下位アドレス (microAptiv™ MPU 専用 )

19 WatchHi ウォッチポイントの上位アドレス (microAptiv™ MPU 専用 )

20-22 予約済み PIC32 コア内で予約済み

23 Debug EJTAG デバッグレジスタ

TraceControl EJTAG トレース制御

TraceControl2 EJTAG トレース制御 2

UserTraceData1 EJTAG ユーザ トレースデータ 1 レジスタ

TraceBPC EJTAG トレース ブレークポイント レジスタ

Debug2 デバッグ制御 / 例外ステータス 1

24 DEPC 直前のデバッグ例外時のプログラム カウンタ

UserTraceData2 EJTAG ユーザ トレースデータ 2 レジスタ

25 PerfCtl0 パフォーマンス カウンタ 0 の制御

PerfCnt0 パフォーマンス カウンタ 0

PerfCtl1 パフォーマンス カウンタ 1 の制御

PerfCnt1 パフォーマンス カウンタ 1

26 ErrCtl I キャッシュおよび D キャッシュの way 選択配列とデータ RAM 配列のソフトウェア試験を有効にする (microAptiv™ MPU 専用 )

27 予約済み PIC32 コア内で予約済み

28 TagLo/DataLo キャッシュタグ インターフェイスの下位部 (microAptiv™ MPU 専用 )

29 予約済み PIC32 コア内で予約済み

30 ErrorEPC 直前のエラー時のプログラム カウンタ

31 DeSAVE デバッグハンドラのスクラッチパッド レジスタ

表 50-8: CP0 レジスタ ( 続き )

レジスタ番号

レジスタ名 機能

© 2013 Microchip Technology Inc. Preliminary DS61192A_JP - p. 50-23

Page 24: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

PIC32 ファミリ リファレンス マニュアル

50.12.1 Index レジスタ (CP0 レジスタ 0、Select 0)(microAptiv™ MPU 専用 )

Index レジスタは、TLB へのアクセスに使う TLBP、TLBR、TLBWI命令用のインデックスを格納する 32 ビットの読み / 書き可能レジスタです。

レジスタ 50-1: Index; TLB インデックス レジスタ (CP0 レジスタ 0、Select 0)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R-x U-0 U-0 U-0 U-0 U-0 U-0 U-0

P — — — — — — —

23:16U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

15:8U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

7:0U-0 U-0 U-0 R/W-x R/W-x R/W-x R/W-x R/W-x

— — — Index<4:0>(1)

凡例

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31 P: プローブ検出失敗ビット

1 = 直前の TLBP命令は TLB 内で一致を検出できなかった0 = 直前の TLBP命令は TLB 内で一致を検出した

bit 30-5 未実装 :「0」として読み出し

bit 4-0 Index<4:0>: TLBRおよび TLBW命令がアクセスする TLB エントリへのインデックス ビット (1)

11111 = TLB エントリ 31•

00000 = TLB エントリ 0

Note 1: MMU のコンフィグレーションによっては使えないビットがあります。MMU がサポートする TLB エントリの数は、Config1 CP0 レジスタの MMU サイズ <5:0> フィールドから読み出せます。

DS61192A_JP - p. 50-24 Preliminary © 2013 Microchip Technology Inc.

Page 25: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

セクション 50. microAptiv™ コア採用デバイスの CPUm

icroA

ptiv™

コア

採用

デバ

イス

のC

PU

50

50.12.2 Random レジスタ (CP0 レジスタ 1、Select 0) (microAptiv™ MPU 専用 )

Random レジスタは読み出し専用であり、その値は TLBWR 命令の実行中に TLB にインデックスを付けるために使われます。

このレジスタの値は下記の上限と下限の間で変化します。

• 下限は、オペレーティング システム専用に予約されている TLB エントリの数 (Wired レジスタの内容 ) によって決まります。Wired レジスタによってインデックスを付けられたエントリは、TLB Write Random 動作によって 初に書き込まれます。

• 上限は、[TLB エントリの総数 - 1] によって決まります。

Random レジスタは、ほぼクロックごとにデクリメントし、Wired レジスタ内の値に達するとラップします。乱数度を高めてライブロック条件の可能性を低減するために、LFSR レジスタを使って擬似乱数的なデクリメントを防ぎます。

リセット例外発生時と Wired レジスタへの書き込み時に、プロセッサは Random レジスタを上限値に初期化します。

レジスタ 50-2: Random; ランダム フィールド レジスタ (CP0 レジスタ 1、Select 0)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

23:16U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

15:8U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

15:8U-0 U-0 U-0 U-0 R-1 R-1 R-1 R-1

— — — — Random<3:0>

凡例

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-4 未実装 :「0」として読み出し

bit 3-0 Random<3:0>: TLB ランダム インデックス ビット

© 2013 Microchip Technology Inc. Preliminary DS61192A_JP - p. 50-25

Page 26: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

PIC32 ファミリ リファレンス マニュアル

50.12.3 EntryLo0 レジスタ (CP0 レジスタ 2、Select 0) と EntryLo1 レジスタ (CP0 レジスタ 3、Select 0) (microAptiv™ MPU 専用 )

EntryLo レジスタペアは、TLB と TLBR/TLBWI/TLBWR命令間のインターフェイスとして機能します。EntryLo0 は偶数ページのエントリを保持し、EntryLo1 は奇数ページのエントリを保持します。

アドレスエラー、TLB 無効、TLB 変更、TLB リフィル例外のいずれかが発生した後の EntryLo0および EntryLo1 レジスタの内容は不確定です。

レジスタ 50-3: EntryLo0; 偶数ページ TLB エントリレジスタ (CP0 レジスタ 2、Select 0) と EntryLo1; 奇数ページ TLB エントリレジスタ (CP0 レジスタ 3、Select 0)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R/W-0 R/W-0 U-0 U-0 U-0 U-0 R/W-x R/W-x

RI XI — — — — PFN<19:18>

23:16R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x

PFN<17:10>

15:8R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x

PFN<9:2>

7:0R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x

PFN<1:0> C<2:0> D V G

凡例

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31 RI: 読み出し抑止ビットこのビットをセットした場合、ページからのデータ読み出しが試行されると、V ( 有効 ) ビットがセットされていても TLB 無効例外が発生します。PageGrainレジスタのRIEビットがセットされている場合にのみ、RIビットは効力を持ちます。PageGrainレジスタの RIE ビットがセットされていない場合の EntryLo0/EntryLo1 の RI ビットは、MIPS32® 仕様に従って「0」ビットとして予約済みです。

bit 30 XI: 実行抑止ビットこのビットをセットした場合、ページからのフェッチが試行されると、V ( 有効 ) ビットがセットされていても TLB 無効例外が発生します。PageGrain レジスタの XIE ビットがセットされている場合にのみ、XI ビットは効力を持ちます。PageGrain レジスタの XIE ビットがセットされていない場合の EntryLo0/EntryLo1 のXI ビットは、MIPS32® 仕様に従って「0」ビットとして予約済みです。

bit 29-26 未実装 :「0」として読み出しbit 25-6 PFN<19:0>: ページフレーム番号ビット

これらのビットは、物理アドレスの上位ビットの定義に使います。PFN<19:0> ビットは物理アドレスのビット <31:12> に対応します。

bit 5-3 C<2:0>: コヒーレンシ ページ属性ビット111 = 予約済み110 = 予約済み101 = 予約済み100 = 予約済み011 = キャッシュ可能、非コヒーレント、ライトバック、ライトアロケート有効010 = キャッシュなし001 = キャッシュ可能、非コヒーレント、ライトスルー、ライトアロケート有効000 = キャッシュ可能、非コヒーレント、ライトスルー、ライトアロケート無効

bit 2 D: Dirty ( 書き込みイネーブル ) ビット1 = ページへのストアを許可する0 = ページへのストアは TLB 変更例外を引き起こす

bit 1 V: Valid ビット1 = ページへのアクセスを許可する0 = ページへのアクセスは TLB 無効例外を引き起こす

bit 0 G: Global ビットTLB 書き込みでは、EntryLo0 および EntryLo1 レジスタの G ビット同士の論理積 (AND) が TLB エントリの G ビットに書き込まれます。TLB エントリの G ビットが「1」であれば、TLB 一致時に ASID 比較は無視されます。TLB エントリからの読み出しでは、EntryLo0 と EntryLo1 の G ビットは、どちらも TLB エントリの G ビットの状態を反映します。

DS61192A_JP - p. 50-26 Preliminary © 2013 Microchip Technology Inc.

Page 27: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

セクション 50. microAptiv™ コア採用デバイスの CPUm

icroA

ptiv™

コア

採用

デバ

イス

のC

PU

50

50.12.4 Context レジスタ (CP0 レジスタ 4、Select 0) (microAptiv™ MPU 専用 )

Context レジスタは、ページテーブル エントリ (PTE) 配列内のエントリに対するポインタを格納する読み / 書き可能レジスタです。この配列は、仮想 - 物理変換テーブルを格納するオペレーティング システム データ ストラクチャです。TLB ミスが発生すると、オペレーティング システムは、見つからなかった変換値を PTE 配列から取得して TLB にロードします。Context レジスタは、BadVAddr レジスタ内の情報の一部を複製しますが、その内容はオペレーティング システムがメモリ内の 8 バイト ページテーブル エントリ (PTE) を直接参照できるよう編成されます。

レジスタ 50-4: Context: Context レジスタ (CP0 レジスタ 4、Select 0)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x

PTEBase<8:1>

23:16R/W-x R-x R-x R-x R-x R-x R-x R-x

PTEBase<0> BadVPN2<19:13>

15:8R-x R-x R-x R-x R-x R-x R-x R-x

BadVPN2<12:5>

7:0R-x R-x R-x R-x R-x U-0 U-0 U-0

BadVPN2<4:0> — — —

凡例

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-23 PTEBase<8:0>: Context レジスタ PTE 配列ポインタビット

これらのビットはオペレーティング システムによって使われます。通常これらのビットには、オペレーティング システムが Context レジスタをメモリ内の現在の PTE 配列を指すポインタとして使えるよう編成された値が書き込まれます。

bit 22-4 BadVPN2<12:0>: TLB ハードウェアミス ステータスビット

これらのビットは、ヒットしなかった仮想アドレスのビット VA<31:13> の値を格納します。

bit 3-0 未実装 :「0」として読み出し

© 2013 Microchip Technology Inc. Preliminary DS61192A_JP - p. 50-27

Page 28: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

PIC32 ファミリ リファレンス マニュアル

50.12.5 UserLocal レジスタ (CP0 レジスタ 4、Select 2)

UserLocal レジスタは、ハードウェアによって解釈されない読み / 書き可能レジスタです。このレジスタは、RDHWR命令を使って条件付きで読み出し可能です。

特権ソフトウェアは、このレジスタに任意の情報を書き込めます。非特権ソフトウェアからRDHWR命令を使ってこの情報にアクセスするには、URL ビット (HWREna<29>) を「1」にセットして、UserLocal レジスタに対する非特権アクセスを有効にする必要があります。

動作環境によっては、UserLocal レジスタにスレッド固有のストレージ ブロックへのポインタを格納し、RDHWR 命令を使ってそれを読み出します。

レジスタ 50-5: UserLocal: ユーザローカル レジスタ (CP0 レジスタ 4、Select 2)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x

USERLOCAL<31:24>

23:16R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x

USERLOCAL<23:16>

15:8R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x

USERLOCAL<15:8>

7:0R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x

USERLOCAL<7:0>

凡例

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-0 USERLOCAL<31:0>: ユーザローカル ビット

DS61192A_JP - p. 50-28 Preliminary © 2013 Microchip Technology Inc.

Page 29: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

セクション 50. microAptiv™ コア採用デバイスの CPUm

icroA

ptiv™

コア

採用

デバ

イス

のC

PU

50

50.12.6 PageMask レジスタ (CP0 レジスタ 5、Select 0) (microAptiv™ MPU 専用 )

PageMask レジスタは、TLB に対する読み / 書きに使う読み / 書き可能レジスタです。このレジスタは、各 TLB エントリに対して可変ページサイズを設定するための比較マスクを保持します ( 表 50-9 参照 )。

表 50-9: PageMask レジスタのマスクビットの値

レジスタ 50-6: PageMask; TLB 可変ページサイズ レジスタ (CP0 レジスタ 5、Select 0)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 U-0 R/W-x R/W-x R/W-x R/W-x R/W-x

— — — Mask<15:11>

23:16R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x

Mask<10:3>

15:8R/W-x R/W-x R/W-x U-0 U-0 U-0 U-0 U-0

Mask<2:0> — — — — —

7:0U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

凡例

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-29 未実装 :「0」として読み出し

bit 28-13 Mask<15:0>: 仮想アドレス マスクビット

このビットを「1」にセットすると、仮想アドレスの対応するビットは TLB 一致から除外されます。

bit 12-0 未実装 :「0」として読み出し

ページサイズ

レジスタビットの位置

28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13

4 KB 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

16 KB 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1

64 KB 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1

256 KB 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1

1 MB 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

4 MB 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1

16 MB 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1

64 MB 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1

256 MB 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

© 2013 Microchip Technology Inc. Preliminary DS61192A_JP - p. 50-29

Page 30: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

PIC32 ファミリ リファレンス マニュアル

50.12.7 PageGrain レジスタ (CP0 レジスタ 5、Select 1) (microAptiv™ MPU 専用 )

PIC32 では、PageGrain レジスタを使って、EntryLo0 および EntryLo1 レジスタの読み出し抑止ビットと実行抑止ビットの機能を有効または無効にします。

レジスタ 50-7: PageGrain; TLB ページ Grain イネーブル レジスタ (CP0 レジスタ 5、Select 1)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R/W-0 R/W-0 U-0 U-0 R/W-0 U-0 U-0 U-0

RIE XIE — — IEC — — —

23:16U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

15:8U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

7:0U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

凡例

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31 RIE: 読み出し抑止イネーブルビット

1 = EntryLo0 および EntryLo1 レジスタの RI ビットの機能を有効にする0 = EntryLo0およびEntryLo1レジスタの RI ビットの機能を無効にする (RI ビットは「0」として予約済みで書き込み禁止 )

bit 30 XIE: 実行抑止イネーブルビット

1 = EntryLo0 および EntryLo1 レジスタの XI ビットの機能を有効にする0 = EntryLo0 および EntryLo1 レジスタの XI ビットの機能を無効にする (XI ビットは「0」として予約済みで

書き込み禁止 )bit 29-28 未実装 : 常に「0」として書き込まれている必要があり、読み出しは「0」を返す

bit 27 IEC: 読み出し抑止および実行抑止例外コードビット

1 = 読み出し抑止例外は TLBRI 例外コードを使い、実行抑止例外は TLBXI 例外コードを使う0 = 読み出し抑止および実行抑止例外はどちらも TLBL 例外コードを使う

bit 26-0 未実装 : 常に「0」として書き込まれている必要があり、読み出しは「0」を返す

DS61192A_JP - p. 50-30 Preliminary © 2013 Microchip Technology Inc.

Page 31: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

セクション 50. microAptiv™ コア採用デバイスの CPUm

icroA

ptiv™

コア

採用

デバ

イス

のC

PU

50

50.12.8 Wired レジスタ (CP0 レジスタ 6、Select 0) (microAptiv™ MPU 専用 )

Wired レジスタは、TLB 内のワイアード エントリとランダム エントリの境界を指定する読み /書き可能レジスタです。ワイアード フィールドの幅は、Index レジスタで説明したのと同じ方法で求まります。ワイアード エントリは固定された置換不可のレジスタであり、TLBWR 命令によって上書きされません。ワイアード エントリは、TLBWI命令によって上書きされます。

Wired レジスタは、リセット例外によって 0 にリセットされます。Wired レジスタに対する書き込みが発生すると、Random レジスタは上限値にリセットされます。

レジスタ 50-8: Wired; TLB 境界エントリレジスタ (CP0 レジスタ 6、Select 0)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

23:16U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

15:8U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

7:0U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

— — — Wired<4:0>(1)

凡例

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-5 未実装 :「0」として読み出し

bit 4-0 Wired<4:0>: TLB Wired 境界ビット (1)

11111 = エントリ 31 をランダム、エントリ 0 ~ 30 をワイアードにする

01111 = エントリ 15 をランダム、エントリ 0 ~ 14 をワイアードにする

00111 = エントリ 7 以上をランダム、エントリ 6 以下をワイアードにする

00000 = 16 個のエントリの全てをランダムにする

Note 1: MMU のコンフィグレーションによっては使えないビットがあります。MMU がサポートする TLB エントリの数は、Config1 CP0 レジスタの MMU サイズ <5:0> フィールドから読み出せます。

© 2013 Microchip Technology Inc. Preliminary DS61192A_JP - p. 50-31

Page 32: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

PIC32 ファミリ リファレンス マニュアル

50.12.9 HWREna レジスタ (CP0 レジスタ 7、Select 0)

HWREna レジスタは、どのハードウェア レジスタに対して RDHWR命令によるアクセスを許可するのかを指定するビットマスクを格納します。

レジスタ 50-9: HWREna: ハードウェア アクセス許可レジスタ (CP0 Rgeister 7、Select 0)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 R/W-0 U-0 U-0 U-0 U-0 U-0

— — ULR — — — — —

23:16U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

15:8U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

7:0U-0 U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0

— — — — MASK<3:0>

凡例

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-30 未実装 :「0」として読み出し

bit 29 ULR: ユーザローカル レジスタビット

1 = UserLocal レジスタに対する非特権アクセスを有効にする0 = UserLocal レジスタに対する非特権アクセスを無効にするこのビットは、コプロセッサ 0 UserLocal レジスタに対する読み出しアクセスを有効 / 無効にします。

bit 28-4 未実装 :「0」として読み出し

bit 3-0 MASK<3:0>: ビットマスク ビット

1 = 対応するハードウェア レジスタに対するアクセスを有効にする 0 = 対応するハードウェア レジスタに対するアクセスを無効にするこれらの各ビットは、RDHWR命令による特定のハードウェア レジスタ ( 実際のレジスタではない場合もある ) へのアクセスを有効 / 無効にします。利用できるハードウェア レジスタのリストについては、RDHWR命令の説明を参照してください。

DS61192A_JP - p. 50-32 Preliminary © 2013 Microchip Technology Inc.

Page 33: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

セクション 50. microAptiv™ コア採用デバイスの CPUm

icroA

ptiv™

コア

採用

デバ

イス

のC

PU

50

50.12.10 BadVAddr レジスタ (CP0 レジスタ 8、Select 0)

BadVAddr レジスタは読み出し専用レジスタです。 このレジスタは、直前のアドレスエラー例外を引き起こした仮想アドレスをキャプチャします。アドレスエラーは不整合なアドレスからのロード、ストア、フェッチ動作、またはユーザモードからのカーネルモード アドレスへのアクセスによって発生します。

microAptiv™ MPU コアを実装したデバイスの場合、BadVAddr レジスタは、直近に TLB リフィル例外 /TLB無効例外 /TLB 変更例外のいずれかを引き起こした仮想アドレスもキャプチャします。

BadVAddr レジスタは、バスエラーに関するアドレス情報をキャプチャしません ( バスエラーはアドレッシング エラーではないため )。

レジスタ 50-10: BadVAddr: 不正仮想アドレスレジスタ (CP0 レジスタ 8、Select 0)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R-x R-x R-x R-x R-x R-x R-x R-x

BadVAddr<31:24>

23:16R-x R-x R-x R-x R-x R-x R-x R-x

BadVAddr<23:16>

15:8R-x R-x R-x R-x R-x R-x R-x R-x

BadVAddr<15:8>

7:0R-x R-x R-x R-x R-x R-x R-x R-x

BadVAddr<7:0>

凡例

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-0 BadVAddr<31:0>: 不正仮想アドレスビット

このビットは、直前のアドレスエラー例外を引き起こした仮想アドレスをキャプチャします。

© 2013 Microchip Technology Inc. Preliminary DS61192A_JP - p. 50-33

Page 34: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

PIC32 ファミリ リファレンス マニュアル

50.12.11 Count レジスタ (CP0 レジスタ 9、Select 0)

Count レジスタはタイマとして機能し、一定レートでインクリメントします。このレジスタは、命令が実行されても破棄されても、あるいはパイプラインで処理が進行してもしなくても一切関係なくインクリメントします。Cause レジスタの DC ビットが「0」である場合、カウンタは 1 クロックおきにインクリメントします。

機能上の目的あるいは診断目的でカウント値を書き込む事ができます。あるいは、リセット時やプロセッサを同期するために書き込む事もできます。

Debug レジスタの COUNTDM ビットを設定する事で、プロセッサがデバッグモード中であってもカウントを継続するかどうかを指定できます。

レジスタ 50-11: Count: インターバル カウンタレジスタ (CP0 レジスタ 9、Select 0 )

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x

COUNT<31:24>

23:16R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x

COUNT<23:16>

15:8R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x

COUNT<15:8>

7:0R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x

COUNT<7:0>

凡例

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-0 COUNT<31:0>: インターバル カウンタビット

この値は 1 クロックサイクルおきにインクリメントします。

DS61192A_JP - p. 50-34 Preliminary © 2013 Microchip Technology Inc.

Page 35: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

セクション 50. microAptiv™ コア採用デバイスの CPUm

icroA

ptiv™

コア

採用

デバ

イス

のC

PU

50

50.12.12 EntryHi レジスタ (CP0 レジスタ 10、Select 0) (microAptiv™ MPU 専用 )

EntryHi レジスタは、TLB 読み / 書き / アクセス動作に使われる仮想アドレス一致情報を格納します。

TLB 例外 (TLB リフィル、TLB 無効、TLB 変更のいずれか ) が発生すると、仮想アドレスのビット VA31 ~ 13 が EntryHi レジスタの VPN2 フィールドに書き込まれます。TLBR命令は、選択されている TLB エントリの対応するフィールドの内容を EntryHi レジスタに書き込みます。ASID フィールドには、現在のアドレス空間の ID 値がソフトウェアによって書き込まれ、この値は TLB 一致を判定するための TLB 比較処理中に使われます。

ASID フィールドは TLBR 命令によって上書きされるため、ソフトウェアは TLBR を実行する前後で ASID の値を保存 / 復元する必要があります。これは、特に TLB 無効および TLB 変更例外において重要であり、その他のメモリ管理ソフトウェアにおいても重要です。

EntryHi レジスタの VPN2 フィールドは、アドレスエラー例外シーケンス中にハードウェアによって変更される可能性があり、アドレスエラー例外後の状態は不確定です。EntryHi レジスタのソフトウェア書き込み (MTC0 経由 ) を実行しても、BadVAddr または Context レジスタ内のアドレス関連フィールドに対する暗黙的な書き込みは発生しません。

レジスタ 50-12: EntryHi: TLB アドレス一致レジスタ (CP0 レジスタ 10、Select 0)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x

VPN2<18:11>

23:16R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x

VPN2<10:3>

15:8R/W-x R/W-x R/W-x U-0 U-0 U-0 U-0 U-0

VPN2<2:0> — — — — —

7:0R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x

ASID<7:0>

凡例

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-13 VPN2: 仮想ページ番号ビットこれらのビットは、TLB 例外または TLB 読み出し時にハードウェアによって書き込まれ、TLB 書き込みの前にソフトウェアによって書き込まれます。

bit 12-8 未実装 :「0」として読み出し

bit 7-0 ASID<7:0>: アドレス空間 ID ビットこれらのビットは、TLB 読み出し時にハードウェアによって書き込まれ、TLB 書き込み時に現在の ASID値を設定するためにソフトウェアによって書き込まれます。TLB は、この値と各エントリの TLB ASIDフィールド値を照合します。

© 2013 Microchip Technology Inc. Preliminary DS61192A_JP - p. 50-35

Page 36: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

PIC32 ファミリ リファレンス マニュアル

50.12.13 Compare レジスタ (CP0 レジスタ 11、Select 0)

Compare レジスタと Count レジスタの組み合わせによって、タイマおよびタイマ割り込み機能を実装します。Compare レジスタは一定の値を保持します ( 自動的に変更されません )。

Count レジスタの値が Compare レジスタの値に一致すると、CPU はシステム割り込みコントローラに対して割り込み信号をアサートします。この信号は、Compare レジスタに対して書き込みが発生するまでアサート状態を維持します。

レジスタ 50-13: Compare: インターバル カウントコンペア レジスタ (CP0 レジスタ 11、Select 0)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x

COMPARE<31:24>

23:16R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x

COMPARE<23:16>

15:8R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x

COMPARE<15:8>

7:0R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x

COMPARE<7:0>

凡例

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-0 COMPARE<31:0>: インターバル カウントコンペア値ビット

DS61192A_JP - p. 50-36 Preliminary © 2013 Microchip Technology Inc.

Page 37: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

セクション 50. microAptiv™ コア採用デバイスの CPUm

icroA

ptiv™

コア

採用

デバ

イス

のC

PU

50

50.12.14 Status レジスタ (CP0 レジスタ 12、Select 0)

読み / 書き可能な Status レジスタは、プロセッサの動作モード、割り込み有効状態、診断ステートを格納します。このレジスタのビットの組み合わせによってプロセッサの動作モードが決まります。

50.12.14.1 割り込みの有効化

割り込みは、下記の条件が全て成立する場合に有効になります。

• IE = 1

• EXL = 0

• ERL = 0

• DM = 0

これらの条件が全て成立すると、IPL ビットの設定に従って割り込みが生成されます。

50.12.14.2 動作モード

Debug レジスタの DM ビットが「1」の場合、プロセッサはデバッグモードです。これ以外の場合、プロセッサはカーネルモードかユーザモードのどちらかです。

どちらのモードかは、表50-10のCPUステータス レジスタビットの状態によって判別できます。

表 50-10: CPU ステータス レジスタビットとプロセッサモードの関係

モード ビット設定

ユーザモード ( 右の条件の全てが成立した場合 ) UM = 1 EXL = 0 ERL = 0

カーネルモード ( 右の条件のいずれか 1 つでも成立した場合 ) UM = 0 EXL = 1 ERL = 1

Note: Status レジスタの CU0 ビット (Status<28>) は、コプロセッサ 0 に対するアクセスを制御します。コプロセッサ 0 が使用できない場合にコプロセッサ 0 にアクセスする命令を実行すると例外が発生します。

レジスタ 50-14: Status: ステータス レジスタ (CP0 レジスタ 12、Select 0)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 U-0 R/W-x R/W-0 U-0 R/W-x R/W-0

— — — CU0 RP — RE MX

23:16U-0 R/W-1 R/W-0, HS, CS R/W-1 R/W-0 R/W-x U-0 R/W-0

— BEV TS(1) SR NMI IPL<7> — IPL<6>

15:8R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x U-0 U-0

IPL<5:0> — —

7:0U-0 U-0 U-0 R/W-x U-0 R/W-x R/W-x R/W-x

— — — UM — ERL EXL IE

凡例 HS = ハードウェアでセット CS = ソフトウェアでクリア

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-29 未実装 :「0」として読み出し

bit 28 CU0: コプロセッサ 0 使用可能ビットこのビットは、コプロセッサ 0 に対するアクセスを制御します。1 = アクセスを許可する0 = アクセスを禁止するプロセッサがカーネルモードで動作している場合、CU0 ビットの状態に関係なく、コプロセッサ 0 は常に使用可能です。

Note 1: このビットは、microAptiv™ MPU コアを採用したデバイスでのみ利用できます。このビットが利用できるかどうかは、デバイス データシートの「CPU」を参照してください。

© 2013 Microchip Technology Inc. Preliminary DS61192A_JP - p. 50-37

Page 38: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

PIC32 ファミリ リファレンス マニュアル

bit 27 RP: 省電力ビット1 = 省電力モードを有効にする0 = 省電力モードを無効にする

bit 26 未実装 :「0」として読み出し

bit 25 RE: 逆エンディアン メモリ参照イネーブルビットこのビットは、プロセッサがユーザモードで動作している時に、逆エンディアンのメモリ参照を有効にします。1 = ユーザモードは逆エンディアンを使う0 = ユーザモードは設定されているエンディアンを使うこのビットの状態はデバッグ、カーネル、スーパーバイザ モードでのメモリ参照には影響しません。

bit 24 MX: MIPS DSP リソース イネーブルビットこのビットは、DSP ASE 命令を実行する前にセットする必要があります。このビットをクリアした状態でDSP ASE 命令の実行を試みると、DSP 状態無効例外が発生します。1 = アクセスを有効にする0 = アクセスを無効にする

bit 23 未実装 :「0」として読み出し

bit 22 BEV: ブートストラップ例外ベクタ制御ビット例外ベクタの位置を制御します。1 = ブートストラップ0 = 標準

bit 21 TS: TLB シャットダウン制御ビット (1)

TLB が複数のエントリで一致を検出した事を示します。このビットは、実行を許可すると TLB シャットダウンが発生しかねない TLBWIまたは TLBWR命令が発行された場合にもセットされます。マシンチェック例外も発行されます。

1 = TLB シャットダウン イベントが発生した

0 = TLB シャットダウン イベントは発生していない

ソフトウェアは、このビットに「0」を書き込んでクリアできますが、「0」を「1」に書き換える事はできません。

bit 20 SR: ソフトリセット ビットリセット例外ベクタへのリセットがソフトリセットに起因したかどうかを示します。

1 = ソフトリセットに起因する ( このビットは PIC32 コアの全てのタイプのリセット時に常にセットされます )

0 = PIC32 では使用せずソフトウェアは、このビットに「0」を書き込んでクリアできますが、「0」を「1」に書き換える事はできません。

bit 19 NMI: ノンマスカブル割り込みビットリセット例外ベクタへのエントリが NMI に起因したかどうかを示します。

1 = NMI に起因する0 = NMI に起因しない ( ソフトリセットまたはリセットに起因 )ソフトウェアは、このビットに「0」を書き込んでクリアできますが、「0」を「1」に書き換える事はできません。

bit 18 IPL<7>: 割り込み優先度ビットこのフィールドは、現在の割り込み優先度 (0 ~ 256) を格納します。要求された割り込みの優先度がこの値より高い場合にのみ、割り込み信号が生成されます。

bit 17 未実装 :「0」として読み出し

bit 16-10 IPL<6:0>: 割り込み優先度ビットこのフィールドは、現在の割り込み優先度 (0 ~ 256) を格納します。要求された割り込みの優先度がこの値より高い場合にのみ、割り込み信号が生成されます。

bit 9-5 未実装 :「0」として読み出し

bit 4 UM: ユーザモード ビットこのビットは、プロセッサのベース動作モードを示します。1 = ベースモードはユーザモード

0 = ベースモードはカーネルモードERLまたはEXLがセットされている場合、UMビットの状態に関係なく、プロセッサはカーネルモードです。

bit 3 未実装 :「0」として読み出し

レジスタ 50-14: Status: ステータス レジスタ (CP0 レジスタ 12、Select 0) ( 続き )

Note 1: このビットは、microAptiv™ MPU コアを採用したデバイスでのみ利用できます。このビットが利用できるかどうかは、デバイス データシートの「CPU」を参照してください。

DS61192A_JP - p. 50-38 Preliminary © 2013 Microchip Technology Inc.

Page 39: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

セクション 50. microAptiv™ コア採用デバイスの CPUm

icroA

ptiv™

コア

採用

デバ

イス

のC

PU

50

bit 2 ERL: エラーレベル ビットリセット、ソフトリセット、NMI( ノンマスカブル割り込み )、キャッシュエラー例外が発生すると、プロセッサはこのビットをセットします。1 = エラーレベル

0 = 正常レベル

ERL がセットされている場合 :

• プロセッサはカーネルモードで動作中

• 割り込みは無効

• ERET命令は、EPC レジスタではなく ErrorEPC レジスタで保持されているリターンアドレスを使います。

• kuseg の下位 229 バイトは、マッピングもキャッシュもされない領域として扱われます。これにより、キャッシュエラー時のメインメモリへのアクセスが可能になります。プロセッサが kuseg から命令を実行している時に ERL ビットがセットされた場合、プロセッサの動作は不確定です。

bit 1 EXL: 例外レベル ビットリセット、ソフトリセット、NMI 以外の例外が発生すると、プロセッサはこのビットをセットします。1 = 例外レベル

0 = 正常レベル

EXL がセットされている場合 :

• プロセッサはカーネルモードで動作中

• 割り込みは無効

別の例外が発生しても EPC、BD、SRSCtl は更新されません。

bit 0 IE: 割り込みイネーブルビットソフトウェアおよびハードウェア割り込みのマスタイネーブル ビットとして機能します。1 = 割り込みを有効にする

0 = 割り込みを無効にするこのビットは、DI命令を使って無効に変更でき、EI命令を使って有効に変更できます。

レジスタ 50-14: Status: ステータス レジスタ (CP0 レジスタ 12、Select 0) ( 続き )

Note 1: このビットは、microAptiv™ MPU コアを採用したデバイスでのみ利用できます。このビットが利用できるかどうかは、デバイス データシートの「CPU」を参照してください。

© 2013 Microchip Technology Inc. Preliminary DS61192A_JP - p. 50-39

Page 40: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

PIC32 ファミリ リファレンス マニュアル

50.12.15 IntCtl: 割り込み制御レジスタ (CP0 レジスタ 12、Select 1)

IntCtl レジスタは、PIC32 アーキテクチャのベクタ間隔を制御します。

レジスタ 50-15: IntCtl: 割り込み制御レジスタ (CP0 レジスタ 12、Select 1 )

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

23:16U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-1 R/W-1

— PF ICE STKDEC<4:0>

15:8R/W-0 R/W-0 R/W-0 U-0 U-0 U-0 R/W-0 R/W-0

CLREXL APE USESTK — — — VS<4:3>

7:0R/W-0 R/W-0 R/W-0 U-0 U-0 U-0 U-0 U-0

VS<2:0> — — — — —

凡例

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-23 未実装 :「0」として読み出しbit 22 PF: ベクタ プリフェッチ イネーブルビット

1 = ベクタ プリフェッチを有効にする0 = ベクタ プリフェッチを無効にする

bit 21 ICE: 割り込みチェーン イネーブルビット1 = 割り込みチェーンを有効にする0 = 割り込みチェーンを無効にする

bit 20-16 STKDEC<4:0>: スタックポインタ デクリメント ビット自動プロローグ機能でスタックポインタの値からデクリメントする 4 バイトワードの数を指定します。31-4 = 指定数のワードをデクリメントする3-0 = 3 ワード (12 バイト ) をデクリメントする

bit 15 CLREXL: クリア KSU/ERL/EXL ビットこのビットをセットした場合、自動プロローグ機能と IRET命令の割り込みチェーンの実行時に KSU/ERL/EXLビットがクリアされます。1 = 上記のようにビットをクリアする0 = 上記のようにビットをクリアしない

bit 14 APE: 自動プロローグ イネーブルビット1 = 自動プロローグを有効にする0 = 自動プロローグを無効にする

bit 13 USEKSTK: スタック使用ビット割り込み自動プロローグ (IAP) 中に使うスタックを指定します。1 = IAP の開始時に現在の SRS の r29 を使うこの設定は、ユーザモードとカーネルモードで別々のスタックが存在する環境向けに使います。この場合、IAP 中に使う SRS の r29 は、カーネルモードのスタックポインタを保持するために、ソフトウェアであらかじめ初期化しておく必要があります。0 = IAP の開始時に、以前の SRS の r29 を現在の SRS にコピーするこの設定は、1 つのスタックしか存在しない Bare-Iron 環境向けに使います。

bit 12-10 未実装 :「0」として読み出しbit 9-5 VS<4:0>: ベクタ間隔ビット

これらのビットは、各割り込みベクタの間隔を指定します。

その他の値は全て予約済みです。予約済みの値をこれらのビットに書き込んだ場合のプロセッサの動作は不確定です。

bit 4-0 未実装 :「0」として読み出し

エンコード ベクタの間隔 (16 進数 ) ベクタの間隔 (10 進数 )0x00 0x000 00x01 0x020 320x02 0x040 640x04 0x080 1280x08 0x100 2560x10 0x200 512

DS61192A_JP - p. 50-40 Preliminary © 2013 Microchip Technology Inc.

Page 41: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

セクション 50. microAptiv™ コア採用デバイスの CPUm

icroA

ptiv™

コア

採用

デバ

イス

のC

PU

50

50.12.16 SRSCtl レジスタ (CP0 レジスタ 12、Select 2)SRSCtl レジスタは、プロセッサ内の GPR シャドーセットの動作を制御します。

表 50-11: 例外または割り込み時の CSS 更新値のソース

例外タイプ ビットソース リセット条件 備考

例外 ESS All —

非ベクタ割り込み ESS IV ビット = 0 (Cause<23>) 例外として扱う

ベクタ EIC 割り込み EICSS IV ビット (Cause<23>) = 1かつ VEICビット(Config3<6>) = 1

外部割り込みコントローラからの割り込み要求

レジスタ 50-16: SRSCtl: シャドーレジスタ セット レジスタ (CP0 レジスタ 12、Select 2)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 R-0 R-1 R-1 R-1 U-0 U-0

— — HSS<3:0> — —

23:16U-0 U-0 R-x R-x R-x R-x U-0 U-0

— — EICSS<3:0> — —

15:8R/W-0 R/W-0 R/W-0 R/W-0 U-0 U-0 R/W-0 R/W-0

ESS<3:0> — — PSS<3:2>

7:0R/W-0 R/W-0 U-0 U-0 R-0 R-0 R-0 R-0

PSS<1:0> — — CSS<3:0>:

凡例

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-30 未実装 :「0」として読み出し

bit 29-26 HSS<3:0>: シャドーセット 大番号ビット

このビットは、プロセッサが実装しているシャドーセットの 大番号を格納します。これらのビットの値が「0000」の場合、通常の GPR のみ実装している事を意味します。1111 = 予約済み0111 = 8 個のシャドーセットが存在する0110 = 予約済み0101 = 予約済み0100 = 予約済み0011 = 4 個のシャドーセットが存在する0010 = 予約済み0001 = 2 個のシャドーセットが存在する0000 = 1 個のシャドーセット ( 通常の GPR セット ) が存在する

HSS ビットの値は ESS<3:0>、EICSS<3:0>、PSS<3:0>、CSS<3:0> ビットまたは SRSMap レジスタの任意のビットに書き込み可能な 大値でもあります。それらのビットにこの HSS ビットよりも大きな値を書き込んだ場合、プロセッサの動作は不確定です。

bit 25-22 未実装 :「0」として読み出し

bit 21-18 EICSS<3:0>: 外部割り込みコントローラ シャドーセット ビット

EIC 割り込みモード用のシャドーセットです。このビットは、外部割り込みコントローラからの割り込み要求のたびに書き込まれ、それらの割り込みにシャドーセットを割り当てるために、SRSMap レジスタの代わりに使われます。

bit 17-16 未実装 :「0」として読み出し

© 2013 Microchip Technology Inc. Preliminary DS61192A_JP - p. 50-41

Page 42: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

PIC32 ファミリ リファレンス マニュアル

bit 15-12 ESS<3:0>: 例外シャドーセット ビット

このビットは、ベクタ割り込み以外の全ての例外に起因するカーネルモードへの移行時に使うシャドーセットを指定します。ソフトウェアがこのビットに HSS<3:0> ビットの値よりも大きな値を書き込んだ場合、プロセッサの動作は不確定です。

bit 11-10 未実装 :「0」として読み出し

bit 9-6 PSS<3:0>: 前回のシャドーセット ビット

GPR シャドーレジスタが実装されている場合、例外または割り込みが発生した時に、このビットには CSSビットの内容がコピーされます。BEV ビット (Status<22>) = 0 の場合、ERET 命令はこのビットの値をCSS ビットに書き戻します。

このビットは、ERL ビット (Status<2>) を「1」にセットする全ての例外 ( リセット、ソフトリセット、NMI、キャッシュエラー )、EJTAG デバッグモードへの移行、EXL ビット (Status<1>) = 1または BEV = 1にセットする全ての例外または割り込みが発生しても更新されません。このビットは、ERL = 1の時に例外が発生しても更新されません。

ソフトウェアがこのビットに HSS<3:0> ビットの値よりも大きな値を書き込んだ場合、プロセッサの動作は不確定です。

bit 5-4 未実装 :「0」として読み出し

bit 3-0 CSS<3:0>: 現在のシャドーセット ビット

GPR シャドーレジスタが実装されている場合、このビットは現在の GPR セットの番号を格納します。このビットの値は、全ての割り込みまたは例外の発生時に更新され、ERET 命令によって PSS ビットから復元されます。

表 50-11 に、例外または割り込み発生時に CSS<3:0> ビットに更新値を提供する各種ソースを示します。

このビットは、ERL ビット (Status<2>) を「1」にセットする全ての例外 ( リセット、ソフトリセット、NMI、キャッシュエラー )、EJTAG デバッグモードへの移行、EXL ビット (Status<1>) = 1または BEV = 1にセットする全ての例外または割り込みが発生しても更新されません。また、ERL = 1 または BEV = 1 である場合、この値は ERET 命令によって更新されません。このビットは、ERL = 1の時に例外が発生しても更新されません。

CSS<3:0> ビットをソフトウェアで直接変更するには、PSS<3:0> ビットに値を書き込んでから ERET 命令を実行する必要があります。

レジスタ 50-16: SRSCtl: シャドーレジスタ セット レジスタ (CP0 レジスタ 12、Select 2) ( 続き )

DS61192A_JP - p. 50-42 Preliminary © 2013 Microchip Technology Inc.

Page 43: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

セクション 50. microAptiv™ コア採用デバイスの CPUm

icroA

ptiv™

コア

採用

デバ

イス

のC

PU

50

50.12.17 SRSMap: レジスタ (CP0 レジスタ 12、Select 3)

SRSMap レジスタは、ベクタ番号からシャドーセット番号への割り当てを定義する 8 個の 4 ビットフィールドを格納します。これらは割り込みをサービスする際に使います。このレジスタの値は、非割り込み型の例外または非ベクタ型の割り込みの場合 (IV ビット (Cause<23>) = 0、または VS<4:0> ビット (IntCtl<9:5>) = 0) には使いません。そのような場合、シャドーセット番号はESS<3:0> ビット (SRSCtl<15:12>) から提供されます。

HSS<3:0> ビット (SRSCTL<29:26>) が「0」の場合、このレジスタに対するソフトウェア読み出しまたは書き込みの結果は不確定です。

このレジスタ内のこれらのビットフィールドに HSS<3:0> ビットの値よりも大きな値を書き込んだ場合、プロセッサの動作は不確定です。

SRSMap レジスタは、ベクタ番号 7 ~ 0 に対応するシャドーレジスタ セット番号を格納します。複数の割り込みベクタに対して同じシャドーセット番号を割り当てる事ができます ( ベクタからシャドーレジスタ セットへの多対一対応割り当てが可能 )。

レジスタ 50-17: SRSMap: シャドーレジスタ セットマップ レジスタ (CP0 レジスタ 12、Select 3)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

SSV7<3:0> SSV6<3:0>

23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

SSV5<3:0> SSV4<3:0>

15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

SSV3<3:0> SSV2<3:0>

7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

SSV1<3:0> SSV0<3:0>

凡例

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-28 SSV7<3:0>: シャドーセット ベクタ 7 ビット

ベクタ番号 7 に割り当てるシャドーレジスタ セット番号

bit 27-24 SSV6<3:0>: シャドーセット ベクタ 6 ビット

ベクタ番号 6 に割り当てるシャドーレジスタ セット番号

bit 23-20 SSV5<3:0>: シャドーセット ベクタ 5 ビット

ベクタ番号 5 に割り当てるシャドーレジスタ セット番号

bit 19-16 SSV4<3:0>: シャドーセット ベクタ 4 ビット

ベクタ番号 4 に割り当てるシャドーレジスタ セット番号

bit 15-12 SSV3<3:0>: シャドーセット ベクタ 3 ビット

ベクタ番号 3 に割り当てるシャドーレジスタ セット番号

bit 11-8 SSV2<3:0>: シャドーセット ベクタ 2 ビット

ベクタ番号 2 に割り当てるシャドーレジスタ セット番号

bit 7-4 SSV1<3:0>: シャドーセット ベクタ 1 ビット

ベクタ番号 1 に割り当てるシャドーレジスタ セット番号

bit 3-0 SSV0<3:0>: シャドーセット ベクタ 0 ビット

ベクタ番号 0 に割り当てるシャドーレジスタ セット番号

© 2013 Microchip Technology Inc. Preliminary DS61192A_JP - p. 50-43

Page 44: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

PIC32 ファミリ リファレンス マニュアル

50.12.18 View_IPL レジスタ (CP0 レジスタ 12、Select 4)

このレジスタの IPL<7:0> ビットは、Status レジスタ内の IPL ビットへの読み書きアクセスを提供します。このレジスタを使う事で、Status レジスタの IPL フィールドを出し入れする事なく、割り込み優先度を読み書きできます。

Status レジスタの IPL フィールドは不連続なビットに配置されている場合がありますが、View_IPL レジスタの全ての IPL フィールドは連続的に配置されます。

レジスタ 50-18: View_IPL: 割り込み優先度表示レジスタ (CP0 レジスタ 12、Select 4)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

23:16U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

15:8U-0 U-0 U-0 U-0 U-0 U-0 R/W-0 R/W-0

— — — — — — IPL<7:6>

7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 U-0 U-0

IPL<5:0> — —

凡例

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-10 未実装 :「0」として読み出し

bit 9-2 IPL<7:0>: これらのビットは、現在の割り込み優先度 (0 ~ 256) を格納します。

bit 1-0 未実装 :「0」として読み出し

DS61192A_JP - p. 50-44 Preliminary © 2013 Microchip Technology Inc.

Page 45: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

セクション 50. microAptiv™ コア採用デバイスの CPUm

icroA

ptiv™

コア

採用

デバ

イス

のC

PU

50

50.12.19 SRSMAP2 レジスタ (CP0 レジスタ 12、Select 5)

SRSMAP2 レジスタは、ベクタ番号からシャドーセット番号への割り当てを定義する 2 個の4 ビットフィールドを格納します。これらは割り込みをサービスする際に使います。このレジスタの値は、非割り込み型の例外または非ベクタ型の割り込み (IV ビット (Cause<23>) = 0 または VS<4:0> ビット (IntCtl<9:5>) = 0) には使いません。そのような場合、シャドーセット番号は ESS<3:0> ビット (SRSCtl<15:12>) から提供されます。

HSS<3:0> ビット (SRSCtl<9:6>) が「0」の場合、このビットに対するソフトウェア読み出しまたは書き込みの結果は不確定です。

このレジスタ内のこれらのビットフィールドに HSS<3:0> ビットの値よりも大きな値を書き込

んだ場合、プロセッサの動作は不確定です。

SRSMAP2 レジスタは、ベクタ番号 9 と 8 に対応するシャドーレジスタ セット番号を格納します。複数の割り込みベクタに対して同じシャドーセット番号を割り当てる事ができます ( ベクタからシャドーレジスタ セットへの多対一対応割り当てが可能 )。

レジスタ 50-19: SRSMAP2: シャドーレジスタ セットマップ 2 レジスタ (CP0 レジスタ 12、Select 5)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

23:16U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

15:8U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

7:0R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x

SSV9<3:0> SSV8<3:0>

凡例

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-8 未実装 :「0」として読み出し

bit 7-4 SSV9<3:0>: シャドーセット ベクタ 9 ビット

ベクタ番号 9 に割り当てるシャドーレジスタ セット番号

bit 3-0 SSV8<3:0>: シャドーセット ベクタ 8 ビット

ベクタ番号 8 に割り当てるシャドーレジスタ セット番号

© 2013 Microchip Technology Inc. Preliminary DS61192A_JP - p. 50-45

Page 46: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

PIC32 ファミリ リファレンス マニュアル

50.12.20 Cause レジスタ (CP0 レジスタ 13、Select 0)

Cause レジスタは主に直前に発生した例外の原因に関する情報を提供します。また、割り込みを生成するためのソフトウェア割り込み要求とベクタを制御します。Cause レジスタ内の IP1、IP0、DC、IV ビット以外の全てのビットは読み出し専用です。

表 50-12: Cause レジスタ EXCCODE<4:0> ビット

例外コード値ニーモニック 概要

10 進数 16 進数

0 0x00 Int 割り込み

1 0x01 MOD(1) TLB 変更例外

2 0x02 TLBL(1) TLB 例外 ( ロードまたは命令フェッチ )

3 0x03 TLBS(1) TLB 例外 ( ストア )

4 0x04 AdEL アドレスエラー例外 ( ロードまたは命令フェッチ )

5 0x05 AdES アドレスエラー例外 ( ストア )

6 0x06 IBE バスエラー例外 ( 命令フェッチ )

7 0x07 DBE バスエラー例外 ( データ参照 : ロードまたはストア )

8 0x08 Sys システムコール例外

9 0x09 Bp ブレークポイント例外

10 0x0a RI 予約済み命令例外

11 0x0b CPU コプロセッサ使用不可例外

12 0x0c Ov 算術オーバーフロー例外

13 0x0d Tr トラップ例外

14-18 0x0e-0x12 — 予約済み

19 0x13 TLBRI(1)I TLB 読み出し抑止

20 0x14 TLBEI(1) TLB 実行抑止

21-22 0x15-0x16 — 予約済み

23 0x17 WATCH(1) WatchHi/WatchLo アドレスへの参照

24 0x18 MCheck(1)マシンチェック

25 0x19 — 予約済み

26 0x1A DSPDis DSP ASE 状態無効例外

27-31 0x1B-0x1F — 予約済み

Note 1: この機能は、microAptiv™ MPU コアを採用した PIC32 デバイスでのみ利用できます。この機能が利用できるかどうかは、デバイス データシート内の「CPU」を参照してください。

DS61192A_JP - p. 50-46 Preliminary © 2013 Microchip Technology Inc.

Page 47: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

セクション 50. microAptiv™ コア採用デバイスの CPUm

icroA

ptiv™

コア

採用

デバ

イス

のC

PU

50

レジスタ 50-20: Cause: 例外要因レジスタ (CP0 レジスタ 13、Select 0)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R-x R-x R-x R-x R/W-0 R-0 R-x R-x

BD TI CE<1:0> DC PCI IC AP

23:16R/W-x R/W-x R-x U-0 U-0 U-0 R-x R-x

IV WP(1) FDCI — — — RIPL<7:6>

15:8R-x R-x R-x R-x R-x R-x R/W-x R/W-x

RIPL<5:0> IP1 IP0

7:0U-0 R-x R-x R-x R-x R-x U-0 U-0

— EXCCODE<4:0> — —

凡例

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31 BD: 分岐遅延ビット

直前の例外が分岐遅延スロット内で発生したのかどうかを示します。1 = 遅延スロット内で発生した

0 = 遅延スロット内で発生したのではない例外が発生した時に EXL ビット (Status<1>) が「0」であった場合、プロセッサは BD だけを更新します。

bit 30 TI: タイマ割り込みビット

このビットは、タイマ割り込みが保留中かどうかを示します ( 他の割り込みタイプ用の IP ビットと同様 )。1 = タイマ割り込みは保留中

0 = タイマ割り込みは保留中ではない

bit 29-28 CE<1:0>: コプロセッサ例外ビット

コプロセッサ使用不可例外が発生した時に参照されるコプロセッサのユニット番号です。ハードウェアは例外が発生するたびにこのビットを読み出しますが、コプロセッサ使用不可以外の全ての例外における値は不確定です。11 = 予約済み10 = 予約済み01 = 予約済み00 = コプロセッサ 0

bit 27 DC: カウント無効化レジスタビット

Count レジスタを使わない省電力アプリケーションでは、このビットを使ってカウントを停止する事で、不必要なトグリングを防げます。1 = Count レジスタのカウントを無効にする

0 = Count レジスタのカウントを有効にする

bit 26 PCI: パフォーマンス カウンタ割り込みビット

1 = パフォーマンス カウンタ割り込みが保留中0 = パフォーマンス カウンタ割り込みは保留中ではない

bit 25 IC: 割り込みチェーンビット

直前の IRET命令で割り込みチェーンが発生したかどうかを示します。

1 = 直前の IRET命令で割り込みチェーンが発生した0 = 直前の IRET命令で割り込みチェーンは発生しなかった

bit 24 AP: 割り込み自動プロローグ例外ビット

割り込み自動プロローグ中に例外が発生したかどうかを示します。

1 = 自動プロローグ動作中に例外が発生した0 = 自動プロローグ動作中に例外は発生しなかった

Note 1: このビットは、microAptiv™ MPU コアを採用した PIC32 デバイスでのみ利用できます。このビットが利用できるかどうかは、デバイス データシート内の「CPU」を参照してください。

© 2013 Microchip Technology Inc. Preliminary DS61192A_JP - p. 50-47

Page 48: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

PIC32 ファミリ リファレンス マニュアル

bit 23 IV: 割り込みベクタビット

割り込み例外に対して、通常の例外ベクタと割り込み専用ベクタのどちらを使うのかを示します。1 = 割り込み専用ベクタ (0x200) を使う

0 = 通常の例外ベクタ (0x180) を使うIV ビット (Cause<23>) が「1」かつ BEV ビット (Status<22>) が「0」の場合、割り込み専用ベクタはベクタ割り込みテーブルのベースを表します。

bit 22 WP: ウォッチ例外保留ビット (1)

このビットは、ウォッチ例外検出時にステータスビットEXLまたはERLがセットされていたためにウォッチ例外が延期された事を示します。

1 = ウォッチ例外は保留中0 = ウォッチ例外は保留中ではない

このビットがセットされている場合、ウォッチ例外は保留中であり、EXL および ERL ステータスビットが両方ともゼロになるまで例外処理は始まりません。ソフトウェアは、ウォッチ例外ハンドラ内でこのビットをクリアする事で、ウォッチ例外ループを回避する必要があります。

Note: ソフトウェアでこのビットを「0」から「1」に書き換えないでください。これを行った場合の結果は予測不可能です。

bit 21 FDCI: 高速デバッグ チャンネル割り込みビット

このビットは、FDC 割り込みが保留中である事を示します。

1 = 高速デバッグ チャンネル割り込みは保留中0 = 高速デバッグ チャンネル割り込みは保留中ではない

bit 20-18 未実装 :「0」として読み出し

bit 17-10 RIPL<7:0>: 要求中割り込み優先度ビット

このビットは、現在要求されている割り込みの優先度 (255 ~ 0) を示します。「0」は要求中の割り込みが存在しない事を意味します。

bit 9-8 IP<1:0>: ソフトウェア割り込み要求制御ビット

ソフトウェア割り込み要求を制御します。1 = ソフトウェア割り込みを要求する

0 = 割り込みを要求しないこれらのビットはシステム割り込みコントローラへエクスポートされ、そこで他の割り込み要因と一緒にEIC 割り込みモードで優先順位付けされます。

bit 7 未実装 :「0」として読み出し

bit 6-2 EXCCODE<4:0>: 例外コードビット

例外コードの一覧を表 50-12 に記載しています。

bit 1-0 未実装 :「0」として読み出し

レジスタ 50-20: Cause: 例外要因レジスタ (CP0 レジスタ 13、Select 0) ( 続き )

Note 1: このビットは、microAptiv™ MPU コアを採用した PIC32 デバイスでのみ利用できます。このビットが利用できるかどうかは、デバイス データシート内の「CPU」を参照してください。

DS61192A_JP - p. 50-48 Preliminary © 2013 Microchip Technology Inc.

Page 49: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

セクション 50. microAptiv™ コア採用デバイスの CPUm

icroA

ptiv™

コア

採用

デバ

イス

のC

PU

50

50.12.21 View_RIPL レジスタ (CP0 レジスタ 13、Select 4)

このレジスタの RIPL ビットは、Cause レジスタ内の RIPL ビットへの読み出しアクセスを提供します。このレジスタを使う事で、Cause レジスタの RIPL ビットを出し入れする事なく、要求中割り込みの優先度を読み出せます。

レジスタ 50-21: View_RIPL: 要求中割り込み優先度表示レジスタ (CP0 レジスタ 13、Select 4)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

23:16U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

15:8U-0 U-0 U-0 U-0 U-0 U-0 R-0 R-0

— — — — — — RIPL<7:6>

7:0R-0 R-0 R-0 R-0 R-0 R-0 R/W-0 R/W-0

RIPL<5:0> IP<1:0>

凡例

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-10 未実装 :「0」として読み出し

bit 9-2 RIPL<7:0>: 要求中割り込み優先度ビット

EIC割り込みモードが有効な場合、このビットは保留中割り込みの現在の要求優先度 (0~255)を示します。

bit 1-0 IP<1:0>: ソフトウェア割り込み保留ビット

EIC 割り込みモードが有効ではない場合に、どのソフトウェア割り込みを保留にするのかを制御します。

© 2013 Microchip Technology Inc. Preliminary DS61192A_JP - p. 50-49

Page 50: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

PIC32 ファミリ リファレンス マニュアル

50.12.22 NestedExc レジスタ (CP0 レジスタ 13、Select 5)

NestedExc レジスタは、現在の例外が承認される前の Status<1> (EXL) および Status<2> (ERL)の値を保持する読み出し専用レジスタです。

レジスタ 50-22: NestedExc: ネステッド例外レジスタ (CP0 レジスタ 13、Select 5)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

23:16U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

15:8U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

7:0U-0 U-0 U-0 U-0 U-0 R/W-x R/W-x U-0

— — — — — NERL NEXL —

凡例 r = 予約済みビット

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-3 未実装 :「0」として読み出し

bit 2 NERL: ネステッドエラー レベルビット

このビットは、現在の例外が承認される前の ERL ビットの値を保持します。このビットは、ステータス レジスタ内の EXL または ERL ビットをセットする全ての例外によって更新されます。デバッグ例外はこのビットを更新しません。

bit 1 NEXL: ネステッド例外レベルビット

このビットは、現在の例外が承認される前の EXL ビットの値を保持します。このビットは、EXL ビットがセットされていない場合に例外プログラム カウンタを更新する例外 (MCheck、割り込み、アドレスエラー、全ての TLB 例外、バスエラー、CopUnusable、予約済み命令、オーバーフロー、トラップ、Syscall、FPU等 ) によって更新されます。これらの例外タイプは、Status レジスタの EXL ビットの値に関係なくこのレジスタ フィールドを更新します。ErrorEPC を更新する例外タイプ ( リセット、ソフトリセット、NMI、キャッシュエラー ) はこのビットを更新しません。また、デバッグ例外もこのビットを更新しません。

bit 0 未実装 :「0」として読み出し

DS61192A_JP - p. 50-50 Preliminary © 2013 Microchip Technology Inc.

Page 51: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

セクション 50. microAptiv™ コア採用デバイスの CPUm

icroA

ptiv™

コア

採用

デバ

イス

のC

PU

50

50.12.23 EPC レジスタ (CP0 レジスタ 14、Select 0)

例外プログラムカウンタ (EPC) は読み / 書き可能レジスタです。このレジスタは、例外をサービスした後の処理再開位置のアドレスを格納します。EPC レジスタの全てのビットは効果を持ち、書き込み可能です。

同期した ( 識別可能な ) 例外の場合、EPC レジスタは下記のいずれかを格納します。

• 例外の直接原因となった命令の仮想アドレス

• 例外を引き起こした命令が分岐遅延スロット内にあり、かつ、Cause レジスタの分岐遅延ビットがセットされている場合、直前の BRANCHまたは JUMP命令の仮想アドレス

新しい例外が発生した時、Status レジスタの EXL ビットがセットされていると、プロセッサはEPC レジスタに書き込みませんが、MTC0命令を使ってこのレジスタに書き込む事ができます。

PIC32 ファミリは MIPS16e® または microMIPS™ ASE を実装しているため、MFC0 命令による EPC レジスタの読み出しは、デスティネーション GPR に下記の値を返します。

GPR[rt] ExceptionPC31..1 || ISAMode0

すなわち、例外 PC の上位 31 ビットに ISA<1:0> ビット (Config3<15:14>) の下位ビットを連結した内容が GPR に書き込まれます。

同様に、MTC0 命令による EPC レジスタへの書き込みは、GPR から読み出した値を、下記のように例外 PC と ISA<1:0> ビット (Config3<15:14>) に分配します。

ExceptionPC GPR[rt]31..1 || 0ISAMode 2#0 || GPR[rt]0

すなわち、GPR の上位 31 ビットを例外 PC の上位 31 ビットに書き込み、下位 1 ビットをクリアします。また、GPR の 下位ビットを ISA<1:0> ビット (Config3<15:14>) の下位ビットに書き込み、上位ビットをクリアします。

レジスタ 50-23: EPC: 例外プログラム カウンタレジスタ (CP0 レジスタ 14、Select 0)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x

EPC<31:24>

23:16R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x

EPC<23:16>

15:8R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x

EPC<15:8>

7:0R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x

EPC<7:0>

凡例

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-0 EPC<31:0>: 例外プログラム カウンタビット

© 2013 Microchip Technology Inc. Preliminary DS61192A_JP - p. 50-51

Page 52: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

PIC32 ファミリ リファレンス マニュアル

50.12.24 NestedEPC レジスタ (CP0 レジスタ 14、Select 2)

NestedEPC レジスタは、下記の点を除いて EPC レジスタと同様に機能する読み / 書き可能レジスタです。

• NestedEPC レジスタは、Status<1> (EXL) の値を無視するため、ネステッド例外を含む全ての例外によって更新されます。

• ERET/DERET/IERET 命令は NestedEPC レジスタを使いません。NestedEPC に保存されているアドレスへ戻るには、ソフトウェアで NestedEPC レジスタの値を EPC レジスタにコピーする必要があります。

レジスタ 50-24: NestedEPC: ネステッド例外プログラム カウンタレジスタ (CP0 レジスタ 14、Select 2)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x

EPC<31:24>

23:16R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x

EPC<23:16>

15:8R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x

EPC<15:8>

7:0R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x

EPC<7:0>

凡例

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-0 EPC<31:0>: ネステッド例外プログラム カウンタビット

これらのビットは、EXL ビットがセットされていない場合に例外プログラム カウンタを更新する例外(MCheck、割り込み、アドレスエラー、全ての TLB 例外、バスエラー、CopUnusable、予約済み命令、オーバーフロー、トラップ、Syscall、FPU 等 ) によって更新されます。これらの例外タイプは、EXL の値に関係なくこのレジスタ フィールドを更新します。例外プログラム カウンタを更新する例外タイプ ( リセット、ソフトリセット、NMI、キャッシュエラー ) はこれらのビットを更新しません。また、デバッグ例外もこれらのビットを更新しません。

DS61192A_JP - p. 50-52 Preliminary © 2013 Microchip Technology Inc.

Page 53: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

セクション 50. microAptiv™ コア採用デバイスの CPUm

icroA

ptiv™

コア

採用

デバ

イス

のC

PU

50

50.12.25 PRID レジスタ (CP0 レジスタ 15、Select 0)

プロセッサ ID (PRID) レジスタは 32 ビットの読み出し専用レジスタです。このレジスタは、プロセッサに関する情報 ( 製造者、製造者オプション、ID、リビジョンレベル ) を格納します。

レジスタ 50-25: PRID: プロセッサ ID レジスタ (CP0 レジスタ 15、Select 0)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 R-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

23:16R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-1

COMPANYID<23:16>

15:8R-1 R-0 R-0 R-1 R-1 R-1 R-1 R-0

PROCESSORID<15:8>

7:0R-x R-x R-x R-x R-x R-x R-x R-x

MAJORREV<2:0> MINORREV<2:0> PATCHREV<1:0>

凡例

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-24 未実装 :「0」として読み出し

bit 23-16 COMPANYID<7:0>: 製造者 ID ビット

PIC32 では、これらのビットは「1」( プロセッサの製造者 / 設計者は MIPS Technologies, Inc. である事を示す ) に設定されています。

bit 15-8 PROCESSORID<7:0>: プロセッサ ID ビット

ソフトウェアは、これらのビットを使って MIPS Technologies 社製プロセッサのタイプを識別できます。0x9E = microAptiv™ マイクロプロセッサ コア

bit 7-5 MAJORREV<2:0>: プロセッサ メジャー リビジョン ID ビット

ソフトウェアは、これらのビットを使って同じプロセッサタイプのリビジョンを識別できます。この値は、プロセッサコアの主要な変更のたびに増えます。

bit 4-2 MINORREV<2:0>: プロセッサ マイナー リビジョン ID ビット

この値は、プロセッサに小規模な変更が加えられるたびに増え、メジャー リビジョンが更新されるとリセットされます。

bit 1-0 PATCHREV<1:0>: プロセッサ パッチレベル ID ビット

これらのビットの値は、旧バージョンのプロセッサにパッチによる変更が加えられるたびに増えます。

© 2013 Microchip Technology Inc. Preliminary DS61192A_JP - p. 50-53

Page 54: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

PIC32 ファミリ リファレンス マニュアル

50.12.26 Ebase レジスタ (CP0 レジスタ 15、Select 1)

Ebase レジスタは読み / 書き可能なレジスタです。このレジスタは、BEV ビット (Status<22>)が「0」の時に使う例外ベクタのベースアドレスと、読み出し専用の CPU 番号を格納します。CPU 番号は、マルチプロセッサ システムでソフトウェアがプロセッサを識別するために使います。

ソフトウェアは Ebase レジスタを使ってマルチプロセッサ システム内の特定のプロセッサを識別できます。特に全く同じプロセッサを複数個使うシステムでは、各プロセッサの例外ベクタを識別するためにこのレジスタを使います。BEV ビットが「0」の場合、Ebase レジスタのbit 31-12 にゼロを連結する事で例外ベクタのベースアドレスを形成します。BEV ビットが「1」の場合、または EJTAG デバッグ例外が発生した場合、例外ベクタのベースアドレスには固定された既定値を使います。Ebase レジスタは、bit 31-12 のリセット状態によって、0x80000000に初期化されます。

例外ベースアドレスを kseg0 または kseg1 ( マッピングされない仮想アドレス セグメント ) 内に配置するために、Ebase レジスタの bit 31-30 の値は 2#10 に固定されています。

Ebase レジスタの値の変更は、BEV ビットが「1」の時に行う必要があります。BEV ビット(Status<22>) が「0」の時に Ebase<17:0> ビットの値を異なる値に書き換えた場合、プロセッサの動作は不確定です。

Ebase レジスタの bit 31-20 を組み合わせる事で、例外ベクタのベースアドレスを任意の 4 KBページ境界に配置できます。

レジスタ 50-26: Ebase: 例外ベースレジスタ (CP0 レジスタ 15、Select 1)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-1 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

— — EBASE<17:12>

23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

EBASE<11:4>

15:8R/W-0 R/W-0 R/W-0 R/W-0 U-0 U-0 R-0 R-0

EBASE<3:0> — — CPUNUM<9:8>

7:0R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0

CPUNUM<7:0>

凡例

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31 未実装 :「1」として読み出し

bit 30 未実装 :「0」として読み出し

bit 29-12 EBASE<17:0>: 例外ベクタ ベースアドレス ビット

bit 31-30 と組み合わせる事で、BEV ビット (Status<22>) が「0」の時の例外ベクタのベースアドレスを指定します。

bit 11-10 未実装 :「0」として読み出し

bit 9-0 CPUNUM<9:0>: CPU 番号ビット

これらのビットは、マルチプロセッサ システム内の CPU の番号を指定します。ソフトウェアは、この番号を使って特定のプロセッサを識別できます。シングル プロセッサ システムでは、この値は「0」に設定されます。

DS61192A_JP - p. 50-54 Preliminary © 2013 Microchip Technology Inc.

Page 55: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

セクション 50. microAptiv™ コア採用デバイスの CPUm

icroA

ptiv™

コア

採用

デバ

イス

のC

PU

50

50.12.27 CDMMBase レジスタ (CP0 レジスタ 15、Select 2)

このレジスタは、共通デバイスメモリ マップ (CDMM) の 36 ビット物理ベースアドレスを定義します。PIC32 は 32 ビットデバイスであるため、36 ビットアドレスの上位 4 ビットは「0」です。CDMM は、MIPS プロセッサ内で I/O デバイス コンフィグレーション レジスタを割り当てるために予約されている物理アドレス空間の一領域です。CDMM は、各種のデバイス マッピングを 1 つの領域に集約してメモリアドレス空間の断片化を防ぐために有効です。PIC32 のCDMM は高速デバッグ チャンネル (FDC) 制御レジスタを格納します。

レジスタ 50-27: CDMMBase: CDMM デバイスメモリ マップベース レジスタ (CP0 レジスタ 15、Select 2)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x

CDMMUA<20:13>

23:16R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x

CDMMUA<12:5>

15:8R/W-x R/W-x R/W-x R/W-x R/W-x R/W-0 R-0 R-0

CDMMUA<4:0> EN CI CDMMSize<8>

7:0R-0 R-0 R-0 R-0 R-0 R-0 R-1 R-0

CDMMSize<7:0>

凡例

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-11 CDMMUA: CDMM 上位アドレスビット

メモリにマップされたレジスタのベース物理アドレスの bit 35-15 を格納します。未実装ビットへの書き込みは無視され、未実装ビットからの読み出しは「0」を返します。

bit 10 EN: CDMM イネーブルビット

1 = CDMM 領域を有効にする0 = CDMM 領域を無効にする

bit 9 CI: デバイスレジスタ ブロック予約済みビット1 = CDMM の先頭の 64 バイト デバイスレジスタ ブロックは、IO デバイスレジスタ用に使わずに、CDMM

領域の挙動を管理する追加のレジスタ用に予約する0 = CDMM の先頭の 64 バイト デバイスレジスタ ブロックを予約しない

bit 8-0 CDMMSize: CDMM サイズビット

これらのビットは、CPU コア内でインスタンス化されている 64 バイト デバイスレジスタ ブロックの数を示します。

111111111 = 512 個のデバイスレジスタ ブロック

000000000 = 1 個のデバイスレジスタ ブロック

© 2013 Microchip Technology Inc. Preliminary DS61192A_JP - p. 50-55

Page 56: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

PIC32 ファミリ リファレンス マニュアル

50.12.28 Config レジスタ (CP0 レジスタ 16、Select 0)

Config レジスタは、各種のコンフィグレーションと機能に関する情報を定義します。Config レジスタ内の大部分のフィールドは、リセット例外処理中にハードウェアによって初期化されます ( 一部のフィールドだけ値を保持 )。

Note: microAptiv コア コンフィグレーション レジスタのビットフィールドと既定値は、デバイスによって異なります。ご使用になるデバイスのコア コンフィグレーションについては、対応するデバイス データシート内の「microAptiv コア コンフィグレーション」を参照してください。

レジスタ 50-28: Config: コンフィグレーション レジスタ (CP0 レジスタ 16、Select 0)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24r-1 R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R-x

— K23<2:0>(1) KU<2:0>(1) ISP

23:16

R-x R-x R-x R-x U-0 R-x R-x R-x

DSP UDI SB MDU — MM<1:0>(2) DS(1)

BM(2)

15:8R-0 R-0 R-0 R-0 R-0 R-1 R-0 R-x

BE AT<1:0> AR<2:0> MT<2:1>

7:0R-x U-0 U-0 U-0 U-0 R/W-x R/W-x R/W-x

MT<0> — — — — K0<2:0>

凡例 r = 予約済みビット

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31 予約済み : このビットは、Config1 レジスタが存在する事を示すために、ハードウェアで「1」に結線されています。

bit 30-28 K23<2:0>: kseg2 および kseg3 ビット (1)

これらのビットは、kseg2 および kseg3 アドレス セグメントのキャッシュ適用性を制御します。ビットのエンコードについては表 50-13 を参照してください。

bit 27-25 KU<2:0>: kuseg および useg ビット (1)

これらのビットは、kuseg および useg アドレス セグメントのキャッシュの適用性を制御します。ビットのエンコードについては表 50-13 を参照してください。

bit 24 ISP: 命令スクラッチパッド RAM ビット

このビットは、命令スクラッチパッド RAM が実装されているかどうかを示します。

1 = 命令スクラッチパッド RAM は実装されている

0 = 命令スクラッチパッド RAM は実装されていない

bit 23 DSP: データ スクラッチパッド RAM ビット

このビットは、データ スクラッチパッド RAM が実装されているかどうかを示します。

1 = データ スクラッチパッド RAM は実装されている

0 = データ スクラッチパッド RAM は実装されていない

Note 1: このビットは、microAptiv™ MCU マイクロプロセッサ コアを採用したデバイスだけで利用できます。microAptiv™ MPU マイクロプロセッサ コアを採用したデバイスでは、このビットは予約済みであり、読み出し値は常に「0」です。ご使用になるデバイスでこのビットを利用できるかどうかは、デバイス データシート内の「CPU」を参照してください。

2: このビットは、microAptiv™ MPU マイクロプロセッサ コアを採用したデバイスだけで利用できます。ご使用になるデバイスでこのビットを利用できるかどうかは、デバイス データシート内の「CPU」を参照してください。

DS61192A_JP - p. 50-56 Preliminary © 2013 Microchip Technology Inc.

Page 57: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

セクション 50. microAptiv™ コア採用デバイスの CPUm

icroA

ptiv™

コア

採用

デバ

イス

のC

PU

50

bit 22 UDI: ユーザ定義ビット

このビットは、CorExtend ユーザ定義命令が実装されている事を示します。1 = ユーザ定義命令は実装されている

0 = ユーザ定義命令は実装されていない

bit 21 SB: SimpleBE ビット

このビットは、SimpleBE バスモードが有効かどうかを示します。1 = 内部バス インターフェイス上で simple バイトだけ有効にできる

0 = 内部バス インターフェイス上で予約済みバイトを有効にしない

このビットはハードウェアで「1」( 内部バス インターフェイス上で simple バイトだけ有効にできる ) に結線されています。

bit 20 MDU: 乗除算ユニットビット

1 = 反復計算 / メモリ節約型 MDU0 = 高速 / 高性能型 MDU

このビットはハードウェアで「0」( 高速 / 高性能型 MDU) に結線されています。

bit 19 未実装 :「0」として読み出し

bit 18-17 MM<1:0>: マージモード ビット (2)

11 = 予約済み10 = マージを許可する01 = 予約済み00 = マージを許可しない

bit 16 DS: デュアル SRAM ビット (1)

1 = 命令 / データで別々の SRAM 内部バスインターフェイスを使う

0 = 命令 / データで単一の SRAM 内部バス インターフェイスを使う

BM: バーストモード ビット (2)

このビットはハードウェアで「0」( バースト順はシーケンシャル ) に結線されています。

bit 15 BE: ビッグエンディアン ビット

プロセッサがどちらのエンディアン モードで動作しているのかを示します。PIC32は常にリトルエンディアンです。1 = ビッグエンディアン

0 = リトルエンディアン

bit 14-13 AT<1:0>: アーキテクチャ タイプビット

プロセッサが実装しているアーキテクチャのタイプを示します。これらのビットは「00」(MIPS32® アーキテクチャ ) に固定されています。

bit 12-10 AR<2:0>: アーキテクチャ リビジョン レベルビットアーキテクチャのリビジョンレベルを示します。これらのビットは「001」(MIPS32® リリース 2) に固定されています。111 = 予約済み110 = 予約済み101 = 予約済み100 = 予約済み011 = 予約済み010 = 予約済み

001 = リリース 2000 = リリース 1

レジスタ 50-28: Config: コンフィグレーション レジスタ (CP0 レジスタ 16、Select 0) ( 続き )

Note 1: このビットは、microAptiv™ MCU マイクロプロセッサ コアを採用したデバイスだけで利用できます。microAptiv™ MPU マイクロプロセッサ コアを採用したデバイスでは、このビットは予約済みであり、読み出し値は常に「0」です。ご使用になるデバイスでこのビットを利用できるかどうかは、デバイス データシート内の「CPU」を参照してください。

2: このビットは、microAptiv™ MPU マイクロプロセッサ コアを採用したデバイスだけで利用できます。ご使用になるデバイスでこのビットを利用できるかどうかは、デバイス データシート内の「CPU」を参照してください。

© 2013 Microchip Technology Inc. Preliminary DS61192A_JP - p. 50-57

Page 58: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

PIC32 ファミリ リファレンス マニュアル

bit 9-7 MT<2:0>: MMU タイプビットmicroAptiv™ MCU マイクロプロセッサ コアを採用した PIC32 デバイスは、固定マッピング MMU を使います。 microAptiv™ MPU マイクロプロセッサ コアを採用した PIC32 デバイスは、TLB ベースの MMU を使います。111 = 予約済み110 = 予約済み101 = 予約済み100 = 予約済み011 = 固定マッピング

010 = 予約済み001 = 標準 TLB000 = 予約済み

bit 6-3 未実装 :「0」として読み出し

bit 2-0 K0<2:0>: Kseg0 ビットKseg0 コヒーレンシ アルゴリズムです。ビットのエンコードについては表 50-13 を参照してください。

レジスタ 50-28: Config: コンフィグレーション レジスタ (CP0 レジスタ 16、Select 0) ( 続き )

Note 1: このビットは、microAptiv™ MCU マイクロプロセッサ コアを採用したデバイスだけで利用できます。microAptiv™ MPU マイクロプロセッサ コアを採用したデバイスでは、このビットは予約済みであり、読み出し値は常に「0」です。ご使用になるデバイスでこのビットを利用できるかどうかは、デバイス データシート内の「CPU」を参照してください。

2: このビットは、microAptiv™ MPU マイクロプロセッサ コアを採用したデバイスだけで利用できます。ご使用になるデバイスでこのビットを利用できるかどうかは、デバイス データシート内の「CPU」を参照してください。

表 50-13: キャッシュ コヒーレンシ属性

K0<2:0> 値 キャッシュ コヒーレンシ属性

011 キャッシュ可能、非コヒーレント、ライトバック、ライトアロケート有効

010 キャッシュせず

001 キャッシュ可能、非コヒーレント、ライトスルー、ライトアロケート有効

000 キャッシュ可能、非コヒーレント、ライトスルー、ライトアロケート無効

DS61192A_JP - p. 50-58 Preliminary © 2013 Microchip Technology Inc.

Page 59: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

セクション 50. microAptiv™ コア採用デバイスの CPUm

icroA

ptiv™

コア

採用

デバ

イス

のC

PU

50

50.12.29 Config1 レジスタ (CP0 レジスタ 16、Select 1)

Config1 レジスタは、Config レジスタの補助として、コアが実装する機能に関する追加の情報を格納します。Config1 レジスタ内のフィールドは全て読み出し専用です。

Note: microAptiv コア コンフィグレーション レジスタのビットフィールドと既定値は、デバイスによって異なります。ご使用になるデバイスのコア コンフィグレーションについては、デバイス データシート内の「microAptiv コア コンフィグレーション」を参照してください。

レジスタ 50-29: Config1: コンフィグレーション レジスタ 1(CP0 レジスタ 16、Select 1)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24r-1 R-x R-x R-x R-x R-x R-x R-x

— MMU Size<5:0>(1) IS<2>

23:16R-x R-x R-x R-x R-x R-x R-x R-x

IS<1:0>(1) IL<2:0>(1) IA<2:0>(1)

15:8R-x R-x R-x R-x R-x R-x R-x R-x

DS<2:0>(1) DL<2:0>(1) DA<2:1>(1)

7:0R-x U-0 U-0 R-x R-x R-x R-x R-x

DA<0> — — PC WR CA EP FP

凡例 r = 予約済みビット

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31 予約済み : このビットはハードウェアで「1」(Config2 レジスタが存在する ) に結線されています。

bit 30-25 MMU Size: [TLB エントリの個数 - 1] の値を格納します (1)

11111 = 32 個の TLB エントリ•••

00000 = TLB エントリなし

bit 24-22 IS<2:0>: 命令キャッシュセット ビット (1)

命令キャッシュラインの数を格納します。0x0 = 640x1 = 1280x2 = 2560x3 = 5120x4 = 10240x5 = 予約済み0x6 = 予約済み0x7 = 予約済み

bit 21-19 IL<2:0>: 命令キャッシュライン ビット (1)

命令キャッシュラインのサイズを格納します。0x0 = 命令キャッシュなし0x3 = 16 バイトその他の値は全て予約済みです。

Note 1: microAptiv™ MCU マイクロプロセッサ コアを採用した PIC32 デバイスでは、これらのビットは予約済みであり、読み出し値は常に「0」です。ご使用になるデバイスでこれらのビットを利用できるかどうかは、デバイス データシート内の「CPU」を参照してください。

© 2013 Microchip Technology Inc. Preliminary DS61192A_JP - p. 50-59

Page 60: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

PIC32 ファミリ リファレンス マニュアル

bit 18-16 IA<2:0>: 命令キャッシュ連想度ビット (1)

命令キャッシュの連想度を格納します。0x0 = ダイレクトマップ0x1 = 2 way0x1 = 3 way0x1 = 4 way0x4 = 予約済み0x5 = 予約済み0x6 = 予約済み0x7 = 予約済み

bit 15-13 DS<2:0>: データ キャッシュセット ビット (1)

way あたりのデータ キャッシュ セットの数を格納します。

0x0 = 640x1 = 1280x2 = 2560x3 = 5120x4 = 10240x5 = 予約済み0x6 = 予約済み0x7 = 予約済み

bit 12-10 DL<2:0>: データ キャッシュライン ビット (1)

データ キャッシュラインのサイズを格納します。0x0 = 命令キャッシュなし0x3 = 16 バイトその他の値は全て予約済みです。

bit 9-7 DA<2:0>: データ キャッシュ連想度ビット (1)

データキャッシュの セット連想度のタイプを格納します。0x0 = ダイレクトマップ0x1 = 2 way0x1 = 3 way0x1 = 4 way0x4 = 予約済み0x5 = 予約済み0x6 = 予約済み0x7 = 予約済み

bit 6-5 未実装 :「0」として読み出し

bit 4 PC: パフォーマンス カウンタビット

パフォーマンス カウンタ レジスタを実装しているかどうかを示します。1 = プロセッサコアはパフォーマンス カウンタを実装している0 = プロセッサコアはパフォーマンス カウンタを実装していない

bit 3 WR: ウォッチレジスタ存在ビット

1 = ウォッチレジスタは存在しない

0 = 1 つまたは複数のウォッチレジスタが存在する

bit 2 CA: コード圧縮実装ビット

1 = MIPS16e® を実装している

0 = MIPS16e® は実装していない

bit 1 EP: EJTAG 実装ビット

1 = EJTAG ユニットを実装している0 = EJTAG ユニットは実装していない

bit 0 FP: 浮動小数点ユニット実装ビット

1 = 浮動小数点ユニットを実装している0 = 浮動小数点ユニットは実装していない

レジスタ 50-29: Config1: コンフィグレーション レジスタ 1(CP0 レジスタ 16、Select 1) ( 続き )

Note 1: microAptiv™ MCU マイクロプロセッサ コアを採用した PIC32 デバイスでは、これらのビットは予約済みであり、読み出し値は常に「0」です。ご使用になるデバイスでこれらのビットを利用できるかどうかは、デバイス データシート内の「CPU」を参照してください。

DS61192A_JP - p. 50-60 Preliminary © 2013 Microchip Technology Inc.

Page 61: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

セクション 50. microAptiv™ コア採用デバイスの CPUm

icroA

ptiv™

コア

採用

デバ

イス

のC

PU

50

50.12.30 Config2 レジスタ (CP0 レジスタ 16、Select 2)

Config2 レジスタは、Config レジスタの補助として、 コアが実装する追加機能に関する情報を格納するために予約されています。Config2 レジスタは、レベル 2/3 キャッシュのコンフィグレーションを示します。PIC32 コアは、L2/L3 キャッシュをサポートしないため、これらのビットは「0」にリセットされます。Config2 レジスタ内のビットは全て読み出し専用です。

Note: microAptiv コア コンフィグレーション レジスタのビットフィールドと既定値は、デバイスによって異なります。ご使用になるデバイスのコア コンフィグレーションについては、デバイス データシート内の「microAptiv コア コンフィグレーション」を参照してください。

レジスタ 50-30: Config2: コンフィグレーション レジスタ 2 (Register 2; CP0 レジスタ 16、Select 2)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24r-1 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

23:16U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

15:8U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

7:0U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

凡例 r = 予約済みビット

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31 予約済み : このビットはハードウェアで「1」(Config3 レジスタが存在する ) に結線されています。

bit 30-0 未実装 :「0」として読み出し

© 2013 Microchip Technology Inc. Preliminary DS61192A_JP - p. 50-61

Page 62: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

PIC32 ファミリ リファレンス マニュアル

50.12.31 Config3 レジスタ (CP0 レジスタ 16、Select 3)

Config3 レジスタは、追加機能に関する情報を格納します。Config3 レジスタ内のフィールドは全て読み出し専用です。

Note: microAptiv コア コンフィグレーション レジスタのビットフィールドと既定値は、デバイスによって異なります。ご使用になるデバイスのコア コンフィグレーションについては、デバイス データシート内の「microAptiv コア コンフィグレーション」を参照してください。

レジスタ 50-31: Config3: コンフィグレーション レジスタ 3(CP0 レジスタ 16、Select 3)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24r-1 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

23:16U-0 R-0 R-x R-0 R-0 R-0 R-x R/W-y

— IPLW<1:0> MMAR<2:0> MCU ISAONEXC

15:8R-y R-y R-x R-x R-x R-x U-0 R-x

ISA<1:0> ULRI RXI(1) DSP2P DSPP — ITL

7:0U-0 R-x R-x R-x R-x U-0 U-0 R-x

— VEIC VINT SP(1) CDDM — — TL

凡例

U = 未実装ビット、「0」として読み出しy = POR 時に BOOTISA コンフィグレーション ビット (CFG0<6>) からの値に設定

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31 予約済み : このビットはハードウェアで「1」(Config4 レジスタが存在する ) に結線されています。

bit 30-23 未実装 : 「0」として読み出し

bit 22-21 IPLW<22:21>: Status レジスタの IPL ビットと Cause レジスタの RIPL ビットのビット幅

11 = 予約済み10 = 予約済み01 = IPL および RIPL ビットは 8 ビット幅

00 = IPL および RIPL ビットは 6 ビット幅

IPL フィールドを 8 ビット幅とする場合、Status レジスタの bit 18 と 16 を IPL フィールドの 上位ビットと第 2 ビットとして使います。

RIPL フィールドを 8 ビット幅とする場合、Cause レジスタの bit 17 と 16 を RIPL フィールドの 上位ビットと第 2 ビットとして使います。

Note: microAptiv™ コアを採用した PIC32 デバイスは、8 ビットの IPL および RIPL フィールドを使うため、これらのビットは「01」に設定されます。

bit 20-18 MMAR<2:0>: microMIPS™ アーキテクチャ リビジョンレベル ビット

111 = 予約済み110 = 予約済み101 = 予約済み100 = 予約済み011 = 予約済み

010 = 予約済み001 = 予約済み000 = リリース 1

bit 17 MCU: MIPS® MCU™ ASE 実装ビット

1 = MCU™ ASE を実装している0 = MCU™ ASE は実装していない

Note 1: このビットは、microAptiv™ MPU マイクロプロセッサ コアを採用したデバイスだけで利用できます。このビットが利用できるかどうかは、デバイス データシート内の「CPU」を参照してください。

DS61192A_JP - p. 50-62 Preliminary © 2013 Microchip Technology Inc.

Page 63: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

セクション 50. microAptiv™ コア採用デバイスの CPUm

icroA

ptiv™

コア

採用

デバ

イス

のC

PU

50

bit 16 ISAONEXC: 例外時 ISA ビット

例外への移行時に使う命令 ISA を示します。ベクタが EBASE からオフセットしている例外に影響します。このビットのリセット値は、BOOTISA コンフィグレーション ビット (CFG0<6>) によって決まります。

1 = 例外ベクタへの移行に microMIPS™ を使う0 = 例外ベクタへの移行に MIPS32® ISA を使う

bit 15-14 ISA<1:0>: 実装している命令セットを示します。

このビットのリセット値は、BOOTISA コンフィグレーション ビット (CFG0<6>) によって決まります。

11 = MIPS32® と microMIPS™ の両方を実装しており、リセット後に microMIPS™ を使う10 = MIPS32® と microMIPS™ の両方を実装しており、リセット後に MIPS32® ISA を使う01 = microMIPS™ だけを実装している00 = MIPS32® だけを実装している

bit 13 ULRI : UserLocal レジスタ実装ビット

このビットは、UserLocal コプロセッサ 0 レジスタを実装しているかどうかを示します。1 = UserLocal レジスタを実装している0 = UserLoca レジスタは実装していない

bit 12 RXI: PageGrain 内 RIE/XIE 実装ビット (1)

1 = RIE および XIE ビットを実装している0 = RIE および XIE ビットは実装していない

bit 11 DSP2P: MIPS DSP ASE リビジョン 2 実装ビット1 = DSP リビジョン 2 を実装している0 = DSP リビジョン 2 は実装していない

bit 10 DSPP: MIPS DSP ASE 実装ビット1 = DSP を実装している0 = DSP は実装していない

bit 9 未実装 :「0」として読み出し

bit 8 ITL: iFlowtrace® ハードウェア ビット

このビットは、iFlowtrace® ハードウェアを実装しているかどうかを示します。1 = コアは iFlowtrace® を実装している0 = コアは iFlowtrace® を実装していない

bit 7 未実装 :「0」として読み出し

bit 6 VEIC: 外部ベクタ割り込みコントローラ実装ビット

このビットは、外部割り込みコントローラのサポートを実装しているかどうかを示します。1 = EIC 割り込みモードをサポートする

0 = EIC 割り込みモードはサポートしないPIC32 デバイスは MIPS「外部割り込みコントローラ」を内蔵しているため、このビットの読み出し値は

「1」です。

bit 5 VINT: ベクタ割り込み実装ビット

このビットは、ベクタ割り込みを実装しているかどうかを示します。1 = ベクタ割り込みを実装している

0 = ベクタ割り込みは実装していないPIC32 コアはベクタ割り込みを実装しているため、このビットは常に「1」です。

bit 4 SP: スモールページ実装ビット (1)

このビットは、スモールページ (1 KB) のサポートを実装しているかどうかを示します。1 = スモールページをサポートする

0 = スモールパージはサポートしない

bit 3 CDMM: 共通デバイスメモリ マップ実装ビット

このビットは、共通デバイスメモリ マップ (CDMM) のサポートを実装しているかどうかを示します。1 = CDMM をサポートする0 = CDMM はサポートしない

bit 2-1 未実装 :「0」として読み出し

bit 0 TL: トレースロジック実装ビット

このビットは、トレースロジックを実装しているかどうかを示します。

1 = トレースロジックを実装している0 = トレースロジックは実装していない

レジスタ 50-31: Config3: コンフィグレーション レジスタ 3(CP0 レジスタ 16、Select 3) ( 続き )

Note 1: このビットは、microAptiv™ MPU マイクロプロセッサ コアを採用したデバイスだけで利用できます。このビットが利用できるかどうかは、デバイス データシート内の「CPU」を参照してください。

© 2013 Microchip Technology Inc. Preliminary DS61192A_JP - p. 50-63

Page 64: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

PIC32 ファミリ リファレンス マニュアル

50.12.32 Config4 レジスタ (CP0 レジスタ 16、Select 4)

Config4 レジスタは、Config レジスタの補助として、コアが実装する機能に関する追加の情報を格納します。PIC32 の Config4 レジスタは、Config5 を実装しているかどうかを示します。Config4 レジスタ内のフィールドは全て読み出し専用です。

Note: microAptiv コア コンフィグレーション レジスタのビットフィールドと既定値は、デバイスによって異なります。ご使用になるデバイスのコア コンフィグレーションについては、デバイス データシート内の「microAptiv コア コンフィグレーション」を参照してください。

レジスタ 50-32: Config4: コンフィグレーション レジスタ 4 (Register 4; CP0 レジスタ 16、Select 2)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24r-1 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

23:16U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

15:8U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

7:0U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

凡例 r = 予約済み

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31 予約済み : このビットは、ハードウェアで「1」(Config5 レジスタを実装している ) に結線されています。

bit 30-0 未実装 :「0」として読み出し

DS61192A_JP - p. 50-64 Preliminary © 2013 Microchip Technology Inc.

Page 65: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

セクション 50. microAptiv™ コア採用デバイスの CPUm

icroA

ptiv™

コア

採用

デバ

イス

のC

PU

50

50.12.33 Config5 レジスタ (CP0 レジスタ 16、Select 5)

Config5 レジスタは、Config レジスタの補助として、コアが実装する機能に関する追加の情報を格納します。Config5 レジスタは、ネスト異常検出機能を実装しているかどうかを示します。Config5 レジスタ内のフィールドは全て読み出し専用です。

Note: microAptiv コア コンフィグレーション レジスタのビットフィールドと既定値は、デバイスによって異なります。ご使用になるデバイスのコア コンフィグレーションについては、デバイス データシート内の「microAptiv コア コンフィグレーション」を参照してください。

レジスタ 50-33: Config5: コンフィグレーション レジスタ 5 (Register 5; CP0 レジスタ 16、Select 2)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

23:16U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

15:8U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

7:0U-0 U-0 U-0 U-0 U-0 U-0 U-0 R-1

— — — — — — — NF

凡例 r = 予約済み

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-1 未実装 :「0」として読み出し

bit 0 NF: ネスト異常検出機能実装ビット

1 = ネスト異常検出機能を実装している0 = ネスト異常検出機能は実装していない

© 2013 Microchip Technology Inc. Preliminary DS61192A_JP - p. 50-65

Page 66: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

PIC32 ファミリ リファレンス マニュアル

50.12.34 Config7 レジスタ (CP0 レジスタ 16、Select 7)

Config7 レジスタは、コアの実装機能に関する設定情報を格納します。一部の書き込み可能ビットに書き込む事で、microAptiv™ マイクロプロセッサ コア内の特定の性能拡張機能を無効にできます。

Note: microAptiv コア コンフィグレーション レジスタのビットフィールドと既定値は、デバイスによって異なります。ご使用になるデバイスのコア コンフィグレーションについては、デバイス データシート内の「microAptiv コア コンフィグレーション」を参照してください。

レジスタ 50-34: Config7: コンフィグレーション レジスタ 7 (Register 7; CP0 レジスタ 16、Select 2)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R-1 U-0 U-0 U-0 U-0 U-0 U-0 U-0

WII — — — — — — —

23:16U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

15:8U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

7:0U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

凡例

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31 WII: 待機時 IE 無視ビット

IE ( 割り込みイネーブル ) ビットで割り込みが無効にされている場合でも、プロセッサが WAIT 命令を解除して割り込みを許可するかどうかを示します。これは、「ボトムハーフ」の割り込みサービスに WAIT命令を使う問題を防ぎます。microAptiv™ マイクロプロセッサ コアを採用したデバイスでは、このビットは常に「1」として読み出されます。

bit 30-0 未実装 :「0」として読み出し

DS61192A_JP - p. 50-66 Preliminary © 2013 Microchip Technology Inc.

Page 67: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

セクション 50. microAptiv™ コア採用デバイスの CPUm

icroA

ptiv™

コア

採用

デバ

イス

のC

PU

50

50.12.35 LLAddr レジスタ (CP0 レジスタ 17、Select 0) (microAptiv™ MPU 専用 )

LLAddr レジスタは、直近の Load Linked (LL) 命令によって読み出された物理アドレスを格納します。このレジスタは診断専用であり、通常動作には影響しません。

レジスタ 50-35: LLAddr: Load Linked アドレスレジスタ (CP0 レジスタ 17、Select 0)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 U-0 U-0 R-x R-x R-x R/x

— — — — PAddr<27:24>

23:16R-x R-x R-x R-x R-x R-x R-x R-x

PAddr< 23:16>

15:8R-x R-x R-x R-x R-x R-x R-x R-x

PAddr<15:8>

7:0R-x R-x R-x R-x R-x R-x R-x R-x

PAddr<7:0>

凡例

R = 読み出し可能ビット W = 書き込み可能ビット

U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-28 未実装 :「0」として読み出し

bit 27-0 PAddr<27:0>: Load Linked 命令物理アドレス ビット

これらのビットは、直近の Load Linked (LL) 命令によって読み出された物理アドレスを格納します。

© 2013 Microchip Technology Inc. Preliminary DS61192A_JP - p. 50-67

Page 68: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

PIC32 ファミリ リファレンス マニュアル

50.12.36 WatchLo レジスタ (CP0 レジスタ 18、Select 0-3) (microAptiv™ MPU 専用 )

WatchLo および WatchHi レジスタの組み合わせにより、ウォッチポイント デバッグ ファシリティへのインターフェイスを提供します。命令またはデータアクセスがこれらのレジスタで指定されているアドレスに一致すると、ウォッチポイント デバッグ ファシリティはウォッチ例外を発生させます。このように、これらのレジスタは EJTAG デバッグ ソリューションの一部の機能を模倣します。ウォッチ例外は、Status レジスタの EXL および ERL ビットの両方が「0」の場合にのみ発生します。どちらかのビットが「1」であった場合、Cause レジスタの WP ビットがセットされ、ウォッチ例外はEXLおよびERLビットの両方が「0」になるまで保留されます。

WatchLoレジスタは、ウォッチ例外を発生させるベース仮想アドレスと参照のタイプ(命令フェッチ、ロード、ストア ) を指定します。

レジスタ 50-36: WatchLo: ウォッチドッグ デバッグ LOW レジスタ (CP0 レジスタ 18、Select 0-7)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x

VAddr<28:21>

23:16R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x

VAddr< 20:13>

15:8R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x

VAddr<12:5>

7:0R/W-x R/W-x R/W-x R/W-x R/W-x R/W-0 R/W-0 R/W-0

VAddr<4:0> I R Ω

凡例

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-3 VAddr<28:0>: 仮想アドレス一致ビット

このフィールドは、ウォッチ例外を発生させる仮想アドレスを指定します。一致のタイプを制御するための bit <2:0> を含めて 2 ワードアドレスを形成します。

bit 2 I: 命令フェッチ ウォッチアドレス例外イネーブルビット

1 = アドレスに一致した命令フェッチに対するウォッチ例外を有効にする0 = アドレスに一致した命令フェッチに対するウォッチ例外を有効にしない

bit 1 R: 命令フェッチ ウォッチロード例外イネーブルビット

1 = アドレスに一致したロードに対するウォッチ例外を有効にする0 = アドレスに一致した命令フェッチに対するウォッチ例外を有効にしない

bit 0 W: 命令フェッチ ウォッチストア例外イネーブルビット

1 = アドレスに一致したストアに対するウォッチ例外を有効にする0 = アドレスに一致した命令フェッチに対するウォッチ例外を有効にしない

DS61192A_JP - p. 50-68 Preliminary © 2013 Microchip Technology Inc.

Page 69: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

セクション 50. microAptiv™ コア採用デバイスの CPUm

icroA

ptiv™

コア

採用

デバ

イス

のC

PU

50

50.12.37 WatchHi レジスタ (CP0 レジスタ 19、Select 0-3) (microAptiv™ MPU 専用 )

WatchLo および WatchHi レジスタの組み合わせにより、ウォッチポイント デバッグ ファシリティへのインターフェイスを提供します。命令またはデータアクセスがこれらのレジスタで指定されているアドレスに一致すると、ウォッチポイント デバッグ ファシリティはウォッチ例外を発生させます。このように、これらのレジスタは EJTAG デバッグ ソリューションの一部の機能を模倣します。ウォッチ例外は、Status レジスタの EXL および ERL ビットの両方が「0」の場合にのみ発生します。どちらかのビットが「1」であった場合、Cause レジスタの WP ビットがセットされ、ウォッチ例外はEXLおよびERLビットの両方が「0」になるまで保留されます。

WatchHi レジスタは、WatchLo レジスタで指定されている仮想アドレスとの一致を制限する条件 (Global (G) ビットとアドレスマスク ) を格納します。G ビットを「1」にセットした場合、仮想アドレス参照が WatchLo レジスタ指定されているアドレスに一致すると、常にウォッチ例外が発生します。G ビットを「0」にクリアした場合、WatchHi レジスタの ASID 値が EntryHiレジスタの ASID 値に一致した仮想アドレス参照だけがウォッチ例外を発生させます。必要に応じてマスクフィールドを使う事で、WatchLo で指定されているアドレスの特定ビットをアドレス比較から除外できます。

レジスタ 50-37: WatchHi: ウォッチドッグ デバッグ HIGH レジスタ (CP0 レジスタ 19、Select 0-7)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R-x R/W-x U-0 U-0 U-0 U-0 U-0 U-0

M G — — — — — —

23:16R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x

ASID<7:0>

15:8U-0 U-0 U-0 U-0 R/W-x R/W-x R/W-x R/W-x

— — — — Mask<8:5>

7:0R/W-x R/W-x R/W-x R/W-x R/W-x W-x, HS, CS W-x, HS, CS W-x, HS, CS

Mask<4:0> I R Ω

凡例 HS = ハードウェアでセット CS = ソフトウェアでクリア

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31 M: ウォッチ レジスタペア検出ビットこのビットは、このウォッチ レジスタペアの他にレジスタペアが存在するかどうかを示します。

bit 30 G: Global ビット1 = アドレスが WatchLo レジスタで指定されているアドレスに一致すれば常にウォッチ例外が発生する0 = ASID<7:0> が EntryHi レジスタの ASID ビットに一致した場合にのみウォッチ例外が発生する

bit 29-24 未実装 :「0」として読み出し

bit 23-16 ASID<7:0>: アドレス空間 ID ウォッチ例外一致ビット上記の G ビットが「0」の場合、このビット値が EntryHi レジスタ内の ASID ビット値に一致した場合にのみウォッチ例外が発生します。

bit 15-12 未実装 :「0」として読み出し

bit 11-3 Mask<8:0>: 仮想アドレス一致マスクビットWatchLo レジスタ内のアドレスの特定ビットをマスクします。このフィールド内のいずれかのビットをセットすると、対応するアドレスビットはアドレス一致から除外されます。

bit 2 I: 命令フェッチ条件一致ビット命令フェッチ条件がこのウォッチ レジスタペアで定義されている条件に一致すると、このビットがハードウェアによってセットされます。このビットは、一度セットされるとソフトウェアでクリアするまでセットされたままです ( クリアするには「1」を書き込みます )。

bit 1 R: ロード条件一致ビットロード条件がこのウォッチ レジスタペアで定義されている条件に一致すると、このビットがハードウェアによってセットされます。このビットは、一度セットされるとソフトウェアでクリアするまでセットされたままです ( クリアするには「1」を書き込みます )。

bit 0 W: ストア条件一致ビットストア条件がこのウォッチ レジスタペアで定義されている条件に一致すると、このビットがハードウェアによってセットされます。このビットは、一度セットされるとソフトウェアでクリアするまでセットされたままです ( クリアするには「1」を書き込みます )。

© 2013 Microchip Technology Inc. Preliminary DS61192A_JP - p. 50-69

Page 70: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

PIC32 ファミリ リファレンス マニュアル

50.12.38 Debug レジスタ (CP0 レジスタ 23、Select 0)

Debug レジスタは、デバッグ例外を制御し、その原因に関する情報を提供します。また、デバッグモード中に通常の例外が発生したためにデバッグ例外ベクタ位置で再入した時の情報も提供します。読み出し専用の情報ビットは、デバッグ例外が発生するたびに、または、デバッグモード中に通常の例外が発生した時に、更新されます。

デバッグ以外のモードからの読み出しに対しては、DM ビットと VER<2:0> ビットだけが有効な値を返し、その他のビットおよびフィールドの読み出し値は全て予測不可能です。デバッグ以外のモードから Debug レジスタが書き込まれた場合、プロセッサの動作は未確定です。

一部のビットおよびフィールドは、「デバッグ例外」および / または「デバッグモード中の通常例外」が発生した時にのみ、下記のように更新されます。

• DSS、DBP、DDBL、DDBS、DIB、DINT は、「デバッグ例外」と「デバッグモード中の通常例外」の両方で更新されます。

• DEXCCODE<4:0> は、「デバッグモード中の通常例外」で更新されますが、「デバッグ例外」後の状態は未確定です。

• HALT と DOZE は「デバッグ例外」で更新され、「デバッグモード中の通常例外」後の状態は未確定です。

• DBD は、「デバッグ例外」と「デバッグモード中の通常例外」の両方で更新されます。

VER<2:0> および DM 以外の全てのビットは、デバッグ以外のモードからの読み出しに対して未確定です。

レジスタ 50-38: Debug: デバッグ例外レジスタ (CP0 レジスタ 23、Select 0)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R-0 R-0 R-0 R/W-0 R-x R-x R/W-1 R/W-0

DBD DM NODCR LSNM DOZE HALT COUNTDM IBUSEP

23:16U-0 U-0 R/W-0 R/W-0 R-0 R-0 R-1 R-0

— — DBUSEP IEXI DDBSIMPR DDBLIMPR VER<2:1>

15:8R-1 R-x R-x R-x R-x R-x R-0 R/W-0

VER<0> DEXCCODE<4:0> NOSST SST

7:0U-0 R-x R-x R-x R-x R-x R-x R-x

— DIBIMPR DINT DIB DDBS DDBL DBP DSS

凡例

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31 DBD: 分岐遅延デバッグ例外ビット

直前の「デバッグ例外」または「デバッグモード中の通常例外」が分岐遅延スロット内で発生したかどうかを示します。1 = 遅延スロット内で発生した0 = 遅延スロット内で発生したのではない

bit 30 DM: デバッグモード ビット

プロセッサがデバッグモードで動作しているかどうかを示します。1 = プロセッサはデバッグモードで動作している0 = プロセッサはデバッグモードで動作していない

bit 29 NODCR: デバッグ制御レジスタビット

dseg メモリセグメントが存在する ( デバッグ制御レジスタにアクセス可能 ) かどうかを示します。1 = dseg は存在しない0 = dseg は存在する

DS61192A_JP - p. 50-70 Preliminary © 2013 Microchip Technology Inc.

Page 71: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

セクション 50. microAptiv™ コア採用デバイスの CPUm

icroA

ptiv™

コア

採用

デバ

イス

のC

PU

50

bit 28 LSNM: ロード / ストア アクセス制御ビット

dseg とメインメモリ間のロード / ストア アクセスを制御します。1 = dseg アドレス領域内のロード / ストアはメインメモリにアクセスする0 = dseg アドレス領域内のロード / ストアは dseg にアクセスする

bit 27 DOZE: 低消費電力モード デバッグ例外ビット

デバッグ例外が発生した時にプロセッサが何らかの低消費電力モード中であったかどうかを示します。1 = デバッグ例外発生時にプロセッサは低消費電力モード中であった

0 = デバッグ例外発生時にプロセッサは低消費電力モード中ではなかった

bit 26 HALT: システムバス クロック停止ビット

デバッグ例外発生時に内部システムバス クロックが停止していたかどうかを示します。1 = 内部システムバス クロックは動作していた

0 = 内部システムバス クロックは停止していた

bit 25 COUNTDM: Count レジスタ挙動ビット

デバッグモード中の Count レジスタの挙動を示します。 1 = Count レジスタはデバッグモード中も動作する

0 = Count レジスタはデバッグモード中に停止する

bit 24 IBUSEP: 命令フェッチ バスエラー例外保留ビット

このビットは、命令フェッチ バスエラー イベントが発生した時にセットされます。また、ソフトウェアでこのビットに「1」を書き込んでセットする事もできます。このビットは、プロセッサが命令フェッチ時のバスエラー例外を処理した時とリセット時にクリアされます。IEXI がクリアされている時にこのビットがセットされた場合、プロセッサが命令フェッチ時のバスエラー例外を処理した後にクリアされます。

bit 23-22 未実装 :「0」として読み出し

bit 21 DBUSEP: データアクセス バスエラー例外保留ビット

このビットは、データアクセス時の識別困難なバスエラーに対応します。このビットの挙動は、命令フェッチで識別困難なバスエラーが発生した時の IBUSEP ビットと同様です。

bit 20 IEXI: 識別困難なエラー例外抑止制御ビット

識別困難なエラー表示に起因する例外の発生を抑制します。このビットは、プロセッサが「デバッグ例外」または「デバッグモード中の通常例外」を処理する際にセットされます。このビットは、DERET命令の実行によりクリアされます。デバッグモード ソフトウェアで変更する事もできます。IEXI がセットされている場合、命令フェッチまたはデータアクセス時のバスエラー、キャッシュエラー、マシンチェックに起因する識別困難なエラー例外は抑止され、このビットがクリアされるまで保留されます。

bit 19 DDBSIMPR: デバッグ データブレーク ストア例外ビット

識別困難なデバッグ データブレーク ストア例外が処理された事を示します。PIC32 コアでは、全てのデータブレークは識別可能であるため、このビットは常に「0」として読み出されます。

bit 18 DDBLIMPR: デバッグ データブレーク ロード例外ビット

識別困難なデバッグ データブレーク ロード例外が処理された事を示します。PIC32 コアでは、全てのデータブレークは識別可能であるため、このビットは常に「0」として読み出されます。

bit 17-15 VER<2:0>: EJTAG バージョンビット

EJTAG のバージョン番号を格納します。

bit 14-10 DEXCCODE<4:0>: デバッグモード中直前例外ビット

デバッグモード中に発生した直前の例外の原因を示します。このビットは、「デバッグモード中の通常例外」の原因を、Cause レジスタの EXCCODE<4:0> ビットと同様のコードで示します。「デバッグ例外」後のこのビットの値は未確定です。

bit 9 NOSST: シングルステップ機能制御ビット

SST ビットによるシングルステップ機能の制御が可能かどうかを示します。1 = シングルステップ機能は利用できない

0 = シングルステップ機能を利用できる

bit 8 SST: デバッグ シングルステップ制御ビット

デバッグ シングルステップ例外を有効または無効にします。1 = デバッグ シングルステップ例外を有効にする

0 = デバッグ シングルステップ例外を無効にする

bit 7 未実装 :「0」として読み出し

レジスタ 50-38: Debug: デバッグ例外レジスタ (CP0 レジスタ 23、Select 0) ( 続き )

© 2013 Microchip Technology Inc. Preliminary DS61192A_JP - p. 50-71

Page 72: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

PIC32 ファミリ リファレンス マニュアル

bit 6 DIBIMPR: 識別困難なデバッグ命令ブレーク例外ビット

複雑なブレークポイントに起因する識別困難なデバッグ命令ブレーク例外の発生を示します。このビットは「デバッグモード中の通常例外」発生時にクリアされます。

bit 5 DINT: デバッグ割り込み例外ビット

デバッグ割り込み例外の発生を示します。このビットは「デバッグモード中の通常例外」発生時にクリアされます。1 = デバッグ割り込み例外が発生した

0 = デバッグ割り込み例外は発生していない

bit 4 DIB: デバッグ命令ブレーク例外ビット

デバッグ命令ブレーク例外の発生を示します。このビットは「デバッグモード中の通常例外」発生時にクリアされます。1 = デバッグ命令例外が発生した

0 = デバッグ命令例外は発生していない

bit 3 DDBS: ストア時デバッグ データブレーク例外ビット

ストア時にデバッグ データブレーク例外が発生した事を示します。このビットは「デバッグモード中の通常例外」発生時にクリアされます。1 = ストア時にデバッグ データブレーク例外が発生した

0 = ストア時にデバッグ データブレーク例外は発生していない

bit 2 DDBL: ロード時デバッグ データブレーク例外ビット

ロード時にデバッグ データブレーク例外が発生した事を示します。このビットは「デバッグモード中の通常例外」発生時にクリアされます。1 = ロード時にデバッグ データブレーク例外が発生した

0 = ロード時にデバッグ データブレーク例外は発生していない

bit 1 DBP: デバッグ ソフトウェア ブレークポイント例外ビット

デバッグ ソフトウェア ブレークポイント例外の発生を示します。このビットは「デバッグモード中の通常例外」発生時にクリアされます。1 = デバッグ ソフトウェア ブレークポイント例外が発生した0 = デバッグ ソフトウェア ブレークポイント例外は発生していない

bit 0 DSS: デバッグ シングルステップ例外ビット

デバッグ シングルステップ例外の発生を示します。このビットは「デバッグモード中の通常例外」発生時にクリアされます。1 = デバッグ シングルステップ例外が発生した

0 = デバッグ シングルステップ例外は発生していない

レジスタ 50-38: Debug: デバッグ例外レジスタ (CP0 レジスタ 23、Select 0) ( 続き )

DS61192A_JP - p. 50-72 Preliminary © 2013 Microchip Technology Inc.

Page 73: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

セクション 50. microAptiv™ コア採用デバイスの CPUm

icroA

ptiv™

コア

採用

デバ

イス

のC

PU

50

50.12.39 TraceControl レジスタ (CP0 レジスタ 23、Select 1)

TraceControl レジスタは、ソフトウェア トレース制御を可能にします。このレジスタは、EJTAGトレース機能を備えたデバイスだけが実装しています。

レジスタ 50-39: TraceControl: トレース制御レジスタ (CP0 レジスタ 23、Select 1)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R/W-0 R/W-x U-0 U-0 R/W-x R/W-x R/W-x R/W-x

TS UT — — TB IO D(1) E(1)

23:16R/W-x U-0 R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x

K(1) — U(1) ASID_M<7:3>

15:8R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x

ASID_M<2:0> ASID<7:3>

7:0R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-0

ASID<2:0> G MODE<2:0> ON

凡例

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31 TS: トレース選択ビット

このビットは、ハードウェアまたはソフトウェアどちらかのトレース制御を選択します。

1 = ソフトウェア トレース制御ビットを選択する0 = 外部のハードウェア トレースブロック信号を選択する

bit 30 UT: ユーザタイプ選択ビット

このビットは、ユーザトリガ トレースレコードのタイプを選択します。

1 = ユーザタイプ 20 = ユーザタイプ 1

bit 27 TB: トレース分岐ビット

1 = 全ての分岐の実行で PC 値をトレースする0 = 分岐先アドレスが予測不可能な静的アドレスである場合に PC 値をトレースする

bit 26 IO: オーバーフロー抑制ビット

この信号は、コアのトレースロジックに、速度を落としてでも完全なトレースを行うよう指示するために使います。

1 = FIFO オーバーフローまたはトレースデータの破棄を抑制する0 = FIFO オーバーフローまたはトレースデータの破棄を容認する

bit 25 D: デバッグモード中トレース イネーブルビット (1)

1 = デバッグモード中のトレースを有効にする0 = デバッグモード中のトレースを無効にする

bit 24 E: 例外モード中トレース イネーブルビット (1)

1 = 例外モード中のトレースを有効にする0 = 例外モード中のトレースを無効にする

bit 23 K: カーネルモード中トレース イネーブルビット (1)

1 = カーネルモード中のトレースを有効にする0 = カーネルモード中のトレースを無効にする

bit 22 未実装 :「0」として読み出し

bit 21 U: ユーザモード中トレース イネーブルビット (1)

1 = ユーザモード中のトレースを有効にする0 = ユーザモード中のトレースを無効にする

Note 1: トレースを有効にするには、ON ビットを「1」にセットする必要があります。

© 2013 Microchip Technology Inc. Preliminary DS61192A_JP - p. 50-73

Page 74: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

PIC32 ファミリ リファレンス マニュアル

bit 20-13 ASID_M<7:0>: アドレス空間 ID マスク値ビット

このフィールドのいずれかのビットを「1」にセットすると、対応する ASID ビットがアドレス比較から除外されます。このフィールドのビットを全て「0」に設定すると、ASID の全てのビットが比較されます。

bit 12-5 ASID<7:0>: アドレス空間 ID 値ビット

G ビットを「0」にクリアした場合、これらのビットはアドレス空間 ID に一致する必要があります。

G ビットを「1」にセットした場合、これらのビットは無視されます。

bit 4 G: Global ビット

1 = 全ての処理に対してトレースを有効にする ( 他の有効化条件も成立する場合 )0 = トレースを有効にしない

bit 3-1 MODE<2:0>: トレースモード制御ビット

111 = PC をトレースし、アドレスとデータをロードおよびストアする110 = PC をトレースし、アドレスとデータをストアする101 = PC をトレースし、アドレスとデータをロードする100 = PC をトレースし、データをロードする011 = PC をトレースし、アドレスをロードおよびストアする010 = PC をトレースし、アドレスをストアする001 = PC をトレースし、アドレスをロードする000 = PC をトレースするだけ

bit 0 ON: マスタトレース イネーブルビット1 = 他のトレース イネーブルビットが「1」にセットされた時にトレースを有効にする0 = トレースを有効にしない

レジスタ 50-39: TraceControl: トレース制御レジスタ (CP0 レジスタ 23、Select 1) ( 続き )

Note 1: トレースを有効にするには、ON ビットを「1」にセットする必要があります。

DS61192A_JP - p. 50-74 Preliminary © 2013 Microchip Technology Inc.

Page 75: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

セクション 50. microAptiv™ コア採用デバイスの CPUm

icroA

ptiv™

コア

採用

デバ

イス

のC

PU

50

50.12.40 TraceControl2 レジスタ (CP0 レジスタ 23、Select 2)

TraceControl2 レジスタは、トレースに関する追加の制御とステータス情報を提供します。TraceControl2 レジスタ内の一部のフィールドは読み出し専用ですが、リセット状態は「未確定」である事に注意が必要です。これは、これらの値がトレース制御ブロック (TCB) から読み込まれるためです。このため、TCB がこれらの値をアサートするまで、TraceControl2 レジスタ内のこれらのフィールドの値は有効ではありません。

レジスタ 50-40: TraceControl2: トレース制御レジスタ 2 (CP0 レジスタ 23、Select 2)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

23:16U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

15:8U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

7:0U-0 R-1 R-0 R-0 R-1 R-x R-x R-x

— VALIDMODES<1:0> TBI TBU SYP<2:0>

凡例

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-7 未実装 :「0」として読み出し

bit 6-5 VALIDMODES<1:0>: 有効トレースモード選択ビット11 = 予約済み10 = PC、アドレスのロードおよびストア、データのロードおよびストアをトレースする

01 = PC とアドレスのロードおよびストアをトレースする00 = PC だけをトレースする

bit 4 TBI: トレースバッファ実装ビット

1 = TCB は内蔵と外部のトレースバッファを実装する0 = 1 つのトレースバッファだけを実装する

bit 3 TBU: トレースバッファ使用ビット

1 = トレースデータを外部のトレースバッファに転送する0 = トレースデータを内蔵トレースバッファに転送する

bit 2-0 SYP<2:0>: 同期周期ビット

下表の「内蔵」列の値は、トレースデータを内蔵トレースバッファに書き込む場合 (TraceControl2TBU = 0)に適用します。「外部」列の値は、トレースデータを外部のトレースバッファに書き込む場合 (TraceControl2TBU = 1) に適用します。

ビット設定

内蔵 外部

111 = 22 27

110 = 23 28

101 = 24 29

100 = 25 210

011 = 26 211

010 = 27 212

001 = 28 213

000 = 29 214

© 2013 Microchip Technology Inc. Preliminary DS61192A_JP - p. 50-75

Page 76: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

PIC32 ファミリ リファレンス マニュアル

50.12.41 UserTraceData1 レジスタ (CP0 レジスタ 23、Select 3)

ソフトウェアがUserTraceData1レジスタ内のいずれかのビットに書き込むと、タイプ 1のユーザ フォーマットでトレースレコードの書き込みが始まります。タイプは、TraceControl レジスタの UT ビットによって決まります。このレジスタには、連続したサイクルで書き込む事はできません。このレジスタに連続したサイクルで書き込んだ場合のトレース出力データは予測不可能です。

EJTAG トレース機能を備えたデバイスだけがこのビットを実装しています。

レジスタ 50-41: UserTraceData1: ユーザトレース データレジスタ 1 (CP0 レジスタ 23、Select 3)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

DATA<31:24>

23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

DATA<23:10>

15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

DATA<15:6>

7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

DATA<7:0>

凡例

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-0 DATA: ソフトウェア読み / 書き可能データビット

このレジスタに書き込むと、ユーザ フォーマットによるトレースレコードの出力が始まり、PDtrace インターフェイスからトレースメモリにデータビットが転送されます。

DS61192A_JP - p. 50-76 Preliminary © 2013 Microchip Technology Inc.

Page 77: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

セクション 50. microAptiv™ コア採用デバイスの CPUm

icroA

ptiv™

コア

採用

デバ

イス

のC

PU

50

50.12.42 TraceBPC レジスタ (CP0 レジスタ 23、Select 4)

このレジスタは、EJTAG ハードウェア ブレークポイントを使ってトレースの開始 / 終了を制御するために使います。ハードウェア ブレークポイントはトリガ源として設定されます。オプションにより、デバッグ例外ブレークポイントとして設定する事もできます。

このレジスタは、ハードウェア ブレークポイント機能と EJTAG トレース機能の両方を備えたデバイスだけが実装しています。

レジスタ 50-42: TraceBPC: トレース ブレークポイント制御レジスタ (CP0 レジスタ 23、Select 4)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R/W-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

DE — — — — — — —

23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

DBPO7(1) DBPO6(1) DBPO5(1) DBPO4(1) DBPO3(1) DBPO2(1) DBPO1 DBPO0

15:8R/W-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

IE — — — — — — —

7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

IBPO7(1) IBPO6(1) IBPO5 IBPO4 IBPO3 IBPO2 IBPO1 IBPO0

凡例

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31 DE: EJTAG データ ブレークポイント トリガ選択ビット

1 = データ ブレークポイントからのトリガ信号を有効にする0 = データ ブレークポイントからのトリガ信号を無効にする

bit 30-24 未実装 :「0」として読み出し

bit 23 DBPO7: データ ブレークポイント 7 ビット (1)

1 = 対応するデータ ブレークポイント トリガを有効にしてトレースを始める0 = このトリガ信号によるトレースを無効にする

bit 22 DBPO6: データ ブレークポイント 6 ビット (1)

1 = 対応するデータ ブレークポイント トリガを有効にしてトレースを始める0 = このトリガ信号によるトレースを無効にする

bit 21 DBPO5: データ ブレークポイント 5 ビット (1)

1 = 対応するデータ ブレークポイント トリガを有効にしてトレースを始める0 = このトリガ信号によるトレースを無効にする

bit 20 DBPO4: データ ブレークポイント 4 ビット (1)

1 = 対応するデータ ブレークポイント トリガを有効にしてトレースを始める0 = このトリガ信号によるトレースを無効にする

bit 19 DBPO3: データ ブレークポイント 3 ビット (1)

1 = 対応するデータ ブレークポイント トリガを有効にしてトレースを始める0 = このトリガ信号によるトレースを無効にする

bit 18 DBPO2: データ ブレークポイント 2 ビット (1)

1 = 対応するデータ ブレークポイント トリガを有効にしてトレースを始める0 = このトリガ信号によるトレースを無効にする

bit 17 DBPO1: データ ブレークポイント 1 ビット

1 = 対応するデータ ブレークポイント トリガを有効にしてトレースを始める0 = このトリガ信号によるトレースを無効にする

Note 1: このビットは、microAptiv™ MPU コアを採用した PIC32 デバイスでのみ利用できます。

© 2013 Microchip Technology Inc. Preliminary DS61192A_JP - p. 50-77

Page 78: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

PIC32 ファミリ リファレンス マニュアル

bit 16 DBPO0: データ ブレークポイント 0 ビット

1 = 対応するデータ ブレークポイント トリガを有効にしてトレースを始める0 = このトリガ信号によるトレースを無効にする

bit 15 IE: EJTAG 命令ブレークポイント トリガ選択ビット

1 = 命令ブレークポイントからのトリガ信号を有効にする0 = 命令ブレークポイントからのトリガ信号を無効にする

bit 14-8 未実装 :「0」として読み出し

bit 5 IBPO7: 命令ブレークポイント 7 ビット (1)

1 = 対応する命令ブレークポイント トリガを有効にしてトレースを始める0 = このトリガ信号によるトレースを無効にする

bit 4 IBPO6: 命令ブレークポイント 6 ビット (1)

1 = 対応する命令ブレークポイント トリガを有効にしてトレースを始める0 = このトリガ信号によるトレースを無効にする

bit 5 IBPO5: 命令ブレークポイント 5 ビット

1 = 対応する命令ブレークポイント トリガを有効にしてトレースを始める0 = このトリガ信号によるトレースを無効にする

bit 4 IBPO4: 命令ブレークポイント 4 ビット

1 = 対応する命令ブレークポイント トリガを有効にしてトレースを始める0 = このトリガ信号によるトレースを無効にする

bit 3 IBPO3: 命令ブレークポイント 3 ビット

1 = 対応する命令ブレークポイント トリガを有効にしてトレースを始める0 = このトリガ信号によるトレースを無効にする

bit 2 IBPO2: 命令ブレークポイント 2 ビット

1 = 対応する命令ブレークポイント トリガを有効にしてトレースを始める0 = このトリガ信号によるトレースを無効にする

bit 1 IBPO1: 命令ブレークポイント 1 ビット

1 = 対応する命令ブレークポイント トリガを有効にしてトレースを始める0 = このトリガ信号によるトレースを無効にする

bit 0 IBPO0: 命令ブレークポイント 0 ビット

1 = 対応する命令ブレークポイント トリガを有効にしてトレースを始める0 = このトリガ信号によるトレースを無効にする

レジスタ 50-42: TraceBPC: トレース ブレークポイント制御レジスタ (CP0 レジスタ 23、Select 4) ( 続き )

Note 1: このビットは、microAptiv™ MPU コアを採用した PIC32 デバイスでのみ利用できます。

DS61192A_JP - p. 50-78 Preliminary © 2013 Microchip Technology Inc.

Page 79: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

セクション 50. microAptiv™ コア採用デバイスの CPUm

icroA

ptiv™

コア

採用

デバ

イス

のC

PU

50

50.12.43 Debug2 レジスタ (CP0 レジスタ 23、Select 5)

このレジスタは、複雑なブレークポイント例外に関する追加の情報を保持します。このレジスタは、複雑なハードウェア ブレークポイントが存在する場合にのみ実装されています。

レジスタ 50-43: Debug2: デバッグ ブレークポイント例外レジスタ (CP0 レジスタ 23、Select 5)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24r-1 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

23:16U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

15:8U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

7:0U-0 U-0 U-0 U-0 R-x R-x R-x R-x

— — — — PRM DQ TUP PACO

凡例 r = 予約済みビット

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31 予約済み :「1」として読み出し

bit 30-4 未実装 :「0」として読み出し

bit 3 PRM: Primed ビット

直前のデバッグ例外で、アクティブな priming 条件を持つ複雑なブレークポイントに遭遇したかどうかを示します。

bit 2 DQ: データ修飾子ビット

直前のデバッグ例外で、アクティブなデータ修飾子を持つ複雑なブレークポイントに遭遇したかどうかを示します。

bit 1 TUP: タプル ブレークポイント ビット

直前のデバッグ例外で、タプル ブレークポイントに遭遇したかどうかを示します。

bit 0 PACO: パスカウンタ ビット

直前のデバッグ例外で、アクティブなパスカウンタを持つ複雑なブレークポイントに遭遇したかどうかを示します。

© 2013 Microchip Technology Inc. Preliminary DS61192A_JP - p. 50-79

Page 80: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

PIC32 ファミリ リファレンス マニュアル

50.12.44 DEPC レジスタ (CP0 レジスタ 24、Select 0)

デバッグ例外プログラムカウンタ (DEPC) レジスタは読み / 書き可能レジスタです。このレジスタは、「デバッグ例外」または「デバッグモード中の通常例外」をサービスした後の処理再開位置のアドレスを格納します。

同期した ( 識別可能な )「デバッグ例外」および「デバッグモード中の通常例外」の場合、DEPCレジスタは下記のいずれかを格納します。

• デバッグ例外の直接的原因となった命令の仮想アドレス

• デバッグ例外を引き起こした命令が分岐遅延スロット内にあり、かつ、Debug レジスタのデバッグ分岐遅延 (DBD) ビットがセットされていた場合、直前の分岐またはジャンプ命令の仮想アドレス

非同期のデバッグ例外 ( デバッグ割り込み ) の場合、DEPC レジスタは、デバッグハンドラ コードを処理した後に実行を再開する命令の仮想アドレスを格納します。

PIC32 ファミリは MIPS16e® または microMIPS™ ASE を実装しているため、MFC0 命令による DEPC レジスタの読み出しは、デスティネーション GPR に下記の値を返します。

GPR[rt] = DebugExceptionPC31..1 || ISAMode0

すなわち、デバッグ例外 PC の上位 31 ビットに ISA<1:0> ビット (Config3<15:14>) の下位ビットを連結した内容が GPR に書き込まれます。

同様に、MTC0命令による DEPC レジスタへの書き込みは、GPR から読み出した値を、下記のようにデバッグ例外 PC と ISA<1:0> ビット (Config3<15:14>) に分配します。

DebugExceptionPC = GPR[rt]31..1 || 0ISAMode = 2#0 || GPR[rt]0

すなわち、GPR の上位 31 ビットをデバッグ例外 PC の上位 31 ビットに書き込み、下位 1 ビットをクリアします。また、GPR の 下位ビットを ISA<1:0> ビット (Config3<15:14>) の下位ビットに書き込み、上位ビットをクリアします。

レジスタ 50-44: DEPC: デバッグ例外プログラム カウンタ レジスタ (CP0 レジスタ 24、Select 0)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x

DEPC<31:24>

23:16R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x

DEPC<23:16>

15:8R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x

DEPC<15:8>

7:0R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x

DEPC<7:0>

凡例

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-0 DEPC<31:0>: デバッグ例外プログラム カウンタビット

DEPC レジスタの値は、デバッグ例外を引き起こした命令の仮想アドレス値に更新されます。その命令が分岐遅延スロット内にある場合、このレジスタには直前の分岐またはジャンプ命令の仮想アドレスが格納されます。

DERET命令を実行すると、DEPC レジスタ内のアドレスへのジャンプが発生します。

DS61192A_JP - p. 50-80 Preliminary © 2013 Microchip Technology Inc.

Page 81: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

セクション 50. microAptiv™ コア採用デバイスの CPUm

icroA

ptiv™

コア

採用

デバ

イス

のC

PU

50

50.12.45 UserTraceData2 レジスタ (CP0 レジスタ 24、Select 3)

ソフトウェアがUserTraceData2レジスタ内のいずれかのビットに書き込むと、タイプ 2のユーザ フォーマットでトレースレコードの書き込みが始まります。タイプは、TraceControl レジスタの UT ビットによって決まります。このレジスタには、連続したサイクルで書き込む事はできません。このレジスタに連続したサイクルで書き込んだ場合のトレース出力データは予測不可能です。

EJTAG トレース機能を備えたデバイスだけがこのビットを実装しています。

レジスタ 50-45: UserTraceData2: ユーザトレース データレジスタ 2 (CP0 レジスタ 24、Select 3)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

DATA<31:24>

23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

DATA<23:16>

15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

DATA<15:8>

7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

DATA<7:0>

凡例

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-0 DATA<31:0>: ソフトウェア読み / 書き可能データビット

このレジスタに書き込むと、ユーザ フォーマットによるトレースレコードの出力が始まり、PDtrace インターフェイスからトレースメモリにデータビットが転送されます。

© 2013 Microchip Technology Inc. Preliminary DS61192A_JP - p. 50-81

Page 82: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

PIC32 ファミリ リファレンス マニュアル

50.12.46 PerfCtlx レジスタ (CP0 レジスタ 25、Select 0/3)

microAptiv™ マイクロプロセッサ コアでは、2 つのパフォーマンス カウンタ (PerfCnt0 とPerfCnt1、レジスタ 50-47参照 ) と、これらに対応する 2つの制御レジスタ (PerfCtl0と PerfCtl1)が定義されており、これらのレジスタは CP0 レジスタ 25 に割り当てられています。表 50-14のようにSelectビットを設定する事で、MTC0/MFC0命令がアクセスするレジスタを選択します。

表 50-14: パフォーマンス カウンタレジスタの選択

各カウンタは 32 ビットの読み / 書き可能レジスタです。これらのレジスタの値は、対応する制御レジスタで指定されているカウント可能イベントが発生するたびに、1 ずつインクリメントします。1 つのカウンタは 1 種類のイベントだけをカウントし、同時に動作する各カウンタの動作は独立しています。

各カウンタの bit 31 と、対応する制御レジスタの割り込みイネーブルビット (IE) との論理積(AND) により、パフォーマンス カウンタ割り込み信号を生成するかどうかが決まります。次に、これら 2 つの値の論理和 (OR) により、パフォーマンス カウンタ割り込み出力が生成されます。これは microAptiv™ コアに対して割り込みを要求します。カウント動作は割り込み指示によって影響されません。この出力は、カウンタがゼロにロールオーバーした時点でクリアされます。また、ソフトウェアでパフォーマンス カウンタ カウントレジスタの bit 31 に「0」を書き込んでクリアする事もできます。

Select<2:0> レジスタ

0 レジスタ 0 制御

1 レジスタ 0 カウント

2 レジスタ 1 制御

3 レジスタ 1 カウント

Note: パフォーマンス カウンタレジスタが使用するクロックは、プロセッサがスリープに移行すると停止します。スリープ中は大部分のイベントが非アクティブになりますが、一部 ( 特にサイクルカウント ) はアクティブなままです。このような挙動は、システム上で実行した計測を解析する際に考慮する必要があります。

レジスタ 50-46: PerfCtlx: パフォーマンス カウンタ制御レジスタ (CP0 レジスタ 25、Select 0/3)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24r-x U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

23:16U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

15:8U-0 U-0 U-0 U-0 R/W-x R/W-x R/W-x R/W-x

— — — — EVENT<6:3>

7:0R/W-x R/W-x R/W-x R/W-0 R-0 U-0 R/W-x R/W-x

EVENT<2:0> IE U — K EXL

凡例 r = 予約済みビット

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31 予約済み :PerfCtl0 は「1」として読み出し、PerfCtl1 は「0」として読み出し

bit 30-12 未実装 :「0」として読み出し

bit 11-5 EVENT<6:0>:

このカウンタでカウントするイベントを指定します。表 50-15 に記載したイベントをカウントできます。

bit 4 IE: カウンタ割り込みイネーブルビット

このビットは、対応するカウントレジスタの bit 31 を割り込み例外要求出力からマスクします。

DS61192A_JP - p. 50-82 Preliminary © 2013 Microchip Technology Inc.

Page 83: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

セクション 50. microAptiv™ コア採用デバイスの CPUm

icroA

ptiv™

コア

採用

デバ

イス

のC

PU

50

表 50-15 に、2 つのパフォーマンス カウンタを使ってカウント可能なイベントを示します。表の「モード」列は、イベントのカウントがモードビット (U、K、EXL) の影響を受けるかどうかを示します。表内で「予約済み」に指定されているイベントに対するカウンタの動作は予測不可能です。

デバッグモード中または ERL = 1の場合、パフォーマンス カウンタは一切カウントしません。

bit 3 U: ユーザモード中カウントビットこのビットをセットした場合、ユーザモード中に指定されたイベントをカウントします。

bit 2 未実装 :「0」として読み出し

bit 1 K: カーネルモード中カウントビットこのビットをセットした場合、カーネルモード中に EXL と ERL の両方が「0」である時にイベントをカウントします。

bit 0 EXL: EXL セット時カウントビットこのビットをセットした場合、EXL = 1かつ ERL = 0の場合にイベントをカウントします。

レジスタ 50-46: PerfCtlx: パフォーマンス カウンタ制御レジスタ (CP0 レジスタ 25、Select 0/3) ( 続き )

表 50-15: パフォーマンス カウンタでカウント可能なイベント

イベント番号

カウンタ 0 モード カウンタ 1 モード

0 サイクル数 No サイクル数 No

1 命令完了 Yes 命令完了 Yes

2 分岐命令 Yes 予約済み N/A

3 JR r31 ( リターン ) 命令 Yes 予約済み N/A

4 JR (r31 以外 ) 命令 Yes 予約済み N/A

5 ITLB アクセス (1) Yes ITLB ミス (1) Yes

6 DTLB アクセス (1) Yes DTLB ミス (1) Yes

7 JTLB 命令アクセス (1) Yes JTLB 命令ミス (1) Yes

8 JTLB データアクセス (1) Yes JTLB データミス (1) Yes

9 命令キャッシュ アクセス (1) Yes 命令キャッシュミス (1) Yes

10 データキャッシュ アクセス (1) Yes データキャッシュ ライトバック (1) Yes

11 データキャッシュ ミス (1) Yes データキャッシュ ミス (1) Yes

12 予約済み N/A 予約済み N/A

13 予約済み N/A 予約済み N/A

14 整数命令完了 Yes 予約済み N/A

15 ロード完了 Yes ストア完了 Yes

16 J/JAL 完了 Yes microMIPS™ 命令完了 Yes

17 no-ops 完了 Yes 整数乗算 / 除算完了 Yes

18 ストールサイクル No 予約済み N/A

19 SC 命令完了 Yes SC 命令失敗 Yes

20 命令プリフェッチ完了 Yes 命令プリフェッチ完了 ( キャッシュヒット )(1) Yes

21 予約済み N/A 予約済み N/A

22 予約済み N/A 予約済み N/A

23 例外処理 Yes 予約済み N/A

24 予約済み N/A 予約済み N/A

25 IFU ストールサイクル (1) No ALU ストールサイクル No

26 予約済み N/A 予約済み N/A

27 予約済み N/A 予約済み N/A

28 予約済み N/A Implementation-specific CP2 イベント Yes

Note 1: このイベントは、microAptiv™ MPU コアを採用したデバイスでのみ利用できます。このイベントが利用できるかどうかは、デバイス データシート内の「CPU」を参照してください。

© 2013 Microchip Technology Inc. Preliminary DS61192A_JP - p. 50-83

Page 84: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

PIC32 ファミリ リファレンス マニュアル

29 予約済み N/A 予約済み N/A

30 予約済み N/A 予約済み N/A

31 予約済み N/A 予約済み N/A

32 予約済み N/A 予約済み N/A

33 キャッシュなしロード N/A キャッシュなしストア N/A

34 予約済み N/A 予約済み N/A

35 CP2 算術命令完了 Yes CP2 To/From 命令完了 Yes

36 予約済み N/A 予約済み N/A

37 I キャッシュミス ストールサイクル (1) Yes D キャッシュミス ストールサイクル (1) Yes

38 予約済み N/A 予約済み N/A

39 D キャッシュミス サイクル (1) No 予約済み N/A

40 キャッシュなしストールサイクル Yes 予約済み N/A

41 MDU ストールサイクル Yes 予約済み N/A

42 CP2 ストールサイクル Yes 予約済み N/A

43 予約済み N/A 予約済み N/A

44 CACHE命令ストールサイクル (1) No 予約済み N/A

45 Load to Use ストールサイクル Yes 予約済み N/A

46 その他のインターロック ストールサイクル

Yes 予約済み N/A

47 予約済み N/A 予約済み N/A

48 予約済み N/A 予約済み N/A

49 EJTAG命令トリガ点 Yes EJTAG データトリガ点 Yes

50 -51 予約済み N/A 予約済み N/A

52 LFQ < 1/4 フル (1) No LFQ 1/4 ~ 1/2 フル (1) No

53 LFQ > 1/2 フル (1) No LFQ フル パイプライン ストールサイクル (1) No

54 WBB < 1/4 フル (1) No WBB 1/4 ~ 1/2 フル (1) No

55 WBB > 1/2 フル (1) No WBB フル パイプライン ストールサイクル (1) No

56-63 予約済み N/A 予約済み N/A

表 50-15: パフォーマンス カウンタでカウント可能なイベント ( 続き )

イベント番号

カウンタ 0 モード カウンタ 1 モード

Note 1: このイベントは、microAptiv™ MPU コアを採用したデバイスでのみ利用できます。このイベントが利用できるかどうかは、デバイス データシート内の「CPU」を参照してください。

DS61192A_JP - p. 50-84 Preliminary © 2013 Microchip Technology Inc.

Page 85: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

セクション 50. microAptiv™ コア採用デバイスの CPUm

icroA

ptiv™

コア

採用

デバ

イス

のC

PU

50

表 50-16: イベントの説明

イベント名 カウンタイベント

番号概要

サイクル数 0/1 0 サイクルの総数です。パフォーマンス カウンタには、 上位のゲート付きクロックからクロックが供給されます。microAptiv™ コアがそのようなゲート付きクロックを実装している場合、WAIT命令等によってクロックが停止している間、全てのカウンタはインクリメントを停止します。

命令の完了以下のイベントは、各種の命令の完了を示します。

命令 0/1 1 完了した命令の総数

分岐命令 0 2 完了した全ての分岐命令をカウントします。

JR R31 ( リターン ) 命令 0 3 完了した全ての JR R31 命令をカウントします。

JR (R31 以外 ) 命令 0 4 全ての JR rxx (r31 以外 ) および JALR 命令 ( 間接ジャンプ ) をカウントします。

整数命令 0 14 非浮動小数点命令

ロード 0 15 整数ロードとコプロセッサ ロードの両方を含みます。

ストア 1 15 整数ストアとコプロセッサ ストアの両方を含みます。

J/JAL 0 16 直接ジャンプ ( およびリンク ) 命令

microMIPS™ 1 16 全ての microMIPS™ 命令

no-ops 0 17 これには、GPR に対する通常の書き込みでデスティネーション レジスタを r0 に設定した全ての命令を含みます。

整数乗算 / 除算 1 17 全ての整数乗算 / 除算命令 (MULxx、DIVx、MADDx、MSUBx)をカウントします。

SC 0 19 条件付きストアを成功したかどうかに関係なくカウントします。

PREF 0 20 これは実際に試行された PREF だけをカウントする事に注意してください。キャッシュなしアドレスまたは変換エラーが発生したアドレスに対する PREF はカウントされません。

キャッシュなしロード (1) 0 33 キャッシュなし CCA とキャッシュなし高速 CCA の両方を含みます。キャッシュなしストア (1) 1 33

命令例外イベント

ITLB アクセス (1) 0 5 パイプの IF 段でのフェッチによって発生した、固定マッピングを使用しない ( または非マップ空間内ではない ) ITLB アクセスをカウントします。パイプの下流で同じアドレスが 2 度フェッチされると ( キャッシュミスの場合と同様に )、その命令は 2 回の ITLB アクセスをカウントします。また、各フェッチは 2 命令を返すため、2 ワードあたり 1 回のアクセスがマークされます。

ITLB ミス (1) 1 5 ITLB における全てのミスをカウントします ( 先のミスに引き続いて生じたミスを除く )。連続して発生するミスは処理できないため、このカウントでは、それらは無視されます。特定形態のアドレスエラーが存在する場合も無視されます。

DTLB アクセス (1) 0 6 DTLB アクセス ( 非マップ アドレス空間内のアクセスも含む )をカウントします。

DTLB ミス (1) 1 6 DTLB ミスをカウントします。ミスが連続して発生した結果として 1 つの DTLB エントリだけがリフィルされた場合、それらのミスは 1 回のミスとしてカウントされます。

JTLB 命令アクセス (1) 0 7 命令 JTLB アクセスは、ITLB ミスと全く同様にカウントされます。

JTLB 命令ミス (1) 1 7 一致しなかったか、無効な変換で一致した命令 JTLB アクセスをカウントします。

Note 1: このイベントは、microAptiv™ MPU コアを採用したデバイスでのみ利用できます。このイベントが利用できるかどうかは、デバイス データシート内の「CPU」を参照してください。

© 2013 Microchip Technology Inc. Preliminary DS61192A_JP - p. 50-85

Page 86: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

PIC32 ファミリ リファレンス マニュアル

JTLB データアクセス (1) 0 8 データ JTLB アクセスをカウントします。

JTLB データミス (1) 1 8 一致しなかったか、無効な変換で一致したデータ JTLB アクセスをカウントします。

I キャッシュ アクセス (1) 0 9 命令キャッシュがアクセスされるたびにカウントします。全ての再実行 ( 無駄なフェッチ等 ) がカウントされます。例えば、分岐に続いて予測が実行されても、フォールスルー アクセスはカウントされます。

I キャッシュミス (1) 1 9 バス要求が生じる全ての命令キャッシュミスをカウントします。

D キャッシュ アクセス (1) 0 10 キャッシュされたロードとストアをカウントします。

D キャッシュ ライトバック (1) 1 10 置換またはキャッシュ操作のためにメモリに書き戻されたキャッシュラインをカウントします。

D キャッシュミス (1) 0/1 11 キャッシュにミスしたロードとストアをカウントします。

SC 命令失敗 1 19 メモリを更新しなかった SC 命令

Note: このイベントと SC 命令イベントは、別々の動作モードでカウントするように設定できますが、監視する動作モードが双方で異なる場合、イベントのタイミングが大きく異ななるため、両イベントのカウント数の比率の精度は悪化します。

PREF 完了 ( キャッシュヒット)(1)

1 20 キャッシュでヒットした PREF 命令をカウントします。

処理された例外 0 23 処理された全てのタイプの例外

EJTAG 命令トリガ 0 49 EJTAG 命令トリガ点条件が一致した回数

EJTAG データトリガ 1 49 EJTAG データトリガ点条件が一致した回数

パイプライン

キャッシュ フィックスアップ (1) 0 24 DCCがフィックスアップ中でALUから新しい命令を受け取れないサイクルをカウントします。フィックスアップは、命令がキャッシュまたは DTLB に再アクセスする必要がある時に発生する DCC 内の再実行です。

一般ストール

IFU ストールサイクル (1) 0 25 フェッチユニットが ALU に有効な命令を提供していないサイクルをカウントします。

ALU ストールサイクル 1 25 ALU パイプラインが先へ進めなくなったサイクルをカウントします。

ストールサイクル 0 18 SRAM から ALU に対して命令が発行されなかった (RF 段が先へ進まなかった ) サイクルの総数をカウントします。このカウントは、上記の 2 つのストールイベントを含みます。しかし、これは単純に両方のストールイベントの合計にはなりません。なぜならば、両方のストールが同時にアクティブな場合、1 回としてカウントするためです。

個別ストール各カウンタは、個別のイベントが原因となって発生したストールサイクルの数をカウントします。これには、パイプライン内での再実行によって生じたバブルも含みます。同時に複数のストール源がアクティブである場合、アクティブな各イベントに対応するカウンタがそれぞれインクリメントします。

I キャッシュミス ストールサイクル (1)

0 37 I キャッシュミスが原因で、ICC が実行可能な命令を得る事ができなかったためにストールしたサイクルをカウントします。ITLB ミスに起因するストールと、リダイレクト後の 4 サイクルは無視されます。

表 50-16: イベントの説明 ( 続き )

イベント名 カウンタイベント

番号概要

Note 1: このイベントは、microAptiv™ MPU コアを採用したデバイスでのみ利用できます。このイベントが利用できるかどうかは、デバイス データシート内の「CPU」を参照してください。

DS61192A_JP - p. 50-86 Preliminary © 2013 Microchip Technology Inc.

Page 87: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

セクション 50. microAptiv™ コア採用デバイスの CPUm

icroA

ptiv™

コア

採用

デバ

イス

のC

PU

50

D キャッシュミス ストールサイクル (1)

1 37 D キャッシュミスが原因で、整数パイプラインがロードからの戻りデータを待機した全てのサイクルをカウントします。

D キャッシュミス サイクル サイクル (1)

0 39 D キャッシュミスが発生してもパイプラインがストールするとは限りません。このカウントから上の D キャッシュミス ストールサイクルを引き算すると、ノンブロッキング キャッシュミスの回数が求まります。

キャッシュなしストールサイクル

0 40 キャッシュなしフェッチ、ロード、ストアのいずれかでプロセッサがストールしたサイクルをカウントします。

MDU ストールサイクル 0 41 整数パイプラインがMDUからの戻りデータを待機した全てのサイクルをカウントします。

CACHE命令ストールサイクル (1) 0 44 CACHE 命令によってパイプラインがストールした全てのサイクルをカウントします。CACHE命令自体が ALU でストールしたサイクルと、CACHE 命令が原因で後続の命令がストールしたサイクルをカウントに含みます。

Load to Use ストールサイクル 0 45 整数パイプラインがロードからの戻りデータを待機した全てのサイクルをカウントします。

その他のインターロック ストールサイクル

0 46 整数パイプラインが MFC0 および RDHWR命令からの戻りデータを待機した全てのサイクルをカウントします。

LFB フル パイプライン ストールサイクル

1 53 DCC 内のロードフィル バッファ (LFB) がフルであるためにパイプラインがストールしたサイクルをカウントします。

ライトスルー バッファフル ストールサイクル (1)

1 55 BIU 内のライトスルー バッファがフルであるためにパイプラインがストールしたサイクルをカウントします。

表 50-16: イベントの説明 ( 続き )

イベント名 カウンタイベント

番号概要

Note 1: このイベントは、microAptiv™ MPU コアを採用したデバイスでのみ利用できます。このイベントが利用できるかどうかは、デバイス データシート内の「CPU」を参照してください。

© 2013 Microchip Technology Inc. Preliminary DS61192A_JP - p. 50-87

Page 88: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

PIC32 ファミリ リファレンス マニュアル

50.12.47 PerfCntx レジスタ (CP0 レジスタ 25、Select 1/3)

microAptiv™マイクロプロセッサ コアでは、2つのパフォーマンス カウンタ(PerfCnt0とPerfCnt1)と、これらに対応する 2 つの制御レジスタ (PerfCtl0 と PerfCtl1、レジスタ 50-46 参照 ) が定義されており、これらのレジスタは CP0 レジスタ 25 に割り当てられています。表 50-14 のようにSelect ビットを設定する事で、MTC0/MFC0命令がアクセスするレジスタを選択します。

パフォーマンス カウンタが低消費電力状態にリセットされた場合、ソフトウェアでパフォーマンス カウンタ制御レジスタに対して MTC0命令を実行してイベントのカウントを有効にするまで、全てのカウンタはイベントのカウントを始めません。

レジスタ 50-47: PerfCntx: パフォーマンス カウンタ カウントレジスタ(CP0 レジスタ 25、Select 1/3 (x = 0 または 1))

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x

COUNTER<31:24>

23:16R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x

COUNTER<23:16>

15:8R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x

COUNTER<15:8>

7:0R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x

COUNTER <7:0>

凡例

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-0 COUNTER<31:0>: イベントカウンタ ビット

このカウンタに割り当てられているイベントのカウント値

DS61192A_JP - p. 50-88 Preliminary © 2013 Microchip Technology Inc.

Page 89: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

セクション 50. microAptiv™ コア採用デバイスの CPUm

icroA

ptiv™

コア

採用

デバ

イス

のC

PU

50

50.12.48 ErrCtl レジスタ (CP0 レジスタ 26、Select 0) (microAptiv™ MPU 専用 )

ErrCtl レジスタは、way 選択と RAM のソフトウェア試験用に使います。

WST ビットをセットすると、way 選択 RAM 試験モードが有効になります。この場合、CACHEIndex Load Tag および Index Store Tag 命令は、タグ RAM を変更せずに、way 選択 RAM を変更します。このビットをセットすると、TagLo レジスタ内の PA フィールドの下位 6 ビットは、Index Load Tag および Index Store Tag CACHE 動作向けのソースとデスティネーションとして使われます。

WST ビットは、データ RAM 試験モードも有効にします。このビットをセットすると、IndexStore Data CACHE 命令が有効になります。この CACHE 動作は、インデックスとバイトアドレスが指すデータ配列内のワードに、DataLo レジスタの内容を書き込みます。

レジスタ 50-48: ErrCtl: パリティ保護制御レジスタ (CP0 レジスタ 26、Select 0)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 R/W-0 U-0 U-0 U-0 U-0 U-0

— — WST — — — — —

23:16U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

15:8U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

7:0U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

凡例

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-28 未実装 :「0」として読み出し

bit 29 WST: Way 選択 / タグ配列ビット

Index Load/Store Tag CACHE命令によって、タグ配列または way 選択配列のどちらを読み / 書きするのかを選択します。このビットは、DataLo の内容をデータ配列に書き込む Index Store Data CACHE 命令も有効にします。

1 = Index Load/Store Tag CACHE 命令によって way 選択配列を読み / 書きする0 = Index Load/Store Tag CACHE 命令によってタグ配列を読み / 書きする

bit 27-0 未実装 :「0」として読み出し

© 2013 Microchip Technology Inc. Preliminary DS61192A_JP - p. 50-89

Page 90: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

PIC32 ファミリ リファレンス マニュアル

50.12.49 TagLo レジスタ (CP0 レジスタ 28、Select 0)、WST (ErrCtl<29>) = 0 の場合 (microAptiv™ MPU 専用 )

ErrCtl レジスタの WST ビットがクリアされている場合、TagLo レジスタはタグ配列へのインターフェイスとして機能します。CACHE 命令の Index Store Tag および Index Load Tag 動作は、TagLo レジスタをタグ情報源として使います。

ErrCtl レジスタの WST ビットがセットされると、このレジスタは way 選択 RAM へのインターフェイスとして機能するよう変更されます。この際、このレジスタ内のフィールドは、タグ配列に代わって WS 配列の内容に適切にアクセスするよう、再定義されます。

Note: WST = 1の場合の TagLo レジスタ内のフィールドはレジスタ 50-50 に記載しています。

レジスタ 50-49: TagLo: キャッシュ タグ配列インターフェイス レジスタ (CP0 レジスタ 28、Select 0) (WST = 0 の場合 )

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x

PA<21:14>

23:16R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x

PA<13:6>

15:8R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x U-0 U-0

PA<5:0> — —

7:0R/W-x R/W-x R/W-x U-0 U-0 U-0 U-0 U-0

V D L — — — — —

凡例

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-10 PA<21:0>: キャッシュライン物理アドレスビット

これらのビットは、キャッシュラインの物理アドレスを格納します。PA<21> は物理アドレスの bit 31 に対応し、PA<0> は物理アドレスの bit 10 に対応します。

bit 9-8 未実装 :「0」として読み出し

bit 7 V: 有効キャッシュライン ステータスビット

このビットは、キャッシュラインが有効化どうかを示します。

bit 6 D: Dirty キャッシュライン ステータスビット

このビットは、キャッシュラインが dirty どうかを示します。このビットは、bit 7 (V ビット ) がセットされている場合にのみセットされます。

bit 5 L: キャッシュタグ ロック ステータスビット

このビットは、キャッシュタグのロックビットを指定します。このビットと bit 7 (V ビット ) がセットされている場合、対応するキャッシュラインはキャッシュ置換アルゴリズムによって置換されません。

bit 4-0 未実装 :「0」として読み出し

DS61192A_JP - p. 50-90 Preliminary © 2013 Microchip Technology Inc.

Page 91: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

セクション 50. microAptiv™ コア採用デバイスの CPUm

icroA

ptiv™

コア

採用

デバ

イス

のC

PU

50

50.12.50 TagLo レジスタ (CP0 レジスタ 28、Select 0)、WST (ErrCtl<29>) = 1 の場合 (microAptiv™ MPU 専用 )

ErrCtl レジスタの WST ビットがクリアされている場合、TagLo レジスタはタグ配列へのインターフェイスとして機能します。CACHE 命令の Index Store Tag および Index Load Tag 動作は、TagLo レジスタをタグ情報源として使います。

ErrCtl レジスタの WST ビットがセットされると、このレジスタは way 選択 RAM へのインターフェイスとして機能するよう変更されます。この際、このレジスタ内のフィールドは、タグ配列に代わって WS 配列の内容に適切にアクセスするよう、再定義されます。

Note: WST = 0の場合の TagLo レジスタ内のフィールドはレジスタ 50-49 に記載しています。

レジスタ 50-50: TagLo: キャッシュ タグ配列インターフェイス レジスタ (CP0 レジスタ 28、Select 0) (WST = 1 の場合 )

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

23:16U-0 U-0 U-0 U-0 R/W-x R/W-x R/W-x R/W-x

— — — — WSD<3:0>:

15:8R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x U-0 U-0

WSLRU<5:0>: — —

7:0U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

— — — — — — — —

凡例

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-20 未実装 :「0」として読み出し

bit 19-16 WSD<3:0>: way 選択 Dirty ステータスビット

これらのビットは、CHACH Index Load WS 動作の後に way 選択配列から読み出された値を格納します。この値は、CACHE Index Store WS 動作中に way 選択配列にストアするために使われます。

bit 15-10 WSLRU<5:0>: way 選択 長時間未使用ビット

これらのビットは、way 選択配列からの読み出し値または way 選択配列へのストア値を格納します。

bit 9-0 未実装 :「0」として読み出し

© 2013 Microchip Technology Inc. Preliminary DS61192A_JP - p. 50-91

Page 92: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

PIC32 ファミリ リファレンス マニュアル

50.12.51 DataLo レジスタ (CP0 レジスタ 28、Select 1) (microAptiv™ MPU 専用 )

DataLo レジスタは、キャッシュデータ配列へのインターフェイスとして機能する診断目的専用のレジスタです。CACHE命令の Index Load Tag 動作は、対応するデータ値を DataLo レジスタへ読み出します。ErrCtl レジスタの WST ビットがセットされている場合、Index Store DataCACHE命令を実行する事で、DataLo の内容をキャッシュデータ配列に書き込む事ができます。

レジスタ 50-51: DataLo: キャッシュデータ配列インターフェイス レジスタ (CP0 レジスタ 28、Select 1)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x

DATA<31:24>

23:16R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x

DATA<23:16>

15:8R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x

DATA<15:8>

7:0R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x

DATA<7:0>

凡例

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-0 DATA<31:0>: キャッシュデータ配列からの下位データ読み出しビット

DS61192A_JP - p. 50-92 Preliminary © 2013 Microchip Technology Inc.

Page 93: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

セクション 50. microAptiv™ コア採用デバイスの CPUm

icroA

ptiv™

コア

採用

デバ

イス

のC

PU

50

50.12.52 ErrorEPC レジスタ (CP0 レジスタ 30、Select 0)

ErrorEPC レジスタは読み / 書き可能レジスタです。このレジスタはエラー例外時に使います。その挙動は通常の例外時に使う EPC レジスタに類似しています。ErrorEPC レジスタの全てのビットは効果を持ち、書き込み可能です。このレジスタはリセット、ソフトリセット、ノンマスカブル割り込み (NMI) 例外時にプログラム カウンタを保存するためにも使います。

ErrorEPC レジスタは、エラーをサービスした後に命令処理を再開可能な位置を指す仮想アドレスを格納します。このアドレスは下記のいずれかです。

• エラー例外の原因となった命令の仮想アドレス

• エラー例外の原因となった命令が分岐遅延スロット内である場合、直前の分岐またはジャンプ命令の仮想アドレス

EPC レジスタとは異なり、ErrorEPC レジスタには、対応する分岐遅延スロットを示すものはありません。

PIC32 ファミリは MIPS16e® または microMIPS™ ASE を実装しているため、MFC0 命令による ErrorPC レジスタの読み出しは、デスティネーション GPR に下記の値を返します。

GPR[rt] = ErrorExceptionPC31..1 || ISAMode0

すなわち、エラー例外 PC の上位 31 ビットに ISA<1:0> ビット (Config3<15:14>) の下位ビットを連結した内容が GPR に書き込まれます。

同様に、MTC0 命令による ErrorEPC レジスタへの書き込みは、GPR から読み出した値を、下記のようにエラー例外 PC と ISA<1:0> ビット (Config3<15:14>) に分配します。

ErrprExceptionPC = GPR[rt]31..1 || 0ISAMode = 2#0 || GPR[rt]0

すなわち、GPR の上位 31 ビットをエラー例外 PC の上位 31 ビットに書き込み、下位 1 ビットをクリアします。また、GPR の 下位ビットを ISA<1:0> ビット (Config3<15:14>) の下位ビットに書き込み、上位ビットをクリアします。

レジスタ 50-52: ErrorEPC: エラー例外プログラム カウンタ レジスタ (CP0 レジスタ 30、Select 0)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x

ErrorEPC<31:24>

23:16R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x

ErrorEPC<23:16>

15:8R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x

ErrorEPC<15:8>

7:0R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x

ErrorEPC<7:0>

凡例

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-0 ErrorEPC<31:0>: エラー例外プログラム カウンタビット

© 2013 Microchip Technology Inc. Preliminary DS61192A_JP - p. 50-93

Page 94: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

PIC32 ファミリ リファレンス マニュアル

50.12.53 DeSAVE レジスタ (CP0 レジスタ 31、Select 0)

DeSAVE レジスタは読み / 書き可能レジスタです。このレジスタは単純なメモリアドレスとして機能します。デバッグ例外ハンドラは、このレジスタを使って 1 つの GPR を保存し、そのGPR を使って、残りのコンテクストを事前に決められたメモリ領域 (EJTAG プローブ等 ) に保存します。このレジスタを使う事で、例外ハンドラとその他のコード ( コンテクストの保存用に有効なスタックを確保できそうにないコード ) を安全にデバッグできます。

レジスタ 50-53: DeSAVE: デバッグ例外保存レジスタ (CP0 レジスタ 31、Select 0)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x

DESAVE<31:24>

23:16R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x

DESAVE<23:16>

15:8R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x

DESAVE<15:8>

7:0R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x

DESAVE<7:0>

凡例

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-0 DESAVE<31:0>: デバッグ例外保存ビット

デバッグ例外コードが使うスクラッチパッド レジスタ

DS61192A_JP - p. 50-94 Preliminary © 2013 Microchip Technology Inc.

Page 95: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

セクション 50. microAptiv™ コア採用デバイスの CPUm

icroA

ptiv™

コア

採用

デバ

イス

のC

PU

50

50.13 microMIPS™ の実行

microMIPS™ は、MIPS コアの高性能を維持したまま、アプリケーションのコードサイズを小限に抑える事により、特に組み込み用では高価となるメモリのコストを削減します。この技術を使う事で、アプリケーションのプロファイリングに時間を要する事なく、 善の結果を達成できます。一般的に、コードのサイズを縮小できれば、メモリアクセスの回数が減るため、実行するタスクあたりの消費電力を低く抑える事ができます。

MIPS32® リリース 3.0 アーキテクチャは、MIPS32® 命令セットと microMIPS™ (MIPS32® 命令の拡張セット ) の両方をサポートします。

50.14 MCU™ ASE 拡張

MCU™ ASE は、マイクロコントローラ向けに設計された一連の新機能によって microMIPS™および MIPS32® アーキテクチャを拡張します。

MCU™ ASE は、割り込みデリバリおよび割り込みレイテンシ等の各種特異領域での拡張を含みます。

50.14.1 割り込みデリバリ

MCU™ ASE は、優先順位付けとベクタ生成を別々に処理し、割り込みハードウェア入力の数を 63 個から 255 個に拡張します ( 外部割り込みコントローラ (EIC) モード )。

50.14.2 割り込みレイテンシの低減

MCU™ ASE は、割り込み信号に対するプロセッサの応答遅延を低減する microMIPS™ およびMIPS32® 拡張パッケージを含みます。

50.14.2.1 割り込みベクタ プリフェッチ

MIPS アーキテクチャ プロセッサでは、通常、割り込みまたは例外信号が生成された時に、割り込み /例外ハンドラをフェッチする前に実行パイプラインをフラッシュする必要があります。これは、割り込み / 障害プログラムと例外ハンドラのコンテクストの混同を防ぐために必要です。MCU™ ASE は、割り込み入力信号が変化した時に割り込み例外ベクタをプリフェッチするハードウェア機構を導入します。プリフェッチ メモリ トランザクションは、パイプラインのフラッシュおよび例外の優先順位付けと並列に発生します。これにより、割り込みハンドラの先頭命令の実行における全体的な遅延が減少します。

50.14.2.2 自動割り込みプロローグ

シャドーレジスタ セットを使う事で、割り込みを処理する前に汎用レジスタを保存するというソフトウェア ステップを不要にできます。

MCU™ ASE は、割り込み処理の準備中にスタック内の一部の CP0ステートを自動的に保存し、CP0 レジスタの一部を自動的に更新するハードウェア ロジックを追加します。

50.14.2.3 自動割り込みエピローグ

自動割り込みプロローグとは逆に、この機能はスタックから CP0 レジスタの一部を自動的に復元し、非例外モードに戻るために CP0 レジスタの一部を準備します。この機能は、この ASEに導入された IRET 命令に実装されています。

50.14.2.4 割り込みチェーン

この機能は自動割り込みエピローグのオプション機能です。この機能を使うと、 初の割り込みを処理した後に、非例外モードに戻る事なく、続けて 2 番目の割り込みを処理できます ( また、通常は必要となる関連パイプラインのフラッシュも不要です )。

© 2013 Microchip Technology Inc. Preliminary DS61192A_JP - p. 50-95

Page 96: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

PIC32 ファミリ リファレンス マニュアル

50.15 MIPS® DSP ASE 拡張

MIPS DSP ASE (Application-Specific Extension) リビジョン 2 は MIPS32® アーキテクチャを拡張します。この拡張は、新しい整数命令とステート ( 新しい HI/LO アキュムレータ レジスタペアと DSP 制御レジスタを含む ) を含みます。これらは、さまざまな DSP マルチメディアやオーディオ / ビデオ アプリケーション向けの DSP 関連アルゴリズムにとって極めて重要です。この拡張は、ネイティブの小数データ型演算とレジスタ SIMD (Single Instruction Multiple Data)演算 ( 加算、減算、乗算、シフト等 ) をサポートします。加えて、DSP アルゴリズムを効率的に計算するために重要となる下記の機能も含みます。

• 複素数オペランドの乗算

• 可変ビット挿入および抽出

• 仮想リングバッファの実装と使用

• 算術飽和 / オーバーフロー処理

• ゼロサイクル オーバーヘッドの飽和 / 丸め演算

この拡張については、『MIPS32® Architecture for Programmers VolumeIV-e: The MIPS® DSPApplication-Specific Extension to the MIPS32® Architecture』 – MD00374, Revision 2.34, May 6,2011 (www.mips.com から入手可能 ) を参照してください。

50.16 メモリモデル (microAptiv™ MCU 専用 )ソフトウェアが使う仮想アドレスは、CPU バスに転送される前に、メモリ管理ユニット (MMU)によって物理アドレスに変換されます。microAptiv™ MCU マイクロプロセッサ コアを採用した PIC32 デバイスは、この変換に固定マッピングを使います。

システム メモリモデルの詳細はセクション 3.「メモリ構成」(DS61115) を参照してください。

図 50-14: SRAM アクセス時のアドレス変換

50.16.1 キャッシュ適用性

CPU は命令フェッチ、ロード、ストアの仮想アドレスに基づいて、キャッシュにアクセスすべきかどうかを判断します。kseg0 または useg/kuseg 内のメモリアクセスはキャッシュ可能ですが、kseg1 内のアクセスはキャッシュできません。CPU は、メモリセグメントのキャッシュ適用性を判断するために、Config レジスタの CCA ビットを使います。対応する CCA が 0112であれば、メモリアクセスはキャッシュ可能です。キャッシュ動作の詳細は『PIC32 ファミリリファレンス マニュアル、セクション 04. プリフェッチ キャッシュ モジュール』(DS61119)を参照してください。

50.16.1.1 リトルエンディアンのバイトオーダ

バイト単位でメモリをアドレッシングする CPU では、複数バイトのデータアイテムを処理するために、バイトの並び順に関する規則が存在します。ビッグエンディアンのバイトオーダでは、複数バイトデータの MSB が も低いアドレスに格納されます。リトルエンディアンのバイトオーダでは、複数バイトデータの LSB が も低いアドレスに格納されます。PIC32 CPUはリトルエンディアンのバイトオーダをサポートします。

SRAMInterface

InstnSRAM

DataSRAM

FMT

InstructionAddress

Calculator

DataAddress

Calculator

VirtualAddress

VirtualAddress

PhysicalAddress

PhysicalAddress

DS61192A_JP - p. 50-96 Preliminary © 2013 Microchip Technology Inc.

Page 97: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

セクション 50. microAptiv™ コア採用デバイスの CPUm

icroA

ptiv™

コア

採用

デバ

イス

のC

PU

50

図 50-15: ビッグエンディアン バイトオーダ

図 50-16: リトルエンディアン バイトオーダ

HigherAddress Word

Address

LowerAddress

Bit #

1 word = 4 bytes

12

8

4

0

13

9

5

1

14

10

6

2

15

11

7

3

31 24 23 16 15 8 7 012

8

4

0

HigherAddress Word

Address

LowerAddress

Bit #

15

11

7

3

14

10

6

2

13

9

5

1

12

8

4

0

31 24 23 16 15 8 7 012

8

4

0

© 2013 Microchip Technology Inc. Preliminary DS61192A_JP - p. 50-97

Page 98: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

PIC32 ファミリ リファレンス マニュアル

50.17 メモリ管理 (microAptiv™ MPU 専用 )microAptiv™ MPU コアを採用した PIC32 デバイスは、TLB (Translation Lookaside Buffer) を使って仮想ページアドレスを物理ページアドレスに変換するメモリ管理ユニット (MMU) を実装しています。同一仮想メモリ内で動作する複数のタスクを管理するために、オペレーティング システムはこの機能を使って、それらのタスクを別々の物理メモリ位置に割り当てます。また、MMU は物理メモリ領域を保護し、キャッシュ プロトコルを定義します。microAptiv™ MPUコアを採用した PIC32 デバイスは、4 KB ~ 1 MB のページサイズをサポートします。

MMU の中核となるのが TLB です。TLB は下記の 3 つの変換バッファを備えます。

• 16 デュアルエントリのフルアソシエティブ ジョイント TLB (JTLB)

• 4 エントリの命令 micro-TLB (ITLB)

• 4 エントリのデータ micro-TLB (DTLB)

ページアドレスを変換する際、 初に ITLB と DTLB がアサートされます。micro-TLB 内に変換アドレスが見つからないと、JTLB がアサートされます。JTLB 内に変換アドレスが見つからなければ、例外が発生します。

図 50-17 に、microAptiv™ MPU 採用 PIC32 デバイスにおける TLB とキャッシュ アクセス間の相互作用を示します。

図 50-17: TLB アドレス変換

InstructionCache

ITLB

JTLB

DTLB

DataCache

Tag (IPA)

InstructionPhysical

Address (IPA)

Comparator

IVA Entry

Entry

InstructionVirtual

Address (IVA)

DataVirtual

Address (DVA)

DataPhysical

Address (DPA)

Tag (DPA)

Comparator

InstructionHit/Miss

DataHit/Miss

DS61192A_JP - p. 50-98 Preliminary © 2013 Microchip Technology Inc.

Page 99: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

セクション 50. microAptiv™ コア採用デバイスの CPUm

icroA

ptiv™

コア

採用

デバ

イス

のC

PU

50

50.17.1 仮想メモリと動作モード

全ての PIC32 デバイスは、下記の 3 つの動作モードをサポートします。

• ユーザモード

• カーネルモード

• デバッグモード

リセット時および例外を認識した時点で、コアはカーネルモードに移行します。カーネルモード中は、ソフトウェアは 4 GB アドレス空間の全体と CP0 レジスタにアクセスできます。

ユーザモードの場合、アドレス空間の先頭から 2 GB (0x00000000 ~ 0x7FFFFFFF) にしかアクセスできず、CP0 機能へのアクセスから除外される場合もあります。ユーザモードで0x7FFFFFFF より値の大きな仮想アドレスにアクセスすると、例外が発生します。

デバッグ例外が発生すると、デバッグモードに移行します。デバッグモード中は、ソフトウェアは全てのカーネルモード アドレスおよび機能と、カーネルセグメント kseg3 の一部にオーバーレイするデバッグ セグメント dseg にアクセスできます。

仮想メモリセグメントは、動作モードに応じて異なります。PIC32 の仮想メモリマップについては、50.11.4「プロセッサモード」内の図 50-13 を参照してください。

50.17.1.1 マップされるセグメントとマップされないセグメント

MMUを使って仮想ページアドレスを物理メモリアドレスに変換するメモリセグメントは、マップされるセグメントと見なします。MMU を使わないセグメントは、マップされないセグメントと見なします。マップされないセグメントは、仮想アドレスから物理アドレスへ固定的に変換されます。リセット後は、TLB がアドレス変換を実行するようプログラミングされるまでの間、マップされないメモリから実行する事が重要です。

kseg0 を除くマップされないセグメントは常にキャッシュの対象外です。kseg0 のキャッシュ適用性は、CP0 レジスタの K0 フィールドで設定します。マップされるセグメントのキャッシュ適用性は、CP0 レジスタの K23 および KU フィールドで設定します。図 50-18 に、カーネルモードとユーザモードにおける仮想メモリのマップされる領域と、マップされない領域を示します。デバッグモード中の dseg 領域はマップされません。デバッグモード中のその他の領域のマッピングは、カーネルモードと同じです。

図 50-18: ユーザモードとカーネルモードにおける仮想メモリのマッピング

0xFFFFFFFF

0x800000000x7FFFFFFF

0x00000000

USER MODE Kernel Mode

0xFFFFFFFF

0x800000000x7FFFFFFF

0x00000000

0xE00000000xDFFFFFFF

0xC00000000xBFFFFFFF

0xA00000000x7FFFFFFF

Reserved

2 GB Mapped

512 MB Mapped

512 MB Mapped

512 MB Unmapped

512 MB Unmapped

2 GB Mappeduseg kuseg

kseg3

kseg2

kseg1

kseg0

© 2013 Microchip Technology Inc. Preliminary DS61192A_JP - p. 50-99

Page 100: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

PIC32 ファミリ リファレンス マニュアル

50.17.2 TLB (Translation Lookaside Buffer)

TLB は、以下に示す 1 つのジョイントと 2 つの micro アドレス変換バッファによって構成されます。

• 16 デュアルエントリのフルアソシエティブ ジョイント TLB (JTLB)

• 4 エントリのフルアソシエティブ命令 micro-TLB (ITLB)

• 4 エントリのフルアソシエティブ データ micro-TLB (DTLB)

50.17.2.1 ジョイント TLB

JTLB は、32 個の仮想ページアドレスを、対応する物理アドレスにマップします。TLB の目的は、仮想ページアドレスを、それらに対応するアドレス空間 ID (ASID) と組み合わせて、物理メモリアドレスに変換する事です。通常、オペレーティング システムは ASID を各ユーザプログラムまたはプロセスに割り当てます。オペレーティング システムは、TLB を使って、各ユーザプロセスを別々の物理メモリ空間に配分します。

仮想アドレスの上位ビットと ASID ビットの組み合わせを各 JTLB タグエントリと比較する事で、仮想アドレスから物理アドレスへの変換が行われます。JTLB とは、命令とデータの両方の仮想ページアドレスの変換に使われる「ジョイント」TLB です。

JTLB は、ページ (4 KB ~ 1 MB) のアドレス変換を格納した奇数および偶数番号エントリのペアとして構成されます。各仮想タグエントリは、2 つの物理データエントリ ( 偶数ページエントリと奇数ページエントリ ) に対応します。仮想アドレスの 上位ビットはタグ比較には使われず、2 つのデータエントリのどちらを使うのかを指定するために使われます。図 50-19 に、JTLB の 2 つあるエントリの内の 1 つのエントリの内容を示します。

図 50-19: JTLB エントリ ( タグとデータ )

PageMask<28:11>

VPN2<31:13>

PFN0<31:12>

PFN1<31:12>

G ASID<7:0>

RI0

RI1

XI0

XI1

C0<2:0>

C1<2:0>

D0

D1

V0

V1

DS61192A_JP - p. 50-100 Preliminary © 2013 Microchip Technology Inc.

Page 101: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

セクション 50. microAptiv™ コア採用デバイスの CPUm

icroA

ptiv™

コア

採用

デバ

イス

のC

PU

50

表 50-17 に、JTLB エントリの各フィールドの説明を記載します。表 50-17: TLB タグエントリの各フィールド

テーブルエントリの書き込みには TLBWIまたは TLBWR命令を使います。これらの命令を実行する前に、TLB エントリに書き込む内容を下記の各 CP0 レジスタに書き込んでおく必要があります。

• PageMask レジスタ (CP0 レジスタ 5、Select 0) で PageMask を設定する

• EntryHi レジスタ (CP0 レジスタ 10、Select 0) で VPN2、VPN2X、ASID を設定する

• EntryLo0 レジスタ (CP0 レジスタ 2、Select 0) で PFN0、C0、D0、V0、G を設定する

• EntryLo1 レジスタ (CP0 レジスタ 3、Select 0) で PFN1、C1、D1、V1、G を設定する

ビット名 内容

PageMask<28:11> ページマスクの値です。ページマスクは、適切な VPN2 ビットをマスキングする事でページサイズを定義します。この設定に応じて、偶数または奇数ページ (PFN0 または PFN1) のどちらかを指定するためのビット ( 偶数 / 奇数バンク選択ビット ) のビット位置も決まります。

VPN2<31:13> 仮想ページ番号は 2 で割り算されます。このフィールドは、2 で割り算された仮想ページ番号の上位ビットを格納します。2 で割り算するのは、TLB ページのペアの番号を表すためです。ビット <31:25> は、常に TLB のルックアップ比較に含まれます。ビット <24:13> が比較に含まれるかどうかは、PageMask によるページサイズの定義によって決まります。

G Global ビット : このビットがセットされている場合、このエントリは全てのアドレス空間に対してグローバルである (TLB ルックアップ比較で ASID を無視する ) 事を示します。

ASID<7:0> アドレス空間 ID: この TLB エントリに対応するプロセスまたはスレッドを識別します。

PFN0<31:12>PFN1<31:12>

物理フレーム番号 : 物理アドレスの上位ビットを定義します。4 KB よりも大きなページサイズに対しては、これらのビットのサブセットだけが実際に使われます。

C0<2:0>C1<2:0>

キャッシュ適用性 : キャッシュ適用性属性 (そのページにキャッシュを適用するかどうか )を指定します。

RI0RI1

読み出し抑止ビット : ページが読み出し保護されているかどうかを示します。このビットとPgeGrain レジスタの IEC ビットがセットされている場合、ページからの読み出しは TLB 読み出し抑止例外を引き起こします。

XI0XI1

実行抑止ビット : ページが実行から保護されているかどうかを示します。このビットとPageGrain レジスタの IEC ビットがセットされている場合、ページからの命令フェッチは TLB実行抑止例外を引き起こします。

D0D1

Dirty ビット : ページが書き込まれたかどうか、または、書き込み可能かどうか ( またはその両方 ) を示します。このビットがセットされている場合、ページへの書き込みは許可されます。このビットがセットされていない場合、ページへの書き込みはTLB変更例外を引き起こします。

V0V1

Valid ビット : TLB エントリが有効かどうかを示します。このビットがセットされている場合、ページへのアクセスは許可されます。このビットがセットされていない場合、ページへのアクセスは TLB 無効例外を引き起こします。

ページマスク ページサイズ 偶数 / 奇数バンク選択ビット

00 0000 0000 0000 0011 4 KB VAddr<12>

00 0000 0000 0000 1111 16 KB VAddr<14>

00 0000 0000 0011 1111 64 KB VAddr<16>

00 0000 0000 1111 1111 256 KB VAddr<18>

00 0000 0011 1111 1111 1 MB VAddr<20>

C<2:0> コヒーレンシ属性

000 キャッシュ適用、非コヒーレント、ライトスルー、ライトアロケート無効

001 キャッシュ適用、非コヒーレント、ライトスルー、ライトアロケート有効

010 キャッシュなし

011 キャッシュ適用、非コヒーレント、ライトバック、ライトアロケート有効

100-111 予約済み

Note: global ビットは EntryLo0 および EntryLo1 レジスタ内にあります。JTLB 内の G ビットには、EntryLo0 および EntryLo1 レジスタ内の G ビットの論理積 (AND) が書き込まれます。

© 2013 Microchip Technology Inc. Preliminary DS61192A_JP - p. 50-101

Page 102: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

PIC32 ファミリ リファレンス マニュアル

50.17.2.2 micro-TLB (ITLB と DTLB)

ITLB は、命令ストリーム専用の小さな (micro) TLB です。DTLB は、JTLB よりも高速にロード/ ストア アドレスを変換する小さな TLB です。ITLB も DTLB も 4 エントリ / フルアソシエティブであり、完全にハードウェアによって管理されます。

命令フェッチアドレスは 初に ITLB によって変換されます。ITLB がフェッチミスした場合、次のクロックサイクルで JTLB にアクセスします。変換に成功すると、エントリは ITLB にコピーされます。次に ITLB に再アクセスする事で、アドレスが正常に変換されます。

データ変換では、DTLB と JTLB に並列にアクセスします。DTLB がミスして JTLB がヒットした場合、そのクロックサイクル中に DTLB がリロードされます。そして、次のクロックサイクルで DTLB に再アクセスします。

50.17.3 仮想アドレスから物理アドレスへの変換

TLB は主としてページテーブル エントリに対するキャッシュとして機能します。仮想アドレスを物理アドレスに変換する際に、アドレスの仮想ページ番号 (VPN)( アドレスの上位ビット ) とTLB に保存されている仮想ページ番号が比較されます。下記の条件が成立すると TLB ヒットが発生します。

• 仮想アドレスの VPN が TLB に保存されている VPN と一致し、かつ、下記条件のどちらかが成立する

- TLB エントリの偶数および奇数ページの gloval (G) ビットが両方ともセットされている

- 仮想アドレスの ASID フィールドと TLB エントリの ASID フィールドが一致する

上記 2 つの条件のどちらも成立しない場合、プロセッサは TLB ミス例外を発生させ、ソフトウェアはメモリ内の仮想 / 物理アドレス ページテーブルから TLB にリフィルできます。

図 50-20 に、仮想アドレスから物理アドレスへの変換方法を示します。

図 50-20: 仮想アドレスから物理アドレスへの変換

各 JTLB エントリは、1 つのタグと 2 つのデータフィールドを格納しています。TLB ヒットの場合、仮想アドレスの上位ビットは、対応するデータフィールドに保存されているページフレーム番号 (PFN) に置換されます。TLB ミスの場合、例外が発生し、ソフトウェアはメモリに保存されているページテーブルから TLB にリフィルします。

G ASID VPN

C0

C1

D0

D1

V0

V1

PFN0

PFN1

TLB Entry

TLB

G ASID VPN Offset

VIRTUAL ADDRESS

Physical Address

PFN Offset

DS61192A_JP - p. 50-102 Preliminary © 2013 Microchip Technology Inc.

Page 103: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

セクション 50. microAptiv™ コア採用デバイスの CPUm

icroA

ptiv™

コア

採用

デバ

イス

のC

PU

50

50.17.4 TLB エントリの置換

通常の TLB ミスでは、JTLB エントリはランダム置換アルゴリズムによって置換されます。CP0Wired レジスタ ( レジスタ 50-8 参照 ) を使うと、一部の TLB へのマッピングをロックする事もできます ( ロックするエントリの数は設定可能 )。

JTLB は、4 KB ~ 1 MB (4 の累乗倍 ) のページサイズをサポートします。ページサイズはエントリごとに設定できます。これを行うには、新しいエントリを書き込む前に CP0 PageMask レジスタに適切なページサイズを書き込んでおく必要があります。Wired 機能は、1 つの TLB エントリを使って大きなメモリブロック ( フレームバッファ等 ) をマップする場合に一般的に使われます。

50.17.5 TLB 命令

表 50-18 に、PIC32 がサポートする TLB 関連の命令を記載します。これらの命令の詳細は50.19.5.5「TLB 命令 (microAptiv™ MPU 専用 )」を参照してください。

表 50-18: TLB 命令

命令 内容

TLBP TLB プローブ

TLBR TLB 読み出し

TLBWI TLB 書き込み ( インデックス )

TLBWR TLB 書き込み ( ランダム )

© 2013 Microchip Technology Inc. Preliminary DS61192A_JP - p. 50-103

Page 104: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

PIC32 ファミリ リファレンス マニュアル

50.18 L1 キャッシュ (microAptiv™ MPU 専用 )microAptiv™ MPU マイクロプロセッサ コアを採用した PIC32 デバイスは、命令とデータ用に別々のキャッシュを備えています。別々のキャッシュを使う事で、命令とデータを同時に参照できます。どちらのキャッシュにも VIPT (Virtually Index、 Physically-tagged) 方式を採用しおり、キャッシュ アクセスは仮想 / 物理アドレス変換と並列に発生可能です。

50.18.1 キャッシュ コンフィグレーション

命令キャッシュとデータキャッシュのサイズと連想度は異なっても構いません。例えば、命令用に 16 KB/4 way セット アソシエティブ キャッシュを使い、データ用に 4 KB/2 way セット アソシエティブ キャッシュを使う事ができます。セット アソシエティブは、ダイレクトマップ方式とフル アソシエティブ方式の中間的なキャッシュ方式です。

ダイレクトマップ方式では、メモリ内の各位置はキャッシュ内の 1 つの位置にだけマップできます。ダイレクトマップ方式の場合、実装とアドレス処理は単純ですが柔軟性に欠け、使用頻度の高い 2 つのメモリ位置が同じキャッシュ位置にマップされていると、スラッシングが生じやすくなります。

フルアソシエティブ方式の場合、メモリ内の各位置はキャッシュ内の任意位置にマップできます。この方式では、コリジョンを 小限に抑える事ができるものの、実装コストが高くなります。

セット アソシエティブ方式の場合、キャッシュは複数のラインで構成された複数のグループ( セットと呼ぶ ) に分割されます。セットあたりのライン数を「アソシエティビティ ( 連想度 )」と呼びます。各メモリ位置はいずれか 1 つのセットにマップされ、セット内の任意のラインを使ってキャッシュされます。例えば、サイズが 16 KB、ラインあたり 16 byte、4 way のセットアソシエティブ キャッシュの場合、キャッシュは 256 個のセット ( 各セットは 4 ライン ) に分割されます。図 50-21 に示すように、キャッシュ可能な各メモリ位置 (16 byte) はいずれか 1 つのセットにマップされ、そのセット内の 4 つのラインのいずれにもマップ可能です。64 MB のキャッシュ可能メモリを実装したシステムの場合、各セットは 16,384 (256 x 16 バイト ) ブロックのメモリによって共有されます。

図 50-21: microAptiv™ MPU の 16 Kbyte/4 way セット アソシエティブ キャッシュ

Memory

MemoryBlock 16,383

L1 Cache (16 KB) Physical Memory (64 MB)

Block 04 KB

(256 x 16 bytes)

MemoryBlock 1

4 KB(256 x 16 bytes)

Set 0(4 x 16 bytes)

Set 1(4 x 16 bytes)

0

255

4 KB(256 x 16 bytes)

1

256

511

257

4,194,048

4,194,303

4,194,049Set 255

(4 x 16 bytes)

(See Figure 50-22 fordetails.)

DS61192A_JP - p. 50-104 Preliminary © 2013 Microchip Technology Inc.

Page 105: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

セクション 50. microAptiv™ コア採用デバイスの CPUm

icroA

ptiv™

コア

採用

デバ

イス

のC

PU

50

50.18.2 キャッシュの編成

各キャッシュラインは、下記の 3 つの配列に編成されます。

• タグ

• データ

• way 選択

タグ配列はキャッシュされたメモリ位置の物理アドレスを保持し、データ配列はキャッシュされた (16 バイト命令 ) またはデータを保持します。タグおよびデータ配列は、4 way セット アソシエティブ キャッシュ方式に基づいて、セットあたり 4 ラインの情報を保持します。way 選択配列は、 長時間未使用 (LRU) ビットを保持します。これらのビットは、置換する way を選択するために、LRU アルゴリズムに従ってデコードされます。データキャッシュの場合、この配列は dirty ビットを保持します。これらのビットは、キャッシュ内で置換する前にデータをメモリに書き戻す必要があるかどうかを示します。

図 50-22: キャッシュ配列のフォーマット

図 50-22 内の定義は以下の通りです。

• Physical Address: 物理アドレスの上位 22 ビット (bit <31:10>)

• Lock: このビットは、CACHE 命令を使ってセットまたはクリアします。このビットをセットすると、キャッシュラインはロックされます ( つまり、キャッシュミス時の置換用に使われません )。

• Valid: キャッシュライン内のデータが有効かどうかを示します。

• Word 0-3: メモリからの命令またはデータです。各キャッシュラインは 4 つの 32 ビットワードを保存します。

• Dirty: このビットはデータキャッシュ配列にだけ存在し、各 way に 1 つずつ dirty ビットが割り当てられます。dirty ビットは、キャッシュライン内のデータが変更されるとセットされます。これにより、キャッシュフィルによってキャッシュラインが置換される前にメモリに書き戻す事を CPU に知らせます。

• LRU: これらのビットは、 長時間未使用 (LRU) アルゴリズムに従って置換される way を示します。

22 1 1

Physical Address Lock ValidWay 1

22 1 1

Physical Address Lock ValidWay 2

22 1 1

Physical Address Lock ValidWay 3

22 1 1

Physical Address Lock ValidWay 4

Word3 Word2 Word1 Word0

32 32 32 32

Word3 Word2 Word1 Word0

32 32 32 32

Word3 Word2 Word1 Word0

32 32 32 32

Word3 Word2 Word1 Word0

32 32 32 32

Dirty(1) LRU

4 6

Way-Select

Tag Data

Note 1: データキャッシュ専用

© 2013 Microchip Technology Inc. Preliminary DS61192A_JP - p. 50-105

Page 106: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

PIC32 ファミリ リファレンス マニュアル

50.18.3 キャッシュ適用性属性

kseg0 のキャッシュ適用性属性は、CP0 Config1 レジスタを使って設定できます。以下のキャッシュ適用性オプションを選択できます。

• キャッシュせず : キャッシュ非適用メモリ領域内のアドレスは、キャッシュからではなく、メインメモリから読み出されます。キャッシュ非適用メモリ領域への書き込みは、キャッシュの内容を変更する事なく、直接メインメモリにアクセスします。

• ライトバック、ライト アロケーション有効 : ロードと命令フェッチは 初にキャッシュを検索し、目的とするデータがキャッシュ内に存在しなければ、メインメモリを読み出します。データストア動作は 初にキャッシュを検索して、ターゲット アドレスがキャッシュ内に存在するかどうかを調べます。存在する場合、キャッシュの内容を更新しますが、メインメモリには書き込みません。ストアでキャッシュ ルックアップミスが発生すると、メインメモリを読み出して、そのラインをキャッシュ内へ移動し、新しいストアデータとマージします。従って、キャッシュミス時のアロケーション方式は、リードまたはライト アロケートです。データストアは、way 選択配列内の適切な dirty ビットを更新する事で、そのラインに変更されたデータが格納されている事を示します。dirty データを格納したラインがキャッシュから退出した時点で、そのデータはメモリに書き戻されます。

• ライトスルー、ライト アロケーション無効 : ロードと命令フェッチは 初にキャッシュを検索し、目的とするデータがキャッシュ内に存在しなければ、メインメモリを読み出します。データストア動作では、 初にキャッシュを検索して、ターゲット アドレスがキャッシュ内に存在するかどうかを調べます。存在する場合、キャッシュの内容を更新し、メインメモリにも書き込みます。ストアでキャッシュ ルックアップ ミスが発生すると、メインメモリだけに書き込みます。従って、キャッシュミス時のアロケーション方式は、リード アロケートのみです。

• ライトスルー、ライト アロケーション有効 : ロードと命令フェッチは 初にキャッシュを検索し、目的とするデータがキャッシュ内に存在しなければ、メインメモリを読み出します。データストア動作では、 初にキャッシュを検索して、ターゲット アドレスがキャッシュ内に存在するかどうかを調べます。存在する場合、キャッシュの内容を更新し、メインメモリにも書き込みます。ストアでキャッシュ ルックアップミスが発生すると、メインメモリを読み出して、そのラインをキャッシュ内へ移動し、新しいストアデータとマージします。さらに、ストアデータをメインメモリにも書き込みます。従って、キャッシュミス時のアロケーション方式は、リードまたはライト アロケートです。

50.18.4 キャッシュ置換方式

キャッシュ置換方式とは、キャッシュミス時にセット内のどの way にフィルするのかを決定する方法です。通常のキャッシュミスでは、ロックおよび LRU タグビットを使って、フィルするway を決定します。全ての way が有効な場合、ロックされた way は置換されません。全てのway がロックされている場合、フィルデータはキャッシュにはフィルされず、ライトバック ストアはライトスルー / ライト アロケート有効ストアに切り換わります。置換される way が dirtyである場合、その 16 バイトラインは、フィルが実行される前にメモリに書き戻されます。

way 選択配列内の LRU フィールドは、下記の方法で更新されます。

• キャッシュヒットが発生すると、対応するwayがMRU (Most Recently Used)に更新されます。

• キャッシュフィルが発生すると、フィルされた way が MRU (Most Recently Used) に更新されます。

• CACHE命令が実行された場合のLRUビットの更新は、下記のように動作に応じて異なります。

- Index (Writeback) Invalidate: LRU に更新

- Index Load Tag: 更新せず

- Index Store Tag (CP0 ErrCtl<WST> = 0): CP0 TagLo<V> = 1であれば MRU に更新、CP0 TagLo<V> = 0であれば LRU に更新

- Index Store Tag (CP0 ErrCtl<WST> = 1): CP0 TagLo<LRU> の内容に更新

- Index Store Data: 更新せず

- Hit Invalidate: ヒットが発生した場合は LRU に更新、その他の場合は更新せず

- Fill: MRU に更新

- Hit Writeback: 更新せず

- Fetch and Lock: MRU に更新

DS61192A_JP - p. 50-106 Preliminary © 2013 Microchip Technology Inc.

Page 107: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

セクション 50. microAptiv™ コア採用デバイスの CPUm

icroA

ptiv™

コア

採用

デバ

イス

のC

PU

50

50.18.5 キャッシュ命令

ユーザは CACHE命令を使ってタグ、データ、way 選択配列の内容を操作できます。ユーザは、タグおよびデータ配列内のビットをセットまたはクリアする事で、各キャッシュラインをフィル、ロック、無効化できます。CACHE 命令の使い方は 50.19.7「microAptiv™ MPU のキャッシュ命令」を参照してください。

50.18.6 キャッシュ コヒーレンシ

キャッシュはメモリ内データのコピーを保持するため、他のバスマスタがキャッシュされているメモリ位置の内容を変更すると、キャッシュ内のデータは古くなります。同様に、CPU がキャッシュの内容を更新した場合、キャッシュからメモリへの書き戻しが行われるまで、対応するメモリデータは古いままです。PIC32 CPU は、キャッシュとメモリ間のコヒーレンシを維持するためのハードウェア サポートを提供しないため、ソフトウェアで対応する必要があります。ほとんどのオペレーティング システムは、キャッシュ コヒーレンシ問題を自動的に処理します。オペレーティング システムに頼らずに動作するプログラムは、内部でキャッシュ コヒーレンシを管理する必要があります。

ライトスルー モードの場合、全てのデータ書き込みはメインメモリに書き込みます。ライトバック モードの場合、全てのデータ書き込みはキャッシュに書き込みます。この場合、ラインリフィルまたは CACHE 命令によってデータがメインメモリに書き込まれるまで、データのコピーがキャッシュで保持されているに過ぎません。

50.18.7 キャッシュの初期化

PIC32 の L1 キャッシュ タグおよびデータ配列の電源投入時の状態は未知であり、リセット時に初期化されません。従って、キャッシュは使用前に初期化する必要があります。通常、ブートコードでタグ配列に全て「0」を書き込む事でキャッシュを初期化します。ブートコードはキャッシュ非適用メモリ (kseg1) から実行される事に注意してください。

© 2013 Microchip Technology Inc. Preliminary DS61192A_JP - p. 50-107

Page 108: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

PIC32 ファミリ リファレンス マニュアル

50.19 CPU 命令

CPU 命令は下記の機能グループに分類されます。

• ロードとストア

• 計算

• ジャンプと分岐

• その他

• コプロセッサ

各命令は 32 ビット長です。

50.19.1 CPU ロードおよびストア命令

ロード / ストア アーキテクチャを採用した MIPS プロセッサは、プロセッサ レジスタが保持するオペランドを使って全ての演算を実行し、メインメモリにはロードおよびストア命令のみを使ってアクセスします。

50.19.1.1 ロードとストアのタイプ

ロードおよびストア命令は、下記に示す用途向けに各種存在します。

• 可変長フィールドの転送 ( 例 : LB、SW)

• 符号付きまたは符号なし整数として転送されたデータの変換 ( 例 : LHU)

• アライメントされていないフィールドへのアクセス ( 例 : LWR、SWL)

• アトミックなメモリ更新 ( 例 : LL/SC 等の読み出し - 変更 - 書き込み命令 )

50.19.1.2 CPU ロードおよびストア命令の種類

CPU ロードおよびストア命令は、下記のデータサイズ (AccessLength フィールドで定義 ) を転送します。

• バイト

• ハーフワード

• ワード

各種サイズの符号付きおよび符号なし整数は、符号拡張またはゼロ拡張したデータをレジスタに格納するロード命令によってサポートされます。

アライメントされていないワードとダブルワードは、2 つの命令をペアで使う事により、2 命令だけでロードまたはストアできます。ロードする場合、LWL 命令と LWR 命令をペアで使います。これらのロード命令は、それぞれアライメントされたワードの左側および右側バイト ( レジスタの左側と右側 ) を読み出し、デスティネーション レジスタのバイトに正しく適合するようにそれらのバイトを結合します。

50.19.1.3 アトミックな更新に使うロードおよびストア命令

LL (Load Linked) 命令と SC (Store Conditional) 命令のペアを使うと、ワードまたはダブルワードでキャッシュされたメモリアドレスをアトミックに読み出し - 変更 - 書き込みできます。これらの命令は、Test-and-Set、ビットレベル ロック、セマフォ、シーケンサ / イベントカウントを含む各種同期化プリミティブのいずれかを提供するために、厳密にコーディングされたシーケンス内で使います。

50.19.1.4 コプロセッサ ロードおよびストア

有効ではないコプロセッサに対してロードおよびストアを実行する事はできません。そのようなロードまたはストアが試行された場合、コプロセッサ使用不可例外が発生します。コプロセッサの有効化は、システム制御コプロセッサ (CP0) が提供する特権動作です。

DS61192A_JP - p. 50-108 Preliminary © 2013 Microchip Technology Inc.

Page 109: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

セクション 50. microAptiv™ コア採用デバイスの CPUm

icroA

ptiv™

コア

採用

デバ

イス

のC

PU

50

50.19.2 計算命令

2 の補数演算は、2 の補数で表現された整数に対して実行されます。これらは下記の演算の符号付きバージョンです。

• 加算

• 減算

• 乗算

• 除算

「符号なし」の加算および減算演算は、実質的にオーバーフロー検出なしのモジュロ演算です。

乗算と除算およびシフトの完全補完と論理演算にも「符号なし」バージョンが存在します。論理演算はレジスタの幅を選びません。

MIPS32® は、32 ビット整数と 32 ビット算術演算を提供します。

50.19.2.1 シフト命令

ISA では、下記の 2 種類のシフト命令が定義されています。

• 命令ワード内の 5 ビット フィールドで固定シフト量を指定する ( 例 : SLL、SRL)

• 汎用レジスタの下位ビットでシフト量を指定する ( 例 : SRAV、SRLV)

50.19.2.2 乗算および除算命令

乗算命令は 32 ビット値に 32 ビット値を乗算し、64 ビットまたは 32 ビットの結果を生成します。除算命令は、64 ビット値を 32 ビット値で除算し、32 ビットの結果を生成します。MUL命令を除き、これらの演算は HI および LO 特殊レジスタに結果を格納します。MUL 命令は、結果の下位半分を直接 GPR に格納します。

• 乗算は、入力オペランドの 2 倍のビット幅を持つ積を生成し、その下位半分を LO レジスタ、上位半分を HI レジスタに格納します。

• 積和および積差演算は、入力オペランドの 2 倍のビット幅を持つ積を生成し、これを HI および LO レジスタを連結した値に対して加算または減算します。そして、その結果の下位半分を LO レジスタに、上位半分を HI レジスタに書き戻します。

• 除算は、商を LO レジスタに、剰余を HI レジスタに格納します。

これらの結果には、HI/LO レジスタと汎用レジスタの間でデータを転送する命令を使ってアクセスします。

50.19.3 ジャンプおよび分岐命令

50.19.3.1 ISA によって定義されているジャンプおよび分岐命令のタイプ

アーキテクチャでは、下記のジャンプおよび分岐命令が定義されています。

• PC 相対条件分岐

• PC 領域無条件ジャンプ

• 絶対 ( レジスタ ) 無条件ジャンプ

• リターンリンク アドレスを汎用レジスタに記録する一連のプロシージャ コール

50.19.3.2 分岐遅延と分岐遅延スロット

全ての分岐は、構造的に 1 命令分の遅延を生じます。分岐直後の命令は、「分岐遅延スロット内にある」と表現します。分岐またはジャンプ命令が「分岐遅延スロット内にある」場合、それらの命令の動作は未確定です。

例外または割り込みが分岐遅延スロット内の命令の完了を妨げた場合、規則により、分岐命令フローは再実行されます。これを可能にするために、分岐は再実行可能である事が必要です。また、プロシージャコールは、リターンリンクを格納しているレジスタ ( 通常は GPR 31) を使って分岐先アドレスを決定する事はできません。

© 2013 Microchip Technology Inc. Preliminary DS61192A_JP - p. 50-109

Page 110: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

PIC32 ファミリ リファレンス マニュアル

50.19.3.3 分岐命令と BLANCH LIKELY 命令

条件分岐には下記の 2 種類が存在します。これらは、分岐が採択されず分岐の実行が不成立に終わった時に、遅延スロット内の命令を処理する方法において下記のように異なります。

• 分岐命令 : 遅延スロット内の命令を実行する

• Branch likely 命令 : 分岐が採択されなかった場合に遅延スロット内の命令を実行しない ( これを「遅延スロット内の命令を無効に (nullify) する」と言う )

50.19.4 microMIPS™ 命令

microMIPS™ ISA には、各種の新しい命令 ( メモリとの間で複数の 16 ビットまたは 32 ビットワードをロード / ストア可能な機能を含む ) が導入されています。microMIPS™ ISA に関する完全な情報は、MIPS Technologies, Inc. のウェブサイト (www.mips.com) が提供する

『microMIPS32™ Instruction Set – MD00582-2B-microMIPS-AFP』を参照してください。

50.19.5 その他の命令

50.19.5.1 同期化命令 (SYNC と SYNCI)

通常の動作では、プロセッサが内部で実行しているロードおよびストア メモリアクセスの順番が外部 ( 例えばマルチプロセッサ システム内の他のプロセッサ ) からどのように見えるかは、アーキテクチャによって定義されていません。

SYNC 命令を使うと、実行中の命令ストリーム内に、一部のロードおよびストア命令の相対的順番を特定可能にするためのポイントを作成できます。SYNC より前で実行されたロードとストアが完了するまで、SYNC より後のロードとストアは開始できません。

SYNCI 命令は、プロセッサ キャッシュを前回の書き込みまたは命令ストリームに対するその他の変更に同期させます。

50.19.5.2 例外命令

例外命令は、制御をカーネル内のソフトウェア例外ハンドラに渡します。例外には、条件付きと無条件の 2 種類があります。これらは syscall、trap、break命令により発生します。

トラップ命令は、比較の結果に基づく条件付き例外を生成します。システムコールおよびブレークポイント命令は、無条件例外を生成します。

50.19.5.3 条件付き移動命令

MIPS32® では、1 つの CPU 汎用レジスタの内容を、別のレジスタに、第 3 の汎用レジスタの値に基づいて条件付きで移動する命令を使えます。

50.19.5.4 NOP命令

NOP命令は、実質的に全てゼロとしてエンコードされます。MIPS プロセッサは、このエンコードを「何もしない」特殊なケースと見なし、命令の実行を 適化します。加えて、SSNOP命令は、スーパースカラ アーキテクチャを採用したプロセッサを含む全てのプロセッサ上で、「何もしない」サイクルを挿入します。

50.19.5.5 TLB 命令 (microAptiv™ MPU 専用 )

TLBR、TLBWI、TLBWR命令を使うと、TLB エントリを読み / 書きできます。Index レジスタにはTLB エントリの VPN が書き込まれ、タグの内容は EntryLo0、EntryLo1、PageMask レジスタへ読み出されます。TLBWIおよび TLBWR命令でも、同様の方法で TLB エントリに書き込む事ができます。

Note: Branch Likely 命令は仕様書に含まれていますが、MIPS® アーキテクチャの将来のバージョンでは廃止される予定であるため、ソフトウェアでは Branch Likely 命令を使わない事を強く推奨します。

DS61192A_JP - p. 50-110 Preliminary © 2013 Microchip Technology Inc.

Page 111: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

セクション 50. microAptiv™ コア採用デバイスの CPUm

icroA

ptiv™

コア

採用

デバ

イス

のC

PU

50

50.19.6 コプロセッサ命令

50.19.6.1 コプロセッサの役割

コプロセッサは、CPU とは別のレジスタファイルを使う代替実行ユニットです。抽象的に言うと、MIPS アーキテクチャは 大 4 個のコプロセッサ ( 番号 0 ~ 3) を提供します。これらのコプロセッサの番号は、ISA の各レベルで定義されます。コプロセッサ 0 は常にシステム制御用に使い、コプロセッサ 1 と 3 は浮動小数点ユニット用に使います。コプロセッサ 2 は、implementation-specific 用途向けに予約されています。PIC32 はコプロセッサ 0 だけを実装しています。

1 つのコプロセッサは下記の 2 種類のレジスタセットを備えます。

• コプロセッサ汎用レジスタ

• コプロセッサ制御レジスタ

各レジスタセットには 大 32 個のレジスタが含まれます。コプロセッサ計算命令は、どちらかのセット内のレジスタを使えます。

50.19.6.2 システム制御コプロセッサ 0 (CP0)

全ての MIPS® プロセッサ用システム コントローラは、コプロセッサ 0 (CP0: システム制御コプロセッサ ) として実装されます。このコプロセッサはプロセッサ制御、メモリ管理、例外ハンドラ機能を提供します。

50.19.6.3 コプロセッサ ロードおよびストア命令

CP0 向けには明示的なロードおよびストア命令は定義されておらず、CP0 レジスタの書き込みと読み出しには、コプロセッサへの移動命令とコプロセッサからの移動命令を使う必要があります。

50.19.7 microAptiv™ MPU のキャッシュ命令

CACHE命令を使うとデータ配列、タグ配列、way 選択配列を読み / 書きできます。この命令には2 つの引数 (5 ビットのオペレーション フィールドと 16 ビットのオフセット フィールド ) を使います。フォーマットはロードおよびストア命令に似ており、オフセット フィールドは下記のようにベースレジスタと 16 ビットの符号付き即値オフセットで構成されます。

cache OP, offset(base)

16 ビットオフセットを符号拡張してベースレジスタの内容に加算する事で、実効アドレスを生成します。実効アドレスには下記の 2 種類があります。

• アドレス : 実効アドレスは、命令またはデータの仮想メモリ位置を指し、通常のキャッシュされたアクセスと同様に処理されます。

• インデックス : 実効アドレスはキャッシュ仮想インデックス、キャッシュライン内のバイト位置、way を指定する値を格納します。各値のサイズと境界は、キャッシュサイズとコンフィグレーションによって決まります。図 50-23 に、インデックス実効アドレスの一般的なフォーマットを示します。

図 50-23: キャッシュ実効アドレス

b_offset = 4

b_index = log2 ( キャッシュサイズ、連想度 )

b_way = b_index + 2

32 KB/4 way アソシエティブ キャッシュの場合 :

b_index = log2(32768 4) = 13

b_way = 15

Reserved Way Index Byte Index

b_way b_index b_offset

© 2013 Microchip Technology Inc. Preliminary DS61192A_JP - p. 50-111

Page 112: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

PIC32 ファミリ リファレンス マニュアル

図 50-24 に示すように、Operation フィールドは動作対象のキャッシュと、動作自体を指定する値を格納します。

図 50-24: キャッシュ動作

Operation フィールドの下位 2 ビットは、表 50-19 に示すように、動作対象のキャッシュを指定します。

表 50-19: キャッシュ命令の OP ビットによるキャッシュの指定

Operation フィールドの残りのビットは、表 50-20 に示すように、実行する動作を指定します。

表 50-20: キャッシュ命令の OP ビットによる動作の指定

OP<1:0> ビット キャッシュ

‘0b00 命令キャッシュ

‘0b01 データキャッシュ

‘0b10 予約済み

‘0b11 予約済み

CacheOperation

b2 b0

OP<4:2>ビット キャッシュ 動作名 タイプ 動作

‘0b000

命令

Index Invalidate インデックス

指定されたアドレスにおけるキャッシュ ブロックの状態を無効に設定します。一般的にこの動作は、起動時に命令キャッシュを初期化するために使います。

データ

指定されたアドレスにおけるキャッシュ ブロックの状態を無効に設定します。無効かつ dirty であれば、 初にメモリに書き戻します。この動作は、起動時のデータキャッシュの初期化用に使わないでください。

‘0b001 — — — 予約済み

‘0b010 命令 / データ Index Store Tag インデックス

TagL0 レジスタの値を使うキャッシュタグを設定します。一般的にこの動作は、起動時に TagL0 を0 に設定する事でデータキャッシュを初期化するために使います。

‘0b011 — — — 予約済み

‘0b100 命令 / データ Hit Invalidate アドレスキャッシュ ブロックが指定されたアドレスを格納している場合、無効に設定します。dirty の場合に書き戻しません。

‘0b101

命令

Fill アドレス

指定されたアドレスからキャッシュをフィルします。これはキャッシュミスと同様です。

データ

キャッシュ ブロックが指定されたアドレスを格納している場合、無効に設定します。dirty の場合に書き戻します。実行中のキャッシュでキャッシュラインを無効化する方法として推奨します。

‘0b110 — — — 予約済み

‘0b111 — — — 予約済み

DS61192A_JP - p. 50-112 Preliminary © 2013 Microchip Technology Inc.

Page 113: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

セクション 50. microAptiv™ コア採用デバイスの CPUm

icroA

ptiv™

コア

採用

デバ

イス

のC

PU

50

ErrCtl CP0 レジスタの WST ビットをセットすると、CACHE Index Load Tag および Index StoreTag 命令を使って、命令キャッシュまたはデータキャッシュの way 選択配列内の LRU ビットを読み / 書きできます。有効な LRU フィールド値を表 50-21 に示します。

表 50-21: way 選択配列内の LRU ビットのコード

選択順は、左端に LRU( 長時間未使用 ) の way、右端に MRU( 直近使用 ) の way を示しています。上記以外の LRU ビットの組み合わせは有効でない事に注意してください。

選択順LRU<5:0>ビット

選択順LRU<5:0>ビット

選択順LRU<5:0>ビット

選択順LRU<5:0>ビット

0123 000000 1023 000100 2013 100010 3012 011001

0132 000001 1032 000101 2031 110010 3021 011011

0213 000010 1203 100100 2103 100110 3102 011101

0231 010010 1230 101100 2130 101110 3120 111101

0312 010001 1302 001101 2301 111010 3201 111011

0321 010011 1320 101101 2310 111110 3210 111111

© 2013 Microchip Technology Inc. Preliminary DS61192A_JP - p. 50-113

Page 114: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

PIC32 ファミリ リファレンス マニュアル

50.20 MIPS® DSP ASE 命令

MIPS® DSP ASE リビジョン 2 命令は、下記のサブクラスに分類できます。

• 算術

• GPR を使ったシフト

• 乗算

• ビット操作

• コンペア -PICK• DSP 制御アクセス

• インデックス付きロード

• 分岐

MIPS® DSP ASE には、4 つの新しいレジスタが追加されています。ソフトウェアは、MIPS®

DSP ASE が実装されている事を認識し、これらの追加レジスタをコンテクスト保存および復元動作に含める必要があります。

これらの追加された HI/LO レジスタを使う事で、全部で 4 つのアキュムレータ レジスタを形成できます。多くの一般的な DSP 計算はアキュムレーション ( 例 : 畳み込み ) を伴います。アキュムレータをターゲットとする MIPS® DSP ASE リビジョン 2 命令は、2 つのビットを使ってデスティネーション アキュムレータを指定します ( 値「0」は MIPS® アーキテクチャの標準アキュムレータを指定 )。

新たに追加された制御レジスタ DSPControl は、新しい命令を効率的にサポートするための追加のステートビットを保持します。レジスタ 50-54 に、このレジスタのビットを示します。

50.20.1 DSPControl レジスタ

DSPControl レジスタは、MIPS® DSP ASE リビジョン 2 命令セットを効率的にサポートするための追加のステートビットを保持します。

レジスタ 50-54: DSPControl: MIPS® DSP ASE 制御レジスタ

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0

— — — — CCOND<3:0>

23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

OUFLAG<7:0>

15:8U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

— EFI C SCOUNT<5:1>

7:0R/W-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

SCOUNT<0> — POS<5:0>

凡例

R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

-n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

bit 31-28 未実装ビット :「0」として読み出し

bit 27-24 CCOND<3:0>: 条件コードビット

これらのビットは、ベクタ比較命令によってセットされ、PICKグループの命令によってソースセレクタとして使われます。比較によってセットされるビットの数 (1、2、4 のいずれか ) はベクタエレメントのサイズによって決まります。これ以外のビットの比較後の状態は予測不可能です。

DS61192A_JP - p. 50-114 Preliminary © 2013 Microchip Technology Inc.

Page 115: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

セクション 50. microAptiv™ コア採用デバイスの CPUm

icroA

ptiv™

コア

採用

デバ

イス

のC

PU

50

bit 23-16 OUFLAG<7:0>: オーバーフロー / アンダーフロー表示ビット

オーバーフロー フラグ OUFLAG<7:0> のビットは、下表に記載した命令によってセットされます。これらのビットは自動的にリセットされません。セットされたビットをリセットするには、WRDSP命令を使ってこれらのビットに明示的に書き込む必要があります。

bit 15 未実装ビット :「0」として読み出し

bit 14 EFI: 抽出失敗インジケータ ビット

このビットは、抽出命令 (EXTP、EXTPV、EXTPDP、EXTPDPV) のいずれかが実行に失敗すると「1」にセットされます。これは、POS<5:0> ビットの値が、命令の引数で指定されているサイズよりも小さい場合に発生します。

bit 13 C: キャリービット

このビットは、microMIPS32™ を採用したデバイスで 2 つの GPR を使って 64 ビット加算を実行する特殊な加算命令によって使われます。ADDSC命令はこのビットをセットし、ADDWC命令はこのビットを参照します。

bit 12-7 SCOUNT<6:0>: サイズカウント ビット

INSV命令は、これらのビットを使って、挿入するビットフィールドのサイズを指定します。

bit 6 未実装ビット :「0」として読み出し

bit 5-0 POS<5:0>: 挿入 / 抽出位置ビット

可変挿入命令 INSV は、これらのビットを使って、ビットの挿入位置を指定します。EXTP、EXTPV、EXTPDP、EXTPDPV命令は、これらのビットを使って、抽出位置を指定します。

レジスタ 50-54: DSPControl: MIPS® DSP ASE 制御レジスタ ( 続き )

ビット番号 内容

23 このビットは、デスティネーションがアキュムレータ 0 (HI/LO ペア ) である場合に、演算でオーバーフローまたはアンダーフローが発生するとセットされます。次の命令が該当します : DPAQ_S、DPAQ_SA、DPSQ_S、DPSQ_SA、DPAQX_S、DPAQX_SA、DPSQX_S、DPSQX_SA、MAQ_S、MAQ_SA、MULSAQ_S

23 このビットは、デスティネーションがアキュムレータ 1 (HI/LO ペア ) である場合に、上記レジスタと同様に機能します。

21 このビットは、デスティネーションがアキュムレータ 2 (HI/LO ペア ) である場合に、上記レジスタと同様に機能します。

20 このビットは、デスティネーションがアキュムレータ 3 (HI/LO ペア ) である場合に、上記レジスタと同様に機能します。

19 次の命令はオーバーフロー / アンダーフロー時にこのビットをセットします :ABSQ_S、ADDQ、ADDQ_S、ADDU、ADDU_S、ADDWC、SUBQ、SUBQ_S、SUBU、SUBU_S

18 次の命令はオーバーフロー / アンダーフロー時にこのビットをセットします :MUL、MUL_S、MULEQ_S、MULEU_S、MULQ_RS、MULQ_S

17 次の命令はオーバーフロー / アンダーフロー時にこのビットをセットします : PRECRQ_RS、SHLL、SHLL_S、SHLLV、SHLLV_S

© 2013 Microchip Technology Inc. Preliminary DS61192A_JP - p. 50-115

Page 116: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

PIC32 ファミリ リファレンス マニュアル

50.21 CPU の初期化

ソフトウェアは、リセットイベント後にデバイスの以下の部分を初期化する必要があります。

50.21.1 汎用レジスタ

パワーアップ時の CPU レジスタファイルの状態は不確定です。ただし r0 だけは常に「0」となります。ハードウェアの適正動作という観点からは、その他のレジスタファイルを初期化する必要はありません。しかし、ソフトウェア環境によっては、下記を含む各種レジスタの初期化が必要です。

• sp – スタックポインタ

• gp – グローバル ポインタ

• fp – フレーム ポインタ

50.21.2 コプロセッサ 0 ステート

ブートコードを終了する前に、各種の CP0 ステートを初期化する必要があります。ERL = 1または EXL = 1によってブロックされる各種の例外が存在しますが、これらはリセットによってクリアされません。これらをクリアする事により、ブートコード終了時の誤った例外の発生を防げます。

表 50-22: CPU の初期化

50.21.3 システムバス

システムバスは、ユーザモードへ切り換える前に、または DRM から実行する前に、初期化する必要があります。システムバスに書き込む値は、実行するアプリケーションのメモリ配置に基づきます。

50.21.4 キャッシュ (microAptiv™ MPU 専用 )

PIC32 の L1 キャッシュ タグおよびデータ配列の電源投入時の状態は未知であり、リセット時に初期化されません。キャッシュ配列内の全てのタグは、CACHE命令 ( インデックス無効化機能 ) を使って、無効状態に初期化する必要があります。

CP0 レジスタ 操作

Cause WP ( ウォッチ保留 ) と SW0/1 ( ソフトウェア割り込み ) をクリアする必要があります。

Config 一般的に、K0、KU、K23 フィールドを適切なキャッシュ コヒーレンシ アルゴリズム (CCA) 値に設定した後に、対応するメモリ領域にアクセスする必要があります。

Count(1)タイマ割り込みを使う場合、適切な値に設定する必要があります。

Compare(1)タイマ割り込みを使う場合、適切な値に設定する必要があります。Compareレジスタに書き込むと、保留中のタイマ割り込みは全てクリアされます。従って、予期せぬ割り込みを防ぐために、Compare レジスタよりも先にCount レジスタを設定する必要があります。

Status デバイスのステートを必要な状態に設定する必要があります。

その他の CP0ステート

その他のレジスタは、読み出される前に書き込んでおく必要があります。レジスタによっては、明示的に書き込む事はできず、命令の実行または例外の発生によって副次的に更新されるものもあります。そのようなレジスタを読み出した場合、初期化されていないビットを無視する必要があります。

Note 1: Count レジスタの値が Compare レジスタの値に一致すると、タイマ割り込み信号が生成されます。必要に応じて、割り込みコントローラ内のマスクビットを使う事で、この割り込み信号の CPU への伝達を無効にできます。

DS61192A_JP - p. 50-116 Preliminary © 2013 Microchip Technology Inc.

Page 117: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

セクション 50. microAptiv™ コア採用デバイスの CPUm

icroA

ptiv™

コア

採用

デバ

イス

のC

PU

50

50.22 リセットの影響50.22.1 マスタクリア リセットハードウェア リセットでは、PIC32 コアは完全には初期化されず、プロセッサ ステートの小限のサブセットだけがクリアされます。コアを起動して、マップもキャッシュもされないコード空間内で動作させるだけであれば、これで十分です。この後に、ソフトウェアでその他のプロセッサ ステートを初期化できます。パワーアップ リセットはデバイスを既知の状態にします。ソフトリセットは、マスタクリア (MCLR) ピンをアサートする事により生成できます。このようにリセットを区別するのは、他の MIPS プロセッサとの互換性を維持するためです。実際には、どちらのリセットも同様に処理されます。

50.22.1.1 コプロセッサ 0 のステートハードウェアウェア初期化の大部分はコプロセッサ 0 で発生します ( 表 50-23 参照 )。表 50-23: リセットによるビットのクリア / セット

50.22.1.2 バス ステートマシンリセットまたはソフトリセット例外が発生すると、保留中のバス トランザクションは全て中止され、SRAM インターフェイス ユニット内のステートマシンはリセットされます。

50.22.2 フェッチアドレスEJTAGBOOT オプションを使わない場合、フェッチはリセットおよびソフトリセット時に、VA 0xBFC00000 (PA 0x1FC00000) にアドレッシングされます。このアドレスは、マップもキャッシュもされない kseg1 内に位置します。

50.22.3 WDT リセットWDT イベント後の CPU レジスタの状態は、WDT イベント前の CPU の動作モードによって決まります。デバイスがスリープ中ではなかった場合、WDT イベントによってレジスタはリセット値に設定されます。

レジスタ名 ビット名クリア /セット

値 リセットのタイプ

ステータス BEV セット 1 リセットまたはソフトリセット

TS クリア 0 リセットまたはソフトリセット

SR セット 1 ソフトリセット

SR クリア 0 リセット

NMI クリア 0 リセットまたはソフトリセット

ERL セット 1 リセットまたはソフトリセット

RP クリア 0 リセットまたはソフトリセット

全てのコンフィグレーション レジスタConfigConfig1Config2Config3Config4Config5Config7

Note: CP0 コンフィグレーション レジスタのリセット状態はデバイスによって異なります。詳細は、デバイス データシート内の

「CPU」を参照してください。

デバッグ DM クリア 0 リセットまたはソフトリセット (1)

LSNM クリア 0 リセットまたはソフトリセット

IBUSEP クリア 0 リセットまたはソフトリセット

IEXI クリア 0 リセットまたはソフトリセット

SSt クリア 0 リセットまたはソフトリセット

Note 1: デバッグモードへの起動に EJTAGBOOT オプションを使わない場合

© 2013 Microchip Technology Inc. Preliminary DS61192A_JP - p. 50-117

Page 118: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

PIC32 ファミリ リファレンス マニュアル

50.23 関連アプリケーション ノート

本書に関連するアプリケーション ノートの一覧を下に記載します。これらのアプリケーションノートは PIC32 デバイスファミリ向けではありません。ただし概念は共通しており、変更が必要であったり制限事項が存在するものの利用が可能です。PIC32 の microAptiv™ コア採用デバイスの CPU に関連する 新のアプリケーション ノートは以下の通りです。

タイトル アプリケーション ノート番号

現在、関連するアプリケーション ノートはありません。 N/A

50.24 改訂履歴

リビジョン A (2013?4?)

本書は初版です。

Note: PIC32ファミリ関連のアプリケーション ノートとサンプルコードはMicrochip社のウェブサイト (www.microchip.com) でご覧になれます。

DS61192A_JP - p. 50-118 Preliminary © 2013 Microchip Technology Inc.

Page 119: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

セクション 50. microAptiv™ コア採用デバイスの CPUm

icroA

ptiv™

コア

採用

デバ

イス

のC

PU

50

NOTE:

© 2013 Microchip Technology Inc. Preliminary DS61192A_JP - p. 50-119

Page 120: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

PIC32 ファミリ リファレンス マニュアル

DS61192A_JP - p. 50-120 Preliminary © 2013 Microchip Technology Inc.

Page 121: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

2013 Microchip Technology Inc. DS61192A_JP - p. 50-121

本書に記載されているデバイス アプリケーション等に関する

情報は、ユーザの便宜のためにのみ提供されているものであ

り、更新によって無効とされる事があります。お客様のアプ

リケーションが仕様を満たす事を保証する責任は、お客様に

あります。Microchip 社は、明示的、暗黙的、書面、口頭、法

定のいずれであるかを問わず、本書に記載されている情報に

関して、状態、品質、性能、商品性、特定目的への適合性を

はじめとする、いかなる類の表明も保証も行いません。

Microchip 社は、本書の情報およびその使用に起因する一切の

責任を否認します。Microchip 社の明示的な書面による承認な

しに、生命維持装置あるいは生命安全用途に Microchip 社の製

品を使用する事は全て購入者のリスクとし、また購入者はこ

れによって発生したあらゆる損害、クレーム、訴訟、費用に

関して、Microchip 社は擁護され、免責され、損害をうけない

事に同意するものとします。暗黙的あるいは明示的を問わず、

Microchip社が知的財産権を保有しているライセンスは一切譲

渡されません。

商標

Microchip 社の名称と Microchip ロゴ、dsPIC、FlashFlex、KEELOQ、KEELOQ ロゴ、MPLAB、PIC、PICmicro、PICSTART、PIC32 ロゴ、rfPIC、SST、SST ロゴ、SuperFlash、UNI/O は、

米国およびその他の国における Microchip TechnologyIncorporated の登録商標です。

FilterLab、Hampshire、HI-TECH C、Linear Active Thermistor、MTP、SEEVAL、Embedded Control Solutions Company は、

米国における Microchip Technology Incorporated の登録商標

です。

Silicon Storage Technologyは、その他の国におけるMicrochipTechnology Incorporated の登録商標です。

Analog-for-the-Digital Age、Application Maestro、BodyCom、

chipKIT、chipKIT ロゴ、CodeGuard、dsPICDEM、dsPICDEM.net、dsPICworks、dsSPEAK、ECAN、ECONOMONITOR、FanSense、HI-TIDE、In-Circuit Serial Programming、ICSP、Mindi、MiWi、MPASM、MPF、MPLAB 認証ロゴ、MPLIB、MPLINK、mTouch、Omniscient Code Generation、PICC、PICC-18、PICDEM、

PICDEM.net、PICkit、PICtail、REAL ICE、rfLAB、Select Mode、SQI、Serial Quad I/O、Total Endurance、TSHARC、UniWinDriver、WiperLock、ZENA、Z-Scale は、米国およびその他の国におけ

る Microchip Technology Incorporatedの登録商標です。

SQTP は、米国における Microchip Technology Incorporatedのサービスマークです。

GestICとULPPは、その他の国におけるMicrochip TechnologyGermany II GmbH & Co. & KG (Microchip TechnologyIncorporated の子会社 ) の登録商標です。

その他、本書に記載されている商標は各社に帰属します。

©2013, Microchip Technology Incorporated, Printed in theU.S.A., All Rights Reserved.

ISBN: 978-1-62077-538-7

Microchip 社製デバイスのコード保護機能に関して次の点にご注意ください。

• Microchip 社製品は、該当する Microchip 社データシートに記載の仕様を満たしています。

• Microchip 社では、通常の条件ならびに仕様に従って使用した場合、Microchip 社製品のセキュリティ レベルは、現在市場に流

通している同種製品の中でも最も高度であると考えています。

• しかし、コード保護機能を解除するための不正かつ違法な方法が存在する事もまた事実です。弊社の理解ではこうした手法は、

Microchip 社データシートにある動作仕様書以外の方法で Microchip 社製品を使用する事になります。このような行為は知的所

有権の侵害に該当する可能性が非常に高いと言えます。

• Microchip 社は、コードの保全性に懸念を抱くお客様と連携し、対応策に取り組んでいきます。

• Microchip 社を含む全ての半導体メーカーで、自社のコードのセキュリティを完全に保証できる企業はありません。コード保護

機能とは、Microchip 社が製品を「解読不能」として保証するものではありません。

コード保護機能は常に進歩しています。Microchip 社では、常に製品のコード保護機能の改善に取り組んでいます。Microchip 社

のコード保護機能の侵害は、デジタル ミレニアム著作権法に違反します。そのような行為によってソフトウェアまたはその他の著

Microchip 社では、Chandler および Tempe ( アリゾナ州 )、Gresham( オレゴン州 ) の本部、設計部およびウェハー製造工場そしてカリフォルニア州とインドのデザインセンターが ISO/TS-16949:2009 認証を取得しています。Microchip 社の品質システム プロセスおよび手順は、PIC® MCU および dsPIC® DSC、KEELOQ® コード ホッピング デバイス、シリアル EEPROM、マイクロペリフェラル、不揮発性メモリ、アナログ製品に採用されています。さらに、開発システムの設計と製造に関する Microchip 社の品質システムは ISO 9001:2000 認証を取得しています。

QUALITY MANAGEMENT SYSTEM CERTIFIED BY DNV

== ISO/TS 16949 ==

Page 122: セクション 50. microAptiv™ コア採用デバイスの …ww1.microchip.com/downloads/jp/DeviceDoc/61192A_JP.pdf• MIPS32® Architecture for Programmers VolumeIV-e:The MIPS®

DS61192A_JP - p. 50-122 2013 Microchip Technology Inc.

北米本社2355 West Chandler Blvd.Chandler, AZ 85224-6199Tel:480-792-7200 Fax:480-792-7277技術サポート : http://www.microchip.com/supportURL: www.microchip.com

アトランタDuluth, GA Tel:678-957-9614 Fax:678-957-1455

オースティン (TX)Tel:512-257-3370

ボストンWestborough, MA Tel:774-760-0087 Fax:774-760-0088

シカゴItasca, IL Tel:630-285-0071 Fax:630-285-0075

クリーブランドIndependence, OH Tel:216-447-0464

Fax:216-447-0643

ダラスAddison, TX Tel:972-818-7423 Fax:972-818-2924

デトロイトNovi, MI Tel:248-848-4000

ヒューストン (TX) Tel:281-894-5983

インディアナポリスNoblesville, IN Tel:317-773-8323Fax:317-773-5453

ロサンゼルスMission Viejo, CA Tel:949-462-9523 Fax:949-462-9608

ニューヨーク (NY) Tel:631-435-6000

サンノゼ (CA) Tel:408-735-9110

カナダ - トロントTel:905-673-0699 Fax:905-673-6509

アジア / 太平洋

アジア太平洋支社Suites 3707-14, 37th FloorTower 6, The GatewayHarbour City, KowloonHong KongTel:852-2401-1200Fax:852-2401-3431

オーストラリア - シドニーTel:61-2-9868-6733Fax:61-2-9868-6755

中国 - 北京Tel:86-10-8569-7000 Fax:86-10-8528-2104

中国 - 成都Tel:86-28-8665-5511Fax:86-28-8665-7889

中国 - 重慶Tel:86-23-8980-9588Fax:86-23-8980-9500

中国 - 杭州Tel:86-571-2819-3187 Fax:86-571-2819-3189

中国 - 香港 SARTel:852-2943-5100 Fax:852-2401-3431

中国 - 南京Tel:86-25-8473-2460Fax:86-25-8473-2470

中国 - 青島Tel:86-532-8502-7355Fax:86-532-8502-7205

中国 - 上海Tel:86-21-5407-5533 Fax:86-21-5407-5066

中国 - 瀋陽Tel:86-24-2334-2829Fax:86-24-2334-2393

中国 - 深圳Tel:86-755-8864-2200 Fax:86-755-8203-1760

中国 - 武漢Tel:86-27-5980-5300Fax:86-27-5980-5118

中国 - 西安Tel:86-29-8833-7252Fax:86-29-8833-7256

中国 - 厦門Tel:86-592-2388138 Fax:86-592-2388130

中国 - 珠海Tel:86-756-3210040 Fax:86-756-3210049

アジア / 太平洋

インド - バンガロールTel:91-80-3090-4444 Fax:91-80-3090-4123

インド - ニューデリーTel:91-11-4160-8631Fax:91-11-4160-8632

インド - プネTel:91-20-3019-1500

日本 - 大阪Tel:81-6-6152-7160 Fax:81-6-6152-9310

日本 - 東京Tel:81-3-6880- 3770 Fax:81-3-6880-3771

韓国 - 大邱Tel:82-53-744-4301Fax:82-53-744-4302

韓国 - ソウルTel:82-2-554-7200Fax:82-2-558-5932 または 82-2-558-5934

マレーシア - クアラルンプールTel:60-3-6201-9857Fax:60-3-6201-9859

マレーシア - ペナンTel:60-4-227-8870Fax:60-4-227-4068

フィリピン - マニラTel:63-2-634-9065Fax:63-2-634-9069

シンガポールTel:65-6334-8870Fax:65-6334-8850

台湾 - 新竹Tel:886-3-5778-366Fax:886-3-5770-955

台湾 - 高雄Tel:886-7-213-7830

台湾 - 台北Tel:886-2-2508-8600 Fax:886-2-2508-0102

タイ - バンコクTel:66-2-694-1351Fax:66-2-694-1350

ヨーロッパ

オーストリア - ヴェルスTel:43-7242-2244-39

Fax:43-7242-2244-393

デンマーク - コペンハーゲンTel:45-4450-2828 Fax:45-4485-2829

フランス - パリTel:33-1-69-53-63-20 Fax:33-1-69-30-90-79

ドイツ - デュッセルドルフTel:49-2129-3766400

ドイツ - ミュンヘンTel:49-89-627-144-0 Fax:49-89-627-144-44

ドイツ - プフォルツハイムTel:49-7231-424750

イタリア - ミラノ Tel:39-0331-742611 Fax:39-0331-466781

イタリア - ベニスTel:39-049-7625286

オランダ - ドリューネンTel:31-416-690399 Fax:31-416-690340

ポーランド - ワルシャワTel:48-22-3325737

スペイン - マドリッドTel:34-91-708-08-90Fax:34-91-708-08-91

スウェーデン - ストックホルムTel:46-8-5090-4654

イギリス - ウォーキンガムTel:44-118-921-5800Fax:44-118-921-5820

各国の営業所とサービス

10/28/13