...

ÉlanTMSC520マイクロコントローラ

by user

on
Category: Documents
29

views

Report

Comments

Transcript

ÉlanTMSC520マイクロコントローラ
ÉlanTMSC520 マイクロコントローラ
ユーザーズ・マニュアル
MS-0626/10/00
(PID#22004A)
© 1999 Advanced Micro Devices, Inc.
本資料は、Advanced Micro Devices, Inc.(AMD)の製品に関連して提供されるものです。AMD社は、本資料の内容または本資料
に記載された内容の正確さ、
または完全性について、
これを表示または保証するものではなく、またいかなる場合も、予告なく、仕様
ならびに製品説明を変更する権利を保有します。本資料は、明示、黙示、禁反言、
またはその他いかなる方法によっても、
知的所有権の
ライセンスを許諾するものではありません。AMD社は、
AMD社の標準販売条件に規定されている場合を除き、いかなる件についても
一切責任を負わず、商品性の保証、特定目的適合性の保証、他者の知的所有権を侵害していない旨の保証を含め、製品に関して黙示
または明示の保証を行うものではありません。
AMD社の製品は、手術による体内への移植を目的とするシステム、生命維持を目的とするその他の機器、あるいはその他、AMD製品
の不良によって負傷、死亡、もしくは財産上または環境上の重大な損害が発生しうる用途において、部品として使用することを意図し
て設計されておらず、
またそうした使用について、認可または保証されたものでもありません。AMD社は、
同社の製品を予告なく製造
中止する、あるいは変更する権利を保有します。
商標などについて:
AMD、AMD社ロゴ、ならびにその組み合わせ、Am186、AMDebug、AMD Athlon、E86、K86、Elanは、Advanced Micro Devices, Inc.
の商標です。Am486、Am5x86はAdvanced Micro Devices, Inc. の登録商標であり、FusionE86は同社のサービスマークです。
Microsoft 、Windows 、Windows NT は、Microsoft Corporation の登録商標です。
本資料に記載されたその他の企業名、製品名などは、それぞれを特定する目的においてのみ記載されたもので、一般に各社の商
標または登録商標です。
目次
Preface
はじめに .......................................................................................................
Élan™SC520 マイクロコントローラ ...................................................................
本書の目的 ..........................................................................................................
対象読者 ...................................................................................................
本書の概要 ...............................................................................................
関連資料 ..............................................................................................................
AMDの資料 ..............................................................................................
その他の情報として:................................................................................
補足情報 ..............................................................................................................
第1 章
第2 章
第3 章
xxi
xxi
xxi
xxi
xxi
xxii
xxii
xxii
xxiii
アーキテクチャの概要 ..................................................................................
1.1 Élan™ SC520 マイクロコントローラ .......................................................
1.1.1 特徴 ..............................................................................................
1.2 ブロック図 .................................................................................................
1.3 アーキテクチャ概要 ..................................................................................
1.3.1 業界標準x86アーキテクチャ ........................................................
1.3.2 先進的なデバッグ環境を提供する AMDebug™ Technology ....
1.3.3 業界標準PCIバス・インタフェース ...............................................
1.3.4 高性能SDRAMコントローラ ........................................................
1.3.5 ROM/Flash コントローラ ............................................................
1.3.6 柔軟なアドレス・マッピング ...........................................................
1.3.7 汎用(GP)バス・インタフェース ...................................................
1.3.8 クロック生成 .................................................................................
1.3.9 内蔵ペリフェラル ..........................................................................
1.3.10 JTAG バウンダリ・スキャン・テスト・インタフェース .....................
1.3.11 システム・テスティングとデバッグ機能 .........................................
1.4 アプリケーション例 ....................................................................................
1.4.1 スマート・レジデント・ゲートウエイ ...............................................
1.4.2 シン・クライアント .........................................................................
1.4.3 デジタル・セット・トップ・ボックス ..................................................
1.4.4 電話回線コンセントレータ ...........................................................
1-1
ピンの説明 ...................................................................................................
2.1 概要 ..........................................................................................................
2.2 ロジック図 .................................................................................................
2.3 信号の説明 ...............................................................................................
2-1
システムの初期化 ........................................................................................
3.1 概要 ..........................................................................................................
3.1.1 組み込みシステムの初期化シーケンス ........................................
3.1.2 BIOS の初期化シーケンス ..........................................................
3.1.3 Memory-Mapped Configuration Region (MMCR) ..................
3.1.4 リセット・イベント ..........................................................................
3.1.5 リセット・ベクタとリセット・セグメント ...........................................
3.2 SDRAMコントローラの設定 .....................................................................
3.3 CPUコアの確認方法 .................................................................................
3.4 CPUスピードの設定 ..................................................................................
3.5 外部GPバス・デバイスの設定 ...................................................................
3.6 多重化されたピンの設定 ..........................................................................
3.7 Programmable Address Region (PAR) レジスタの設定 ......................
3.7.1 ページとリージョンの指定 ............................................................
3-1
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
1-1
1-1
1-2
1-4
1-4
1-4
1-5
1-5
1-5
1-5
1-6
1-6
1-7
1-7
1-8
1-8
1-8
1-8
1-9
1-9
2-1
2-1
2-3
3-1
3-1
3-3
3-3
3-4
3-5
3-6
3-7
3-7
3-7
3-8
3-8
3-9
iii
目次
3.7.2
第 4章
アドレス・リージョンの属性 ...........................................................
3.7.2.1
Write-Protect Attribute ............................................
3.7.2.2
Cacheability Control Attribute ................................
3.7.2.3
Code Execution Attribute .......................................
3.7.2.4
性能の考察 ................................................................
3.7.3 PAR レジスタの優先順位 ............................................................
3.7.4 外部GPバス・デバイス .................................................................
3.7.4.1
1つのチップ・セレクトを使用する単独のデバイス
(A/Dコンバータ).....................................................
3.7.4.2
独自にデコードを行う単独のデバイス .......................
3.7.4.3
複数のデバイスで1つのチップ・セレクトを使用する ..
3.7.5 PCIバス・デバイス ........................................................................
3.7.5.1
PCI バス上のVGAコントローラ .................................
3.7.5.2
遠隔プログラム・ローディングのためのネットワーク・
アダプタ .....................................................................
3.7.6 外付けROMデバイス ...................................................................
3.7.6.1
BIOSシャドウのためのブートROMデバイス ..............
3.7.6.2
オペレーティング・システムを直接実行する
(Execute-In-Place, XIP) 2 バンクのFlash ................
3.7.7 SDRAM リージョン ......................................................................
3.7.7.1
DMA バッファの設定 ..................................................
3.7.7.2
コード・セグメントの書込み保護 .................................
3.8 割込みマッピングの設定 ...........................................................................
3.8.1 割込みのエッジ検出またはレベル検出 .........................................
3.8.2 割込みのマッピング ......................................................................
3.8.3 割込み極性 ...................................................................................
3.9 プログラマブル I/O ピンの設定 ................................................................
3.10 PCI ホスト・ブリッジとアービトレーションの設定 ......................................
3.11 内蔵ペリフェラルのディセーブル ..............................................................
3-12
3-12
3-12
3-12
3-12
3-13
3-13
システム・アドレス・マッピング ...................................................................
4.1 概要 ..........................................................................................................
4.2 レジスタ ....................................................................................................
4.3 オペレーション ..........................................................................................
4.3.1 外部メモリ、バス、およびチップ・セレクトのプログラミング ..........
4.3.2 Programmable Address Region (PAR) レジスタ ....................
4.3.3 メモリ空間 ....................................................................................
4.3.3.1
SDRAM空間 ..............................................................
4.3.3.2
ROM/Flash空間 ........................................................
4.3.3.3
GP バスのメモリ空間 .................................................
4.3.3.4
PCI バスのメモリ空間 ................................................
4.3.3.5
Memory-Mapped Configuration Region
(MMCR) レジスタ空間 ..............................................
4.3.4 I/O 空間 .......................................................................................
4.3.4.1
Configuration Base Address (CBAR) レジスタ .....
4.3.4.2
PCIコンフィギュレーション空間 .................................
4.3.4.3
PCI I/O 空間 ..............................................................
4.3.4.4
PC/AT互換I/O ペリフェラルの領域 ...........................
4.3.4.5
GP バスI/O 領域 ........................................................
4.3.5 設定情報 ......................................................................................
4.3.5.1
ROM/Flash空間の設定 .............................................
4.3.5.2
SDRAMアドレス空間の設定 ......................................
4.3.5.3
GP バスペリフェラル空間の設定 ................................
4.3.5.4
Windows®と互換性をとるためのÉlanSC520
4-1
マイクロコントローラの設定 ......................................
4.3.5.5
PCI バス・デバイスの設定 ..........................................
4.3.6
4.3.7
4.4
iv
割込み ..........................................................................................
ソフトウェアに関する考慮 ............................................................
初期化 .......................................................................................................
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
3-14
3-14
3-14
3-15
3-15
3-16
3-17
3-17
3-17
3-18
3-18
3-18
3-19
3-19
3-19
3-20
3-20
3-20
3-21
4-1
4-2
4-3
4-4
4-5
4-7
4-8
4-8
4-9
4-9
4-9
4-10
4-11
4-11
4-12
4-12
4-14
4-14
4-14
4-14
4-15
4-16
4-17
4-17
4-17
4-20
目次
第5 章
クロックの生成とコントロール ....................................................................
5.1 概要 ..........................................................................................................
5.2 ブロック図 .................................................................................................
5.3 システム設計 .............................................................................................
5.3.1 クロック・ピンの負荷 ....................................................................
5.3.2 水晶発振子の選択 ........................................................................
5.3.2.1
ÉlanSC520 マイクロコントローラを 33.333MHz で
5-1
動作させる場合 .........................................................
内蔵発振器のバイパス .................................................................
レジスタ ....................................................................................................
オペレーション ..........................................................................................
5.5.1 内蔵クロック .................................................................................
5.5.1.1
CPU ...........................................................................
5.5.1.2
PCIバス .....................................................................
5.5.1.3
SDRAMコントローラ .................................................
5.5.1.4
ROM/Flash インタフェース .......................................
5.5.1.5
GP バス ......................................................................
5.5.1.6
GP-DMA コントローラ ..............................................
5.5.1.7
プログラマブル・インターバル・タイマ .......................
5.5.1.8
汎用タイマ .................................................................
5.5.1.9
ソフトウエア・タイマ ...................................................
5.5.1.10 ウオッチドッグ・タイマ .................................................
5.5.1.11 リアル・タイム・クロック ..............................................
5.5.1.12 UART シリアル・ポート ..............................................
5.5.1.13 同期シリアル・インタフェース ....................................
5.5.2 CLKTIMER[CLKTEST] ピンの使用方法 .....................................
初期化 .......................................................................................................
5-5
5-5
5-6
5-7
5-7
5-7
5-7
5-7
5-7
5-7
5-8
5-8
5-8
5-8
5-8
5-8
5-8
5-8
5-9
5-9
リセットの生成 .............................................................................................
6.1 概要 ..........................................................................................................
6.2 ブロック図 .................................................................................................
6.3 システム設計 .............................................................................................
6.4 レジスタ ....................................................................................................
6.5 動作 ..........................................................................................................
6.5.1 システム・リセット .........................................................................
6.5.2 SDRAMを保存したままのシステム・リセット ...............................
6.5.3 ソフトCPUリセット ........................................................................
6.5.4 GPバス・リセット ...........................................................................
6.5.5 PCI リセット ..................................................................................
6.5.6 RTC リセット ................................................................................
6.5.7 リセット・ソースの決定 ..................................................................
6.5.8 CPU A20 ゲートのサポート .........................................................
6.5.9 クロックの考察 .............................................................................
6.5.10 ソフトウエアの考察 ......................................................................
6.5.11 遅延 ..............................................................................................
6.6 初期化 .......................................................................................................
6-1
5.3.3
5.4
5.5
5.6
第6 章
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
5-1
5-2
5-3
5-4
5-4
6-1
6-1
6-2
6-3
6-3
6-4
6-6
6-7
6-7
6-7
6-7
6-8
6-8
6-8
6-8
6-9
6-9
v
目次
第 7章
Am5x86® CPU .........................................................................................
7.1
7.2
7.3
7.4
7-1
7-1
7-1
7-3
7-3
7-4
7-4
7-5
7-5
7-5
7-5
7-5
システム・アービトレーション ......................................................................
8.1 概要 ..........................................................................................................
8.2 ブロック図 .................................................................................................
8.3 レジスタ ....................................................................................................
8.4 動作 ..........................................................................................................
8.4.1 動作モード ....................................................................................
8.4.1.1
非並列アービトレーション・モード ..............................
8.4.1.2
並列アービトレーション・モード ..................................
8.4.2 CPUバス・アービタ ......................................................................
8.4.2.1
CPUアービトレーション・プロトコル ..........................
8.4.2.2
CPUのキャッシュ・スヌーピング .................................
8.4.2.3
PCIホスト・ブリッジ・ターゲットのアクセス .................
8.4.2.4
GP バスDMAアービトレーション ................................
8.4.2.5
クロック速度変更中のアービトレーション ..................
8.4.3 PCIバス・アービタ ........................................................................
8.4.3.1
PCI バス・アービトレーション・プロトコル ...................
8.4.3.2
バス・パーキング ........................................................
8.4.3.3
再アービトレーション .................................................
8.4.4 バス・サイクル ..............................................................................
8.4.4.1
CPU バス・アービトレーション ....................................
8.4.4.2
キャッシュのライト・バックにおけるCPU バス .............
8.4.4.3
CPU-to-PCI サイクル ................................................
8.4.4.4
PCI バス・アービトレーション ......................................
8.4.4.5
PCI バス・アービトレーション・パーキング ..................
8.4.4.6
非並列モードでのアービトレーション .........................
8.4.5 割込み ..........................................................................................
8.4.6 ソフトウエアの考察 ......................................................................
8.4.7 遅延 ..............................................................................................
8.4.7.1
単純な回転プライオリティの遅延 ...............................
8.4.7.2
高プライオリティ・キューのマスタが被る遅延 ............
8.4.7.3
低プライオリティ・キューのマスタが被る遅延 ..........
8.4.7.4
CPUが被る遅延 .........................................................
8.4.7.5
非並列アービトレーション・モードによる遅延 ............
8.4.7.6
並列アービトレーション・モードによる遅延 ................
8.4.7.7
並列アービトレーション・モードのバス・パーキング
8-1
8-1
8-1
8-2
8-3
8-3
8-3
8-4
8-5
8-5
8-6
8-6
8-7
8-7
8-7
8-8
8-10
8-10
8-11
8-11
8-12
8-14
8-15
8-16
8-18
8-19
8-19
8-20
8-20
8-21
8-21
8-21
8-21
8-22
による遅延 .................................................................
初期化 .......................................................................................................
8-22
8-22
PCI バス・ホスト・ブリッジ .........................................................................
9-1
7.5
第 8章
8.5
第 9章
9.1
9.2
9.3
9.4
vi
7-1
概要 ..........................................................................................................
ブロック図 .................................................................................................
レジスタ ....................................................................................................
動作 ..........................................................................................................
7.4.1 浮動小数点演算ユニット( FPU )...................................................
7.4.2 キャッシュ・メモリ管理 ..................................................................
7.4.3 クロックの考察 .............................................................................
7.4.4 割込み ..........................................................................................
7.4.5 遅延 ..............................................................................................
初期化 .......................................................................................................
7.5.1 ハードCPUリセット .......................................................................
7.5.2 ソフトCPUリセット ........................................................................
概要 ..........................................................................................................
9-1
ブロック図 .................................................................................................
9-1
システム設計 .............................................................................................
9-2
9.3.1 PCI クロッキング .........................................................................
9-5
9.3.1.1
ÉlanSC520 マイクロコントローラを33.333MHzで駆動する
場合 ...........................................................................
9-6
レジスタ ....................................................................................................
9-7
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
目次
9.5
9.6
第10章
動作 ..........................................................................................................
9.5.1 サポートしていないPCIバスの機能 .............................................
9.5.1.1
サポートしていないPCI バス・コンフィギュレーション・
レジスタ .....................................................................
9.5.2 設定情報 ......................................................................................
9.5.2.1
PCIバス・コンフィギュレーション・サイクルの生成 .....
9.5.3 PCIバス・マスタとしてのÉlanSC520 マイクロコントローラの
ホスト・ブリッジ .............................................................................
9.5.3.1
ライト・ポスティング ....................................................
9.5.3.2
読出しサイクル ..........................................................
9.5.3.3
遅延転送のサポート ...................................................
9.5.3.4
ホスト・ブリッジ・マスタ・バス・サイクル ......................
9.5.4 PCIバス・ターゲットとしてのÉlanSC520 マイクロコントローラの
ホスト・ブリッジ .............................................................................
9.5.4.1
PCI ホスト・ブリッジ・ターゲット・アドレス空間 ...........
9.5.4.2
PCIバス・コマンドのサポート .....................................
9.5.4.3
DEVSELのタイミング ................................................
9.5.4.4
ディレイド・トランザクションのサポート ......................
9.5.4.5
アドレスFIFO .............................................................
9.5.4.6
PCIホスト・ブリッジFIFOとプリフェッチ動作 ..............
9.5.4.7
バス・オーダリング .....................................................
9.5.4.8
データ・コヒーレンシの維持 .......................................
9.5.4.9
PCIホスト・ブリッジ・ターゲット・バス・サイクル ..........
9.5.5 割込み ..........................................................................................
9.5.6 レイテンシ ....................................................................................
9.5.6.1
マスタ・レイテンシ .....................................................
9.5.6.2
ターゲット・レイテンシ ................................................
初期化 .......................................................................................................
SDRAMコントローラ ................................................................................
10.1 概要 ..........................................................................................................
10.2 ブロック図 .................................................................................................
10.3 システム設計 .............................................................................................
10.3.1 SDRAMのピン .............................................................................
10.3.2 SDRAMのクロック .......................................................................
10.3.3 SDRAMの負荷 ............................................................................
10.4 レジスタ ....................................................................................................
10.5 動作 ..........................................................................................................
10.5.1 SDRAMサポート ..........................................................................
10.5.2 SDRAM アドレッシング ................................................................
10.5.2.1 サポートするSDRAMデバイス ...................................
10.5.2.2 ページ・サイズ ............................................................
10.5.3 エラー訂正コード(ECC ).............................................................
10.5.4 バッファリング ..............................................................................
10.5.5 SDRAMコントロール設定 ...........................................................
10.5.5.1 リフレッシュ・コントロール .........................................
10.5.5.2 出力強度の選択 .........................................................
10.5.5.3 ライト・バッファ・テスト・モード ...................................
10.5.5.4 動作モード選択 ..........................................................
10.5.6 SDRAMタイミング設定 ...............................................................
10.5.6.1 CAS レイテンシ (CL) ................................................
10.5.6.2 RAS プリチャージ (TRP) ...........................................
10.5.6.3 RAS-to-CAS ディレイ (TRCD) ..................................
10.5.6.4 RAS-to-RAS または auto-refresh-to-RAS (TRC) ...
10.5.6.5 最小RAS (TRAS) ......................................................
10.5.7 バス・サイクル ..............................................................................
10.5.7.1 SDRAM バースト読出しサイクル ...............................
10.5.7.2 SDRAM書込みサイクル ............................................
10.5.7.3 ECC SDRAMサイクル ..............................................
10.5.7.4 SDRAM自動リフレッシュ・サイクル ...........................
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
9-8
9-8
9-9
9-9
9-10
9-11
9-11
9-12
9-12
9-12
9-18
9-18
9-19
9-19
9-19
9-20
9-20
9-21
9-21
9-22
9-27
9-28
9-28
9-28
9-29
10-1
10-1
10-1
10-1
10-5
10-6
10-8
10-10
10-11
10-11
10-12
10-13
10-16
10-16
10-17
10-18
10-18
10-19
10-19
10-20
10-20
10-20
10-21
10-21
10-21
10-22
10-22
10-22
10-23
10-24
10-26
vii
目次
10.5.7.5 SDRAMモード・レジスタ・アクセス ............................
10.5.8 割込み ..........................................................................................
10.5.9 ソフトウエアの考察 ......................................................................
10.5.9.1 ECC エラー ...............................................................
10.5.9.2 SDRAM設定中のバッファのディセーブル ..................
10.5.9.3 書込み保護 ................................................................
10.5.10レイテンシ ....................................................................................
10.6 初期化 .......................................................................................................
10.6.1 プログラマブル・リセット ...............................................................
10.6.2 SDRAMデバイスの初期化 ...........................................................
10.6.2.1 動作モードの選択 ......................................................
10.6.2.2 NOPコマンド .............................................................
10.6.2.3 プリチャージ・コマンド ...............................................
10.6.2.4 自動リフレッシュ・コマンド .........................................
10.6.2.5 モード・レジスタのプログラミング .............................
10.6.3 ブート・プロセス ...........................................................................
10.6.4 SDRAMのサイズ判定アルゴリズム .............................................
10.6.4.1 外部バンクのカラム数の判定 ....................................
10.6.4.2 内部バンク数の判定 ..................................................
10.6.4.3 外部バンクの真の最終アドレスの判定 ......................
第11章
第12章
ライト・バッファとリード・バッファ ...............................................................
11.1 概要 ..........................................................................................................
11.2 ブロック図 .................................................................................................
11.3 システム設計 .............................................................................................
11.4 レジスタ ....................................................................................................
11.5 動作 ..........................................................................................................
11.5.1 ライト・バッファ .............................................................................
11.5.1.1 ライト・バッファのディセーブル ...................................
11.5.1.2 ライト・バッファのイネーブル .....................................
11.5.1.3 ライト・バッファのウオータマーク...............................
11.5.2 リード・バッファとリード・アヘッド機能 ..........................................
11.5.2.1 リード・アヘッド機能のディセーブル ...........................
11.5.2.2 リード・アヘッド機能のイネーブル ..............................
11.5.3 DAMの考察 .................................................................................
11.5.4 PCIの考察 ....................................................................................
11.5.4.1 書込みサイクル ..........................................................
11.5.4.2 読出しサイクル ..........................................................
11.5.5 ソフトウエアの考察 ......................................................................
11.5.6 SDRAM帯域幅の向上 .................................................................
11.6 初期化 .......................................................................................................
10-27
10-27
10-28
10-28
10-28
10-28
10-28
10-29
10-29
10-30
10-30
10-31
10-31
10-31
10-31
10-32
10-32
10-33
10-34
10-35
11-1
11-1
11-2
11-3
11-4
11-4
11-5
11-5
11-5
11-9
11-10
11-10
11-10
11-11
11-12
11-12
11-12
11-13
11-13
11-15
ROM/Flash コントローラ ........................................................................ 12-1
12.1 概要 .......................................................................................................... 12-1
12.2 ブロック図 ................................................................................................. 12-2
12.3 システム設計 ............................................................................................. 12-2
12.3.1 電圧のアイソレーション ................................................................ 12-3
12.4 レジスタ .................................................................................................... 12-5
12.5 動作 .......................................................................................................... 12-5
12.5.1 ROMサポート ............................................................................... 12-5
12.5.1.1 サポートするデバイスの種類 ..................................... 12-6
12.5.2 ROMコントローラとタイミング設定 ............................................. 12-7
12.5.2.1 ROMのロケーション .................................................. 12-7
12.5.2.2 ROMの幅 .................................................................. 12-7
12.5.2.3 動作モード ................................................................. 12-7
12.5.2.4 アクセス・タイミング .................................................. 12-8
12.5.3 バス・サイクル .............................................................................. 12-9
12.5.3.1 シングルCPU読出しアクセス .................................... 12-9
12.5.3.2 ページ・モード読出しアクセス .................................... 12-10
12.5.3.3 キャッシュ・ライン・フィル ........................................... 12-11
viii
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
目次
12.5.3.4 Flashデバイスへの書込み .........................................
12.5.4 ソフトウエアの考察 ......................................................................
12.5.4.1 アドレスのデコード ....................................................
12.5.4.2 Flashメモリのプログラム ..........................................
12.5.5 レイテンシ ....................................................................................
12-11
12-12
12-12
12-12
12-13
12.6 初期化 ....................................................................................................... 12-14
第13章
汎用バス( GP-BUS )コントローラ ............................................................
13.1 概要 ..........................................................................................................
13.2 ブロック図 .................................................................................................
13.3 システム設計 .............................................................................................
13.3.1 GPバスの負荷 .............................................................................
13.3.2 電圧の変換 ...................................................................................
13.4 レジスタ ....................................................................................................
13.5 動作 ..........................................................................................................
13.5.1 プログラマブル・バス・インタフェース・タイミング ........................
13.5.1.1 要求されるタイミング ................................................
13.5.1.2 プログラマブル・タイミングと同時にGPRDYを
13-1
使用する ....................................................................
プログラマブル・タイミングと同時にGPバス・エコー・
モードを使用する .......................................................
I/Oマップと、メモリ・マップ・デバイスのサポート ..........................
チップ・セレクトの条件 .................................................................
データ・サイジングとアライメントが合っていないアクセス ..........
ROM/Flashコントローラとのアドレスおよびデータ・バスの共用
GPバスのエコー・モード ..............................................................
DMAインタフェース .....................................................................
使用例 ..........................................................................................
13.5.8.1 一般的なISAデバイスとの互換性 ..............................
13.5.8.2 スーパーI/Oコントローラとの接続 ............................
13-8
13-1
13-1
13-1
13-4
13-4
13-5
13-6
13-7
13-7
13.5.1.3
13.5.2
13.5.3
13.5.4
13.5.5
13.5.6
13.5.7
13.5.8
13-8
13-9
13-9
13-9
13-10
13-10
13-11
13-11
13-11
13-13
13.5.8.3
AMD Enhanced Serial Communications Controller
(8 MHz) との接続 ..................................................... 13-14
13.5.9 バス・サイクル .............................................................................. 13-16
13.5.9.1 8ビットI/Oデバイスへの8ビット・データ・アクセス ...... 13-16
13.5.9.2 16ビットI/Oデバイスへの 16ビット・データ・アクセス .. 13-17
13.5.9.3 8ビットI/Oデバイスへの 16ビット・データ・アクセス .... 13-17
13.5.9.4 8ビットI/Oデバイスへの 32ビット・データ・アクセス .... 13-18
13.5.9.5 16ビットI/Oデバイスへの 32ビット・データ・アクセス .. 13-18
13.5.9.6 16ビットI/Oデバイスへの8ビット・データ・アクセス .... 13-19
13.5.9.7 GPIOCS16 および GPMEMCS16 のタイミング ...... 13-19
13.5.9.8 ウエイト・ステート ...................................................... 13-20
13.5.10割込み .......................................................................................... 13-21
13.5.11レイテンシ .................................................................................... 13-21
13.5.11.1 8/16ビット GPバス幅 ................................................. 13-21
13.5.11.2 遅いGPバス・サイクル ............................................... 13-21
13.5.11.3 キャッシュ不可のGPバス ........................................... 13-21
13.6 初期化 ....................................................................................................... 13-22
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
ix
目次
第14章
GPバスDMAコントローラ ......................................................................... 14-1
14.1
14.2
14.3
14.4
第15章
x
概要 ..........................................................................................................
ブロック図 .................................................................................................
システム設計 .............................................................................................
レジスタ ....................................................................................................
14.4.1 メモリ・マップ・レジスタ ................................................................
14.4.2 ダイレクト・マップ・レジスタ ..........................................................
14.5 動作 ..........................................................................................................
14.5.1 GP-DMA転送 ..............................................................................
14.5.1.1 GP-DMAイニシエータ ..............................................
14.5.1.2 GP-DMAチャネル割当 ..............................................
14.5.2 動作モード ....................................................................................
14.5.2.1 ノーマルGP-DMAモード ...........................................
14.5.2.2 エンハンストGP-DMAモード .....................................
14.5.3 GP-DMAチャネルのアドレッシング ..............................................
14.5.3.1 ノーマルGP-DMAモードでのアドレッシング .............
14.5.3.2 エンハンストGP-DMAモードのアドレッシング ...........
14.5.4 GP-DMA転送モード ....................................................................
14.5.4.1 シングル転送モード ...................................................
14.5.4.2 デマンド転送モード ....................................................
14.5.4.3 ブロック転送モード ....................................................
14.5.4.4 転送の種類 ................................................................
14.5.4.5 自動初期化コントロール ............................................
14.5.4.6 プライオリティ............................................................
14.5.4.7 バッファ・チェイニング ................................................
14.5.5 バス・サイクル ..............................................................................
14.5.5.1 GP バスI/OからSDRAM ............................................
14.5.5.2 キャッシュにヒットした場合のGP-DMAリード ............
14.5.6 GPバス・エコー・モード ................................................................
14.5.7 クロックの考察 .............................................................................
14.5.8 割込み ..........................................................................................
14.5.9 ソフトウエアの考察 ......................................................................
14.5.10レイテンシ ....................................................................................
14.5.10.1 ノンプリエンプティブ・レイテンシ ...............................
14.5.10.2 プリエンプティブ・レイテンシ ......................................
14.6 初期化 .......................................................................................................
14.6.1 設定例 ..........................................................................................
14.6.1.1 ノーマルGP-DMAモードの 8ビット・チャネルの
設定 ...........................................................................
14.6.1.2 ノーマルGP-DMAモードの16ビット・チャネルの
設定 ...........................................................................
14.6.1.3 エンハンストGP-DMAモードの8ビット・チャネルの
設定 ...........................................................................
14.6.1.4 エンハンストGP-DMAモードの16ビット・チャネルの
設定 ...........................................................................
14-1
14-1
14-3
14-4
14-4
14-6
14-8
14-8
14-9
14-10
14-10
14-10
14-11
14-11
14-11
14-12
14-12
14-12
14-12
14-13
14-13
14-14
14-15
14-15
14-16
14-16
14-17
14-17
14-18
14-18
14-18
14-18
14-18
14-19
14-19
14-19
プログラマブル・インタラプト・コントローラ ..............................................
15.1 概要 ..........................................................................................................
15.2 ブロック・ダイアグラム ...............................................................................
15.3 システム設計 .............................................................................................
15.4 レジスタ ....................................................................................................
15.5 オペレーション ..........................................................................................
15.5.1 インタラプト・フロー・シーケンス .................................................
15.5.2 割込みソース ...............................................................................
15.5.2.1ハードウェア割込み ........................................................
15.5.3 割込みソース・ルーティング .........................................................
15.5.3.1 割込み要求の極性反転 ..............................................
15.5.3.2 PC/AT互換 ................................................................
15.5.3.3 浮動小数点エラー ......................................................
15.5.3.4 スレーブ・コントローラの無効化 ................................
15-1
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
14-19
14-20
14-20
14-21
15-1
15-2
15-2
15-4
15-7
15-7
15-8
15-8
15-10
15-10
15-12
15-12
15-13
目次
15.5.4 エッジトリガまたはレベルセンシティブ割込み ..............................
15.5.5 割込みの共有 ...............................................................................
15.5.6 マスク不可割込みとルーティング .................................................
15.5.6.1 NMIの共有 ................................................................
15.5.7 優先順位の種類 ...........................................................................
15.5.8 設定情報 ......................................................................................
15.5.8.1 プログラミング ...........................................................
15.5.8.2 PC/ATコンフィグレーション .......................................
15.5.9 ソフトウェアの考察 .......................................................................
15.5.9.1 割込みの共有 .............................................................
15.5.9.2 スレーブ・コントローラの無効化 ................................
15.5.9.3 有効な割込み要求の検出 ..........................................
15.5.9.4 浮動小数点ユニット・エラー・ハンドリング ..................
15-13
15-13
15-14
15-14
15-16
15-16
15-16
15-18
15-18
15-18
15-19
15-19
15-19
15.6 初期化 ....................................................................................................... 15-20
第16章
プログラマブル・インターバル・タイマ ........................................................ 16-1
16.1 概要 .......................................................................................................... 16-1
16.2 ブロック図 ................................................................................................. 16-1
16.3 システム設計 ............................................................................................. 16-1
16.4 レジスタ .................................................................................................... 16-2
16.5 オペレーション .......................................................................................... 16-3
16.5.1 PITチャネル0 ............................................................................... 16-3
16.5.2 PITチャネル1 ............................................................................... 16-3
16.5.3 PITチャネル2 ............................................................................... 16-4
16.5.4 オペレーティング・モード .............................................................. 16-4
16.5.4.1 モード0: ターミナル・カウントでの割込み ................. 16-4
16.5.4.2 モード1: ハードウェア-リトリガラブル・ワンショット .... 16-4
16.5.4.3 モード2: レート・ジェネレータ .................................... 16-5
16.5.4.4 Mode 3: スクエア・ウェーブ・モード .......................... 16-5
16.5.4.5 モード4: ソフトウェア-トリガード・ストローブ ............. 16-5
16.5.4.6 モード5: ハードウェア-トリガード・ストローブ ............. 16-5
16.5.5 クロックについての考察 ............................................................... 16-6
16.5.5.1 内部クロック .............................................................. 16-6
16.5.5.2 外部クロック .............................................................. 16-6
16.5.6 割込み .......................................................................................... 16-6
16.5.7 ソフトウェアの考察 ....................................................................... 16-6
16.5.7.1 PC/AT互換システムにおけるPITクロック・ソースの
使用 ........................................................................... 16-6
16.6 初期化 ....................................................................................................... 16-7
第17章
汎用タイマ ...................................................................................................
17.1 概要 ..........................................................................................................
17.2 ブロック図 .................................................................................................
17.3 システム設計 .............................................................................................
17.4 レジスタ ....................................................................................................
17.5 オペレーション ..........................................................................................
17.5.1 GPタイマ0とGPタイマ1 ..............................................................
17.5.2 GPタイマ2 ...................................................................................
17.5.3 オペレーティング・モード ..............................................................
17.5.3.1 ターミナル・カウントで割込みモード .........................
17.5.3.2 ハードウェア・リトリガ・モード .....................................
17.5.3.3 交互比較モード ..........................................................
17.5.3.4 スクエア・ウェーブ・モード ..........................................
17.5.3.5 連続モード .................................................................
17.5.3.6 プリスケーラ・モード ..................................................
17.5.4 設定情報 ......................................................................................
17.5.5 クロックに関する考察 ...................................................................
17.5.5.1 内部クロック ..............................................................
17.5.5.2 外部クロック ..............................................................
17.5.6 割込み ..........................................................................................
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
17-1
17-1
17-1
17-1
17-2
17-3
17-3
17-4
17-4
17-4
17-4
17-4
17-4
17-4
17-4
17-5
17-5
17-5
17-6
17-6
xi
目次
17.5.7 ソフトウェアに関する考察 ............................................................
17.5.7.1 GPタイマ・カウント・エレメントの結合 .......................
17.5.7.2 カスケードされた32ビット・タイマの読出し ...............
17.6 初期化 .......................................................................................................
xii
17-6
17-6
17-6
17-8
第18章
ソフトウェア・タイマ .................................................................................... 18-1
18.1 概要 .......................................................................................................... 18-1
18.2 ブロック図 ................................................................................................. 18-1
18.3 レジスタ .................................................................................................... 18-2
18.4 オペレーション .......................................................................................... 18-2
18.4.1 設定情報 ...................................................................................... 18-3
18.5 初期化 ....................................................................................................... 18-3
第19章
ウォッチドッグ・タイマ ................................................................................. 19-1
19.1 概要 .......................................................................................................... 19-1
19.2 ブロック図 ................................................................................................. 19-1
19.3 レジスタ .................................................................................................... 19-2
19.4 オペレーション .......................................................................................... 19-3
19.4.1 設定情報 ...................................................................................... 19-3
19.4.1.1 キー・シーケンス ........................................................ 19-3
19.4.1.2 割込み要求の発生 ..................................................... 19-4
19.4.1.3 システム・リセットの発生 ............................................ 19-4
19.4.1.4 タイムアウト時間 ........................................................ 19-4
19.4.2 割込み .......................................................................................... 19-5
19.4.3 AMDebug™ テクノロジ・インターフェイス ................................. 19-5
19.4.4 ソフトウェアに関する考察 ............................................................ 19-5
19.5 初期化 ....................................................................................................... 19-6
第20章
リアル・タイム・クロック ..............................................................................
20.1 概要 ..........................................................................................................
20.2 ブロック図 .................................................................................................
20.3 システム設計 .............................................................................................
20.3.1 バックアップ・バッテリに関する考慮 .............................................
20.3.1.1 外部のバックアップ・バッテリを持っているシステム ..
20.3.1.2 外部バックアップ・バッテリがないシステム ..............
20.3.2 32.768 kHz水晶発信子の選択とそのインタフェース ..................
20.3.3 外付けRTCを使う ........................................................................
20.4 レジスタ ....................................................................................................
20.5 オペレーション ..........................................................................................
20.5.1 コンフィギュレーション情報 ..........................................................
20.5.1.1 時間フォーマットを設定する ......................................
20.5.1.2 日付と時間のプログラミング .....................................
20.5.1.3 周期的な割込みの発生 ..............................................
20.5.1.4 アラーム機能を使う ...................................................
20.5.1.5 西暦2000年問題の取り扱い ......................................
20.5.2 クロックに関する考慮 ...................................................................
20.5.3 割込み ..........................................................................................
20.5.4 ソフトウェアに関しての考慮 .........................................................
20.5.4.1 RTC分周器チェーンを初期化する .............................
20.5.4.2 CMOSメモリにアクセスする .....................................
20.5.4.3 レガシーNMIイネーブル・ビットの移動 ......................
20.6 初期化 .......................................................................................................
20.6.1 RTCのリセット ..............................................................................
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
20-1
20-1
20-1
20-3
20-3
20-3
20-4
20-5
20-5
20-6
20-7
20-7
20-7
20-8
20-8
20-9
20-9
20-9
20-9
20-10
20-10
20-10
20-10
20-10
20-11
目次
第21章
第22章
UARTシリアル・ポート .............................................................................. 21-1
21.1
21.2
21.3
21.4
21.5
概要 ..........................................................................................................
ブロック図 .................................................................................................
システム設計 .............................................................................................
レジスタ ....................................................................................................
オペレーション ..........................................................................................
21.5.1 データ伝送 ...................................................................................
21.5.1.1 16450コンパチブルのUARTモード ...........................
21.5.1.2 16550コンパチブルの UARTモード ..........................
21.5.2 データ受信 ...................................................................................
21.5.2.1 16450コンパチブルの UARTモード ..........................
21.5.2.2 16550コンパチブルの UARTモード ..........................
21.5.3 エラー操作 ...................................................................................
21.5.3.1 パリティ・エラー .........................................................
21.5.3.2 フレーミング・エラー ..................................................
21.5.3.3 ブレーク表示 ..............................................................
21.5.3.4 エラー報告 ................................................................
21.5.4 コンフィギュレーション情報 ..........................................................
21.5.4.1 ボーレート ..................................................................
21.5.4.2 ハードウェア・フロー・コントロール ............................
21.5.4.3 動作モード .................................................................
21.5.5 DMAインタフェース .....................................................................
21.5.5.1 送信DMA ...................................................................
21.5.5.2 受信DMA ...................................................................
21.5.6 クロックの考慮 .............................................................................
21.5.7 割込み ..........................................................................................
21.5.7.1 シリアル・ポートの割込み ...........................................
21.5.7.2 DMA割込み ...............................................................
21.5.7.3 割込みのディセーブル ...............................................
21.6 初期化 .......................................................................................................
21-1
21-1
21-2
21-3
21-5
21-6
21-6
21-7
21-7
21-7
21-7
21-8
21-8
21-8
21-8
21-8
21-9
21-9
21-9
21-9
21-10
21-10
21-10
21-10
21-10
21-12
21-12
21-13
21-13
同期シリアル・インタフェース .....................................................................
22.1 概要 ..........................................................................................................
22.2 ブロック図 .................................................................................................
22.3 システム設計 .............................................................................................
22.4 レジスタ ....................................................................................................
22.5 オペレーション ..........................................................................................
22.5.1 利用法シナリオ .............................................................................
22.5.1.1 4ピン・インタフェース ................................................
22.5.1.2 3ピン・インタフェース ................................................
22.5.2 コンフィギュレーション情報 ..........................................................
22.5.2.1 ビット順 ......................................................................
22.5.2.2 クロック・アイドル状態 ...............................................
22.5.2.3 クロック・フェーズ ......................................................
22.5.3 バス・サイクル ..............................................................................
22.5.3.1 4ビットの読出しサイクル ............................................
22.5.3.2 バースト、16ビット、そして32ビットのサイクル ...........
22.5.4 クロックに関する考慮 ...................................................................
22.5.5 割込み ..........................................................................................
22.5.6 ソフトウェアに対しての考慮 .........................................................
22.6 初期化 .......................................................................................................
22-1
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
22-1
22-1
22-1
22-2
22-3
22-3
22-3
22-3
22-5
22-5
22-5
22-5
22-5
22-6
22-7
22-7
22-7
22-8
22-8
xiii
目次
xiv
第23章
プログラマブルI/O ...................................................................................... 23-1
23.1 概要 .......................................................................................................... 23-1
23.2 ブロック図 ................................................................................................. 23-1
23.3 システム設計 ............................................................................................. 23-2
23.4 レジスタ .................................................................................................... 23-4
23.5 オペレーション .......................................................................................... 23-4
23.5.1 コンフィギュレーション情報 .......................................................... 23-5
23.5.1.1 PIOピンと単純な入力 ................................................ 23-5
23.5.1.2 PIOピンと単純な出力 ................................................ 23-5
23.5.2 ソフトウェアに対しての考慮 ......................................................... 23-5
23.6 初期化 ....................................................................................................... 23-6
第24章
システム・テストとデバッギング .................................................................. 24-1
24.1 概要 .......................................................................................................... 24-1
24.2 システム設計 ............................................................................................. 24-1
24.2.1 負荷 .............................................................................................. 24-2
24.3 レジスタ .................................................................................................... 24-2
24.4 オペレーション .......................................................................................... 24-3
24.4.1 システム・テスト・モード ................................................................ 24-3
24.4.1.1 システム・テスト・モードのピン機能 ........................... 24-3
24.4.1.2 システム・テスト・モード・インタフェースを使う.......... 24-4
24.4.1.3 システム・テスト・モードでのSDRAMライト・サイクル 24-4
24.4.1.4 システム・テスト・モードでのSDRAMリード・サイクル 24-5
24.4.1.5 ROMインタフェースでトランザクションを
トレースする .............................................................. 24-5
24.4.1.6 GP バス・インタフェース上のトランザクションを
トレースする .............................................................. 24-6
24.4.2 ライト・バッファ・テスト・モード ...................................................... 24-6
24.4.2.1 ライト・バッファ・テスト・モード・インタフェースを使う 24-7
24.4.2.2 ライト・バッファ・テスト・モードのSDRAMライト・
サイクル ..................................................................... 24-8
24.4.2.3 ライト・バッファ・テスト・モードのSDRAMリード・
サイクル ..................................................................... 24-8
24.4.3 ÉlanSC520マイクロコントローラのその他のデバッグ機能 ........ 24-10
24.4.3.1 非並列アービトレーション・モード .............................. 24-10
24.4.3.2 GP バス上に内蔵の周辺デバイス・アクセスを
エコーする ................................................................. 24-10
24.4.3.3 追加のシステム・デバッグ機能のまとめ ..................... 24-10
24.4.4 ソフトウェアの考慮 ....................................................................... 24-11
24.4.5 遅延 .............................................................................................. 24-11
24.5 初期化 ....................................................................................................... 24-12
第25章
バウンダリ・スキャン・テスト・インタフェース ............................................
25.1 概要 ..........................................................................................................
25.2 ブロック図 .................................................................................................
25.3 レジスタ ....................................................................................................
25.4 オペレーション ..........................................................................................
25.4.1 Instructionレジスタ .....................................................................
25.4.1.1 実装されている命令 ..................................................
25.4.2 コンフィギュレーション情報 ..........................................................
25.4.2.1 命令パス ....................................................................
25.4.2.2 Bypassパス ..............................................................
25.4.2.3 主データ・スキャン・パス ............................................
25.4.2.4 Serial Debug Port Dataレジスタ .............................
25.4.2.5 Device Identificationレジスタ ..................................
25.4.3 Test Access Port (TAP)コントローラ ........................................
25.4.3.1 TAPコントローラの状態 ............................................
25.4.4 バス・サイクル ..............................................................................
25.4.5 クロックに関しての考慮 ...............................................................
25.5 初期化 .......................................................................................................
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
25-1
25-1
25-1
25-2
25-2
25-3
25-3
25-4
25-4
25-5
25-5
25-13
25-13
25-14
25-15
25-18
25-20
25-20
目次
第26章
AMDebug™テクノロジ ...........................................................................
26.1 概要 ..........................................................................................................
26.2 ブロック図 .................................................................................................
26.3 システム設計 .............................................................................................
26.3.1 AMDebug™ポートを接続する ....................................................
26.3.2 ターゲット・コネクタの機械的仕様 ...............................................
26.3.3 ターゲット・システムの上のコネクタを確認する ..........................
26.4 オペレーション ..........................................................................................
26.4.1 オンチップ・トレース・キャッシュ ...................................................
26.4.2 ソフトウェア性能のプロファイリング .............................................
26-1
26-1
26-2
26-2
26-2
26-4
26-5
26-6
26-6
26-7
索引-1
索引
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
xv
目次
図目次
Élan™SC520 マイクロコントローラのブロック図 ..............................................
Élan™SC520 マイクロコントローラをスマート・レジデント・
ゲートウエイ(SRG)に応用した例 .........................................................................
Élan™SC520 マイクロコントローラをシン・クライアントに応用した例 ..............
Élan™SC520 マイクロコントローラをデジタル・セット・トップ・ボックスに
Figure 1-1
Figure 1-2
Figure 1-3
Figure 1-4
Figure 1-5
Figure 2-1
Figure 2-2
Figure 3-1
Figure 3-2
Figure 3-3
Figure 4-1
Figure 4-2
Figure 4-3
Figure 5-1
Figure 5-2
Figure 5-3
Figure 5-4
Figure 5-5
Figure 6-1
Figure 6-2
Figure 6-3
Figure 7-1
Figure 8-1
Figure 8-2
Figure 8-3
Figure 8-4
Figure 8-5
Figure 8-6
Figure 8-7
Figure 8-8
Figure 8-9
Figure 8-10
Figure 8-11
Figure 8-12
Figure 9-1
Figure 9-2
Figure 9-3
Figure 9-4
Figure 9-5
Figure 9-6
Figure 9-7
Figure 9-8
Figure 9-9
Figure 9-10
Figure 9-11
Figure 9-12
Figure 9-13
Figure 9-14
Figure 9-15
Figure 9-16
Figure 10-1
Figure 10-2
xvi
応用した例 ...........................................................................................................
Élan™SC520 マイクロコントローラを電話回線コンセントレータに応用した例
インタフェースごとにグループ化したロジック図 ..................................................
各ピンをフォルトの機能でグループ化したロジック図 ..........................................
Initial Nearジャンプ例 .........................................................................................
Programmable Address Region (PAR)レジスタのフォーマット ......................
Programmable Address Region (PAR)レジスタのワークシート .....................
Programmable Address Region (PAR)レジスタのフォーマット ......................
システム・メモリ・マップ ........................................................................................
システムI/Oマップ ................................................................................................
クロック・ソースのブロック図 ...............................................................................
システム・クロック・ディストリビューション・ブロック図 .........................................
32.768kHzの発振回路のバイパス ......................................................................
33MHzの発振回路のバイパス ............................................................................
CLKTESTピンのためのクロック・ルーティング ....................................................
リセット・コントローラのブロック図 ......................................................................
PRGRESETのタイミング .....................................................................................
電源投入リセット時のイベントの流れ ...................................................................
Am5x86® CPUのブロック図 ...............................................................................
システム・アービタのブロック図 ...........................................................................
スキップされたマスタの例 ...................................................................................
CPU バスの回転プライオリティ・キュー ................................................................
外部のPCIマスタ・アービトレーション・キュー .....................................................
ホスト・ブリッジのマスタ・アービトレーション・キュー ...........................................
CPU バス・アービトレーション ..............................................................................
CPU バスのキャッシュ・ライト・バック ...................................................................
CPU-to-PCI バス・サイクル .................................................................................
PCIバス・アービトレーション ................................................................................
並列アービトレーション・モードでのバス・パーキング ..........................................
非並列モードでのアービトレーション ...................................................................
単純な回転プライオリティ・キュー ........................................................................
PCIインタフェースのブロック図 ..........................................................................
ÉlanSC520 マイクロコントローラの外部PCIターゲット・デバイスへの接続 ......
ÉlanSC520 マイクロコントローラの外部PCIマスタ・デバイスへの接続 ............
ÉlanSC520 マイクロコントローラのPERR と SERR 信号への接続 ..................
PCIバス・クロッキングの例1
:負荷の軽いシステム ..............................................
PCIバス・クロッキングの例2:負荷の重いシステム ..............................................
PCI Configuration Address(PCICFGADR)レジスタ ........................................
PCIバスに対するCPUの読出しサイクル .............................................................
外部ターゲットのリトライを伴うPCIバスへのCPU読出しサイクル ......................
ポストされたPCIバスに対するCPUの書込み ......................................................
ポストされないPCIバスに対するAm5x86 CPUの書込み ...................................
内蔵PCI バス・コンフィギュレーション・レジスタに対するCPUの書込みサイクル
内臓PCI バス・コンフィギュレーション・レジスタ(PCICFGDATA)レジスタからの
CPUの読出しサイクル .........................................................................................
外部PCI バス・マスタのポストされたSDRAM書込み ...........................................
外部PCIマスタのSDRAM読出し(ディレイド・トランザクション) ...........................
PCIホスト・ブリッジのターゲット・ディスコネクト ..................................................
SDRAMコントローラのブロック図 ......................................................................
SDRAMコントローラの詳細なブロック図 ............................................................
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
1-3
1-10
1-11
1-12
1-13
2-2
2-3
3-6
3-10
3-11
4-6
4-7
4-11
5-2
5-3
5-5
5-6
5-9
6-2
6-6
6-9
7-2
8-2
8-5
8-6
8-9
8-9
8-11
8-13
8-14
8-15
8-16
8-18
8-20
9-2
9-3
9-4
9-5
9-6
9-6
9-10
9-13
9-14
9-15
9-16
9-17
9-18
9-23
9-24
9-26
10-2
10-3
目次
Figure 10-3
Figure 10-4
Figure 10-5
Figure 10-6
Figure 10-7
Figure 10-8
Figure 10-9
Figure 10-10
Figure 10-11
Figure 10-12
Figure 10-13
Figure 11-1
Figure 11-2
Figure 11-3
Figure 11-4
Figure 11-5
Figure 11-6
Figure 12-1
Figure 12-2
Figure 12-3
Figure 12-4
Figure 12-5
Figure 12-6
Figure 12-7
Figure 12-8
Figure 12-9
Figure 12-10
Figure 12-11
Figure 13-1
Figure 13-2
Figure 13-3
Figure 13-4
Figure 13-5
Figure 13-6
Figure 13-7
Figure 13-8
Figure 13-9
Figure 13-10
Figure 13-11
Figure 13-12
Figure 13-13
Figure 13-14
Figure 13-15
Figure 13-16
Figure 14-1
Figure 14-2
Figure 14-3
Figure 14-4
Figure 14-5
Figure 14-6
SDRAM バンクの設定 ..........................................................................................
168ピンSDRAM DIMMの設定例 ........................................................................
SDRAMクロック・ジェネレーション ......................................................................
外部クロック・ドライバとの交互SDRAMクロック・ジェネレーション .....................
SDRAM バースト読出しサイクル(リード・アヘッド・フィーチャーが
ディセーブル )(ページミス/ページヒット) ..............................................................
SDRAM書込みサイクル(ライト・バッファとECCがディセーブル)
(ページミス/ページヒット) ....................................................................................
SDRAM CPUのバースト書込みサイクル(ライト・バッファとECCが
ディセーブル )(ページミス/ページヒット) ..............................................................
ECCを使用したSDRAMバースト読出しサイクル ................................................
ECCを使用した(ページヒット)、SDRAMリード・モディファイ・ライト・サイクル .....
SDRAM自動リフレッシュ・サイクル ......................................................................
SDRAMモード・レジスタ・アクセス ......................................................................
ライト・バッファとリード・バッファのブロック図(SDRAMサブシステム) ................
ライト・バッファとリード・バッファのブロック図 .....................................................
ライト・バッファ・マージの例 .................................................................................
ライト・バッファ・コラプスの例 ..............................................................................
ライト・バッファ・リード・マージの例 ......................................................................
ライト・バッファがディセーブル/イネーブルの場合のバス動作 ..........................
ROMコントローラのブロック図 ...........................................................................
電圧のアイソレーション例 ....................................................................................
page-mode ROM:16ビットROMからの4ワードのフェッチ .................................
Non-page mode ROM: 16ビットROMからの4ワードのフェッチ ........................
page-mode ROM:32ビットROMからの 4つのダブルワード(Aligned)の
フェッチ ................................................................................................................
page-mode ROM:8ビットROMからの4つのダブルワード(Unaligned)の
フェッチ ................................................................................................................
マルチアクセス例:8ビットROMからダブルワード(2 バイト)以下のデータを
フェッチする場合 ..................................................................................................
32ビットROMから4ダブルワードをフェッチする場合のページ・アクセス
(バースト・シーケンス2-1-1-1) ............................................................................
16ビットROMから2ダブルワードをフェッチする場合のページ・アクセス .............
キャッシュ・ライン・フィル(32ビットROMから4つのダブルワードのフェッチ) ........
フラッシュメモリーへのワード書込みサイクル .....................................................
GP バス・コントローラ・システムのブロック図 ......................................................
外部データ・バッファの使用例 ..............................................................................
ボルテージ・トランスレータの使用例 ...................................................................
GP バス・タイミング・フォーマット .........................................................................
スーパーI/Oコントローラを接続したÉlanSC520 マイクロコントローラ .............
スーパーI/Oインターフェイスのタイミング図 ......................................................
ÉlanSC520 マイクロコントローラと Am85C30との接続 ..................................
Am850C30インターフェイスのタイミング図 .......................................................
8ビットI/Oデバイスへの8ビット・データ・アクセス ................................................
16ビットI/Oデバイスへの 16ビット・データ・アクセス ............................................
8ビットI/Oデバイスへの 16ビット・データ・アクセス ..............................................
8ビットI/Oデバイスへの 32ビット・データ・アクセス ..............................................
16ビットI/Oデバイスへの 32ビット・データ・アクセス ............................................
16ビットI/Oデバイスへの8ビット・データ・アクセス ..............................................
16ビットI/Oデバイスへの16ビット・アクセス ........................................................
GPRDYタイミング ...............................................................................................
GP-DMAコントローラのブロック図 .....................................................................
マスタ・コアとスレイブ・コア・カスケードの図 ......................................................
GP-DMAリード転送 .............................................................................................
GP-DMAライト転送 .............................................................................................
GP-DMAベリファイ転送 ......................................................................................
デマンド転送モードでのGP-DMA読出しサイクル ...............................................
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
10-4
10-5
10-7
10-7
10-22
10-23
10-24
10-25
10-26
10-27
10-27
11-2
11-3
11-7
11-8
11-9
11-14
12-2
12-4
12-6
12-8
12-8
12-8
12-10
12-10
12-11
12-11
12-12
13-2
13-4
13-5
13-8
13-13
13-14
13-15
13-16
13-16
13-17
13-17
13-18
13-18
13-19
13-20
13-21
14-2
14-3
14-13
14-14
14-14
14-16
xvii
目次
Figure 14-7
Figure 15-1
Figure 15-2
Figure 15-3
Figure 15-4
Figure 16-1
Figure 17-1
Figure 18-1
Figure 19-1
Figure 20-1
Figure 20-2
Figure 20-3
Figure 20-4
Figure 21-1
Figure 21-2
Figure 21-3
Figure 22-1
Figure 22-2
Figure 22-3
Figure 22-4
Figure 22-5
Figure 22-6
Figure 22-7
Figure 22-8
Figure 22-9
Figure 23-1
Figure 24-1
Figure 24-2
Figure 24-3
Figure 24-4
Figure 25-1
Figure 25-2
Figure 25-3
Figure 25-4
Figure 25-5
Figure 25-6
Figure 26-1
Figure 26-2
Figure 26-3
Figure 26-4
Figure 26-5
xviii
キャッシュ(ライトバック・キャッシュ)にヒットした場合のGP-DMA読出し転送 ......
プログラマブル・インタラプト・コントローラ(PIC)のブロック図 ..........................
割り込みソース ....................................................................................................
割り込みソース・ルーティング ..............................................................................
NMI ルーティング .................................................................................................
プログラマブル・インターバル・タイマ ブロック図 ................................................
汎用タイマ ブロック図 .........................................................................................
ソフトウェア・タイマ ブロック図 ............................................................................
ウォッチドッグ・タイマ ブロック図 ..........................................................................
リアル・タイム・クロック ブロック図 ......................................................................
RTC電圧モニタ ブロック図 ..................................................................................
バックアップ・バッテリを使用した回路 .................................................................
バックアップ・バッテリを使用しない回路 ..............................................................
UARTブロック図 ..................................................................................................
UARTフレーム構成 .............................................................................................
UARTフレーム転送 .............................................................................................
同期シリアル・インタフェース( SSI )ブロック図 ....................................................
SSI 4ピン・インタフェース ....................................................................................
SSI同時送受信 .....................................................................................................
SSI 3ピン・インタフェース ....................................................................................
インバートされていないフェーズ・モード/クロック・モードでの典型的な
SSIの半二重通信 .................................................................................................
SSIクロック・フェーズとクロック・アイドル状態 ....................................................
SSI 4ビットの読出しサイクル:全二重、インバートされていない
フェーズ/クロック ..............................................................................................
全二重Microwir互換コンフィギュレーションの場合のSSI バックツーバック・
トランザクション ...................................................................................................
SSIタイミング:TC_INTビットとBSY_STAビット ...................................................
PIO信号ブロック図 ..............................................................................................
システム・テスト・モードでのSDRAMライト・サイクルのタイミング
(ページ・ヒット)...................................................................................................
システム・テスト・モードでのSDRAMリード・サイクルのタイミング
(ページ・ミス).....................................................................................................
ライト・バッファ・テスト・モードでのSDRAMライト・サイクルのタイミング
(ページ・ヒット)...................................................................................................
ライト・バッファ・テスト・モードでのSDRAMリード・サイクルのタイミング
(ページ・ミス).....................................................................................................
バウンダリ・スキャン・レジスタのロジック構造 .....................................................
Serial Debug Port Dataレジスタのフォーマット ................................................
Device Identificationレジスタのフォーマット .....................................................
テスト・アクセス・ポート・コントローラの状態図 ...................................................
テスト・ロジック動作:データ・スキャン ..................................................................
テスト・ロジック動作:Instructionスキャン ............................................................
AMDebugテクノロジのソフトウェア・アーキテクチャ..........................................
12ピン・コネクタのフォーマット ...........................................................................
20ピン・シリアル・コネクタのフォーマット ............................................................
AMDebugテクノロジー・ターゲット・コネクタの機械的仕様 ...............................
ターゲット・コネクタの配置 ..................................................................................
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
14-17
15-3
15-9
15-11
15-15
16-2
17-2
18-1
19-2
20-2
20-3
20-4
20-5
21-2
21-5
21-5
22-2
22-4
22-4
22-4
22-4
22-6
22-6
22-7
22-8
23-2
24-5
24-5
24-8
24-9
25-1
25-13
25-14
25-15
25-19
25-20
26-2
26-3
26-4
26-4
26-5
目次
表目次
Table 0-1
Table 2-1
Table 2-2
Table 3-1
Table 3-2
Table 3-3
Table 3-4
Table 3-5
Table 3-6
Table 3-7
Table 3-8
Table 3-9
Table 3-10
Table 3-11
Table 3-12
Table 4-1
Table 4-2
Table 4-3
Table 4-4
Table 4-5
Table 5-1
Table 5-2
Table 5-3
Table 5-4
Table 6-1
Table 6-2
Table 6-3
Table 6-4
Table 7-1
Table 7-2
Table 7-3
Table 8-1
Table 9-1
Table 9-2
Table 9-3
Table 10-1
Table 10-2
Table 10-3
Table 10-4
Table 10-5
Table 10-6
Table 10-7
Table 10-8
Table 10-9
Table 10-10
Table 10-11
Table 10-12
Table 11-1
Table 11-2
Table 12-1
Table 12-2
Table 12-3
Table 12-4
Table 12-5
表記規則一覧 .......................................................................................................
信号説明の定義 ...................................................................................................
信号の説明 ..........................................................................................................
CPUIDコード .......................................................................................................
PARプログラミング例:1つのチップ・セレクトを使用する単独のデバイス ............
PARプログラミング例:独自にデコードを行う単独のデバイス .............................
PARプログラミング例:複数のデバイスで1つのチップ・セレクトを使用 ...............
PARプログラミング例:PCIバス上のVGAコントローラ .......................................
PARプログラミング例:PCI バス上のCOM3(VGAサポートの場合)..................
PARプログラミング例:遠隔プログラム・ローディングのためのネットワーク・
アダプタ ...............................................................................................................
PARプログラミング例:BIOSシャドウのためのブートROMデバイス ....................
PARプログラミング例:XIP OS用Flash(第1バンク)...........................................
PARプログラミング例:XIP OS用Flash(第2バンク)...........................................
PARプログラミング例:DMA バッファの設定 ........................................................
PARプログラミングの例:コード・セグメントの書込み保護 ...................................
メモリ・マップされたアドレス・デコード・レジスタ .................................................
ダイレクト・マップされたアドレス・デコード・レジスタ ...........................................
バスマスタのアドレス空間 ...................................................................................
メモリ空間、I/O空間の要約 ..................................................................................
PC/ATペリフェラルのI/Oマップ ...........................................................................
クロックのスタートアップ時間とロック時間 .........................................................
多重化されたクロック信号 ...................................................................................
タイミング誤差試算表 ..........................................................................................
メモリ・マップされたクロック制御レジスタ ...........................................................
メモリ・マップされたレジスタの生成 ....................................................................
ダイレクト・マップされたレジスタの生成 ..............................................................
ÉlanSC520 マイクロコントローラのリセット・ソース ..........................................
システム・リセット後のコアの状態 ........................................................................
メモリ・マップされたAm5x86® CPUレジスタ .....................................................
ダイレクト・マップされたAm5x86® CPUレジスタ ...............................................
キャッシュ構成オプション .....................................................................................
メモリ・マップされたシステム・アービトレーション・レジスタ ................................
メモリ・マップされたバス・ホスト・ブリッジ・レジスタ ............................................
ダイレクト・マップされたバス・ホスト・ブリッジ・レジスタ ......................................
PCIインデックス・バス・ホスト・ブリッジ・レジスタ .................................................
デバイス幅から推定されるSDRAMクロック負荷容量 ..........................................
推定容量(4ビットSDRAMデバイス) .....................................................................
推定容量(8ビットSDRAMデバイス) .....................................................................
推定容量(16ビットSDRAMデバイス) ...................................................................
推定容量(32ビットSDRAMデバイス) ...................................................................
メモリ・マップされたSDRAM制御レジスタ ..........................................................
SDRAMデバイスのアドレス・マッピング ..............................................................
カラム・バウンダリ仕様によってサポートされるSDRAM .....................................
SDRAMのカラム・アドレス・コンフィギュレーション設定 .....................................
SDRAMのページ・サイズ .....................................................................................
SDRAMのリフレッシュ・レート .............................................................................
モード・レジスタの設定コード ..............................................................................
多重化されたSDRAM信号 ..................................................................................
メモリ・マップされたSDRAM バッファ制御レジスタ .............................................
ROM/フラッシュ・データ・バスの接続オプション ...............................................
多重化されたROM信号 .......................................................................................
メモリ・マップされた ROMコントローラ・レジスタ ...............................................
例:ROMアクセスのタイミングとウエイト・ステート ..............................................
アクセス数とROMの幅 ........................................................................................
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
xxiii
2-4
2-5
3-7
3-14
3-14
3-14
3-15
3-16
3-16
3-17
3-17
3-18
3-18
3-19
4-2
4-2
4-3
4-4
4-13
5-2
5-3
5-5
5-6
6-3
6-3
6-4
6-5
7-1
7-1
7-4
8-2
9-7
9-8
9-8
10-6
10-8
10-8
10-9
10-9
10-10
10-12
10-13
10-15
10-16
10-18
10-31
11-4
11-4
12-1
12-3
12-5
12-9
12-9
xix
目次
Table 12-6
Table 13-1
Table 13-2
Table 13-3
Table 13-4
Table 13-5
Table 13-6
Table 13-7
Table 13-8
Table 14-1
Table 14-2
Table 14-3
Table 14-4
Table 14-5
Table 14-6
Table 14-7
Table 14-8
Table 15-1
Table 15-2
Table 15-3
Table 15-4
Table 16-1
Table 16-2
Table 16-3
Table 16-4
Table 16-5
Table 17-1
Table 17-2
Table 17-3
Table 17-4
Table 18-1
Table 19-1
Table 19-2
Table 20-1
Table 20-2
Table 20-3
Table 20-4
Table 21-1
Table 21-2
Table 21-3
Table 21-4
Table 21-5
Table 21-6
Table 21-7
Table 22-1
Table 23-1
Table 23-2
Table 23-3
Table 24-1
Table 24-2
Table 24-3
Table 24-4
Table 25-1
Table 25-2
Table 25-3
Table 26-1
xx
BOOTCSにおけるCFGxピンストラップの設定オプション ...................................
多重化されたGP バス信号 ...................................................................................
メモリ・マップされたGPバス・レジスタ .................................................................
GP バス・エコー・モード時の最小バス・タイミング ...............................................
ISA信号とGPバス信号との対応表 ......................................................................
スーパーI/Oコントローラのインタフェース・タイミングの例 ...............................
ÉlanSC520マイクロコントローラとAm85C30との接続タイミング例 ................
16ビットデバイスにおけるバイト選択 ...................................................................
プログラムされたデータ・バス幅を無効にするダイナミック・バス・サイジング .....
多重化されたGP-DMA信号 ................................................................................
メモリ・マップされたGP-DMAコントローラ・レジスタ ..........................................
ダイレクト・マップされたGP-DMAコントローラ・レジスタ ....................................
GP-DMAイニシエータ/ターゲットの組み合わせ .................................................
GP-DMAチャネル・マッピング .............................................................................
8ビットGP-DMAチャネル・アドレス生成 ...............................................................
16ビットGP-DMAチャネル・アドレス生成 ............................................................
GP-DMAサイクル・タイプ ....................................................................................
多重化されたPIC信号 .........................................................................................
メモリ・マップされたプログラマブル・インタラプト・コントローラ.
レジスタ ..........
ダイレクト・マップされたプログラマブル・インタラプト・コントローラ・レジスタ ...
PC/AT互換システムにおける割込みチャネルのマッピング .................................
多重化されたプログラマブル・インターバル・タイマ( PIT)信号 ..........................
メモリ・マップされたプログラマブル・インターバル・タイマ設定レジスタ ............
ダイレクト・マップされたプログラマブル・インターバル・タイマ設定レジスタ ......
PIT内部クロックのソース .....................................................................................
PIT外部クロックのソース .....................................................................................
多重化された汎用タイマ信号 ..............................................................................
メモリ・マップされた汎用タイマ・レジスタ ............................................................
GPタイマの内部クロック・ソース .........................................................................
GPタイマの外部クロック・ソース( 33.333MHz水晶発信子使用).......................
メモリ・マップされたソフトウェア・タイマ設定レジスタ .........................................
メモリ・マップされたウォッチドッグ・タイマ・レジスタ ............................................
ウォッチドッグ・タイマのタイムアウト時間 .............................................................
メモリ・マップされたリアル・タイム・クロック・レジスタ ........................................
ダイレクト・マップされたリアル・タイム・クロック・レジスタ ..................................
RTCインデックスされたリアル・タイム・クロック・レジスタ ...................................
RATE_SELを使った周期的な割込みレートの指定 ..............................................
多重化されたUART信号 ......................................................................................
DTEからDTE への接続 .........................................................................................
メモリ・マップされたUARTレジスタ .....................................................................
ダイレクト・マップされたUARTレジスタ ...............................................................
ボーレート、ディバイザ、
クロック・ソース ..............................................................
URAT割込みプログラミングの概略 .....................................................................
シリアル・ポート割込みと割込みの優先順位 ........................................................
メモリ・マップされた同期シリアル・インタフェース(SSI )レジスタ.......................
多重化されたPIO信号 .........................................................................................
メモリ・マップされたPIOレジスタ ........................................................................
PIOコンフィギュレーションの概略 .......................................................................
多重化されたシステム・テスト/デバッグギング信号 ...........................................
メモリ・マップされたシステム・テスト/デバッグ・レジスタ ...................................
ライト・バッファ・ライト・サイクルにおけるWBMSTR2-WBMSTR0のピン定義 .....
SDRAMリード・サイクルにおけるWBMSTR2-WBMSTR0のピン定義 ................
チップ・テスト/デバッグ・レジスタ .........................................................................
テスト・アクセス・ポート命令セット .......................................................................
主データ・スキャン・パス ......................................................................................
AMDebugテクノロジのコネクタ・ピン ................................................................
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
12-14
13-3
13-5
13-9
13-12
13-13
13-15
13-19
13-20
14-4
14-4
14-7
14-9
14-10
14-12
14-12
14-16
15-2
15-4
15-6
15-12
16-1
16-2
16-3
16-6
16-6
17-1
17-2
17-5
17-6
18-2
19-2
19-4
20-6
20-6
20-6
20-8
21-2
21-3
21-3
21-4
21-9
21-11
21-12
22-2
23-3
23-4
23-5
24-2
24-2
24-8
24-9
25-2
25-3
25-5
26-3
Preface
はじめに
Élan™SC520 マイクロコントローラ
Élan™ SC520 マイクロコントローラは、一般的なマイコン組込み機器の市場向けに、必要な機能を
全て提供するよう設計されたマイクロコントローラです。ÉlanSC520 マイクロコントローラは、低消
費電力32ビットAm5x86® CPUと、
リアル・タイムおよびPC/AT互換の両方の組込機器に最適なペリ
フェラル群を集積しています。
本書の目的
本書は、ÉlanSC520 マイクロコントローラの技術的な特徴とプログラミング・インタフェースについ
て説明します。
対象読者
この『ÉlanSC520 マイクロコントローラ・ユーザーズ・マニュアル』
(注文番号MS-0626/9/00 )は、
ÉlanSC520 マイクロコントローラを使用したシステムを現在設計している、または採用を検討して
いるコンピュータ・ソフトウエアおよびハードウエア設計者とシステム・エンジニアを対象としていま
す。
本書の概要
本書は以下の章で構成されています:
■ 第1章は、ÉlanSC520 マイクロコントローラのアーキテクチャの概要を応用例の図とともに説明
します。
■ 第2章では、ÉlanSC520 マイクロコントローラの信号とピンについて説明します。デフォルトの
ピンおよび多重化されたピンを、ロジック図に示します。ピンの詳細な情報はÉlan ™ SC520
Microcontroller Data Sheetに記載されています。
システム初期化の概要と各種設定例を紹介します。
■ 第3章は、
■ 第4章では、ÉlanSC520 マイクロコントローラのシステム・アドレス・マッピングを説明します。
クロックの生成とコントロールに関する情報を提供します。
■ 第5章は、
■ 第6章では、ÉlanSC520 マイクロコントローラのリセットのソースとステートについて説明しま
す。
■ 第7章は、Am5x86 CPUの概要を含みます。CPUについてのさらに詳しい情報は、
この章に記載
された各参考資料をご覧ください。
■ 第8章では、CPU バス・アービタやPCIバス・アービタなどの、ÉlanSC520 マイクロコントローラ
が持つシステム・アービタについて説明します。
■ 第9章では、ÉlanSC520 マイクロコントローラに搭載するPCIバス・ホスト・ブリッジについて説
明します。
■ 第10章では、
シンクロナスDRAM( SDRAM )コントローラについて説明します。
■ 第11章では、SDRAMのライト・バッファおよびリード・バッファに関して、
リード・アヘッドの機能
とともに説明します。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
xxi
はじめに
■ 第12章は ROM/Flash コントローラの説明です。
■ 第13章では、ÉlanSC520 マイクロコントローラが内蔵するプログラマブル汎用( GP )バス・イ
ンタフェースについて説明します。
■ 第14章は、GPバスDMAコントローラの説明です。
■ 第15章では、3つの割込みコントローラを内蔵するプログラマブル・インタラプト・コントローラ
( PIC )について説明します。
■ 第16章では、3つのタイマを内蔵するプログラマブル・タイマ・コントローラ(PIT )について説明
します。
■ 第17章は、ÉlanSC520 マイクロコントローラが内蔵する3つの汎用( GP )タイマの説明です。
システムの時間を簡単に管理するための、
ソフトウエア・タイマの説明です。
■ 第18章は、
■ 第19章は、
ソフトウエアの暴走を防ぐためのウオッチドッグ・タイマの説明です。
■ 第20章では、ÉlanSC520 マイクロコントローラが内蔵するリアル・タイム・クロック( RTC )と、
RTC電圧モニタを説明します。
■ 第21章は、2つのUARTシリアル・ポートの説明です。
■ 第22章では、
シンクロナス・シリアル・インタフェース( SSI )について説明します。
■ 第23章では、ÉlanSC520 マイクロコントローラの持つ32本のプログラマブル入出力( PIO )ピ
ンについて説明します。
■ 第24章は、ÉlanSC520 マイクロコントローラの持つシステム・テスト機能の概要です。
■ 第25章では、ÉlanSC520 マイクロコントローラのJTAG(IEEE Std. 1149.1-1990) バウンダリ・
スキャン・テスト・インタフェースについて説明します。
■ 第26章では、FusionE86 ベンダのサード・パーティがサポートする AMDebug™ technology
の概要と、
この機能を利用するためのボードの仕様に関して説明します。
関連資料
以下の資料はÉlan™SC520 マイクロコントローラを用いた組込機器を設計する際に役立つもので
す。
AMDの資料
本書の他に、ÉlanSC520 マイクロコントローラに関する資料として以下のものがあります:
■
ÉlanSC520 Microcontroller Register Set Manual(注文番号#22005)は、マイクロコントロー
ラをプログラムする際に必要な全てのコンフィギュレーション・レジスタに関する解説書です。
■ ÉlanSC520 Microcontroller Data Sheet(注文番号#22003)は、完全なピン・リストや、
ピン・ス
テート表、
タイミング、熱特性およびパッケージ寸法などの情報を含んでいます。
その他の情報として:
■ Am486® Microprocessor Software User ’
s Manual(注文番号#18497 )からは、内蔵する
Am5x86 CPUの命令セットの解説が得られます。
■ Am5x86® Microprocessor Family Data Sheet(注文番号#19751 )
■ Am486DX/DX2 Microprocessor Hardware Reference Manual(注文番号#17965 )
■ E86 Family Products and Development Tools CD(注文番号#21058)は、AMDの製品およ
びE86ファミリをサポートするFusionE86パートナーのツールや技術を、1つのCDで評価するこ
とができるマルチ・メディア・ツールです。技術資料はPDFフォーマットでCDの中に収められてい
ます。
xxii
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
はじめに
資料のご注文の際は、
最寄りのAMD営業所または代理店にお申し付けください。これらの資料はPDF
ファイルで、AMD の web サイトからも得ることができます。web サイトにアクセスする際は、http://
www.amd.com/ のトップページから、Embedded Processor のリンクをたどってください。
補足情報
AMD提供ではありませんが、以下の資料も、ÉlanSC520 マイクロコントローラのユーザにとって有
益な情報を提供します:
■ PCI Local Bus Specification, Revision 2.2, December 18, 1998, PCI Special Interest
Group, 800-433-5177 (US), 503-693-6360 (International), www.pcisig.com.
■ IEEE Std 1149.1-1990 Standard Test Access Port and Boundary-Scan Architecture,
(order #SH16626-NYF), Institute of Electrical and Electronic Engineers, Inc., 800-6784333, www.ieee.org.
■ PCI System Architecture, Mindshare, Inc., Reading, MA: Addison-Wesley, 1995, ISBN0-
201-40993-3.
■ ISA System Architecture, Mindshare, Inc., Reading, MA: Addison-Wesley, 1995, ISBN0-
201-40996-8.
■ 80486 System Architecture, Mindshare, Inc., Reading, MA: Addison-Wesley, 1995, ISBN
0-201-40994-1.
■ The Indispensable PC Hardware Book, Hans-Peter Messmer, Wokingham, England:
Addison-Wesley, 1995, ISBN 0-201-87697-3.
表記規則
Table 0-1 は、本書で使用する表記規則の一覧です。
Table 0-1
表記規則一覧
Notation
Meaning
Reset Default Values
Default
Value after a system reset
0
Low
1
Active or High
x
No value is guaranteed
?
Determined by sources external to the ÉlanSC520
microcontroller
Read/Write Attributes
R
The bit field is read-only. A write to the register at this bit field
has no effect. The contents may or may not be changed by
hardware.
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
xxiii
はじめに
Table 0-1
表記規則一覧(続き)
Notation
Meaning
W
The bit field is write-only. Reading this register at this bit field
does not return a meaningful value and has no side effects.
R/W
The bit field is read/write. Reading the register at this bit field
always returns the last value written. Reads have no side effects.
R/W!
The bit field is read/write with conditions. The "!" indicates that
there are side effects to using this bit. For example, reading a
bit or register might not always return the last value written. Note
that both reads and writes can have side effects. If you see a
"!", be sure to read the bit description and programming notes.
RSV
The bit field is reserved for internal test/debug or future
expansion. This bit field should be written to 0 for normal system
operation. This bit field always returns 0 when read.
RSV!
The bit field is reserved for compatibility purposes. For example,
the bit field might be ignored during writes to maintain software
compatibility. If you see a "!", be sure to read the bit description
and programming notes.
Reference Notation
MMCR offset 00h
ÉlanSC520 microcontroller Memory-Mapped Configuration
Region (MMCR) offset register 00h
PCI index 00h
PCI indexed register 00h
Port 00h
Direct-mapped I/O register 00h
RTC index 00h
RTC and configuration RAM indexed register 00h
Pin Naming
{}
Pin function during hardware reset
[]
Alternative pin function selected by software configuration
ROMCS1
An overbar indicates that the signal assumes the logic Low state
when asserted.
GPRESET
The absence of an overbar indicates that the signal assumes
the logic High state when asserted.
ads, hold
A signal name in all lowercase indicates an internal signal.
ROMCS2–ROMCS1
Two ROM chip select signals
ROMCSx
Any of the two ROM chip select signals
Numbers
xxiv
b
Binary number
d
Decimal number
Decimal is the default radix
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
はじめに
Table 0-1
表記規則一覧(続き)
Notation
Meaning
h
Hexadecimal number
x in register address
Any of several legal values; e.g., using 0xF8h for the UART
Transmit Holding register is either 02F8h or 03F8h, depending
on the UART
[X–Y]
The bit field that consists of bits X through Y.
Example: The SB_ADDR[23–16] bit field.
33 MHz
Refers to the system clock frequency being used. This can be
either 33.000 MHz or 33.333 MHz. See the Élan™SC520
Microcontroller Userís Manual for more information about clock
generation.
General
field
Bit field in a register (one or more consecutive and related bits)
can
It is possible to perform an action if properly configured
will
A certain action is going to occur
Set the ENB bit.
Write the ENB bit to 1.
Note: The bit referred to is either in the register being described,
or the register is referred to explicitly in the surrounding text.
Clear the ENB bit.
Change the ENB bit to 0. Usually a bit is cleared by writing a 0
to it; however, some bits are cleared by writing a 1.
Reset the ENB bit.
Context-sensitive. Can refer either to resetting the bit to its
default value or to clearing the bit.
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
xxv
はじめに
xxvi
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
第1章
アーキテクチャの概要
1.1
Élan™ SC520 マイクロコントローラ
Élan™ SC520 マイクロコントローラは、広範なマイコン組込み機器の市場に対して必要な機能を
全て提供するよう設計されたマイクロコントローラです。ÉlanSC520 マイクロコントローラは、低消
費電力32ビットAm5x86 CPUと、
リアル・タイムおよびPC/AT互換の両方の組込機器に最適なペリフェ
ラル群を集積しています。
PCIホスト・ブリッジ、SDRAMコントローラ、強化されたPC/AT互換のペリフェラルおよび先進的なデ
バッグ機能は、今日のPCが持つ新しいデバイスだけでなく、過去のデバイスをもシステム設計者に提
供します。
ÉlanSC520 マイクロコントローラは中・高性能のテレコム、データ通信および情報端末マーケットに
おけるアプリケーション用に設計されています。特にÉlanSC520 マイクロコントローラは、高いス
ループットと遅延の少なさが要求されるアプリケーションに適しています。
1.1.1
特徴
■ FPU と16K バイトライト・バック・キャッシュを持つ業界標準の Am5x86® CPU
– 100MHz または 133MHz の動作周波数
– 低消費電力動作(コア Vcc = 2.5V )
– 5V 耐圧 I/O( 3.3V 出力レベル)
■ E86™ ファミリの x86 組込プロセッサ
– 非常に多くの開発ツールを持ち、
ソフトウェア互換のマイクロプロセッサおよびマイクロコン
トローラ・ファミリの1つ
■ 内蔵PCIホスト・ブリッジ・コントローラにより、標準ペリフェラルやソフトウエアを利用可能
–
–
–
–
33MHz、32ビットPCIバス・リビジョン 2.2 準拠
最高 132Mバイト/秒の高スループットな転送速度
5つまでの外部PCIマスタをサポート可能
高スループットなアプリケーション向けに、
ライト・ポスティングおよびリード・バッファリングを
内蔵
■ シンクロナスDRAM( SDRAM )コントローラ
–
–
–
–
16、64、128、および 256MビットSDRAMをサポート
合計4 バンク256Mバイトをサポート
システムの信頼性を高めるエラー・コレクション・コード
リード/ライトの性能を高めるバッファ
■ AMDebug™ technology が組込システムの設計者が必要とする低価格で先進的な機能を持つ
デバッグのソリューションを提供
– Am5x86の内蔵キャッシュでの実行をトレース可能
– 低コストでのデバッグには強化されたJTAGポートを利用可能
– イン・サーキット・エミュレーション中の高速データ転送のためのパラレル・デバッグ・ポート
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
1-1
アーキテクチャの概要
■ 8ビット、16ビットデバイスを接続するための、
タイミングをプログラム可能な汎用(GP)バスによ
り、低コストで高い性能を提供
■ 8、16、32ビットデバイスをサポートする ROM/Flash コントローラ
■ 強化された PC/AT 互換ペリフェラルにより改善された性能を提供
– 強化されたプログラマブル・インタラプト・コントローラ(PIC)による、22の割込み優先レベル
(最大15の外部ソース)と柔軟なルーティング
– 強化されたDMAコントローラによるダブル・バッファ・キャッシング、拡張されたアドレスと転
送回数および柔軟なチャネルのルーティング
– 2つの 16550互換UARTはオプションのDMAインタフェースを持ち、最高1.15Mbit/s のボー
レートで動作
■ 標準の PC/AT 互換ペリフェラル
– プログラマブル・インターバル・タイマ( PIT )
– バッテリ・バックアップ機能および114バイトのRAMを持つリアル・タイム・クロック( RTC )
■ その他の内蔵ペリフェラル
–
–
–
–
–
柔軟なカスケードで32ビット動作が可能な3つの汎用16ビット・タイマ
ソフトウエアの暴走を防ぐウオッチドッグ・タイマ
ソフトウエア・タイマ
全2重、半2重動作可能なシンクロナス・シリアル・インタフェース( SSI)
柔軟なアドレス・デコーディングによりプログラマブル・メモリ、I/O マッピングやシステム・ア
ドレス設定が可能
■ 32本のプログラマブル I/O( PIO)ピン
VxWorksおよびWindows® CEなどのオペレーティング・システムのサポー
■ pSOS、QNX、RTXC、
ト
■ 業界標準のBIOSのサポート
1.2
ブロック図
Figure 1-1 は、Élan™SC520 マイクロコントローラが内蔵するAm5x86 CPU、バス構造、ペリフェ
ラルの図です。3つの基本的なインタフェースがあります。
■ 高性能 66MHz 32ビットシンクロナスDRAM( SDRAM)インタフェースは、最大256M バイトの
メモリ空間をAm5x86 CPUのコード実行、外部PCIバス・マスタやGP バスDMAイニシエータ用
のバッファ領域に提供します。高性能なROM/Flashインタフェースも、
SDRAMインタフェースに
接続可能です。
■ 業界標準の 32ビットPCI バスは、ローカル・エリア・ネットワーク・コントローラ、同期通信コント
ローラ、
およびディスク・ストレージ・コントローラなどの高速なI/Oペリフェラルをサポートします。
■ シンプルな構造を持つ 8 / 1 6 ビットの 3 3 M H z 汎用バス( G P バス)は、低速なペリフェラルや
NVRAM、SRAM、ROM、またはカスタムASICなどをサポートします。ダイナミック・バス・サイジ
ングをサポートし、多くの一般的なISAデバイスと互換性を持ちます。
上記の3つのバスは、ÉlanSC520 マイクロコントローラの全てのオペレーティング・モードで利用す
ることができます。
1-2
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
アーキテクチャの概要
これらの3つの基本的なインタフェースに加え、
ÉlanSC520 マイクロコントローラは発振回路とフェー
ズ・ロックド・ループ(PLL)を内蔵しており、わずか2個の水晶発振子をつなぐだけでほとんど全ての
システム・クロックを発生することができます。
ÉlanSC520 マイクロコントローラが様々なシステムにどのように利用することができるかを示す図
を「 1.4 アプリケーション例」に掲載します。
Figure 1-1
Élan™SC520 マイクロコントローラのブロック図
Address
Decode
Unit
Address
GP Bus
Controller
GP Bus
Clock
Generation
External GP Bus
Programmable
Interrupt Controller
Programmable
Interval Timer
CPU Bus Interface
CPU Bus
Arbiter
Read/Write Buffers
ROM/Flash
Controller
GP-DMA
Controller
GP-DMA
Request and
Grant
CPU
Request
CPU Bus Interface
CPU Control/Status Bus
Control/Status
AMDebug™
Technology and
JTAG
SDRAM
Controller
CPU Data Bus
Data
Am5x86 CPU
Bus Interface Unit
CPU Address Bus
Watchdog Timer
FIFOs and FIFO
Control
Real-Time Clock
CMOS RAM
PCI
Master
PCI Bus
Arbiter
PCI
Target
General-Purpose
Timers
Software
Timer
16550 UART
16550 UART
PCI Bus
PCI Requests and Grants
Synchronous Serial
Interface
Programmable I/O
Controls
Élan™SC520 Microcontroller
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
PC/AT Compatibility
Logic
1-3
アーキテクチャの概要
1.3
アーキテクチャ概要
Élan™SC520 マイクロコントローラは以下のように設計されています。
■ 高性能・低コストのバランスがとれたインタフェース
■ 高性能な業界標準の 32ビットPCIバス
■ 多くの 8/16ビットI/Oペリフェラルを直結でき、
タイミングもプログラム可能
■ 32ビットシステムとしては低コストに抑えながら、幅広い性能レンジに対応することができる、
コ
スト効率の良いシステムアーキテクチャ
■ 既存のハードウエアやソフトウエア技術を広く利用可能
1.3.1
業界標準x86アーキテクチャ(第7章)
ÉlanSC520 マイクロコントローラの持つAm5x86 CPUは、業界標準の x86 マイクロプロセッサの
命令セットを持ち、16ビットAm186™ マイクロコントローラからハイ・エンドのAMD Athlon™ プロ
セッサまで幅広い互換性を持っています。x86アーキテクチャ・ファミリ用に書かれたソフトウエアは、
ÉlanSC520 マイクロコントローラと互換性があります。
その他のAm5x86 CPUの利点は
■ 開発期間を短縮でき、
ソフトウエアの進化にも容易に対応可能
■ x86アーキテクチャをサポートする多くのオペレーティング・システムを利用可能(市販のリアル・
タイム・オペレーティング・システム(RTOS)においても、
ポピュラーなマイクロソフトのすべての
オペレーティング・システムにおいても、ÉlanSC520 マイクロコントローラは一貫した互換性を
発揮)
■ 複数のメーカが提供する実績のある開発ツール
■ 内蔵の浮動小数点演算ユニット( FPU)
( ANSI/IEEE 754 規格に準拠)
■ ライト・バックあるいはライト・スルーどちらにも設定可能な16Kバイトのユニファイド・キャッシュ
Am5x86 CPUに関しては第7章で説明します。
1.3.2
先進的なデバッグ環境を提供する AMDebug™ Technology(第26章)
ÉlanSC520 マイクロコントローラは、低コストでありながら全機能をサポートするイン・サーキット・
エミュレーション機能を提供します。このイン・サーキット・エミュレーションのサポートは、ユーザが
設計サイクルの早い時期においてソフトウエアのテストやデバッグを行うことができるよう、AMDが
独自に開発したものです。この機能を使って、
ソフトウエアを詳細にわたり実際の実行速度で試験す
Am5x86 CPUのキャッシュ内での実行をもトレースすることができます。
ることができます。さたに、
AMDebug サポートは、ÉlanSC520 マイクロコントローラに対する2種類の通信方法を持っており、
FusionE86 プログラムに参加するサード・パーティ・ベンダーの強力なツール群は、その両方に対応
しています。
■ シリアル AMDebug technology は、改良されたJTAGをベースとするシリアル通信を利用しま
す。安価な12ピンのコネクタをボード上に配置するだけで利用可能です。
■ パラレル AMDebug technology は、ÉlanSC520 マイクロコントローラとホストとのコマンド
やデータの交換にパラレル・デバッグ・ポートを使用します。この場合、
通常より多くのピン数が必
要となるため、特別なボンド・アウト・パッケージ版のÉlanSC520 マイクロコントローラを、
イン・
サーキット・エミュレータのメーカなどのツール開発者にのみ供給します。パラレルのAMDebug
ポートにより、
データ交換の速度は飛躍的に向上します。
1-4
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
アーキテクチャの概要
1.3.3
業界標準PCIバス・インタフェース(第9章)
ÉlanSC520 マイクロコントローラは、33MHz 32ビットのPCI Local Bus Specification Revision
2.2 に準拠し、高スループットな機器に適したライト・ポスティングおよびリード・バッファリング機能を
持つホスト・ブリッジ・インタフェースを提供します。PCIホスト・ブリッジにより、標準的なペリフェラル
やソフトウエアを利用することができ、さらに次の特徴を持っています。
■ 高いスループット(最大132M バイト/秒の転送速度)
■ 深いバッファリング、
およびPCIバス・マスタからSDRAMへのバースト転送
■ 柔軟なアービトレーション・メカニズム
■ 最大5つの外部PCIマスタをサポート
1.3.4
高性能SDRAMコントローラ(第10章)
Élan SC520 マイクロコントローラは標準的なシンクロナスDRAM( SDRAM )をサポートする
SDRAMコントローラを内蔵しています。
■ SDRAMコントローラは、
既成のメモリ製品を使用できるよう、SDRAMチップだけでなくほとんど
の標準的なDIMMモジュールを接続できます。
■ SDRAMコントローラはタイミングをプログラムすることができ、必要な外部クロックを発生する
こともできます。
■ 最大256M バイトの容量で、32ビットのバンクを4つまでサポートします。
■ SDRAMコントローラは信頼性向上に重要なエラー・コレクション・コード(ECC)機能を持ってい
ます。メモリの信頼性を向上させることにより、ÉlanSC520 マイクロコントローラを通信機器の
ような高い信頼性が要求される分野に使用することができます。
■ SDRAMコントローラは、
読出し、
書込みの性能を向上する、
ライト・バッファとリード・アヘッド・バッ
ファのサブシステムを持っています。
■ SDRAMリフレッシュ・オプションにより、
リセットの間SDRAMの内容を保持することができます。
1.3.5
ROM/Flash コントローラ(第12章)
ÉlanSC520 マイクロコントローラは、ROMやFlashデバイスを直結できるROMコントローラを内蔵
しています。ÉlanSC520 マイクロコントローラはこれらのデバイスに対し、2種類のインタフェース
を提供します。
1つはGPバスを使う単純な方法で、8または16ビットのデバイスを接続できます。もう
1つはSDRAMメモリ・データ・バスに接続する方法で、高性能な8、16または32ビットのデバイスをつ
なぐことができます。
ROM/Flash コントローラは、
■ 3つのROM/Flash チップ・セレクト信号により、追加の回路なしでスタティックメモリを直結する
ことができ、
システム・コストを抑えることができます。
■ ROMまたはFlashから直接実行しなければならないアプリケーションのために、execute-inplace (XIP) オペレーティング・システムをサポートします。
■ 高性能ページ・モード・デバイスをサポートします
1.3.6
柔軟なアドレス・マッピング(第4章)
Am5x86 CPUコアのメモリ・マネージメント・ユニット( MMU )に加えて、ÉlanSC520 マイクロコン
トローラは、
メモリ(SDRAM, ROM, Flash, SRAM, その他) やペリフェラルを、Am5x86 CPUの2つ
のアドレス空間(メモリ・アドレスとI/Oアドレス)に柔軟に配置する16個のProgrammable Address
Region (PAR) レジスタを持っています。PARのハードウエアにより、両方のアドレス空間を柔軟に
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
1-5
アーキテクチャの概要
設定し、
メモリや外部ペリフェラルを必要に応じて配置することができます。内部のメモリ空間にマッ
プされたコンフィギュレーション・レジスタの領域も、
システムの要求に合わせてマップし直すことが
できます。PARレジスタはまた、
メモリに対するキャッシュ可否、書込保護、実行可否などの重要な属
性を設定することもできます。
1.3.7
汎用( GP )バス・インタフェース(第13章)
ÉlanSC520 マイクロコントローラは、タイミングをプログラムでき、8/16ビットのペリフェラル・デバ
イスやメモリを接続することができるシンプルな構造を持つ汎用(GP)バス・インタフェースを持って
います。GPバスは33MHzで動作し、
インタフェースのコストを低く抑えながら良い性能を得ることが
できます。
Élan SC520 マイクロコントローラは、外部GP バス・デバイス(既成の I/O ペリフェラル、カスタム
ASIC、SRAMやNVRAM)用に8つのチップ・セレクトを持っています。GPバス・インタフェースはプロ
グラムによりタイミングを調節することや、動的にバス幅を変えたりサイクルを延したりすることがで
き、
UART、10MビットLANコントローラやシリアル通信コントローラなど、幅広い標準ペリフェラルを
接続することができます。最大4つのDMAチャネルにより、GPバス上のデバイスとシステムSDRAM
の間でフライ・バイDMA転送を行うことができます。
GPバスはまた、
「1.3.9 内蔵ペリフェラル」で説明されているようにDAMコントローラ、
プログラマブ
ル・インタラプト・コントローラ、
タイマおよびUARTなどの内部のペリフェラルにも使用されます。こ
れらの内蔵ペリフェラルは、GPバスの最高速度で動作するよう設計されています。内蔵ペリフェラル
はまた、PC/AT互換で動作するよう設定することも可能ですが一般的にはその設定に制約されるこ
とはありません。
ÉlanSC520 マイクロコントローラはデバッグの目的のために内部のペリフェラルヘのアクセスを外
部GP バスから見ることができます。
1.3.8
クロック生成(第5章)
ÉlanSC520 マイクロコントローラはCPUコア・クロック・スピードを、アプリケーションが必要とする
消費電力/性能比に応じて、100MHzまたは133MHzに変更することができます。
全てのÉlanSC520 マイクロコントローラが、全てのクロック・レートをサポートしているわけではあ
りません。最高のクロック・レートはパッケージにパーツ番号とともに記された値です。クロック回路
はそのデバイスの最高クロック・レート以上に設定することも可能です。しかしながら、
ÉlanSC520 マ
イクロコントローラをその最高クロック・レート以上に設定した場合、その動作は保証の限りではなく、
場合によってはデバイスに物理的なダメージを与えることもあります。
ÉlanSC520 マイクロコントローラは、発振回路とPLL、さらにPLLループ・フィルター素子を内蔵して
います。ÉlanSC520 マイクロコントローラは、32.768kHz および 33MHzの2つ標準的な水晶発振
子を必要とします。ÉlanSC520 マイクロコントローラ内部で必要なクロックは全て、
これらの水晶発
振子から生成します。ÉlanSC520 マイクロコントローラまた、SDRAMやPCI バスへのクロックも供
給しますが、
システムによっては外部バッファで強化する必要があります。
注意:ÉlanSC520 マイクロコントローラは33.000MHzまたは33.333MHzの水晶発振子で動作します。本書では、
どちらの水晶発振子を用いた場合であっても「33MHz」と表現します。
1-6
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
アーキテクチャの概要
1.3.9
内蔵ペリフェラル
ÉlanSC520 マイクロコントローラは完全なペリフェラル・セットを持つ、高度に集積されたマイクロ
コントローラです。PC/AT互換ペリフェラルのスーパー・セットを持ち、
さらに、多くのアプリケーショ
ンに対応可能なメモリ・マップド・ペリフェラルを持っています。
(第15章参照)は、22の優先順位を持ち、最大
■ プログラマブル・インタラプト・コントローラ( PIC)
15の外部ソースを扱うことができます。PICはPC/AT互換モードで動作させることもできますが、
拡張機能を使うと、
より多くのソースをサポートし、
どの割込みでも全てのPIC入力に割当てるこ
とができるなど、非常に柔軟性に富んだ制御が可能です。割込み要求は、マスク可能またはマス
ク不可( NMI )の割込みに割当てることができます。
■ 内蔵DMAコントローラ(第14章参照)は、SDRAMとGPバス・ペリフェラル間のデータ転送に使
効率の良い転送を
用します。GP-DMAコントローラは、1サイクル(フライ・バイ)モードで動作し、
行います。GP-DMAコントローラはPC/AT互換モードで動作させることもできますが、
以下のよ
うな拡張機能も持っています。
– ダブル・バッファ・チェイニング・モードは、より効果的なソフトウエア・インタフェースを提供し
ます。
– 拡張されたアドレスおよび転送カウンタ
– 柔軟なDMAチャネルのルーティング
■ 3つの汎用16ビット・タイマ(第17章参照)は、
カスケードすることにより32ビット動作をすること
もできます。これらのタイマは33MHzクロックの場合、4クロックの単位でカウントするように設
定することができます。タイマ入出力ピンによって、外部ハードウエアにインタフェースすること
ができます。
■ 標準的なPC/AT互換のプログラマブル・インターバル・タイマ(PIT)
(第16章参照)は、3つの16
ビット・タイマで構成されています。
■ ソフトウエア・タイマ(第18章参照)はシステムの時刻の管理を簡単にします。
1μSの単位でカウ
ントし、性能のモニタリングに使用することなどができます。
■ ウオッチドッグ・タイマ(第19章参照)はソフトウエアの暴走を防ぎます。
■ リアル・タイム・クロック( RTC )
(第20 章参照)は、バッテリ・バックアップ機能を持っています。
RTCはまた、114バイトのバッテリ・バックアップ付きメモリを持ち、設定パラメータなどを保存し
ておくことができます。
■ 2つの16550互換UART(第21章参照)は、8つのピンによる完全なハンド・シェークを行うことが
できます。これらの改良された UARTは、最大1.152Mビット/秒の転送レートまでサポートしま
す。また、GPバスDMAコントローラを用いて、
シリアル・ポートとSDRAMの間でDMA転送を行
うことも可能です。
■ 同期シリアル・インタフェース(SSI)
(第22章参照)は、SCP、SPIおよびMicrowireスレーブ・デバ
イスと互換性を持っています。SSIインタフェースは4線または3線のインタフェースで、全2重ま
たは半2重に設定することができます。
■ ÉlanSC520 マイクロコントローラは、32本のプログラマブルI/Oピン(第23章参照)を持ってい
ます。これらのピンは、他のペリフェラルやインタフェース機能と多重化されています。
■ ÉlanSC520 マイクロコントローラはさらに、a20ゲートおよびソフトCPUリセット(ポート 0060h,
0064h, 0092h )などのPC/AT互換機能も提供します。
1.3.10
JTAG バウンダリ・スキャン・テスト・インタフェース(第25章)
ÉlanSC520 マイクロコントローラはボード・テスト用に、IEEE Std 1149.1-1990 に準拠するJTAG
テスト・ポートを持っています。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
1-7
アーキテクチャの概要
1.3.11
システム・テスティングとデバッグ機能(第24章)
デバッグ作業を容易にするために、ÉlanSC520 マイクロコントローラは以下のような様々な内部動
作を監視する機能があります。
3ピンのイ
■ システム・テスト・モードまたはライト・バッファ・テスト・モードに使用することができる、
ンタフェースを持っています。これにより、内部バス上のSDRAMサイクルのイニシエータを特定
したり、SDRAMデータがバス上で有効になる時期を知ることができます。加えて、内蔵ペリフェ
ラルのアクセスを監視することもできます。
ノンコン
■ PCI バス・マスタやGP バスDMAイニシエータもまたSDRAMをアクセスしている場合、
カレント・アービトレーション・モードがデバッグの難易度を下げます。
■ CPUキャッシュ・コントロールおよびダイナミック・クロック・スピード・コントロールをプログラム
によって行うことができます。
■ SDRAMサイクルのトレースを簡単にするために、SDRAMコントローラのライト・ポスティングお
よびリード・プリフェッチをディセーブルすることができます。
■ メモリ書込保護違反や実行制限違反を知らせる機能があります。
1.4
アプリケーション例
以下のページに紹介する図は、
データ通信、情報端末、遠距離通信など、ÉlanSC520 マイクロコント
ローラの応用例を示します。
1.4.1
スマート・レジデント・ゲートウエイ
Figure 1-2 はÉlanSC520 マイクロコントローラを、家庭内やSOHOなどのLAN(ローカル・エリア・
スマート・
ネットワーク)をインターネットなどのWAN(ワイド・エリア・ネットワーク)につなぐルータ、
レジデント・ゲートウエイ
(SRG)に応用した例です。SRGはインターネットからの不正なアクセスを防
ぐファイア・ウオール機能を提供します。インターネット・アクセスの共通のメディアは、LAN上のすべ
てのユーザが共有しています。
WAN 側、LAN 側ともに様々な接続が可能です。例えば、WAN 側はV.90 モデム、ケーブル・モデム、
ISDN、ADSLあるいはイーサネットである場合があります。
LAN側の接続には次のようなものが考えられます。
■ ホームPNA––Home Phoneline Networking Alliance、幅広く提携が進んでいる家庭内ネット
ワークの規格。
■ Bluetooth––コンピュータと電話業界が提唱する規格。低出力の無線によって、
コンピュータ、情
報端末、電話機器等を相互に接続。
■ Home RF––Bluetoothと競合する規格。やはり無線によってコンピュータ等を接続。
■ イーサネット––有線によるローカル・エリア・ネットワークの規格。
■ Power Line––家屋のAC電源の配線を利用するLAN。デジタル情報を高周波のキャリアに載せ、
AC電源に送信。
1.4.2
シン・クライアント
Figure 1-3 はÉlanSC520 マイクロコントローラを、
リモート・コンピューティングに従来利用されて
来た端末の新しい形態である "thin client" に応用した例です。アプリケーション・プログラムは遠方
にあるサーバ上で走り、
データは集中管理されたサーバのディスクに保存されます。効率的な通信プ
ロトコルによって、キーボードやマウスのコマンド・アップストリームや、
ビデオBIOSコールのダウン
ストリームを送ります。シン・クライアントは画面表示のためにグラフィックのレンダリングを行います。
1-8
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
アーキテクチャの概要
シン・クライアントは通常イーサネットLANに接続されますが、
場合によってはモデムなどによりWAN
を通して接続されることもあります。通信プロトコルは最低24Kbaudの速度が必要です。アプリケー
ションがグラフィックを多用する場合はさらに速くなければなりません。
1.4.3
デジタル・セット・トップ・ボックス
Figure 1-4 はÉlanSC520 マイクロコントローラを、デジタル・セット・トップ・ボックス( DSTB )に応
用した例です。テレビをディスプレイに使用する一般向けの放送受信機器です。DSTBが共通して持
つ機能にインターネット・アクセス、電子メール、
ストリーミング・オーディオやビデオ・コンテンツへの
アクセスがあります。
最小限のシステムに必要な機能は、
モデム、ADSLまたはケーブル・モデムによるWAN接続、
テレビへ
の出力、
リモコンや無線キーボードのための赤外線(IR)通信です。高機能のシステムでは、DVDドラ
イブ、
デジタル・ビデオ再生のためのMPEG2デコーダなどを持ちます。ビデオ・データを保存してお
くためのハード・ディスクを持つ場合もあるでしょう。他のオプションとしては、キーボード、マウス、
プ
リンタやビデオ・カメラなどがあります。
1.4.4
電話回線コンセントレータ
Figure 1-5 はÉlanSC520 マイクロコントローラを、電話回線コンセントレータに応用した例です。
近隣に設置された電話回線コンセントレータは、
多くのアナログ電話回線をデジタル技術で多重化し、
高速の通信線で交換機に接続します。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
1-9
アーキテクチャの概要
Control
AD31–AD0
RJ-45
or
WAN Interface
ADSL, Cable Modem
or V.90
RJ-11
RJ-45
or
LAN Interface
Am79C978
PCnet™-Home
Élan™SC520 マイクロコントローラをスマート・レジデント・ゲートウエイ(SRG)に応用した例
RJ-11
Figure 1-2
33-MHz Crystal
Control
1-10
GP Bus
Élan™SC520 Microcontroller
GPD15–GPD0
Control
32-kHz Crystal
MD31–MD0
GPA25–GPA0
SDRAM Bus
SDRAM
MA12–MA0
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
Flash or ROM
PCI Bus
Control
SDRAM Bus
MD31–MD0
32-kHz Crystal
33-MHz Crystal
Élan™SC520 Microcontroller
GP Bus
MA12–MA0
GPA25 –GPA0
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
Flash
Memory
Super I/O
Control
AD31–AD0
LAN Interface
Am79C973/Am79C975
PCnet™-Fast III
RJ-45
Serial
Parallel
PS/2 Mouse
PS/2 Keyboard
Controller
VGA/LCD
CRT/LCD
Figure 1-3
SDRAM
アーキテクチャの概要
Élan™SC520 マイクロコントローラをシン・クライアントに応用した例
Control
PCI Bus
GPD15–GPD0
Control
1-11
1-12
EIDE
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
GPD15–GPD0
Élan™SC520 Microcontroller
GP Bus
GPA25–GPA0
Control
Flash
Memory
MA12–MA0
GPA1–GPA0
Control
Control
DVD o r HDD
MD31–MD0
SDRAM Bus
Control
Super I/O
Control
AD31–AD0
WAN Interface
ADSL, Cable Modem
or V.90
RJ-11
VGA
IR
Parallel
PS/2 Mouse
PS/2 Keyboard
NTSC/PAL
Figure 1-4
32-kHz Crystal
33-MHz Crystal
SDRAM
アーキテクチャの概要
Élan™SC520 マイクロコントローラをデジタル・セット・トップ・ボックスに応用した例
PCI Bus
GPD15–GPD0
SDRAM Bus
MA12–MA0
32-kHz Crystal
33-MHz Crystal
Élan™SC520 Microcontroller
Control
GP Bus
MD31–MD0
GPA25–GPA0
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
Flash
Memory
Control
SSI
T1/E1
Interface
HDLC
T1 or E1
Quad ISLAC
Am79Q2241
Quad ISLAC
Am79Q2241
ISLIC
Am79R241
ISLIC
Am79R241
ISLIC
Am79R241
ISLIC
Am79R241
(6x to 10X)
ISLIC
Am79R241
ISLIC
Am79R241
ISLIC
Am79R241
Analog
Phone
Lines
Figure 1-5
SDRAM
ISLIC
Am79R241
アーキテクチャの概要
Élan™SC520 マイクロコントローラを電話回線コンセントレータに応用した例
PCM Highway
GPD15–GPD0
Control
1-13
アーキテクチャの概要
1-14
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
第2章
ピンの説明
2.1
概要
ÉlanSC520 マイクロコントローラは258本の信号、電源およびグランドピンを持っています。いくつ
かのピンには、複数の信号が多重化されています。
信号は下記の機能グループごとに、
アルファベット順にまとめてあります。
■ シンクロナスDRAMコントローラ
■ ROM/Flash コントローラ
■ PCIバス
■ 汎用( GP )バス
■ シリアル・ポート
■ タイマ
■ クロックとリセット
■ チップ・セレクト
■ プログラマブル I/O( PIO )
■ JTAGバウンダリ・スキャン・テスト・インタフェース
■ AMDebug インタフェース
■ システム・テスト
■ コンフィギュレーション
■ 電源
2.2
ロジック図
Figure 2-1 は、各ピンを機能またはインタフェースごとにグループ化したデバイスのロジック図です。
Figure 2-2 は、各ピンをデフォルトの機能でグループ化したデバイスのロジック図です。Figure 2-2
はまた、ÉlanSC520 マイクロコントローラの多重化されたピンも表しています。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
2-1
ピンの説明
Figure 2-1
インタフェースごとにグループ化したロジック図1
GPA25–GPA0
GP Bus
GPD15–GPD0
PCI Bus
AD31–AD0
GPRESET
CBE3–CBE0
GPIORD
PAR
GPIOWR
SERR
GPMEMRD
PERR
GPMEMWR
FRAME
GPALE
TRDY
GPBHE
IRDY
GPRDY
STOP
GPAEN
DEVSEL
CLKPCIOUT
CLKPCIIN
RST
INTA–INTD
REQ4–REQ0
GNT4–GNT0
GPTC
GPDRQ3–GPDRQ0
GPDACK3–GPDACK0
GPIRQ10–GPIRQ0
GPDBUFOE
GPIOCS16
GPMEMCS16
SDRAM
MA12–MA0
BA1–BA0
MD31–MD0
SCS3–SCS0
CLKMEMOUT
CLKMEMIN
SRASA–SRASB
SCASA–SCASB
SWEA–SWEB
GPCS7–GPCS0
GPA25–GPA0*
ROM/Flash
GPD15–GPD0*
MD31–MD0*
BOOTCS
ROMCS2–ROMCS1
ROMRD
FLASHWR
ROMBUFOE
SDQM3–SDQM0
MECC6–MECC0
TMRIN1–TMRIN0
Timers
TMROUT1–TMROUT0
Serial Ports:
UART 1
UART 2
SSI
SOUT2–SOUT1
SIN2–SIN1
PITOUT2
RTS2–RTS1
JTAG_TRST
CTS2–CTS1
JTAG_TCK
DSR2–DSR1
JTAG_TDI
DTR2–DTR1
JTAG_TDO
DCD2–DCD1
JTAG_TMS
RIN2–RIN1
SSI_CLK
SSI_DO
SSI_DI
Programmable
Input/Output
PITGATE2
PIO31–PIO0
CMDACK
JTAG
AMDebug
BR/TC
STOP/TX
TRIG/TRACE
WBMSTR2–WBMSTR0
System Test
CF_DRAM
Clocks and Reset
32KXTAL2–32KXTAL1
DATASTRB
33MXTAL2–33MXTAL1
CF_ROM_GPCS
LF_PLL1
DEBUG_ENTER
CLKTIMER
CLKTEST
PWRGOOD
PRGRESET
BBATSEN
INST_TRCE
AMDEBUG_DIS
CFG3–CFG0
RSTLD7–RSTLD0
注意:
1. アスタリスク(*)が付いたピンは複数個所に書かれていますが、各インタフェースで使用される信号を全て明示するためです。
2-2
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
Configuration
ピンの説明
Figure 2-2
各ピンをデフォルトの機能でグループ化したロジック図1
PCI Bus
AD31–AD0
CBE3–CBE0
PAR
SERR
PERR
FRAME
TRDY
IRDY
STOP
DEVSEL
CLKPCIOUT
CLKPCIIN
RST
INTA–INTD
REQ4–REQ0
GNT4–GNT0
GPA25 {DEBUG_ENTER}
GPA24 {INST_TRCE}
GP Bus
GPA23 {AMDEBUG_DIS}
GPA22–GPA15 {RSTLD7–RSTLD0}
GPA13–GPA0
GPD15–GPD0
GPRESET
GPIORD
GPIOWR
GPMEMRD
GPMEMWR
PIO0 [GPALE]
PIO1 [GPBHE]
PIO2 [GPRDY]
PIO3 [GPAEN]
PIO4 [GPTC]
PIO5–PIO8 [GPDRQ3–GPDRQ0]
PIO9–PIO12 [GPDACK3–GPDACK0]
MA12–MA0
SDRAM
BA1–BA0
MD31–MD0
SCS3–SCS0
CLKMEMOUT
PIO13–PIO23 [GPIRQ10–GPIRQ0]
PIO24 [GPDBUFOE]
PIO25 [GPIOCS16]
PIO26 [GPMEMCS16]
PIO27 [GPCS0]
CLKMEMIN
SRASA–SRASB
GPA25–GPA0*
SCASA–SCASB
GPD15–GPD0*
SWEA–SWEB
ROM/Flash
MD31–MD0*
SDQM3–SDQM0
BOOTCS
MECC6–MECC0
ROMCS2–ROMCS1 [GPCS2–GPCS1]
ROMRD
Serial Ports:
UART 1
UART 2
SSI
SOUT2–SOUT1
SIN2–SIN1
FLASHWR
ROMBUFOE
RTS2–RTS1
CTS1
DSR1
DTR2–DTR1
DCD1
TMRIN1–TMRIN0 [GPCS4–GPCS5]
Timers
TMROUT1–TMROUT0 [GPCS6–GPCS7]
PITGATE2 [GPCS3]
PITOUT2 {CFG3}
RIN1
PIO28 [CTS2]
PIO29 [DSR2]
JTAG_TRST
PIO30 [DCD2]
JTAG_TDI
PIO31 [RIN2]
JTAG_TDO
SSI_CLK
JTAG
JTAG_TCK
JTAG_TMS
SSI_DO
SSI_DI
CMDACK
AMDebug
BR/TC
Clocks and Reset
32KXTAL2–32KXTAL1
STOP/TX
32MXTAL2–32MXTAL1
TRIG/TRACE
LF_PLL1
CLKTIMER [CLKTEST]
PWRGOOD
PRGRESET
BBATSEN
CF_DRAM [WBMSTR2] {CFG2}
System Test
DATASTRB [WBMSTR1] {CFG1}
CF_ROM_GPCS [WBMSTR0] {CFG0}
注意:
1. ボールド表記で示されたピンは、デフォルトの機能です。[]内の信号は、多重化されたもう一つの機能を表しています。{}内の信号は、
ピンストラッ
プ・ピンを示します。アスタリスク(*)が付いたピンは複数個所に書かれていますが、各インタフェースで使用される信号を全て明示するためです。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
2-3
ピンの説明
2.3
信号の説明
Table 2-1 は、信号説明の表で使われている用語の説明です。[]内の信号は多重化されたもう一つ
の機能を表し、{}内の信号はリセット・コンフィギュレーション・ピン(ピンストラップ)を表しています。
ピン名の上に引かれた線は、負論理の信号であることを示します。
「ピン」という記述は、実際のパッ
ケージから出ている物理的なワイヤーを示し、
「信号」とはピンに流れる電気的な信号を意味します。
Table 2-2「信号の説明」は、ÉlanSC520 マイクロコントローラの信号の説明です。Table 2-2 内
の記述は、機能グループごとにまとめられています。Table 2-2 では各インタフェースで使用可能な
信号や、多重化されている信号を説明します。多重化された信号は、Figure 2-2 にも図示されてい
ます。
許容負荷、電源オン・リセット時のデフォルト機能と動作、
リセット・ステート、
ホールド・ステートや電圧
などの、
ピンのステートに関する詳細はÉlan SC520 Microcontroller Data Sheet( 注文番号
#22003)を参照してください。ピン番号、接続図やパッケージ寸法なども、データ・シートに記載され
ています。
Table 2-1
信号説明の定義
Term
Definition
General Terms
[]
Indicates the pin alternate function; a pin defaults to the signal named without the
brackets.
{}
Indicates the reset configuration pin (pinstrap).
pin
Refers to the physical wire.
signal
Refers to the electrical signal that flows across a pin.
SIGNAL
A line over a signal name indicates that the signal is active Low; a signal name
without a line is active High.
Signal Types
Analog
B
H
High
I
Input
LS
Programmable to hold last state of pin
O
Totem pole output
O/TS
OD
OD-O
Totem pole output/three-state output
Open-drain output
Open-drain output or totem pole output
Osc
Oscillator
PD
Internal pulldown resistor (~100–150 kΩ)
Power
Power pins
PU
Internal pullup resistor (~100–150 kΩ)
STI
Schmitt trigger input
STI-OD
TS
2-4
Analog voltage
Bidirectional
Schmitt trigger input or open-drain output
Three-state output
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
ピンの説明
Table 2-2
信号の説明
Signal
Multiplexed
Signal
Type
Description
Synchronous DRAM Controller
BA1–BA0
−
O
Bank Address is the SDRAM bank address bus.
CLKMEMIN
−
I
SDRAM Clock Input is the SDRAM clock return signal used to
minimize skew between the internal SDRAM clock and the
CLKMEMOUT signal provided to the SDRAM devices. This signal
compensates for buffer and load delays introduced by the board design.
CLKMEMOUT
−
O
SDRAM Clock Output is the 66-MHz clock that provides clock
signalling for the synchronous DRAM devices. This clock may require
an external Low skew buffer for system implementations that result in
heavy loading on the SDRAM clock signal.
MA12–MA0
−
O
SDRAM Address is the SDRAM multiplexed address bus.
MD31–MD0
−
B
SDRAM Data Bus inputs data during SDRAM read cycles and outputs
data during SDRAM write cycles.
MECC6–MECC0
−
B
Memory Error Correction Code contains the ECC checksum
(syndrome) bits used to validate and correct data errors.
SCASA–SCASB
−
O
Column Address Strobes are used in combination with the SRASAñ
SRASB and SWEA–SWEB to encode the SDRAM command type.
SCASA and SCASB are the same signal provided on two different pins
to reduce the total load connected to CAS.
Suggested system connection:
SCASA for SDRAM banks 0 and 1
SCASB for SDRAM banks 2 and 3
SCS3–SCS0
−
O
SDRAM Chip Selects are the SDRAM chip-select outputs. These
signals are asserted to select a bank of SDRAM devices. The chipselect signals enable the SDRAM devices to decode the commands
asserted via SRASA–SRASB, SCASA–SCASB, and SWEA–SWEB.
SDQM3–SDQM0
−
O
Data Input/Output Masks make SDRAM data output high-impedance
and blocks data input on SDRAM while active. Each of the four
SDQM3ñSDQM0 signals is associated with one byte of four
throughout the array. Each SDQMx signal provides an input mask
signal for write accesses and an output enable signal for read
accesses.
SRASA–SRASB
−
O
Row Address Strobes are used in combination with the SCASA–
SCASB and SWEA–SWEB to encode the SDRAM command type.
SRASA and SRASB are the same signal provided on two different pins
to reduce the total load connected to RAS.
Suggested system connection:
SRASA for SDRAM banks 0 and 1
SRASB for SDRAM banks 2 and 3
SWEA–SWEB
−
O
SDRAM Memory Write Enables are used in combination with the
SRASA–SRASB and SCASA–SCASB to encode the SDRAM
command type.
SWEA and SWEB are the same signal provided on two different pins
to reduce the total load connected to WE.
Suggested system connection:
SWEA for SDRAM banks 0 and 1
SWEB for SDRAM banks 2 and 3
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
2-5
ピンの説明
Table 2-2
Signal
信号の説明(続き)
Multiplexed
Signal
Type
Description
ROM/Flash Controller
BOOTCS
−
O
ROM/Flash Boot Chip Select is an active Low output that provides
the chip select for the startup ROM and/or the ROM/Flash array
(BIOS, HAL, O/S, etc.). The BOOTCS signal asserts for accesses
made to the 64-Kbyte segment that contains the Am5x86 CPU boot
vector: addresses 3FF0000h–3FFFFFFh. In addition to this linear
decode region, BOOTCS asserts in response to accesses to userprogrammable address regions.
FLASHWR
−
O
Flash Write indicates that the current cycle is a write of the selected
Flash device. When this signal is asserted, the selected Flash device
can latch data from the data bus.
GPA25–GPA0
−
O
General-Purpose Address Bus provides the address to the systemís
ROM/Flash devices. It is also the address bus for the GP bus devices.
Twenty-six address lines provide a maximum addressable space of 64
Mbytes for each ROM chip select.
GPD15–GPD0
−
B
General-Purpose Data Bus inputs data during memory and I/O read
cycles and outputs data during memory and I/O write cycles.
A reset configuration pin (CFG2) allows the GP bus to be used for the
boot chip-select ROM interface. Configuration registers are used to
select whether ROMCS2 and ROMCS1 use the GP bus data bus or
the MD data bus. The GP data bus supports 16-bit or 8-bit ROM
interfaces. Two data buses are selectable to facilitate the use of ROM
in a mixed voltage system.
MD31–MD0
−
B
Memory Data Bus inputs data during SDRAM read cycles and
outputs data during SDRAM write cycles. Configuration registers are
used to select whether ROMCS2 and ROMCS1 use the GP bus data
bus or the MD data bus. A reset configuration pin (CFG2) allows the
GP data bus to be used for BOOTCS. The memory data bus supports
an 8-, 16-, or 32-bit ROM interface.
ROMBUFOE
−
O
ROM Buffer Output Enable is an optional signal used to enable a
buffer to the ROM/Flash devices if they need to be isolated from the
ÉlanSC520 microcontroller, other GP bus devices, or SDRAM system
for voltage or loading considerations. This signal asserts for all
accesses through the ROM controller. The buffer direction is controlled
by the ROMRD or FLASHWR signal.
ROM/Flash Chip Selects are signals that can be programmed to be
asserted for accesses to user-programmable address regions.
ROMCS2
[GPCS2]
O
ROMCS1
[GPCS1]
O
ROMRD
−
O
ROM/Flash Read indicates that the current cycle is a read of the
selected ROM/Flash device. When this signal is asserted, the selected
ROM device can drive data onto the data bus.
Peripheral Component Interconnect (PCI) Bus
AD31–AD0
−
B
PCI Address Data Bus is the PCI time-multiplexed address/data bus.
CBE3–CBE0
−
B
Command or Byte-Enable Bus functions 1) as a time-multiplexed
bus command that defines the type of transaction on the AD bus,
or 2) as byte enables:
CBE0 for AD7–AD0
CBE1 for AD15–AD8
CBE2 for AD23–AD16
CBE3 for AD31–AD24
CLKPCIIN
ó
I
PCI Bus Clock Input is the 33-MHz PCI bus clock. This pin can be
connected to the CLKPCIOUT pin for systems where the ÉlanSC520
microcontroller is the source of the PCI bus clock.
2-6
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
ピンの説明
Table 2-2
信号の説明(続き)
Multiplexed
Signal
Type
CLKPCIOUT
−
O
PCI Bus Clock Output is a 33-MHz clock output for the PCI bus
devices. This signal is derived from the 33MXTAL2–33MXTAL1
interface.
DEVSEL
−
B
Device Select is asserted by the target when it has decoded its
address as the target of the current transaction.
FRAME
−
B
Frame is driven by the transaction initiator to indicate the start and
duration of the transaction.
GNT4–GNT0
−
O
Bus Grants are asserted by the ÉlanSC520 microcontroller to grant
access to the bus.
INTA–INTD
−
I
Interrupt Requests are asserted to request an interrupt. These four
interrupts are the same type of interrupt as the GPIRQ10–GPIRQ0
signals, and they go to the same interrupt controller. They are named
INTx to match the common PCI interrupt naming convention.
Configuration registers allow inversion of these interrupt requests to
recognize active low interrupt requests. These interrupt requests can
be routed to generate NMI.
IRDY
−
B
Initiator Ready is asserted by the current bus master to indicate that
data is ready on the bus (write) or that the master is ready to accept
data (read).
PAR
−
B
PCI Parity is driven by the initiator or target to indicate parity on the
AD31–AD0 and CBE3–CBE0 buses.
PERR
−
B
Parity Error is asserted to indicate a PCI bus data parity error in the
previous clock cycle.
REQ4–REQ0
−
I
Bus Requests are asserted by the master to request access to the
bus.
RST
−
O
Reset is asserted to reset the PCI devices.
SERR
−
I
System Error is used for reporting address parity errors or any other
system error where the result is catastrophic.
STOP
−
B
Stop is asserted by the target to request that the current bus
transaction be stopped.
TRDY
−
B
Target Ready is asserted by the currently addressed target to indicate
its ability to complete the current data phase of a transaction.
O
General-Purpose Address Bus outputs the physical memory or I/O
port address. Twenty-six address lines provide a maximum
addressable space of 64 Mbytes. This bus also provides the address
to the system's ROM/Flash devices.
Signal
Description
General-Purpose (GP) Bus
GPA14–GPA0
GPA15
{RSTLD0}
O
GPA16
{RSTLD1}
O
GPA17
{RSTLD2}
O
GPA18
{RSTLD3}
O
GPA19
{RSTLD4}
O
GPA20
{RSTLD5}
O
GPA21
{RSTLD6}
O
GPA22
{RSTLD7}
O
GPA23
{AMDEBUG_DIS}
O
GPA24
{INST_TRCE}
O
GPA25
{DEBUG_ENTER}
O
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
2-7
ピンの説明
Table 2-2
Signal
信号の説明(続き)
Multiplexed
Signal
Type
Description
[GPAEN]
PIO3
O
GP Bus Address Enable indicates that the current address on the
GPA25ñGPA0 address bus is a memory address, and that the current
cycle is a DMA cycle. All I/O devices should use this signal in decoding
their I/O addresses and should not respond when this signal is
asserted. When GPAEN is asserted, the GPDACKx signals are used
to select the appropriate I/O device for the DMA transfer. GPAEN also
asserts when a DMA cycle is occurring internally.
[GPALE]
PIO0
O
GP Bus Address Latch Enable is driven at the beginning of a GP
bus cycle with valid address. This signal can be used by external
devices to latch the GP address for the current cycle.
[GPBHE]
PIO1
O
GP Bus Byte High Enable is driven active when data is to be
transferred on the upper 8 bits of the GP data bus.
B
General-Purpose Data Bus inputs data during memory and I/O read
cycles, and outputs data during memory and I/O write cycles.
GP Bus DMA Acknowledge can each be mapped to one of the seven
available DMA channels. They are asserted active Low to
acknowledge the corresponding DMA requests.
−
GPD15–GPD0
[GPDACK0]
PIO12
O
[GPDACK1]
PIO11
O
[GPDACK2]
PIO10
O
[GPDACK3]
PIO9
O
[GPDBUFOE]
PIO24
O
GP Bus Data Bus Buffer Output Enable is used to control the output
enable on an external transceiver that may be on the GP data bus.
Using this transceiver is optional in the system design and is
necessary only to alleviate loading or voltage issues. This pin is
asserted for all external GP bus accesses. It is not asserted during
accesses to the internal peripherals even if GP bus echo mode is
enabled.
Note that if the ROM is configured to use the GP data bus, then its
bytes are not controlled by this buffer enable; they are controlled by
the ROMBUFOE signal.
[GPDRQ0]
PIO8
I
[GPDRQ1]
PIO7
I
[GPDRQ2]
PIO6
I
GP Bus DMA Request can each be mapped to one of the seven
available DMA channels. They are asserted active High to request
DMA service.
[GPDRQ3]
PIO5
I
[GPIOCS16]
PIO25
STI
GP Bus I/O Chip-Select 16 is driven active early in the cycle by the
targeted I/O device on the GP bus to request a 16-bit I/O transfer.
GPIORD
−
O
GP Bus I/O Read indicates that the current cycle is a read of the
currently addressed I/O device on the GP bus. When this signal is
asserted, the selected I/O device can drive data onto the data bus.
GPIOWR
−
O
GP Bus I/O Write indicates that the current cycle is a write of the
currently addressed I/O device on the GP bus. When this signal is
asserted, the selected I/O device can latch data from the data bus.
2-8
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
ピンの説明
Table 2-2
Signal
信号の説明(続き)
Multiplexed
Signal
Type
Description
[GPIRQ0]
PIO23
I
GP Bus Interrupt Request can each be mapped to one of the
available interrupt channels or NMI. They are asserted when a
peripheral requires interrupt service.
Configuration registers allow inversion of these interrupt requests to
recognize active low interrupt requests. These interrupt requests can
be routed to generate NMI.
[GPIRQ1]
PIO22
I
[GPIRQ2]
PIO21
I
[GPIRQ3]
PIO20
I
[GPIRQ4]
PIO19
I
[GPIRQ5]
PIO18
I
[GPIRQ6]
PIO17
I
[GPIRQ7]
PIO16
I
[GPIRQ8]
PIO15
I
[GPIRQ9]
PIO14
I
[GPIRQ10]
PIO13
I
[GPMEMCS16]
PIO26
STI
GP Bus Memory Chip-Select 16 is driven active early in the cycle by
the targeted memory device on the GP bus to request a 16-bit
memory transfer.
[GPMEMRD]
−
O
GP Bus Memory Read indicates that the current GP bus cycle is a
read of the selected memory device. When this signal is asserted, the
selected memory device can drive data onto the data bus.
[GPMEMWR]
−
O
GP Bus Memory Write indicates that the current GP bus cycle is a
write of the selected memory device. When this signal is asserted, the
selected memory device can latch data from the data bus.
STI
GP Bus Ready can be driven by open-drain devices. When pulled
Low during a GP bus access, wait states are inserted in the current
cycle. This pin has an internal weak pullup that should be
supplemented by a stronger external pullup for faster rise time.
O
GP Bus Reset, when asserted, re-initializes to reset state all devices
connected to the GP bus.
PIO4
O
GP Bus Terminal Count is driven from the internal DMA controller to
indicate that the transfer count for the currently active DMA channel
has reached zero, and that the current DMA cycle is the last transfer.
PIO28 (CTS2)
I
Clear To Send is driven back to the serial port to indicate that the
external data carrier equipment (DCE) is ready to accept data.
I
Data Carrier Detect is driven back to the serial port from a piece of
DCE when it has detected a carrier signal from a communications
target.
[GPRDY]
PIO2
−
GPRESET
[GPTC]
Serial Ports
CTS2–CTS1
−
DCD1
[DCD2]
PIO30
−
DSR1
[DSR2]
PIO29
−
RIN1
I
I
−
DTR2–DTR1
[RIN2]
I
PIO31
Data Set Ready is used to indicate that the external DCE is ready to
establish a communication link with the internal serial port controller.
O
Data Terminal Ready indicates to the external DCE that the internal
serial port controller is ready to communicate.
I
Ring Indicate is used by an external modem to inform the serial port
that a ring signal was detected.
I
RTS2–RTS1
−
O
Request To Send indicates to the external DCE that the internal serial
port controller is ready to send data.
SIN2–SIN1
−
I
Serial Data In is used to receive the serial data from the external serial
device or DCE into the internal serial port controller.
SOUT2–SOUT1
−
O
Serial Data Out is used to transmit the serial data from the internal
serial port controller to the external serial device or DCE.
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
2-9
ピンの説明
Table 2-2
信号の説明(続き)
Multiplexed
Signal
Type
SSI_CLK
−
O
SSI Clock is driven by the ÉlanSC520 microcontroller SSI port during
active SSI transmit or receive transactions. The idle state of the clock
and the assertion/sample edge are configurable.
SSI_DI
−
STI
SSI Data Input receives incoming data from a peripheral device SSI
port. Data is shifted in on the opposite SSI_CLK signal edge in which
SSI_DO drives data. SSI_DO and SSI_DI can be tied together to
interface to a three-pin SSI peripheral.
SSI_DO
−
OD
SSI Data Output drives data to a peripheral device SSI port. Data is
driven on the opposite SSI_CLK signal edge in which SSI_DI latches
data. The DO signal is normally at high-impedance when no transmit
transaction is active on the SSI port.
Signal
Description
Timers
PITGATE2
[GPCS3]
I
PITOUT2
{CFG3}
O
TMRIN0
[GPCS5]
I
TMRIN1
[GPCS4]
I
TMROUT0
[GPCS7]
O
TMROUT1
[GPCS6]
O
Programmable Interval Timer 2 Gate provides control for the PIT
Channel 2.
Programmable Interval Timer 2 Output is output from the PIT
Channel 2. This signal is typically used as the PC speaker signal.
Timer Inputs 0 and 1 can be programmed to be the control or clock
for the general-purpose (GP) timers 0 and 1.
Timer Outputs 0 and 1 are outputs from two of the GP timers. These
outputs can be used as pulse-width modulation signals.
Clocks and Reset
32KXTAL2–
32KXTAL1
−
osc
32.768-kHz Crystal Interface is used for connecting an external
crystal or oscillator to the ÉlanSC520 microcontroller. This clock
source is used to clock the real-time clock (RTC). In addition, internal
PLLs generate clocks for the timers and UARTs based on this clock
source. When an external oscillator is used, 32KXTAL1 should be
unconnected and the clock source driven on 32KXTAL2.
33MXTAL2–
33MXTAL1
−
osc
33-MHz Crystal Interface is the main system clock for the chip. This
clock source is used to derive the SDRAM, CPU, and PCI clocks.
When an external oscillator is used, 33MXTAL1 should be grounded
and the clock source driven on 33MXTAL2.
[CLKTEST]
CLKTIMER
O
Test Clock Output is a shared pin that allows many of the internal
clocks to be driven externally. CLKTEST can drive the internal clocks
of the UARTs, PLL1, PLL2, the programmable interval timer (PIT), or
the real-time clock (RTC) for testing or for driving an external device.
CLKTIMER
[CLKTEST]
I
Timer Clock Input is a shared clock pin that can be used to input a
frequency to the programmable interval timer (PIT).
LF_PLL1
−
I
Loop Filter Interface is used for connecting external loop filter
components. Component values and circuit descriptions are contained
in the Élan™SC520 Microcontroller Data Sheet, order #22003.
PRGRESET
−
STI
Programmable Reset can be programmed to reset the ÉlanSC520
microcontroller, but allow SDRAM refresh to continue during the reset.
This allows the system to be reset without losing the information stored
in SDRAM. On power-up, PRGRESET is disabled and must be
programmed to be operational. When disabled, this pin has no effect
on the ÉlanSC520 microcontroller.
PWRGOOD
−
STI
Power Good is a reset signal that indicates to the ÉlanSC520
microcontroller that the VCC levels are within the normal operation
range. It is used to reset the entire chip and must be held Low for one
second after all VCC signals (except VCC_RTC) on the chip are High.
This signal must be returned Low before the VCC signals degrade to
put the RTC into the correct state for operation in RTC-only mode.
2-10
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
ピンの説明
Table 2-2
Signal
信号の説明(続き)
Multiplexed
Signal
Type
Description
Chip Selects
[GPCS0]
PIO27
O
[GPCS1]
ROMCS1
O
[GPCS2]
ROMCS2
O
[GPCS3]
PITGATE2
O
[GPCS4]
TMRIN1
O
[GPCS5]
TMRIN0
O
[GPCS6]
TMROUT1
O
[GPCS7]
TMROUT0
O
General-Purpose Chip Select signals are for the GP bus. They can
be used for either memory or I/O accesses. These chip selects are
asserted for Am5x86 CPU accesses to the corresponding regions set
up in the Programmable Address Region (PAR) registers.
Programmable I/O (PIO)
PIO0
[GPALE]
B
PIO1
[GPBHE]
B
PIO2
[GPRDY]
B
PIO3
[GPAEN]
B
PIO4
[GPTC]
B
PIO5
[GPDRQ3]
B
PIO6
[GPDRQ2]
B
PIO7
[GPDRQ1]
B
PIO8
[GPDRQ0]
B
PIO9
[GPDACK3]
B
PIO10
[GPDACK2]
B
PIO11
[GPDACK1]
B
PIO12
[GPDACK0]
B
PIO13
[GPIRQ10]
B
PIO14
[GPIRQ9]
B
PIO15
[GPIRQ8]
B
PIO16
[GPIRQ7]
B
PIO17
[GPIRQ6]
B
PIO18
[GPIRQ5]
B
PIO19
[GPIRQ4]
B
PIO20
[GPIRQ3]
B
PIO21
[GPIRQ2]
B
PIO22
[GPIRQ1]
B
PIO23
[GPIRQ0]
B
PIO24
[GPDBUFOE]
B
PIO25
[GPIOCS16]
B
PIO26
[GPMEMCS16]
B
PIO27
[GPCS0]
B
PIO28
[CTS2]
B
PIO29
[DSR2]
B
PIO30
[DCD2]
B
PIO31
[RIN2]
B
Programmable Input/Output signals can be programmed as inputs
or outputs. When they are outputs, they can be driven High or Low by
programming bits in registers.
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
2-11
ピンの説明
Table 2-2
信号の説明(続き)
Multiplexed
Signal
Signal
Type
Description
JTAG Boundary Scan Test Interface
JTAG_TCK
−
I
Test Clock is the input clock for test access port.
JTAG_TDI
−
I
Test Data Input is the serial input stream for input data. This pin has
a weak internal pullup resistor. It is sampled on the rising edge of
JTAG_TCK. If not driven, this input is sampled High internally.
JTAG_TDO
−
O/TS
Test Data Output is the serial output stream for result data. It is in the
high-impedance state except when scanning is in progress.
JTAG_TMS
−
I
Test Mode Select is an input for controlling the test access port. This
pin has a weak internal pullup resistor. If it is not driven, it is sampled
High internally.
JTAG_TRST
−
I
JTAG Reset is the test access port (TAP) reset. This pin has a weak
internal pulldown resistor. If not driven, this input is sampled Low
internally and causes the TAP controller logic to remain in the reset
state.
BR/TC
−
I
Break Request/Trace Capture requests entry to AMDebug
technology mode. The AMDebug technology serial/parallel interface
can reconfigure this pin to turn instruction trace capture on or off.
CMDACK
−
O
Command Acknowledge indicates command completion status. It is
asserted High when the in-circuit emulator logic is ready to receive
new commands from the host. It is driven Low when the in-circuit
emulator core is executing a command from the host and remains Low
until the command is completed.
STOP/TX
−
O
Stop/Transmit is asserted High on entry to AMDebug mode. During
normal mode, this is set High when there is data to be transmitted to
the host (during operating system/application communication).
TRIG/TRACE
−
O
Trigger/Trace triggers event to logic analyzer (optional, from Am5x86
CPU debug registers).The AMDebug technology serial/parallel
interface can reconfigure this pin to indicate the trace on or off status.
AMDebug Interface
System Test
CF_DRAM
[WBMSTR2]
{CFG2}
O
Code Fetch SDRAM, during SDRAM reads, provides code fetch
status. When Low, this indicates that the current SDRAM read is a
CPU code fetch demanded by the CPU, or a read prefetch initiated
due to a demand code fetch by the CPU. When High during reads, this
indicates that the SDRAM read is not a code fetch, and it could have
been initiated by the CPU, PCI master, or the GP bus GP-DMA
controller, either demand or prefetch. During SDRAM write cycles this
pin provides an indication of the source of the data, either GP-DMA
controller/PCI bus master or CPU. When High, this indicates that
either a GP bus DMA initiator or an external PCI bus master
contributed to the current SDRAM write cycle (the CPU may also have
contributed). A Low indicates that the CPU is the only master that
contributed to this write cycle.
CF_ROM_GPCS
[WBMSTR0]
{CFG0}
O
Code Fetch ROM/GPCS provides an indication that the CPU is
performing a code fetch from ROM (on either the GP bus or SDRAM
data bus), or from any GPCSx pin. When Low during a read cycle (as
indicated by either GPMEMRD or ROMRD), the CPU is performing a
code fetch from ROM or a GP bus chip select. At all other times
(including writes), this signal is High.
DATASTRB
[WBMSTR1]
{CFG1}
O
Data Strobe is a debug signal that is asserted to allow the external
system to latch SDRAM data. This can be used to trace data on the
SDRAM interface with an in-circuit emulator probe or logic analyzer.
2-12
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
ピンの説明
Table 2-2
信号の説明(続き)
Signal
Multiplexed
Signal
Type
Description
[WBMSTR0]
CF_ROM_GPCS
{CFG0}
O
Write Buffer Master indicates which block(s) wrote to a rank in the
write buffer (during SDRAM write cycles) and which block is reading
from SDRAM (during SDRAM read cycles).
WBMSTR0, when a logical 1, indicates that the internal GP bus DMA
controller has contributed to the write buffer rank (write cycles) or is
reading from SDRAM (read cycles).
[WBMSTR1]
DATASTRB
{CFG1}
O
WBMSTR1, when a logical 1, indicates that the PCI master has
contributed to the write buffer rank (write cycles) or is reading from
SDRAM (read cycles).
[WBMSTR2]
CF_DRAM
{CFG2}
O
WBMSTR2, when a logical 1, it indicates that the CPU has contributed
to the write buffer rank (write cycles) or is reading from SDRAM (read
cycles).
{AMDEBUG_DIS}
GPA23
I
AMDebug Disable is an active High configuration signal latched at the
assertion of Power Good (PWRGOOD). This pin has a built-in
pulldown resistor.
At Power Good assertion:
Low = Normal operation, mode can be enabled by software.
High = AMDebug mode is disabled and cannot be enabled by software.
{CFG0}
CF_ROM_GPCS
[WBMSTR0]
I
Configuration Inputs 3–0 are latched into the chip when PWRGOOD
is asserted. These signals are all shared with other features. These
signals have built-in pulldown resistors.
CFG0: Choose 8-, 16-, or 32-bit ROM/Flash interface for BOOTCS.
{CFG1}
DATASTRB
[WBMSTR1]
I
CFG1: Choose 8-, 16-, or 32-bit ROM/Flash interface for BOOTCS.
Configuration
CFG1
CFG0
0
0
BOOTCS Data Width
8-bit
0
1
16-bit
1
x (don't care)
32-bit
{CFG2}
CF_DRAM
[WBMSTR2]
I
CFG2: When Low when PWRGOOD is asserted, the ÉlanSC520
microcontroller uses the GP data bus for BOOTCS. When seen as
High during PWRGOOD assertion, the BOOTCS access is across the
SDRAM data bus. Default is Low (by a built-in pulldown resistor).
{CFG3}
PITOUT2
I
CFG3 (Internal AMD test mode enable): For normal ÉlanSC520
microcontroller operation, do not pull High during reset.
{DEBUG_ENTER}
GPA25
I
Enter AMDebug Mode is an active High configuration signal latched
at the assertion of Power Good (PWRGOOD). This pin enables the
AMDebug mode, which causes the processor to fetch and execute
one instruction from the BOOTCS device, and then enter AMDebug
mode where the CPU waits for debug commands to be delivered by
the JTAG port. This pin has a built-in pulldown resistor.
At PWRGOOD assertion:
High = AMDebug mode enabled
Low = Normal operation
{INST_TRCE}
GPA24
I
Instruction Trace is an active High configuration signal latched at the
assertion of Power Good (PWRGOOD). Enables trace record
generation from Power Good assertion. This pin has a built-in
pulldown resistor.
At PWRGOOD assertion:
High = Trace controller enabled to output trace records
Low = Normal operation
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
2-13
ピンの説明
Table 2-2
Signal
信号の説明(続き)
Multiplexed
Signal
Type
{RSTLD0}
GPA15
I
{RSTLD1}
GPA16
I
{RSTLD2}
GPA17
I
{RSTLD3}
GPA18
I
{RSTLD4}
GPA19
I
{RSTLD5}
GPA20
I
{RSTLD6}
GPA21
I
{RSTLD7}
GPA22
I
Description
Reset Latched Inputs are shared signals that are latched into a
register when PWRGOOD is asserted. They are used to input static
information to software (i.e., board revision). These signals have builtin pulldown resistors.
Power
BBATSEN
−
Analog
Backup Battery Sense is a pin on which real-time clock (RTC)
backup battery voltage is sampled each time PWRGOOD is asserted.
If this pin samples below 2.0 V, the Valid RAM and Time (VRT) bit in
RTC index 0Dh is cleared until read. After the read, the VRT bit is set
until BBATSEN is sensed via a subsequent PWRGOOD assertion.
BBATSEN also provides a power-on-reset signal for the RTC when an
RTC backup battery is applied for the first time.
VCC_ANLG
VCC_CORE
−
Power
Analog Power Supply for the analog circuits (PLLs).
−
Power
Power Supply for the ÉlanSC520 microcontroller core logic.
VCC_I/O
−
Power
Power Supply to the I/O pad ring.
VCC_RTC
−
Power
Power Supply for the real-time clock and 32-kHz oscillator.
GND
−
Power
Digital Ground for the remaining ÉlanSC520 microcontroller core logic.
GND_ANLG
−
Power
Analog Ground for the analog circuits.
2-14
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
第3章
システムの初期化
3.1
概要
この章は、
ÉlanSC520 マイクロコントローラを初期化するための情報と、ガイドラインを提供します。
AMDのWeb サイトからも得ることができま
この章で記述された情報のいくつかのソースコード例は、
す。このコード・キット・ソフトウェアは、
テスト済みのアプリケーション例としてソースコードで提供され
ます。他の製品情報やツールと同様、
このソフトウェアはAMDのホームページから得ることができま
す。http://www.amd.com/ にアクセスし、Embedded Processorsのリンクをたどってください。
ÉlanSC520 マイクロコントローラを使用して開発することができるシステムは、大きく2つのカテゴ
リーに分けることができます。純粋な組み込みのシステムとBIOS1を使うシステムです。
もちろん、
これら以外のタイプのシステムを作ることも可能です。例えばBIOS を持っていながら、
Windows®、DOS、UNIX、あるいはLinux のような「デスクトップ」オペレーティング・システムを使わ
ない、ハイブリッド・システムを開発することができます。 様々な手順で ÉlanSC520 マイクロコン
トローラを初期化する事ができますが、
どんな初期シーケンスでも次の 2つの技術に帰属します。
■ BIOS を用いたシステムの初期化
■ BIOS を用いない、純粋な組み込みのシステムの初期化
BIOS を用いたシステムでは 、ほとんどすべての場合で、システムがリアル・モード上で動作してい
る間に BIOS によって初期化されます。初期化の後 BIOS は、オペレーティング・システムやアプリ
ケーションを、
ディスク・ドライブやフラッシュメモリあるいは他のメディアからロードします。オペレー
ティング・システムやアプリケーションはリアル・モードで稼働し始め、場合によってはプロテクト・モー
ドへ移行します。 Windows 95 と Windows NT®はこのようなオペレーティング・システムの例で
す。リアルタイムオペレーティング・システムも同様に稼働することができます。
BIOS での初期化は複雑になることがあります。 一部の BIOS では、特定のオペレーションを行う
ため一時的にプロテクト・モードに入り、
オペレーティング・システムやアプリケーションを起動する前
にリアル・モードに戻すものもあります。このような BIOS の動作は、BIOS の書き方や、提供する
機能に依存しており、
ここで言及するべき範囲を超えています。
組み込みシステムの場合、通常初期設定シーケンスはより単純であり、一般的にプロテクト・モードで
行われます。この場合、
プロセッサはリセット後、できるかぎり早くプロテクト・モードに移行します。
リアル・モードコードで実行される唯一のコードは、
リセット・ベクタからジャンプし ÉlanSC520 マイ
クロコントローラをプロテクト・モードへ移行するためのコードです。
3.1.1
組み込みシステムの初期化シーケンス
ÉlanSC520 マイクロコントローラで設計された多くのシステムは、BIOS を持たない純粋な組み込
みのシステムです。このようなシステムのソフトウェア・アーキテクチャは、様々な形態をとることが
1. BIOS は PC のソフトウェア・コンポーネントです。一連のリアル・モードのコード・セットで、システム
の初期化を行ったり、オペレーティング・システムやアプリケーション・レベルのソフトウェアに対し、標
準的な I/O アクセスやシステム・サービスを提供します。これらのサービスは標準的なインタフェー
スによって供給されます。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
3-1
システムの初期化
できます。
システムによっては、市販のリアルタイムOS (RTOS) や、独自のRTOS、
または簡単なループ構造か
ノン・プリエンプティブな実行環境を用います。通常、実行環境やRTOSでは、
ボード・サポート・パッ
ケージ(BSP) 1 などと呼ばれる各ハードウエアに合わせたソフトウエア・レイヤーを通して、ハードウ
エアをアクセスします。
一般的な組み込みシステムの初期化シーケンスは、以下のようになります:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
< Reset event >
Near Jump to reset handler from the reset vector
Switch to simple protected mode
Determine the cause of the reset
Initialize the DRAM controller and DRAM. Size the DRAM
Setup a Stack and begin execution from “C” code
if (NOT Execute-In-Place) then
Copy the Operating System to DRAM
Jump to the operating system’s entry point
Set up the Global Descriptor Table (GDT), Local Descriptor Table (LDT),
Interrupt Descriptor Table (IDT), fault handlers, page tables, and a
Task State Segment (TSS) for the operating system, application or
executive.
Set the processor speed
Configure the GP bus timings
Configure the pin multiplexing
Configure the GP bus chip selects
Configure the Programmable Address Region (PAR) registers
Configure the interrupt mappings
Configure the programmable I/O (PIO) pins
Configure the PCI bus controller and arbitration mode
Initialize a periodic timer interrupt (if necessary)
Now, the BSP can initialize devices external to the ÉlanSC520
microcontroller and otherwise continue to start the operating system,
I/O drivers and application.
上記の例では、switch to simple protected mode (3行目) でプロセッサのCSレジスタとCSデスク
リプタ・キャッシュをセットします。これにより、
リセット・リージョンのリセット・セグメントへのリダイレ
クションを禁止します(「 3.1.5 リセット・ベクタとリセット・セグメント」を参照)。
プロテクト・モードの環境 (GDT, LDT, IDT, および
上記3行目の「シンプル・プロテクト・モード」は、
TSS) が最も簡単な種類であることを意味しています。例えば、LDT と IDT を両方とも空で、TSS と
GDT が最小限の情報を格納している状態。または、LDT だけが空である状態です。この状態では例
外処理を行うことはできませんが、
初期化のコードが走る短い期間だけなので特に問題ではありませ
ん。もっと重要なことは、
シンプル・プロテクト・モードの TSS と GDT はリード・オンリー・メモリ
(通
実行時に作り出す必要がないということです。DRAMが使用可
常Flash)に格納しておくことができ、
能になり次第、もっと規模の大きいGDT, LDT および IDT テーブルと、1 つ以上の適当な TSS を
1. このソフトウェア・コンポーネントに対する標準的な名称はありません。BSPに対する他の呼び方として
OEM アダプテーション・レイヤー (OAL) 、ハードウエア・アダプテーション・レイヤー (HAL) 、ポーティ
ング・レイヤー等があります。BSP はBIOSと似ていますが、ほとんど全ての場合特定の実行環境や
RTOSに固有のものです。特に市販のRTOSではそのようになっています。あるベンダーRTOS用の
BSPは、別のベンダーのRTOS用には使用することができません。さらに、BIOSは通常16ビットのリア
オ
ル・モードで書かれているのに対し、BSPは32ビットのプロテクト・モードで書かれています。最後に、
ペレーティング・システムやアプリケーションは必ず割り込み(又は他のランタイム・メカニズム)を使っ
てBIOSと交信しますが、BSPは多くの場合実行環境やアプリケーションに直接リンクして使用するた
め、CALL命令など1命令で行き来することができます。
3-2
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
システムの初期化
DRAM 上にセットアップすることができます。
組み込みシステムによっては、
リード・オンリー・メモリ
(通常Flash)から実行し、DRAMはデータの格
納場所としてのみ使用する事があります。ほとんどのRTOSはこのようなシステム・アーキテクチャを
サポートしています。
7行目がそれに関連した操作です。Flashメモリから実行するシステムでは、オ
ペレーティング・システムやアプリケーションをDRAMへコピーする必要がありません。
初期化のコードは、DRAMコントローラの初期化が終わった後スタックを設定し、高級言語( C等の)
の実行環境に制御を渡すこともあります。
3.1.2
BIOS の初期化シーケンス
組み込みシステムの初期化とは対照的に、BIOS を用いた初期化は以下の手順で行います:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
< Reset event >
Near Jump to reset handler from the reset vector
Map the Memory-Mapped Configuration Region (MMCR) to an address below
0010FFEFh (real-mode address limit)
Determine the cause of the reset
Initialize the DRAM controller and DRAM. Size the DRAM, record in CMOS
Copy the BIOS into DRAM (shadowing)
Execute a Far Jump within the BIOS code to start execution out of the
shadowed BIOS copy instead of the copy in ROM
Set up basic interrupt handlers for processor faults
Detect the CPU ID and display on the console
Set the processor speed
Configure the GP bus timings
Configure the pin multiplexing
Configure the GP bus chip selects
Configure the Programmable Address Region (PAR) registers
Configure the interrupt mappings
Configure the programmable I/O (PIO) pins
Configure the PCI bus controller and arbitration
Now, the BIOS can continue with standard PC-style system initialization
PC BIOS と組み込みシステムの初期化手順の間には、いくつかの対照的な部分があります。
リセット・セグメントから実行している間のステッ
■ 最初の Far ジャンプ (JMP) 命令を実行する前、
プ1から6までは、
リアル・モードで実行します。対照的に組み込みシステムの初期化では、
これら
のステップを実行する前にシンプル・プロテクト・モードに移行します。
リアル・モードのソフトウエアからアク
■ Memory-Mapped Configuration Region (MMCR) は、
セスできるよう00100000hより下の領域にマップしなければなりません。32ビット・プロテクト・
モードの組み込みシステムでは、MMCRを移動する必要はありません。
■ 残りのシステム初期化コードは、BIOSのイメージをコピーしたDRAM上で、
リアル・モードで実行
されます。対照的に組み込みシステムでは、全ての初期化コードを( DRAMかFlash のいずれか
において)32ビットのプロテクト・モードで実行します。
3.1.3
Memory-Mapped Configuration Region (MMCR)
Memory-Mapped Configuration Region (MMCR) は、物理アドレスFFFEF000hに位置する4Kバ
イトの領域で、ÉlanSC520 マイクロコントローラの様々なコンフィグレーション・レジスタ、
およびコ
ントロール・レジスタを格納しています。このデバイスの様々な機能を設定、制御するためには、
MMCRレジスタをアクセスしなければなりません。組み込みシステムの初期化コードは、ほとんど、あ
るいは全て32ビット・プロテクト・モードで実行するため、
この領域に直接アクセスすることができま
す。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
3-3
システムの初期化
対照的に、
リアル・モードのコードは物理アドレス0010FFEFh(リアル・モードのアドレス上限)より上
をアクセスすることはできませんので、
MMCRのデフォルトのアドレスにアクセスできません。この問
題は、Configuration Base Address (CBAR) レジスタ (Port FFFCh)を、MMCRがリアル・モードの
アドレス上限以下のエリアになるようプログラムすることで、容易に解決できます。これにより、
リア
ル・モードの初期化コードもMMCRを直接アクセスできるようになります。これはBIOSの初期化コー
ドのステップ3で行われます。
注意:Configuration Base Address (CBAR) レジスタを設定することにより、MMCRをデフォルト以外のアドレス
に配置できます。
しかしながら、CBARレジスタの設定に関わらず、MMCR領域は常にデフォルトのアドレスで
あるFFFEF000hでもアクセスすることができます。
3.1.4
リセット・イベント
ÉlanSC520 マイクロコントローラは、3つの主たるリセットの種類があります。
■ システム・リセット(ハード・リセット、パワー・オン・リセットとも呼ばれる)
■ SDRAMを保存したシステム・リセット(プログラマブル・リセットと呼ばれる)
■ ソフト・リセット(ウォーム・スタートと呼ばれる)
ÉlanSC520 マイクロコントローラのリセットに関する詳しい情報は、第6章「リセットの生成」と第7
章の「 7.5 初期化」を参照してください。
多くの場合、
システムはハードウエア・リセット・ボタンやリセット信号を生成する外部デバイスを持っ
ています。ÉlanSC520 マイクロコントローラでは、
これらの全てがシステム・リセットを起こします。
しかしながら、外部リセット・ロジックを組み込む様々な方法があります。リセット(どんな種類でも)の
発生後、
ブート・ソフトウエアは様々なステータス・ビットを参照することにより、何がリセットの原因に
なったかを知ることができます。
一般的で、
しかも効果的であるリセットの処理方法は、
リセットの原因を調べ、C M O S メモリや、
EEPROM、不揮発性DRAMやFlashなどの不揮発性メモリに記録しておくことです。これによりデバッ
グ・ソフトや診断ソフトは、過去数回のリセット要因を知ることができます。これはシステムの不具合を
調べる際に、特に役に立ちます。システムはリセット・イベントが起こった時刻や日付など、
他の情報も
記録しておくことができます。
システム・リセットが発生した場合(その要因に関わらず)、
内部レジスタやロジック・ブロックはパワー・
オン・リセットの状態になります。そのため、
ブート・ソフトウエアはシステムの初期化を最初からやり
直さなければなりません。
プログラマブル・リセットという例外が1つだけあります。この機能は、R e s e t C o n f i g u r a t i o n
(RESCFG) レジスタ (MMCR offset D72h) の PRG_RST_ENB ビットによって起動されます。この
ビットがセットされた場合、PWRGOODがアサートされている状態でのPRGRESETピンのアサート、
SYS_RSTビット、
ウオッチドッグ・タイマ・システム・リセット・イベントまたはAMDebug テクノロジー・
システムのリセット・イベントは、SDRAMの内容が保存されるようにSDRAMコンフィギュレーション
(SDRAMの種類、バンク数、
リフレッシュ・レートその他)を変更せずにシステム・リセットを行います。
保存されるSDRAMコントローラのパラメータは、SDRAMタイプ、バンク数、
リフレッシュ・レート、
シ
グナル・ドライバー・ストレングスです。これによりシステムは、SDRAMの内容を保持したままリセッ
トすることができ、
デバッグや起動時間の短縮に効果的です。このリセットの状態はソフトウエアによっ
て検出できます。プログラマブル・リセットがイネーブルされた場合、PWRGOODのデアサーション以
外のすべてのシステム・リセットはこのタイプに変換されます。
ソフト・リセットが発生した場合、
オペレーティング・システムが十分なステート情報をセーブすること
ができていれば、
システムはリスタートすることができます。例えば、80286スタイルのオペレーティ
3-4
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
システムの初期化
ング・システム(OS/2など)はリアル・モードに戻り16ビットBIOSルーチンを呼び出すために、
プロセッ
サー・リセットを発生します。
注意:ほとんどのシステムにおいてソフト・リセットは、
システム・リセットとそれほど違った処理をしなければならないわ
けではありません。例えば、明確にソフト・リセットをしなくてもよいシステムの場合、単にシステム・リセットと同じ
処理をするだけで済みます。
ウオッチドッグ・タイマは、割り込み(マスク可能またはマスク不可)またはシステム・リセット、あるい
はその両方を発生することができます。ウオッチドッグ・タイマのタイム・アウト処理は複雑になりま
す。オペレーションに関する詳しい情報は、第19章「ウオッチドッグ・タイマ」を参照してください。
3.1.5
リセット・ベクタとリセット・セグメント
ハードまたはソフト・リセットの直後、Am5x86 CPU コアはF000:FFF0のアドレスからリアル・モード
で実行を開始します。このリアル・モードのアドレスをリセット・ベクタと呼びます。リセット・ベクタは
リアル・モードのアドレスですが、物理アドレスFFFFFFF0hでもあり、BOOTCSで選択されたメモリ・
デバイスの最上位の物理アドレスに位置します。このデバイスをブートROMデバイスと呼びます。
ハードまたはソフト・リセットの後、FFFF0000からFFFFFFFFhまでの64Kバイトの物理アドレス空間
(ブートROMデバイス内に存在する)は、
リアル・モードのアドレス空間F000:0000からF000:FFFFに
反映されます。このリアル・モードの領域をリセット・セグメントと呼びます。ブートROMデバイス内の
領域をリセット・リージョンと呼びます。この領域に格納されたコードを、
リセット・ハンドラーと呼びま
す。
このリアル・モード空間への反映はアドレッシング・ユニットで行うわけではなく、
リセット時にCPUが
CS デスクリプタ・キャッシュに値を書き込んだ結果として起こります。どのようなリセットが起こった
としても、CPUコアはCS Descriptor Cache レジスタのベース値を FFFF0000hに、
リミットを
0000FFFFh(64Kバイト)に設定します。プロセッサのCS:EIPレジスタ・ペアはF000:0000FFF0にセッ
トされます。
リアル・モードでは、
コード・フェッチのためのリニア・アドレスは、EIPからオフセットを取りCSデスクリ
プタ・キャッシュのベース・レジスタの内容と加算して生成されるので、上述のリアル・モード空間への
反映が上手く機能することになります。リセット後ページング・ユニットはディセーブルされているの
で、
これらのリニア・アドレスは直接物理アドレスにマップされます。
この単純なメカニズムによってリセット・コード領域がリセット・セグメントに反映され、
リセット・ベクタ
から最初の命令フェッチが行われます。
他のセグメント・レジスタ(およびインターナル・デスクリプタ・レジスタ)は一切このような動作はしま
せん。この動作はCS Segmentレジスタとそのインターナル・デスクリプタ・キャッシュのみに対して
行われます。リセット時のプロセッサ・レジスタのコンフィギュレーションに関する詳しい情報は、
Am486® DX/DX2 Microprocessor Hardware Reference Manual, 1994 (order #17965) を参照
してください。
この人為的なリセット・セグメントの反映は、CPUが Far ジャンプ (JMP) 命令を実行するまで有効
です。なぜならば、Far ジャンプ命令はCS Segmentレジスタを更新するからです。リアル・モードで
セグメント・レジスタが書き込まれた場合、
プロセッサは対応するデスクリプタ・キャッシュ・レジスタを、
セグメント・レジスタの新しい値の16倍の値にセットします。プロセッサはリアル・モードで動作してい
るので、CS Descriptorレジスタは通常のリアル・モードの値にセットされます。
セグメントの最終アドレスのたった16バイト前の位置です。つ
リセット・ベクタはF000:FFF0なので、
まり極めて少数の命令しか置くことができません。したがって、
リセット・ベクタに置かれたコードは、
必ずリセット・リージョンへ Nearジャンプをしなければなりません。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
3-5
システムの初期化
例えば Figure 3-1 に示されるように、
リセット・ハンドラーはリセット・ベクタからF000:0000 にNear
ジャンプします。
Figure 3-1
Initial Nearジャンプ例
F000:FFFF
F000:FFF0
Reset Vector
F000:C000
Near
Jump
Reset
Handler
F000:0000
リセット・ベクタからのNearジャンプは、必ずしもF000:0000でなくてもかまいません。リセット・セグ
メント内のどこにでもジャンプすることができます。例えばリセット・ハンドラーのコードがほんの16K
バイトしかなければ、F000:C000にジャンプさせ、
ブートROMデバイスの残りのスペースを他の目的
に使うことができます。リセット・ハンドラーをリセット・ベクタの直下に置き、
ブートROMデバイスを
より効率良く利用することができます。
注意:AMDebug テクノロジー・システムを使用する場合、最初の命令にはNearジャンプだけでなく、Jump Near
Indirect 命令、オペコードは FF/4 を使用することもできます。内蔵のトレース・キャッシュを使用するイン・サー
キット・エミュレータやデバッグ・ソフトウエアは、
リセット・イベントが起こった場所を調べるときにこの命令を探す
ことで実現できます。
初期化のコードの一部は、
システムがリセット・セグメントから命令を実行している間(つまり、最初の
Far ジャンプ命令以前)のリセット・ハンドラーの中に置くことができます。例えば、32ビットのコード
プロテクト・モードのデータ構造をセットアップした後
のみのRTOSを使用した組み込みシステムは、
プロテクト・モードに移行し、
システム・ブートのコード(ブートROMデバイスはBOOTCS信号によって
選択されるデバイスです)に直接ジャンプします。
対照的にPCスタイルのBIOSを使用するシステムでは、SDRAMコントローラを初期化した後BIOSを
SDRAM内に複製し、SDRAM内のBIOSへとジャンプします。
3.2
SDRAMコントローラの設定
システム・リセット後、
SDRAMコントローラ・コンフィギュレーション・レジスタはデフォルトの状態にリ
セットされます。全てのSDRAMコントローラ・バンクおよびSDRAMリフレッシュは、
デフォルトでディ
セーブルになります。SDRAMコントローラのイネーブルの方法や、SDRAMの設定に関する詳しい情
報は第10章「 10.6 初期化」を参照してください。
ÉlanSC520 マイクロコントローラは、SDRAMコントローラの動作を確保したままリセットすることが
できます。SDRAMの初期化コードはその状態を認識することができ、
正しく処理することができます。
もしSDRAMのエラー・コレクション・コード(ECC) ロジックをイネーブルする場合、
SDRAMとそれに
3-6
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
システムの初期化
対応するECCメモリも初期化しなければなりません。これはブート・コードによって、全てのSDRAM
のロケーションに書き込むことで行います。この処理によって、
ECC SDRAMは適切なエラー・チェッ
クのコードで初期化されます。この処理を行わなければ、
32ビット・ダブル・ワードよりも小さなデータ
の書き込みを行った場合に false error が発生します。ECCに関するさらに詳しい情報は、
「 10.5.3
エラー訂正コード(ECC) 」を参照してください。
3.3
CPUコアの確認方法
内蔵しているAm5x86 CPU コアに関する情報は、
システム・リセット後またはCPUID命令を実行した
後DXレジスタを読むことによっていつでも得ることができます。CPUID命令は、
全てのx86互換メー
カの最近の32ビット・プロセッサで使用することができ、
製造メーカ、
キャッシュ・タイプ、
浮動小数点ユ
ソフト
ニット(FPU)の有無などのCPUに関する情報をプログラムに提供します。CPUID命令によって、
ウエアはシステムの持つCPUのタイプを知ることができます。例えばÉlanSC520 マイクロコントロー
ラでは、
ソフトウエアはCPUがAm5x86であることを知り、対応する動作を行うことができます。
ÉlanSC520 マイクロコントローラのリビジョンID (REVID) レジスタ (MMCR offset 00h) は、デバ
イス自体のリビジョン情報を提供します。
CPUのFlagsレジスタ内のIDビットはユーザが変更可能なビットで、CPUID命令の使用可否を示しま
す。IDビットは、既存の設計との互換性のために、ハードまたはソフト・リセット後0になります。
CPUID命令で得られる情報は、最後に行われたハードまたはソフト・リセット時のプロセッサのステー
トです。もしもCPUのキャッシュ書き込みモードかコア・クロック・スピードが変更され、その後ソフト・
ソフト・リセッ
リセットが発生した場合、
続くCPUID命令によってプロセッサの変更された状態(つまり、
トが起こった時点での状態)を得ることができます。ハード・リセットが起こった場合、ÉlanSC520 マ
イクロコントローラは必ずキャッシュ書き込みモードをライトバック、コア・クロック・スピードを
100MHzにします。
CPUIDが返すコードの意味を Table 3-1 に示します。
Table 3-1
CPUIDコード
CPU
3.4
Clock Speed
Am5x86 CPU
Am5x86 CPU
Write-Back Mode
Write-Through Mode
100 MHz
0494h
0484h
133 MHz
04F4h
04E4h
CPUスピードの設定
ÉlanSC520 マイクロコントローラは複数のクロック・スピードで提供されます。ÉlanSC520 マイク
ロコントローラはシステム・リセット後、
デフォルトで100MHzになります。詳しくは第7章「 Am5x86®
CPU 」を参照してください。
注意:全てのÉlanSC520 マイクロコントローラ・デバイスで全てのAm5x86 CPUのクロック・レートをサポートするわ
けではありません。デバイスの最高のクロック・スピードは、パッケージに印刷されたパーツ番号に示されていま
す。クロック関係の設定はデバイスの最高スピードより大きくすることができますが、動作が不安定になり物理
的なダメージをデバイスに与えることもあります。
3.5
外部GPバス・デバイスの設定
ÉlanSC520 マイクロコントローラのGP バス上の外部ペリフェラルを使用する場合、3つのステップ
のプログラミングが必要になります。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
3-7
システムの初期化
1.
デバイスとのタイミングを合わせるため、GPバス・タイミング・メカニズムをプログラムします。
各デバイスへのアクセスを確保する(チップ・セレクトとPARを適宜設定する)ために、
このステッ
プは最初に行わなければなりません。GPバスのタイミングやバス・サイクルに関しては、第13章
の「 13.5.9 バス・サイクル」で述べます。
2.
もしも必要ならば、GPバスのチップ・セレクト信号や他の制御信号を実際のピンに割り当てるた
め、PIOピンをプログラムします。
3.
外部ペリフェラルに物理アドレスを割り当て、
チップ・セレクトを設定するために、
PARレジスタを
プログラムします。
GP バスに接続された外部ペリフェラルは、Programmable Address Region レジスタによって、I/
Oまたはメモリ・アドレス領域を割り当てられます。これらのレジスタのプログラミングに関しては 3.7
節で述べます。
3.6
多重化されたピンの設定
ÉlanSC520 マイクロコントローラの持ついくつかのピンは、2つの機能が多重化されています。3つ
以上の機能が多重化されているピンはありません。多重化されているピンはほとんどがプログラマブ
ルI/Oピン(PIO) です。
PIO と多重化されているピンをプログラムする場合、PIO31-PIO16 Pin Function Select
(PIOPFS31_16) レジスタ (MMCR offset C22h) または、PIO15-PIO0 Pin Function Select
(PIOPFS15_0) レジスタ (MMCR offset C20h) の中の、対応するファンクション・ビットもセットしな
ければなりません。
他の多重化されたピンに関しては、Figure 2-2 に記述があります。
3.7
Programmable Address Region (PAR) レジスタの設定
PARレジスタは、ÉlanSC520 マイクロコントローラ・システムの物理メモリとI/O領域を設定するた
めの、
統一されたプログラム・インタフェースを提供します。PARレジスタは32ビットの値を書き込む
ことによってプログラムします。PARレジスタの使用法に関する詳しい情報は、第4章の「 4.3.2 Programmable Address Region (PAR) レジスタ」を参照してください。第4章の「 4.3.7 ソフトウェ
アに関する考慮」にもその他の重要な詳細事項が記述されています。
PARレジスタは、4つの特性を定義します。
■ ターゲット・デバイス
■ アドレス領域の属性
■ アドレス領域のサイズ
■ 領域の先頭アドレス
PARレジスタは物理アドレス領域を定義する、
ということに注意してください。PARレジスタは、実効
アドレス領域やリニア・アドレス領域を定義するものではありません。例えば、実効アドレス(一般に論
理、
または仮想アドレスと呼ばれる)は、
Am5x86 CPUのセグメンテーション・ユニットによってリニア・
アドレスに変換されます。ページング・ユニットが有効になっていると、
リニア・アドレスは物理アドレス
リニア・アド
に変換され、CPUのバスに出力されます。ページング・ユニットが無効になっている場合、
レスはそのまま物理アドレスとして出力されます。
システムがどのように設定されているかによって、
ドライバー、
システム・ソフトウエア、その他の物理
アドレスを使うソフトウエアは、Am5x86 CPUのアドレッシング・モードを考慮して書かなければなり
ません。これは非常に複雑な問題であり、
この章の扱う範囲を超えています。
3-8
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
システムの初期化
一般的なPARレジスタのフォーマットをFigure 3-2 に示します。プログラムの一助として、PARレジ
スタ値の計算用紙をFigure 3-3 に掲載します
3.7.1
ページとリージョンの指定
メモリに割り当てるアドレス・リージョンの場合、PARレジスタの Region Size/Start Address
(SZ_ST_ADR) ビットは64K バイトか4Kバイトの値になります。
64Kバイトのページ・サイズのリージョンは、最高2048ページで128Mバイトまで持つことができます。
4Kバイトのページ・サイズのリージョンは、最高128ページで512Kバイトまで持つことができます。
■ リージョンのページ数を指定するには、PARレジスタのSZ_ST_ADRフィールドに値(ページ数 1)をプログラムします。
– 例えば、4Kバイトのページ・サイズで16Kバイトのリージョンを設定する場合、03h(0000011b)
をPARレジスタの24-18ビット・フィールドに書き込みます。つまり、必要なページ数より1つ小
さい値です。
– ページ数が1つの場合、PARのSZ_ST_ADRフィールドの全てのビットは0でなければなりませ
ん。
– 最高のページ数2048か128を設定する場合、SZ_ST_ADRフィールドの全てのビットは1にな
ります。
■ 4Kバイトのページ・サイズを指定する場合、Page Size (PG_SZ) ビットを0にクリアします。64K
バイトの場合は1です。
GPバスのI/Oにマップされたリージョンも同様です。リージョン・サイズ・フィールドはアドレス可能な
リージョンのバイト数を指定します。例えば、
リージョン・サイズ8 バイトを設定する場合、07h(0111b)
をPARレジスタのSZ_ST_ADRフィールドにプログラムします。
注意:GP バスのI/Oにマップされたリージョンの場合、PARレジスタのPG_SZビットは無視されますが、一般的には
0にクリアしておきます。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
3-9
システムの初期化
Figure 3-2
Programmable Address Region (PAR)レジスタのフォーマット
Programmable Address Region Register
31–29
28–26
25
24–0
Target of the
PAR Window
(TARGET)
Attribute
(ATTR)
Page Size
(PG_SZ)
Region Size/Start Address
(SZ_ST_ADR)
31
30
29
Target Device
25
Memory Page Size
0
0
0
Window disabled
0
4-Kbyte memory page size on 4-Kbyte
boundary, ignored for I/O cycles.
0
0
1
GP bus I/O
1
0
1
0
GP bus memory
64-Kbyte memory page size on 64-Kbyte
boundary, ignored for I/O cycles.
0
1
1
PCI bus (applies to
memory cycles to
PAR 0–PAR 1 only)
1
0
0
BOOTCS (ROM)
1
0
1
ROMCS1
1
1
0
ROMCS2
1
1
1
SDRAM
Memory
Cycle
When
[25]=0
Memory
Cycle
When
[25]=1
I/O
Cycles
Only
24–18
17–0
Region Size
[6–0]
Start Address
A[29–12]
24–14
13–0
Region Size
[10–0]
Start Address
A[29–16]
24–16
15–0
Region Size
[8–0]
Start Address
A[15–0]
Size defines up to 128
pages of 4-Kbyte size each,
on 4-Kbyte boundary, for a
512-Kbyte maximum window size.
Size defines up to 2K pages
of 64-Kbyte size each on 64Kbyte boundary, for a 128Mbyte maximum window
size.
Size defines up to 512 bytes
with byte resolution in 64Kbyte I/O space.
If Target is GP bus
If Target is ROM or SDRAM
28
27
26
GP Bus Chip Select
0
0
0
GPCS0
0
0
1
GPCS1
0
1
0
GPCS2
0
1
1
GPCS3
1
0
0
GPCS4
1
0
1
GPCS5
1
1
0
GPCS6
1
1
1
GPCS7
3-10
28
27
26
ROM/SDRAM Attribute
0 = Write-enabled region
1 = Write-protected region
0 = Cacheable region
1 = Noncacheable region
0 = Code execution permitted
1 = Code execution denied
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
システムの初期化
Target
Device
Programmable Address Region (PAR)レジスタのワークシート
Attribute
Page Size
Figure 3-3
Region size, 64-Kbyte Pages
Region size, 4-Kbyte Pages
Region size, I/O bytes
Start Adress (on 64-Kbyte Boundary)
Start Adress (on 4-Kbyte Boundary)
Fields
I/O Location Base
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Bits
Binary
Target
Device
Attribute
Page Size
Hex
Region size, 64-Kbyte Pages
Region size, 4-Kbyte Pages
Region size, I/O bytes
Start Adress (on 64-Kbyte Boundary)
Start Adress (on 4-Kbyte Boundary)
Fields
I/O Location Base
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Bits
Binary
Target
Device
Attribute
Page Size
Hex
Region size, 64-Kbyte Pages
Region size, 4-Kbyte Pages
Region size, I/O bytes
Start Adress (on 64-Kbyte Boundary)
Start Adress (on 4-Kbyte Boundary)
Fields
I/O Location Base
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Bits
Binary
Target
Device
Attribute
Page Size
Hex
Region size, 64-Kbyte Pages
Region size, 4-Kbyte Pages
Region size, I/O bytes
Start Adress (on 64-Kbyte Boundary)
Start Adress (on 4-Kbyte Boundary)
Fields
I/O Location Base
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Bits
Binary
Hex
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
3-11
システムの初期化
3.7.2
アドレス・リージョンの属性
PARレジスタのATTRビット・フィールドで設定するアドレス・リージョンの属性は、ROMやSDRAMの
リージョンに対してどのようにアクセスを行うかを制御します。この節では、それらのいくつかの例を
紹介します。
3.7.2.1
Write-Protect Attribute
この属性がSDRAMやROMのリージョンに対してイネーブルされた場合、
リージョンに対する書き込
みを行おうとした際に割り込みを発生します。この割り込みにより、
ソフトウエアの誤動作を検知した
り、Flashの書き込みのコードのデバッグに利用することができます。
3.7.2.2
Cacheability Control Attribute
PARレジスタの Cacheability Control Attribute ビットは、メモリ・リージョンのキャッシングを制御
する単純なメカニズムを提供します。このメカニズムは、Am5x86 CPUのページング・ユニットよりも
遥かに簡単に使うことができます。
SDRAMリージョンにおいてDMAやPCIバス・マスタ・デバイスのバッファーに割り当てられているリー
ジョンをキャッシュ・オフにしておく事は有効です。
この機能はFlashのリージョンに対しても有効です。あるオペレーションにおいては、Flashのリージョ
Flashデバイスをプログ
ンに対するキャッシングをオフにしておく必要があります。1つの例としては、
ラムしたり、消去したりする場合です。Flashデバイス内のレジスタに対して読み書きを行う時は、常
にキャッシングをオフにしておかなければなりません。例えばFlashのセクター消去のコードは、消去
やその他のオペレーションが終了したかどうかをポーリングする必要があります。キャッシングをオフ
にしておかなければ、
ソフトウエアはプロセッサのキャッシュからデータを読み続け、
デバイスから正
しい値を取り出すことができません。Flashの書込/ベリファイ・サイクルに関しても同様です。詳し
くは第12章を参照してください。
3.7.2.3
Code Execution Attribute
Code Execution Attribute は、Write-Protect Attribute と同様に動作します。このビットがセットされ
invalid opcode fetch fault が発生します。
たリージョンに対しCPUがコード・フェッチを行った場合、
これは、
CPUに実際のアドレスにある命令ではなく、
Invalid opcode が返されることで実現しています。
これは不具合のデバッグにとても有効です。アドレス空間の非常に大きな領域に対して実行制限をか
けることができます。例えばファイル・システムのFlashに実行制限をかけることができます。その場
合、
ファイル・システムのFlashに対するデータの読み書きは通常どおり行なわれます。しかし、間違っ
てこの領域にコードがジャンプしてきた場合、直ちに invalid opcode fetch fault が発生します。
3.7.2.4
性能の考察
PARレジスタが提供する属性の設定を、Am5x86 CPU コアの本来持つ機能で制御することは可能
です。例えば、4Kバイトのページはページング・ユニットとページング・テーブルを使って書込保護す
ることができます。キャッシュさせないリージョンも同じメカニズムで設定できます。実行制限に関し
ても、セグメント化されたコード・モデルとディスクリプタ・アトリビュートによって実現可能です。
本来のx86のメカニズムでも動作はしますが、PARのアドレス・リージョン属性を利用するほうが簡単
で、
より高性能です。CPUのページング・ユニットを使うと、
リニア・アドレスを物理アドレスに変換しな
ければなりませんので、
システムの性能が全体的に少し低下します。さらに、
リージョンに対して実行
制限をかけることは非常に難しく、48ビット・コード・ポインター(huge ポインター)と完全にセグメン
ト化された32ビットコード・モデルが必要になります。これは、単に実行制限をかけるだけのためには
非常にコストのかかる方法です。ÉlanSC520 マイクロコントローラの持つアドレス・リージョン属性
のメカニズムでは、
このような性能に関するペナルティは一切ありません。
3-12
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
システムの初期化
3.7.3
PAR レジスタの優先順位
PARレジスタのメカニズムは非常に柔軟で有効なものです。システム・プログラマに対し、
アドレス・デ
コーディングやアドレス可能なリージョンの属性をプログラムしやすいようにデザインされています。
この章の中の例からでは判らないPARの1つの特徴として、PARレジスタは優先順位を持っていると
いうことがあります。一番優先順位が高いPARレジスタはPAR0で、一番優先順位が低いのはPAR15
です。この優先順位は、2つ以上のPARリージョンが重なっていないかぎり意味を持ちません。もし重
なっている場合には、優先順位が高いPARレジスタの設定が有効になります。
PARレジスタは、デフォルトのシステム・アドレッシング( Table 4-4 参照)に対して変更したり追加し
システムは問題なく動作し
たりするために使用します。全てのPARレジスタを無効にしたままでも、
ます。例えば、
システムはスタート・アップの際にPARレジスタを設定してFlashからSDRAMへ内容を
コピーし1、SDRAMへジャンプし、そしてコピーに利用したPARをディセーブルするといったことが可
能です。PARレジスタが全てディセーブルされている場合、
システムの通常のアドレス優先度の解決
方法で物理デバイスへのアドレッシングが行われます。
3.7.4
外部GPバス・デバイス
GPバス上のデバイスは2つの方法でアクセスできます。いずれもPARレジスタをプログラムするこ
とで制御します。
■ メモリまたはI/O空間にマップされたデバイスのチップ・セレクト信号
■ デバイス独自によるメモリまたはI/Oアドレスのデコード
メモリまたはI/Oサイクルを外部GP バスにおいて行うためにはターゲットをGPバスにするよう、
PAR
レジスタを設定しなければなりません。これは、
チップ・セレクト信号を受けるデバイスや独自にデコー
ドを行う(自分でチップ・セレクト信号を作り出す)デバイスにおいても必要になります。デフォルトで
は A m 5 x 8 6 C P U が行うメモリや I / O サイクルは内蔵 G P バス・ペリフェラルやメモリ・リソース
(SDRAM、
ROM、MMCRレジスタなど)ではデコードされず、PCIバスに対して行われますので、PAR
レジスタをプログラムすることが必要になる訳です。
外部のGP バス・デバイスに対するPARのプログラミングは、以下のような項目を設定します:
■ Target Device フィールド−−GP バス・メモリ・マップド・サイクルかI/Oサイクルのいずれか
■ Attribute フィールド−−デバイスを選択するGPバス・チップ・セレクト
■ Memory page size フィールド−−ほとんどのペリフェラルは4K バイトでまかなえます。SDRAM
やROMのような非常に大きなメモリ・アドレス空間を持つペリフェラルに対しては、64Kバイトの
設定が必要になるかも知れません。
■ リージョン・サイズと先頭アドレス
外部デバイスがÉlanSC520 マイクロコントローラからのチップ・セレクト信号を必要とする場合は、
PIOレジスタを用いてチップ・セレクトを実際のピンに割り当てなければなりません。独自にアドレス・
デコードを行うデバイスにおいても、PARレジスタはプログラムしチップ・セレクトを選ばなければな
りませんが、実際のピンに割り当てる必要はありません。
注意:内蔵するGPバス・ペリフェラルは全て固定のロケーションでデコードされます。これらのペリフェラルのロケー
ションを、PARレジスタのプログラムで変えることはできません。例えば、内蔵するリアル・タイム・クロックは別の
ロケーションに移動することはできません。ÉlanSC520 マイクロコントローラが内蔵するGPバス・ペリフェラル
に対しては、PARレジスタを使う必要は一切ありません。
1. これはシャドウBIOSをDRAMに作る1つの方法。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
3-13
システムの初期化
3.7.4.1
1つのチップ・セレクトを使用する単独のデバイス(A/Dコンバータ)
この例では、A/Dコンバータは4つの16ビットレジスタを持ち、それらをGPCS5ピンによってアクセス
し、I/Oアドレス0500hに位置するI/O空間にマップしようとしています。Table 3-2 に示す通り、
この
ケースではPARレジスタにプログラムする値は34070500hです。
Table 3-2
PARプログラミング例:1つのチップ・セレクトを使用する単独のデバイス
Bit Field
Value
Target Device
001b
GP bus I/O space
Attribute Field
101b
GPCS5
Page Size
0b
Clear to 0 (this bit not applicable to I/O space)
Region Size
7h
Specifies an 8-byte region size
Start Address
3.7.4.2
Meaning
0500h
Physical address 0500h
独自にデコードを行う単独のデバイス
この例では、
メモリにマップされた16色 480x320 ピクセルのLCDコントローラは、
独自にアドレスデコー
ドを行います。000C0000hにマップされた128Kバイトのウインドウを必要とします。PAR レジスタの
ATTRビット・フィールドで指定するチップ・セレクトは必要ですが、実際のGPCS7ピンは使用しません。
Table 3-3 に示す通り、
このケースではPARレジスタにプログラムする値は5E00400Chになります。
Table 3-3
PARプログラミング例:独自にデコードを行う単独のデバイス
Bit Field
Value
Target Device
010b
Meaning
GP bus memory space
Attribute Field
111b
GPCS7
Page Size
1b
64-Kbyte granularity
Region Size
1h
Specifies two 64-Kbyte pages for a 128-Kbyte region size
Start Address
000Ch
Physical address 000C0000h
3.7.4.3
複数のデバイスで1つのチップ・セレクトを使用する
1つのPARを単独のデバイスが必要とする領域より大きくプログラムすることができます。例えば、
メモ
リにマップされた16個のA/Dコンバータのバンクを考えてみます。16個のA/Dコンバータはそれぞれ
4つの16ビット・レジスタを持っています。外付けのPALを使って個々のA/Dコンバータに対するアドレ
スのデコードを行います。このA/Dコンバータのバンクを00020000-0002003Fhのメモリ・アドレス領
域にマップします。PALにプログラムされたデコーダは、
ÉlanSC520 マイクロコントローラからのメモ
リ・リード/ライト・アクセスとGPCS2信号から、
個々のA/Dコンバータに対するチップ・セレクトを作り
ます。Table 3-4 に示す通り、
このケースではPARレジスタにプログラムする値は48000020hです。
Table 3-4
PARプログラミング例:複数のデバイスで1つのチップ・セレクトを使用
3-14
Bit Field
Value
Target Device
010b
Meaning
GP bus memory space
Attribute Field
010b
GPCS2
Page Size
0b
4-Kbyte granularity
Region Size
0h
One 4-Kbyte page
Start Address
20h
Physical address 00020000h
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
システムの初期化
3.7.5
PCIバス・デバイス
通常PCIバス上のデバイスは、
設定されたサイズのDRAMの上、4Gバイト(FFFEFFFh) の直下のメモ
リ・スペースにマップされます。ÉlanSC520 マイクロコントローラのアドレス・デコード・ロジックは、
このメモリ空間に対するアクセスを全てPCIバスに転送します。
通常、SDRAMに使用される最上位アドレス付近に対するメモリ・サイクルは、SDRAMコントローラ、
PARレジスタが適切にプログラムしてある場合はGPバスに対してのみ転送されます。しかしながら、
Windows と DOS の互換性のために、いくつかの PCIペリフェラルはSDRAM空間にマップされな
ければなりません。これらの領域は通常、
リアル・モード・アドレスの上限(物理アドレス0010FFEFh)
以下に落とされます。この処理を必要とするデバイスは、
PCIベースのVGAビデオ・カードとPCIベー
スのネットワーク・アダプタです。これを実現するためには、
最初の2つのPARレジスタのターゲットを
PCIバスにしなければなりません。PCIをターゲットにできるのは、PAR0とPAR1だけであるというこ
とに注意してください。
このようなデバイスに対してPARレジスタを、SDRAMの最上位以下のアドレスに対するアクセスを
PCIに転送するようにプログラムしなければなりません。この処理を通常のPCIバス・デバイスの設定
に加えて行います。3.7.5.1 節のVGAコントローラの設定例でこれを示します。
通常1Kバイト境界を越えるI/O空間アクセスはPCIバスに転送され、
1Kバイト以内のI/O空間アクセス
はGP バスに転送されます。
■ CBARとPCI configuration レジスタのいくつかのマイナーな例外を除き、1Kバイト境界を越え
るI/O空間アクセスはPCIバスからGP バスへ再転送することができます。
■ Address Decode Control (ADDDECCTL) レジスタ (MMCR offset 80h) のIO_HOLE_DEST
ビットによって、
1Kバイト以内のI/O空間でも内蔵ペリフェラルに割り当てられていないアドレスに
対するアクセスはPCIバスに転送することができます。
■ PARレジスタは1Kバイト以内のI/O空間にマップし、IO_HOLE_DESTビットを無効化することが
できます。このようにして、1Kバイト以内のI/O空間に位置するデバイスは、
GPバス上であっても、
PCIバス上であっても、ÉlanSC520 マイクロコントローラの中に存在することができます。
3.7.5.1
PCIバス上のVGAコントローラ
VGAビデオ・コントローラが持つ128Kバイトのメモリは、通常000A0000-000BFFFFh(物理アドレス)
に配置されます。そこでPCIベースのビデオ・コントローラをサポートするためには、PAR0かPAR1を
7200400Ahにプログラムしなければなりません。この値は Table 3-5 に示される内容になります。
PCIバスがターゲットの場合、Attribute フィールドは無視されます。PCIのリージョンは常に書込可能、
実行可能そしてキャッシュ不可です。
Table 3-5
PARプログラミング例:PCIバス上のVGAコントローラ
Bit Field
Value
Meaning
Target Device
011b
PCI bus
Attribute Field
000b
Not applicable
Page Size
1b
64-Kbyte granularity
Region Size
1h
Specifies two 64-Kbyte pages for a 128-Kbyte region size
Start Address
Ah
Physical address 000A0000h
PCI VGA ビデオ・アダプタは、アドレス 03B0-03BBh と 03C0-03CFh のPCI I/O を必要とします。
これらの I/Oを PCI スペースにマップするための PAR は必要ありませんが、その代わりAddress
Decode Control (ADDDECCTL) レジスタ (MMCR offset 80h) のIO_HOLE_DESTビットをセット
しなければなりません。これにより、全ての外部I/OアクセスをGPバスではなくPCIバスに向けること
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
3-15
システムの初期化
ができます。もしも外部GPバス上にI/Oデバイスを持っていなければ、
この設定例においてはさらに
PARレジスタをプログラムする必要はありません。IO_HOLE_DESTビットをセットしても、内蔵して
いるI/Oデバイスは正しくアクセスできることに注目してください。
しかしながら、外部のGP バス・デバイスがI/Oアドレスを必要としているならば、
このデバイスに対す
るPARレジスタをプログラムしなければなりません。例えば、COM3ポートに外付けの 16550 UART
を使用する場合を考えてみましょう。
一般的なCOM3 の I/Oアドレスは 03E8-03EFh です。Table 3-6 に示すように、PARレジスタに
340703E8h をプログラムすることにより、
このI/Oレンジに対するアクセスをGP バスに出すことが
できます。この例では、GPCS5を外部デバイスのチップ・セレクトに使用しています。他のGPCSxを
使いたい場合には、対応するデータをPARレジスタに書き込む事で実現できます。
Table 3-6
PARプログラミング例: PCIバス上のCOM3( VGAサポートの場合)
Bit Field
Value
Target Device
001b
GP bus I/O space
Attribute Field
101b
GPCS5
Page Size
0b
Clear to 0 (this bit not applicable to I/O space)
Region Size
7h
Specifies an 8-byte region size
Start Address
3.7.5.2
Meaning
03E8h
Physical address 03E8h
遠隔プログラム・ローディングのためのネットワーク・アダプタ
メモリ・マップドのネットワーク・アダプタは、
通常リアル・モードのアドレス上限より遥か上のPCIスペー
スに存在します。しかしながら、俗にネットワーク・ブートと呼ばれる、
ネットワークを通して遠隔プログ
ラム・ローディング( RPL)を行う場合、16ビットのBIOSからネットワーク・アダプタを使う必要があり
ます。32ビット・プロテクト・モードの BIOSコードを開発する手間を省くため、PAR0またはPAR1を
使ってリアル・モードのアドレス上限より上にあるネットワーク・アダプタにアクセスすることができま
す。この例では、ネットワーク・アダプタは 000B0000h に配置しなければならない16K バイトのアド
レス空間を持っていると仮定します。この空間はPCIアドレスなので、キャッシュ不可です。Table 3この例に必要なPAR0またはPAR1 の値は 600C00B0h です。
7 に示すように、
Table 3-7
PARプログラミング例:遠隔プログラム・ローディングのためのネットワーク・アダプタ
Bit Field
Value
Target Device
011b
Meaning
PCI bus
Attribute Field
000b
Not applicable
Page Size
0b
4-Kbyte granularity
Region Size
03h
Specifies four 4-Kbyte pages for a 16-Kbyte region size
Start Address
B0h
Physical address 000B0000h
ほとんどのネットワーク・アダプタは、さらに少数のPCI I/Oスペースも必要とすることに注意してく
ださい。通常このI/Oスペースは、
アダプタの PCI Configuration レジスタで変更でき、オペレーティ
ング・システムのプラグ・アンド・プレイ機能によって設定されます。このアドレス・スペースはどのよ
うな値でも設定できますが、通常はIO_HOLE_DESTビットによって影響を受ける1KバイトI/O境界よ
りも上に設定されます。400h 以上のI/Oアクセスは常にPCIスペースに送られる(PARレジスタを使っ
これ以上の特別なプ
てGPバスに転送しないかぎり)ので、一般的なPCI ネットワーク・アダプタでは、
ログラミングは必要ありません。
3-16
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
システムの初期化
3.7.6
外付けROMデバイス
PARレジスタは、BOOTCS, ROMCS1, ROMCS2によって選択されるROMデバイスのアドレッシン
グを設定するためにも使うことができます。ROMデバイスとは、ROM, EEPROM, Flash やその他
の同様なデバイスを指します。
BOOTCS(ブート・デバイスのチップ・セレクト)で選択されるROMデバイスの最上位の64Kバイトは、
必ず物理アドレス FFFF0000-FFFFFFFFh にマップされることに注意してください。この領域をリセッ
ト・リージョンと呼びます。リセット・リージョンはキャッシュ可能、
実行可能で、
書込保護されています。
ブートROMデバイスがPARレジスタによって他のアドレスへマップさ
この64Kバイトのマッピングは、
れていても、上記アドレスに固定されており必ずアクティブです。BOOTCS, ROMCS1, ROMCS2に
つながれたROMデバイスは、
物理アドレス・スペース 40000000h(1Gバイト)以下のどこにでもマッ
プすることができます。
3.7.6.1
BIOSシャドウのためのブートROMデバイス
BIOSを使用するシステムによく使われるブートROMデバイスは512KバイトFlashです。BIOSのシャ
リアル・モードのコードによってアクセスできるように、00100000h 以下に
ドウを行う1つの方法は、
マップすることです。これは1つのPARレジスタで簡単に行うことができます。シャドウイングのため
にマップするブートROMのアドレスは、割込みベクタ・テーブルのすぐ上である 00001000h がよく
使われます。Table 3-8 に示すように、89FC0001h をPARレジスタに設定します。
Table 3-8
PARプログラミング例:BIOSシャドウのためのブートROMデバイス
Bit Field
Value
Target Device
100b
BOOTCS
Attribute Field
010b
Write enable, noncacheable, code execution permitted
Page Size
Region Size
Start Address
3.7.6.2
Meaning
0b
7Fh
1h
4-Kbyte granularity
Specifies 128 4-Kbyte pages for a 512-Kbyte region size
Physical address 00001000h
オペレーティング・システムを直接実行する(Execute-In-Place, XIP) 2バンクのFlash
1バイト・バス幅の8-MビットFlashを8つを持っているシステムにおいて4つはROMCS1、残りの4つは
ROMCS2につながっています。これらのデバイスを、8Mバイトの連続するアドレス空間 0040000000BFFFFFh にマップするとします。この場合、2つのROMチップ・セレクトを使用するため、PARレジス
タも2つ必要になります。この例ではPAR4とPAR5を使用します。PARレジスタのプログラミングとと
もに、
ROMチップ・セレクトも実際のピンに割り当てなければならないので注意してください。
A20FC040h をPAR4に書き込むことによって最初のバンクのFlash 用のROMCS1を設定します。
Table 3-9 に各フィールドの意味を示します。C20FC080h をPAR5に書き込むことによって2つ目
のバンクのFlash用のROMCS2を設定します。Table 3-10 に各フィールドの意味を示します。
Table 3-9
PARプログラミング例:XIP OS用Flash(第1バンク)
Bit Field
Value
Meaning
Target Device
101b
ROMCS1
Attribute Field
000b
Write enable, cacheable, code execution allowed
Page Size
1b
64-Kbyte granularity
Region Size
3Fh
Specifies sixty-four 64-Kbyte pages for a 4-Mbyte region size
Start Address
40h
Physical address 00400000h
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
3-17
システムの初期化
Table 3-10
PARプログラミング例:XIP OS用Flash(第2バンク)
Bit Field
Value
Meaning
Target Device
110b
ROMCS2
Attribute Field
000b
Write enable, cacheable, code execution allowed
Page Size
3.7.7
1b
64-Kbyte granularity
Region Size
3Fh
Specifies sixty-four 64-Kbyte pages for a 4-Mbyte region size
Start Address
80h
Physical address 00800000h
SDRAM リージョン
PARレジスタはSDRAMのリージョンを設定することもでき、読み書きの保護、キャッシュの可否、及
び実行の可否に関する属性を制御することができます。
3.7.7.1
DMAバッファの設定
PCIやGPバス・デバイスはGP-DMAまたはPCIバス・マスタを使って、直接SDRAM内のバッファに読
み書きを行うことがあります。通常このようなバッファに対しては、キャッシュ不可にしておくことが望
非常に複雑で、
オペレー
まれます。これはCPUのページング・ユニットによって行うこともできますが、
ティング・システムのページ・テーブルの使用法と共存できない場合があります。
PARを使うとどのような場合でも、
リージョンのキャッシュ可否を設定することは非常に簡単です。
PARレジスタの Cacheability Control Attribute (bit 27) を設定することによって行うことができ
ます。例えば、512Kバイトのリージョンを高速イーサネットPCIコントローラの送受信バッファに割り
当てるとします。このリージョンはデータのみの領域なので、Code Execution Attribute (bit 28) は
1にセットします。
リージョンが物理アドレス 00020000h にある場合、PARレジスタに設定する値は F9FC0020h に
なります。Table 3-11 に各フィールドの意味を示します。
Table 3-11
PARプログラミング例:DMAバッファの設定
Bit Field
Value
Meaning
Target Device
111b
SDRAM
Attribute Field
110b
Write enable, noncacheable, code execution denied
Page Size
0b
4-Kbyte granularity
Region Size
7Fh
Specifies 128 4-Kbyte pages for a 512-Kbyte region size
Start Address
20h
Physical address 00200000h
もちろんこれは、絶対に必要な事ではありません。ÉlanSC520 マイクロコントローラのキャッシュ・
コントローラは、常にキャッシュとSDRAMとのコヒーレンシーを保っています。GP-DMAチャネルや
PCIバス・マスタのバッファ・リージョンに対しては、CPUでキャッシュするよりもPARレジスタでキャッ
シュ不可にするほうが効果的で、より良いバス性能を得ることができます。なぜならば、
コヒーレン
シーを確保するためのバス・アクセス(及び遅延)を防ぐことができるためです。
3.7.7.2
コード・セグメントの書込み保護
多くの組込みシステムでは、ほとんど(もしくは全ての)アプリケーションやオペレーティング・システ
ムのコードは、
メモリ上に連続して配置されています。このような場合、1つのPARレジスタでほとん
ど(もしくは全ての)コードの書込み保護を行うことができます。プログラムが誤って書込み保護され
た領域に書込もうとした場合、割込みが発生します。CPUは書込みサイクルを終了しますが、
メモリ・
デバイスに対する実際の書込み動作は、
場合に応じてSDRAMまたはROMコントローラが防ぎます。
3-18
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
システムの初期化
実際に書込み保護違反の割込みが発生した場合、違反を起こしたスレッドをキルする、
システムをリ
スタートするなど、
いくつかの対応をとることができます。さらに、
このイベントは記録しておくことが
でき、
デバッグや診断ソフトによって使用したりコンソールに表示したりすることができます。デバッ
グ作業中は、
書込み保護違反割込みサービス・ルーチンの先頭アドレスにブレイク・ポイントをセットし
ておくと良いでしょう。
システム・コードがアドレス0から始まるSDRAMの最初の768Kバイトにあると想定すると、PARレジ
スタに設定する値は Table 3-12 に示す通り E602C000h になります。
Table 3-12
3.8
PARプログラミングの例:コード・セグメントの書込み保護
Bit Field
Value
Target Device
111b
Meaning
SDRAM
Attribute Field
001b
Write disable, cacheable, code execution permitted
Page Size
1b
64-Kbyte granularity
Region Size
Bh
Specifies twelve 64-Kbyte pages for a 768-Kbyte region size
Start Address
0h
Physical address 00000000h
割込みマッピングの設定
ÉlanSC520 マイクロコントローラは、非常に柔軟性の高い割込みのルーティングやコントロールが
できます。各々のハードウエアが発生する割込み要求は、
プログラマブル・インタラプト・コントローラ
(PIC) のそれぞれ違った優先度に割り当てることができます。
マッピングや処理動作が固定された基本的なPCとは対照的に、
ÉlanSC520 マイクロコントローラは
非常に柔軟性に富んだ割込み管理のアーキテクチャを持っています。詳しくは第15章「プログラマブ
ル・インタラプト・コントローラ」を参照してください。特に第15章の「 15.5.2 割込みソース」は非常
に重要な情報です。
以下の節では、割込みを設定するソフトウエアで考慮しなければならないオプションについて解説し
ます。
3.8.1
割込みのエッジ検出またはレベル検出
割込みをエッジ検出にするかレベル検出にするかは、PIC単位あるいは個々の割込みごとに設定する
ことができます。
例えば、スレーブ2割込みコントローラの割込みを全てエッジ検出にすることができます。
■ Interrupt Control (PICICR) レジスタ (MMCR offset D00h) のS2_GINT_MODE ビットが1の
場合、Slave 2 PIC Initialization Control Word 1 (S2PICICW1) レジスタ (Port 0024h) の
LTIMビットによって、
このコントローラ全体に対する割込みをどのように検出するかを設定する
ことができます。
■ S2_GINT_MODE ビットが0にクリアされた場合、Slave 2 PIC Interrupt Mode (SL2PICMODE)
レジスタ (MMCR offset D04h) によって、PICに入る割込み1つ1つに対して個々にエッジまた
はレベル検出の設定を行うことができます。
3.8.2
割込みのマッピング
Interrupt Mapping レジスタによって各割込みソースは、PICブロックの割込みチャネルの1つまた
はNMIにマップするか、あるいはディセーブルすることができます。柔軟性の高いÉlanSC520 マイ
クロコントローラでは、
システム内のどのような割込みソースであっても、通常の割込みだけでなく
NMIに割り当てることもできます。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
3-19
システムの初期化
3.8.3
割込み極性
各割込みコントローラは、Low-to-Highのエッジ、
またはアクティブ High レベルの検出を行います。
アクティブ Low(エッジ、
レベル検出どちらでも)の割込み出力を持つ外部デバイスを使用する場合、
外部割込み信号を反転するプログラマブルなロジックを備えています。
多くのデバイスがオープン・コレクタ出力を持つアクティブ Low の割込みを発生します。このような
デバイスは、
Interrupt Pin Polarity (INTPINPOL) レジスタ (MMCR offset D10h) の対応するビット
を立てることで簡単に対応することができます。例えば、
このようなデバイスが GPIRQ8 に接続さ
れているとします。この場合、Interrupt Pin Polarity (INTPINPOL) レジスタの GPINT8_POL ビッ
トに1をセットすることにより、
アクティブ Low の割込み入力ピンにすることができます。
リセット時に各割込みソースの極性を正しく設定しておくことが重要です。
3.9
プログラマブル I/O ピンの設定
ÉlanSC520 マイクロコントローラの初期化において重要な作業の1つはプログラマブル I/O (PIO) ピ
ンの設定です。これらは汎用の I/O ピンで、
入力にも出力にもプログラムすることができます。入力に
設定された場合、
入力の状態は PIOx Data レジスタの PIOx_DATA ビットから読むことができます。
PIOピンは PIOx Direction レジスタの対応する direction ビットをセットすることによって、出力に
も設定することができます。
3.10
PCI ホスト・ブリッジとアービトレーションの設定
PCI ホスト・ブリッジは、デバイスの探索や設定などのPCIオペレーションを行う前に初期化および設
定を済ませなければなりません。PCI ホスト・ブリッジの設定は、2つのパート:ÉlanSC520 マイクロ
コントローラに特有の設定と通常のPCIバスの設定に分かれます。
1.
PCI ホスト・ブリッジの設定
a. コンカレンシ・モードやPCIバス・マスタ・アービトレーション、その他の、必要なÉlanSC520 マ
イクロコントローラのアービトレーション・モードをプログラムします。アービトレーションに関
する詳しい情報は 第8章の「 8.5 初期化」を参照してください。
b. 必要に応じて Programmable Address Region (PAR) レジスタを設定します。1つか2つ
の VGAビデオ・コントローラを持つ場合、VGAグラフィック・メモリを PC と互換性のある
SDRAMの領域に配置するようPAR0とPAR1を設定しなければなりません。PAR0とPAR1は
物理アドレス 00100000h 以下へのマッピングを必要とする他のPCIペリフェラル(例えばネッ
トワーク・カード)でも使用することがあります。PCIバス・メモリ・スペースのプログラムに関
しては、第4章「システム・アドレス・マッピング」を参照してください。
c. ÉlanSC520 マイクロコントローラ特有のPCI ホスト・ブリッジの設定 (ライト・ポスティング、
リトライ・タイムアウト・カウンター、割込み、その他)を行います。ノンコンカレント・アービト
レーション・モードでは、
ライト・ポスティングはディセーブルしておかなければならいことに注
意してください。ノンコンカレント・アービトレーション・モードに関しては、第8章「システム・
アービトレーション」を参照してください。
d. 標準的なPCIバス・コンフィギュレーション・レジスタを設定します。第9章の「9.5.2 設定情報」
をご参照ください。
2.
外部PCIバス・デバイスを設定します。
一般的に PCI ホスト・ブリッジの設定ビットは、
システムまたはプログラマブル・リセット後のPCIバス
の初期化中以外では変更するべきではありません。
3-20
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
システムの初期化
3.11
内蔵ペリフェラルのディセーブル
ほとんどのアプリケーションでは、ÉlanSC520 マイクロコントローラが内蔵する UART やリアル・
タイム・クロック (RTC) を使用するでしょう。しかしながら場合によっては、同じ I/O ロケーションに
マップされた外付けのデバイスを使用しなければならないこともあります。外部デバイスを使う場合、
対応する内部デバイスをディセーブルしなければなりません。内蔵デバイスは固定のアドレスを持っ
ており、マップし直すことができないのでディセーブルするしか方法がありません。内蔵デバイスが
ディセーブルされた場合、
これらの I/O アドレスに対するアクセスはGP バスに転送されます。
これらのペリフェラルをディセーブルした場合、外部に接続されたデバイスをアクセスするために、内
部でのアドレスでコーディングを停止します。外部デバイスがチップ・セレクトを使用せずにアドレス
のデコードをできない場合、PARレジスタを使用してチップ・セレクトをマップします。
内蔵デバイスの代わりに外付けのデバイスを使わなければならない、
いくつかの理由があります。一
般的な理由としては、パラレル・ポート、
シリアル・ポート、
フロッピー・ディスク・コントローラおよびRTC
を集積したマルチ・ファンクション・デバイスを用いる場合です。
■ 内蔵RTCは、Address Decode Control (ADDDECCTL) レジスタ (MMCR offset 80h) の
RTC_DIS ビットに1をセットすることによってディセーブルされます。
■ UART 1 および UART 2 は、
Address Decode Control (ADDDECCTL) レジスタの UART1_DIS
および UART2_DIS ビットを1にセットすることによってディセーブルされます。
内蔵ペリフェラルがディセーブルされた場合、
外部ペリフェラルの割込み信号は、
割込みチャネルを適
宜割り当てられた外部割込みピンに接続しなければなりません。例えば、
外部UARTでUART 2 (COM2)
を置き換える場合、
割込み信号を GPIRQ8 に接続し、それを割込み優先度 P3 に設定します。
この場合、GPIRQ8 に割り当てられたピンは、PIO15-PIO0 Pin Function Select (PIOPFS15_0)
register (MMCR offset C20h) の PIO15_FNC ビットをセットし、汎用 IRQ(デフォルトのPIO機能
ではなく、
ピンのインタフェース機能)に設定しなければなりません。
注意:内蔵ペリフェラルがディセーブルされた場合でも、
それらの機能は全て生きています。内蔵ペリフェラルのディ
セーブルは、単にそれらのアドレス・デコーディングを停止するだけです。例えば、
もしRTCが割込みを発生す
アクセス
るようにプログラムされた後にディセーブルされた場合、RTCは引き続き割込みを発生し続けますが、
することはできなくなります。
したがって内蔵ペリフェラルをディセーブルする場合、割込みを全て停止してお
くことが重要です。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
3-21
システムの初期化
3-22
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
第4章
システム・アドレス・マッピング
4.1
概要
ÉlanSC520マイクロコントローラは、
リアルタイム・オペレーティング・システム(RTOS)とWindows
互換を持つPC/ATシステムで必要とされる柔軟性のあるメモリとI/Oアドレスのデコード機能を持っ
ています。アドレスのデコーディングはメモリ・コントローラ、
GPバス・コントローラ、PCIホスト・ブリッ
ジ・コントローラとの間で分担されて行われます。ÉlanSC520マイクロコントローラは次のメモリと
I/Oアドレス・マッピングのオプションを提供します。
( 256Mbytesを上限とするSDRAMアレイ
■ デフォルトのSDRAMマップは00000000hから始まり
の合計容量によって定義される)SDRAMのトップまでのリニア空間です。
■ デフォルトのboot ROM/Flashチップセレクト(BOOTCSピン)は、FFFF0000-FFFFFFFFhから
CPUメモリ空間のトップまでの64Kバイトのリニア空間にマップされていて、
この全ROM空間は
コンフィギュレーション・レジスタによってリダイレクトすることができます(アドレス変換はサポー
トされていません)。
■ PC/ATのI/O空間またはPCIコンフィギュレーション空間の中にない、
全てのコンフィギュレーショ
ン・レジスタは、FFFEF000-FFFEFFFFhからの4Kバイトのメモリ・アドレス空間にメモリ・マップさ
れています。
– この4K バイトの領域はmemory-mapped configuration region(MMCR)と呼ばれます。
– オプションとして、MMCRはConfiguration Base Address( CBAR)レジスタ(Port FFFCh)
と呼ばれるI/Oマップされたレジスタを使い、低い1Gバイト領域の任意の4Kバイトの境界にリ
ロケートすることができます。
– たとえConfiguration Base Address( CBAR)レジスタで変換されていても、メモリの上位
(ブート空間の下)にあるデフォルトのMMCR領域は見ることができます。
■ デフォルトのPCIバスのマップは、SDRAMの最上部からブートROM/Flash領域とMMCRの68K
バイトを除いた4Gバイトまでの連続的な空間にあります。
■ 16個の汎用Programmable Address Region(PAR )のウインドウが、
x86のリアル・モードのサ
ポートが必要なオペレーティング・システムをはじめ、
様々なアプリケーションにアドレスのマッピ
ングを可能にしています。 それぞれのウインドウは下位の1G バイトの任意メモリ領域を次のリ
ソースに向けられることができます。
– キャッシュ可能、書込み保護、実行不可のリージョン・アトリビュートを持つ3つのROMチップセ
レクトのうち1つ。
– GPバスの外部メモリまたはI/Oペリフェラルのための8つのGPバスのチップセレクトのうち1つ。
– PCI空間をSDRAMの上に重ねる必要のあるアプリケーションのために、2つのPARレジスタ
がサイクルをPCIバスに送ります。SDRAMのトップから32ビットメモリ空間のトップまでの間
より上の全てのアクセスは自動的にPCIバスに転送されます(ただし、ROMブート空間とメモ
リマップされているコンフィギュレーション空間は除く)。
– 通常のSDRAM空間(下部の256Mバイト)のアクセスはROM、GPバス、あるいは PCI バスに
マップすることができます。
– キャッシュ禁止、書込み保護、または命令実行禁止のバッファを実現するために、SDRAM領域
にPARウィンドウを作ることができます。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
4-1
システム・アドレス・マッピング
■ 内蔵の PC/AT互換ペリフェラルは通常のPC I/O スペース(すなわち、
プログラマブル割込みコ
ントローラ、プログラマブル・インターバル・タイマ、GP バスDMAコントローラ、RTC 、および
UART)にダイレクト・マップされます。その他の全ての内蔵ペリフェラル(ウォッチドッグ・タイマ、
ソフトウェア・タイマ、GPタイマおよびSSI )はメモリ・マップされています。
■ 全SDRAM空間に対しての外部PCIバス・マスタ・アクセスを許すために、
PCIのターゲットとして、
PCIバス・ホスト・ブリッジは通常のSDRAMアドレス空間をデコードします。PCIマスタからのPCI
バスI/OのアクセスはPCIホスト・ブリッジによってデコードされません。
4.2
レジスタ
アドレスのデコードはTable 4-1とTable 4-2に掲載されているコンフィギュレーション・レジスタによっ
て制御されます。
Table 4-1
メモリ・マップされたアドレス・デコード・レジスタ
Register
Mnemonic
MMCR
Offset
Address
Address Decode Control
ADDDECCTL
80h
RTC disable, UART 1 and UART 2 disables,
write protect violation interrupt enable, I/O hole
access destination
Write-Protect Violation Status
WPVSTA
82h
Write-protect violation interrupt status, master,
window number
Programmable Address Region 0
PAR0
88h
General-purpose resource decoding
Programmable Address Region 1
PAR1
8Ch
General-purpose resource decoding
Programmable Address Region 2
PAR2
90h
General-purpose resource decoding
Programmable Address Region 3
PAR3
94h
General-purpose resource decoding
Programmable Address Region 4
PAR4
98h
General-purpose resource decoding
Programmable Address Region 5
PAR5
9Ch
General-purpose resource decoding
Programmable Address Region 6
PAR6
A0h
General-purpose resource decoding
Programmable Address Region 7
PAR7
A4h
General-purpose resource decoding
Programmable Address Region 8
PAR8
A8h
General-purpose resource decoding
Programmable Address Region 9
PAR9
ACh
General-purpose resource decoding
Function
Programmable Address Region 10
PAR10
B0h
General-purpose resource decoding
Programmable Address Region 11
PAR11
B4h
General-purpose resource decoding
Programmable Address Region 12
PAR12
B8h
General-purpose resource decoding
Programmable Address Region 13
PAR13
BCh
General-purpose resource decoding
Programmable Address Region 14
PAR14
C0h
General-purpose resource decoding
Programmable Address Region 15
PAR15
C4h
General-purpose resource decoding
Table 4-2
ダイレクト・マップされたアドレス・デコード・レジスタ
Register
Mnemonic
I/O
Address
Configuration Base Address
CBAR
FFFCh
4-2
Function
Base address for the alias of the MMCR
registers
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
システム・アドレス・マッピング
4.3
オペレーション
ÉlanSC520マイクロコントローラでサポートされているシステム・バス・マスタには、Am5x86 CPU、
PCIバス、そしてGP バスDMAコントローラの3つのタイプがあります。
Table 4-3で示すように、3つのバスマスタはそれぞれが特定のタイプのアドレス空間にアクセスする
ことができます。
■ Am5x86 CPUとPCIバスはそれぞれ別のメモリとI/Oアドレス空間を持ちます。
■ PCIバスはデバイス・コンフィギュレーション・レジスタのためにさらに別の空間を設定します。
■ GPバスDMAコントローラはGPバス・デバイスとSDRAMとの間のfly-by転送をサポートします。
したがって、バスマスタとしてはメモリ空間のみをサポートします。
Table 4-3
バスマスタのアドレス空間
Bus Master and
Address Space
CPU
Memory
SDRAM
ROM
✔
✔
I/O
PCI
Bus
✔
Memory
PCI
Bus
✔
✔
✔
✔
Integrated
PC/AT
Peripherals
Integrated
Non-PC/AT
Peripherals
MemoryMapped
Registers
✔
✔
✔
CBAR
Register
✔
✔
✔
I/O
Configuration
GPDMA
GP
Bus
Memory
1
✔
Notes:
1. Accessed indirectly by the CPU via the PCI configuration registers in I/O space.
Am5x86 CPUとPCIバスの仕様は分離したメモリとI/Oアドレス空間(I/O空間はCPUでは64Kバイト
に限定されます)をサポートします。PCI Local Bus Specification, Revision 2.2ではコンフィギュ
レーション・レジスタのためにさらに別の空間を定義します。
ÉlanSC520マイクロコントローラは次のようにアドレス空間を分割します。
■ メモリ空間
– 最大3つのチップ・セレクトを使用するデータと命令のストレージのためのROM/Flash 空間
( CPUのみがアクセスできる)
– データと命令のストレージのためのSDRAM空間
– GPバス・メモリ空間( CPUのみがアクセスできる)
– PCI バス・メモリ空間( CPUとPCIバス・マスタのみがアクセスできる)
– 内蔵の memory-mapped configuration region (MMCR) レジスタ( CPU のみがアクセス
できる)
■ I/O空間
– 内蔵の PC/AT互換ペリフェラル( CPUのみがアクセスできる)
– MMCR のベース・アドレスをセットするためのConfiguration Base Address (CBAR) レジ
スタ (Port FFFCh)( CPUのみがアクセスできる)
– GPバスI/O 空間( CPUのみがアクセスできる)
– PCI バスI/O空間(CPUとPCIマスタのみがアクセスできる)
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
4-3
システム・アドレス・マッピング
– PCI バス・コンフィギュレーション空間( CPUのみがアクセスできる)
ÉlanSC520マイクロコントローラのメモリとI/Oアドレス領域の構成をTable 4-4に要約します。
Table 4-4
メモリ空間、I/O空間の要約
Device
Memory Space
SDRAM
ï
ï
ROM/Flash
ï
ï
PCI Bus Normal Space
ï
ï
I/O Space
Linear space starting at 00000000h to top N/A
of SDRAM (maximum 256 Mbytes)
PAR registers define noncacheable,
write-protected, nonexecutable regions
BOOTCS mapped to CPU boot space
from FFFF0000ñFFFFFFFFh
(64 Kbytes)
PAR registers define noncacheable,
write-protected, nonexecutable regions
N/A
Default above SDRAM to top of memory
address space (4 Gbytes), minus boot
space (64 Kbytes) and MMCR (4 Kbytes)
Two PAR registers can define any region
that overlays SDRAM space
Any space not claimed by CBAR, PC/AT
peripherals, GP bus (via PAR registers),
or PCI configuration registers (0CF8ñ
0CFFh)
PCI Bus Configuration
Space
N/A
0CF8ñ0CFFh
GP Bus
Defined via PAR registers in lower 1 Gbyte
Defined via PAR registers in lower 64
Kbytes, except for integrated
peripheralsí I/O space
Integrated PC/AT
Peripherals
N/A
0000h-03FFh
MMCR Registers
ï
N/A
ï
Defaults to 4-Kbyte region starting at
FFFEF000h
CBAR can alias this to any 4-Kbyte
boundary in lower 1 Gbyte
Configuration Base
N/A
Address (CBAR) Register
4.3.1
FFFCñFFFFh
外部メモリ、バス、およびチップ・セレクトのプログラミング
ÉlanSC520マイクロコントローラの外部メモリ、バス、およびチップ・セレクトのプログラミングは3つ
のステップで行います。
1.
アドレス空間と指定された領域が必要とするすべてのアトリビュートを設定します。
2.
必要に応じて、
タイミングとインタフェースが必要とするすべてのアトリビュートを設定します。
3.
チップ・セレクトに関しては、PIOレジスタのピンのマルチプレクシングをプログラムすることに
よって、希望するピンに機能を設定します。
この章ではステップ1を行う方法を説明します。外部インタフェース(すなわち、SDRAM、ROM、GP
バス、あるいはPCIバス)の必要とするタイミングとアトリビュートをプログラムするには、
これらのイ
ンタフェースをコントロールするレジスタに書込むことによって行います。最後に、
チップセレクトに
関しては、第23章「プログラマブルI/O 」を参照してください。この章では、他の機能と共有可能なプ
ログラムできるI/O( PIO )ピンを実際にイネーブルする方法が説明されています。
4-4
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
システム・アドレス・マッピング
4.3.2
Programmable Address Region (PAR) レジスタ
Programmable Address Region (PAR) レジスタは、ÉlanSC520マイクロコントローラ・システムの
メモリ空間とI/O 空間領域を設定するための共通のプログラミング・インタフェースを提供します。
Table 4-4で参照されているように、PARレジスタは主にROMとGPバスのアドレス領域を定義するた
めに使われます。さらに、
これはROMとSDRAM領域のアトリビュートをセットするためにも使われます。
特殊な状況で必要となる機能として最初の2つのPARレジスタ (PAR0とPAR1) により通常、
SDRAM
空間に対して行われるCPUアクセスをPCIバスにリダイレクトするように設定することも可能です。
システム上のメモリ空間とI/O空間をユーザが柔軟に構成できるように、ÉlanSC520マイクロコント
ローラは合計16個のPARレジスタを用意しています。最も低い番号のレジスタ (PAR0) が最高の
優先度をもっています。つまり、重なり合って領域がプログラムされた場合は、最も低い番号のPAR
レジスタが最優されます。PARレジスタはそれぞれ32ビットで、MMCR空間にあります。
ÉlanSC520マイクロコントローラはPC/ATコンパチなペリフェラルをサポートするので、
これらのペ
リフェラルが必要とする領域はI/O空間に固定されていて、PARレジスタによってリロケートされませ
ん。これにはGP バスDMAコントローラ、
プログラマブル・インターバル・タイマ(PIT )、
プログラマブ
ル割込みコントローラ(PIC)、2個の16550コンパチブルのUART、
リアル・タイム・クロック(RTC)お
よびPC/ATポート・ロジックを含まれます。
Figure 4-1に32ビットのPARレジスタのレイアウトを示します。レジスタが4つのセクションで構成
されていることに注目してください。
■ Target(TARGET )ビット・フィールドはサイクルの実行先(すなわち、ROM、GPバス等)を定義
します。
■ Attribute(ATTR)ビット・フィールドは、ROMあるいはSDRAMアクセスに対しての書込み保護や
キャッシュ禁止を行ったり、GPバスのアクセスのために特定のチップ・セレクトを選べたりして、
メモリ領域に特別な条件をプログラムできるようにします。
■ Page Size( PG_SZ)ビットは領域の中の各メモリ・ページのサイズを定義します。
■ Region Size/Start Address (SZ_ST_ADR) ビット・フィールドは領域の初めと領域の合計サイ
ズの両方を定義するために使われます。
PARレジスタはターゲットの実際のアドレス空間だけを定義するために使われていることに注目して
ください。ROMとGPバス・デバイスが必要とする、
タイミングとバス幅のパラメータは制御しません。
これらの制御はROMコントローラとGPバス・コントローラ・コンフィギュレーション・レジスタで別途
プログラムしなくてはなりません。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
4-5
システム・アドレス・マッピング
Figure 4-1
Programmable Address Region (PAR)レジスタのフォーマット
Programmable Address Region Register
31–29
28–26
25
24–0
Target of the
PAR Window
(TARGET)
Attribute
(ATTR)
Page Size
(PG_SZ)
Region Size/Start Address
(SZ_ST_ADR)
31
30
29
Target Device
25
Memory Page Size
0
0
0
Window disabled
0
4-Kbyte memory page size on 4-Kbyte
boundary, ignored for I/O cycles.
0
0
1
GP bus I/O
1
0
1
0
GP bus memory
64-Kbyte memory page size on 64-Kbyte
boundary, ignored for I/O cycles.
0
1
1
PCI bus (applies to
memory cycles to
PAR 0–PAR 1 only)
1
0
0
BOOTCS (ROM)
1
0
1
ROMCS1
1
1
0
ROMCS2
1
1
1
SDRAM
Memory
Cycle
When
[25]=0
Memory
Cycle
When
[25]=1
I/O
Cycles
Only
24–18
17–0
Region Size
[6–0]
Start Address
A[29–12]
24–14
13–0
Region Size
[10–0]
Start Address
A[29–16]
24–16
15–0
Region Size
[8–0]
Start Address
A[15–0]
Size defines up to 128
pages of 4-Kbyte size each,
on 4-Kbyte boundary, for a
512-Kbyte maximum window size.
Size defines up to 2K pages
of 64-Kbyte size each on 64Kbyte boundary, for a 128Mbyte maximum window
size.
Size defines up to 512 bytes
with byte resolution in 64Kbyte I/O space.
If Target is GP bus
If Target is ROM or SDRAM
4-6
28
27
26
GP Bus Chip Select
0
0
0
GPCS0
0
0
1
GPCS1
0
1
0
GPCS2
0
1
1
GPCS3
1
0
0
GPCS4
1
0
1
GPCS5
1
1
0
GPCS6
1
1
1
GPCS7
28
27
26
ROM/SDRAM Attribute
0 = Write-enabled region
1 = Write-protected region
0 = Cacheable region
1 = Noncacheable region
0 = Code execution permitted
1 = Code execution denied
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
システム・アドレス・マッピング
4.3.3
メモリ空間
ÉlanSC520マイクロコントローラのメモリ空間にはSDRAM、ROM、PCIバス、GP バス、MMCRレジ
スタが含まれます。Figure 4-2にシステム・メモリ・マップを示します。
■ CPUは全メモリ空間にアクセスできます。
■ PCIバス・マスタとGP バスDMAコントローラはSDRAM空間のみにアクセスができます。
これらのメモリ空間の特徴は次のセクションで定義されています。
Figure 4-2
システム・メモリ・マップ
4 Gbytes
BOOT ROM Space
MMCR Space
FFFFFFFFh
FFFF0000h
FFFEFFFFh
FFFEF000h
Dedicated
PCI Bus
Space
1 Gbyte
3FFFFFFFh
Default PCI Bus
Space
Can also be
retargeted to
ROM or GP bus
256 Mbytes Default is SDRAM up
to amount of SDRAM
installed. Default is PCI
from top of configured
amount of SDRAM to
256 Mbytes
0
0FFFFFFFh
00000000h
Notes:
The boot ROM device
connected to BOOTCS
defaults to a 64-Kbyte
region at the top of memory.
This space defaults to PCI
bus memory space, but
portions can be redirected
to ROM or GP bus via PAR
registers. Regions with
noncacheable, writeprotected, and/or executeprotected ROM attributes
can be also be specified
with the PAR registers. Any
unused regions in this
space default to PCI.
This area is not decoded by
the ÉlanSC520
microcontrollerís host
bridge as a target.
This space defaults to
SDRAM, but portions can be
redirected to ROM, GP bus,
or PCI bus memory via PAR
registers; or redirected to
MMCR space, via the CBAR
register. ROM or SDRAM
regions with noncacheable,
write-protected, and/or
execute privilege attributes
can be also be specified with
the PAR registers.
Accesses from PCI bus
masters are allowed to
installed SDRAM only.
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
4-7
システム・アドレス・マッピング
4.3.3.1
SDRAM空間
ÉlanSC520マイクロコントローラ・システムのSDRAM空間のデフォルトは、最も低い32ビットのメモ
リ・アドレス( 00000000h )から始まりSDRAM の最上部で終わります。ここで、SDRAMの最上部と
は、
システムに実装されているSDRAMの容量とプログラムされているSDRAMコントローラのコン
フィギュレーション・レジスタの設定値によって定義されます。
ÉlanSC520マイクロコントローラ・システムでサポートされるSDRAMの最大容量は256Mバイトで、
1つから4つの物理バンクの様々な組み合わせになります。SDRAM コンフィギュレーション・レジス
タがプログラムされ、
個別のバンクがイネーブルされると、
SDRAMはすぐにアクセス可能になります。
ÉlanSC520マイクロコントローラは、SDRAM空間の中のどんな領域にも特別なアトリビュートを適
用することができます。これらのアトリビュートは通常動作では必要とされませんが、
アプリケーショ
ンによってはこれを使用すると便利です。次に説明するように、SDRAMの特定の領域に特別なアト
リビュートを適用する場合にのみ、SDRAMをアクセスするためにPARレジスタをプログラムする必
要があります。どのSDRAM領域にも3つのアトリビュートが適用できます。
■ キャッシュ不可領域
■ 書込み禁止領域
■ 命令実行コントロール
一般的なシステム構成では、外部 P C I バス・マスタは全 S D R A M 領域にフルアクセスできます。
ÉlanSC520マイクロコントローラのPCIホスト・ブリッジ内のアドレス・デコード回路は、外部PCIバス・マ
スタがPCIバス上のアドレス空間に出力したサイクルを自動的に受け取り、
これをSDRAMに向けます。
メモリ・コントローラに転送されたPCIバス・マスタ・サイクルは常にSDRAMサイクルとなり、
これはたと
えPARレジスタにGPバスかROMにアクセスするようにプログラムされていても変わりません。同じく、
PCIバス・マスタがメモリ・コントローラに転送されるメモリ書込みサイクルを生成し、そしてPARがその
領域を書込み禁止にプログラムしている場合でもSDRAM書込みサイクルはSDQM信号を非アクティブ
として発生し、
データは捨てられ、
PCIブリッジのFIFOに書込まれたデータは消されます。この場合、
ÉlanSC520マイクロコントローラに割込みを発生するようにプログラムすることができ、
このような書込
み保護違反が起き、
PCIバス・マスタがその原因であることをCPUに知らせることができます。書込み
保護を設定する前に書込みバッファに書込まれたすべてのデータは正常にSDRAMに書かれます。
4.3.3.2
ROM/Flash空間
ÉlanSC520マイクロコントローラはPARレジスタによって選択されるROM/Flashのための3つの個
別のアドレス領域をサポートします。ブート・デバイスにはBOOTCS ROMチップ・セレクトを使われ
なくてはなりません。そして、そのデフォルトは4GバイトのCPU空間のトップの64K バイトのリニア領
域になります。ブート処理において、ROMコードでPARレジスタを設定して全BOOTCS ROM 空間
をイネーブルし、そして望む領域にリダイレクトするようにできます。ただし、
デフォルトの64Kバイ
トの領域は常にイネーブルされています。 P A R レジスタには 3 つの R O M チップ・セレクト領域
(BOOTCS、ROMCS1、ROMCS2)にそれぞれ別のTARGET値を設定できます。ROM空間はCPU
だけが、PARレジスタの設定にかかわらずアクセスできます。
通常、
ROM空間はキャッシュ可能で、そしてこれらの領域への書込みが許されています(これはFlash
デバイスに関して有用です)。また、
PARレジスタは、キャッシュ禁止や書込み禁止の領域を定義する
ような特定のアトリビュートをイネーブルするためにも使われます。
ÉlanSC520マイクロコントローラは、プログラマブルなタイミングや、ROM配列の複数のデータ幅を
サポートします。これらの特性はÉlanSC520マイクロコントローラのアドレス空間とは独立に設定
されます。機能の解説とROMチップセレクトのタイミングやデータ幅を設定する手順の説明は、第
12章「 ROM/Flashコントローラ」を参照してください。
4-8
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
システム・アドレス・マッピング
4.3.3.3
GPバスのメモリ空間
GPバスのメモリ空間はPARレジスタでのみイネーブルでき、またCPUからのみアクセス可能です。
8つのチップ・セレクトがPARレジスタによって選択できます。PARレジスタはGP バスのメモリ空間
の領域でアトリビュートを定義することを許しておらずGPバスのメモリ空間は常にキャッシュ禁止で
あることに注意してください。
PARレジスタはGP バス空間と特定のチップ・セレクトを選ぶために使われますが、データ・バスの幅
とバスのタイミングを制御するためにはGPバス・コントローラ・ブロックの中の別のコンフィギュレー
ション・レジスタをプログラムしなくてはなりません。メモリ・アドレス空間のGP バス・チップ・セレク
トへのマッピングについての制限はありません。例えば、連続していないメモリ領域が特定のチップ・
セレクトのために必要な場合、複数のPARレジスタが同じチップセレクトをターゲットとしますが、異
なったアドレス範囲を持つようにプログラムできます。
自分でアドレスをデコードするデバイスのために、GPバスでポジティブ・アドレス・デコーディングがサ
ポートされていますので、
チップ・セレクトをÉlanSC520マイクロコントローラによって生成すること
ピンをマルチプレクスするレジス
は必要ありません。これは単に、PARレジスタを設定するときに、
タの対応するチップ・セレクトを選択しないことによって行います。(本章の「外部メモリ、バス、
およ
びチップ・セレクトのプログラミング」のステップ3を参照してください。)この場合でも、
アドレスと
コントロール信号はGP バス上で生成されます。
ÉlanSC520マイクロコントローラ・システムではPCI バス・マスタはGPバスにアクセスすることは許さ
れていません。ÉlanSC520マイクロコントローラが持っている通常のSDRAM空間にPCIバス・マスタ
がアドレスを生成し、
その領域がPARレジスタによってGPバスにリダイレクトされた場合、
そのサイクル
はサイクル・タイプにかかわらずSDRAMに書込み禁止で送られて、
その結果のデータは捨てられます。
4.3.3.4
PCIバスのメモリ空間
ÉlanSC520マイクロコントローラのアドレス・デコード・ロジックは、設定されているSDRAMより上に
ある全メモリ空間をデフォルトでPCIバスに割り当てますが、4Kバイトのメモリ・マップト・コンフィギュ
レーション空間と64Kバイトのブート空間は例外です。このアドレス領域の中のすべてのCPUメモリ
空間へのアクセスは、PCIバスにリダイレクトされ、そしてÉlanSC520マイクロコントローラはPCIバ
ス・マスタによって生成されたこのアドレス領域の中のアクセスには関与しません。GP バスDMAコ
ントローラはこの領域にアクセスすることはできません。
CPUはGPバスやROMのために下の1Gバイトの中に領域を割当てることができ、重ね合わせて実質
的にこのPCIバス領域の一部を消してしまうことができます。例えば、通常はデフォルトでPCIバスに
なる領域であるSDRAMのトップと1Gバイトの間のメモリに、ROMデバイスをマップすることができ
ます。この場合、
この特定の領域だけがROMにリダイレクトされ、4Gバイトの空間の中の残りの領域
はPCIバスにリダイレクトされ続けます。
システム・アプリケーションによってはSDRAMのトップから下の領域をPCIバスにリダイレクトする必要
があるものもあります。 この例として、PC/AT のアプリケーションで PCI バスのビデオカードが
000A0000h-000BFFFFh領域にマップされている場合があげられます。この場合、アドレスをCPUか
らSDRAMではなく、
PCIバスへPARレジスタを使ってリダイレクトしなくてはなりません。PCIをターゲッ
トとして選択するためには、
PAR0あるいはPAR1だけしか使うことができないことに注意してください。
4.3.3.5
Memory-Mapped Configuration Region (MMCR) レジスタ空間
ÉlanSC520マイクロコントローラの全ての内蔵ペリフェラルやコンフィギュレーション・レジスタのう
ま
ち、PCIバス・コンフィギュレーション空間、PC/ATペリフェラル・コンフィギュレーション・レジスタ、
たはConfiguration Base Address (CBAR)レジスタとして定義されていないものはメモリ・マップ
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
4-9
システム・アドレス・マッピング
されています。これらのレジスタはリセット後、CPUアドレス空間のトップ近くのFFFEF000hの位置の
4Kバイト領域でアクセスされますが、さらにConfiguration Base Address (CBAR) レジスタにI/O
writeを行うことによって、最初の1Gバイトのメモリ空間(00000000hと3FFFFFFFhの間)の中のどの
4Kバイトの境界にでもエイリアスできます。
MMCRレジスタ空間はProgrammable Address Region (PAR)レジスタより高い優先度を持って
います。
CBARレジスタをプログラムする詳細についてはセクション4.3.4.1を参照して下さい。
この4Kバイトの領域で実在していないレジスタを読むと不確定なデータ値を返します。この領域で
実在していないレジスタに書込んでも何の影響もありません。
4.3.3.5.1
内蔵のメモリ・マップされたペリフェラル
ÉlanSC520マイクロコントローラの非PC/ATの内蔵ペリフェラルはMMCR領域の中で位置していて、
I/Oマップされている内蔵のPC/ATペリフェラルとは異なります。メモリ・マップされているコンフィ
ギュレーション領域に位置しているペリフェラルには次が含まれています。
■ Am5x86 CPU extensionレジスタ
■ SDRAMコントローラとSDRAM バッファ
■ ROMコントローラ
■ PCIホスト・ブリッジ
■ システム・アービトレーション
■ メモリとI/O空間コントロール
■ GP バス・コントローラ
ピン・マルチプレクスとクロック・コントロール
■ PIO、
■ ソフトウェア・タイマ
■ 汎用タイマ0、1、2
■ ワッチドッグ・タイマ
■ 同期シリアル・タイマ (SSI)
■ PC/AT互換ペリフェラルの機能拡張部分
– Programmable input/output (PIO)とprogrammable interrupt controller (PIC)のブロッ
ク内のprogrammable interval timer (PIT) 拡張レジスタ
– UARTの拡張
– Programmable interrupt controller (PIC)の拡張
– リセット・コントローラ
– GP-DMAコントローラの拡張
4.3.4
I/O 空間
ÉlanSC520マイクロコントローラの I/O空間は5つの領域に分割されています。
■ Configuration Base Address (CBAR)レジスタ
■ PCI バス・コンフィギュレーション空間
■ 外部PCIの I/Oデバイス
■ 内蔵PC/AT互換ペリフェラル
■ 外部GP バスのI/Oデバイス
Figure 4-3にÉlanSC520マイクロコントローラのシステムI/Oアドレス空間マップを示します。各領
域の説明は次のセクションに記述します。
4-10
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
システム・アドレス・マッピング
Figure 4-3
システムI/Oマップ
64 Kbytes
CBAR
FFFFh
FFFCh
Default PCI Bus
Space
Can also be
retargeted to GP bus
PCI Configuration
Registers
0CFFh
0CF8h
Default PCI Bus
Space
Can also be
retargeted to GP bus
1 Kbyte
PC/AT Peripherals
(See Table 4-5)
The ìholesî default to
external GP bus, but
can be redirected to
PCI bus. See
Section 4.3.4.4
0000h
0
4.3.4.1
03FFh
Configuration Base Address (CBAR) レジスタ
Configuration Base Address (CBAR) レジスタ (Port FFFCh) は内蔵のメモリ・マップされたペリ
フェラルとMMCRレジスタをリローケートするための 32ビットのレジスタで、
より柔軟性の高いシス
テム・メモリ・マップを可能にします。CBARはI/O空間のFFFChに固定されていて、間違ってプログラ
ムされないように「鍵」がかけられています。
最初の1Gバイトアドレス空間の4Kバイト境界のどこにでも メモリ・マップされたコンフィギュレーショ
ン・レジスタ (MMCR)のエイリアスを持ってくることをCBARは可能にします。MMCRはブートROM
空間のすぐ下のFFFEF000hのメモリ空間で常にアクセス可能ですが、CBARはこの領域のコピーを
下の1Gバイト空間(4Kバイトの境界)のどこにでもオプションとしてプログラムすることができます。
4.3.4.2
PCIコンフィギュレーション空間
PCI Local Bus Specification, Revision 2.2では0CF8-0CFFhからのI/O空間の 8
バイトしかとらない間接マップされたコンフィギュレーション空間が定義されていますが、ÉlanSC520
マイクロコントローラはこの機構をサポートしています。この PCIバスの構成方式では2つの32ビッ
トのI/O位置を使います。
■ PCI Configuration Address (PCICFGADR) レジスタ (Port 0CF8h) はデバイスのレジスタの
本当のアドレスとバス番号を格納するアドレス・レジスタです。
■ PCI Configuration Data (PCICFGDATA) レジスタ (Port 0CFCh) は特定のレジスタのデータ
が書込まれたり、読み出されたりするデータ・レジスタです。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
4-11
システム・アドレス・マッピング
このPCIコンフィギュレーション空間はÉlanSC520マイクロコントローラのCPUだけがアクセスでき、
そのI/OサイクルはPCI バス・コンフィギュレーション・レジスタ・ブロックによって要求されます。
ターゲットとして、
ÉlanSC520マイクロコントローラは他のPCIバス・マスタからのいかなるPCI バス・
コンフィギュレーション空間アクセスをも受付けません。
ホスト・ブリッジに関するPCI コンフィギュレーション・レジスタはÉlanSC520 Microcontroller Reg-
ister Set Manual、注文番号#22005、に解説してあります。PCI バス・デバイス・コンフィギュレーショ
ン・レジスタ・のプログラミングに関する詳細はPCI Local Bus Specification, Revision 2.2を参照
して下さい。
4.3.4.3
PCI I/O 空間
デバイスを通常の直接マップでアクセスするCPUのI/O サイクルは、PCIバスに向けることができま
すが、次の制限があります。
■ 内蔵のPC/ATペリフェラルとCBAR によって保持されているI/Oアドレスは、
いかなる条件におい
ても、PCI バスに転送されることはできません。内蔵のペリフェラルによって要求されたI/Oア
ドレスの詳細については、I/OマップのFigure 4-3およびTable 4-5を参照してください。
■ デフォルトで、I/O アドレス空間のこの部分 (0000-03FFh) の「穴」は外部のGP バスに転送され
ます。Address Decode Control (ADDDECCTL) レジスタ (MMCR offset 80h) によって、
こ
れらの「穴」へのアクセスをPCIバスへ転送するように設定できます。PARレジスタはこの為に
は必要ありません。
■ PCI Configuration Address (PCICFGADR) レジスタの ENABLEビットが0にクリアされてい
るときのみ、PCIバス・コンフィギュレーション空間 (0CFC-0CFFh) に作られたI/OアドレスはI/O
サイクルとしてPCIバスに転送されます。それ以外の場合は、それらは PCIコンフィギュレーショ
ン・サイクルとして転送されます。ダブル・ワードでないアクセスの時だけ、0CF8-0CFBhのポー
PCIコンフィギュレーション・
トはI/OトランザクションとしてPCIバスに転送されます。それ以外は、
サイクルとしてホスト・ブリッジがとります。
デフォルトでは、その他すべてのCPU I/Oサイクルは、通常の PCI I/OトランザクションとしてPCI バ
スに転送されます。PARレジスタをイネーブルすることによって、
この領域の一部をGP バスに向け
るようにすることができます。
ターゲットとして、ÉlanSC520マイクロコントローラはPCI バス・マスタからいかなるI/O空間のアク
セスも受付けません。
4.3.4.4
PC/AT互換I/O ペリフェラルの領域
ÉlanSC520マイクロコントローラには、DMAコントローラ、プログラマブル割込みコントローラ(PIC)、
プログラマブル・インターバル・コントローラ(PIT)、UART、
リアル・アイム・クロック、そして様々なコ
ントロール/ステータス・レジスタを含む、
PC/AT互換の内蔵ペリフェラルのコアが含まれています。
ÉlanSC520マイクロコントローラのアドレス・デコード・ロジックによって自動
これらのI/Oアドレスは、
的にデコードされ、特別な設定やPARレジスタを必要としません。Table 4-5にこれらの内蔵ペリフェ
ラルのI/Oマップの要約を示します。
ÉlanSC520マイクロコントローラの内蔵ペリフェラルによって取られていない下位の1Kバイト領域
でのI/Oトランザクションには穴があります。これらのアドレスは外部的にデコードするようにするか、
あるいは、
もしチップ・セレクトが必要であれば、
これらのアドレスのためにPARレジスタをプログラム
することができます。
■ デフォルトで、I/Oアドレス空間のこの部分 (0000hから03FFh) の穴へのアクセスのすべては外
部のGP バスに転送されます。
■ すべてのアクセスをPCI バスに転送するには、Address Decode Control (ADDDECCTL) レ
4-12
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
システム・アドレス・マッピング
ジスタ (MMCR offset 80h) の中の IO_HOLE_DEST ビットをセットします。
■ 必要なら、PARx レジスタを使って、個々のペリフェラルごとに、
アクセスをPCIバスに送ることを
禁止することができます。このようにして、
個々のペリフェラルへのアクセスを外部のGPバスに
戻すことができます。
例えば、P C I カード(特に V G A カード)にはレガシー I / O の位置を使っているものがあります。
IO_HOLE_DEST ビットは穴をPCIまたはGP バスに向けさせることができます。レガシーの GPバ
スペリフェラルと共にPCIペリフェラルを必要としているシステム(例えば、PCI VGAカードとGP バ
ス・キーボード・コントローラ)では、IO_HOLE_DEST ビットはすべて1にセットして、
すべてのアクセ
レガシーのGPバス・キー
スをPCI バスに向けるようにします。そしてこの設定が無効になるように、
ボード・コントローラをPARレジスタを使って設定します。これについての別な説明が「 PCI バス上
のVGAコントローラ」にありますので参照してください。
注意:もしPARx レジスタが、穴の中のGP バスI/O空間をアドレスするように設定されている場合は、定義されてい
る領域へのアクセスは、IO_HOLE_DEST ビットの値にかかわらず、GP バスに転送されます。外部のペリ
フェラルがÉlanSC520マイクロコントローラの内部のペリフェラルのどれにも重なってマップされないようにす
るのは、
プログラマの責任です。この場合、通常の動作は保証されません。このトピックについてもっと詳細
な情報については「内蔵ペリフェラルのディセーブル」を参照してください。
Table 4-5
PC/ATペリフェラルのI/Oマップ
Peripheral Core
I/O Address Range
Slave GP-DMA Controller
0000–000Fh
Master Interrupt Controller
0020–0021h
Slave 2 Interrupt Controller
• This controller is not defined in standard PC/AT architecture, but has been included
in the …lanSC520 microcontroller to provide additional interrupt request sources
0024–0025h
Programmable Interval Timer (PIT)
0040–0043h
Keyboard Control A20M and Fast Reset (SCP)
• Accesses to these locations are always directed to the external GP bus, but are
also snooped internally for PC/AT functions.
0060h, 0064h
System Control Port B/NMI Status
• Reads and writes to this location are directed to this register only and are not seen
on the external GP bus
0061h
Real-Time Clock (RTC) Index/Data
0070h, 0071h
General-Purpose Scratch Registers
• These are unused locations from the original DMA Page Register file and are
maintained for PC/AT compatibility. Writes to these locations update the
corresponding register and are also seen on the external GP bus. Reads to the
locations return the data from the corresponding register, but do not initiate a cycle
on the external GP bus.
0080h
0084–0086h
0088h
008C–008Eh
General-Purpose Scratch Register
• This is an unused location from the original DMA Page Register file and is
maintained for PC/AT compatibility. Reads and writes to this location are directed
to this register only and are not seen on the external GP bus.
008Fh
GP-DMA Page Registers
• Reads and writes to these locations are directed to these registers only and are not
seen on the external GP bus.
0081–0083h
0087h
0089h-008Bh
System Control Port A
0092h
Slave 1 Interrupt Controller
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
00A0–00A1h
4-13
システム・アドレス・マッピング
Table 4-5
PC/ATペリフェラルのI/Oマップ(続き)
Peripheral Core
I/O Address Range
Master GP Bus DMA Controller
00C0–00DEh
(even addresses only)
Floating Point Error Interrupt Clear
00F0h
UART 2
02F8–02FFh
UART 1
03F8–03FFh
ÉlanSC520マイクロコントローラは外部デバイスを使用したいアプリケーションの為に内部のUART
とリアル・タイム・クロック (RTC) をディセーブルすることもできます。これはAddress Decode
Control (ADDDECCTL) レジスタ (MMCR offset 80h)のコンフィギュレーション・レジスタ・ビット
によってコントロールされています。これらのペリフェラルがディセーブルされているときは、I/Oサ
イクルは外部のGPバスに転送されます。これによって、
標準的なスーパーI/Oチップのような外部デ
バイスとの接続が可能です。
内蔵のPC/ATペリフェラルはPCIバス・マスタによってアクセスすることはできません。
4.3.4.5
GPバスI/O 領域
GPバスの外部I/Oデバイスをアドレスするために、PARレジスタを使われなくてはなりません。GP
バスのアドレシングはバイト単位で行われます。これは、PC/AT互換システムでよくあるように、
レジ
スタが少ないデバイスや非常にフラグメントされたI/Oマップを持つデバイスに対応するためです。
GP バスのI/O空間のためにPARレジスタをプログラムするときには、その空間をダブル・ワードの境
界で区切るようにするとよいでしょう。I/Oアクセスのために境界でそろっていないバイト領域を指
定するとき、その領域にアクセスするソフトウェアは直接正しいバイトをアドレスしなくてはならない
ことに注意してください。例えば、
PARがI/O領域にプログラムされ、そしてスタート・アドレスがxxx1h
(つまり、バイト#1)の場合、
CPUがワードまたはダブル・ワードのアクセスをxxx0h(つまり、バイト#0)
から始めると、そのすべてのダブル・ワード・アクセスがPCIバスに転送されます(バイト#1はプログラ
リクエストされたバイトはCPUによっ
ムされたように、GPバス上でアクセスされません)。この場合、
てI/O アドレス xxx1h に直接アクセスされなくてはなりません。
この領域はPCIバス・マスタによってアクセスすることはできません。
4.3.5
設定情報
4.3.5.1
ROM/Flash空間の設定
ÉlanSC520マイクロコントローラでは3つのROMアドレス領域を定義することができますが、
リセッ
トからシステムをブートアップするために絶対に必要なのはBOOTCS領域だけです。オプションで
ある2つの領域のROMCS1とROMCS2はPARレジスタによって設定されます。BOOTCSの設定は第
3 章「システムの初期化」に記述してあります。PARレジスタのプログラミングについての詳細は
「 Programmable Address Region (PAR) レジスタ」を参照して下さい。
4.3.5.2
4-14
SDRAMアドレス空間の設定
SDRAMコントローラのコンフィギュレーション・レジスタがプログラムされ、個々のバンクがイネーブ
SDRAM空間が決定されます。一般的なデザインでは、SDRAMサイズ決定ルー
ルされるブート時に、
チンがシステムに実装されているメモリの量を検出し、
コンフィギュレーション・レジスタに適当な値
を書込みます。例えば、
16メガバイトのSDRAMを実装しているシステムでは、初期化を行うソフトウェ
アがSDRAMアドレス領域を00000000-00FFFFFFhから定義し、
PARレジスタがこの領域をMMCR、
ROM、PCIバス、
またはGPバス空間と重ねていないかぎり、
この領域への全てのアクセスはSDRAM
に転送されます。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
システム・アドレス・マッピング
4.3.5.2.1
キャッシュ禁止、書込み禁止、または実行禁止のSDRAM領域
デフォルト条件では、全ての SDRAM領域はCPUに関してキャッシュ可及び実行可能です。そして、
CPU、PCIバス・マスタ、GPバスDMAコントローラのサイクルで読出し/書込みができます。システ
ム構成によっては、特定のアトリビュートをイネーブルして、ある一部のSDRAMのアクセスを制限す
る必要があるかもしれません。よくある例としては、次のようなケースが挙げられます。
■ 命令コードしか入っていないSDRAM領域はPARレジスタのアトリビュートを使って、書込み禁止
にできます。これにより、
プログラムの欠陥で、CPUまたは他のバス・マスタがSDRAM内の命令
コードを誤って書き換えてしまうことを防ぐことができます。さらに、
この不正な書込みのデバッ
グを補助するために、
この不正行為が起きたときに割込みをCPUに発生することができます。
PARレジスタのアトリビュートで実行禁止のマークを付けること
■ データしかないSDRAM領域は、
ができます。ソフトウェアのバグによって、
ソフトウェアのタスクがその位置に分岐して実行を継
続しようとすると、CPUは不正のオペコードを読出して、例外が発生します。そして例外処理の
ルーチンでは、不正な条件の原因をデバッグする支援ができます。
4.3.5.3
GPバスペリフェラル空間の設定
GPバスペリフェラルのための空間の設定はPARレジスタをプログラムして行います。このセクション
ではチップ・セレクト領域の標準的なプログラミングを越えたいくつかのシステム構成例を説明します。
4.3.5.3.1
非連続のメモリまたはI/O空間のチップ・セレクトの設定
ペリフェラルのサブシステムによっては、
非連続のアドレス位置で1つのチップ・セレクトをアサートす
る必要があります。たとえば、1 つの I/O デバイスが複数の内蔵機能を持ち、それぞれが(カスタム
ASICのように)個別の非連続のI/Oアドレスによってアドレスされる場合があります。この場合は、複
数のPARレジスタを使ってそれぞれの個別のアドレス領域を定義できますが、
TARGETフィールドを
GPバスに、そしてATTRフィールドを同じチップ・セレクトにプログラムすることによって、全てを同じ
チップ・セレクトにマップさせることができます。未使用のI/Oアドレス空間が少ない PC/ATシステム
これは大変便利です。
のような、非常に断片化されているI/Oマップを扱うときに、
結果として無駄なアドレス空間ができてしまいますが、
これは1つのPARレジスタをアドレスの全範囲
をカバーするようにプログラムしても、実現できます。
4.3.5.3.2
ポジティグ・デコーディングの例
GPバスに接続されているペリフェラルの一部は、GPバス・アドレスを自分でデコードし、チップ・セレ
クトを必要としません。この場合、
コンフィギュレーション・レジスタをプログラムするためには同じ手
順に従いますが、
実際にチップ・セレクトをピンにドライブさせるためにピン・マルチプレクス・レジスタ
をプログラムする必要はありません。したがって、そのピンは他の機能のために使うことができます。
アプリケーションで複数のポジティブ・デコーディング領域が必要な場合は、
ピンの機能を節約するた
めに、各領域のPARレジスタを同じ未使用のチップ・セレクトにマップするようにプログラムします。
4.3.5.3.3
外部スーパーI/Oチップ使用時のÉlanSC520マイクロコントローラの設定
ÉlanSC520マイクロコントローラ・システムでGPbus上に一般に市販されているスーパーI/Oチップ
を使いたい場合があるかもしれません。
(例えば、キーボードまたはIDEドライブが必要なシステムで
はこのデバイスが使えます。)
この場合、
スーパーI/Oの2つのUARTはÉlanSC520マイクロコントローラの内蔵UARTと同じアドレ
スになるので、
必要であれば、
内蔵のUARTをディセーブルして、
スーパーI/OチップのCOM1とCOM2
ポートをサポートできます。この場合、CPUがUARTアドレス領域にI/O アクセスを行うとき、そのサ
イクルは外部のGPバスに転送されます。さらに、
スーパーI/Oデバイスはポジティブ・デコーディング・
デバイスです。つまり、
GPバスのアドレスを使ってアドレスのデコードを行うので、チップ・セレクトを
必要としません。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
4-15
システム・アドレス・マッピング
セクション4.3.5.3.1の説明のように、
スーパーI/OデバイスのI/Oマップはフラグメントされていて、連
続していないアドレスのために複数のPARレジスタを必要とするかもしれません。スーパーI/Oチッ
プによって使われていないフラグメントされたI/O空間を、
システムの他に使わない場合は、
ひとつの
PARレジスタでペリフェラルの全領域をマップすることができます。この場合、UARTのアドレス空間
はÉlanSC520マイクロコントローラの内部で最も上位のI/O空間になるので、
スーパーI/Oのペリフェ
ラルは競合せず、1つのPARレジスタで01F0-07BEhからのスーパーI/Oペリフェラルの全領域を定
義することができます。
「スーパーI/Oコントローラとのインタフェース」のスーパーI/OチップをÉlanSC520のGP バスに接
続する例を参照して下さい。
4.3.5.4
Windows®と互換性をとるためのÉlanSC520マイクロコントローラの設定
ÉlanSC520マイクロコントローラはWindowsと互換性があるマイクロコントローラとして動作する
ように設定することができます。このセクションではメモリとI/Oのアドレッシングを設定する方法を
いくつか説明します。しかし、
これはシステムの要求仕様によって変わるでしょう。
4.3.5.4.1
DOS 640Kバイトアプリケーション空間の上のメモリ領域
ÉlanSC520マイクロコントローラは、000A0000hのエリアで000FFFFFh(1Mバイト)で終わる、DOS
の640K バイトアプリケーション空間の上のレガシーPC/AT互換領域に対応するようにプログラムす
ることができます。SDRAMのバンクが一旦イネーブルされると、
この空間はデフォルトでSDRAM
になりますが、PARレジスタはWindowsとの互換を必要とするシステムの様々な要求をサポートす
このような互換性のためにÉlanSC520マイクロコン
るようにプログラムすることができます。次に、
トローラ・システムのメモリ・マップを作る時のステップのいくつか概説します。
■ 000A0000-000AFFFFhと000B0000-000BFFFFhから始まる2つの64Kバイトのビデオ領域は
デフォルトでSDRAM になりますが、PARレジスタの1つを使って、PCIバス上のPC/AT互換のビ
デオ・カードのための PCIバス空間としてイネーブルすることができます。 ÉlanSC520マイク
ロコントローラのPCIバス・ホスト・ブリッジ(ターゲットとして)は、SDRAM領域をPCIバスに重ね
合わせるようにPAR 0またはPAR 1がプログラムされている時は、
この空間のアクセスを自動的
に無視します。
■ 000C0000-000FFFFFhからの残りの空間は、BIOSのためのいくつかのアドレス領域にPC/ATシ
ステムの中で通常は分割されています。そして、
この領域へのアクセスは、PARレジスタをプロ
グラムすることによって、ROM、GPバス、
またはPCIバスにリダイレクトできます。たいていのシ
ステムは定義されているすべてのBIOS領域を使用する必要がありません。これは、その多くが
様々な(ネットワーク・インタフェース・カードのような)プラグ・イン・カードのための拡張ROM用
としてとってあるからです。通常次の領域が定義されています:
– 1つの000F0000-000FFFFFhからの 64K バイト単位のBIOS領域
– 4つの000E00000-000EFFFFFhからの各16K バイト単位の拡張システムBIOS領域
– 8つの000C0000-000DFFFFFhからの各16K バイト単位の拡張ROM領域
4.3.5.4.2
内蔵ペリフェラルのマッピング
ÉlanSC520マイクロコントローラではダイレクトI/Oアドレス・マッピングを使う標準的なPC/AT互換
のペリフェラルをすでに提供しているので、
これらのデバイスとI/Oアドレス競合は起こりません。こ
のI/OマップはTable 4-5にまとめてあります。
Configuration Base Address (CBAR) レジスタ (Port FFFCh) は、内蔵のメモリ・マップされたレジ
スタとペリフェラルを、都合のいい位置にエイリアスするために使うことができます。例えば、それら
をリアル・モード・オペレーションのために640Kバイトと1Mバイトの間にマップすることができます。
メモリ・マップされたコンフィギュレーション領域は常に上位のCPU空間( 4G バイト)にありますが、
CBARをプログラムしてENABLEビットをセットしたときのみエイリアスした位置にアクセスできます。
4-16
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
システム・アドレス・マッピング
4.3.5.4.3
DMAチャネルと割込み要求の運用
ÉlanSC520マイクロコントローラは、割込み要求のソースとDMA要求ピンを、プログラマブル割込み
コントローラ( PIC)とGP-DMAコントローラの適切なチャネルにルートされます。
割込み要求のルーティングに関するより詳しい情報は第15章「プログラマブル・インタラプト・コント
ローラ」にあります。
DMA要求のルーティングに関するより詳しい情報は第14章「GPバスDMAコントローラ」にあります。
4.3.5.5
PCIバス・デバイスの設定
PCI Local Bus Specification, Revision 2.1, で定義されている標準PCI Configuration Mechanism
#1によって、ÉlanSC520マイクロコントローラはPCIバス・デバイスの設定を行います。この設定はイン
ダイレクト・マップトI/O方式が必要で、
デバイスのアドレスはPCI Configuration Address (PCICFGADR)
レジスタ (Port 0CF8h)に書かれ、そしてデータはPCI Configuration Data (PCICFGDATA) レジスタ
(Port 0CFCh)を使ってアクセスされます。さらに詳しい情報は第9章の「設定情報」を参照して下さい。
PCI Local Bus Specification, Revision 2.2も参照して下さい。
また、
4.3.6
割込み
ÉlanSC520マイクロコントローラでは書込み保護違反が起きたときに割込み要求が発生するように
プログラムすることができます。これにより、
このアトリビュートが付けてあるメモリ領域にどのタス
クが不正に書込みをしようとしたかを発見するためのデバッグ・メカニズムが提供されます。この場
ここで、
コンフィギュレーション・
合、割込み要求は割込みコントローラ (PIC)ブロックに対して発生し、
レジスタのプログラムされた状態によって、
要求は適切な割込みのタイプ(マスク可能またはマスク不
可)とレベルに従って処理されます。書込み保護違反が起きたアドレス領域が入っているPARウィン
ドウはレジスタにラッチされ、そこにはどのバス保持者( CPU、GP-DMAコントローラ、
またはPCIバ
ス・マスタ)が違反を起こしたかという情報も入っています。
PICのプログラミングに関する詳細は第15章の「プログラマブル・インタラプト・コントローラ」を参照
して下さい。
4.3.7
ソフトウェアに関する考慮
ÉlanSC520マイクロコントローラではシステム・メモリとI/O のマップにある程度柔軟性を持たせる
ことができるため、
ソフトウェアを作るうえで考慮しなければならない点がいくつかあります。以下の
リストに、ÉlanSC520マイクロコントローラ・システムのメモリとI/O空間を定義するために、
コンフィ
ギュレーション・レジスタをプログラムするときに考慮する必要がある点をいくつか説明します。
■ Configuration Base Address (CBAR) レジスタは、同時に全ビットが書かれることを保証する
ために、
32ビットI/Oレジスタとしてアクセスする必要があります。MMCRエイリアスをイネーブル
またはディセーブルするために、CBARのMATCHフィールドは正しいパターンで書かれなければ
なりません。
■ MMCRレジスタ空間はProgrammable Address Region (PAR)レジスタよりも高い優先順位
を持っています。
■ PARレジスタは、一番番号の小さいレジスタ(PAR0)が一番高い優先になり、
最後のPARレジスタ
(PAR15)が一番低い優先になるように構成されています。したがって、2つのPARレジスタが重な
るようにプログラミングされている場合は、一番小さい番号のPARが優先されます。
■ Configuration Base Address (CBAR) レジスタやPCIバス・コンフィギュレーション空間のよ
うな、固定のI/O領域のいずれとも矛盾しないようにPARレジスタをプログラムしなければなりま
せん。ÉlanSC520マイクロコントローラのアドレス・デコードは、
PARレジスタによって内蔵のPC/
ATペリフェラルを重ねることを許しません。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
4-17
システム・アドレス・マッピング
■ 一般的に、PARレジスタのスタート・アドレスと領域サイズは相互に矛盾するようにプログラムし
てはいけません。領域サイズをスタート・アドレスが許すよりも大きくPARレジスタでプログラム
することは可能です。例えば、領域サイズは64K バイトでもスタート・アドレスが1G バイト領域
(PARレジスタで許容されている最大値)のトップから4Kバイト引いたところにプログラムされて
いる場合は、
利用できるアドレス空間はスタート・アドレスから始まる4K バイトの領域になります。
– 1Gバイト境界を越えて続くアクセスは、PCIバスに対して行われます。
– 残りの60K バイト領域はPARにヒットすることにはなりません。
■ SDRAM領域のためにPARレジスタをプログラムするときには、PARレジスタのスタート・アドレ
スと領域サイズは、
システムの SDRAMのトップを定義するプログラム値と矛盾してはなりませ
ん。例えば、
PARはSDRAMのために設定されていて、領域サイズは8Kバイトでも、スタート・アド
レスはSDRAMのトップから4Kバイト引いたところにプログラムされている場合は、
SDRAMのトッ
プより上のアドレスはこのPARのヒットにはなりません。
■ PARレジスタがTARGETフィールドがSDRAMに定義されていても、
SDRAMコントローラのコン
フィギュレーション・レジスタでSDRAMがイネーブルされていない場合は、
メモリ空間はデフォル
トでPCIバスになります。
■ ÉlanSC520マイクロコントローラではアドレス変換をサポートしていないので、SDRAM空間の
上に他のメモリ空間のリソースを重ね合わすようなシステムは、重ね合わせたSDRAMへのアク
セスはできません。例えば、PCIバスのビデオ・カードが000A0000-000AFFFFhの領域(PC/AT
の標準的な動作の場合)を使っていると、
PARレジスタがイネーブルされている限り64Kバイトの
SDRAMをシステムは失ってしまいます。
■ PARレジスタまたはCBARによってデフォルトのSDRAM空間に重ね合わせられている領域は、
ど
の領域でもデコーディング・ブロックのSDRAM領域より優先されます。実質的にこの状態では
SDRAM の一部がアクセスできなくなります。PCIバス・マスタがこの重ね合わさったアドレス領
域にアドレスを出したときには、そのサイクルはSDRAMに対して書込み禁止として行われます。
これらの空間へのアク
■ GPバスやPCI バスのメモリからの命令実行は推奨しません。その理由は、
セスはキャッシュすることがでず、
そして条件によっては許容できない遅延が起こることがあるか
らです。命令の実行は、SDRAMまたはBOOTCS、ROMCS1、
ROMCS2を使うROMデバイスから
実行したほうが、
これらのリソースへのアクセスはキャッシュされるので、効率がいいです。
■ ÉlanSC520マイクロコントローラは、CPUと他のバス・マスタが共有しているSDRAM バッファと
のコヒレンシーを保証しますが、バス・マスタによるアクセスごとに起こるキャッシュのライト・バッ
クのオーバーヘッドを避けるために、
これらの領域をキャッシュ禁止に指定する方がいいでしょ
う。これはPARレジスタをプログラムしてキャッシュ禁止アトリビュートをセットして行います。
キャッシュのスヌーピングは続きますが、
ライト・バック・サイクルが無くなるので性能への影響は
ほとんどありません。
■ PCI バス・マスタまたはGPバスDMAが動作しているときに、
システムの通常動作時のアドレス・
デコーディングに影響を与えるコンフィギュレーション・レジスタをプログラムする時は注意が必
要です。
– PARレジスタに書込むときには、ÉlanSC520マイクロコントローラのPCIホスト・ブリッジのター
ゲットFIFOがフラッシュされていることを確認し、
他のマスタからのアクセスの不用意な転送
を防ぐために、
SDRAMへのPCIバス・マスタのアクセスをティスエーブルして下さい。問題と
なる可能性がある例は、
PCIバス・マスタにすでにPCIバスがグラントされている時に、PCIバス
への通常のSDRAM領域アクセスをリダイレクトするために PARレジスタを変更する場合で
PCIバス・マスタによってすで
す。この場合は、CPUがPARレジスタへの書込みを完了すると、
にバスがグラントされているので、
ポストされたPCIバス・マスタのアクセスはSDRAMコント
ローラへ送られます。System Arbiter Master Enable (SYSARBMENB) レジスタ (MMCR
オフセット 72h)を使ってPCIバス・マスタのSDRAMに対してのアクセスをディセーブルし(リ
セット後のデフォルト・モード)、
アドレスのデコーディングに影響を与えるコンフィギュレーショ
4-18
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
システム・アドレス・マッピング
ン・レジスタに書く前に、ÉlanSC520マイクロコントローラのターゲットFIFOをフラッシュさせ
るために外部PCIエージェントからの読み出しを行うと、
この問題は軽減されます。
– どのメモリ領域においても、キャッシュできるかどうかのアトリビュートをキャッシュ可能から禁
止へ( PARレジスタをプログラムして)変えたときや、
ライトバックからライトスルーへキャッ
シュ書込みのポリシーを変えたときには、CPUキャッシュはいつもフラッシュすべきです。
■ PARレジスタに最大領域サイズをプログラムして、
ページ・サイズを64Kバイトにすると、128Mバ
イトまでの空間を定義することができますが、GPバス/ROMアドレス・ピンはチップ・セレクト当り
最大64Mバイトまでサポートします。GPバスまたはROMチップ・セレクトに128Mバイトの空間を
プログラムすると、上位64M バイトは下位64Mバイトの領域とエイリアスされます。
■ GP バスI/O 空間のためにPARレジスタをプログラムするとき、
ダブルワード境界上で空間を設
定することが最良です。I/O アクセスのために境界上にない領域を指定するとき、
領域にアクセ
スするソフトウェアは正しいバイトを直接アドレスしなくてはならないことに注意してください。
例えば、PAR がI/O 領域にプログラムされていて、CPU がワードかダブルワードのアクセスを
xxx0h(つまりバイト0)から始めるときにスタート・アドレスがxxx1h(つまりバイト1)の場合、ダ
ブルワードのアクセスは全てPCIバスにリダイレクトされます(バイト1はプログラムされたように
GPバス上でアクセスされません)。この場合、要求されたバイトはI/Oアドレスxxx1hにおいて直
接CPUによってアクセスされなくてはなりません。
■ PARレジスタのアトリビュートによって書込み禁止とされているメモリ領域へ CPU、PCIバス・マ
スタ、
またはGP-DMAコントローラが書込もうとすると、書込み保護違反が発生します。これが発
生すると、そのサイクルはSDQM信号がインアクティブな書込みサイクルとして常にSDRAMに送
られ、元のデータは捨てられます。書込み禁止をイネーブルする前に書込みバッファに書込まれ
たどのようなデータも、正しくSDRAMに書込まれます。
■ 書込み保護違反の割込みや、Address Decode Control (ADDDECCTL) レジスタ (MMCR
offset 80h)の実行禁止領域のアトリビュートをイネーブルする時には、適切な割込みサービス・
ルーチンや例外ハンドラがソフトウェアに含まれていなければなりません。書込み保護違反の場
合、違反が起きたアドレス領域が入っているPARレジスタ番号は、Write-Protect Violation Status (WPVSTA) レジスタ (MMCR offset 82h)のWPV_WINDOWビット・フィールドにラッチされ
ていて、
ソフトウェアによってクリアされるまで残っていますので注意して下さい。書込み保護違
反が起きた時には、PARx ウインドウ番号はラッチされます。 その後起こる書込み保護違反は、
ソフトウェアが同じレジスタの WPV_STATビットに1 を書いて割込みをクリアするまでキャプ
チャーされません。
■ 2つ以上のPARレジスタが重なっている場合(共通で同じアドレス範囲を持つようにプログラムさ
れている)、書込み保護違反が発生するのは優先順位の高い PARのアトリビュートがイネーブル
になっている時だけです。優先順位の低いPAR は書込み保護のアトリビュートがイネーブルに
なっていても、優先順位の高いPARのディセーブルの場合、2つのPARレジスタが共用している
共通のアドレス範囲への書込みは例外を発生しません。これと同じことは、キャッシュできるかど
うかのコントロールと命令実行アトリビュートにも適用されます。
■ ÉlanSC520マイクロコントローラの内部設定レジスタへのアクセス:
– 別途指定がない場合、I/O空間にマップされたすべての内蔵PC/AT ペリフェラルは8ビットと
してのみアクセスしなくてはなりません。
– 全てのメモリ・マップされた内蔵ペリフェラルとPC/ATペリフェラルのコンフィギュレーション・
レジスタへのアクセスは、Élan™ SC520 Microcontroller Register Set Manual , order
#22005で指定されているよう行われなければなりません。
– Élan SC520 Microcontroller Register Set Manual で指定されていない限り、PCIコンフィ
ギュレーション・レジスタは32ビットでアクセスしなければなりません。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
4-19
システム・アドレス・マッピング
4.4
初期化
ÉlanSC520マイクロコントローラのアドレス・デコーディングはシステム・リセットによってデフォルト
状態にクリアされます。
■ BOOTCSのデコーディングはFFFF0000-FFFFFFFFhからの64Kバイト領域でイネーブルされま
す。
■ SDRAMアドレス空間はディセーブルされます。
■ すべてのPARレジスタはディセーブルされて、そしてゼロにクリアされるので、外部GPバスのア
ドレス空間はイネーブルされません。1K バイトの下の I/O ホールが外部のGP バスに向けられ
るであろうことに注意を払ってください。しかしながら、
チップセットはイネーブルされないので、
ポジティブ・デコードが必要です。
■ 内蔵PC/ATペリフェラルのI/O空間はTable 4-5で定義されているようにイネーブルされます。
■ Configuration Base Address (CBAR)レジスタはI/O空間の FFFChでアドレスされます。メモ
リ・マップされたコンフィギュレーション・レジスタ空間はFFFEF000-FFEFFFFh(CPUブート空間
アドレスの下)でイネーブルされます。
■ PCIバスはディセーブルされ、
コンフィギュレーション・レジスタはPCI Local Bus Specification,
Revision 2.2で指定されたデフォルト値になります。 PCIコンフィギュレーション空間はポート
0CF8hと0CFCh (PCICFGADRとPCICFGDATA)にイネーブルされます。
これらのレジスタの設定に関する情報は「 Programmable Address Region (PAR) レジスタ」を参
照して下さい。ÉlanSC520マイクロコントローラに含まれている様々なアドレス空間の設定につい
ての詳細は「設定情報」を参照して下さい。
4-20
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
第5章
クロックの生成とコントロール
5.1
概要
ÉlanSC520 マイクロコントローラは、必要とされる内部クロックやシステム・クロックを全て生成で
PLLルー
きるように設計されています。ÉlanSC520 マイクロコントローラは、発振回路、PLLおよび、
プ・フィルタに必要なほとんどの素子を内蔵しています。
ÉlanSC520 マイクロコントローラは2つの標準的な水晶発振子、32.768kHz と 33MHzをつなぐだ
けで、
全ての必要なクロックを生成します。特定のクロックを出力するクロック出力ピンを持っており、
最大24mA の吸込みおよび出力電流に耐えます。
ÉlanSC520 マイクロコントローラはまた、SDRAMやPCIホスト・ブリッジへもクロックを供給します
が、場合によっては外部にバッファを付ける必要があるかも知れません。
クロックの生成とコントロールの機能は以下の特徴を持っています。
■ RTC 低電流発振器は、標準的な32.768kHzの水晶発振子で動作
■ 33MHz の発振器は、標準的な33MHz(33.000 または 33.333MHz)の水晶発振子で動作
■ 33MHz のクロックを、内蔵Am5x86 CPUおよび外部PCIバスに供給
■ 内蔵の 66MHz PLLが、外部SDRAMへのクロックを供給
■ 1.1882 MHz PIT クロック、および18.432MHz UART クロックを生成するPLLを内蔵
■ 66MHz および 36.864MHz PLL用のPLLループ・フィルタ内蔵により、外付けキャパシタが不要
■ 33.333MHz/30.000MHz PCIクロック出力ピン、CLKPCIOUTをサポート
■ 66MHz SDRAMクロック出力ピン、CLKMEMOUTをサポート
■ 33MHz および 32.768kHz 発振器バイパス・オプションをサポート
注意:ÉlanSC520 マイクロコントローラは、33.000MHz または 33.333MHzの水晶発振子で動作します。本書で
は単に「33MHz」と記述した場合、両方の周波数を意味します。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
5-1
クロックの生成とコントロール
5.2
ブロック図
Figure 5-1 にÉlanSC520 マイクロコントローラの内部クロックを図示します。Table 5-1 はPLLの
ロック時間と発振器のスタートアップ時間です。タイミング図やさらに詳しい仕様に関しては、
ÉlanSC520 Microcontroller Data Sheet(注文番号#22003)を参照してください。
Figure 5-1
クロック・ソースのブロック図
32.768-kHz RTC
32.768-kHz
Crystal
32.768-kHz
Oscillator
32.768-kHz SDRAM Refresh
36.864 MHz
DIV 31
1.47456 MHz
1.1882-MHz PIT
PLL2
PLL1
LF_PLL1
DIV 2
18.432-MHz UART
33-MHz
Crystal
33-MHz
Oscillator
33 MHz
CPU
33 MHz
PCI
33 MHz
GP Bus
33 MHz
GP DMA
33 MHz
ROM
33 MHz
SSI
33 MHz
Timers1
66 MHz
SDRAM
PLL3
注意:
1. プログラマブル・インターバル・タイマ(PIT)、汎用タイマ、ウオッチドッグ・タイマ、およびソフトウエア・
タイマを含む。
Table 5-1
クロックのスタートアップ時間とロック時間
Clock Source
32.768-kHz Oscillator
5-2
Max
1s
33-MHz Oscillator
10 ms
PLL1 (1.47456 MHz)
10 ms
PLL2 (36.864 MHz)
100 µs
PLL3 (66 MHz)
50 µs
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
クロックの生成とコントロール
5.3
システム設計
Figure 5-2 は、ÉlanSC520 マイクロコントローラに接続する外部クロックのシステム・ブロック・ダ
イアグラムです。Figure 5-2 に示されるように、負荷容量の大きなシステムでは外付のクロック・ド
ライバが必要です。
Table 5-2 はÉlanSC520 マイクロコントローラの多重化されたクロック信号です。
Figure 5-2
システム・クロック・ディストリビューション・ブロック図
VCC_ANLG
32KXTAL1
32.768-kHz
Crystal
66 MHz
C2
C1
32KXTAL2
R1
33MXTAL1
33-MHz
Crystal
Optional
Clock
Driver
LF_PLL1
33MXTAL2
.
.
.
SDRAM
66 MHz
CLKMEMOUT
CLKMEMIN
CLKPCIIN
33 MHz
CLKPCIOUT
CLKTIMER/
[CLKTEST]
Programmable
33 MHz
Optional
Clock
Driver
Élan™SC520
Microcontroller
Note: Dotted line ovals,
, signify frequency groups.
PCI
Device
PCI
Device
Table 5-2 多重化されたクロック信号
Default Function
Alternate Function Control
CLKTIMER
CLKTEST
CLK_PIN_DIR bit in Clock Select (CLKSEL) register
(MMCR offset C26h)
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
5-3
クロックの生成とコントロール
5.3.1
クロック・ピンの負荷
クロック・ピンは 24mA の電流を出力および吸込むことができるように設計されています。負荷容量
の最大値は、必要とするライズ/フォール・タイムによって変わります。
次の式によって負荷容量の最大値を求めることができます。
C = I/(dV/dt)
I = 電流
dV = 電圧変化
dt = 時間経過
例として、2.5Vの電圧変化、1nsのライズ/フォール・タイムが必要なシステムを想定します。この場
合負荷容量の最大値は:
Cmax = 24mA/(2.5V/1ns) = 9.6pF
定格出力カーブは ÉlanSC520 Microcontroller Data Sheet(注文番号#22003 )を参照してくだ
さい。
5.3.2
水晶発振子の選択
リアル・タイム・クロック( RTC )の精度は、水晶発振子の選択と、
ボードの設計に関するいくつかの要
因に依存します。クロック・タイミングの許容値がクロックの精度を決定します。設計者は水晶発振子
を選択する前に、
タイミングの許容値を決めなければなりません。
クロック・タイミングの許容値には、4つの大きな要因があります。
■ 周波数誤差−−実際に得られる周波数が、表記の周波数からどれくらい離れているかということ
です。標準的な32.768kHzの水晶発振子(時計用)の誤差は、
±20ppm です。周波数誤差は室
温で規定されています。
■ 温度特性−−このパラメータは温度の変化によってどれくらい周波数が変化するかを示します。
時計用水晶発振子の場合、標準的な値は動作温度範囲に対して-30ppmです。
■ 経年変化−−時間の経過によってどれくらい周波数が変化するかを示します。標準的な経年変化
の値は、1年で±3ppmです。
■ 負荷容量−−水晶発振子は特定の負荷容量で測定されています。システムの負荷容量がそれと
違う場合、
タイミングの誤差が生じます。タイミングの誤差は次の式で得られます。
Error = {[1 + C1/(CLxtal+Co)]1/2-[1 + C1/(CLsystem+Co)]1/2}/[1 + C1/(CLxtal+Co)]1/2
C1 は動的容量
Co は静的容量
CLxtal 水晶発振子の負荷容量
CLsystem システムの負荷容量
Errorに106 を掛けるとppmの単位になります。
全ての誤差を考慮してタイミングを計算し、
タイミング誤差の許容範囲以内に収めます。Table 5-3
は ppm を秒/月の単位に変換する便利な表です。
5-4
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
クロックの生成とコントロール
Table 5-3
タイミング誤差計算表
Timing Error
(Parts per Million)
Seconds/Month
± 10
± 25.9
± 20
± 51.8
± 30
± 77.8
± 40
± 103.7
± 50
± 129.6
水晶発振子の規格や選定に関する詳しい情報は、ÉlanSC520 Microcontroller Data Sheet( 注文
番号#22003 )に記載されています。
5.3.2.1
ÉlanSC520 マイクロコントローラを 33.333MHz で動作させる場合
PCIバスに供給されるクロック(CLKPCIOUT)は、水晶発振子の周波数と同じです。ÉlanSC520 マ
イクロコントローラは単に 33MHz の水晶発振子からの入力を増幅して、CLKPCIOUTピンに出力
します。水晶発振子は誤差を持っていますので、
CLKPCIOUTの周期がわずかに30nsより小さくなる
可能性があります。
É l a n S C 5 2 0 マイクロコントローラに使用する水晶発振子の精度を決めるのは設計者です。
30.000MHz の周波数は、33.333MHz に比べて誤差に対して余裕があります。経験的に、ほとんど
のPCIデバイスはどちらの周波数でも動作しますが、水晶発振子選ぶ際には、上記のようにPCI規格
を外れる可能性があることを考慮しなければなりません。PCI Local Bus Specification, Revision
2.2 では、最低クロック周期は30nsです。
5.3.3
内蔵発振器のバイパス
ÉlanSC520 マイクロコントローラに内蔵する32.768kHzと33MHzの発振回路は、外部クロックをク
リスタル・ピンに接続することによってバイパスできます。Figure 5-3 および Figure 5-4 に推奨回
路を示します。
Figure 5-3
32.768kHzの発振回路のバイパス
External
32.768-kHz
Oscillator
2.5-V max
32KXTAL2
100 kΩ
32KXTAL1
Élan™SC520
Microcontroller
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
5-5
クロックの生成とコントロール
Figure 5-4
33MHzの発振回路のバイパス
External
33-MHz
Oscillator
2.5-V max
33MXTAL2
No Connect 33MXTAL1
Élan
n™SC520
Microcontroller
5.4
レジスタ
Table 5-4 に、ÉlanSC520 マイクロコントローラの持つクロック制御のためのメモリ・マップされた
レジスタを示します。
Table 5-4
メモリ・マップされたクロック制御レジスタ
Register
Mnemonic
MMCR
Offset
Address
Am5x86 CPU Control
CPUCTL
02h
CPU clock speed control
Software Timer Configuration SWTMRCFG
C64h
Crystal frequency (33.000 MHz or 33.333 MHz)
for software timer
Clock Select
CLKSEL
C26h
CLKTIMER[CLKTEST] pin enable, clock output
select options (18.432 MHz or 1.8432 MHz
UART, PLL1, PLL2, PIT, and RTC), CLKTIMER
or CLKTEST select
GP Timer 0 Mode/Control
GPTMR0CTL
C72h
GP Timer 0: internal clock source prescaler,
external clock source
GP Timer 1 Mode/Control
GPTMR1CTL
C7Ah
GP Timer 1: internal clock source prescaler,
external clock source
UART 1 General Control
UART 2 General Control
UART1CTL
UART2CTL
CC0h, CC4h UARTx clock source: 1.8432 MHz or 18.432
MHz
SSI Control
SSICTL
CD0h
SSI clock speed
GP-DMA Control
GPDMACTL
D80h
GP-DMA clock frequency: 4 MHz, 8 MHz, or 16
MHz
5-6
Function
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
クロックの生成とコントロール
5.5
オペレーション
ÉlanSC520 マイクロコントローラのクロックは、2つの発振回路によって生成されます。
32.768kHz の発振回路はPLL1(1.47456MHz PLL )に入力され、PLL1はさらにPLL2(36.864MHz
PLL)をドライブします。36.864MHzのクロックは2分周され、18.432MHz UARTクロックを提供しま
す。また、31分周して 1.1882 MHzを作り、PITに供給します。
33MHz 発振器はPCIとCPUにクロックを供給します。33MHz 発振器はまた、SDRAMクロック用の
PLL3( 66MHz PLL)をドライブします。
5.5.1
5.5.1.1
内蔵クロック
CPU
ÉlanSC520 マイクロコントローラ内のAm5x86 CPUバスの周波数は常に33MHzです。しかしなが
ら、Am5 x 86 CPUコアの周波数は100MHz または133MHz にプログラムすることができます。
Am5 x 86 CPU コアのクロック・スピードはデフォルトで 100MHz になりますが、CPU Control
( CPUCTL)レジスタ(MMCR offset 02h )によって動的に変更することができます。Am5x86 CPU
のクロックに関する詳細は、第7章の「 7.4.3 クロックの考察」を参照してください。
ÉlanSC520 マイクロコントローラは33.000MHzまたは33.333MHzの水晶発振子を33MHzのクロッ
クとして使用することができます。
5.5.1.2
PCIバス
ÉlanSC520 マイクロコントローラのPCIバス・システム・クロックは33MHzで動作します。PCIバス・
システム・クロック(CLK )の2つのピン、CLKPCIINとCLKPCIOUTの使い方は、第9章の「 9.3.1 PCI
クロッキング」で解説します。
CLKPCIOUTピンは、PCIバス・デバイスに33MHzのクロックを出力します。この信号は33MXTAL233MXTAL1 インタフェースにより得られます。
ÉlanSC520 マイクロコントローラは33.000MHzまたは33.333MHzの水晶発振子を33MHzのクロッ
クとして使用することができます。
「 5.3.2.1 ÉlanSC520 マイクロコントローラを 33.333MHz で
動作させる場合」に、PCIバス用の水晶発振子を選ぶ際に重要な事項を解説しています。
5.5.1.3
SDRAMコントローラ
SDRAMクロックは33MHz発振器の 2倍の66MHzで動作します。SDRAMコントローラのリフレッ
シュ・レートは、32.768kHzクロックから作ります。リフレッシュ・レートを柔軟に設定することができ、
様々なデバイスに対応することができます。
SDRAMコントローラのクロックに関する詳細は、CLKMEMIN、CLKMEMOUTピンとともに第10章
の「10.3.2 SDRAMのクロック」を参照してください。
5.5.1.4
ROM/Flash インタフェース
ROM/Flash コントローラは、Am5x86 CPUバスから33MHzのクロックを供給されます。
5.5.1.5
GPバス
GPバス・インタフェースは内部でAm5x86 CPUに接続され、33MHzで動作します。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
5-7
クロックの生成とコントロール
5.5.1.6
GP-DMA コントローラ
GP-DMAコントローラは4MHz、8MHzまたは16MHzで動作するようにプログラムすることができま
す。このオプションは、GP-DMA Control (GPDMACTL) レジスタ (MMCR offset D80h) で設定し
ます。これらの周波数は33MHzクロックから作られることに注意してください。正確な値は使用する
水晶発振子( 33.000MHzまたは33.333MHz )を偶数分周したものになります。
5.5.1.7
プログラマブル・インターバル・タイマ
プログラマブル・インターバル・タイマ( PIT)のクロック・ソースは、1.1882 MHz PITクロックか、
ま
たはCLKTIMERピンになります。
注意:PITクロックは標準的に使われる1.19318MHzではないので、違いを吸収するためにソフトウエアの変更が
必要です。第16章の「16.5.7.1 PC/AT互換システムにおけるPITクロック・ソースの使用」に詳細が解説さ
れています。
5.5.1.8
5.5.1.9
汎用タイマ
3つの汎用タイマのクロック・ソースは33MHzクロックです。タイマ0とタイマ1のクロック・ソースは、
外部ピンまたはプリスケール・クロックを使用することもできます。このオプションは、GP Timer 0
Mode/Control (GPTMR0CTL) レジスタ (MMCR offset C72h) と GP Timer 1 Mode/Control
(GPTMR1CTL) レジスタ (MMCR offset C7Ah) で設定します。汎用タイマのクロックに関する考
察は、第17章の「 17.5.5 クロックに関する考察」で解説します。
ソフトウエア・タイマ
ソフトウエア・タイマは33MHzクロックを使用します。33.000MHzまたは33.333MHzのどちらの水
晶発振子をシステムが使用しているかによって、Software Timer Configuration (SWTMRCFG) レ
ジスタ (MMCR offset C64h) を適切に設定しなければなりません。
5.5.1.10
ウオッチドッグ・タイマ
ウオッチドッグ・タイマも33MHzクロックを使用し、最高30秒のタイム・アウト期間をサポートします。
Watchdog Timer Control (WDTMRCTL) レジスタ (MMCR offset CB0h) のEXP_SELに、タイム・
アウト期間を計算するための指数を設定します。
5.5.1.11
リアル・タイム・クロック
32KXTAL2-32KXTAL1ピンは、外部32.768kHz水晶発振子または発振器を接続します。これらのク
ロック・ソースは、
ÉlanSC520 マイクロコントローラのリアル・タイム・クロック(RTC)をドライブしま
す。
5.5.1.12
UART シリアル・ポート
内蔵のUARTはそれぞれ個別に18.432MHzまたは1.8432MHzのボーレート・クロックをサポートし
ています。これらは、UART 1 General Control (UART1CTL) レジスタ (MMCR offset CC0h) また
はUART 2 General Control (UART2CTL) レジスタ (MMCR offset CC4h) のCLK_SRCで設定し
ます。
5.5.1.13
同期シリアル・インタフェース
同期シリアル・インタフェース( SSI )のクロックは33MHzクロックから作られます。SSI Control
(SSICTL) レジスタ (MMCR offset CD0h) のCLK_SELビットで、SSIクロック( SSI_CLKピン)の周
波数を設定します。システムが33.000MHzまたは33.333MHzのどちらの水晶発振子を使用してい
るかによって、実際のビット・レートは変わります。
5-8
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
クロックの生成とコントロール
5.5.2
CLKTIMER[CLKTEST] ピンの使用方法
CLKTIMER[CLKTEST] ピンはClock Select (CLKSEL) レジスタ (MMCR offset C26h) により、入
力( CLKTIMER)または出力( CLKTEST )に設定できます。
■ 入力(デフォルト)に設定した場合、
このピンは内蔵するプログラマブル・インターバル・タイマ
(PIT)にクロックを供給するために使用します。さらに詳しい情報は、
第16章の「16.5.7.1 PC/AT
互換システムにおけるPITクロック・ソースの使用」を参照してください。このピンは入力に設定
されていても、PITコアに対する不正なパルスが発生するのを防ぐために、常にCPUクロックに同
期されます。
■ このピンをCLKTEST出力に設定した場合、いくつかの内部クロックのうち1つを出力でき、
テス
トまたは外部デバイスをドライブする目的に使用できます。Figure 5-5 に、Clock Select
(CLKSEL) レジスタ (MMCR offset C26h) の設定により、CLKTESTに出力することができる
クロックを図示します。
注意:CLKTIMER[CLKTEST] ピンを出力にする場合、
クロックをイネーブルしたり、周波数を変える際に不正な
パルスが出ることを防ぐ方法はないので、十分な試験および注意が必要です。クロックを受けるデバイスをリ
セット状態にし、CLK_TST_SEL ビットで周波数を選び、CLK_PIN_DIR ビットに1をセット
(出力)
し、
そして
CLK_PIN_ENB ビットに1をセット
(イネーブル)
します。その後、
クロックを受けるデバイスのリセットを解除し
ます。
Figure 5-5
CLKTESTピンのためのクロック・ルーティング
UART (1.8432 MHz)
UART (18.432 MHz)
PLL1 (1.47456 MHz)
CLKTEST
PLL2 (36.864 MHz)
6:1 Mux
PIT (1.1882 MHz)
RTC (32.768 kHz)
CLK_TST_SEL bits from the Clock Select Register
5.6
初期化
Am5x86 CPUコアはシステム・リセットの間リセットされ、CPUコア・クロックはデフォルトの100MHz
になります。ソフトウエア・リセットではCPUコア・クロックに影響を与えません。
CLKTIMER[CLKTEST] ピンはリセットによってディセーブルされますので、動作させるときには
Clock Select (CLKSEL) レジスタ (MMCR offset C26h) でイネーブルしなければなりません。
スタート・アップの情報は Figure 5-1、Table 5-1を参照してください。また、Figure 6-3 および
ÉlanSC520 Microcontroller Data Sheet(注文番号#22003)のリセット・タイミング図を参照して
ください。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
5-9
クロックの生成とコントロール
5-10
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
第6章
リセットの生成
6.1
概要
ÉlanSC520 マイクロコントローラはリセットの生成に関して以下のような特徴を持っています。
■ ÉlanSC520 マイクロコントローラは、PWRGOODピン、
ソフトウエア書込み、
ウオッチドッグ・タ
イマ、およびAMDebugシステム・デバッグによってリセットを行うことができます。
SDRAMの内容を保持したままリセットできます。
■ ÉlanSC520 マイクロコントローラ・システムは、
(プログラマブル・リセットと呼ぶ)
■ ハードCPUリセットは、
システム・リセットによって発生します。
■ ソフトCPUリセットは、
ソフトウエア書込み、
およびCPU の特殊サイクル・タイプ「シャットダウン」
を検出することにより発生します。
およびソフトウエア書込みにより発生します。
■ GP バスのリセットはシステム・リセット、
■ PCIバスのリセットはシステム・リセット、
およびソフトウエア書込みにより発生します。第9章「PCI
バス・ホスト・ブリッジ」を参照してください。
■ リセットのソースはソフトウエアで選択することができます。
システム・コンフィギュレーション・データをCFG3-CFG0ピ
■ PWRGOODピンのアサーション時、
ンから、
スタティック・システム・ボード・インフォメーションをRSTLD7-RSTLD0ピンから取込みま
す。CFGxピンに関する情報は、第12章「 ROM/Flash コントローラ」を参照してください。
■ システム・コントロール・プロセッサ(SCP)A20ゲートとリセットCPUのエミュレーションが可能で
す。
■ CPUがリセットされた後、
コントロール・ビットによりAMDebugモードに入ります。
6.2
ブロック図
Figure 6-1 は、
リセット・コントローラのブロック図です。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
6-1
リセットの生成
Figure 6-1
リセット・コントローラのブロック図
Élan™SC 520 Microcontroller
Reset Controller
GPRESET
PWRGOOD
PRGRESET
Reset Configuration
Register
DEBUG_ENTER
INST_TRCE
AMDEBUG_DIS
port92_rst
Port A
GP Bus
SCP
Registers
a20_ctl
a20_gate
port64_rst
Reset
Source
Pinstrap
Status
and
System
Information
CFG3–CFG0
RSTLD7–RSTLD0
rom
config
Detect
AMDebug
AMDebug™
Logic
AMDebug on reset
wdt_rst
PCI
Controller
RST
To all internal
cores
AMDebug hard reset
AMDebug system reset
Watchdog
Timer
rst_main
ROM
Controller
cpu reset
cpu sreset
a20m
CPU
shutdown
6.3
システムの設計
システム・ボードの「電源有効」信号をÉlanSC520 マイクロコントローラのPWRGOODピンに接続
および内蔵発振器
し、CPUリセットおよびシステム・リセットのイベントを発生させます。電源の供給、
が安定するまでの通常1秒以上の間は、
「電源有効」信号はデアサートしなければなりません。内蔵
PLLのスタート・アップには、PWRGOODピンがアサートされてから約10ms要します。電源投入リセッ
ト時の波形を、Figure 6-3 に示します。
PWRGOODピンのアサート後、全てのリセットが10ms のオーダで発生します。ソフト・リセットは
16CPUクロックかかります。
タイミング・テーブルその他のタイミング図に関しては、ÉlanSC520 Microcontroller Data Sheet
(注文番号#22003)を参照してください。
6-2
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
リセットの生成
6.4
レジスタ
ÉlanSC520 マイクロコントローラでは、Table 6-1 に示されるメモリ・マップされたレジスタと、Table
6-2 に示されるダイレクト・マップされたレジスタによって生成することができます。
Table 6-1
メモリ・マップされたレジスタの生成
Register
Mnemonic
MMCR
Offset
Address
Host Bridge Control
HBCTL
60h
PCI reset (RST)
Watchdog Timer Control
WDTMRCTL
CB0h
Watchdog timer enable, WDT reset enable,
interrupt flag, duration of the WDT time-out
interval
System Board Information
SYSINFO
D70h
System configuration data latched on RSTLD7–
RSTLD0 pins at assertion of PWRGOOD
Reset Configuration
RESCFG
D72h
Control bits for system reset, GP bus reset
(GPRESET), programmable SDRAM retention
reset (PRGRESET pin enable), and AMDebug
mode enable
Reset Status
RESSTA
D74h
Reset source status: SCP reset, AMDebug hard
reset detect, AMDebug system reset, watchdog
timer time-out, CPU shutdown (soft reset),
PRGRESET pin, and PWRGOOD pin
Table 6-2
Function
ダイレクト・マップされたレジスタの生成
Register
Mnemonic
I/O Address Function
SCP Data Port
SCPDATA
60h
System Control Processor (SCP) data write, a20
gate command emulation
SCP Command Port
SCPCMD
64h
SCP command write, a20 gate command
emulation, CPU reset command emulation
System Control Port A
SYSCTLA
92h
Soft CPU reset generation, alternate a20 control
6.5
動作
ÉlanSC520 マイクロコントローラでは何種類かの異なったリセットを行うことができます。
■ システム・リセット
■ プログラマブル・リセット、SDRAMを保存したままのシステム・リセット
■ ソフトCPUリセット
■ GP バス・リセット
■ PCIリセット
■ RTCリセット
システム・リセットはÉlanSC520 マイクロコントローラでの標準となるリセットです。
「 6.5.1 システ
ム・リセット」で解説します。
Table 6-3 はÉlanSC520 マイクロコントローラのリセット・ソースと、影響される機能を示します。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
6-3
リセットの生成
Table 6-3
ÉlanSC520 マイクロコントローラのリセット・ソース
CPU
(Hard/Soft)
GPRESET
Pin
RST Pin
(PCI)
Internal
Registers
PWRGOOD pin
Hard
✔
✔
✔
PRGRESET pin
Hard
✔
✔
✔
12
SYS_RST bit, RESCFG register
Hard
✔
✔
✔
2
Watchdog timer reset event
Hard
✔
✔
✔
2
AMDebug system reset
Hard
✔
✔
✔
2
Source
CPU_RST bit, SYSCTLA register (Port 0092h)
Soft
SCP soft reset, SCPCMD register (Port 0064h)
Soft
CPU shutdown (typically caused by a triple fault)
Soft
GP_RST bit, RESCFG register
Notes
,
✔
PCI_RST bit, HBCTL register
✔
注意:
1. このピンの機能を使用する場合には、PRG_RST_ENB ビットをセットしなければなりません。
2. PRG_RST_ENB ビットをセットした場合、SDRAMコントローラの設定が保たれ、SDRAMの内容を保持したままのシステ
ム・リセットをサポートします。
6.5.1
システム・リセット
ÉlanSC520 マイクロコントローラのシステム・リセットは、下記のリセット・イベントによって発生させ
ることができます。
■ PWRGOODピンのアサーション
■ Reset Configuration (RESCFG) レジスタ (MMCR offset D72h) のSYS_RSTビットへのソフ
トウエア書込み
■ AMDebugシステム・リセット・イベント
■ ウオッチドッグ・タイマのタイム・アウト・イベントによるシステム・リセットの発生がイネーブルされ
ている場合
システム・リセット発生時、次のイベントが順次発生します。
1.
2.
システム・リセット・イベントがアサートされる。
内蔵CPU、ÉlanSC520 マイクロコントローラの内蔵レジスタ、
システムGP バス、
およびPCI バ
スのリセットがアサートされる。
3.
システム・リセット・イベントがデアサートされる。PWRGOODがリセットのソースであった場合、
コンフィギュレーションとシステム・ボード・データが CFG3-CFG0 および RSTLD7-RSTLD0
からそれぞれ取込まれる。
4.
RTC電圧モニタがRTCの電池の消耗を検知し、PWRGOODがリセットのソースであった場合、
RTCリセットが発生する。
5.
内蔵PLL の起動を待つ。
6.
内蔵CPU、
システムGP バス、PCI バスのリセットがデアサートされる。
システム・リセットの時間は10ms のオーダで、ほぼ内蔵PLL の起動時間です。GPRESETとRSTは
10msの間アサートされます。
6-4
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
リセットの生成
ハードCPUリセットの場合、内蔵Am5x86 CPU のレジスタは全てリセット時の状態になり、キャッシュ
の内容は破棄されます。ハードCPUリセットに関する詳しい情報は、
Am486® DX/DX2 Microproces-
sor Hardware Reference Manual,1994 (注文番号#17965) を参照してください。
注意:CFG3-CFG0 および RSTLD7-RSTLD0ピンは、PWRGOOD信号のアサーションの結果としてのみ取込
まれ、SYS_RSTビット、AMDebugシステム・リセット・イベント、
ウオッチドッグ・タイマによっては取込まれません。
Reset Configuration (RESCFG) レジスタの ICE_ON_RSTビットが1にセットされている場合、
AMDebug機器はシステム・リセット後AMDebugモードに入ります。
システム・リセット後の ÉlanSC520 マイクロコントローラ・コアの状態を Table 6-4 に示します。詳
しくは、各章の最後の「初期化」の節を参照してください。
Table 6-4
システム・リセット後のコアの状態
Core
State
Comment
Am5x86 CPU
Enabled
CPU clock frequency is set to 100 MHz. Internal
registers and internal cache are reset.
System arbiter
Enabled
Default is nonconcurrent arbitration mode. All bus
masters are disabled except the CPU as PCI and
internal Am5x86 CPU bus master.
PCI host bridge master controller
Enabled
PCI host bridge target controller
Disabled
SDRAM controller
Disabled
Write buffer and read buffer
Disabled
No banks are enabled.
ROM controller
Enabled
BOOTCS (only) is enabled at system reset
GP bus controller
Enabled
External GP bus is disabled until PAR registers are
initialized.
GP-DMA controller
Enabled
All channels are masked off.
Programmable interrupt controller
(PIC)
Enabled
Interrupts are masked at the CPU. NMIs are
disabled.
Software timer
Enabled
General-purpose (GP) timers
Disabled
All GP timer registers are reset to 0. Each timer must
be programmed before it can be used.
Programmable interval timer (PIT)
Disabled
Each PIT channel must be programmed before it
can be used.
Watchdog timer (WDT)
Disabled
Real-time clock (RTC)
Enabled
UARTs
Disabled
Synchronous serial interface (SSI)
Disabled
Inactive until an SSI command is written.
Programmable input/output (PIO)
pins
Enabled
All PIO pins default to inputs and to their PIO
function.
JTAG test access port (TAP)
Enabled
JTAG_TRST should be asserted active Low to
ensure normal operation.
AMDebug mode
Enabled
If the ICE_ON_RST bit in the Reset Configuration
(RESCFG) register is set.
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
6-5
リセットの生成
システム・リセットは、
「6.6 初期化」にある電源投入リセット手順のサブ・セットです。両者の実際の違
いは、電源投入リセットは電源が立ち上りながらリセットを行い、電源の安定とともにリセットが解除さ
れるということです。本書ではこれらの2つの用語を同義として用います。
6.5.2
SDRAMを保存したままのシステム・リセット
ÉlanSC520 マイクロコントローラは、SDRAMの内容を保存したままシステム・リセットを行うことが
できます。
この機能をプログラマブル・リセットと呼び、
Reset Configuration (RESCFG) レジスタ (MMCR offset
D72h) のPRG_RST_ENBビットによって起動します。このビットがセットされた場合、PRGRESETピ
ン、SYS_RSTビット、
ウオッチドッグ・タイマ・システム・リセット・イベント、
またはPWRGOODがアサー
トされたままのAMDebugシステム・リセット・イベントによるシステム・リセットでは、SDRAMの設定
(SDRAMタイプ、バンク数、
リフレッシュ・レートなど)が保たれたままとなり、SDRAMの内容もまた
保存されます。
CFG3-CFG0 および RSTLD7-RSTLD0の状態は取込まれませんが、その他の動作は全て通常のシ
ステム・リセットと同じです。
システム・リセットの要求は内蔵SDRAMコントローラと調停され、
リセットを行う前に全てのSDRAM
バンクがアイドル状態であることを保証します。加えて、
この調停動作は、
進行中のSDRAMサイクル
も通常どおり終了させます。PRG_RST_ENBビットがセットされた状態での、PRGRESETのアサー
ション後のシーケンスを Figure 6-2 に図示します。
注意:PRG_RST_ENBコンフィギュレーション・ビットがセットされた状態で、SDRAMコントローラがシステム・リセット要
求に対してアクノリッジを返さなかった場合、通常のシステム・リセットが発生します。このイベントにより
PRG_RST_ENBビットはクリアされます。PRG_RST_ENBビットがクリアされるため、SDRAMの設定や内容
は保存されません。
Figure 6-2
PRGRESETのタイミング
PRGRESET
1
cpu reset
GPRESET
RST
注意:
1. PRGRESETのアサーションから、リセットのアサーションまでは丁度32 CPUクロックです。全てのSDRAMバンク
はアイドルです。
2. Reset Configuration (RESCFG) レジスタのPRG_RST_ENBビットはイネーブルされていなければなりません。
3. "cpu reset" 信号は内部の信号で、ここではリファレンスとして示されています。外部ピンには出力されません。
6-6
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
リセットの生成
6.5.3
ソフトCPUリセット
ソフトCPUリセットはハードCPUリセットと違い、CPUのキャッシュの状態に影響を与えません。ソフ
ト/ハードCPUリセットの違いについては、第7章の「 7.5 初期化」を参照してください。
ソフトCPUリセットは、
ÉlanSC520 マイクロコントローラの内蔵レジスタ・ビットをリセットしませんが、
唯一例外はInterrupt Control (PICICR) レジスタ (MMCR offset D00h) のNMI_ENBビットです。
ソフトCPUリセットは、GPRESET または RST ピンをアサートしません。ソフトCPUリセット時、CPU
内部のリセット信号が16クロック・サイクルの間アサートされます。
ソフトCPUリセットは、次の4つの方法によって発生します。
■ System Control Port A (SYSCTLA) レジスタ (Port0092h) のCPU_RSTへのソフトウエア書込
み−−このビットに1 を書込むことにより、ソフト・リセット・イベントが発生します。この場合、
CPU_RSTビットはソフトウエアがクリアするまでセットされたままになります。ソフトウエアで
CPUを続けてリセットするには、
このビットを一度0にクリアした後1を書込みます。この機能はソ
フトウエアによって、System Control Port A (SYSCTLA) レジスタがリセットの発生に使用され
たことの印として利用できます。
■ SCP リセット CPU コマンド−−CPUが FEh を SCP Command Port (SCPCMD) レジスタ
(Port0064h) に書込み標準コマンドを発行すると、
ソフト・リセット・イベントがアサートされます。
■ トリプル・バス・フォルト−−トリプル・バス・フォルトによるCPUシャットダウン・サイクルの結果と
して、
ソフト・リセット・イベントがアサートされます。
■ AMDebugモードへの移行−−AMDebug機器からのソフト・リセット・コマンドに対する応答とし
ても、
ソフト・リセット・イベントはアサートされます。Reset Configuration (RESCFG) レジスタ
(MMCR offset D72h) のICE_ON_RSTビットが1にセットされている場合、AMDebug機器はソ
フトCPUリセット後AMDebugモードへ移行します。
6.5.4
GPバス・リセット
GPバス・リセットは、
システム・リセットまたはソフトウエア書込みによって発生します。Reset Configuration (RESCFG) レジスタ (MMCR offset D72h) の GP_RSTビットに1を書込むことにより、
GPRESETピンがアサートされます。このビットをクリアすると、GPRESETピンはデアサートされま
す。
6.5.5
PCI リセット
PCI リセット信号 RST は、システム・リセットまたはソフトウエア書込みによって発生します。Host
Bridge Control (HBCTL) レジスタ (MMCR offset 60h) のPCI_RSTビットに1を書込むことにより、
RSTピンがアサートされます。このビットをクリアすると、RSTピンはデアサートされます。
6.5.6
RTC リセット
RTC リセットは、
リセット・ソースがPWRGOODでの電源投入リセットまたはシステム・リセットの時に、
BBATSEN入力が2.0Vを下回った場合に発生します。RTC Status D (RTCSTAD) レジスタ (RTC
index 0Dh) は、RAM、タイム・レジスタ、およびカレンダーの内容が有効かどうかを示すステータス・
ビットを持っています。内蔵RTCリセットのアサートにより、RTC_VRTビットがセットされます。
システム・リセットが発生中に、
リセット・ソースやBBATSENの状態によっては、
このRTCリセットは発
生する場合としない場合があるので注意してください。BBATSENはまた、RTCのバックアップ電池
が最初に投入されたときに、RTCへリセット信号を送ります。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
6-7
リセットの生成
6.5.7
リセット・ソースの決定
Reset Status (RESSTA) レジスタ (MMCR offset D74h) に、
ソフトウエアがリセットの発生源を知
るためのステータス・ビットがあります。これらのビットは対応するイベントが発生したときにセットさ
れ、1を書込むことによってクリアされます。ステータス・ビットには以下のものがあります。
■ ICE_HRST_DET−−MDebug ロジックによるハードCPUリセット
■ ICE_SRST_DET−−MDebug システム・リセット
■ WDT_RST_DET−−ウオッチドッグ・タイマのタイム・アウトによるシステム・リセット
■ SD_RST_DET−−トリプル・バス・フォルトによるCPUシャットダウン・サイクルの検出によるソフ
トCPUリセット
■ PRGRST_DET−−SDRAMを保持したままシステム・リセットを行うPRGRESETピンによるシス
テム・リセット
■ PWRGOOD_DET−−PWRGOODピンによるシステム・リセット
6.5.8
CPU A20 ゲートのサポート
ÉlanSC520 マイクロコントローラはa20ゲート・ピンをサポートしていません。標準的なPC/AT互換
システムでは、
この入力は外付のシステム・コントロール・プロセッサ(SCP )によって、
メインCPUか
らのコマンド要求の結果としてドライブされます。ÉlanSC520 マイクロコントローラでは、
このa20
ゲートのコマンド・シーケンスは内部のロジックによって検出され、適切に処理されます。ÉlanSC520
マイクロコントローラは追加の a20ゲート・ソースをSystem Control Port A (SYSCTLA) register
(Port 0092h) に持っています。これら2つのa20ゲート・ソースは、論理的にORをとれており、CPUの
a20出力をLowにゲートするためには両方のソースがデアサートされていなければなりません。
SCP a20 ゲート・コマンドは、CPUがD1hをSCP Command Port (SCPCMD) レジスタ (Port 0064h)
に書込み、
データがSCP Data Port (SCPDATA) レジスタ (Port 0060h) に書込まれた場合に検出
されます。SCP Data Port (SCPDATA) へのデータのビット1が、a20コントロール・ロジックをドラ
イブします。他のa20 ゲート制御のソースが関与しないかぎり、
このビットが1の場合CPUのa20信号
はコア・ロジックへ渡され、0の場合Lowに固定されます。
SCP a20 ゲート・コマンドのエミュレーションに加えて、System Control Port A (SYSCTLA) レジ
スタ (Port 0092h) のA20G_CTLビットもa20信号を制御することができます。A20G_CTLビットを
セットすると、
CPUのa20信号はシステム・ロジックへ渡されます。このビットをクリア(デフォルトの状
態)すると、他のa20 ゲート制御のソースが関与しないかぎりLowに固定されます。
6.5.9
クロックの考察
ÉlanSC520 マイクロコントローラのシステム・リセット・イベントが発生すると、内蔵PLLは再起動さ
れます。システム・リセット・ソースのデアサーションからPLLが起動するまでの時間は10msです。
6.5.10
ソフトウエアの考察
システム・リセットが発生すると、CPUキャッシュ、SDRAMコントローラ・ライト・バッファ、
およびPCIト
ランザクション・キューは破棄されます。
6-8
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
リセットの生成
6.5.11
遅延
PRGRESETイベントは、それによってSDRAMのデータが失われないように、SDRAMコントローラが
調停しなければなりません。この調停により、PRGRESETイベントが発生してから内、外部のリセット
信号がアサートされるまでに、最大32CPUクロック遅延されます。
6.6
初期化
ÉlanSC520 マイクロコントローラの電源投入リセット時、以下の順でイベントが発生します。
1.
PWRGOODピンがデアサートされる。
2.
電源が立ち上る。
3.
内蔵CPU、ÉlanSC520 マイクロコントローラのレジスタ、
システムGPバス、
およびPCIバス・リ
セットがアサートされる。
4.
PWRGOODピンがアサートされる。コンフィギュレーションとシステム・ボード・データが CFG3CFG0 および RSTLD7-RSTLD0からそれぞれ取込まれる。
5.
RTC電圧モニタがRTC電池の消耗を検出した場合、RTCリセット・イベントが発生する。
6.
内蔵PLLが起動され、
クロックが安定する(内蔵PLLが安定するまでの時間が経過する)。
7.
内蔵CPU、
システムGP バス、およびPCIバス・リセットがデアサートされる。
Figure 6-3 にイベントの流れを示します。電源投入リセットでは、システム・ボードの電源が安定し、
内蔵の32kHzおよび33MHz発振器が起動するまでの間、PWRGOODピンがデアサートされていな
ければなりません。通常この時間は約1秒です。
Figure 6-3
電源投入リセット時のイベントの流れ
ALL VCCs
1
PWRGOOD
PRGRESET
3
cpu reset
GPRESET
RST
CFG3–CFG0
RSTLD7–RSTLD0
Valid
Valid
2
Internal Clocks
注意:
1. 全てのVcc(VCC_RTCを除く)が有効になってから、PWRGOODが有効になるまでは約1秒です。
2. PWRGOODが有効になってから、PLLが安定するまでは10ms以下です。
3. PWRGOODから、CPUリセットおよび外部リセットがデアサートされるまでは、10msです。
4. 内部の信号はリファレンスの目的だけに表示されており、外部ピンには出力されません。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
6-9
リセットの生成
6-10
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
第7章
Am5x86® CPU
7.1
概要
ÉlanSC520 マイクロコントローラは、Am5x86® CPUコアを内蔵しています。Am5x86 CPUの特徴
を以下に示します。
■ 100 または 133MHzで動作し、33MHzのバス・インタフェースをサポート
■ ライト・バック、
ライト・スルーいずれかに設定可能な、16Kバイトのユニファイド・キャッシュを内蔵
■ 浮動小数点演算ユニット内蔵( ANSI/IEEE 754 準拠)
■ デバッグ・サポート機能内蔵(第26章「 AMDebug™ テクノロジ」参照)
7.2
ブロック図
Figur 7-1 はAm5x86 CPUのブロック図です。
7.3
レジスタ
Am5x86 CPUは、Table 7-1 および Table 7-2 に示されたレジスタによって制御されます。
Table 7-1
メモリ・マップされたAm5x86®
CPUレジスタ
Register
Mnemonic
MMCR
Offset
Address
…lanSC520 Microcontroller
Revision ID
REVID
00h
Product identification, major and minor stepping
level
Am5x86 CPU Control
CPUCTL
02h
CPU cache mode (write-through or write-back),
CPU clock speed control
Floating Point Error Interrupt
Mapping
FERRMAP
D46h
Floating point error interrupt mapping
Reset Status
RESSTA
D74h
Reset source status: CPU shutdown (soft reset)
Table 7-2
ダイレクト・マップされたAm5x86®
Function
CPUレジスタ
Register
Mnemonic
I/O Address Function
SCP Data Port
SCPDATA
60h
System Control Processor (SCP) data write, a20
gate command emulation
SCP Command Port
SCPCMD
64h
SCP command write, a20 gate command
emulation, CPU reset command emulation
System Control Port A
SYSCTLA
92h
CPU soft reset generation, alternate a20 control
Floating Point Error Interrupt
Clear
FPUERRCLR
F0h
Clear FPU error interrupt
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
7-1
7-2
Central and
Protection
Test Unit
Control
ROM
FPU
Register
File
Micro-instruction
Limit and
Attribute
PLA
Base/
Index Segmentation
Unit
Bus
Descriptor
Registers
32
Floating
Point
Unit
ALU
Register File
Barrel Shifter
Decoded
Instruction
Path
32
32-Byte
Prefetcher
128
16-Kbyte
Cache
Cache Unit
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
STOP/TX
BR/TC
CMDACK
TRIG/TRACE
AMDebug™
Logic
24
32
32
32
100/133
Core
Clock
JTAG_TRST
JTAG_TCK
JTAG_TDI
JTAG_TDO
JTAG_TMS
Boundary
Scan
Control
2 x 16 Bytes
Code
Stream Code Queue
32
20
Physical
Address
Instruction
Decode
Displacement Bus
Translation
Look-Aside
Buffer
Paging Unit
2
pcd, pwt
Linear Address Bus
Am5x86® CPU
Cache
Control
Bus Control
Data Bus
Transceivers
Buffers
Address
Drivers
Bus
Interface
Core
Clock
Generator
ken, flush,
eads, inv
Control
Signals
d31-d0
a31-a2
be3-be0
Clock
Generation
Unit
Figure 7-1
32-Bit Data Bus
32-Bit Data Bus
64-Bit Interunit Transfer Bus
Élan™SC520 Microcontroller
Am5x86® CPU
Am5x86® CPUのブロック図
Am5x86® CPU Bus
Am5x86® CPU 成
7.4
動作
ÉlanSC520 マイクロコントローラは、高度に集積されたシステム・イン・シリコンであり、Am5x 86
CPUはその中枢です。Am5x86 CPUは、Am486マイクロプロセッサ・ファミリと完全に互換性を持っ
た高性能CPUです。Am5x86 CPUとペリフェラル間の通信は、ほとんど透過的に行われますのでこ
こではふれません。
Am5 x 86 CPU のすべての動作について解説することが、この章の目的ではありません。Am5 x86
CPUに関する詳しい解説は、下記のAMDの資料をご参照ください。歴史の長いデバイスですので、
古い順にご紹介します。新しい資料は、
オリジナルに比べて改良された機能に関する記述を含んでい
ます。
■ Am486 R DX/DX2 Microprocessor Hardware Reference Manual, 1994 (注文番号#17965)
■ Enhanced Am486 Microprocessor Family Data Sheet, 1995, (注文番号#19225)
■ Am5x86 Microprocessor Family Data Sheet, 1996 (注文番号#19751)
ÉlanSC520 マイクロコントローラ持つAm5x86 CPUコアは、エンハンストAm486ファミリ(注文番
号#19225 に解説されています)から派生したものです。Am5x86 CPUは、標準的なAm486のアー
キテクチャとの互換性を完全に保ち、改良により最大133MHzで動作させることができます。下記の
違いについて知っておくことが望まれます。
■ L2 キャッシュには対応していません。必要な信号がÉlanSC520 マイクロコントローラではサポー
トされていません。
■ ÉlanSC520 マイクロコントローラではシステム管理モード( SMM )に対応していません。
この
■ Am5x86 CPUコアの観点では、キャッシュはデフォルトでライト・バック・モードになっており、
ことはCPUID命令でレポートされます。キャッシュのモードは、
Am5x86 CPU Control (CPUCTL)
レジスタ (MMCR offset 02h) によって、
ライト・スルーに変更することができます。
場合によってはプログラムが、それを実行しているハードウエアの環境を知りたいことがあります。
ÉlanSC520 マイクロコントローラでは、CPUID命令およびRevision ID (REVID) レジスタ (MMCR
offset 00h) によって知ることができます。詳しくは 第3章の「 3.3 CPUコアの確認方法」を参照し
てください。
7.4.1
浮動小数点演算ユニット(FPU )
Am5x86 CPUは演算ユニット( ALU)と並列に動作する、浮動小数点演算ユニット( FPU)を持ってい
ます。FPUは、
より複雑な演算を行う用途に有効です。内蔵FPUは次のような特徴を持っています。
■ ANSI/IEEE 754 規格に準拠
■ 様々な数値のデータ・タイプやフォーマットに対応
■ sin、cos、tanやlogなどの、超越関数をサポート
■ 80387(および以前の)演算コプロセッサとソフトウエア互換
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
7-3
Am5x86® CPU
7.4.2
キャッシュ・メモリ管理
ÉlanSC520 マイクロコントローラは、16Kバイトのコード/データ用のユニファイド・キャッシュを持っ
ています。キャッシュの動作はデフォルトでライト・バック・モードです。キャッシュ・モードは Am5x86
CPU Control レジスタの Cache Write Mode (CACHE_WR_MODE) ビットをセットすることによ
り、
ライト・スルーにできます。キャッシュ・モードをライト・バックからライト・スルーに変更する際には、
内容をフラッシュしなければなりません。
CPUが内蔵するキャッシュは、通常レベル1(L1)キャッシュと呼ばれます。CPUの外にあるキャッシュ
は、
レベル2(L2 )キャッシュと呼ばれます。ÉlanSC520 マイクロコントローラは、L2キャッシュをサ
ポートする機構もピンも持っていません。L1キャッシュはCPU の machine status (CR0) レジスタ
のstandard cache configuration ビットで設定することができます。Cache Disable (CD) と Not
Write-Through (NW) ビットの組み合せを Table 7-3 に示します。
Table 7-3
キャッシュ構成オプション
CD
NW
1
1
Operating Mode
Cache line fills, cache write-throughs, and cache invalidations are disabled. To
completely disable the cache, set both CD and NW to 1 and flush the cache by
executing a WBINVD or INVD instruction.
1
0
Cache line fills are disabled. Cache write-throughs and cache invalidations are
enabled. This configuration allows software to disable the cache for a short time,
then re-enable it without flushing the original contents.
0
1
Invalid setting. A general-protection exception with an error code of 0 is generated.
0
0
Cache line fills, cache write-throughs, and cache invalidations are enabled. This
is the normal operating configuration.
CPUのページング機能を使用する場合、キャッシュの可否およびキャッシュ書込みモードは、ページ・
テーブルのコントロール・ビットによってページ単位に設定できます。ライト・バック動作をさせるため
Am5x86 CPU Control (CPUCTL) レジスタのCACHE_WR_MODEビットをライト・バック・キャッ
には、
シュ・モードにセットしておかなければなりません。
キャッシュ動作はアクセスごとにメモリ管理サブシステムによって制御されます。例えば、
GPバスやPCI
バス・アクセスはキャッシュされません。プログラマは、
メモリ
( SDRAMやROM)の領域ごとにキャッ
シュの可否を設定できます。詳しくは第4章「システム・アドレス・マッピング」を参照してください。
7.4.3
クロックの考察
ÉlanSC520 マイクロコントローラの内蔵するAm5x86 CPUのバス周波数は常に33MHzです。しか
しながら、
Am5x86 CPUコアの周波数は、100MHzまたは133MHzにプログラムすることができます。
Am5 x 86 CPUコアのクロック・スピードはデフォルトで 100MHzですが、Am5 x 86 CPU Control
(CPUCTL) レジスタ (MMCR offset 02h) によって動的に変更できます。比較的キャッシュのヒット率
が高いシステムでは、
より高速なコア・クロックによる性能向上よりも、
より大きな効果が得られます。
なぜならば、キャッシュはROMやSDRAMアクセスなどの、
外部バス動作に影響されないためです。
クロック・スピードの変更はシステムには影響を与えませんが、Am5x86 CPUのPLLが安定するまで
には1mSかかります。クロック・スピードを変更すると、ÉlanSC520 マイクロコントローラのクロック
制御ロジックは自動的にAm5x86 CPUのキャッシュをフラッシュさせます。そしてキャッシュのフラッ
シュが終了するのを待ち(フラッシュ中はメモリ・リード・サイクルもディセーブルされます)、
PLLの周
波数を変更します。CPUのPLLは安定するまでに1ms必要なので、Am5x86 CPUのキャッシュ・スヌー
7-4
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
Am5x86® CPU 成
ピングもサスペンドされます。しかしながら、キャッシュは前もってフラッシュされますので、
この期間
のコヒーレンシ、
PCIバス・マスタ・サイクル、GPバスDMAコントローラ動作に対する問題は一切あり
ません。割込みもAm5x86 CPUが再び動作し始めた後処理されます。
CPUのPLLが安定し新しい周波数で動作し始めると、キャッシュも周波数変更前のモードで動作し始
めます。したがって、
外部のハードウエアやソフトウエアによって特別の対応をする必要はありません。
注意:全てのÉlanSC520 マイクロコントローラ・デバイスで全てのAm5x86 CPUのクロック・レートをサポートするわ
けではありません。デバイスの最高のクロック・スピードは、パッケージに印刷されたパーツ番号に示されていま
す。クロック関係の設定はデバイスの最高スピードより大きくすることができますが、動作が不安定になり物理
的なダメージをデバイスに与えることもあります。
7.4.4
割込み
Am5x86 CPUはマスク可能割込みを、プログラマブル・インタラプト・コントローラ( PIC)から受けま
す。Am5x86 CPUはまた、
ディセーブル可能なマスク不可割込み(NMI)もサポートします。両割込み
のソースやルーティングに関しては、第15章「プログラマブル・インタラプト・コントローラ」を参照し
てください。
7.4.5
遅延
クロック・スピードの変更はシステムには影響を与えませんが、
Am5x86 CPUのPLLが安定するまでに
Am5x86 CPUが再び動作し始めた後に処理されます。
は1msかかります。この間に発生した割込みは、
7.5
初期化
ÉlanSC520 マイクロコントローラが内蔵するAm5x86 CPUは、2種類のCPUリセット、ハードCPUリ
セットおよびソフトCPUリセットをサポートします。第6章「リセットの生成」に様々なAm5x86 CPUの
ハード/ソフト・リセットのソースが詳解されています。Am5x86 CPUの初期化に関する詳しい情報
は、第3章「システムの初期化」および「 7.4 動作」を参照してください。
7.5.1
ハードCPUリセット
ハードCPUリセットの間にAm5x86 CPUもリセットされ、
クロック周波数はデフォルトの100MHzに設
定されます。PWRGOODピンのデアサーションを始めとする様々なリセット・ソース( Table 6-3 を
参照)により、Am5x86 CPUを初期化するためにハードCPUリセットは用いられます。ハードCPUリ
セットはAm5x86 CPUのレジスタや内蔵キャッシュもリセットします。
ハードCPUリセットは、マイクロプロセッサの全ての実行とローカル・バス・アクセスを中断します。
キャッシュの内容を全て破棄し、キャッシュをディセーブルし、FPUもリセットします。Am5x86 CPUは
システム・リセットがデアサートされた後、
ブート・ベクタ FFFFFFF0h から実行を開始します。コア・
クロック周波数は100MHzになります。
7.5.2
ソフトCPUリセット
ソフトCPUリセットは、CPU のライト・バッファ、キャッシュの内容やモード(ライト・バック、
ライト・ス
ルー)に影響を与えません。Am5x86 CPUのコア・クロック周波数も変更されず、キャッシュ・スヌー
プも動作します。
ソフト・リセットは、
プロテクト・モードからリアル・モードへ移行する際に用います。ソフトCPUリセット
の後、Am5x86 CPUは FFFFFFF0h から初期化を開始します。プロセッサの状態は、内蔵キャッシュ、
Am5x86 CPU machine status (CR0) レジスタのCDおよびNWビット以外はハードCPUリセット後
と同じであり、Am5x86 CPUのライト・バッファもソフト・リセット以前の内容が保存されます。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
7-5
Am5x86® CPU
ソフト・リセット・イベントは Interrupt Control (PICICR) レジスタのNMI_ENBビットをクリアし、NMI
をディセーブルします。これにより、
ソフト・リセット後NMIを有効にする前に、
スタックポインタを初期
化することができます。
7-6
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
第8章
システム・アービトレーション
8.1
概要
ÉlanC520 マイクロコントローラは2つのアービタを持っています。CPUバス・アービタは、内部CPU
バスにつながっているAm5x86 CPU、PCIホスト・ブリッジ、
およびGP-DMAコントローラ間のアービ
トレーションを行います。PCIバス・アービタは、Am5x86 CPUと外部PCIバス上の最大5つのPCIバ
ス・マスタとの間のアービトレーションを行います。システム・アービタは、PCI Local Bus Specification, Revision 2.2、およびPCIバス・トランザクション・オーダのルールに従って動作します。
アービトレーション・サブシステムは以下の特徴を持っています。
■ 最大5つのPCIバス・マスタをサポート
■ 並列(コンカレント)、非並列(ノンコンカレント)動作モード:
– 並列アービトレーション・モードは、CPU バス・アービトレーションと独立してPCIバス・アービ
トレーションを行い、PCIバス上での peer-to-peerの動作と、CPU、
メモリおよびGPバス間の
アクセスとの同時進行をサポート
– 非並列アービトレーション・モードは、サイクルをどこで実行するかに関わらずPCIおよびCPU
両バスの使用権を自動的に獲得
■ PCIバス・アービタは、バス・マスタ権に関して交互優先度(プライオリティ)を持つ2つのキューを
サポート:
– 高優先度のキューは最大2つのバス・マスタをサポート。どのマスタでも高優先度のキューを
使うことが可能
– 低優先度のキューは高優先度に割当てられていない全てのマスタを管理
または3回のPCI バス・マスタ期間経過の度に、自動的にバス使用権を取
■ CPUの優先度は、1、2、
るようプログラム可能
■ 並列アービトレーション・モードでは、CPUあるいは最後のマスタがバスをキープするかを決める
PCIバス・パーキングのオプションをサポート
■ PCIバス・マスタの リクエスト/グラント・ペアは、別々のレジスタにより個々にマスク可能
■ CPU バス・アービタは、Am5x86 CPUクロックの変更に伴うPLL安定までの期間中、PCI バスや
GP-DMAによるSDRAMアクセスがある場合、自動的にAm5x86 CPUをバイパス
8.2
ブロック図
Figure 8-1 に、システム・アービタのブロック図を示します。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
8-1
システム・アービトレーション
Figure 8-1
システム・アービタのブロック図
Élan™SC520 Microcontroller
GP Bus
CPU
ROM
System Arbiter
CPU Bus Arbiter
SDRAM Controller
CPU Bus
GP-DMA
PCI Bus Arbiter
gnt
PCI Host Bridge
GNT4–GNT0
REQ4–REQ0
req
PCI Bus
8.3
レジスタ
アービトレーション・サブシステムは、Table 8-1 に示されるメモリ・マップされたレジスタによって制
御されます。
Table 8-1
メモリ・マップされたシステム・アービトレーション・レジスタ
Register
Mnemonic
MMCR
Offset
Address
System Arbiter Control
SYSARBCTL
70h
PCI bus parking select, concurrent arbitration
mode enable, PCI bus grant time-out interrupt
enable
PCI Bus Arbiter Status
PCIARBSTA
71h
PCI bus arbiter grant time-out identification and
status
System Arbiter Master
Enable
SYSARBMENB
72h
Enables for PCI bus REQ4–REQ0 signals
Arbiter Priority Control
ARBPRICTL
74h
PCI bus arbiter rotating priority queue control
8-2
Function
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
システム・アービトレーション
Table 8-1
メモリ・マップされたシステム・アービトレーション・レジスタ(続き)
Register
Mnemonic
MMCR
Offset
Address
PCI Host Bridge Interrupt
Mapping
PCIHOSTMAP
D14h
8.4
Function
System arbiter and PCI host bridge interrupt
mapping to any of 22 available interrupt
channels or NMI, PCI NMI enable control
動作
ÉlanSC520 マイクロコントローラのアービトレーション・サブシステムは、CPUバスとPCI バス用の
2つの独立したアービトレーション・ユニットで構成されます。
PCIホスト・ブリッジ、およ
■ CPUバス・アービタは、内部CPUバスにつながっているAm5x86 CPU、
びGP-DMAコントローラ間のアービトレーションを行います。
■ PCIバス・アービタは、
Am5x86 CPUと外部PCIバス上の最大5つのPCIバス・マスタとの間のアー
ビトレーションを行います。
8.4.1
動作モード
システム・アービタは、2つのモードで柔軟に動作することができます。
■ 並列アービトレーション・モード
■ 非並列アービトレーション・モード
並列アービトレーション・モードの場合2つのバス・アービタは完全に独立して動作し、非並列アービト
レーション・モードでは両者はインターロックされます。
一般的に、CPUバスとPCIバスの動作が同時に行われるので、並列アービトレーション・モードの方が
高い性能を得られ、
最高性能を引出せます。しかしながら、
場合によっては非並列アービトレーション・
モードの方が都合が良いシステムもあります。特に、並列モードに対応していない古いバス・ブリッジ
において、
データ・コヒーレンシの問題が発生する場合です。
アービトレーション・モードは、
System Arbiter Control (SYSARBCTL) レジスタ (MMCR offset 70h)
のCNCR_MODE_ENBビットによって設定します。リセット後アービトレーション・モードはデフォルト
で非並列アービトレーション・モードになります。
8.4.1.1
非並列アービトレーション・モード
非並列アービトレーション・モードでは、全てのマスタからの要求に対し、
アクセスのデスティネーショ
ンに関わらず自動的にCPU バスとPCI バス両方の権利を取得します。このモードでは、CPU バスと
PCIバスの動作は同時には行われません。外部PCIバス・マスタからの要求は、その転送がPCIデバイ
ス同士(peer-to-peer)であっても、
ホスト・ブリッジがCPU バスのアクセス権を許可されるまで、
許可
されません。
外部PCI バス・マスタがバス要求を行うと、次のようになります。
1.
PCIバス・アービタが外部PCIバス要求を受けると、CPUバス・アービタに対しホスト・ブリッジ要
求を出します。PCIバス・アービタはデフォルトでCPUについてパークされます。このモードでは、
最後のマスタについてパークされるようにプログラムしてはなりません。
2.
CPUバス・アービタがホスト・ブリッジ要求を受けると、Am5x86 CPUの次のサイクルでそれを
許可します。CPUバスはデフォルトでAm5x86 CPUがアクセス権を持っているので、
このバスの
アクセス権を取るためにはCPUに対してバス要求をしなければなりません。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
8-3
システム・アービトレーション
3.
ホスト・ブリッジがCPUバスのアクセス権を取った事を確認すると、
PCIバス・アービタは外部PCI
バス・マスタに対してアクセス権を与えます。この時点で外部PCIバス・マスタは、PCIバスおよ
びCPUバス両方のアクセス権を持っていることに注目してください。
非並列アービトレーション・モードでは1つのバス・マスタしか許可されないので、PCIバスとCPUバ
スは本質的に1つのバスになってしまいます。アービタが非並列アービトレーション・モードに設定さ
れている時は、CPUからPCIバスへのライト・ポスティングはディセーブルされていなければならない
ので注意が必要です。
このモードでは、通常の非並列(non-concurrency)の規則に対しての例外があり、
以下のステップに
それを示します。
1.
CPUは両方のバスを取得し、外部PCIターゲットにメモリまたはI/O の読書きを行います。ター
ゲットがリトライをCPUに対して発行します。PCIバスはリトライによってアイドルになりますが、
CPUはCPUバス上でアクティブ(ウエイト・ステート中)のままです。
2.
この状態で外部PCIバス・マスタがSDRAMヘの書込みのためにバス要求をします。通常の非並
列アービトレーション・モードではこの要求は許可されません、なぜならばPCI バス・アービタが
CPUバスの権利取得を待っているからです(しかし、CPUはPCIターゲット・リードのリトライを待
つためにウエイト・ステート中)。PCIバス・トランザクション順位の規定では、PCIエージェントは
ターゲットでのメモリ書込みの許可を、マスタでのリードの終了に基づいて行ってはならないこ
とになっています。そのためÉlanSC520 マイクロコントローラのホスト・ブリッジは、CPUをバ
スから切り離し、外部バス・マスタの書込みを終了させます。
3.
CPUに対してboffをアサートした後、アービタは外部マスタにPCIバス権を渡し、マスタは書込み
を完了します。PCI バス・マスタが書込みを終了するとboff信号をデアサートされ、CPUは再び
CPUバス権を持ちます。そして元々の CPUからPCI への転送が、ÉlanSC520 マイクロコント
ローラのホスト・ブリッジ・マスタ・コントローラによって再実行されます。
8.4.1.2
並列アービトレーション・モード
並列アービトレーション・モードでは、PCIバスのアービトレーションとCPUバスのアービトレーション
が並行し、
PCIバス・デバイス間の転送とCPUのメモリまたはGPバス・アクセスを同時に行うことがで
きます。このモードでは、
CPUバス・アービタとPCIバス・アービタは独立して動作します。両アービタ
のデフォルトのバス所有権は、非並列アービトレーション・モードと同じです。外部PCI バス・マスタか
らのバス要求は、
ホスト・ブリッジがCPUバス権を取らなくても許可されます。これによりCPUバスと
PCIバスの動作が同時に行われます。
並列動作の例を以下に示します。
■ Am5x86 CPUがSDRAMをアクセスしている間に、外部PCI バス・マスタのデータ書込みがホス
ト・ブリッジのターゲットFIFOに対して行われます。
■ Am5x86 CPUまたはGP-DMAのSDRAMアクセスが、外部PCIバス・マスタとPCIバス・ターゲッ
トとの間の転送と並行して行われます。
■ ÉlanSC520 マイクロコントローラのホスト・ブリッジ・ターゲット・コントローラのSDRAMアクセ
スと、
マスタ・コントローラによるポストされたデータの外部PCIターゲットへの書込みが同時に
行われます。
8-4
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
システム・アービトレーション
8.4.2
CPUバス・アービタ
CPUバス・アービタは内部CPUバスへのアクセスを制御します。この内部バスは、以下のアクセスが
許されます。
■ Am5x86 CPUのSDRAM、GP バス、PCI、ROMアクセス
■ GP-DMAのSDRAMアクセス
■ 外部PCIマスタ・サイクルに起因するPCIホスト・ブリッジの SDRAMアクセス
CPUバス上では並列実行はできません(即ち、Am5x86 CPUがGPバス・アクセスを実行中にPCIホ
スト・ブリッジがSDRAMをアクセスする等)。CPU バス権を取得できるのは、
どのような場合でも一
つのマスタだけです。
8.4.2.1
CPUアービトレーション・プロトコル
CPUバス・アービタは、各バス・マスタが順番にバス権の取得を保証される、ローテーション・プライオ
リティ・アルゴリズムを持っています。マスタはバス・グラントを受けた時には、
キューの中で最低のプラ
イオリティを得ます。マスタはリクエストをアサートしていなければ、
順番が回ってきてもスキップされ
ます。しかし、
低いプライオリティのマスタがリクエストをアサートしています。このような場合、
スキッ
プされたマスタは処理が終ったものと見なされ、
最低のプライオリティになります(Figure 8-2 参照)。
Figure 8-2
スキップされたマスタの例
M0 is finishing its transaction; therefore its REQ and
GNT are being deasserted
M0
M2
M1
REQ=0
REQ=1
M1 not requesting the bus at the end of the M0
transaction; thus it is skipped, and M2 gets GNT
asserted instead
Rotating Priority Queue
Notes:
Priority: M0, M2, M0, M1, M2, M0, M1, M2, ...
Figure 8-2 に示す例では、M0が転送を終了した直後であるとする。この時、回転キューの中の次の
マスタはM1になります。しかし、
M1はバス・リクエストを出しておらず、M2(この時点でさらに低いプ
ライオリティのマスタ)がバス・リクエストを出しています。この場合、M1はスキップされ、M2にバス
権が与えられます。M1はスキップされた後、バス権を取得したものとみなされ最低のプライオリティ
になります。M2が転送を終えた後、M0が最高のプライオリティのマスタになります。
CPUの回転キューを Figure 8-3 に示します。リセット後、他のマスタがバス要求しないかぎり、Am5x86
CPUがデフォルトでバス所有権を有します。PCIバス・マスタから書込みデータがポストされたり、PCI
バス・マスタへ渡すデータをSDRAMから読出す場合、
ホスト・ブリッジがバス要求を出します。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
8-5
システム・アービトレーション
Figure 8-3
CPUバスの回転プライオリティ・キュー
CPU
Host
Bridge
Target
GP Bus
DMA
8.4.2.2
CPUのキャッシュ・スヌーピング
Am5x86 CPUのキャッシュは、ライトバック・モードに設定されている場合、CPUからのメモリ書込み
はキャッシュの内容だけを更新します。この時外部のSDRAMは不正なデータを持つことになります。
そのため、外部バス・マスタがSDRAMにアクセスする場合、
コヒーレンシを保つためにスヌーピング
を行わなければなりません。他のマスタ(GP-DMAまたはPCIホスト・ブリッジ)が不正なデータを格
納しているSDRAMをアクセスしようとした場合、その前にキャッシュが保持している正しいデータを
SDRAMに書出さなければなりません。このため、Am5x86 CPUはAm5x86 CPU以外の行う全ての
SDRAMアクセス(読書き両方とも)をスヌーピングしています。
Am5x86 CPUのキャッシュは、Am5x86 CPU Control (CPUCTL) レジスタ(MMCR offset 02h) の
CACHE_WR_MODEビットをセットすることにより、
ライト・スルー・キャッシュ・モードに設定すること
ができます。このモードでは、
メモリ書込みの際に内蔵キャッシュと外部メモリが両方とも更新されま
す。外部メモリが更新されるため、Am5x86 CPUのメモリ書込みにおけるコヒーレンシの問題はあり
ません。しかしながら、Am5x86 CPUのキャッシュが外部メモリとコヒーレンシを保つために、外部マ
スタの書込みサイクルはスヌープしています。この場合、外部メモリが更新されるとキャッシュは不正
なデータを持つことになります。コヒーレンシを保つため、
スヌープによりこの内部キャッシュの不正
な部分が無効化されます。ライト・スルー・モードでは、スヌーピングによるオーバーヘッドはありませ
ん。スヌープはサイクルの間に行います(プリエンプション、
ライト・バック、
余分なウエイト・ステート等
は入りません)。
ÉlanSC520 マイクロコントローラは動的なキャッシュ・モードの変更をサポートしていません。
8.4.2.3
8-6
PCIホスト・ブリッジ・ターゲットのアクセス
PCIホスト・ブリッジは、外部PCIバス・マスタがÉlanSC520 マイクロコントローラのSDRAMにアクセ
スすることを許します。ÉlanSC520 マイクロコントローラの内蔵するホスト・ブリッジは2つの64ダ
ブル・ワードFIFO(1つはリード、1つはライト)を持っており、PCIバスの性能を向上させます。CPUバ
ス・アービタによってバス権が許可されると、PCIホスト・ブリッジ・ターゲット・コントローラは他のバ
ス・マスタがバス権を取る前に、最大64ワードをプリフェッチ(メモリ・リード・マルチプル・コマンドの
ため)、
または最大64ダブル・ワードを書込む(メモリ・ライトまたはメモリ・ライト・アンド・インバリデー
ト・コマンドのため)ことができるようになります。この期間CPUバスは他の如何なるマスタにも渡さ
れません。Am5x86 CPUはしかし、必要に応じてキャッシュのライト・バックを行うためにバス権を与
えられることがあります。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
システム・アービトレーション
8.4.2.4
GPバスDMAアービトレーション
GP-DMAコントローラにより、内部および外部のGPバス・デバイスはSDRAMに対してDMAアクセス
を行うことができます。GP-DMAにはプリエンプションの機能はありません。そのため、一度DMA転
送が始まるとDMAコントローラがバス要求をデアサートするまで、CPU バスは他のマスタにはバス
権が与えられません。そして、その期間はチャネルがシングル・サイクル転送かブロック・モード転送
にプログラムされているかによって変わります。様々なDMAのモードや転送に関しては、
第14章「GP
バスDMAコントローラ」を参照してください。しかしながら、
Am5x86 CPUは必要に応じてキャッシュ
のライト・バックを行うためにバス権を与えられることがあります。
8.4.2.5
クロック速度変更中のアービトレーション
温度管理が必要なシステムにおいては、動作中にAm5x86 CPUのコア・クロックの速度を動的に変更
することができます。クロック速度が変更されている間、Am5x86 CPUはバス・サイクルを行うことが
できません。そのため、キャッシュ・スヌーピングも行うことができません。
長いPLLリカバリ期間にバス・マスタがSDRAMのアクセスをし続けるために、CPUバス・アービタは
Am5x86 CPUのバス要求をマスクし、PCIホスト・ブリッジとGP-DMAコントローラのみCPUバスに
CPUバス・
アクセスできるようにします。もしCPUバス権を要求しているマスタが何もなかった場合、
アービタがバスを所有します。
Am5x86 CPUのクロックが変更されていない通常の動作中は、Am5x86 CPUがデフォルトでバス権
を所有しています。
8.4.3
PCIバス・アービタ
PCI Local Bus Specification, Revision 2.2 では、アービタとして知られている中心となるリソー
スについて定義してあります。このリソースは、PCIバスに対するPCIマスタ・アクセスを制御します。
アービトレーションのアプローチはアクセス・ベース、
すなわちPCIマスタはバスを必要としている(バ
ス・リクエストした)ときだけバス権を得る(「 8.4.3.2 バス・パーキング」に解説するバス・パーキン
グの場合を除く)ということです。
各PCIマスタが独自にリクエスト(REQ)およびグラント(GNT)信号を持ち、単純なリクエスト/グラ
ントのハンド・シェークが用いられています。PCIバス・アービトレーションは隠されて(hidden )おり、
つまり次のサイクルのアービトレーションは現在のサイクル中に行われますので、
アービトレーション
のための余分なサイクルを消費しません(バスがアイドル状態で、
リクエスト/グラントが1つもアク
ティブでない場合を除く)。
PCIバスはアイドル状態の時、
フローティングにならないようにPCIマスタにパークされます。これは
PCIマスタがリクエストしていないにも関わらず、そのGNT信号をアサートすることによって行われ
ます。GNTを受けた PCIマスタは出力ドライバを駆動し、バスのフローティングを防ぎます。
ÉlanSC520 マイクロコントローラはPCIバス・アービタの中心となるリソースを持っています。内蔵
するPCIバス・アービタは、PCIホスト・ブリッジ( PCIマスタとしてのAm5x86 CPU)と最大5つの外部
PCIマスタとの間のアービトレーションを行います。ÉlanSC520 マイクロコントローラのPCIホスト・
ブリッジへのreq/gnt 信号ペアは、
内部でPCIバス・アービタに接続されています。5つの外部 REQ/GNT
ピン・ペア (REQ4-REQ0, GNT4-GNT0) が、外部のPCIマスタをÉlanSC520 マイクロコントローラ
のPCIバス・アービタに接続するために提供されています。この章の以下の説明において、
「PCIバス・
アービタ」とはÉlanSC520 マイクロコントローラが内蔵するPCI バス・アービタを指します。
Am5x86 CPUはメモリ書込みサイクルをバースト転送しない(キャッシュのライト・バック時を除く。
ÉlanSC520 マイクロコントローラではPCIメモリ空間はキャッシュ不可なので、
これは当てはまらな
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
8-7
システム・アービトレーション
い。)ので、ÉlanSC520 マイクロコントローラはPCIバスに対するCPUからの書込み時に、2つの連
続するダブル・ワードより多くのバースト転送をしません。
8.4.3.1
PCIバス・アービトレーション・プロトコル
PCI Local Bus Specification, Revision 2.2 では、中央のアービタは公平なアルゴリズムを持つよ
う指示されており、
各バス・マスタは他からのリクエストに関係なくグラントされなければなりません。
PCIバス・アービタは回転プライオリティ・アービトレーションによって、各マスタが順番に必ずバス権
を得られるように実現しています。
(回転プライオリティ・アービトレーションに関する詳しい説明は、
Figure 8-3 を参照してください。)
あるPCIマスタが他よりも広い帯域幅を必要とすることが分かっているようなシステムにおいては、
回転プライオリティ・アービトレーションだけでは十分でないかも知れません。そのため、
ÉlanSC520
マイクロコントローラのPCIバス・アービタは、高プライオリティ・キューと低プライオリティ・キューと
いう2つの回転プライオリティ・キューを持つことによってこのようなシステムに対応します。
高プライオリティ・キューのマスタは、
低プライオリティ・キューのマスタよりも多くのバス帯域を得る
ことができます。高プライオリティ・キューは最大2つのPCIマスタを、低プライオリティ・キューはそれ
以外の全てのマスタを持ちます。Arbiter Priority Control (ARBPRICTL) レジスタ (MMCR offset
74h) の HI_PRI_0_SEL および HI_PRI_1_SEL ビットに、高プライオリティ・キュー内のPCIマスタ
の場所を設定します。
両方のキューが回転プライオリティを持っており、
高プライオリティのマスタのローテーションが1周す
る毎に、
低プライオリティのマスタが1つバス権を得ます。1つの低プライオリティのマスタがバス権を
得ると、低プライオリティ・キューが1つ進み、次の低プライオリティ・マスタが待機します( Figure 8-4
参照)。
1つか2つ(または0 )のÉlanSC520 マイクロコントローラの PCI バス・マスタが、高プライオリティ・
キューに設定できます。高プライオリティ・キューの2つのスロットに両方とも同じバス・マスタを設定
することにより、
さらに高い性能を得ることができます。このように設定することにより、
高プライオリ
ティ・キューの2回のバス権の獲得を両方とも1つのマスタが使用できることになります。もし1つも
高プライオリティ・キューに設定されていない場合は、全てのマスタが同等のプライオリティを持つ1
つの回転キューとして機能します。
高、低プライオリティ・キューは、
外部PCIバス・マスタのために用意されており、Am5x86 CPUマスタ
はさらに別のレベルのアービトレーションを加えます。PCI バス・アービタは、Arbiter Priority Con-
trol (ARBPRICTL) レジスタのCPU_PRIビット・フィールドによって、1、2または3回の外部PCI転送(ど
の外部マスタがバス権を取るかは、
高、
低プライオリティ・キューによって決まる)の度にAm5x86 CPU
がバス権を取るように設定できます。このことは、また別の回転キューを構成することになります
(Figure 8-5 参照)。
PCI バスのアービトレーションに関する詳しい説明は、PCI Local Bus Specification, Revision 2.2
を参照してください。
8-8
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
システム・アービトレーション
Figure 8-4
外部のPCIマスタ・アービトレーション・キュー
LP0
HP1
LPn
LP1
LPx
HP0
LP2
LP3
High-Priority Queue
Low-Priority Queue
Notes:
HP0, HP1: High-priority masters
LP0, LP1, LP2, LP3, ..., LPn: Low-priority masters
LPx: Current low-priority master selected
Priority: HP0, HP1, LP0, HP0, HP1, LP1, HP0, HP1, LP2, HP0, HP1, LP3, ..., HP0, HP1, LPn
Figure 8-5
ホスト・ブリッジのマスタ・アービトレーション・キュー
CPU
Ext
PCI
Ext
PCI
Ext
PCI
Notes:
The PCI bus arbiter is configurable to grant the bus to the host bridge after every 1, 2, or 3 external
PCI transactions.
Priority configured for 1: CPU, Ext PCI, CPU, Ext PCI, ...
Priority configured for 2: CPU, Ext PCI, Ext PCI, CPU, Ext PCI, Ext PCI, ...
Priority configured for 3: CPU, Ext PCI, Ext PCI, Ext PCI, CPU, Ext PCI, Ext PCI, Ext PCI, ...
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
8-9
システム・アービトレーション
8.4.3.2
バス・パーキング
PCIバス・アービタは、バスがアイドル(PCIバス・マスタが1つもバス権を要求していない)の場合、バ
スをPCIバス・マスタにパークさせます。これは、PCIバスが常にターミネートされていなければなら
ないので必要になります。PCIバス・アービタは、現在バス権を持っているPCIマスタが転送を開始す
るとすぐに、次の転送のアービトレーションを行います。
バス・パーキングは System Arbiter Control (SYSARBCTL) レジスタ (MMCR offset 70h) の
BUS_PARK_SEL ビットで設定します。BUS_PARK_SEL ビットは、
システムまたはプログラマブル・
リセット後のPCIバス・アービタの初期化の時以外は変更してはなりません。
8.4.3.2.1
非並列アービトレーション・モードのバス・パーキング
非並列アービトレーション・モードでは、バスは常にCPUにパークされていなければなりません。これ
はCPUの性能を維持するために必要です。そうしなければ、外部アクセス(コード・フェッチを含む)
の度に、CPUがCPUバスとPCI バス両方を取得しなければなりません。
8.4.3.2.2
並列アービトレーション・モードのバス・パーキング
並列アービトレーション・モードでは、PCI バスは最後にバスを取得したマスタ、
または常にAm5x86
CPUにパークさせることができます。もし他のPCIマスタがバスを要求していなければ、現在のPCI
マスタに対するGNTがその転送を完了するまでアサートされます。
パークされたバス・マスタは、REQピンをアサートせずに転送を開始できますが(PCI バス・プロトコ
ルでは、
アイドル状態の場合、
GNTがアサートされているマスタは転送を開始できる)、
もし複数の転
送を行うときにはREQをアサートしなければなりません。
PCIバスのリクエストとグラントが1つもアクティブでない場合、アービタは最後のバス所有デバイス
に基づいてプライオリティを得ます。例えばバスがアイドル状態で、
リクエストとグラントが1つもアク
ティブでない時に、全てのマスタが同時にバスを要求した場合、
アービタは次のローテーションにあ
るマスタを選びます。
8.4.3.3
再アービトレーション
バス権を取得したPCIバス・マスタが、バスがアイドル状態になってから16クロック以内に転送を始め
ない場合は、
「壊れている(broken)」とみなすことができます。このような場合PCIバス・アービタは、
自動的に再アービトレーションを行い、次のPCIマスタにバスを渡します。
バス権を取得したPCIバス・マスタが16クロック以内に転送を始めない場合、
割込みを発生することが
できます。そして、壊れている( broken )マスタのREQ / GNT番号を PCI Bus Arbiter Status
(PCIARBSTA) レジスタ (MMCR offset 71h) で知ることができます。これによりソフトウエアは、壊
PCIバスを常にCPUにパークさせるように変更することができます。
れたPCIマスタをディセーブルし、
8-10
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
システム・アービトレーション
8.4.4
バス・サイクル
この節では、ÉlanSC520 マイクロコントローラで発生する様々な種類のアービトレーションの例を
タイミング図で示します。これらは単なる例であり、全てのケースが紹介されているわけではありま
せんのでご注意ください。ここに示す図は機能を示したものであり、詳細なタイミングを取上げたも
のではありません。またCPUクロックとPCIクロック間の同期についても詳述しておりませんのでご
了承ください。
8.4.4.1
CPUバス・アービトレーション
Figure 8-6 は、2つのCPUバス・マスタ間のアービトレーションです(明快にするために、2つのマス
さらに多くのアービトレーション
タしか描かれていません)。より多くのCPUバス・マスタがある場合、
信号グループが必要になり、個々のバス・マスタがグラントされる前に1つ以上のCPU バス転送が発
生します。
Figure 8-6
CPUバス・アービトレーション
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
clk
cpu_breq
cpu_hold
cpu_hlda
cpu_ads
cpu_rdy
mst_req
mst_gnt
mst_ads
mst_rdy
Notes:
In Figure 8-6, the CPU bus master signals are labeled mst_xxx and the Am5x86 CPU signals are labeled cpu_xxx.
Snooping is not shown in this figure.
The clk signal denotes the 33-MHz clock source and represents both the CPU clock and the PCI clock. This diagram
does not represent the full synchronization of signals between these clock domains.
以下は Figure 8-6 に示すCPUバス・アービトレーション・サイクルの注釈です。
■ Clock#1: Am5x86 CPUがcpu_breqをアサートし、バスを要求します。cpu_hldaがアサートさ
れているので、
この時点では他のバス・マスタがバスを所有しています。
■ Clock#2: CPUバス・アービタがAm5x86 CPUのバス・リクエストを検知し、アービトレーション
を開始します。CPUバス・アービタはバスが空いており、Am5x86 CPUが次のバス所有権を得る
ことを決め、cpu_holdをデアサートします。もしバスが空いていなかったり、Am5x86 CPUが次
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
8-11
システム・アービトレーション
のマスタではなかった場合、cpu_holdはアサートされたままになります。この例では、
もう1つの
CPUバス・マスタもmst_reqをアサートしてバスを要求しています。
■ Clock#3: Am5x86 CPUはcpu_holdのデアサートを検知し、cpu_hldaをデアサートしてバス権
を取得します。Am5x86 CPUはcpu_adsをアサートしてサイクルを開始します。
■ Clock#4: CPUバス・アービタはcpu_adsのアサートを検知して、再びアービトレーションを行い
ます。CPU バス・アービタは現在のサイクル終了後、バスを他のマスタ(CPU バス・マスタ)に渡
すことを決め、Am5x86 CPUに対しcpu_holdをアサートします。Am5x86 CPUはcpu_hldaを
アサートするまでバスを保持し続けます。
■ Clock#8: Am5 x 86 CPU は現在のサイクルの終了を示すcpu_rdyのアサートを検知します。
Am5x86 CPUはまた、cpu_holdのアサートを既に検知しているのでcpu_hldaをアサートしてバ
スを放棄します。Am5 x86 CPUはまだ転送を完了していないので、cpu_breqをアサートして
CPUバス権を要求します。
■ Clock#9: CPU バス・アービタはAm5 x86 CPU がcpu_hldaをアサートしているのを検知し、
mst_gntをアサートしてCPUバス・マスタ(キューの中で次のマスタ)にバス権を渡します。
■ Clock#10: CPU バス・マスタはmst_gntのアサートを検知すると、mst_adsをアサートしてサイ
クルを開始します。
■ Clock#11: CPUバス・アービタはmst_adsのアサートを検知して、再びアービトレーションを行
います。CPUバス・アービタは現在のサイクル終了後、
Am5x86 CPUにバス権を渡すことを決め、
CPU バス・マスタへのmst_gntをデアサートします。CPUバス・マスタは、mst_reqをデアサート
するまでバスを保持し続けます。
■ Clock#15: CPUバス・マスタは現在のサイクルの終了を示すmst_rdyのアサートを検知します。
CPUバス・マスタはまたmst_gntのデアサートを検知し、mst_reqをデアサートしてバスを放棄し
ます。
■ Clock#16: CPUバス・アービタはCPUバス・マスタのmst_reqのデアサートを検知し、cpu_hold
をデアサートしてAm5x86 CPUにバス権を渡します。
8.4.4.2
キャッシュのライト・バックにおけるCPUバス
Figure 8-7 はAm5x86 CPUのキャッシュ・ライト・バック・サイクルを示しています。他のCPU バス・
マスタが、Am5x86 CPUのキャッシュの中だけが更新された領域にアクセスしようとした場合、
キャッ
シュはライト・バックされなければなりません(外部メモリは不正なデータを格納しています)。
8-12
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
システム・アービトレーション
Figure 8-7
CPUバスのキャッシュ・ライト・バック
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
clk
cpu_hold
cpu_hlda
eads
hitm
cpu_ads
cpu_rdy
mst_req
mst_gnt
mst_ads
mst_rdy
Notes:
In Figure 8-7, the CPU bus master signals are labeled mst_xxxx and the Am5x86 CPU signals are labeled cpu_xxxx.
The additional internal CPU bus interface signals shown in Figure 8-7 for write-back cycles are
• eads: External Address Strobe–A sserted by the CPU bus master to initiate a snoop by the Am5x86 CPU.
• hitm: Hit Modified Line–CP U must write back cache line to maintain coherency.
The clk signal denotes the 33-MHz clock source and represents both the CPU clock and the PCI clock. This diagram
does not represent the full synchronization of signals between these clock domains.
以下は Figure 8-7 に示すCPUバスのキャッシュ・ライト・バック・サイクルの注釈です。
■ Clock#1: CPU バス・マスタがバスを所有しています( CPU バス・マスタのmst_gntがアサート
され、Am5x86 CPUのcpu_hold/cpu_hlda がアサートされています)。
■ Clock#2: CPUバス・マスタはAm5x86 CPUに対してeadsをアサートし、問い合せサイクルを開
始します。
■ Clock#4: Am5x86 CPUはhitmをアサートし、スヌープの結果が更新されたラインにヒットして
いることを知らせます。Am5x86 CPUはコヒーレンシを保つため、
ライト・バック・サイクルを実行
しなければなりません。
■ Clock#5: CPU バス・マスタはhitmがアサートされているのを検知し、次のクロックでバスを放
棄します。CPUバス・アービタは、cpu_holdをデアサートしAm5x86 CPUにライト・バック・サイ
クルを許可します。
■ Clock#6: Am5x86 CPUはcpu_holdのデアサートを検知し、cpu_hlda をデアサートしてバス
権を得ます。そして、cpu_ads信号をアサートしてライト・バック・サイクルを開始します。
■ Clock#7: CPU バス・アービタはcpu_adsのアサートを検知すると、Am5 x 86 CPUに対して
cpu_holdをアサートし、
ライト・バック・サイクルの後, 余分なサイクルが始まらないようにします。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
8-13
システム・アービトレーション
■ Clock#11: Am5 x 86 CPU はライト・バック・サイクルの終了を示すcpu_rdyを検知します。
Am5x86 CPUはまたcpu_holdがアサートされているのを検知しているので、cpu_hldaをアサー
トしてバスを放棄します。
注意:このライト・バック・サイクルは説明の為に簡略化してあります。実際のライト・バック・サイクルでは複数のデー
タ・フェーズが入ります。
■ Clock#12: Am5x86 CPUはcpu_rdyの1クロック後にhitmをデアサートし、
ライト・バック・サイク
ルを終了します。
■ Clock#13: CPU バス・マスタはhitmのデアサートを検知し、バス・サイクルを開始します。
8.4.4.3
CPU-to-PCI サイクル
Figure 8-8 は、Am5x86 CPU-to-PCI バス・サイクルです。Am5x86 CPUサイクルは、
リード・サイク
ルまたはライト・ポスティングをディセーブルしたライト・サイクルのどちらかです。
Figure 8-8
CPU-to-PCI バス・サイクル
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
clk
breq
cpu_hold
cpu_hlda
cpu_ads
cpu_rdy
req
gnt
FRAME
DEVSEL
IRDY
TRDY
Notes:
The clk signal denotes the 33-MHz clock source and represents both the CPU clock and the PCI clock. This diagram
does not represent the full synchronization of signals between these clock domains.
以下は Figure 8-8 に示すAm5x86 CPU-to-PCIバス・サイクルの注釈です。
■ Clock#2: Am5x86 CPUはbreqをアサートしてCPUバス権を要求します。CPUバス・アービタ
は、現在のバス・オーナーのサイクルが終了すると、CPUにバス権を渡します。待たされている
Am5x86 CPUサイクルはPCIヘ向けられています。
■ Clock#3: CPU バス・アービタはAm5 x86 CPUに対するcpu_holdをデアサートし、バス権を
Am5x86 CPUに渡します。CPUバスがアイドル状態でなかったり、より高いプライオリティの他の
マスタがバスを要求している場合、cpu_holdのデアサートは遅れることがあります。
8-14
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
システム・アービトレーション
■ Clock#4: Am5x86 CPUはcpu_hldaをデアサートしてCPUバス権を得、cpu_adsをアサートし
てPCIヘのサイクルを開始します。
■ Clock#5: CPUバス・アービタはcpu_adsのアサートを検知し、再びアービトレーションを行いま
す。この例では、
より高いプライオリティのマスタがバスを要求しているので、Am5x86 CPUに対
してcpu_holdがアサートされます。Am5x86 CPUはサイクルが終了するまでバスを持ち続けた
後、cpu_hldaをアサートします。
■ Clock#9: ホスト・ブリッジはAm5x86 CPUのPCI バス・サイクルを受けて、PCIバス・アービタに
対しreqをアサートします。
■ Clock#10: PCI バス・アービタはgntをホスト・ブリッジに対してアサートします。バスがアイドル
状態でなかったり、
より高いプライオリティの他のマスタがPCIバスを要求している場合、
gntのア
サートは遅れることがあります。
■ Clock#11: ホスト・ブリッジはgntがアサートされているのを検知し、PCI転送を開始します。
■ Clock#17: PCI 転送が完了すると、ホスト・ブリッジはAm5 x86 CPUに対してcpu_rdyを返し、
Am5x86 は CPU-to-PCIサイクルを終了します。
■ Clock#18: Am5x86 CPUはcpu_rdyのアサートを検知して現在のサイクルを終了し、cpu_hlda
をアサートして次のバス・マスタにCPUバスを渡します。
8.4.4.4
PCIバス・アービトレーション
Figure 8-9 は、
どのようにPCI バス・アービタが2つのマスタ間のアービトレーションを行うかを示し
ています。この例では2つのPCIマスタしか取上げられていませんが、
もっと多くのPCIマスタがある
場合でもメカニズムは同じです。違いは、
より多くのREQ/GNT信号ペアが関与し、個々のPCIマスタ
がバス権を取る前に1つ以上のPCI転送が入ることです。
Figure 8-9
PCIバス・アービトレーション
1
2
3
4
5
6
7
8
9
10
CLKPCIIN
REQ0
GNT0
REQ1
GNT1
FRAME
IRDY
TRDY
以下は Figure 8-9 に示すPCIバス・アービトレーション・サイクルの注釈です。
■ Clock#2: マスタ0とマスタ1が同時にバス権を要求します。
■ Clock#3: PCIバス・アービタはREQのアサートを検知し、
アービトレーションを開始します。この
時点ではマスタ0 がマスタ1よりも高いプライオリティを持っているので、PCI バス・アービタは
GNT0をアサートしてマスタ0にバス権を渡します。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
8-15
システム・アービトレーション
■ Clock#4: マスタ0 はバスがアイドル状態でありGNT0がアサートされたことを検知すると、
FRAMEをアサートして転送を開始します。この時点でマスタ0は、回転プライオリティ・キューの
中で最低のプライオリティに設定されます。
次のマスタのアービトレーショ
■ Clock#5: PCI バス・アービタは転送が始まったことを検出すると、
ンを行います。今度は回転プライオリティ・キューの中でマスタ1が最も高いプライオリティになっ
ているので、PCIバス・アービタはGNT0をデアサートし、GNT1をアサートします。
■ Clock#8: マスタ1 はバスがアイドル状態でありGNT1がアサートされたことを検知すると、
FRAMEをアサートして転送を開始します。この時点でマスタ1は、回転プライオリティ・キューの
中で最低のプライオリティに設定されます。
■ Clock#9: 他のマスタがバスを要求していないので、PCIバス・アービタはマスタ1へGNT1をア
サートし続けます。これによりマスタ1は、
マスタ・レイテンシ・タイマが終了した後でも、転送を続
けることができます。もし他のマスタがバスを要求していたならば、PCI バス・アービタは再び
アービトレーションを行い、GNT1をデアサートし、次のマスタのGNTをアサートしてバス権を渡
します。
8.4.4.5
PCIバス・アービトレーション・パーキング
Figure 8-10 は、並列アービトレーション・モードでPCIバスにアクセスするマスタが1つもない場合
の、バス・パーキングの例です。
PCIバス・アービタはAm5x86 CPUにパークするように設定されています。PCIバス・アー
この例では、
ビタが、最後にバスを取得したマスタにパークするよう設定されている場合、PCIバス・アービタは転
送を終了したマスタに対してGNTをアサートし続けます。
Figure 8-10
並列アービトレーション・モードでのバス・パーキング
1
2
3
4
5
6
7
8
9
10
11
CLKPCIIN
REQ0
GNT0
req
gnt
FRAME
IRDY
TRDY
Notes:
In Figure 8-10, req/gnt are for the Am5x86 CPU.
8-16
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
12
13
14
15
システム・アービトレーション
以下は Figure 8-10 に示す並列アービトレーション・モードでのバス・パーキングの注釈です。
■ Clock#2: マスタ0がバス権を要求します。
■ Clock#3: PCIバス・アービタはREQのアサートを検知し、
アービトレーションを開始します。マス
タ0がバスを要求している唯一のマスタなので、PCI バス・アービタはGNT0をアサートしてマス
タ0にバス権を渡します。
■ Clock#4: マスタ0 はバスがアイドル状態でありGNT0がアサートされたことを検知すると、
FRAMEをアサートして転送を開始します。この時点でマスタ0は、回転プライオリティ・キューの
中で最低のプライオリティに設定されます。
次のマスタのアービトレーショ
■ Clock#5: PCIバス・アービタは転送が始まったことを検出すると、
ンを行います。他のマスタがバスを要求していないので、PCI バス・アービタはマスタ0 への
GNT0をアサートし続けます。これによりマスタ0は、
マスタ・レイテンシ・タイマが終了した後でも、
転送を続けることができます。他のマスタがバスを要求している場合、PCIバス・アービタは再び
アービトレーションを行い、GNT0をデアサートし、次のマスタのGNTをアサートしてバス権を渡
します。
■ Clock#7: マスタ0は転送の終了を検知します。PCIバス・アービタはFRAMEがデアサートされ
たのを検知します。これらの信号は転送の最後のデータ・フェーズであることを意味します。他の
マスタがバスを要求していないので、PCIバス・アービタは設定されたマスタ(Am5x86 CPU)に
バスをパークします。PCIバス・アービタはマスタ0へのGNT0をデアサートし、Am5x86 CPUへ
のgntをアサートします。reqがアサートされていないことに注目して下さい。もしPCIバス・アー
ビタが、最後にバスを取得したマスタにパークするよう設定されている場合、PCIバス・アービタ
はGNT0をアサートし続けバスをマスタ0にパークします。
■ Clock#8: Am5x86 CPUはバスがアイドル状態でありgntがアサートされたことを検知します。
Am5x86 CPUは転送を開始する必要はありませんが、PCIバスを安定に保つためにドライブしな
reqをアサートしgntを待つ必要
ければなりません。この時Am5x86 CPUが転送を行いたい場合、
はありません。gntがアサートされた状態では、いつでもFRAMEをアサートして転送を開始する
ことができます。PCIバスがパークされたマスタは、
アービトレーションによる遅延を受けません。
■ Clock#10: マスタ0がREQ0をアサートしてバス権を要求します。
■ Clock#11: PCIバス・アービタはREQのアサートを検知し、
アービトレーションを開始します。マ
スタ0がバスを要求している唯一のマスタなので、PCIバス・アービタはマスタ0が次にバス権を
得るマスタであると決定します。PCI バス・アービタは次に、
Am5x86 CPUへのgntをデアサート
します。
■ Clock#12: PCI バス・アービタはGNT0をアサートします。バスがアイドル状態の時、PCI バス・
アービタは1つのマスタへのGNTのデアサートと、
もう1つのマスタへのGNTのアサートを同時
に行うことができないことに注意して下さい。同時に行うと、PCIバスの競合が起こる可能性があ
ります。
■ Clock#13: マスタ0 はバスがアイドル状態でありGNT0がアサートされたことを検知すると、
FRAMEをアサートして転送を開始します。この時点でマスタ0は、回転プライオリティ・キューの
中で最低のプライオリティに設定されます。PCIバスがアイドル状態の時、パークされていないマ
スタがバスを要求するとアービトレーションのため2クロックの遅延が起こります。これは、バス
がアイドル状態の時は、1 つのマスタへのGNTのデアサートと、もう1 つのマスタへのGNTのア
サートを同時に行うことができないためです。したがって、バスがパークされたマスタへのGNT
のデアサートに1クロック、次のマスタへのGNTのアサートに1クロック必要になり、結果として2
クロックの遅延が発生します。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
8-17
システム・アービトレーション
8.4.4.6
非並列モードでのアービトレーション
Figure 8-11 は、非並列モードでの外部PCIマスタのアービトレーションを示しています。非並列アー
ビトレーション・モードでは、PCI転送の転送先に関わらずCPU バスとPCI バスの両方がPCIマスタに
渡されます。
Figure 8-11
非並列モードでのアービトレーション
1
2
3
4
5
6
7
8
9
10
11
12
CLKPCIIN
REQ0
GNT0
hb_req
hb_gnt
FRAME
DEVSEL
IRDY
TRDY
Notes:
The diagram includes the following internal signals:
• hb_req: PCI host bridge requesting the Am5x86 CPU bus.
• hb_gnt: PCI host bridge has been granted Am5x86 CPU bus.
以下は Figure 8-11 に示す非並列モードでのアービトレーションの注釈です。
■ Clock#1: 外部PCIマスタがバスを要求します。
■ Clock#2: PCIバス・アービタは外部PCIからのバスの要求を検知して、CPU バス・アービタに対
してホスト・ブリッジ・リクエストをアサートします。外部マスタへのGNT0は、
ホスト・ブリッジが
CPU バス権を得るまでアサートすることはできません。もしシステム・アービタが並列アービト
レーション・モードで動作しているなら、PCIバスとCPU バスは独立しているので、外部マスタへ
のGNT0はClock#2でアサートされます。
■ Clock#5: CPU バス・アービタはホスト・ブリッジにバス権を渡すことを決め、hb_gntをアサート
します。よりプライオリティの高い他のマスタがCPUバスを要求している場合、
ホスト・ブリッジへ
のhb_gnt のアサートは遅れることがあります。
■ Clock#6: PCI バス・アービタはホスト・ブリッジがバス権を得たことを検知し、外部マスタに対し
GNT0をアサートします。
■ Clock#7: CPUバス・アービタは再びアービトレーションを行い、他のマスタがCPUバスを要求
しているのを検知し、
ホスト・ブリッジへのhb_gntをデアサートします。ホスト・ブリッジはhb_req
をデアサートするまで、CPU バスを放しません。外部PCI マスタはGNT0のアサートを検知し、
FRAMEをアサートしてPCI転送を開始します。
8-18
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
システム・アービトレーション
■ Clock#8: PCI バスがCPUにパークされたか、または他のマスタがPCI バスを要求したため、
GNT0はデアサートされます。
またhb_gntのデアサートを検知すると、
■ Clock#11: ホスト・ブリッジはPCI転送の終了を検知し、
hb_reqをデアサートし、次のマスタにCPUバスを渡します。
8.4.5
割込み
システム・アービタは、ÉlanSC520 マイクロコントローラのPCIホスト・ブリッジに接続された割込み
を1つ持っています。この割込みソースは、
Host Bridge Master Interrupt Control (HBMSTIRQCTL)
レジスタ (MMCR offset 66h) と Host Bridge Target Interrupt Control (HBTGTIRQCTL) レジス
タ (MMCR offset 62h) によって有効にされたPCIホスト・ブリッジの全ての割込みに使用する割込
みコントローラの入力を共有します。
下記の状況によってシステム・アービタが割込みを発生するようにプログラムすることができます。
■ バス要求に対してPCIバス・アービタがGNTをアサートし(バスはパークされていない状態で)、
バスがアイドル状態になった後16クロック以内にPCI転送が開始されなかった場合。PCI Local
Bus Specification, Revision 2.2 に基づきます。
PCI バス・アービタがグラント・タイム・アウトを検出した時の割込みは、System Arbiter Control
(SYSARBCTL) レジスタ (MMCR offset 70h) のGNT_TO_INT_ENBビットで有効にすることがで
きます。GNT_TO_INT_ENBビットをセットする前に、PCI Host Bridge Interrupt Mapping
(PCIHOSTMAP) レジスタ (MMCR offset D14h) を設定し、割込みが適切なレベルとプライオリティ
に接続されるようにしておかなければなりません。
転送を開始しなかったPCIマスタのREQ/GNT番号は、PCI Bus Arbiter Status (PCIARBSTA) レジ
スタ (MMCR offset 71h) の GNT_TO_STAビットで知ることができます。GNT_TO_STAビットは、
GNT_TO_INT_ENBビットの値に関わらず、PCIバス・アービタがグラント・タイム・アウトを検出した
時にセットされます。
8.4.6
ソフトウエアの考察
システム・アービタは並列または非並列アービトレーション・モードで動作することができます(「8.4.1
動作モード」を参照)。非並列アービトレーション・モードでは、CPUからPCIバスへのライト・ポスティ
ングはディセーブルしておかなければなりません。並列/非並列アービトレーション・モードの変更を
行う際は、
以下のように全てのシステム・アービタのリクエストをディセーブルしなければなりません。
■ DMAコントローラがCPUバスを要求しないように、GP-DMAチャネルをディセーブル
■ 外部PCIバス・マスタのバス要求を禁止
■ Am5x86 CPUによるPCIバスへのアクセスを禁止
バスがアイドル状態になった後16クロック以内にPCI転送を開始しなかったPCIバス・マスタは、壊れ
ている( broken)と見なすことができます。PCIバス・アービタはこの状態をチェックし、その時にア
サートされていたGNTからPCIバス・マスタの番号を知らせます。ソフトウエアはこの番号を用いて、
System Arbiter Master Enable (SYSARBMENB) レジスタ (MMCR offset 72h) を設定し、壊れた
PCIマスタからのREQをディセーブルすることができます。これにより、壊れたPCIマスタによるPCI
バス帯域幅の無駄づかいを防ぐことができます。
PCIバス・アービタは、壊れたマスタのREQを自動的にはディセーブルしないので注意してください。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
8-19
システム・アービトレーション
8.4.7
遅延
PCIバスは多くのマスタによって共有しているので、各マスタは他のマスタによって遅延を強いられ
ます。この遅延は、各マスタおよびシステムのアービトレーション・アルゴリズムによって決まります。
各マスタが強いる遅延は、そのマスタの転送に許す時間を制限するマスタ・レイテンシ・タイマによっ
て制御されます。このタイマが時間切れになると、その時のマスタは転送を終了し他のマスタにバス
を明け渡さなければなりません。
ÉlanSC520 マイクロコントローラのPCIバス・アービタは2つの回転プライオリティ・キューと付随す
るAm5x86 CPUのプライオリティを持っています。Am5x86 CPUはPCIでバースト転送をしないの
で、マスタ・レイテンシ・タイマを持っていません。もっとも長いAm5x86 CPUの転送は16PCIクロッ
クです。
ÉlanSC520 マイクロコントローラのPCI バス・アービタが強いる遅延は、Arbiter Priority Control
(ARBPRICTL) レジスタ (MMCR offset 74h) で、高プライオリティ・キューと付随するAm5x86 CPU
のプライオリティを設定することにより制御することができます。
8.4.7.1
単純な回転プライオリティの遅延
1レベルの単純な回転プライオリティ・キューでは、各マスタの最大待ち時間は他のマスタのマスタ・
レイテンシ・タイマの合計になります。
Figure 8-12 では、M0の最大待ち時間はM1, M2, M3,....., Mn の最長の転送時間の合計です。各
マスタの最長転送時間は、それぞれのマスタ・レイテンシ・タイマで制限されていますので、M0の最
大待ち時間は:
M1のマスタ・レイテンシ・タイマ + M2 のマスタ・レイテンシ・タイマ + M3のマスタ・レイテンシ・タイマ +
... + Mnのマスタ・レイテンシ・タイマ
この遅延時間はM0が転送を終了した直後に、
他の全てのマスタがバスを要求しており、
かつ、それぞ
れ最長の転送時間を要する場合に見られます。
Figure 8-12
単純な回転プライオリティ・キュー
M0
M1
Mn
M2
M3
8-20
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
システム・アービトレーション
8.4.7.2
高プライオリティ・キューのマスタが被る遅延
高プライオリティ・キューのマスタが被る最大待ち時間は、以下の合計です。
■ 高プライオリティ・キューに設定された他のマスタのマスタ・レイテンシ・タイマ -- この時間は、
他
のマスタのマスタ・レイテンシ・タイマを短くすることによって減らすことができ、
さらに高プライ
オリティ・キューに1つのマスタだけを設定することによって無くすこともできます。
■ 低プライオリティ・キューに設定された全てのマスタのうち、最長のマスタ・レイテンシ・タイマの
値 -- この時間は、低プライオリティ・キューの全マスタのマスタ・レイテンシ・タイマを短くするこ
とによって減らすことができます。
■ 3 *(Am5x86 CPUの最大転送時間)
8.4.7.3
低プライオリティ・キューのマスタが被る遅延
低プライオリティ・キューのマスタが被る最大待ち時間(1つの低プライオリティ・キューのマスタが転
送を終了した後そのマスタが再びバス権を得る前に、
他の全てのPCIマスタがバス権を得ることがで
きます)は、以下の合計です。
■ 外部マスタの数 *( Am5x86 CPUの最大転送時間)-- Am5x86 CPUの最大転送時間を外部マ
スタの数倍します。これはAm5x86 CPUのリラティブ・プライオリティが、
1回のPCIマスタのバス
Am5x86 CPU
権獲得ごとにAm5x86 CPUバス権を得るように設定されている場合です。これは、
のリラティブ・プライオリティを減らすことによって少なくすることができます(リラティブ・プライ
オリティを、1回の Am5x86 CPU毎に複数の外部PCIサイクルが入るようにします)。
■ 低プライオリティ・キューに設定されたマスタの数 *(高プライオリティ・キューに設定されたマ
スタのマスタ・レイテンシ・タイマの合計)-- 高プライオリティ・キューに設定されたマスタのマス
タ・レイテンシ・タイマの合計に、低プライオリティ・キューに設定されたマスタの数を掛けます。
これは、
低プライオリティ・キューのマスタが1つバス権を得るたびに、高プライオリティ・キューの
全てのマスタが1回ずつバス権を得るためです。この時間は高プライオリティ・キューに設定され
たマスタの数を減らしたり、高プライオリティ・キューの各マスタのマスタ・レイテンシ・タイマの
値を減らすことによって短くできます。
■ 低プライオリティ・キューに設定されたマスタのマスタ・レイテンシ・タイマの合計 -- この時間は、
低プライオリティ・キューに設定されたマスタの、マスタ・レイテンシ・タイマの値を減らすことに
よって短くできます。
8.4.7.4
CPUが被る遅延
Am5x86 CPUが被る最大待ち時間は:
■ 3 *(全ての外部マスタの中の、最長のマスタ・レイテンシ・タイマの値)-- マスタ・レイテンシ・タ
イマの値を3倍します。これは、
Am5x86 CPUのリラティブ・プライオリティは、1回のAm5x86 CPU
によるPCIサイクルごとに、最大3つの外部PCIサイクルを許すことができるためです。この時間
は、各外部PCIマスタのマスタ・レイテンシ・タイマの値を減らすか、Am5x86 CPUのリラティブ・
プライオリティのレベルを高くすることによって短くできます。
8.4.7.5
非並列アービトレーション・モードによる遅延
非並列アービトレーション・モードでの動作中は、PCIバスに遅延が生じます。非並列アービトレーショ
ン・モードでは、
転送の際にPCIバスだけでなくCPUバスの所有権も獲得します。CPUバス権獲得の
ための時間が各PCIマスタの被る遅延に加わります。
最大待ち時間は:
(Am5x86 CPUの最大転送時間)+(最大GP-DMA転送時間)
Am5x86 CPUの転送で最大のものは1つのキャッシュ・ラインで、最大のGP-DMA転送はプログラム
可能です。この遅延時間が、
前節で計算した高/低プライオリティ・キューの各マスタが被る遅延時間
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
8-21
システム・アービトレーション
に加算されます。この遅延はÉlanSC520 マイクロコントローラがPCIターゲットであるときだけでな
く、全てのPCI転送に関わります。PCI転送のマスタとターゲットが両方とも外部PCIデバイスであっ
ても例外ではありませんので注意してください。
8.4.7.6
並列アービトレーション・モードによる遅延
並列アービトレーション・モードにおいても、CPUバスによる遅延がPCIバスの遅延に影響します。し
CPUバスがPCIバスに与える遅延は減らすことが
かしながらホスト・ブリッジのバッファ機能によって、
できます。ÉlanSC520 マイクロコントローラがターゲットでないPCI転送では、
CPUバスによる遅延
はありません。
ÉlanSC520 マイクロコントローラがターゲットの PCI書込みは、ホスト・ブリッジにポストされます。
データはすぐにはSDRAMに書込まれず、
CPUバスのアービトレーションのために遅延が入ります。し
かしながら外部PCIマスタの転送は終了し、外部PCIマスタは追加の遅延を被りません。
ÉlanSC520 マイクロコントローラがターゲットのPCI読出しは遅延されることがあります。この場合、
データを要求している外部PCIマスタは、CPUバスのアービトレーションによる遅延を受けます。
ホスト・ブリッジがCPU バスのアービトレーションを受けている間も、その他のPCI転送は行うことが
できます。そのため、
データを要求している外部PCIマスタだけがCPUバスのアービトレーションに
よる遅延を受け、P C I バス全体が遅延されるわけではありません。C P U バスによる遅延は、
ÉlanSC520 マイクロコントローラがターゲットのPCI読出しのときのみ影響することに注意してくだ
さい。
8.4.7.7
並列アービトレーション・モードのバス・パーキングによる遅延
バス・パーキングによる遅延が発生することがあります。バスがパークされたマスタはそのGNTがア
サートされているので、REQをアサートせずにすぐに転送を開始できます。他のマスタはREQをア
サートして、GNTが返ってくるまでアービトレーションを待たなければなりません。このアービトレー
ションには2クロックかかります(「8.4.4.5 PCI バス・アービトレーション・パーキング」を参照)。これ
は並列アービトレーション・モードでのみ関係します。
8.5
初期化
システム・アービタ・ロジックとその設定は、
システム・リセットを受けてリセットされます。
リセット後、
システム・アービタは非並列アービトレーション・モードで動作します。この時点で高プラ
イオリティ・キューにはまだ何も設定されていないので、
プライオリティ・キューはREQ0が最高、
REQ4
が最低のデフォルトに設定されます。全てのマスタはリセット後、
ディセーブルされ、
CPUがPCIとCPU
両バスのマスタになります。
リセット後、以下の初期化ステップが必要です。
1.
必要ならば、System Arbiter Control (SYSARBCTL) レジスタ (MMCR offset 70h) の
CNCR_MODE_ENBビットをセットし、並列アービトレーション・モードにする。リセット後、
システ
ム・アービトレーションはデフォルトで非 並列アービトレーション・モードでになります。
CNCR_MODE_ENBビットの変更は、全てのバス・マスタのバス要求をディセーブルしてから行
わなければならないので注意してください。
2.
System Arbiter Control (SYSARBCTL) レジスタのBUS_PARK_SELビットによってバス・パー
キングを設定します。BUS_PARK_SELビットは、PCIバスがCPUにパークされている時だけ変
更可能なので注意してください。PCIバス・アービタは、
デフォルトでAm5x86 CPUにバスをパー
クしますが、並列アービトレーション・モードでは最後にバス権を得たPCIマスタにパークさせる
ことができます。
8-22
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
システム・アービトレーション
3.
外部 PCI マスタを高プライオリティ・キューに設定したい場合、Arbiter Priority Control
(ARBPRICTL) レジスタ (MMCR offset 74h) でPCIバス・アービタ・プライオリティを設定しま
す。全ての外部PCIマスタは、
デフォルトで低プライオリティ・キューに設定されています。
4.
System Arbiter Master Enable (SYSARBMENB) レジスタ (MMCR offset 72h) によって、
PCIバス・アービタに対する外部PCIバス要求を有効にします。全ての外部PCIマスタのバス要
求はディセーブルされています。
5.
必要に応じて、System Arbiter Control (SYSARBCTL) レジスタのGNT_TO_INT_ENBビット
かつクリアしておきます。デフォルトで
により、PCIバスのGNTタイム・アウト割込みを有効にし、
この割込みソースはディセーブルされていますが、PCIバスのGNTタイム・アウトを検出すると、
PCI Bus Arbiter Status (PCIARBSTA) レジスタ (MMCR offset 71h) のGNT_TO_IDはセット
されます。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
8-23
システム・アービトレーション
8-24
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
第9章
PCI バス・ホスト・ブリッジ
9.1
概要
ÉlanSC520 マイクロコントローラは、PCI バス Revision 2.2に対応したマスタやスレーブ・デバイ
スとインタフェースすることができる、PCIホスト・ブリッジを内蔵しています。
PCIホスト・ブリッジは以下の特徴を持っています。
■ 33 MHz、32ビットPCIバスRevision 2.2に対応。
■ 最大転送レート132M バイト/秒
■ PCIバスの利用効率を高めるディレイド・トランザクションをサポート。
■ ÉlanSC520 マイクロコントローラがターゲットの場合、
ディスコネクトをせずにロング・バースト
をサポート(読出し/書込み共に64個のダブルワード)。
■ ターゲット時、0ウエイト・ステートの転送可能。
■ ターゲット時、高度なPCIバス・コマンドをサポート:memory-read-line, memory-read-multiple
■ 柔軟なPCIバス割込み回送ロジック。
■ PCIバス・ターゲット時、高速な連続転送をサポート。
PCI Local Bus Specification, Revision 2.2 では、
イニシエータまたはマスタとは、PCI転送を開始
するデバイスです。スレーブまたはターゲットとは、
データ転送の際にマスタから転送先として選ばれ
たデバイスです。
9.2
ブロック図
Figure 9-1 に、ÉlanSC520 マイクロコントローラのホスト・ブリッジ・インタフェースを図示します。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
9-1
PCI バス・ホスト ・ブリッジ
Figure 9-1
PCIインタフェースのブロック図
Élan™SC520 Microcontroller
SDRAM
Controller
CPU Bus
CPU
PCI Host Bridge Controller
Read
Write
FIFO
FIFO
Write
FIFO
PCI Master Controller
PCI Target Controller
INTA–INTD
SERR
PERR
DEVSEL
STOP
TRDY
CBE3–CBE0
AD31–AD0
PAR
FRAME
IRDY
RST
CLKPCIOUT
Interrupt
Steering
CLKPCIIN
GNT4–GNT0
REQ4–REQ0
PCI
Arbiter
PCI Bus
9.3
システム設計
Figure 9-2 は、ÉlanSC520 マイクロコントローラと外部PCIターゲット・デバイスとの接続図です。
Figure 9-3 は、ÉlanSC520 マイクロコントローラと外部PCIマスタ・デバイスとの接続図です。
いずれの設定においても、PCIバス・クロックはÉlanSC520 マイクロコントローラのCLKPCIOUTピ
ンからドライブされますが、
システムの負荷によっては外部バッファが必要です(PCI クロッキングを
参照してください)。PCIバスのリセット信号 RST は、ÉlanSC520 マイクロコントローラからドライ
ブされます。
オプションのPCIバス・ターゲット・デバイスからの割込みは、
ÉlanSC520 マイクロコントローラのPCI
バス割込みピン (INTA, INTB, INTC, INTD) または、GPバス上の GPIRQ10 - GPIRQ0 ピンのどれ
にでも接続することができます。ÉlanSC520 マイクロコントローラへの割込み要求の接続に関して
は、第15章「プログラマブル・インタラプト・コントローラ」で詳しく解説します。
9-2
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
PCI バス・ホスト・ブリッジ
Figure 9-4 は、PERR と SERR 信号の、ÉlanSC520 マイクロコントローラへの接続方法を示しま
す。PERR はデータを受け取っている(データ・フェーズでAD31-AD0バスをサンプリングしている)
PCIバス・デバイス(ホスト・ブリッジを含む)からドライブされます。SERR はシステム・エラーを検出
した外部PCIバス・デバイスからドライブされます。PERR とSERR には外部のプルアップが必要で
す。
ÉlanSC520 マイクロコントローラのPCI バス入出力ピンは、PCI バスの revision 2.2 に対応してい
ます。物理的な負荷や配線に関しては、PCI バスの仕様書を参照してください。FRAME , IRDY ,
TRDY, STOP, DEVSEL, PERR, およびSERRのPCI信号もプルアップが必要です。これらのプル
アップはÉlanSC520 マイクロコントローラの外部に設けなければなりません( ÉlanSC520 マイク
ロコントローラの PCIバス・ピンにはターミネーションは施されていません)。
システムPCIバス・リセット(RST)信号はÉlanSC520 マイクロコントローラがソースとなり、
PCIバス・
クロックとは非同期です。リセットに関する詳しい解説は、
「9.6 初期化」を参照してください。
Figure 9-2
ÉlanSC520 マイクロコントローラの外部PCIターゲット・デバイスへの接続
AD31–AD0
Élan™SC520 Microcontroller
CBE3–CBE0
PCI Bus Host Bridge
(PCI bus master)
PAR
AD31–AD0
CBE3–CBE0
PCI Target
Device
PAR
FRAME
FRAME
IRDY
IRDY
TRDY
TRDY
STOP
STOP
DEVSEL
DEVSEL
PERR
PERR
SERR
SERR
RST
RST
INT1
INTA–INTD
IDSEL
Clock Buffering
(optional)
CLKPCIOUT
CLK
CLKPCIIN
Notes:
1. INT implies any of the following pins: INTA–INTD or GPIRQ10–GPIRQ0
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
9-3
PCI バス・ホスト ・ブリッジ
Figure 9-3
ÉlanSC520 マイクロコントローラの外部PCIマスタ・デバイスへの接続
AD31–AD0
Élan™SC520 Microcontroller
CBE3–CBE0
PCI Bus Host Bridge
(PCI bus target)
PAR
AD31–AD0
CBE3–CBE0
PAR
FRAME
FRAME
IRDY
IRDY
TRDY
TRDY
STOP
STOP
DEVSEL
DEVSEL
PERR
PERR
SERR
SERR
RST
RST
INT1
INTA–INTD
REQx
REQ
GNTx
GNT
Clock Buffering
(optional)
CLKPCIOUT
CLK
CLKPCIIN
Notes:
1. INT implies any of the following pins: INTA–INTD or GPIRQ10–GPIRQ0
9-4
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
PCI Master
Device
PCI バス・ホスト・ブリッジ
Figure 9-4
ÉlanSC520 マイクロコントローラのPERR と SERR 信号への接続
PERR
PERR
SERR
SERR
Élan™SC520 Microcontroller
PERR
PCI Device 0
PCI Device 1
SERR
PERR
PCI Device 2
SERR
PERR
PCI Device 3
SERR
PERR
PCI Device 4
SERR
9.3.1
PCI クロッキング
システム PCI バス・クロック( CLK )はÉlan SC520 マイクロコントローラがソースとなります。
ÉlanSC520 マイクロコントローラには、CLKPCIIN と CLKPCIOUTという2つのPCIバス・クロック・
ピンがあります。CLKPCIOUT 出力ピンは、
システムPCIバス・クロックとして使用される33MHz の
クロックをドライブします。しかしながら、PCIホスト・ブリッジは CLKPCIIN 入力ピンからドライブさ
れます。2つのピンにより、
PCIホスト・ブリッジと外部PCIデバイスとのクロックのスキューを最小に抑
えます。
CLKPCIIN 入力ピンは、PCIホスト・ブリッジが外部PCIデバイスと同じクロックでドライブされること
を保証します。そうでなければ、CLKPCIOUT に施された外部バッファや負荷によってクロックは遅
延し、PCIホスト・ブリッジと外部PCIバス・デバイスとの間のスキューはPCIバスの仕様に合わなくな
ります。
CLKPCIOUT の外部バッファは、システムの負荷によって必要な場合とそうでない場合があります
( Figure 9-5 および Figure 9-6 を参照)。ÉlanSC520 マイクロコントローラは、CLKPCIOUT ク
ロック出力を動的に遅らせたり止めたりはしません。したがって、PCIバスの CLKRUN ピンはサポー
トしていません。
CLKPCIIN ピンは、
クロック・スキューの問題解決だけを意図して設けられています。PCIホスト・ブ
リッジを、
CLKPCIOUT からのクロックと非同期に動作させることを目的にしたものではありません。
CLKPCIIN ピンを違う周波数の外部ソースからドライブすることもできません。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
9-5
PCI バス・ホスト ・ブリッジ
Figure 9-5
PCIバス・クロッキングの例1:負荷の軽いシステム
Élan™SC520 Microcontroller
PCI Device 0
CLKPCIOUT
CLK
CLKPCIIN
Notes:
In this lightly loaded system, no clock buffering is required.
Figure 9-6
PCIバス・クロッキングの例2:負荷の重いシステム
Élan™SC520 Microcontroller
PCI Device 0
CLKPCIOUT
CLK
CLKPCIIN
PCI Device 1
CLK
PCI Device 2
CLK
PCI Device 3
CLK
PCI Device 4
CLK
Notes:
In this heavily loaded system, clock buffering is required.
9.3.1.1
ÉlanSC520 マイクロコントローラを33.333MHzで駆動する場合
PCIバスに供給されるクロック (CLKPCIOUT) は、水晶発振子の周波数と全く同じです。ÉlanSC520
マイクロコントローラは純粋に33MHz水晶発振子の入力を増幅して CLKPCIOUT ピンに出力しま
す。水晶発振子には誤差があるので、それにより CLKPCIOUT の周期が30nsを割ってしまうことが
あります。ÉlanSC520 マイクロコントローラに使用する水晶発振子の精度を決めるのはシステム設
計者です。33.000MHzの周波数を使用すると、33.333MHzよりもガード・バンドが良くなります。経
験的に、ほとんどのPCIデバイスはどちらの周波数でも動作しますが、水晶発振子の精度の決定に際
9-6
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
PCI バス・ホスト・ブリッジ
しては、
誤差によりPCIバスの仕様から外れる可能性があることを知っておくことが重要です。PCIバ
スの仕様では、
クロック周期は30nsと定められています。
9.4
レジスタ
ÉlanSC520 マイクロコントローラが持つPCIホスト・ブリッジのコンフィギュレーション・レジスタは、
ÉlanSC520 マイクロコントローラのコンフィギュレーション・スペースにメモリ・マップされています。
これらのレジスタを Table 9-1 に示します。Table 9-2 は PCIバス・ホスト・ブリッジを設定するため
に使用する、
ダイレクト・マップされたレジスタを示します。ÉlanSC520 マイクロコントローラがサ
ポートする標準的な PCI コンフィギュレーション・スペース・ヘッダ・レジスタは、PCIインデックスド・
レジスタとして Table 9-3 に示します。
Table 9-1
メモリ・マップされたバス・ホスト・ブリッジ・レジスタ
Register
Mnemonic
MMCR
Offset
Address
Host Bridge Control
HBCTL
60h
PCI reset, target FIFO purge enable, automatic
delayed transaction enable, and master write
posting enable
Host Bridge Target Interrupt
Control
HBTGTIRQCTL
62h
Target interrupt or NMI select and interrupt
enables: delayed transaction time-out, address
parity, and data parity
Host Bridge Target Interrupt
Status
HBTGTIRQSTA
64h
Target interrupt status: delayed transaction timeout, address parity, data parity; target interrupt
identification
Host Bridge Master Interrupt
Control
HBMSTIRQCTL
66h
Master interrupt or NMI select and interrupt
enables: retry time-out, target abort, master
abort, system error, received parity error,
detected parity error
Host Bridge Master Interrupt
Status
HBMSTIRQSTA
68h
Master interrupt status: retry time-out, target
abort, master abort, system error, received
parity error, detected parity error; master
command interrupt identification
Host Bridge Master Interrupt
Address
MSTINTADD
6Ch
Master address interrupt identification
Interrupt Pin Polarity
INTPINPOL
D10h
Polarity of external interrupt sources (INTA–
INTD and GPIRQ10–GPIRQ0)
PCI Host Bridge Interrupt
Mapping
PCIHOSTMAP
D14h
System arbiter and PCI Host Bridge interrupt
mapping to any of 22 available interrupt
channels or NMI, PCI NMI enable control
PCI Interrupt A Mapping
PCIINTAMAP
D30h
PCI INTA mapping
PCI Interrupt B Mapping
PCIINTBMAP
D31h
PCI INTB mapping
PCI Interrupt C Mapping
PCIINTCMAP
D32h
PCI INTC mapping
PCI Interrupt D Mapping
PCIINTDMAP
D33h
PCI INTD mapping
Function
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
9-7
PCI バス・ホスト ・ブリッジ
Table 9-2
ダイレクト・マップされたバス・ホスト・ブリッジ・レジスタ
Register
Mnemonic
I/O Address Function
PCI Configuration Address
PCICFGADR
0CF8h
PCI configuration space enable, bus number,
device number, function number, register
number
PCI Configuration Data
PCICFGDATA
0CFCh
PCI configuration data
Table 9-3
PCIインデックス・バス・ホスト・ブリッジ・レジスタ
Register
Mnemonic
I/O Address Function
Device/Vendor ID
PCIDEVID
CF8h/CFCh
Index 00h
Device identification, vendor identification
Status/Command
PCISTACMD
CF8h/CFCh
Index 04h
Parity error detected, signalled system error,
received master abort, received target abort,
signalled target abort, DEVSEL timing, data
parity reported, fast back-to-back capable,
SERR enable, parity error response, master
enable, memory access enable, I/O space
enable
Class Code/Revision ID
PCICCREVID
CF8h/CFCh
Index 08h
Base class code, sub-class code, program
interface type, revision identification
Header Type
PCIHEADTYPE
CF8h/CFCh
Index 0Eh
PCI configuration space header format
Master Retry Time-Out
PCIMRETRYTO
CF8h/CFCh
Index 41h
PCI master retry time-out value
9.5
動作
ÉlanSC520 マイクロコントローラのPCIホスト・ブリッジは、次の機能を持っています。
■ マスタ・コントローラ −− Am5x86 CPUをPCI バスのマスタにします。Am5x86 CPUはPCIホ
スト・ブリッジや全ての外部 PCIデバイスを設定するための、
コンフィギュレーション・トランザク
ションを行うことができます。Am5x86 CPUはまた、PCIバス上のメモリやI/Oの読み書きを行う
こともできます。
■ ターゲット・コントローラ −− 外部PCI バス・マスタに、Élan SC520 マイクロコントローラの
SDRAMをアクセスすることを許します。
9.5.1
サポートしていないPCIバスの機能
下記のリストは、ÉlanSC520 マイクロコントローラのPCIホスト・ブリッジがサポートしていない機能
をまとめています。これらの機能は、PCIバスの仕様においてはオプションと記述されています。
■ 66MHzはサポートしていません。
■ 64ビットのデータはサポートしていません。
■ Am5x86 CPUのアドレス空間の上限は32ビットなので、64ビットのアドレッシング(デュアル・ア
ドレス・サイクル)はサポートしていません。
■ キャッシュ可能なPCIバス・メモリ
(SBDONE, SBO)はサポートしていません。
■ オプションの CLKRUN ピンはサポートしていません。
9-8
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
PCI バス・ホスト・ブリッジ
■ LOCK ピンは、通常他のメカニズムをコヒーレンシのために使用するので、ほとんどのシステム
で必要の無いオプションのピンです。
■ 性能が犠牲になるので、マスタでのアドレス/データ・ステッピングはサポートしていません。
■ ÉlanSC520 マイクロコントローラはほとんどのペリフェラルを内蔵しているので、
「サウス・ブリッ
ジ」デバイスをサポートしていません。
オプションの message-sig■ PCI Local Bus Specification, Revision 2.2 に記載されている、
nalled 割込み機能は、ÉlanSC520 マイクロコントローラではサポートしていません。
9.5.1.1
サポートしていないPCIバス・コンフィギュレーション・レジスタ
ÉlanSC520 マイクロコントローラはhost-to-PCIブリッジであり、またサポートしていないオプション
のPCI機能があるので、
いくつかの標準的なPCIバス・コンフィギュレーション・レジスタは搭載してい
ません。
■ ÉlanSC520 マイクロコントローラはホストPCIデバイスなので、Base Addressレジスタを持っ
ていません。ターゲット・アドレス・スペースの設定は、ÉlanSC520 マイクロコントローラ特有の
設定によって行います(「 PCIホスト・ブリッジ・ターゲット・アドレス・スペース」を参照してくださ
い)。
■ ÉlanSC520 マイクロコントローラのPCIホスト・ブリッジはマスタ時のマルチプル・データ・フェー
ズをサポートしていないので、
レイテンシ・タイマと MAX_LAT, MIN_GNT は搭載していません。
■ ÉlanSC520 マイクロコントローラのPCIホスト・ブリッジはキャッシュ可能なPCIメモリをサポー
トしていないので、キャッシュ・ライン・サイズを持っていません。
9.5.2
設定情報
PCIホスト・ブリッジはPCIバス上にコンフィギュレーション・サイクルを発生することができます。
PCI Local Bus Specification, Revision 2.1 に定義されている、コンフィギュレーション・メカニズ
ム#1を使用します。PCI Configuration Address (PCICFGADR) レジスタは I/O アドレス 0CF8h
に、PCI Configuration Data (PCICFGDATA) レジスタは I/O アドレス 0CFCh に配置されていま
す。Am5x86 CPU はこれらの2つのI/Oポートをアクセスし、PCIコンフィギュレーション・サイクルを
発生します。
PCIホスト・ブリッジはコンフィギュレーション・サイクル時、FRAMEをアサートする前にAD31-AD0を
5クロック間ドライブします。これにより転送が始る前にIDSELを安定させることができます( IDSEL
の立ち上がり時間は遅い場合がある)。
外部PCI バス・デバイスは、ÉlanSC520 マイクロコントローラのPCIホスト・ブリッジからのコンフィ
ギュレーションを可能にするために、IDSELピンが必要です。IDSELの生成方法はシステムに帰属し
ますが、ÉlanSC520 マイクロコントローラでは一般的に行われている、
コンフィギュレーション・サイ
クル中IDSELのためにAD31-AD11をアサートする方法を用いています(ホスト・ブリッジはAD11を
アサートする)。この方法では、AD12がデバイス番号1のIDSEL、AD13がデバイス番号2のIDSEL...
となります。PCIバス・デバイスの設定にしたがって、ADピンがコンフィギュレーション・サイクル中に
アサートされます。この方法では、最大20のデバイスをPCIバスに接続できます。
ÉlanSC520 マイクロコントローラのPCIバス・ホスト・ブリッジは、デバイス番号0(AD11)にハード的
に固定されており、
ホスト・ブリッジのPCIバス・コンフィギュレーション・レジスタは、外部PCIデバイス
同様 PCI Configuration Address (PCICFGADR) レジスタ (Port 0CF8h) 、
および PCI Configuration Data (PCICFGDATA) レジスタ (Port 0CFCh) を通してアクセスします。Am5x86 CPUが内
部PCIホスト・ブリッジ・レジスタを設定している場合は、
外部PCIバス・コンフィギュレーション・サイク
ルは発生しません。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
9-9
PCI バス・ホスト ・ブリッジ
ホスト・ブリッジのPCIバス・コンフィギュレーション・スペースは、PCIバスの仕様に定められていると
おり、
PCIバス・デバイス・コンフィギュレーション・ヘッダ・レジスタしか含んでいません。ÉlanSC520
マイクロコントローラが持つホスト・ブリッジ・コンフィギュレーション・レジスタは、ÉlanSC520 マイ
クロコントローラ・コンフィギュレーション・スペースにメモリ・マップされています。メモリ・マップさ
れたコンフィギュレーション・スペースに関する詳しい情報は、第4章「システム・アドレス・マッピング」
を参照してください。
9.5.2.1
PCIバス・コンフィギュレーション・サイクルの生成
PCI バス・コンフィギュレーション・サイクルを生成するためには、2つのステップの処理が必要です。
1.
最初に、
Am5x86 CPUは PCI Configuration Address (PCICFGADR) レジスタ (Port 0CF8h)
に対し、バス番号、
デバイス番号、
機能、
アクセスされるレジスタ番号(ダブル・ワード)
(Figure 9-
7 参照)のデータにつき、32ビットI/O書込みを行わなければなりません。
2.
次に、Am5x86 CPUは希望するコンフィギュレーション・レジスタへのアクセスをおこなうため
に、PCI Configuration Data (PCICFGDATA) レジスタ (Port 0CFCh) に対してI/Oサイクル
(読出しまたは書込み)を行うことができます。
Figure 9-7
PCI Configuration Address(PCICFGADR)レジスタ
0CFAh
0CFBh
31
16 15
24 23
30
ENReserved
ABLE
0CF8h
0CF9h
BUS_NUM[7–0]
11 10
DEVICE_
NUM[4–0]
21 0
8 7
FUNCTION_
NUM[2–0]
REGISTER_ 0 0
NUM[4–0]
Bit
Name
Function
31
ENABLE
This bit must be set to 1 to enable configuration
space mapping.
30–24
Reserved
23–16
BUS_NUM[7–0]
Bus number
15–11
DEVICE_NUM[4–0]
Device number
10–8
FUNCTION_NUM[2–0]
Function number
7–2
REGISTER_NUM[4–0]
Register number
1–0
Reserved
These bits must always be written to 00.
例えば、PCIホスト・ブリッジの Status/Command (PCISTACMD) レジスタ (PCI index 04h)(ダブ
ル・ワード 1) にアクセスする場合、Am5x86 CPUから次のサイクルを発生します。
1.
Port 0CF8h: 80000004h へ 32ビットI/O書込みを行う。
–
–
–
–
–
–
2.
ENABLE = 1 コンフィギュレーション・スペース・マッピングを有効にする。
BUS_NUM = 0 (PCI ホスト・ブリッジはバス番号0)
DEVICE_NUM = 0 (PCI ホスト・ブリッジはハード的にデバイス番号0に固定されている)
FUNCTION_NUM = 0 (PCI ホスト・ブリッジは1つしか機能を持っていない)
REGISTER_NUM = 1
Bits 1-0 には00 を書込まなければならない。
コンフィギュレーション・レジスタ・バイトをアクセスするために、Port 0CFCh に対して8/16/24/
32 ビットのI/O書込み/読出しをおこなう。
9-10
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
PCI バス・ホスト・ブリッジ
Status/Command (PCISTACMD) レジスタ (PCI index 04h) の Master Enable (BUS_MAS) ビッ
トは常に強制的に有効になります。そのため、PCIホスト・ブリッジは外部PCIデバイスを設定するため
に、常にメモリ、I/O、
およびコンフィギュレーション・トランザクションを行うことができます。
ホスト・ブリッジをPCIターゲット・デバイスにする場合、Status/Command (PCISTACMD) レジスタ
のMemory Access Enable (MEM_ENB) ビットをセットしなければなりません。このビットがセット
されると、
外部PCIマスタがÉlanSC520 マイクロコントローラのSDRAMにアクセスするサイクルに
対して、
ホスト・ブリッジが応答します。
Am5x86 CPUからPCIホスト・ブリッジのコンフィギュレーション・レジスタにアクセスする場合、
コン
フィギュレーション・ビットをセットする必要はありません。
PCI Configuration Address (PCICFGADR) レジスタ (Port 0CF8h) の ENABLEビットがセットさ
れていない場合、PCI Configuration Data (PCICFGDATA) レジスタ (Port 0CFCh) に対する書込
みは全て、PCIバスに対してI/O転送として回送されるので注意してください。
Port 0CF8h に対するダブル・ワードでないアクセスも、全てPCIバスに対してI/O転送として回送さ
れます。
9.5.3
PCIバス・マスタとしてのÉlanSC520 マイクロコントローラのホスト・ブリッジ
PCIホスト・ブリッジは、Am5x86 CPUがPCIバスのマスタになる事を許可します。Am5x86 CPUはPCI
バス上の外部デバイス同様ホスト・ブリッジを設定するために、
コンフィギュレーション・トランザクショ
ンを生成することができます(内部ホスト・ブリッジのコンフィギュレーション・サイクルは、外部PCI・
バス上には現れません)。Am5x86 CPUはまた、PCIバス上でメモリやI/Oに対する読み書き転送を
行うこともできます。
PCIバス・マスタとしては、ÉlanSC520 マイクロコントローラは次のサイクルは生成しません。
■ 64ビット・アドレッシングのためのデュアル・アドレス・サイクル
■ Memory-write-and-invalidate サイクル(PCIバス上でのキャッシュ可能メモリはサポートしてい
ません。)
■ Memory-read-multiple または memory-read-line サイクル(このコマンドが有効であるロン
グ・リード・バースト転送を、Am5x86 CPUは行いません。)
■ 高速連続( back-to-back)サイクル
■ Lock サイクル(LOCKピンはサポートしていません。)
■ マルチプル・データ・フェーズ・サイクル
■ 特殊サイクルおよび割込み応答サイクル(これらのAm5x86 CPUのサイクルは、PCIバスには出
力されません。)
9.5.3.1
ライト・ポスティング
Am5x86 CPU の帯域幅を効率良くするために、Host Bridge Control (HBCTL) レジスタ (MMCR
offset 60h) のM_WPOST_ENBビットをセットすることにより、PCIバスに対するメモリ書込みをポス
とすることができます。これによりAm5x86 CPUのサイクルは、PCI バス・トランザクション・レイテン
シの影響を受けずに終了することができます。rdy信号が即座にAm5x86 CPUに返され、PCIバス上
での実際の書込みは後ほど終了します。PCIホスト・ブリッジはAm5x86 CPUの書込みサイクルを1つ
だけポストします。Am5 x 86 CPU からPCI バスへのサイクルの順序は保たれますので、後続の
Am5x86 CPUサイクル(読出し、書込みともに)は、ポストされた書込みサイクルがPCIバス上で終了
するまで待たされます。
I/Oおよびコンフィギュレーション書込みサイクルはポストされません。しかしながら、メモリ・マップさ
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
9-11
PCI バス・ホスト ・ブリッジ
れたI/O領域に対する書込みサイクルをホスト・ブリッジは判断できませんので、
メモリ・マップされた
I/Oへの書込みをポストするのを防ぐためには、
ライト・ポスティングはディセーブルしなければなりま
せん。ライト・ポスティングをディセーブルした場合、PCIホスト・ブリッジはAm5x86 CPUにレディを返
す前にPCIバス上で書込みが終了するのを待ちます。
ライト・ポスティングは、
非並列アービトレーション・モードでの動作中はイネーブルしてはいけません。
詳しくは第8章「システム・アービトレーション」を参照してください。
9.5.3.2
読出しサイクル
PCIホスト・ブリッジは、Am5x86 CPU読出しサイクルのためにPCI バス・メモリをリード・アヘッドす
ることはありません。個々のAm5x86 CPU読出しサイクルは、PCI バス上で単一のデータ・フェーズ
になり、Am5x86 CPUが要求したデータだけが読出されます。PCIホスト・ブリッジはAm5x86 CPU
からPCI バスへの読出しサイクルをバースト転送しません。なぜならば、Am5x86 CPUがバースト・
リードするのは通常キャッシュ・ライン・フィルの時であり、PCIバス・メモリはキャッシュ不可だからで
す。Am5x86 CPUはまれに2つのダブル・ワードをバーストすることがあります(ミスアライン転送)。
この場合、PCIホスト・ブリッジは、転送を単一のサイクルに分解して行います。
9.5.3.3
遅延転送のサポート
PCIマスタとしてのホスト・ブリッジは、遅延転送をサポートしています。リタイアした転送は、完了す
るまで繰返されます。PCIホスト・ブリッジはリタイアした転送と、
ディスコネクトした転送とを区別しま
せん。どちらのタイプの転送も、PCIバス上で終了するまで繰返されます。
プログラム可能なリトライ・タイム・アウト・カウンタにより、
壊れたターゲットによるデッドロック状態を
回避することができます。Master Retry Time-Out (PCIMRETRYTO) レジスタ (PCI index 41h)
のMaster Retry Time-Out (M_RETRY_TO) フィールドによって制御します。タイム・アウト・カウン
タが切れると(サイクルがPCIバス上でn回不成功に終わった)、そのサイクルは破棄され割込みを発
生することができます。読出しサイクルの場合、返されるデータは全てのビットが1です。Host Bridge
Master Interrupt Address (MSTINTADD) レジスタ (MMCR offset 6Ch) に、不成功に終わった転
送のアドレスが保持されます。マスタ・リトライ・カウントの設定は、
システムまたはプログラマブル・リ
セット後の、PCIバスの初期化の時以外では変更してはならないので注意してください。
Am5x86 CPU
遅延転送の間も、
転送の順序は保たれます。外部PCIバス・ターゲットからのリトライは、
からPCIバスへの転送を始める前に終了しなければなりません。
9.5.3.4
ホスト・ブリッジ・マスタ・バス・サイクル
この節では、ÉlanSC520 マイクロコントローラがPCIホスト・ブリッジ・マスタとして発生したサイク
ルの詳細を解説します。また、PCIバス、Am5x86 CPUバスの両方を含みます。ここでの記述は例で
あり、全てのケースが記載されているわけではありませんのでご了承ください。タイミング図は、
機能
を図示したものであり、詳細なタイミングを示してはいません。また、CPUとPCIクロックの同期に関
しては全く考慮していませんのでご注意ください。
9.5.3.4.1
9-12
PCIバスへのCPU読出しサイクル
Figure 9-8 は、PCIバスに対するAm5x86 CPUの読出しサイクルです。Figure 9-8 はまた、メモリ、
I/Oまたは外部PCIデバイス・コンフィギュレーション・サイクルも表しています。最初のグループの信
号は内部のAm5x86 CPUの信号、2番目のグループはÉlanSC520 マイクロコントローラが追加する
信号、そして3番目のグループはPCIバスの信号です。PCI バス・リクエストとグラント信号は便宜的に
示されていますが、Am5x86 CPUがPCIバス転送のイニシエータの場合これらの信号は外部には現
れません。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
PCI バス・ホスト・ブリッジ
Figure 9-8
PCIバスに対するCPUの読出しサイクル
1
2
3
4
5
6
7
8
9
10
11
12
13
14
clk
ads
cycle_info
rdy
blast
CPU Data
data in
pcihit
ADx
address
CBEx
read cmd
data in
byte enables
FRAME
IRDY
TRDY
DEVSEL
req
gnt
Notes:
The diagram includes the following internal signals:
pcihit: Address decode signal that the current Am5x86 CPU cycle is a PCI cycle.
The clk signal denotes the 33-MHz clock source and represents both the CPU clock and the PCI clock. This diagram
does not represent the full synchronization of signals between these clock domains.
次の手順は Figure 9-8 に示すPCIバスへのAm5x86 CPU読出しサイクルの注釈です。
■ Clock#1: Am5x86 CPUがPCIバスへの読出しサイクルを開始します。
■ Clock#2: blast 信号がAm5x86 CPUからアサートされ、バースト転送でないことを示します。
もしこれがバースト・リード・サイクルであったならばAm5x86 CPUは blast をデアサートします
が、PCIホスト・ブリッジは brdy の代わりに rdy をAm5x86 CPUに返すので、Am5x86 CPUは
バーストをせずに単一のサイクルに分割します。マスタのライト・バッファにポストされたデータ
が残っている場合、Am5x86 CPUの読出しサイクルは遅延されます。
■ Clock#6: PCIホスト・ブリッジ・マスタ・コントローラはAm5x86 CPU バス要求と同期して、PCI
バスを確保するために req をアサートします。Am5x86 CPUがこのサイクルのイニシエータな
ので、バス要求信号は外部には出力されません。
■ Clock#7: PCIホスト・ブリッジはPCIバスがアイドル状態で gnt 信号がアサートされたことを検
出し、FRAME信号をアサートしてPCI転送を開始します。この例では、
アービトレーションによる
遅延は含まれていません(バスはホスト・ブリッジにパークされていた状態)。他のPCIバス・マス
タがバス権を得た場合、
またはバスがアイドル状態でなかった場合、
ホスト・ブリッジの gnt がア
サートされ、バスがアイドル状態になるまでFRAMEのアサートは待たされます。
■ Clock#9: 外部PCIバス・ターゲットはTRDYをアサートし、要求されたデータが準備できたこと
PCIバス・ターゲットは全くウエイト・ステートを入れていません。PCI バ
を示します。この例では、
ス Revision 2.2 仕様では、
ターゲットは最大16のウエイトを挿入することができ、
これによりPCI
転送ならびに後続のAm5x86 CPUサイクルの終了が遅れることがあります。外部PCIバス・ター
ゲットはリトライを発行することもでき、
これによってもPCI転送ならびに後続のAm5x86 CPUサ
イクルの終了が遅れることがあります(9.5.3.4.2 節を参照)。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
9-13
PCI バス・ホスト ・ブリッジ
■ Clock#10: PCIホスト・ブリッジはTRDYのアサートを検出し、
PCIバスからデータを取込みます。
■ Clock#13: Am5x86 CPU バスはPCIバス・サイクルの終了に同期し、Am5x86 CPUに対して要
求されたデータと共に rdy がアサートされます。
9.5.3.4.2
外部ターゲットのリトライを伴うPCIバスへのCPU読出しサイクル
Figure 9-9 は、外部ターゲットからリトライされたPCIバスへの Am5x86 CPU読出しサイクルを示し
ます。外部PCIバス・ターゲットはビジー状態であったり、転送がディレイド・トランザクションであった
りした場合、
リトライを発行することができます。
Figure 9-9
clk
外部ターゲットのリトライを伴うPCIバスへのCPU読出しサイクル
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
ads
cycle_info
rdy
blast
CPU Data
data in
pcihit
ADx
address
CBEx
FRAME
read cmd
byte enables
address
data in
read cmd
byte enables
IRDY
TRDY
DEVSEL
STOP
req
gnt
Notes:
The clk signal denotes the 33-MHz clock source and represents both the CPU clock and the PCI clock. This diagram
does not represent the full synchronization of signals between these clock domains.
次の手順は、Figure 9-9 に示す外部ターゲットのリトライを伴うPCI バスへのAm5x86 CPU読出し
サイクルの注釈です。この例は、Clock#9 までは通常の読出しサイクル(9.5.3.4.1 節を参照)と同
じです。
■ Clock#9: ターゲットはSTOPをアサート、TRDYをデアサートし、
リトライを促します。ターゲット
はSTOPをアサートする前に、
最大16のウエイト・ステートを挿入することがあります。これにより
PCI転送ならびに後続の Am5x86 CPUサイクルの終了が遅れることがあります。
■ Clock#10: PCIホスト・ブリッジ・マスタ・コントローラはIRDYをデアサートし、
現在の転送を終了
します。ディレイド・トランザクションのため、Am5x86 CPUが要求したデータは読込まれないの
で、Am5x86 CPUへの rdy は返されません。ホスト・ブリッジはターゲットからデータを読込むま
で現在の転送をリトライします。
■ Clock#11: PCIホスト・ブリッジはPCIバスを再び確保するために req をアサートします。Am5x86
CPUがこのサイクルのイニシエータなので、バス要求信号は外部には出力されません。
■ Clock#12: PCIホスト・ブリッジはPCI バスがアイドル状態で gnt 信号がアサートされたことを
検出し、
FRAME信号をアサートしてPCI転送をリトライします。この例では、
アービトレーションに
9-14
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
PCI バス・ホスト・ブリッジ
よる待ち時間は含まれていません(バスはホスト・ブリッジにパークされていた状態)。他のPCI
バス・マスタがバス権を得た場合、
またはバスがアイドル状態でなかった場合、
ホスト・ブリッジの
gnt がアサートされ、バスがアイドル状態になるまでFRAMEのアサートは待たされます。
■ Clock#14: 外部PCIバス・ターゲットはTRDYをアサートし、
要求されたデータが準備できたこと
を示します。
■ Clock#15: PCIホスト・ブリッジはTRDYのアサートを検出し、
PCIバスからデータを取込みます。
■ Clock#18: Am5x86 CPU バスはPCIバス・サイクルの終了に同期し、Am5x86 CPUに対して要
求されたデータと共に rdy がアサートされます。
9.5.3.4.3
ポストされたPCIバスに対するCPUの書込み
Figure 9-10 は、PCIホスト・ブリッジによってポストされた、Am5x86 CPUの PCIバスに対する書込
みサイクルです。これはPCIバスに対するメモリ書込みのみを表し、I/Oおよびコンフィギュレーション
書込みサイクルはポストされません。
Figure 9-10
ポストされたPCIバスに対するCPUの書込み
1
2
3
4
5
6
7
8
9
10
clk
ads
cycle_info
rdy
blast
CPU Data
data out
pcihit
ADx
CBEx
address
data out
write cmd
byte enables
FRAME
IRDY
TRDY
DEVSEL
req
gnt
Notes:
The clk signal denotes the 33-MHz clock source and represents both the CPU clock and the PCI clock. This diagram
does not represent the full synchronization of signals between these clock domains.
次の手順は、Figure 9-10 に示すPCIホスト・ブリッジによってポストされた、Am5x86 CPUのPCIバ
スに対する書込みサイクルの注釈です。
■ Clock#1: Am5x86 CPUがPCIバスへの書込みサイクルを開始します。
■ Clock#2: PCIホスト・ブリッジもまた Am5x86 CPUに対し rdy をアサートし、Am5x86 CPU の
書込みサイクルを終了します。PCIバス転送はホスト・ブリッジにポストされ、
しばらくの後に終了
します。ホスト・ブリッジのライト・バッファに他の書込みサイクルが既にポストされていた場合、そ
の書込みが終了するまで rdy 信号のアサートは待たされます。
■ Clock#6: PCIホスト・ブリッジ・マスタ・コントローラはAm5x86 CPU バス要求と同期して、PCI
バスを確保するために req をアサートします。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
9-15
PCI バス・ホスト ・ブリッジ
■ Clock#7: PCIホスト・ブリッジはPCIバスがアイドル状態で gnt 信号がアサートされたことを検
出し、FRAME信号をアサートしてPCI転送を開始します。この例では、
アービトレーションによる
待ち時間は含まれていません(バスはホスト・ブリッジにパークされていた状態)。他のPCIバス・
マスタがバス権を得た場合、
またはバスがアイドル状態でなかった場合、
ホスト・ブリッジの gnt が
アサートされ、バスがアイドル状態になるまでFRAMEのアサートは待たされます。Am5x86 CPU
がこのサイクルのイニシエータなので、バス要求信号は外部には出力されません。
■ Clock#9: 外部PCI バス・ターゲットはTRDYをアサートし、データの書込みが終了したことを示
します。この例では、PCI バス・ターゲットは全くウエイト・ステートを入れていません。PCI バス
Revision 2.2 仕様では、ターゲットは最大16のウエイトを挿入することができ、
これにより転送
が遅れることがあります。PCIバス・ターゲットはリトライを発行することもできます。この場合ホ
スト・ブリッジは、
ターゲットがTRDYで転送を終了するまで同じ転送を繰返します。転送のリトラ
イに関しては 9.5.3.4.2 節を参照して下さい。
■ Clock#10: PCIホスト・ブリッジはTRDYのアサートを検出し、PCI転送を終了します。
9.5.3.4.4
ポストされない PCIバスに対するCPUの書込み
Figure 9-11は、PCIホスト・ブリッジのライト・ポスト機能がディセーブルされた、Am5x86 CPUのPCI
バスに対する書込みサイクルです。Figure 9-11は、I/Oおよびコンフィギュレーション書込みサイクル
も表します。
Figure 9-11
ポストされないPCIバスに対するAm5x86
1
2
3
4
5
6
CPUの書込み
7
8
9
10
11
12
13
clk
ads
cycle_info
rdy
blast
CPU Data
data out
pcihit
ADx
CBEx
address
write cmd
data out
byte enables
FRAME
IRDY
TRDY
DEVSEL
req
gnt
Notes:
The clk signal denotes the 33-MHz clock source and represents both the CPU clock and the PCI clock. This diagram
does not represent the full synchronization of signals between these clock domains.
9-16
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
PCI バス・ホスト・ブリッジ
次の手順は、Figure 9-11 に示すPCIホスト・ブリッジのライト・ポスト機能がディセーブルされた、
Am5x86 CPUのPCIバスに対する書込みサイクルの注釈です。
■ Clock#1: Am5x86 CPUがPCIバスへの書込みサイクルを開始します。
■ Clock#6: PCIホスト・ブリッジ・マスタ・コントローラはAm5x86 CPU バス要求と同期して、PCI
バスを確保するために req をアサートします。Am5x86 CPUがこのサイクルのイニシエータな
ので、バス要求信号は外部には出力されません。
■ Clock#7: PCIホスト・ブリッジはPCIバスがアイドル状態で gnt 信号がアサートされたことを検
アービトレーションによる
出し、FRAME信号をアサートしてPCI転送を開始します。この例では、
待ち時間は含まれていません(バスはホスト・ブリッジにパークされていた状態)。他のPCIバス・
マスタがバス権を得た場合、
またはバスがアイドル状態でなかった場合、
ホスト・ブリッジの gnt が
アサートされ、バスがアイドル状態になるまでFRAMEのアサートは待たされます。Am5x86 CPU
がこのサイクルのイニシエータなので、バス要求信号は外部には出力されません。
■ Clock#9: 外部PCIバス・ターゲットはTRDYをアサートし、
データの書込みが終了したことを示し
ます。この例では、PCI バス・ターゲットは全くウエイト・ステートを入れていません。PCI Local
Bus Specifi–Cations Revision 2.2は、ターゲットは最大16のウエイトを挿入することができ、
これにより転送が遅れることがあります。PCIバス・ターゲットはリトライを発行することもできま
す。この場合ホスト・ブリッジは、
ターゲットがTRDYで転送を終了するまで同じ転送を繰返します。
PCI転送が終了するまで、Am5x86 CPUに対する rdy 信号は返されません。転送のリトライに関
しては 9.5.3.4.2 節を参照して下さい。
■ Clock#10: PCIホスト・ブリッジはTRDYのアサートを検出し、PCI転送を終了します。
■ Clock#12: Am5x86 CPU バスはPCIバス・サイクルの終了に同期し、Am5x86 CPUに対して要
求されたデータと共に rdy がアサートされます。
9.5.3.4.5
PCIバス・コンフィギュレーション読出し/書込み
内蔵PCIホスト・ブリッジ設定の為の、PCI Configuration Address (PCICFGADR) レジスタ (Port
0CF8h) や、PCI Configuration Data (PCICFGDATA) レジスタ (Port 0CFCh) に対するAm5x86
CPUの書込みサイクルは、
ウエイト・ステート無しで終了します(Figure 9-12 参照)。
Figure 9-12
内蔵PCIバス・コンフィギュレーション・レジスタに対するCPUの書込みサイクル
1
2
3
4
clk_cpu
ads
cycle_info
rdy
Data
cfg write data
内蔵PCIホスト・ブリッジ設定を読むための、PCI Configuration Address (PCICFGADR) レジスタ
や、PCI Configuration Data (PCICFGDATA) レジスタに対するAm5x86 CPUの読出しサイクルも
また、
ウエイト・ステート無しで終了します(Figure 9-13 参照)。外部PCIバス・デバイスのコンフィギュ
レーション・レジスタをアクセスするための A m 5 x 8 6 C P U の P C I C o n f i g u r a t i o n D a t a
(PCICFGDATA) レジスタに対する読出し/書込みサイクルに関しては、Figure 9-8 から Figure 911 のタイミング図をご参照ください。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
9-17
PCI バス・ホスト ・ブリッジ
Figure 9-13
内臓PCIバス・コンフィギュレーション・レジスタ(PCICFGDATA)レジスタからのCPUの読出しサイ
クル
1
2
3
4
clk_cpu
ads
cycle_info
rdy
read data
Data
9.5.4
PCIバス・ターゲットとしてのÉlanSC520 マイクロコントローラのホスト・ブリッジ
PCIホスト・ブリッジはターゲットとしては、外部PCIバス・マスタがÉlanSC520 マイクロコントローラ
のSDRAMにアクセスする為のメモリ・サイクルのみ受付けます。
ホスト・ブリッジをPCIバス・ターゲットとして動作させる為にはStatus/Command (PCISTACMD) レ
ジスタの Memory Access Enable (MEM_ENB) ビットをセットしなければなりません。このビット
がセットされると、PCIホスト・ブリッジは全てのPCI バス上のI/Oおよびコンフィギュレーション・サイク
ルを無視し、9.5.4.1 節に解説するアドレス空間内のメモリ・サイクルに応答します。
9.5.4.1
PCI ホスト・ブリッジ・ターゲット・アドレス空間
ÉlanSC520 マイクロコントローラのPCIホスト・ブリッジは通常、PCIバス・マスタのメモリ・サイクル
を全てのSDRAMアドレス空間に対して応答します。つまり外部PCI バス・マスタは、全てのSDRAM
空 間にアクセスできます。この 空 間はリニア・リージョンと定義されており、最 下 位アドレス
( 00000000h )から実装されているSDRAM の最高アドレス(最大256M バイト)までになります。
SDRAMコントローラのコンフィギュレーション・レジスタは、初期化手順の中でSDRAMの量がプロ
グラムされます。
システムによっては、通常SDRAM領域として定義されている特定のCPUアドレス空間をPCIバスに
転送したい場合があります。例えば、PC/AT 互換のためのPCI ベースの VGAビデオ・カードです。
ÉlanSC520 マイクロコントローラでは、
この転送を最初の2つの Programmable Address Region
(PAR) レジスタ (PAR 0 および PAR 1) をプログラムすることで行います。この機能がシステムで
使われている場合、ÉlanSC520 マイクロコントローラのPCIホスト・ブリッジ・ターゲットは PAR0 お
よび PAR1 をシャドウし、外部PCI バス・マスタからのターゲット・フィールドにプログラムされたアド
レス空間へのアクセスを無視します。
PCIホスト・ブリッジ・ターゲット・アドレス空間に関し、詳しくは第4章「システム・アドレス・マッピング」
を参照してください。
ÉlanSC520 マイクロコントローラはPCIホスト・ブリッジとして設定されているので、通常PCIバス・
コンフィギュレーション・スペースにあるPCIバスBase Addressレジスタは搭載していません。
9-18
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
PCI バス・ホスト・ブリッジ
9.5.4.2
PCIバス・コマンドのサポート
PCI バス・ターゲットとしてのÉlanSC520 マイクロコントローラのPCIホスト・ブリッジは、memorywrite-and-invalidate コマンドを memory-write サイクルと同様に扱います。これらのいずれかの
コマンドがPCIバス・マスタから発行された場合、PCIホスト・ブリッジとシステム・アービトレーション・
ブロックはSDRAMにデータを書込む前に、Am5x86 CPUの内蔵キャッシュに対しアドレスをスヌー
プするよう強制します。キャッシュがそのアドレスに更新されたラインを検知した場合、
ライト・バック
を行いラインをインバリデートします。CPUがライト・スルー・モードで動作している場合、データが
SDRAMに書込まれた時点で、単純にラインがインバリデートされます。
PCIホスト・ブリッジは外部PCIバス・マスタによって発行された特殊サイクルやコンフィギュレーション・
サイクルには応答しません。割込み応答サイクルや特殊サイクルは、PCIバスには転送されません。
9.5.4.3
DEVSELのタイミング
外部PCIバス・マスタがÉlanSC520 マイクロコントローラのSDRAMをアクセスする場合、PCIホス
ト・ブリッジは常に中間のタイミング(FRAMEがアサートされてから2クロック後)でDEVSELをアサー
トします。ÉlanSC520 マイクロコントローラはPCIバスにおいて、
サブトラクティブ・デコード・エージェ
ントとしては動作しません。
9.5.4.4
ディレイド・トランザクションのサポート
外部PCI バス・マスタからのÉlanSC520 マイクロコントローラのSDRAM読出しは、
ディレイド・トラ
ンザクションに設定することができます。これは、最初のSDRAM読出し要求がSDRAMに送られる間
にバスを自由にすることによって、PCIバスの利用効率を最大にします。
Host Bridge Control (HBCTL) レジスタ (MMCR offset 60h) の Automatic Delayed Transaction
Enable (T_DLYTR_ENB) フィールドがセットされていると、PCIホスト・ブリッジは即座に外部PCIバ
ス・マスタの読出しサイクルにリトライを掛け、SDRAMコントローラからのデータ要求を開始します。
いくらかの要求したデータがターゲット・リードFIFOに読込
外部PCIバス・マスタの読出しサイクルは、
まれるまでリトライされます。要求されたデータのうち最初のダブル・ワードがターゲット・リードFIFO
に読込まれるだけで、
PCIホスト・ブリッジはリトライせずにディレイド・トランザクションをやめます。PCI
ホスト・ブリッジがディレイド・トランザクションに応答した後、
データのプリフェッチをし続け、
ディスコネ
クトせずに外部PCIバス・マスタから要求されたデータ(最大64ダブル・ワード)を全て提供します。
ディレイド・トランザクション読出しサイクルがペンディングになっている場合(転送をリトライするため
に発生元の外部PCIバス・マスタを待っている)、
他の全ての読出し転送もリトライ対象となり終了しま
す。PCIホスト・ブリッジは1つのディレイド・トランザクションしかサポートしないので、
これらのリトライ
される転送はラッチされません。しかしながら書込み転送は終了することができ、
PCIホスト・ブリッジ
のターゲット・ライトFIFOに置かれます。ディレイド・
トランザクション・ディスカード・タイマによって、
壊
れたマスタがシステムをデッドロックするのを防ぎます。もし215 PCIクロック後、
マスタがディレイド・
トランザクションをリトライしなかった場合、
転送は破棄されオプションで割込みを発生することができ
ます。ディレイド・トランザクション・ディスカード・タイマは215 PCIクロックに固定されています。
外部PCIバス・マスタによるÉlanSC520 マイクロコントローラのSDRAM読出しが自動ディレイド・ト
ランザクションに設定されていない場合、PCIホスト・ブリッジはリトライせずにPCIバス・マスタに要求
されたデータを返そうとします。SDRAMからデータが読出されるまで、
ウエイト・ステートが挿入さ
れます。32クロック以内に最初のデータが返されない場合、PCI Local Bus Specification, Revi-
sion 2.2 にしたがって、PCIホスト・ブリッジは転送をリトライ対象にして終了し、読出し転送をディレ
イド・トランザクションとしてラッチします。もしAm5x86 CPUからPCIへのポスト・ライト・ラッチにデー
タがペンディングになっている場合、読出しデータがPCIホスト・ブリッジ・ターゲット・コントローラか
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
9-19
PCI バス・ホスト ・ブリッジ
ら外部PCIバス・マスタに返される前にフラッシュしなければなりません。この場合、PCIホスト・ブリッ
ジは即座に外部PCIバス・マスタの読出し転送をリトライし、要求をディレイド・トランザクションとして
ラッチします。
ライトFIFOがフルの場合、PCIホスト・ブリッジはいかなる外部PCIバス・マスタ書込みサイクルをもリ
トライします。アドレスFIFOがフルの場合(9.5.4.5 節を参照)、PCIホスト・ブリッジは全ての外部PCI
バス・マスタ・サイクル(読出し書込み)をリトライします。PCIホスト・ブリッジは、1つのPCIバス・マス
タによってバスが独占されないようにし、十分なCPUバス帯域幅を確保するために、64の連続するダ
ブル・ワードを転送した後、常にディスコネクトします。
9.5.4.5
アドレスFIFO
PCIホスト・ブリッジのターゲット・コントローラは、アドレスやターゲット・コントローラに対するコマン
ド要求を管理するためのアドレスFIFOを持っています。アドレスFIFOは、
1つのディレイド・リード・トラ
ンザクションと、転送の順序によっては最大4つの書込みのポストを可能にします。
■ アドレスFIFOが空で(ターゲット・コントローラに転送がラッチされていない)、書込みの前にリー
ド・トランザクションを受けた場合、
この読出しはラッチされ、
ディレイド・トランザクション読出しの
リトライが発行されます。この後、最大4つの書込みがポストされ、読出しの後に続きます(合計5
つの転送がFIFOに溜ります)。
■ アドレスFIFOがポストされたライト・トランザクションを保持している場合(リード・トランザクショ
ンを受ける前に)、合計4つの転送しかアドレスFIFOにラッチすることはできません。もし最初の
ポストされた転送が書込みの場合、
アドレスFIFOには最大4つの転送(3つの書込みと1つの読出
し、
または4つの書込み)
しかラッチすることはできません。
■ アドレスFIFOが4つのポストされた書込みを保持している場合、
ディレイド・トランザクションは1
つもラッチできません。この場合、4つのポストされた書込みのうち1つが内部で終了するまで、す
べての読出し要求はリトライされます(アドレスFIFOにはラッチされません)。
■ どのような場合でも、
アドレスFIFOには最大1つのディレイド・リード・
トランザクションしかラッチでき
ません。もし2つのリード・
トランザクションを受けた場合、
ターゲット・コントローラは最初の1つをラッ
チします。2番目の(および後続の)読出しは、
アドレスFIFOが空いていてもラッチされません。
データFIFOがフルの時、書込みはポストされません。
■ アドレスFIFOがフルでなくても、
ÉlanSC520 マイクロコントローラの PCIホスト・ブリッジは、PCI Local Bus Specification, Revision 2.2 に規定されているデッドロック状態を防ぐための転送順序に従っています。
9.5.4.6
PCIホスト・ブリッジFIFOとプリフェッチ動作
PCIホスト・ブリッジのターゲット・コントローラは64のダブル・ワードFIFOを持ち、外部PCIバス・マス
タからのSDRAMへの書込みをポストします。PCIホスト・ブリッジは、外部PCI バス・マスタの書込み
サイクルにお対して、TRDYをデアサートしてウエイト・ステートを挿入しません。外部PCI バス・マス
タの書込み転送中にライトFIFOがフルになった場合、PCIホスト・ブリッジはサイクルを終了するため
にディスコネクトを発行します。最大4 つの転送をポストできます(各転送は複数データフェーズを
バーストすることができますが、ÉlanSC520 マイクロコントローラのターゲットFIFOは、全てのポス
トされた書込みのデータの合計で最大64ダブル・ワードしか保持できません)。
SDRAMコントローラのライト・バッファは、バイト・マージ、
コンバイン、
および、
もし有効になっていれば
データの折畳みを行うことができ、
PCIバス・マスタからのSDRAM書込みに際し、さらに性能を向上さ
せます。詳しくは第11章「ライト・バッファとリード・バッファ」を参照してください。しかしながら、
PCIホ
スト・ブリッジはターゲットFIFO内でバイト・マージ、
コンバイン、
およびデータの折畳みを行いません。
PCIホスト・ブリッジはターゲット動作時、外部PCIバス・マスタからの読出し転送に際し、SDRAMからデー
タをプリフェッチします。特に、
外部PCIバス・マスタからのmemory-read-multipleコマンドの間は、
最大
9-20
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
PCI バス・ホスト・ブリッジ
の効率を得るために、
SDRAMコントローラのリード・バッファは有効になっていなければなりません。
■ Memory-read と memory-read-line コマンドでは、PCIホスト・ブリッジは次のキャッシュ・ライ
ン( 1つのキャッシュ・ラインは4ダブル・ワード)までデータをプリフェッチします。
■ Memory-read-multiple コマンドはターゲットFIFOをフル(64ダブル・ワード)にします。
PCIホスト・ブリッジがCPUバス権を得ると、memory-read と memory-read-line コマンドの場合は
次のキャッシュ・ラインをプリフェッチするまで、memory-read-multiple コマンドの場合は64ダブル・
ワード転送するまでバスを持ち続けます。PCIホスト・ブリッジは最初のデータ・フェーズへのTRDYを
アサートする前に、
ウエイト・ステートを挿入することがあります。その後PCIホスト・ブリッジは1つの
キャッシュ・ラインをウエイト・ステート無しでバーストできます。各キャッシュ・ラインの後、
もしター
ゲット・リードFIFOが空であったならば、PCIホスト・ブリッジはTRDYをデアサートしてウエイト・ステー
トを挿入します。
もし、memory-readとmemory-read-line コマンドのキャッシュ・ライン境界、
または memory-read-
multiple コマンドの64ダブル・ワードの後、ターゲット・リードFIFOが空になったならば、PCIホスト・ブ
リッジはディスコネクトを発行し転送を終了するので注意してください。
9.5.4.7
バースト・オーダリング
SDRAMアクセスにおいて最高の CPU性能を得るためには、ÉlanSC520 マイクロコントローラの
SDRAMコントローラはAm5x86 CPUのキャッシュ・ライン・バースト・オーダリングをサポートするよ
う設計されていますが、
PCIバスの仕様ではリニア・バースト・オーダリングになっています。このため、
全てのPCIホスト・ブリッジのSDRAMアクセスは、キャッシュ・ラインにアライメントされています(4ダ
ブル・ワードおきに並んでいる)。外部PCIバス・マスタの読出しサイクルがキャッシュ・ラインにアライ
メントされていない場合、
PCIホスト・ブリッジはアライメントされたアドレスになるまで、要求アドレス
の先頭から単一フェーズのデータ・サイクルをSDRAMに対して行います。
例えば、
もし外部PCI バス・マスタがアドレス10008hから10ダブル・ワードのデータの書込みを開始
した場合、PCIホスト・ブリッジは単一のバーストなし書込みサイクルを、
アドレス10008hと1000Chに
対して行います。これら2つの書込みサイクルの後、
転送はキャッシュ・ラインにアライメントされ、
PCI
ホスト・ブリッジは残りの転送をバースト・サイクルで実行します。
9.5.4.8
データ・コヒーレンシの維持
外部PCIバス・マスタからのSDRAMアクセスはAm5x86 CPUのキャッシュによってスヌープされ、必
要に応じてキャッシュ・ラインがライト・バックおよびインバリデートされます。CPUがキャッシュ内の
更新されたラインへのヒットを検出すると、キャッシュ・ラインをSDRAMにライト・バックするために、
アービトレーション・ユニットはPCIホスト・ブリッジに対しAm5x86 CPUバスを解放するよう強制しま
す。キャッシュがライト・スルー・モードの場合、
ラインは単純にインバリデートされ、
ライト・バック・サ
イクルのためにPCIホスト・ブリッジがバスを解放させられることはありません。
外部マスタ書込み転送とSDRAMが実際に書込まれる間の、
ライト・ポスティングFIFOによる時間差の
ために、
ポスティング・バッファを持つ多くのシステムにおいて、
データ・コヒーレンシの潜在的な問題
があります。PCIバスでは、
システムが PCI-to-PCI ブリッジを持っている場合、
さらに面倒です。
ÉlanSC520 マイクロコントローラでは、例えば、外部マスタがデータのブロックをSDRAMに書込み、
そしてデータを処理するために割込みをAm5x86 CPUに対して発生した場合、
ポストされたデータ
がPCIホスト・ブリッジのポスティング・ライトFIFOから実際にSDRAMに書込まれるまで、Am5 x 86
CPUがSDRAMから読出さないようにすることが重要です。PCIバス仕様では、システム内のすべて
のポストされたデータをフラッシュさせるために(PCIバス・ブリッジを含む)、
CPUが割込みをかけた
PCIデバイスに対し読出しを行うように推奨しています。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
9-21
PCI バス・ホスト ・ブリッジ
PCIホスト・ブリッジのターゲット・リードFIFOが、同じアドレス領域に対する書込みが発生し、ディレイ
ド・トランザクションの一部として得られた前のmemory-readコマンドによるデータを保持している
場合、Host Bridge Control (HBCTL) レジスタ (MMCR offset 60h) の T_PURGE_RD_ENB を
セットすることにより、
リードFIFOはコヒーレンシを保つためにパージさせることができます。システ
ムまたはプログラマブル・リセット後の、PCIバスの初期化の時以外、
T_PURGE_RD_ENBは変更して
はなりません。
■ Memory-read と memory-read-line コマンドは、書込みアドレスがプリフェッチしたデータと同
じキャッシュ・ラインにある場合、パージを発生します。この場合、
アドレスはオーバーラップして
いなくてもかまわないことに注意してください。例えば、5008hに対するmemory-readコマンド
ア
が5008hと500Chをプリフェッチします。その後 5000h に対するmemory-writeコマンドは、
ドレスはオーバーラップしていなくても同じキャッシュ・ラインなのでパージを発生します。
■ Memory-read-multiple コマンドは、書込みが64ダブル・ワードのプリフェッチした領域と同じで
ある場合、パージを発生します。この場合、アドレスは厳密に比較されます。同じ64ダブル・ワー
ドの領域に対する書込みは、
プリフェッチが終了していなくてもパージを発生します。例えば、も
しホスト・ブリッジが32番目のダブル・ワードをAm5x86 CPU バスからプリフェッチしていて、書込
この場合32より大きく64より小さい位置の何処でも)に対
みが53番目のダブル・ワード(または、
して行われるとき、
この書込みはパージを発生します。
9.5.4.9
PCIホスト・ブリッジ・ターゲット・バス・サイクル
この節では、
外部PCIバス・マスタが発生し、ÉlanSC520 マイクロコントローラのPCIホスト・ブリッジ
が応答するサイクルを、PCIバスおよびAm5x86 CPUバスと共に解説します。PCIホスト・ブリッジは、
SDRAMに向けられたサイクルをPCIバスからAm5x86 CPU バスへ回送します。
ここに示された例では、基本的に並列アービトレーション・モードを想定していますが、非並列アービ
トレーション・モードでは若干、動作に違いがあります。アービトレーション・モードに関して、詳しくは
第8章「システム・アービトレーション」を参照してください。
ここでの記述は例であり、全てのケースが記載されているわけではありませんのでご了承ください。
タイミング図は、
機能を図示したものであり、詳細なタイミングを示してはいません。また、
CPUとPCI
クロックの同期に関しては全く考慮していませんのでご注意ください。
9.5.4.9.1
外部PCIバス・マスタのポストされたSDRAM書込み
Figure 9-14 は、外部PCIバス・マスタが7つのダブル・ワードを、ÉlanSC520 マイクロコントローラ
のSDRAMに書込む様子を図示しています。最初の信号グループはPCIバスの信号、2番目のグルー
プは内部信号です。
9-22
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
PCI バス・ホスト・ブリッジ
Figure 9-14
外部PCIバス・マスタのポストされたSDRAM書込み
1
2
3
4
5
6
7
8
9
10
CLKPCIIN
ADx
CBEx
address
data1
data2
data3
data4
data5
write cmd
be1
be2
be3
be4
be5
data6
be6
data7
be7
FRAME
IRDY
TRDY
DEVSEL
hb_req
hb_gnt
Notes:
The diagram includes the following internal signals:
hb_req: PCI host bridge requesting the Am5x86 CPU bus to access the SDRAM controller.
hb_gnt: PCI host bridge has been granted Am5x86 CPU bus and can access the SDRAM controller.
See Chapter 8, ìSystem Arbitrationî, for information on Am5x86 CPU bus arbitration.
以下は Figure 9-14 に示された、外部PCIバス・マスタのポストされたSDRAM書込みの注釈です。
■ Clock#1: 外部PCIバス・マスタがÉlanSC520 マイクロコントローラのSDRAMへの書込み転送
を開始します。
■ Clock#3: PCIホスト・ブリッジは常に中間のタイミングでDEVSELをアサートします。この例では、
ライトFIFOがフルではないので、書込みデータを受取るためにTRDYもアサートされます。もし
ライトFIFOかアドレスFIFOのいずれかがフルであったならば、PCIホスト・ブリッジはTRDYの代
わりにSTOPをアサートし、直ちに外部マスタに対してリトライを発行します。
■ Clock#4-#10: ライトFIFOはフルではないので、書込みデータを受取るためにTRDYは引続きア
サートされます。PCIホスト・ブリッジはPCI転送中に、TRDYをデアサートしてウエイト・ステート
を挿入することはありません。転送中にFIFOがフルになり、外部PCIバス・マスタがまだデータの
バーストを要求している(FRAMEがアサートされたまま)場合、
ホスト・ブリッジはTRDYをデア
サートし、同時にSTOPをアサートすることでディスコネクトを発行します(9.5.4.9.3 節を参照)。
外部マスタはIRDYをデアサートすることにより、
ウエイト・ステートを挿入することができます。
ホスト・ブリッジは書込みデータをポストする( SDRAMにはしばらく後に書込まれます)。
■ Clock#7: PCIホスト・ブリッジは最初のPCIデータ・フェーズ(Clock#4)に同期して、SDRAMコ
ントローラにアクセスを要求します。
■ Clock#9: SDRAMコントローラの使用がPCIホスト・ブリッジに対して許可され、SDRAMにPCI
バス・データが書込まれます。Am5x86 CPUまたはGP-DMAがSDRAMアクセスを行っていた場
合、hb_gnt 信号のアサートは遅れることがあります。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
9-23
PCI バス・ホスト ・ブリッジ
9.5.4.9.2
外部PCIマスタのSDRAM読出し(ディレイド・トランザクション)
Figure 9-15 はÉlanSC520 マイクロコントローラのSDRAMに対する、外部PCIバス・マスタの読出
し転送です。
Figure 9-15
外部PCIマスタのSDRAM読出し(ディレイド・トランザクション)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
CLKPCIIN
ADx
CBEx
address
cmd
address
be1
cmd
data1 data2 data3
be1
be2
be3
FRAME
IRDY
TRDY
DEVSEL
STOP
hb_req
hb_gnt
以下は Figure 9-15 に示された、外部PCI バス・マスタのSDRAM読出しの注釈です。
■ Clock#1: 外部PCIバス・マスタがÉlanSC520 マイクロコントローラのSDRAMに対する読出し
転送を開始します。
■ Clock#3: PCIホスト・ブリッジ・ターゲット・コントローラはDEVSELをアサートして転送を受付け
ます。ターゲット・リードFIFO に何もデータが入っていないので(これは新しい転送なので)、
TRDYはアサートされません。
■ Clock#4: PCIホスト・ブリッジ・ターゲット・コントローラはSTOPをアサートして、外部PCIバス・
マスタに対してリトライを促します。データは何も転送されていないので、外部PCIバス・マスタ
は転送をリトライする必要があります(この図では、ÉlanSC520 マイクロコントローラは自動ディ
レイド・トランザクションに設定されています)。ホスト・ブリッジは転送の情報をラッチし、要求さ
れた読出しデータをプリフェッチします。これはこの時点でディレイド・トランザクションになって
おり、
PCIバス・マスタはバス権を一旦放棄し、
リトライ・サイクルのために再びアービトレーション
を要求する必要があります。もし既に、
以前のディレイド・
トランザクションがペンディングになって
いた場合、現在の転送はラッチされません。ターゲットはFRAMEがデアサートされるまでSTOP
信号をアサートしなければならないので、
この例ではSTOPは2クロックの間アサートされていま
す。
■ Clock#7: PCIホスト・ブリッジはディレイド・トランザクション要求に同期し、外部PCIバス・マスタ
から要求されたデータをプリフェッチするため、SDRAMコントローラにアクセスを要求します。
■ Clock#8: CPU バス権がPCIホスト・ブリッジに対して許可され、PCIバス・データがSDRAMから
読出されます。Am5x86 CPUまたはGP-DMAがSDRAMアクセスを行っていた場合、hb_gnt 信
号のアサートは遅れることがあります。ホスト・ブリッジは memory-read または memory-readline コマンドの場合は次のキャッシュ・ラインまで、memory-read-multiple コマンドの場合は64
ダブル・ワードをプリフェッチします。
9-24
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
PCI バス・ホスト・ブリッジ
■ Clock#12: 外部PCIバス・マスタはディレイド・トランザクションをリトライします。ディレイド・トラ
ンザクションがペンディングになっている場合、他の全ての読出し転送はホスト・ブリッジによって
リトライされます(これらはディレイド・
トランザクションとしてラッチされません)。一方、書込み転
送は終了することができ、
ライトFIFOに入れられます。もしホスト・ブリッジが最初のダブル・ワー
ドのデータをターゲット・リードFIFOに読込む前に、外部PCIバス・マスタがディレイド・トランザク
ションのリトライを始めると、
ホスト・ブリッジは外部PCI バス・マスタに対してさらにリトライを発
行します(そして最初のダブル・ワードのデータをターゲット・リードFIFOに読込むまでリトライを
発行し続けます)。
■ Clock#14: ここでPCIホスト・ブリッジは最初のダブル・ワードのデータをターゲット・リードFIFO
に読込み、
この転送がペンディングになっているディレイド・トランザクションであることを認識し
ます。ホスト・ブリッジはDEVSELをアサートして転送に応えます。
■ Clock#16: PCIホスト・ブリッジは転送の最初のデータ・フェーズに対してTRDYをアサートしま
す。最初のデータ・フェーズの後、
ホスト・ブリッジは次のキャッシュ・ライン境界まで、
ウエイト・ス
テートを入れずにバーストすることができます。各キャッシュ・ラインの後、
ターゲット・リードFIFO
が空になると、PCIホスト・ブリッジはウエイト・ステートを挿入することがあります。
■ Clock#17-#19: 外部PCIバス・マスタはデータをPCIホスト・ブリッジから読出します。
(図に示
されたように、SDRAMからのデータが Clock#17 で得られるというのは、非常に楽観的です。)
ウエイト・ステートを挿入することができます。
外部PCI バス・マスタはIRDYをデアサートして、
Clock#19 は外部PCIバス・マスタから要求された最後のデータです(FRAMEがデアサートされ、
IRDYがアサートされます)。
9.5.4.9.3
PCIホスト・ブリッジのターゲット・ディスコネクト
Figure 9-16 は、PCIホスト・ブリッジ・ターゲット・コントローラが外部PCIバス・マスタに対してディス
コネクトを発行している図です。この例では、外部PCIバス・マスタの書込みサイクルでのディスコネ
クトですが、読出しサイクルの場合もメカニズムは同じです。唯一の違いは、Clock#2がAD31-AD0
バスのターンアラウンド・サイクルであるという点です。PCIホスト・ブリッジは次の場合にディスコネ
クトを発行します。
■ 外部PCIバス・マスタの書込みサイクル中に、
ライトFIFOがフルになったか、
またはバス・マスタに
より64の連続するダブル・ワードが書込まれた場合。
■ 外部 P C I バス・マスタの読出しサイクル中にターゲット・リードF I F O が空になった場合。−−
memory-read と memory-read-line コマンドに対して、ホスト・ブリッジは次のキャッシュ・ライ
ンまでディスコネクトせずにバーストでき、memory-read-multiple コマンドに対しては、
ホスト・
ブリッジは64ダブル・ワードまでディスコネクトせずにバーストできることに注意してください。も
し外部PCIバス・マスタがこれらの制限を越えてバーストしようとした場合、
PCIホスト・ブリッジは
ディスコネクトを発行することができます。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
9-25
PCI バス・ホスト ・ブリッジ
Figure 9-16
PCIホスト・ブリッジのターゲット・ディスコネクト
1
2
3
4
5
6
7
8
9
10
CLKPCIIN
ADx
CBEx
address
data1
data2
data3
write cmd
be1
be2
be3
FRAME
IRDY
TRDY
DEVSEL
STOP
hb_req
hb_gnt
以下は Figure 9-16 に示された、PCIホスト・ブリッジのターゲット・ディスコネクトの注釈です。
■ Clock#1: 外部PCIバス・マスタがÉlanSC520 マイクロコントローラのSDRAMへの書込み転送
を開始します。
データ
■ Clock#3: PCIホスト・ブリッジは常に中間のタイミングでDEVSELをさらにアサートして、
の受け取り
(外部PCI バス・マスタの読出しに対してはデータの供給)ができることを示します。
■ Clock#3-#4: TRDYとIRDYが両方ともアサートされており、有効なデータ・フェーズであること
を示します。外部マスタの書込みデータはPCIホスト・ブリッジによって受取られます(または、外
部PCIバス・マスタの読出しの場合は、外部マスタがデータを読込みます)。
■ Clock#5: PCIホスト・ブリッジのライトFIFOがフルになり(または、外部PCI バス・マスタの読出
しの場合は、
ターゲット・リードFIFOが空になり)、TRDYがデアサート、
STOPがアサートされ、
ディ
スコネクトを示します。TRDYがデアサートされるので、Clock#5が最後の有効なデータ・フェー
ズとなります。FRAMEは引続きアサートされ、
外部PCIバス・マスタはまだバースト転送を要求し
ていることに注意して下さい。
■ Clock#6: 外部PCIバス・マスタはSTOPのアサートを検出し、
FRAMEをデアサートします。TRDY
がデアサートされているので、
これは有効なデータ・フェーズではなく、
データの転送は行われま
せん。
■ Clock#7: 外部PCIバス・マスタはIRDYをデアサートし、
PCIホスト・ブリッジはSTOPとDEVSEL
をデアサートしてPCIバス・トランザクションが終了します。ホスト・ブリッジは最初のPCIバス・デー
タ・フェーズ( Clock#3に同期して、SDRAMコントローラにアクセスを要求します。
■ Clock#9: CPU バスがPCIホスト・ブリッジに渡され、PCIバス・データがSDRAMに書込まれます。
Am5x86 CPUやGP-DMAコントローラがSDRAMにアクセスしていた場合、hb_gnt信号は遅れ
ることがあります。
9-26
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
PCI バス・ホスト・ブリッジ
9.5.5
割込み
PCIホスト・ブリッジはマスク可能割込み要求信号とNMI信号をそれぞれ、1つを持っており、それらは
ÉlanSC520 マイクロコントローラの割込みコントローラに接続されています。これらの割込み信号
は、
アダプタ、
ホスト・ブリッジのPCIマスタ・コントローラおよびPCIターゲット・コントローラによって
共有されます。各割込みソース(マスタ、
およびターゲット・ソース共に)は、個々にマスク不可割込み
ではなく、マスク可能割込みを発生するようにプログラムできます。
つぎの条件でPCIホスト・ブリッジ・マスタ・コントローラが割込みを発生するようにプログラムできま
す。
■ 読出しサイクル中にパリティ・エラーを検出した場合
■ 書込みサイクル、
または読出しサイクルのアドレス・フェーズでパリティを受信した場合
■ リトライ・タイム・アウト・カウンタの時間切れ
■ マスタ・アボートでサイクルが終了した場合
■ ターゲット・アボートでサイクルが終了した場合
■ PCIバス・デバイスがシステム・エラー(SERR)ピンをアサートした場合
割込みが発生すると、その時のアドレスは Host Bridge Master Interrupt Address (MSTINTADD)
register (MMCR offset 6Ch) に、コマンドは Host Bridge Master Interrupt Status
(HBMSTIRQSTA) レジスタ (MMCR offset 68h) に格納されます。複数の割込み条件が重なった
場合、
レジスタは最初の割込み条件の状態だけを格納します。もし複数の割込み条件が重なった場
合、Master Interrupt Command Identification (M_CMD_IRQ_ID) および Master Interrupt Adどの割込みに対応しているのかを知る術はあ
dress Identification (M_AD_IRQ_ID) フィールドが、
りません。エラー条件を検出すると、Status/Command (PCISTACMD) レジスタ (PCI index 04h)
のステータス・ビットもセットされます。これらのビットは、割込みがイネーブルされているかどうかに
関わらず、エラー条件を検出すると必ずセットされます。
つぎの条件でPCIホスト・ブリッジ・ターゲット・コントローラが割込みを発生するようにプログラムで
きます。
■ 書込みサイクルのデータ・フェーズでパリティ・エラーを検出した場合
■ アドレス・フェーズでパリティ・エラーを検出した場合
■ ディレイド・トランザクション・タイム・アウト−−外部PCIバス・マスタがディレイド・トランザクショ
ンをリトライせずに215 クロックが経過した場合
割込みが発生すると、エラーを起したPCIバス・マスタのREQ/GNT番号が Host Bridge Target In-
terrupt Status (HBTGTIRQSTA) レジスタ (MMCR offset 64h) に格納されます。複数の割込み条
件が重なった場合、Target Interrupt Identification (T_IRQ_ID) フィールドは、最初の割込み条件
T_IRQ_IDフィールドが、
どの割込みに
の情報だけを格納します。複数の割込み条件が重なった場合、
対応しているのかを知る術はありません。Status/Command (PCISTACMD) レジスタ (PCI index
04h) の対応するステータス・ビットもセットされます。これらのビットは、割込みがイネーブルされて
いるかどうかに関わらず、エラー条件を検出すると必ずセットされます。
割込み要求信号の設定やプログラムに関しては、第15章「プログラマブル・インタラプト・コントロー
ラ」で詳しく解説します。アービトレーションに関する詳しい説明は、第8章「システム・アービトレー
ション」を参照してください。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
9-27
PCI バス・ホスト ・ブリッジ
9.5.6
レイテンシ
PCIバスのレイテンシに関しては、CPUと外部PCIバス・マスタ別々に解説します。
■ マスタ・レイテンシとは、
PCIバス上でÉlanSC520 マイクロコントローラのAm5x86 CPUがマス
タである場合を指します。
■ ターゲット・レイテンシとは、外部PCIバス・マスタからÉlanSC520 マイクロコントローラがター
ゲットとしてアクセスされる場合を指します。
9.5.6.1
マスタ・レイテンシ
ライト・ポスティング・バッファによってAm5x86 CPUのメモリ書込みサイクルは、PCIバス転送のレイ
テンシに影響されずに終了できます。他の全てのCPUとPCIバス間のサイクル(メモリ読出し、
I/O書
込み、
I/O読出し)は、Am5x86 CPUにレディを返す前にPCI バスの転送が終了しなければなりません。
ÉlanSC520 マイクロコントローラが非並列アービトレーション・モードで動作中は、ライト・ポスティ
ングはディセーブルしなければなりません。非並列アービトレーション・モードに関して、詳しくは第8
章「システム・アービトレーション」を参照してください。
アクセスされているターゲットは、Am5x86 CPUサイクル(ターゲット・ビジー)を何度もリトライする
ことがあり、Am5x86 CPUの動作を遅らせます。この性能低下は、PCIホスト・ブリッジが rdy を返す
前に何回リトライを行うかを制限する、Master Retry Time-Out (PCIMRETRYTO) レジスタ (PCI
index 41h) のMaster Retry Time-Out (M_RETRY_TO) フィールドを設定することにより低減でき
ます。この設定は、
システムまたはプログラマブル・リセット後の、PCIバスの初期化の時以外では変
更してはならないので注意してください。
PCIバス・メモリはキャッシュ不可なので、Am5x86 CPUは通常PCIバスに対してバースト・リードしま
せん(書込み転送の場合は常にバーストしません)。CPUはまれに、最大2つのダブル・ワードの読出
し転送をバーストすることがあります。事を簡単にするために、
このような場合、PCIホスト・ブリッジ
はAm5x86 CPUのバースト・リード・サイクルを、単一のダブル・ワードの読出しサイクルに分解しま
す。これも、Am5x86 CPUのPCI バス読出し性能を低下させる要因になります。PCIホスト・ブリッジ・
マスタ・コントローラは単一データ・フェーズの転送しか行いませんので、マスタ・レイテンシ・タイマ
は持っていません。
9.5.6.2
ターゲット・レイテンシ
PCIホスト・ブリッジのターゲット・コントローラが持つライト・ポスティングとディレイド・トランザクショ
ンの機能により、外部PCIバス・マスタのサイクルはSDRAMアクセスのレイテンシに影響されずに終
了できます。ライト・ポスティングとディレイド・トランザクションが無ければ、PCIホスト・ブリッジ・ター
ウエイト・ステート
ゲット・コントローラは、SDRAMコントローラのアービトレーションを待つために、
を挿入することになります。
ディレイド・トランザクションのサポートにより、
このCPUバスとSDRAMコントローラのアービトレー
ションの間、そのマスタに長いウエイト・ステートを強いることなくPCI バスを他のマスタに渡すこと
ができます。その代わり、最初のマスタの要求はPCIホスト・ブリッジによって処理するためにディレイ
ド・トランザクション・キューにラッチされ、バス・マスタは一旦PCI バスを解放してリトライを行うよう
強制されます。そして、PCIバス・アダプタは他のPCIバス・マスタにバスを渡します。この2番目のバ
ス・マスタは、
ホスト・ブリッジが最初の転送を処理している間に、他の PCIデバイスに対しての転送
(peer-to-peer )か、SDRAMに対する書込みを行うことができます。
ディレイド・トランザクションは、32 PCIバス・クロック(ホスト・ブリッジ・デバイスでなければ16)以内
に転送が始らなかった場合の、バス帯域幅の無駄遣いを防ぎます。いずれにしてもPCIマスタはリト
ライするので、16-32 PCIクロック分無駄になります。
9-28
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
PCI バス・ホスト・ブリッジ
Élan SC520 マイクロコントローラのシステム・アーキテクチャでは、外部 PCI バス・マスタからの
SDRAM読出しが、次の理由によって遅れることがあります。
またはSDRAMをアクセス中
■ Am5x86 CPUがROM、GP バス、
■ SDRAMコントローラがSDRAMのリフレッシュを実行中
■ GP-DMAイニシエータとSDRAMの間でDMA転送を実行中(こうした転送は長さが不定であり、
DMA転送モードの設定にも依存します。例えば、ブロックまたはデマンド・モードでは、DMA転送
はプリエンプトできません。)
注意:ブロックまたはデマンド・モードによる大きなGPバスDMA転送、
または非常に遅いGPバス・サイクル(プログラ
マブルGPバス・タイミングで起動された、
またはGPRDYのデアサート)では、PCI Local Bus Specification,
Revision 2.2 に定められた、10μsのメモリ書込み最大終了タイム・リミットを犯す可能性があります。PCI バ
ス仕様 2.2 に対応させるためには、GP バス・サイクルやGP バスDMAのブロックまたはデマンド・モード転送
をソフトウエアで制限しなければなりません。
ディレイド・トランザクションは、memory-read-multiple コマンドに対応するプリフェッチのため、
SDRAMに対するAm5x86 CPUとGP-DMAのレイテンシを増加させます。例えば、ÉlanSC520 マイ
クロコントローラのSDRAMに対するPCIバス・マスタのmemory-read-multipleサイクルで、
64 ダブ
ル・ワードのプリフェッチが起こった場合、Am5x86 CPUもGP-DMAコントローラもCPUバスにアク
セスできません。最初の64ダブル・ワードのプリフェッチが終了した後、PCIホスト・ブリッジはCPUバ
スを解放します。
9.6
初期化
PCIバスのRST信号がアサートされると、他の全ての外部PCI バス・デバイス同様、ÉlanSC520 マイ
クロコントローラのPCIホスト・ブリッジもリセットされます。
RST信号はシステム・リセット(第6章「 6.5.1 システム・リセット」参照)によって、
または Host Bridge
Control (HBCTL) レジスタ (MMCR offset 60h) のPCI_RSTビットをセットすることによってアサー
およびデ
トされます。これらのリセット・ソースは、PCIバス・クロックに非同期でRST信号をアサート、
アサートします。
RST信号がアサートされると、PCIホスト・ブリッジのマスタ・コントローラとターゲット・コントローラ
のステート・マシンはアイドル・ステートに入り、
ホスト・ブリッジのFIFOはパージされます。システム・
リセットによりPCIホスト・ブリッジのレジスタ・ビットはそれらのデフォルト状態になりますが、
PCI_RST
ビットではPCIホスト・ブリッジ・コンフィギュレーション・レジスタやホスト・ブリッジ・ステータス・ビット
はリセットされません(ÉlanSC520 Microcontroller Register Set Manual, 注文番号 #22005 を参
照してください)。
リセット後、PCIホスト・ブリッジのターゲット・コントローラはディセーブルされますが、
ホスト・ブリッジ
はAm5x86 CPUからのコンフィギュレーション・トランザクションには応答します。PCIホスト・ブリッ
ジのマスタ・コントローラは常にイネーブルされていますのでご注意ください。
リセット後、PCIホスト・ブリッジを設定するために、
次の手順を実行します。まずPCIホスト・ブリッジを
設定し、次に外部PCIバス・デバイスを設定します。
1.
PCIホスト・ブリッジの設定
a. 並列モードやPCIバス・マスタのアービトレーション・プライオリティ等、ÉlanSC520 マイクロ
コントローラのアービトレーション・モードを設定する。アービトレーションに関して、詳しくは
第8章の「 8.5 初期化」を参照してください。
b. 必要ならば Programmable Address Region (PAR) レジスタをプログラムする。PCIバス・
メモリ空間に関しては、第4章「システム・アドレス・マッピング」を参照してください。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
9-29
PCI バス・ホスト ・ブリッジ
c. ÉlanSC520 マイクロコントローラに特有なPCIホスト・ブリッジの設定(ライト・ポスティング、
リトライ・タイム・アウト・カウンタ、
割込みなど)をプログラムする。非並列アービトレーション・
モードでは、
ライト・ポスティングはディセーブルしなければならないのでご注意ください。非
並列アービトレーション・モードに関して、
詳しくは第8章「システム・アービトレーション」を参
照してください。
d. 標準のPCIバス・コンフィギュレーション・レジスタをプログラムする。詳しくは「 9.5.2 設定情
報」を参照してください。
2.
外部PCIバス・デバイスの設定
一般的に、
PCIホスト・ブリッジのコンフィギュレーション・ビットは、
システムまたはプログラマブル・リ
セット後のPCIバスの初期化時以外は変更してはなりません。
PCIバス仕様 2.2 対応のターゲットは、RST信号のデアサートから225クロック(約1秒)以内にアクセ
スされた場合、
通常のイニシャル・レイテンシ・タイム・リミットを満たす必要はありません。この期間に
指定されたターゲットは、次のいずれかで対応することができます。
■ リトライを起動
■ アクセスを宣言し、応答のレディまでウエイト状態を保持
■ アクセスを無視
アクセスを無視するデバイスは大抵の場合、RSTのデアサート後、初期化のソフトウエアが設定しよ
うとするのが早すぎて認識されていないものです。結果として不完全なシステムの設定になります。
個のようなデバイスをサポートするために、
PCIデバイスを設定するソフトウエアは、225クロックの経
過を保証するようにプログラムしなければなりません。
9-30
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
第10章
SDRAMコントローラ
10.1
概要
ÉlanSC520マイクロコントローラはSDRAMコントローラを内蔵しています。
下記の機能を持っています。
■ SDRAM(シンクロナスDRAM)をサポート。
■ 3.3V DC 66MHz SDRAM( 16Mbit から 256Mbit )。
■ 3-1-1-1 リード・バースト対応(全てのスピード・グレードのデバイスで、
CASレイテンシ(CL)=2)。
■ 最大4バンクをサポートし、バンク毎にサイズと対称性(対称型、
または非対称型SDRAM)をプロ
グラム可能。
■ 最大256M バイトのSDRAMサポート
■ オプションでリセット中にリフレッシュ可能。
■ SDRAMの自動リフレッシュ。
■ エラー訂正コード( ECC)をサポート(シングル・ビット訂正/マルチ・ビット検出)。
■ 統合書込み、折り畳み書込みおよび統合読出しをサポートするSDRAMライト・バッファ。
■ SDRAMのリード・プリフェッチをサポートする先読み機能付きリード・バッファ。
■ ライト・バッファ使用中にポストされた書込みより読出しを優先するread-around-write 機能をサ
ポート。
10.2
ブロック図
SDRAMコントローラとそのシステムSDRAMへのインタフェースとライト・バッファおよびリード・バッ
ファの関係を Figure 10-1 に示します。
(ライト・バッファとリード・バッファに関しては、第11章で解
説します。)Figure 10-2 はSDRAMコントローラ・サブシステムの詳細なブロック図です。
10.3
システム設計
ÉlanSC520マイクロコントローラのSDRAMコントローラはSDRAMデバイスのみをサポートします。
Figure 10-3 はÉlanSC520マイクロコントローラとSDRAM バンクの接続例です。
Élan SC520マイクロコントローラのデータ・バスは32ビットですが、64ビット( 168ピンDIMM)メモ
2つのバンクの1組みとして使用できます。SCS3リを使用することができます。各168ピンDIMMは、
SCS0信号を適切に SDRAM DIMM モジュールに接続することにより、168 ピン・モジュールを
ÉlanSC520マイクロコントローラ・システムで使用することができます。
Figure 10-4 は168ピンSDRAM DIMMを2つのバンクとして使用した例です。この例でのDIMMは、
8ビット・デバイスを使用しています。ECCに設定したDIMMは示されていません。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
10-1
SDRAM コントローラ
Figure 10-1
SDRAMコントローラのブロック図
Élan™SC520 Microcontroller
MA12–MA0
BA1–BA0
SCS3–SCS0
Address Decode
CPU Interface
SCASB–SCASA
Read Buffer
SRASB–SRASA
SDRAM
SDQM3–SDQM0
Controller
SWEB–SWEA
CLKMEMOUT
Write Buffer
CLKMEMIN
MECC6–MECC0
33 MHz
Clock Generator
32 kHz
66 MHz
MD31–MD0
32 kHz
33 MHz
10-2
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
32KXTAL2–32KXTAL1
33MXTAL2–33MXTAL1
SDRAM コントローラ
Figure 10-2
SDRAMコントローラの詳細なブロック図
Élan™SC520 Microcontroller
MA12–MA0
BA1–BA0
MA Gen.
x5_addr[27–2]
SCS3–SCS0
Page/Bnk
SCASB–SCASA
32 kHz
x5_control
33 MHz
SRASB–SRASA
Control
SWEB–SWEA
CLKMEMOUT
66-MHz PLL
x5_be[3–0]
SDQM3–SDQM0
be3–be0
Write Buffer
data[31–0]
MD31–MD0
x5_data[31–0]
Read Buffer
x5_data[31–0]
ECC
Check
MECC6–MECC0
ECC
Gen.
CLKMEMIN
Interrupts
Notes:
SDRAM controller trace and test logic is not shown.
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
10-3
SDRAM コントローラ
Figure 10-3
SDRAMバンクの設定
MD31–MD0
MECC6–MECC0
MA12–MA0,
BA1–BA0
Bank 3
SCS3
SRASB
SDQM3–
SDQM0
D[38:32]
D[31:24]
D[23:16]
D[15:8]
DQM[3]*
DQM[3]
DQM[2]
DQM[1]
D[38:32]
D[31:24]
D[23:16]
D[15:8]
DQM[3]*
DQM[3]
DQM[2]
DQM[1]
D[7:0]
RAS
DQM[0] CAS
SCS2
Bank 2
SWEB
D[7:0]
RAS
DQM[0] CAS
SCASB
SCS1
Bank 1
SRASA
D[38:32]
D[31:24]
D[23:16]
D[15:8]
DQM[3]*
DQM[3]
DQM[2]
DQM[1]
RAS
DQM[0] CAS
D[38:32]
D[31:24]
D[23:16]
D[15:8]
D[7:0]
DQM[3]*
DQM[3]
DQM[2]
DQM[1]
D[7:0]
SCS0
Bank 0
SWEA
RAS
DQM[0] CAS
SCASA
Notes:
* ECC is optional. Since the entire doubleword is always written to the SDRAM during a read-modify-write operation
(see "Error Correction Code (ECC)" on page 10-16), any one of the four SDQM signals can be connected to the
DQM of the device that stores the 7-bit check word.
10-4
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
SDRAM コントローラ
Figure 10-4
168ピンSDRAM DIMMの設定例
MA12–MA0,
BA1–BA0
MD31–MD0
DQ63–DQ32
DQ31–DQ0
Bank 1
X8
Bank 0
X8
X8
SDQM3
SDQM2
SDQM1
X8
X8
X8
X8
SDQM0
SCASA
SCASB
SRASA
SRASB
SWEB
SWEA
SCS1
10.3.1
X8
SCS0
SDRAMのピン
SDRAMインタフェースはSDRAMデバイスのみをサポートします。
4つのチップ・セレクト信号SCS3-SCS0は、独立したバンクの選択に使用します。
SRASA-SRASB, SCASA-SCASB, および SWEA-SWEB 信号は、SDRAMコントローラがエンコー
ドし、
SDRAMデバイスにコマンドを送るデバイス・コマンド信号です。アレー内のデバイスはこれらの
信号をサンプルすることが必要です。
■ この為、非常に重い負荷になるので、
これらのピンの容量負荷を分散するために2つのSRASと2
つのSCAS信号が用意されています。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
10-5
SDRAM コントローラ
– 例えば、バンク0と1で SRASA と SCASA 信号を使用し、バンク2と3を SRASB と SCASB
信号で駆動します。
■ ピンの負荷を緩和するために、SWE 信号も2つ用意されています。
– 例えば、バンク0と1で SWEA 信号を使用し、バンク2と3で SWEB 信号を使用します。
4つのSDQM 信号、SDQM3-SDQM0 はバイト・マスキングに使用します。
■ 4つの SDQM3-SDQM0 信号はそれぞれ、4 バイトのうちの1つに対応しています。各 SDQMx
信号は、書込みアクセスの入力マスク、読出しアクセスの出力イネーブル信号になります。
ÉlanSC520マイクロコントローラのSDRAM信号と、外部SDRAMバンクとの接続を示すFigure 103 を参照してください。SDRAMコントローラはROM/FlashインタフェースとMD31-MD0データ・バ
スを共有しますので、SDRAMコントローラはSDRAMデバイスがROMまたはFlashデバイスとバス
の競合を起こさないように、SDQM3-SDQM0を制御します。
10.3.2
SDRAMのクロック
SDRAMデバイスへのクロックは、ÉlanSC520マイクロコントローラのSDRAMコントローラ・インタ
フェースから出力されます。Figure 10-1 に示されているように、SDRAMインタフェースのために2
つのクロック・ピンがあります。
■ CLKMEMOUT は66MHzクロックです。
■ CLKMEMINはCLKMEMOUTを直接フィードバックする入力であることが必要です。
SDRAM コントローラのデータ・バッファは、SDRAM デバイスからのデータをラッチするために
CLKMEMINを使用します。これによりSDRAMデバイスからの読出しデータの到達に要する時間を
許容することができます。CLKMEMOUTとCLKMEMINの間の許容遅延範囲は、-0.5 から +6.0 ns
です。
以下に、
ÉlanSC520マイクロコントローラで使用するSDRAMシステムの、典型的な例を説明します。
これらはシステム設計に対しての一般的なガイドラインであり、実施例としてお奨めするものではあ
りません。
CLKMEMOUTピンは24mAドライバを持っており、外部クロック・ドライバやバッファを使わずに50pF
の負荷を直接ドライブでき、
さらに許容される最大6nsの遅延以下を実現します。負荷が50pFを越え
る場合、遅延が6nsより大きくなり、
データの正確さが失われる可能性があります。50pFの許容負荷
は、
ボード上での配線( CLKMEMOUTとCLKMEMINの間)、DIMMコネクタの負荷容量、
SDRAMデ
バイスの負荷容量等、CLKMEMOUTピンにかかる全ての負荷の合計です。
Table 10-1 に、SDRAMデバイスのデータ幅毎に対応したバンク負荷容量の推定値を示します。
Table 10-1 に示すように、4ビット・デバイスで構成されたバンクは、8ビット・デバイスよりも大きな
負荷をCLKMEMOUTに与えます。この表はボードやコネクタの負荷容量は含んでいません。
Table 10-1
デバイス幅から推定されるSDRAMクロック負荷容量
Device Width
4-Bit
8-Bit
16-Bit
Device count (per bank)
8
4
2
32-Bit
1
Total SDRAM clock loading (pF)
32
16
8
4
Figure 10-5 は負荷の軽いシステムの図です。図中の Delay は、一般的に高速バッファ、キャパシタ、
直列抵抗その他、
または短い配線で実装します。
10-6
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
SDRAM コントローラ
Figure 10-5
SDRAMクロック・ジェネレーション
CLKMEMOUT
SDRAM
Delay
Controller
CLKMEMIN
SDRAM Bank
Élan™SC520
Microcontroller
Figure 10-6 は外部クロック・ドライバを使用する2バンクSDRAMのシステムです。複数のSDRAM
バンクの負荷をサポートするために、CLKMEMOUTをバッファするクロック・ドライバを用います。
クロック・ドライバによるスキューを保証しま
バッファされたCLKMEMOUTはCLKMEMINに戻され、
す。
Figure 10-6
外部クロック・ドライバとの交互SDRAMクロック・ジェネレーション
Drivers
CLKMEMOUT
SDRAM
Controller
SDRAM Bank
SDRAM Bank
CLKMEMIN
Élan™SC520
Microcontroller
システム設計者が考慮しなければならない遅延は、次の式で得られます。
TAC + TSKEW + TCK_LD + TD_LD <= TCK
但し
TAC : SDRAMデバイスのアクセス・タイム(ボード設計に影響されない)
TSKEW : CLKMEMOUT と CLKMEMIN との間の遅延
TCK_LD : 負荷によるクロックの追加遅延
TD_LD : 負荷によるデータの遅延
TCK : SDRAM メモリ・クロック
さらに詳しいタイミング表や図に関しては、Élan SC520 Microcontroller Data Sheet , 注文番号
#22003 を参照してください。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
10-7
SDRAM コントローラ
10.3.3
SDRAMの負荷
Table 10-2 から Table 10-5 にÉlanSC520マイクロコントローラがサポートできるSDRAMデバイ
スの推定負荷容量を示してあります。
(ÉlanSC520マイクロコントローラがサポートできるSDRAM
デバイスは、
Table 10-8 を参照してください)。分かりやすくするため、表はSDRAMデバイスのデー
タ幅毎にまとめてあります。これらの表の目的は様々なバンクの組み合せによってSDRAMの負荷容
量がどうなるかを見るためのものです。ÉlanSC520マイクロコントローラは信号出力に関して柔軟
性を持っており、SDRAMアレイの構成によって最適な性能を得られるよう調整することができます。
推定容量の表は、単一デバイスの SRASx, SCASx, SWEx, MAx, BAx, SDQMx, および SCSx の
入力キャパシタンスを5pF、
またCLK信号を4pFと仮定しています。MDx信号は6pFと仮定していま
す。これらの表は、ボードの配線負荷容量を考慮していません。また、制御信号 SRASA- SRASB,
SCASA-SCASB, および SWEA-SWEB は、両方とも平等に負荷を分けられているものと仮定しま
す。
表からわかるように16ビット・デバイスによる4 バンク構成ではどの信号に対しても50pF以下の負荷
になりますが、4ビット・デバイスによる4 バンク構成では、
インタフェースの負荷容量が増えます。
ÉlanSC520 マイクロコントローラは、アドレス、データおよび制御信号において出力の強度をプログ
ラムできるバッファを持っており、SDRAM の構成によって変化させることができます。詳しくは
「 10.5.5 SDRAMコントロール設定」を参照してください。
Table 10-2
推定負荷容量(4ビットSDRAMデバイス)
Number
of 32-Bit
Banks
SWEx
SDQMx MAx/BAx MDx
SRASx SCASx SCSx
CLK
Loading Loading Loading Loading Loading Loading Loading Loading
(pF)
(pF)
(pF)
(pF)
(pF)
(pF)
(pF)
(pF)
1
32
40
40
40
40
10
40
6
2
64
40
40
40
40
20
80
12
3
96
80
80
40
80
30
120
18
4
128
80
80
40
80
40
160
24
Notes:
Capacitive loads shown in the table above are derived from an estimated SDRAM pin capacitance
value of 5 pF for SRASx, SCASx, SWEx, MAx, BAx, SDQMx, and SCSx; 4 pF for the CLK signal;
and 6 pF for the MDx signals, per device.
Table 10-3
推定負荷容量(8ビットSDRAMデバイス)
Number
of 32-Bit
Banks
SWEx
SDQMx MAx/BAx MDx
SRASx SCASx SCSx
CLK
Loading Loading Loading Loading Loading Loading Loading Loading
(pF)
(pF)
(pF)
(pF)
(pF)
(pF)
(pF)
(pF)
1
16
20
20
20
20
5
20
6
2
32
20
20
20
20
10
40
12
3
48
40
40
20
40
15
60
18
4
64
40
40
20
40
20
80
24
Notes:
Capacitive loads shown in the table above are derived from an estimated SDRAM pin capacitance
value of 5 pF for SRASx, SCASx, SWEx, MAx, BAx, SDQMx, and SCSx; 4 pF for the CLK signal;
and 6 pF for the MDx signals, per device.
10-8
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
SDRAM コントローラ
Table 10-4
推定負荷容量(16ビットSDRAMデバイス)
Number
of 32-Bit
Banks
SWEx
SDQMx MAx/BAx MDx
CLK
SRASx SCASx SCSx
Loading Loading Loading Loading Loading Loading Loading Loading
(pF)
(pF)
(pF)
(pF)
(pF)
(pF)
(pF)
(pF)
1
8
10
10
10
10
5
10
6
2
16
10
10
10
10
10
20
12
3
24
20
20
10
20
15
30
18
4
32
20
20
10
20
20
40
24
Notes:
Capacitive loads shown in the table above are derived from an estimated SDRAM pin capacitance
value of 5 pF for SRASx, SCASx, SWEx, MAx, BAx, SDQMx, and SCSx; 4 pF for the CLK signal;
and 6 pF for the MDx signals, per device.
Table 10-5
推定負荷容量(32ビットSDRAMデバイス)
Number
of 32-Bit
Banks
SWEx
SDQMx MAx/BAx MDx
CLK
SRASx SCASx SCSx
Loading Loading Loading Loading Loading Loading Loading Loading
(pF)
(pF)
(pF)
(pF)
(pF)
(pF)
(pF)
(pF)
1
4
5
5
5
5
5
5
6
2
8
5
5
5
5
10
10
12
3
12
10
10
5
10
15
15
18
4
16
10
10
5
10
20
20
24
Notes:
Capacitive loads shown in the table above are derived from an estimated SDRAM pin capacitance
value of 5 pF for SRASx, SCASx, SWEx, MAx, BAx, SDQMx, and SCSx; 4 pF for the CLK signal;
and 6 pF for the MDx signals, per device.
負荷容量の表から明らかに分かるのは、ÉlanSC520マイクロコントローラのSDRAMコントローラに
つなぐデバイスの数が多くなればなるほど、負荷容量もまた大きくなるということです。数値は実際
のデバイスの負荷容量だけを表しており、
ボートの配線容量やバッファの容量は含んでいません。
SDRAMコントローラのデータ・バス(MD31-MD0) はROM/Flashコントローラと共有されています。
SDRAMとROM/Flashデバイスの両方を実装する場合、MD31-MD0の負荷容量に関しても考慮する
ことをお奨めします。SDRAMとROM/Flashデバイスによる重い負荷は、SDRAMタイミングを遅ら
せ、データが正しく伝わらないことがあります。
ECCデバイスを搭載しない場合、MECC6-MECC0バスに10KΩのプルダウン抵抗を付け、読出しア
クセス中にバスがフローティングにならないようにすることをお奨めします。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
10-9
SDRAM コントローラ
10.4
レジスタ
SDRAMの設定に使用するレジスタを、Table 10-6 にまとめてあります。
Table 10-6
メモリ・マップされたSDRAM制御レジスタ
Register
Mnemonic
MMCR
Offset
Address
SDRAM Control
DRCCTL
10h
Operation mode select, refresh enable, refresh
rate select, SDRAM write buffer test mode
enable
SDRAM Timing Control
DRCTMCTL
12h
RAS-to-CAS delay, RAS precharge, CAS
latency
SDRAM Bank Configuration
DRCCFG
14h
Bank count select, address column width
requirements for each bank
SDRAM Bank 0–3 Ending
Address
DRCBENDADR
18h
Independent bank ending configurations and
enables for banks 0, 1, 2 and 3
ECC Control
ECCCTL
20h
ECC enable, interrupt enable for single-bit and
multi-bit error detection
ECC Status
ECCSTA
21h
Single-bit and multi-bit error status
ECC Check Bit Position
ECCCKBPOS
22h
ECC data bit position in check bit or data bit fields
ECC Check Code Test
ECCCKTEST
23h
ECC check code override for test and error
handler development
ECC Single-Bit Error Address ECCSBADD
24h
Address where single-bit ECC error occurred
ECC Multi-Bit Error Address
ECCMBADD
28h
Address where multi-bit ECC error occurred
Drive Strength Control
DSCTL
C28h
I/O pad drive strength for SCS3–SCS0,
SRASA–SRASB, SCASA–SCASB, SWEA–
SWEB, SDQM3–SDQM0, MA12–MA0, BA1–
BA0, MD31–MD0, MECC6–MECC0
ECC Interrupt Mapping
ECCMAP
D18h
ECC interrupt mapping to any of 22 available
interrupt channels or NMI, ECC NMI enable
control
Reset Configuration
RESCFG
D72h
Programmable SDRAM retention reset
(PRGRESET pin enable)
Reset Status
RESSTA
D74h
Reset source status: PRGRESET pin
10-10
Function
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
SDRAM コントローラ
10.5
動作
ÉlanSC520マイクロコントローラは最大4つの32ビットSDRAMバンク、最大256Mバイトの容量をサ
ポートできます。この内蔵 S D R A M コントローラは、ほとんどの一般的なシンクロナス D R A M
( SDRAM )を直結できます。4つの全てのバンクを通して、違う構成が混在してもかまいません。
ÉlanSC520マイクロコントローラは広範囲なSDRAMデバイスを使用可能にするため、カラム・バウ
ンダリ・メソッドをサポートしています。カラム・バウンダリ・メソッドは、
デバイスのページ・サイズと構
成を決定するために、
デバイスのカラム・アドレス幅だけを必要とします。
デバイスの構成は、そのカラムとロウの数で決まります。
■ カラムとロウの数が同じ(スクエア・オーガニゼーション)デバイスを、対称型と呼びます。
■ ロウの数がカラムの数より大きい(レクタンギュラ・オーガニゼーション)ものを非対称型と呼び
ます。カラムの数がロウの数より大きいデバイスは存在しません。
ユーザはカラム・バウンダリ・メソッドにより、
8ビットから11ビットのカラム・アドレスを必要とする、16M
ビット、64Mビット、128Mビット、および 256MビットのSDRAM(内部構造2 バンク、4 バンクの両方
とも)をÉlanSC520マイクロコントローラで利用できます。
このような高速デバイスにおけるデータの正確さを向上する、SDRAMデバイスに対するエラー訂正
コード(ECC)もサポートしています。
10.5.1
SDRAMサポート
ÉlanSC520マイクロコントローラは、66MHzクロック (CLKMEMOUT) をSDRAMに対してドライブ
します。負荷の大きいシステムでは、
このクロックを外部クロック・ドライバでバッファします。クロッ
ク・スキューを制御するために、
リターン・クロック入力 (CLKMEMIN) を持っています。SDRAM の
クロックに関して詳しくは、
「10.3.2 SDRAMクロック」を参照してください。ÉlanSC520マイクロコ
ントローラは66MHzクロックを出力しますが、より速いクロックの SDRAM( 83MHz 、100MHz 、
125MHz等)を使用することもできます。
SDRAMコントローラは16Mビット、64Mビット、128Mビット、および256Mビット、内部構成2バンクま
たは4 バンクの SDRAMをサポートします。
■ 2Tまたは3TのCASレイテンシ( CL)オプションをサポートします。但し、T は33.333MHz水晶発
振子を使用した場合15ns です。
■ リードおよびシングル・ライト時のSDRAMデバイスのインターリーブ・バースト長は、4に固定しな
ければなりません。
SDRAMコンフィギュレーション・タイミング・オプションに関しては「 10.5.5 SDRAMコントロール設
定」を参照してください。
SDRAMコントローラは下記のソースからの読出し、書込み要求に応じます。
■ Am5x86 CPU
■ PCI マスタ
■ GP-DMA コントローラ
ECC リード・モディファイ・ライト・サイクル( ECC使用時に、ダブル・ワードより小さいSDRAM書込み
を行う為)を除き、
マスタが要求しているデータの量に関わらず、全てのSDRAM読出し要求は4サイ
クルのバースト・リードとして処理されます。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
10-11
SDRAM コントローラ
リード・モディファイ・ライト・サイクル中は、SDRAMバースト・リードは書込みサイクルによって早めに
中断されます。これはリード・バッファのリード・アヘッド機能がイネーブルであっても関係ありません。
リード・アヘッド機能はSDRAMからデータのプリフェッチを行うことで、読出し性能を向上させる為に
サポートされているものです。リード・バッファおよび関連するリード・アヘッド機能に関しては、
「 10.5.4 バッファリング」を参照してください。
SDRAMに対する書込み要求はマスタが書込もうとしているデータの量に関わらず、常に単一のデー
タ転送として実行されます。ライト・バッファがイネーブルの時は、
SDRAMに対する書込みは常にライ
ト・バッファが起動します。ライト・バッファは、
ライト・マージ、
ライト・コラプス、
およびリード・マージの機
能を持っています。ライト・バッファに関して詳しくは、
「 10.5.4 バッファリング」を参照してください。
10.5.2
SDRAM アドレッシング
ÉlanSC520マイクロコントローラは、4つのメモリ・バンクのうち1つをアクセスする際に、4つのチッ
プ・セレクト信号SCS3-SCS0のうち1つをアサートします。Table 10-7 は、SDRAMデバイスのため
のシステム・アドレスの機能としての、SDRAMメモリ・アドレスを示します。
システム・アドレスのメモリ・ロウおよびカラム・アドレスへのマッピングは、各バンクのカラム・アドレ
スの設定に影響されます。
■ ページ・ミスの時は、SDRAMアクセス中にロウ・アドレスとカラム・アドレスが出力されます。
■ ページ・ヒットの時は、SDRAMアクセス中にカラム・アドレスだけが出力されます。
Table 10-7 は、ÉlanSC520マイクロコントローラのアドレス・マッピングを示します。
Table 10-7
SDRAMデバイスのアドレス・マッピング
SDRAM (16 Mbit–256 Mbit)
SDRAM Configuration
Column Address
Width
8
9
10
11
Bank
Selection
MAx Pin Mapping
BA1
BA0
12
11
10
9
8
7
6
5
4
3
2
1
0
2-bank
Row
24
10
23
22
13
12
11
21
20
19
18
17
16
15
14
Column
24
10
PC
11
10
9
8
7
6
5
4
3
2
4-bank
Row
22
10
24
23
13
12
11
21
20
19
18
17
16
15
14
Column
22
10
2-bank
Row
25
11
24
23
Column
25
11
4-bank
Row
23
11
25
24
Column
23
11
2-bank
Row
26
12
25
24
Column
26
12
4-bank
Row
24
12
26
25
Column
24
12
PC
11
10
9
8
7
6
5
4
3
2
2-bank
Row
27
13
26
25
24
23
22
21
20
19
18
17
16
15
14
Column
27
13
12
PC
11
10
9
8
7
6
5
4
3
2
4-bank
Row
25
13
26
24
23
22
21
20
19
18
17
16
15
14
Column
25
13
12
PC
11
10
9
8
7
6
5
4
3
2
27
PC
11
10
9
8
7
6
5
4
3
2
13
12
22
21
20
19
18
17
16
15
14
PC
11
10
9
8
7
6
5
4
3
2
13
12
22
21
20
19
18
17
16
15
14
PC
11
10
9
8
7
6
5
4
3
2
13
23
22
21
20
19
18
17
16
15
14
PC
11
10
9
8
7
6
5
4
3
2
13
23
22
21
20
19
18
17
16
15
14
Notes: PC refers to SDRAM precharge signaling. BA1–BA0 are the SDRAM Bank Address signals.
10-12
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
SDRAM コントローラ
10.5.2.1
サポートするSDRAMデバイス
ÉlanSC520マイクロコントローラがサポートするSDRAMの構成を、Table 10-8 に示します。
(ロウ・
アドレスが11より小さいSDRAMはサポートしていないので、表には含まれていません。)
この表は、
カラム・バウンダリ・メソッドによってサポートできる、全てのデバイスの組み合せを示して
いますが、実際には製造されていないかもしれない構成も含みます。ご覧のとおり、
カラム・バウンダ
リ・メソッドによりユーザは、16Mビット、64Mビット、128Mビット、および256Mビット(内部構成2 バン
クまたは4 バンク)の、8ビットから11ビットのカラム・アドレスを持つSDRAMをÉlanSC520マイクロ
コントローラに使用することができます。BA1ピンにアドレスの最上位ビットをつなぐことによって、
14ビット(内部2バンク)のデバイスもサポートできます。
カラム幅がロウ幅を越すような不正な対称性を持つデバイスは Table 10-8 には含まれていません。
Table 10-8
カラム・バウンダリ仕様によってサポートされるSDRAM
Column
Width
Density
8-bit
16 Mbit
64 Mbit
Banks
2
MA/BA
Width
Bank
(32-Bit)
Device Architecture
4M x 4
2M x 4 x 2-banks
8
13:8
14-bit
16 Mbytes
2M x 8
1M x 8 x 2-banks
4
12:8
13-bit
8 Mbytes
1M x 16
512K x 16 x 2-banks
2
11:8
12-bit
4 Mbytes
4M x 4
1M x 4 x 4-banks
8
12:8
14-bit
16 Mbytes
2M x 8
512K x 8 x 4-banks
4
11:8
13-bit
8 Mbytes
2
8M x 8
4M x 8 x 2-banks
4
14:8
15-bit
32 Mbytes
4M x 16
2M x 16 x 2-banks
2
13:8
14-bit
16 Mbytes
2M x 32
1M x 32 x 2-banks
1
12:8
13-bit
8 Mbytes
8M x 8
2M x 8 x 4-banks
4
13:8
15-bit
32 Mbytes
4M x 16
1M x 16 x 4-banks
2
12:8
14-bit
16 Mbytes
2M x 32
512K x 32 x 4-banks
1
11:8
13-bit
8 Mbytes
8M x 16
4M x 16 x 2-banks
2
14:8
15-bit
32 Mbytes
4M x 32
2M x 32 x 2-banks
1
13:8
14-bit
16 Mbytes
8M x 16
2M x 16 x 4-banks
2
13:8
15-bit
32 Mbytes
4M x 32
1M x 32 x 4-banks
1
12:8
14-bit
16 Mbytes
2
4
256 Mbit
Dimension
Row: Col
Organization
4
4
128 Mbit
Device
Count
per Bank
2
8M x 32
4M x 32 x 2-banks
1
14:8
15-bit
32 Mbytes
4
8M x 32
2M x 32 x 4-banks
1
13:8
15-bit
32 Mbytes
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
10-13
SDRAM コントローラ
Table 10-8
カラム・バウンダリ仕様によってサポートされるSDRAM(続き)
Column
Width
Density
9-bit
16 Mbit
64 Mbit
Banks
16 Mbytes
2M x 4 x 2-banks
8
12:9
13-bit
2M x 8
1M x 8 x 2-banks
4
11:9
12-bit
8 Mbytes
4
4M x 4
1M x 4 x 4-banks
8
11:9
13-bit
16 Mbytes
2
16M x 4
8M x 4 x 2-banks
8
14:9
15-bit
64 Mbytes
8M x 8
4M x 8 x 2-banks
4
13:9
14-bit
32 Mbytes
4M x 16
2M x 16 x 2-banks
2
12:9
13-bit
16 Mbytes
2M x 32
1M x 32 x 2-banks
1
11:9
12-bit
8 Mbytes
16M x 4
4M x 4 x 4-banks
8
13:9
15-bit
64 Mbytes
8M x 8
2M x 8 x 4-banks
4
12:9
14-bit
32 Mbytes
4M x 16
1M x 16 x 4-banks
2
11:9
13-bit
16 Mbytes
2
2
16M x 8
8M x 8 x 2-banks
4
14:9
15-bit
64 Mbytes
8M x 16
4M x 16 x 2-banks
2
13:9
14-bit
32 Mbytes
4M x 32
2M x 32 x 2-banks
1
12:9
13-bit
16 Mbytes
16M x 8
4M x 8 x 4-banks
4
13:9
15-bit
64 Mbytes
8M x 16
2M x 16 x 4-banks
2
12:9
14-bit
32 Mbytes
4M x 32
1M x 32 x 4-banks
1
11:9
13-bit
16 Mbytes
16M x 16
8M x 16 x 2-banks
2
14:9
15-bit
64 Mbytes
8M x 32
4M x 32 x 2-banks
1
13:9
14-bit
32 Mbytes
16M x 16
4M x 16 x 4-banks
2
13:9
15-bit
64 Mbytes
8M x 32
2M x 32 x 4-banks
1
12:9
14-bit
32 Mbytes
16 Mbit
2
4M x 4
2M x 4 x 2-banks
8
11:10
12-bit
16 Mbytes
64 Mbit
2
16M x 4
8M x 4 x 2-banks
8
13:10
14-bit
64 Mbytes
8M x 8
4M x 8 x 2-banks
4
12:10
13-bit
32 Mbytes
4M x 16
2M x 16 x 2-banks
2
11:10
12-bit
16 Mbytes
16M x 4
4M x 4 x 4-banks
8
12:10
14-bit
64 Mbytes
8M x 8
2M x 8 x 4-banks
4
11:10
13-bit
32 Mbytes
32M x 4
16M x 4 x 2-banks
8
14:10
15-bit
128 Mbytes
16M x 8
8M x 8 x 2-banks
4
13:10
14-bit
64 Mbytes
8M x 16
4M x 16 x 2-banks
2
12:10
13-bit
32 Mbytes
4M x 32
2M x 32 x 2-banks
1
11:10
12-bit
16 Mbytes
32M x 4
8M x 4 x 4-banks
8
13:10
15-bit
128 Mbytes
16M x 8
4M x 8 x 4-banks
4
12:10
14-bit
64 Mbytes
8M x 16
2M x 16 x 4-banks
2
11:10
13-bit
32 Mbytes
32M x 8
16M x 8 x 2-banks
4
14:10
15-bit
128 Mbytes
4
128 Mbit
2
4
256 Mbit
2
4
10-14
Bank
(32-Bit)
4M x 4
2
4
10-bit
MA/BA
Width
Device Architecture
4
256 Mbit
Dimension
Row: Col
Organization
4
128 Mbit
Device
Count
per Bank
16M x 16
8M x 16 x 2-banks
2
13:10
14-bit
64 Mbytes
8M x 32
4M x 32 x 2-banks
1
12:10
13-bit
32 Mbytes
128 Mbytes
32M x 8
8M x 8 x 4-banks
4
13:10
15-bit
16M x 16
4M x 16 x 4-banks
2
12:10
14-bit
64 Mbytes
8M x 32
2M x 32 x 4-banks
1
11:10
13-bit
32 Mbytes
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
SDRAM コントローラ
Table 10-8
カラム・バウンダリ仕様によってサポートされるSDRAM(続き)
Column
Width
Density
11-bit
Banks
64 Mbit
128 Mbit
Dimension
Row: Col
MA/BA
Width
Bank
(32-Bit)
Organization
Device Architecture
16M x 4
8M x 4 x 2-banks
8
12:11
13-bit
64 Mbytes
8M x 8
4M x 8 x 2-banks
4
11:11
12-bit
32 Mbytes
4
16M x 4
4M x 4 x 4-banks
8
11:11
13-bit
64 Mbytes
2
32M x 4
16M x 4 x 2-banks
8
13:11
14-bit
128 Mbytes
16M x 8
8M x 8 x 2-banks
4
12:11
13-bit
64 Mbytes
8M x 16
4M x 16 x 2-banks
2
11:11
12-bit
32 Mbytes
32M x 4
8M x 4 x 4-banks
8
12:11
14-bit
128 Mbytes
16M x 8
4M x 8 x 4-banks
4
11:11
13-bit
64 Mbytes
64M x 4
32M x 4 x 2-banks
8
14:11
15-bit
256 Mbytes
128 Mbytes
2
4
256 Mbit
Device
Count
per Bank
2
4
32M x 8
16M x 8 x 2-banks
4
13:11
14-bit
16M x 16
8M x 16 x 2-banks
2
12:11
13-bit
64 Mbytes
8M x 32
4M x 32 x 2-banks
1
11:11
12-bit
32 Mbytes
64M x 4
16M x 4 x 4-banks
8
13:11
15-bit
256 Mbytes
32M x 8
8M x 8 x 4-banks
4
12:11
14-bit
128 Mbytes
16M x 16
4M x 16 x 4-banks
2
11:11
13-bit
64 Mbytes
SDRAM Bank Configuration (DRCCFG) レジスタ (MMCR offset 14h) の (BNKx_BNK_CNT
ビットは内部バンクの数を設定し、
BNKx_COLWDTH フィールドはカラム・アドレス幅を設定します。
Table 10-9 に、デバイス・カラム・アドレス幅と内部バンク数毎の、
これらのビット・フィールドの設定
例を示します。
Table 10-9
SDRAMのカラム・アドレス・コンフィギュレーション設定
Banks
Internal Bank Count
(BNKx_BNK_CNT)
Bank Column Address
(BNKx_COLWDTH)
2
0b
00b
4
1b
00b
9-bit
2
0b
01b
4
1b
01b
10-bit
2
0b
10b
4
1b
10b
11-bit
2
0b
11b
4
1b
11b
Column Width
8-bit
例えば、2M x 8 x 4バンク( 8M バイト x 8 )でロウ4096、
カラム512(9ビット)のデバイスをSDRAM
バンク2に使用する場合、Table 10-9 によればこのデバイスに対する適切な設定は、SDRAM Bank
Configuration (DRCCFG) レジスタのBNK2_BNK_CNTビットが1b、BNK2_COLWDTH フィール
ドが01bになります。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
10-15
SDRAM コントローラ
10.5.2.2
ページ・サイズ
SDRAMのページ・サイズは、そのデバイスのカラム・アドレス幅に基づきます。ÉlanSC520マイクロ
コントローラのアドレス・マッピングは、デバイスのカラム・アドレス幅を設定することにより、全ての
カラム・アドレス幅毎のページ・サイズを示し
ページにわたって有効に機能します。Table 10-10 は、
ます。ページ・サイズは、SDRAMの個々のバンクに適応されます。
Table 10-10 SDRAMのページ・サイズ
10.5.3
Column Width
Page Size for 32-Bit Banks
8-bit
1 Kbyte
9-bit
2 Kbytes
10-bit
4 Kbytes
11-bit
8 Kbytes
エラー訂正コード( ECC )
ÉlanSC520マイクロコントローラは、システムSDRAMの転送の正確さをチェックするためのエラー
訂正コード(ECC)をサポートしています。ECCは改良ハミング・コードを用います。シングル・ビット
のエラーを訂正し、2ビット(マルチ・ビットと呼ばれる)のエラーを検出します。ECCを利用するため
には、
メモリ・アレイはチェック・ビットを持たなければなりません。
ECCを使用する際には、
システム・メモリは初期化されていなければなりません。この手順では、
ブー
ト・コードが全てのメモリに書込みを行い、
自動的に有効なECCが生成されSDRAMのチェック・ビット
に格納されます。この手順を実行していないと、
32ビット・ダブル・ワードより小さいデータの書込み、
または初期化されていないデータの読出し時にエラーが発生します。
ECC回路は改良ハミング・コードを用い、32ビットのデータ・ワードに対し7ビットのチェック・ワードを
生成します。このチェック・ワードはデータ・ワードとともに、
メモリ書込みサイクル中に格納されます。
メモリ読出しサイクルでは、39ビット・ワードをメモリから読出し、ECC回路によって書込みまたは読出
し時にエラーが起こっていないかどうかを調べます。
32ビットのデータ・ワードかまたはチェック・ビットの中に1ビットのエラーを検出すると、ECC回路はエ
ラーのフラグを立て、エラーを起こしたアドレスとビット位置を記憶し、
データを要求したマスタに対
しては訂正を施したデータを返します。訂正したデータをSDRAMに書き戻すことはしません。1ビッ
トのエラーを検出するとマスク可能割込みを発生します。1ビットのエラーが7ビットのチェック・ワー
ド内であってもマスク可能割込みを発生します。
マルチ・ビットのエラーを検出した場合、ECC回路はやはりエラーのフラグを立てますが訂正はしま
せん。これらのエラーは39ビットのどの位置( 32ビット・データ・ワード中に2つ、7ビットチェック・ワー
ド中に2つ、
あるいはそれぞれ1つずつ)であっても検出します。マルチ・ビットのエラーを検出すると、
別のマスク不可割込みを発生します。
これら2つの割込みは、
プログラマブル・インタラプト・コントローラの割込み回送ロジックにつながっ
ています。詳細やオプションについては、第15章「プログラマブル・インタラプト・コントローラ」を参
照してください。
4バイトより小さいサイズのデータを書込む場合、ECCにより性能の低下を余儀なくされます。7ビッ
トのチェック・ワードは、全てのフィールドのデータに対して生成されます。言換えれば、
チェック・ビッ
トを作るためには、4バイト全てのデータが必要であるということです。もし4バイトのうち1つでも変
更されたならば、古いチェック・ビットはもはや正しくありません。
10-16
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
SDRAM コントローラ
これを防ぐために、1 バイトをSDRAMに書込もうとした場合(4 バイトより小さければ何バイトでも同
様)、ECCはまず4 バイト全てを読出しシングルまたはマルチ・ビットのエラー検出を行い、
必要なバイ
ト位置を書換えた後4 バイトに対してチェック・ワードを生成します。そして最後にECCワード全てが
メモリに書戻されます。この際、
もしエラーを検出したなら、
対応する割込みを発生してエラーを訂正
(シングル・ビットの場合)
します。この手順をリード・モディファイ・ライト動作と呼びます。もし全ダブ
ル・ワードが書込まれる場合、
リード・モディファイ・ライト・サイクルの必要はありません。また、書込み
保護された領域に対するダブル・ワードの部分的書込みに対してもリード・モディファイ・ライト・サイク
ルを行いません。
ECCを使用する場合7ビットのチェック・ビットが各SDRAM バンクに対して必要になるので、168ピン
SDRAM DIMM(72ビット、64ビット・データ・ワード+8ビット・チェック・ワード)を使用することはできませ
ん。1つの168ピンDIMMを2つのバンクに対して使用した場合、
チェック・ビットが足りなくなるのでECC
を使用することはできません。この場合、
チェック・ビット用のSDRAMを追加しなければなりません。
ECCシングル・ビットやマルチ・ビット・エラーを処理するソフトウエアの開発を助けるために、ECC
Check Code Test (ECCCKTEST) レジスタ (MMCR offset 23h) を設けています。書込みに際し
このレジスタに設定したチェック・コードが、ECCが自動的に生成するチェック・コードの代わりに書込
まれます。
10.5.4
バッファリング
ÉlanSC520マイクロコントローラはメモリ・システムの性能を向上するため、2つのバッファリング技
術を持っています。それはライト・バッファとリード・バッファです。
ライト・バッファをイネーブルすると、
マスタの書込み動作を効果的にSDRAMのレイテンシから切離す
ことができます。この効果はさらに、
全てのマスタからの読出し要求へのSDRAMの応答性も高めます。
また、
ライト・バッファはライト・マージ、
ライト・コラプス機能を持っており、FIFOを効果的に使用して
SDRAMに対するトランザクションの回数を減らします。リード・マージ機能は、読出しアクセスの前にラ
イト・バッファをフラッシュする必要性を無くし、
データ・コヒーレンシによるオーバヘッドを減らします。
読出し要求時、
ライト・バッファはSDRAMよりも新しいデータを保持しているので、
ライト・バッファ内の
データがSDRAMからのデータにマージされ、
ライト・バッファをフラッシュする必要がなくなります。
ÉlanSC520マイクロコントローラはライト・バッファをイネーブルしている場合、
リード・アラウンド・ラ
イト機能をサポートします。ライト・バッファをイネーブルしている場合、SDRAMコントローラのアー
ビタは読出し動作を優先させ、書込みはライト・バッファにポストします。これは、マスタに対する読出
し性能を良くするためです。
リード・バッファはSDRAMから返される読み込みデータを格納するための2キャッシュライン(全32バ
イト)分の格納領域を持っています。リード・バッファ内のデータを読みだす場合マスタはウエイト・ス
テート無しでアクセスできます。マスタが必要としているデータの大きさに関わらず、
SDRAMコント
ローラは常に1キャッシュ・ライン全体分を読出し、
リード・バッファに格納します。例えば、バーストし
ないマスタからの読出し要求の場合(すなわち、
単一のダブル・ワード要求)、SDRAMコントローラは
1キャッシュ・ライン分、全てをSDRAMから読出し、
リード・バッファに格納します。
リード・バッファのリード・アヘッド機能がイネーブルされている場合、要求されたキャッシュ・ラインの
次のキャッシュ・ラインまでプリフェッチします。これは、次のキャッシュ・ラインまで必要になることを
見越した動作です。リード・アヘッド機能は、
Am5x86 CPUや外部PCIマスタのバースト・リード要求に
対する性能を高めます。リード・プリフェッチは、2つ以上のダブル・ワードのリード・バースト転送要求
に対してのみ起動します。単一のダブル・ワード読出し要求に対しては次のキャッシュ・ラインのプリ
フェッチは行わず、要求されたデータがあるキャッシュ・ラインだけをリード・バッファに取込みます。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
10-17
SDRAM コントローラ
GP-DMA読出しアクセスはつねに単一ワードのアクセスです。
リード・バッファは常にイネーブルされていますが、
リード・アヘッド機能とライト・バッファは、
システム
またはプログラマブル・リセット後ディセーブルされますので、個々にイネーブルしなければなりませ
ん。SDRAMコントローラのバッファリングに関してのさらに詳しい説明は、第11章「ライト・バッファ
とリード・バッファ」を参照してください。
10.5.5
SDRAMコントロール設定
SDRAMコントローラは以下の制御機能を提供します。
■ リフレッシュ・レート
■ リフレッシュ・イネーブル
■ SDRAMピン出力強度
■ ライト・バッファ・テスト・モード
■ 動作モード選択
10.5.5.1
リフレッシュ・コントロール
SDRAMデバイスをリフレッシュするため、SDRAMコントローラは自動リフレッシュ・コマンドを発行
します。ÉlanSC520マイクロコントローラは様々な製造元のデバイスをサポートするように設計され
ているので、
このコマンドが発行されたときのリフレッシュ・レートは設定可能なパラメータです。そ
れは SDRAM Control (DRCCTL)レジスタ (MMCR offset 10h) のDRAM Refresh Request Speed
(RFSH_SPD) ビット・フィルドで、7.8 μs、15.6μs、31.2μs、または62.5μsに設定できます。
注意:最低のリフレッシュ・レートは62.5μsで、
アクティブ・コマンドとプリチャージ・コマンド
(TRAS)間の最大値より小さ
いので、SDRAMコントローラはRASタイム・アウト機能を持っていません。
リフレッシュ・レートは次の式で計算されます。
リフレッシュ・レート = インターバル/ロウ
但し
インターバルとは特定のロウがリフレッシュされなければならない頻度。
ロウとはデバイスが持つロウの数。
Table 10-11 は、SDRAMのリフレッシュ・レートと、対応するインターバルを示します。SDRAMデバ
イスは2つか4つの内部バンクを持っています。各リフレッシュ・サイクル中、全ての内部バンクは同時
にリフレッシュされます。つまり、2バンク構造ではデュアル・ロウ・リフレッシュを、4バンク構造ではク
ワッド・ロウ・リフレッシュを行うことを意味します。
Table 10-11 SDRAMのリフレッシュ・レート
10-18
Refresh Rate
Number of
Rows
7.8 µs
15.6 µs
31.2 µs
62.5 µs
256
2 ms
4 ms
8 ms
16 ms
512
4 ms
8 ms
16 ms
32 ms
1024
8 ms
16 ms
32 ms
64 ms
2048
16 ms
32 ms
64 ms
128 ms
4096
32 ms
64 ms
128 ms
8192
64 ms
128 ms
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
SDRAM コントローラ
例えば、2M x 8 x 4 バンク (8Mb x 8)、4096ロウ、512カラムで、
64msリフレッシュ・インターバルの
SDRAMを使用する場合、Table 10-11 によるとリフレッシュ・レートは15.6μsになります。
SDRAMリフレッシュ期間中は、すべてのイネーブルされたバンクは自動リフレッシュ・コマンドを受け
ます。
しかし、
SDRAMデバイスはリフレッシュ・サイクル中多めに電流を消費しますので、同時に複数のバン
クをリフレッシュする場合大量に電流を消費することになります。これを防ぐために、SDRAMコント
ローラは、1時期に1バンクしかリフレッシュしないように分散します。これによって1クロック期間中に
は1つのバンクしかリフレッシュされません。この方法はリフレッシュ・サイクルに若干多めの時間がか
かりますが、SDRAMの大量電流消費によるサージを防ぎます。Figure 10-12 に、SDRAMの分散さ
れたリフレッシュ・サイクルを示します。
SDRAMリフレッシュ・サイクルは、SDRAM動作モード選択がノーマル SDRAMモードのときのみイ
ネーブルされていなければなりません。Refresh Enable (RFSH_ENB) ビットは、SDRAM Control
(DRCCTL) レジスタ (MMCR offset 10h) の中にあります。
10.5.5.2
出力強度の選択
ÉlanSC520マイクロコントローラは、様々なシステム・デザインの違ったSDRAMデバイスの負荷に
対応するため、
アドレス、データおよび制御信号の出力強度を選択的に変更することができます。
出力強度を選択できるピンは、以下のものがあります。
■ MA12-MA0 (メモリ・アドレス)
■ BA1-BA0 (バンク・アドレス)
■ MD31-MD0 (メモリ・データ)
■ MECC6-MECC0 (ECC データ)
■ SCS3-SCS0
■ SDQM3-SDQM0
■ SCASA-SCASB
■ SRASA-SRASB
■ SWEA-SWEB
SCS3 - SCS0の例外を除き、
これらのピンは12mA 、18mA 、
または24mA の電流を出力できます。
SCS3-SCS0は12mAまたは18mAです。
SDRAMインタフェースの出力強度は、Drive Strength Control (DSCTL) レジスタ (MMCR offset
C28h) で設定します。詳しくは、ÉlanSC520 Microcontroller Register Set Manual, order #22005
の Programmable I/O section を参照してください。
10.5.5.3
ライト・バッファ・テスト・モード
ÉlanSC520マイクロコントローラは、マスタの情報を提供するCF_ROM_GPCS、DATASTRB、およ
ライト・バッファのテスト・モードをサポートしています。
び CF_DRAMピンに多重化された機能として、
これらの3つのピンをWBMSTR2-WBMSTR0として使用する場合、Am5x86 CPU、
PCIバス・マスタ、
GP-DMAのいずれか、または組み合せ(ライト・バッファが複数のデータ書込みを畳み込んだり、つな
いだりするため)で、現在SDRAMに書込み処理中のライト・バッファがどのマスタからの書込みによ
るものかを示します。このオプションは、SDRAM Control (DRCCTL) レジスタ (MMCR offset 10h)
のWB_TST_ENBビットによって設定します。これらのピンの使い方に関しては、
第24章「システム・テ
ストとデバッギング」を参照してください。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
10-19
SDRAM コントローラ
10.5.5.4
動作モード選択
ÉlanSC520マイクロコントローラは、SDRAM Control (DRCCTL) レジスタ (MMCR offset 10h)
にSDRAM Operation Mode Select (OPMODE_SEL) ビット・フィールドを持っています。このフィー
ルドはSDRAMコントローラの動作モードを選択するために使用します。
■ デフォルトの動作モードはノーマルSDRAMモードです。このモードでは、
データ・アクセスに際し
SDRAMコントローラを設定しなければなりません。
■ NOP 、全バンク・プリチャージ、ロード・モード・レジスタ、および自動リフレッシュ・コマンドは
OPMODE_SELビット・フィールドで設定できますが、主にSDRAMデバイスの初期化時に使用さ
れます。
NOP、全バンク・プリチャージ、ロード・モード・レジスタ、および自動リフレッシュ・コマンドを設定する
場合、Am5x86 CPUがSDRAMにアクセス(読出し/書込みサイクルいずれか)を行うまで、実際には
SDRAMデバイスには適応されません。
もしこのタイプのサイクルを生成するAm5x86 CPUサイクルが書込みサイクルの場合、
NOP、全バン
ク・プリチャージ、ロード・モード・レジスタ、
または自動リフレッシュOPMODE_SELビット・フィールド
を利用する前に、
ライト・バッファはディセーブルしておかなければなりません。
バンク構成の変更を行う前に、全バンク・プリチャージ・コマンドを実行しなければなりません。これに
よりSDRAMデバイスはアイドル状態になり、
SDRAMコントローラのページ・テーブルの内容はクリア
されます。
詳しくは「 10.6.2 SDRAMデバイスの初期化」を参照してください。
10.5.6
SDRAMタイミング設定
ÉlanSC520マイクロコントローラはSDRAMデバイスに対して個別のタイミング設定を行うことがで
きます。下記のタイミングは設定可能です。
■ CAS レイテンシ (CL)
■ RAS プリチャージ (TRP)
■ RAS-to-CAS ディレイ (TRCD)
■ RAS-to-RAS または auto-refresh-to-RAS (TRC)
ライト・リカバリ・タイム(TWR)パラメタは2T(Tは33.333MHz水晶発振子使用時15nsを表す)に固定
されているので注意してください。
10.5.6.1
CAS レイテンシ (CL)
SDRAMデバイスのCAS レイテンシ (CL) は、
リード・コマンドが発行されてから、最初の読出しデー
タが返されるまでのクロック数を示します。このディレイの後、後続のクロック毎に読出しデータが返
されます。
ÉlanSC520マイクロコントローラは、CAS レイテンシを2Tまたは3T(Tは33.333MHz水晶発振子使
用時15nsを表す)に設定できます。SDRAMの中にはやや高速な特性を持ったものがありますので、
このパラメータは設定オプションです。SDRAM Timing Control (DRCTMCTL) レジスタ (MMCR
offset 12h) のCAS_LATによって設定します。
CLパラメータはロード・モード・レジスタのコマンドによってデバイスにプログラムされます。詳しくは
「 10.6.2 SDRAMデバイスの初期化」を参照してください。
10-20
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
SDRAM コントローラ
10.5.6.2
RAS プリチャージ (TRP)
SDRAMデバイスのRAS プリチャージ (TRP) パラメータは、プリチャージ・コマンドの後、同じバンク
に対してコマンドを発行する際どれくらい時間を空けなければならないかを示します。T RP の後、
SDRAMはアイドル状態になります。TRPは製造元やスピード・グレードによって違います。ÉlanSC520
マイクロコントローラは66MHzのSDRAMクロックを出力しますが、より高速なデバイス( 83MHz、
100MHz、125MHz等)を使用することもできます。
ÉlanSC520マイクロコントローラは様々な製造元やスピード・グレードをサポートしますので、TRPは
2T、3T、4T、または6T( Tは33.333MHz 水晶発振子使用時15nsを表す)に設定可能です。SDRAM
Timing Control (DRCTMCTL) レジスタ (MMCR offset 12h) のRAS_PCHG_DLYフィールドで設
定します。
10.5.6.3
RAS-to-CAS ディレイ (TRCD)
SDRAMデバイスのRAS-to-CAS ディレイ・パラメータ (TRCD) は、アクティブ・コマンドの発行から、
リードまたはライト・コマンドの発行までの時間を示します。
ÉlanSC520マイクロコントローラは様々な製造元やスピード・グレードをサポートしますので、TRCD
は2T 、3T 、または4T( T は33.333MHz 水晶発振子使用時 15ns を表す)に設定可能です。最近の
SDRAMデバイスは、最小30nsのTRCDを必要とし、高負荷の状況下では2Tの設定では要件を満たさ
ない場合があります。このパラメータはSDRAM Timing Control (DRCTMCTL) レジスタ (MMCR
offset 12h) のRAS_CAS_DLYフィールドで行います。
10.5.6.4
RAS-to-RAS または auto-refresh-to-RAS (TRC)
SDRAMデバイスのRAS-to-RAS または auto-refresh-to-RAS (TRC) パラメータは、同じ内部バン
クに対するアクティブ・コマンドから次のアクティブ・コマンドまでに必要な時間を示します。このパラ
メータは、
自動リフレッシュ・コマンドからアクティブ・コマンドまでに必要な時間にも適応されます。
このパラメータは、TRCDおよび TRPの関数なので、ÉlanSC520マイクロコントローラは TRCを設定す
ることはできません。同一内部バンクの別々のロウに対する2つのアクセスは、各アクセスにアクティ
ブ・コマンドが発行され、2番目のアクセスの前にはプリチャージ・バンク・コマンドでプリチャージされ
ます。2番目のアクセスの前にプリチャージ・バンク・コマンドが入るので、TRCDと TRPの合計が TRC
を満たすように設定することで実現します。
アクティブ・コマンドから次のアクティブ・コマンドまでに必要な、
最小の TRCは次の式で計算できます。
TRC = TRCD (クロック数での設定値) + TRP (クロック数での設定値) + 2T (Tは33.333MHz
水晶発振子使用時15nsを表す)
TRCDに2Tを設定した場合、最小5TのTRASを満たすために、TRC式には1Tが加算されます。
TRCは、自動リフレッシュ・コマンドからアクティブ・コマンドまでに必要な時間にも適応されます。この
ためÉlanSC520マイクロコントローラは、
分散リフレッシュ・シーケンスの最後の自動リフレッシュ・コ
マンドの後に、
強制的に固定の9Tタイミング(Tは33.333MHz水晶発振子使用時15nsを表す)を挿入
します。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
10-21
SDRAM コントローラ
10.5.6.5 最小RAS (TRAS)
SDRAMデバイスの最小 RAS パラメータは、ロウ・アドレスがアクティブでなければならない最小時
間を示します。これは同一内部バンクに対するアクティブ・コマンドからプリチャージ・コマンドまでの
時間です。TRASと表記します。
ÉlanSC520マイクロコントローラは単一の書込みサイクルを行いますので、最小のTRASは書込みサ
イクル中に起こります。TRASはTRCDの関数であり、次の式で計算できます。
TRAS = TRCD (クロック数での設定値) + 2T (Tは33.333MHz水晶発振子使用時15nsを表す)
TRCDに2Tを設定した場合、TRASは最小の 5Tになります。
10.5.7
バス・サイクル
10.5.7.1
SDRAMバースト読出しサイクル
Figure 10-7 に示すとおり、ÉlanSC520マイクロコントローラは読出しの場合、常に最大4ダブル・ワー
ドのバーストを行います。SDRAMに対するバースト読出しは、以下の要因によって発生します。
■ Am5x86 CPU 読出し
■ リード・バッファのリード・アヘッド・プリフェッチ
■ ÉlanSC520マイクロコントローラがターゲットとしてPCIバースト・サイクルに応答
■ GP-DMA
Figure 10-7
SDRAMバースト読出しサイクル(リード・アヘッド・フィーチャーがディセーブル)
(ページミス/ページヒット)
clk_cpu
ads
x5_abus
0
4
8
10
C
blast
x5_data_in
a
b
c
e
d
brdy
pghit
clk_mem
MA12–MA0,
BA1–BA0
Command
MD31–MD0
Bnk
Row
Col
Col
Pre
Act
Rd
Rd
CAS latency = 2
a b c d
CAS latency = 2
e
Notes:
This timing diagram does not account for resynchronization of SDRAM signals with CLKMEMIN.
10-22
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
SDRAM コントローラ
10.5.7.2
SDRAM書込みサイクル
ライト・バッファがイネーブルの場合、SDRAMに対する書込みは全てライト・バッファが行います。ライ
ト・バッファがディセーブルの場合、SDRAM書込みサイクルは以下の要因によって発生します。
■ Am5x86 CPU
■ ÉlanSC520マイクロコントローラがターゲットとしてPCIバースト・サイクルに応答
■ GP-DMA
全ての書込みは、各書込みが独立して発生する単一書込みモードで行われます。Am5x86 CPUのノ
ン・バースト書込みを Figure 10-8 に示します。Am5x86 CPUのバースト書込みサイクルを Figure
10-9 に示します。
Figure 10-8
SDRAM書込みサイクル(ライト・バッファとECCがディセーブル)(ページミス/ページヒット)
clk_cpu
ads
x5_abus
0
4
8
blast
x5_data_out
a
b
c
brdy
pghit
clk_mem
MA12–MA0,
BA1–BA0
Bnk
Row
Col
Col
Col
Command
Pre
Act
Wr
Wr
Wr
a
b
c
MD31–MD0
Notes:
This timing diagram does not account for resynchronization of SDRAM signals with CLKMEMIN.
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
10-23
SDRAM コントローラ
Figure 10-9
SDRAM CPUのバースト書込みサイクル(ライト・バッファとECCがディセーブル)(ページミス/ページ
ヒット)
clk_cpu
ads
x5_abus
0
4
8
C
c
d
10
blast
x5_data_out
a
b
1a
brdy
pghit
clk_mem
MA12–MA0,
BA1–BA0
Bnk
Row
Col
Col
Col
Col
Command
Pre
Act
Wr
Wr
Wr
Wr
a
b
c
d
MD31–MD0
Notes:
This timing diagram does not account for resynchronization of SDRAM signals with CLKMEMIN.
10.5.7.3
10-24
ECC SDRAMサイクル
ECCがイネーブルされている場合、ECCロジックのディレイと部分的なダブル・ワード書込みによる
リード・モディファイ・ライト・サイクルによって、
オーバヘッドが加算されることがあります。SDRAMに
対する全ダブル・ワードの書込みが、一番オーバヘッドが少ないアクセスです。しかしながら読出しア
クセスの場合、
ECCは新しいチェック・ビットを生成してエラーを調べ、もしエラーであれば割込みを
発生しなければなりません。ECCを使用中は1CPUクロックのディレイがSDRAM読出しに加わりま
す。ページ・ヒットのバーストタイミングは、ECCを使用中は 4-1-1-1( CL=2 の時)、使用しなければ
3-1-1-1( CL=2 の時)です。ECCを使用した読出しサイクルを Figure 10-10 に示します。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
SDRAM コントローラ
Figure 10-10 ECCを使用したSDRAMバースト読出しサイクル
clk_cpu
ads
x5_abus
0
4
x5_data_in
a
b
8
c
C
d
brdy
pghit
clk_mem
Col
MA12–MA0,
BA1–BA0
Rd
Command
CAS latency = 2
a
b
c
MD31–MD0
d
MECC6–
MECC0
Notes:
This timing diagram does not account for resynchronization of SDRAM signals with CLKMEMIN.
Figure 10-11 に示すとおり、
リード・モディファイ・ライト・サイクルの場合、ECC のオーバヘッドはさ
らに大きくなります。部分的なダブル・ワード書込みは、書込みの前にSDRAM読出しを行います。
SDRAMバースト読出しは、書込みサイクルによって途中で中断されることに注意してください。リー
ド・モディファイ・ライト・サイクルに関して詳しくは、
「 10.5.3 エラー訂正コード(ECC)」を参照してく
ださい。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
10-25
SDRAM コントローラ
Figure 10-11 ECCを使用した(ページヒット)、SDRAMリード・モディファイ・ライト・サイクル
clk_cpu
ads
w/r
x5_abus
1011
be3–be0
00AB0000
x5_data_out
brdy
pghit
clk_mem
MA12–MA0,
BA1–BA0
Col
Col
Command
Rd
Wr
CAS latency = 2
a
MD31–MD0
a2
a
MECC6–MECC0
Notes:
1. This timing diagram does not account for resynchronization of SDRAM signals with CLKMEMIN.
2. Contents modified with the active bytes in the write word (00AB0000).
10.5.7.4
SDRAM自動リフレッシュ・サイクル
SDRAMがノーマル動作中は、Figure 10-12 に示すEDO DRAMのCAS-before-RAS リフレッシュ
に似た自動リフレッシュを行います。このコマンドは持続しませんので、
リフレッシュが必要になるた
びに発行しなければなりません。内部バンクは自動リフレッシュ・コマンドを実行する前に、最小プリ
チャージ時間(TRP)の間プリチャージしなければなりません。リフレッシュ・サイクルの終了後、
全ての
バンクはプリチャージされた(アイドル)状態になります。この図は、
「 10.5.5.1 リフレッシュ・コント
ロール」に解説する、分散リフレッシュ・サイクルを示します。
メモリ・コントローラのプログラマブル・リセットの目的は、
リセット中SDRAMの状態を保持すること
です。これによりリセット中もSDRAMのリフレッシュを行う事ができます。詳しくは、第6章「リセット
の生成」を参照してください。
10-26
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
SDRAM コントローラ
Figure 10-12 SDRAM自動リフレッシュ・サイクル
CLKMEMOUT
SCS0
SCS1
SCS2
SCS3
MA12–MA0,
BA1–BA0
All Bnk.
Command
10.5.7.5
Pre.
Nop
Auto Ref.
Auto Ref.
Auto Ref.
Auto Ref.
SDRAMモード・レジスタ・アクセス
SDRAMデバイスが持つモード・レジスタは、SDRAMの動作モードを設定するために使用します。こ
の設定は、バースト長、バースト・タイプ、CAS レイテンシ、動作モード、
およびライト・バーストを含み
ます。Figure 10-13 にSDRAMロード・モード・コマンドを示します。モード・レジスタの設定に関して
は、
「 10.6.2 SDRAMデバイスの初期化」を参照してください。
Figure 10-13 SDRAMモード・レジスタ・アクセス
CLKMEMOUT
MA12–MA0,
BA1–BA0
Command
10.5.8
Code
Auto Ref.
Load Mode
Row
Act
割込み
SDRAMコントローラには、
シングル・ビット・エラーの検出訂正と、
マルチ・ビット・エラーの検出を行
うエラー訂正コード回路があります。
シングル・ビット・エラーの検出と、
マルチ・ビット・エラーの検出にはそれぞれ別の割込みを発生する
ことができます。これら2つの割込みは、SDRAMコントローラからÉlanSC520マイクロコントローラ
のプログラマブル・インタラプト・コントローラ(PIC)に接続されます。
■ これら2 つの割込みは、ECC Control (ECCCTL) レジスタ (MMCR offset 20h) の
MULT_INT_ENB および SGL_INT_ENB によって個々にイネーブルできます。
■ 割込み信号は、ECC Status (ECCSTA) レジスタ (MMCR offset 21h) のMBIT_ERR および
SBIT_ERR ステータス・ビットに、書込みを行うまでPICに対してアサートされたままです。この
書込みは通常対応する割込みハンドラで行います。
注意:マルチ・ビット・エラー割込みがイネーブルの場合、常にマスク不可割込み(NMI)が発生します。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
10-27
SDRAM コントローラ
10.5.9
ソフトウエアの考察
10.5.9.1
ECC エラー
SDRAMコントローラのECCロジックは、SDRAMアクセスに対するシングル・ビット・エラーとマルチ・
ビット・エラーを検出することができます。
■ シングル・ビット・エラーを検出した場合、
マスク可能割込みを発生します。この割込みの取り扱い
に関しては、第15章「プログラマブル・インタラプト・コントローラ」を参照してください。
■ マルチ・ビット・エラーを検出した場合、マスク不可割込み( NMI )が発生します。
割込みハンドラは、
どちらの割込みかによって、
ECC Status (ECCSTA) レジスタ (MMCR offset 21h)
を読み、
シングル・ビット・エラー (SBIT_ERR) か、マルチ・ビット・エラー (MBIT_ERR) か調べます。
どちらのエラーの場合でも、エラーが発生した物理アドレスが ECC Single-Bit Error Address
(ECCSBADD) レジスタ (MMCR offset 24h) または ECC Multi-Bit Error Address (ECCMBADD)
レジスタ (MMCR offset 28h) にそれぞれ取込まれます。シングル・ビット・エラーの場合、エラーに
なったデータ・ビットの位置がエンコードされたかたちで ECC Check Bit Position (ECCCKBPOS)
レジスタ (MMCR offset 22h) のECC_CHK_POSフィールドに取込まれます。
エラーに関する情報は全てのその発生によってラッチされ、
ラッチが再びイネーブルされたときにク
リアされます。ラッチをクリアする前に再びエラーが発生すると、その情報は失われます。
10.5.9.2
SDRAM設定中のバッファのディセーブル
SDRAMの設定を変更する前に、ライト・バッファと、
リード・バッファのリード・アヘッド機能はディセー
ブルしなければなりません。これは、書込みのバッファリングやリード・アヘッドのプリフェッチを実行
SDRAMの設定が変更されないようにするためです。バンクの設定中は、バンク終了アドレスが
中に、
0でSDRAM バンクをイネーブルしないように注意しなければなりません。
10.5.9.3
書込み保護
SDRAMの領域は、Programmable Attribute Region (PAR) レジスタによって書込み保護を行うこ
とができます。書込み保護を設定した領域には、読出しアクセスを行うことはできますが、書込みアク
セスを行ってもデータは書込まれません。書込み保護された領域に書込みを行うと、
SDRAM書込み
サイクルは発生しますが、
SDQM3-SDQM0データ・マスクが全てアクティブになり、SDRAMデバイス
に書込まれるのを防ぎます。もしECCがイネーブルでダブル・ワードより小さいアクセスが書込み保
護領に対して発生した場合、
リード・モディファイ・ライト・サイクルは生成されません。
10.5.10
レイテンシ
SDRAMコントローラのライト・バッファとリード・バッファは、メモリ・システムの帯域幅と性能を向上
するように設計されています。イネーブルされていると、
ライト・バッファはマスタの書込みやバース
ト・ライト動作を、
SDRAMリフレッシュ・サイクルなどのレイテンシから切離します。またリード・バッファ
のリード・アヘッド機能は、
リードバッファへのヒットによりマスタの読出しサイクルをSDRAMのレイテ
ンシから切離します。詳しくは第11章「ライト・バッファとリード・バッファ」を参照してください。
SDRAMデバイスは、記憶しているデータの保持のために定期的にリフレッシュを行わなければな
りません。このSDRAMの動作は、固定の間隔で優先的に行います。データ・アクセス要求とリフレッ
シュが同時に発生すると、優先度の高いリフレッシュが終了するまでデータ・アクセスはストールし
ます。長いリフレッシュ間隔に耐えるデバイスほど、
リフレッシュのオーバヘッドをシステムに負担さ
せずに済みます。これらのデバイスをサポートするため、ÉlanSC520マイクロコントローラでは、
リ
フレッシュ・レートを7.8μs、15.6μs、31.2μs、または62.5μsに設定することができます。
ライト・バッファがイネーブルされている場合、SDRAMに対する書込み動作はライト・バッファが空
10-28
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
SDRAM コントローラ
いているかぎり、
マスタの書込み動作とは独立して行われます。SDRAMのデータ・バスはROM/Flash
コントローラと共有しているので、
ライト・バッファからの書込みはマスタのROM/Flashへのアクセス
と同時に発生することがあります。これらのアクセスが同時にデータ・バスのアクセスを要求した場
合、
マスタからの要求に応えてROM/Flashサイクルが優先的に処理されます。しかしながら、
ライト・
バッファからの書込みサイクルが既に実行中にROM/Flashサイクルが要求された場合、
ライト・バッ
ファからの書込みが終了するまで待たされることがあります。さらに、
リード・アヘッド・プリフェッチ中
にROM/Flashサイクルが要求された場合も、
リード・アヘッド・プリフェッチが終了するまで待たされ
詳しくは第12章「ROM/Flashコントロー
ます。ROM/FlashとSDRAMのデータ・バスの共有に関して、
ラ」を参照してください。
ECCはリード・モディファイ・ライト・サイクルを必要とし、
レイテンシが発生することがあります。リー
ド・モディファイ・ライト・サイクルは部分的なダブル・ワード( 4 バイトより小さい書込み)の書込みを
SDRAMに行う場合に必要です。リード・モディファイ・ライトは、部分的なダブル・ワードデータの更新
を、
ECCコードに反映するために必要です。しかしながら、書込み保護された領域に対する部分的な
ダブル・ワードの書込みは、
リード・モディファイ・ライトサイクルを生成しません。
書込みの前に、次の動作が起こります。
1.
全てのダブル・ワードとECCコードをSDRAMから読込み、エラーのチェックを行う(エラーを検
出すると、対応する割込みを発生する)。
2.
読込んだデータに新しいデータを挿入し、新しいECCコードを生成する。
3.
更新されたデータとECCコードによる、完全なダブル・ワードをSDRAMに書込む。
書込みサイクルは完全なダブル・ワードなので、
ÉlanSC520マイクロコントローラは前もってSDRAM
から読出す必要はありません。これはSDRAMへの32ビット・アクセス時のオーバヘッドを低減します。
しかしながら、
ダブル・ワードの書込みでは読出しを行わないので、
データが書込まれる前にECCの
チェックは実行されません。
10.6
初期化
10.6.1
プログラマブル・リセット
ÉlanSC520マイクロコントローラのSDRAMコントローラは、
リセット・イベント中にSDRAMの内容を
保存する機能を持っています。そのため、2種類のリセットをサポートできます。
■ システム・リセット−−SDRAMコントローラを含めた完全なリセットで、SDRAMデバイスの内容
は失われます。
■ プログラマブル・リセット−−プログラマブル・リセットの期間、SDRAMコントローラの設定が保存
され、
リフレッシュも行われるのでSDRAMの内容も保存されます。
リセットの種類は、Reset Configuration (RESCFG) レジスタ (MMCR offset D72h) の
PRG_RST_ENBビットで選択します。このビットにより、PRGRESET ピンがÉlanSC520マイクロコ
ントローラにプログラマブル・リセットを行うようプログラムすることができます。電源投入時、
PRGRESET ピンはディセーブルされていますので、必要に応じてイネーブルしなければなりません。
これらのリセットのソースに関して、詳しくは 第6章の「6.5.2 SDRAMを保存したままのシステム・リ
セット」を参照してください。
プログラマブル・リセットの目的は、ÉlanSC520マイクロコントローラのリセット中にSDRAMの内容
を保存することです。そのためには、
プログラマブル・リセットの期間もSDRAMがリフレッシュされな
ければなりません。プログラマブル・リセットがアサートされると、SDRAMコントローラのアービタは
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
10-29
SDRAM コントローラ
アイドル状態に戻る前に、
現在実行中のSDRAMアクセスを正常に終了させます。これにより、
SDRAM
アクセス中にプログラマブル・リセットがアサートされても、データが壊れるのを防ぎます。全ての
SDRAMコントローラの設定は保存されます。
注意:どちらの種類のリセットであっても、
ライト・バッファの内容は破棄されます。また、
プログラマブル・リセット後、
ラ
イト・バッファやリード・バッファはディセーブルされます。
したがって、
プログラマブル・リセットの発生以前にライ
ト・バッファやリード・バッファがイネーブルされていた場合、
プログラマブル・リセット後それらを再びイネーブルし
なければなりません。
10.6.2
SDRAMデバイスの初期化
10.6.2から10.6.4にかけて、
コアのイネーブルとSDRAM設定の詳細を説明します。しかしながら、
SDRAMの設定を変更する前に、ライト・バッファとリード・バッファのリード・アヘッド機能はディセーブ
ルしなければなりません。これは、
ライト・バッファやリード・アヘッド・プリフェッチが進行中にSDRAM
コントローラの設定が変更されるのを防ぐためです。
SDRAMコントローラが通常動作モードでない時には、
リフレッシュは必ずディセーブルしなければな
りません。SDRAMリフレッシュ・サイクルは、OPMODE_SELフィールドがノーマルSDRAMモードの
時のみイネーブルすべきです。SDRAMデバイスの初期化後(リフレッシュ・サイクルはディセーブル
されたまま)、それらは正常にアクセスできます。
SDRAMのエラー訂正コード(ECC)ロジックがイネーブルされている場合、ECCの動作にはSDRAM
とそれに関連するECCメモリが初期化されていなければなりません。これは、SDRAMのすべてのロ
ケーションに書込みを行うブート・コードによって行います。これにより、ECC SDRAMには対応する
データに対して適切なハミング・コードが設定されます。この処理を怠ると、
データも読出し、
または
32ビットより小さいデータの書込み時に、エラーが発生します。ECCに関する詳しい説明は、
「10.5.3
エラー訂正コード( ECC)」を参照してください。
10.6.2.1
動作モードの選択
SDRAM デバイスはアクセスの前に、電源を投入し既定の方法で初期化しなければなりません。
SDRAMコントローラが持つ SDRAM Control (DRCCTL) レジスタ (MMCR offset 10h) の
OPMODE_SEL フィールドでこの手順を実行できます。
■ デフォルトでは、OPMODE_SEL フィールドはSDRAMの動作モードを表しています。しかしなが
ら、
ノーマルSDRAMモードとは、SDRAMコントローラが設定されSDRAMデバイスが初期化さ
れた後の状態を意味します。ノーマルSDRAMモードでは、
マスタからの要求により読出し、書込
みアクセスを行うことができます。OPMODE_SEL フィールドがノーマルSDRAMモードに設定
された時のみ、SDRAMリフレッシュ・サイクルをイネーブルにすべきです。
■ OPMODE_SEL フィールドの他の設定は、SDRAMアクセスを特定のコマンド・タイプ(NOP、
プ
リチャージ、ロード・コマンドまたはプリチャージ)に強制します。ノーマルSDRAMモード以外の
値をOPMODE_SEL フィールドに設定すると、全てのバンクが選択される(SCS3-SCS0 が全て
アクティブ)ので、
コマンドはシステムが持つ全てのSDRAMデバイスに対して適用されます。
OPMODE_SEL フィールドに設定したコマンドを発生するためには、Am5x86 CPUからSDRAM領
域に対して読出しまたは書込みサイクルを行わなければなりません。実際のAm5x86 CPUからの読
出し、書込みサイクルではなく、設定したコマンドがSDRAMインタフェースに出力されます。
10-30
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
SDRAM コントローラ
10.6.2.2
NOPコマンド
電源が投入されクロックが安定した後、ほとんどのSDRAMデバイスはコマンドを実行する前に100μ
Sのディレイを必要とします。そのため、ブート・コードはリセット後すぐにはSDRAMアクセスが発生し
ないように保証しなければなりません。この期間はNOPコマンドを適用します。初期化の間、バイナ
リで 001b をオペレーション・モード選択ビットに書込み、NOPコマンドを設定します。設定したコマ
ンドを実行するためには、
SDRAM領域に対するAm5x86 CPUからの読出しまたは書込みサイクルが
必要です。
10.6.2.3
プリチャージ・コマンド
最低1つのNOPコマンドを実行して100μSのディレイを満足した後、全ての内部バンクに対してプリ
チャージコマンドを実行し、
デバイスをアイドル状態にしなければなりません。初期化時に、バイナリで
010b をオペレーション・モード選択ビットに書込み、全バンク・プリチャージ・コマンドを設定します。
全てのバンクがプリチャージされます。全ての
このモードではMA10(プリチャージ)が High になり、
バンクが選択されるので、全てのバンクがこのコマンドを解釈します。
10.6.2.4
自動リフレッシュ・コマンド
アイドル状態になったら、
2つの自動リフレッシュ・サイクルを実行しなければなりません。自動リフレッ
シュ・コマンドは、バイナリで 100b をオペレーション・モード選択ビットに書込むことによって設定し
ます。ブート・コードはこのモードで、最低2つのSDRAMアクセスを実行しなければなりません。
10.6.2.5
モード・レジスタのプログラミング
自動リフレッシュ・サイクルの実行終了後、SDRAMはモード・レジスタのプログラミングが可能になり
ます。バイナリで 011b をOPMODE_SEL フィールドに書込むことによって、ロード・モード・レジス
タ・コマンドを設定します。全てのSDRAM バンクが選択されるので(SCS3-SCS0 が全てアクティ
ブ)、
全てのバンクは同じモードになります。モード・レジスタは、
SDRAMデバイスのバースト長、バー
スト・タイプ、CASレイテンシ、動作モード、
および書込みバースト・モードを設定します。
これらの5つのパラメータのうち、CASレイテンシだけが SDRAM Timing Control (DRCTMCTL)
レジスタ (MMCR offset 12h) のCAS_LATビットによってユーザが設定できます。CASレイテンシ
に設定できるオプションは、2Tまたは3T で、33.333MHz 動作時 T=15ns です。他のパラメータは
ÉlanSC520マイクロコントローラでは固定です。
Table 10-12 に、パラメータと対応する設定コードを示します。ロード・モード・レジスタ・コマンド時、
これらの設定はMA12-MA0信号に出力されます。SDRAMデバイスはコマンド長に12ビットしか必要
ないので、MA12はLowが出力されます。
Table 10-12 モード・レジスタの設定コード
Parameter
Setting
Description
Burst length
Four phases
Always read burst four
Burst type
Interleaved
Follow non-linear burst
CAS latency
Programmable
Select either 2T or 3T (see text)
Operating mode
Standard operation
Defined
Write burst mode
Single location
Single mode
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
10-31
SDRAM コントローラ
10.6.3
ブート・プロセス
閉じた組込システムでは、
設計者が純粋に設定レジスタに出力する値を選べば済みます。しかし、
ブー
ト時にSDRAMのパラメータが分からないシステムでは問題です。多くのSDRAMに関する考察(信
号の負荷など)が、
ソフトウエアではできません。この問題を解決するための1つのの方法として、下
記に示すようにブート・プロセスをステージに分ける方法があります。
1.
最初に、
リセット後、全てのパラメータはデフォルトでワースト・ケースの値にプログラムします。
2.
次に、各バンクのSDRAMが実装されてるかどうか、構成、そしてサイズをテストします。
3.
そして、問題が無いかどうかをシステム・メモリ・テストで確かめます。もし問題が起こったら、
ユーザにそれを示し、不正なバンクをディセーブルします。
SDRAMの設定パラメータはユーザが設定できるので、場合によってはブートできなくしていますこ
とがあります。このような場合にセットアップ・プログラムが常に修正できるように、
SDRAMの設定パ
ラメータの設定はブート・プロセスの後期で実行することが望まれます。
10.6.4
SDRAMのサイズ判定アルゴリズム
SDRAMのサイズ判定アルゴリズムは、SDRAM境界を決定するためにSDRAMコンフィギュレーショ
ン・レジスタを書換え、特定のSDRAM境界に対して読み書きをしなければなりません。書込んだデー
タが読みだしたデータと一致したときに、SDRAMが存在すると判定できます。
しかしながら、SDRAMデバイスにアクセスする前に、
デバイスが動作可能になるために多くのレジス
タを設定しなければなりません。SDRAMデバイスの初期化に関しては、10.6.2 節に詳しく解説され
ています。SDRAMリフレッシュ・サイクルは、OPMODE_SEL フィールドがノーマルSDRAMモードの
時のみイネーブルすべきことに注意してください。SDRAMデバイスが初期化された後(リフレッシュ・
サイクルはディセーブルされたまま)、正常にアクセスすることが可能になります。
SDRAMコントローラには制御やタイミングを設定するたくさんのコンフィギュレーション・レジスタ
があります。しかしながら、
サイズ判定の手順では少数のレジスタにアクセスするだけで可能です。サ
イズ判定時に特に関係するビットは、カラム・アドレス幅、内部バンク数、およびバンク終了アドレス
です。
■ カラム・アドレス幅はデバイスのカラム・アドレス幅を設定します。
■ 内部バンク数ビットは内部バンク数が2か4かを設定します。
■ バンクの物理アドレス境界を、SDRAM Bank 0-3 Ending Address (DRCBENDADR) レジス
タ (MMCR offset 18h) によって設定します。
多くの種類のSDRAMデバイスや構成を利用できるように、
カラム・バウンダリ・メソッドを使用してい
ます。デバイスのシステム構成を設定する際はカラム・アドレス幅だけを指定するだけです。デバイ
スのアドレッシングや構成に関しては、
「 10.5.2 SDRAMアドレッシング」を参照してください。
カラム・アドレス幅、内部バンク数、
およびバンク終了アドレスの設定を変更する場合、設定の変更前
に必ず全バンク・プリチャージ・コマンドを発行しなければなりません。全バンク・プリチャージ・コマン
ドは、010b をOPMODE_SEL フィールドに書込むことにより設定します。コマンドを実行するために
はSDRAMサイクルを実行しなければなりません。全バンク・プリチャージ・コマンドは、SDRAMデバ
イスが開いているページを全て閉じ、
アイドル状態にします。またSDRAMコントローラのページ・テー
ブル・エントリも無効化されます。
カラム・アドレス幅が必要なのは、そのデバイスの内部構成の対称性(つまり、
SDRAMコントローラが
利用できるカラム数とページ幅)を特定するためであり、32ビット・バンクの内のSDRAMのアドレス
10-32
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
SDRAM コントローラ
可能な総量を特定するためではありません。バンク終了アドレスは、各バンクの物理アドレス境界を
設定します。バンク終了アドレスは、
デバイスの容量とデータ幅によって変わります。SDRAMのサイ
ズ判定中は、バンク終了アドレスを0にしてはいけません。SDRAMデバイスには2または4バンク構成
のものがあるので、SDRAMコントローラは内部バンク数からデバイスの内部におけるバンク構成に
関する情報を得ます。
サイズ判定アルゴリズムはまず、各外部
■ システムが持つSDRAMの総量を動的に設定するため、
バンクにいくつの SDRAMがインストールされているかを特定しなければなりません。
– そのために、アルゴリズムは1時期に1つの外部バンクだけをイネーブルし、最も大きなサイズ
の設定である11カラム、4内部バンク、13ロウから順番に試します。
– もし設定より小さなサイズのSDRAMがインストールされているとエイリアスができるので、
それを調べることでSDRAMバンクの実際のサイズがわかります。
■ SDRAMのサイズを判定中は、Am5x86 CPUのキャッシュ、SDRAMのECC、SDRAMライト・バッ
ファ、
およびSDRAMリード・アヘッド機能はディセーブルしておかなければなりませんのでご注意
ください。
例えば、
SDRAM外部バンク3を最大のサイズ設定にする場合、A000hの値をSDRAM Bank Configuration (DRCCFG) レジスタ (MMCR offset 14h) に、FF000000h を SDRAM Bank 0-3 Ending
Address (DRCBENDADR) レジスタ (MMCR offset 18h) に書込みます。
10.6.4.1
外部バンクのカラム数の判定
外部バンクのカラム数を判定するには、4回の書込みと5回の読出しを行います。
4つの違ったデータ・パターンを用いなければなりません。
例えば
pattern1 = 0Bh
pattern2 = 0Ah
pattern3 = 09h
pattern4 = 08h
内部バンクとSDRAMロウ・アドレス・ビット(プロセッサ・アドレス・ビット31-13の値)、低位カラム・ア
ドレス・ビット(プロセッサ・アドレス・ビット9-0の値)が全て同じで、特別に選んだカラム・アドレス(プ
ロセッサ・アドレス・ビット12-10の値)を持った、4つのSDRAMメモリ・アドレスを選びます。
■ 最初のアドレスには、SDRAMカラム・アドレス・ビット11、9、
および8(プロセッサ・アドレス・ビット
12-10 )が全て1のアドレスを選びます。
■ 2番目のアドレスには、SDRAMカラム・アドレス・ビット11(プロセッサ・アドレス・ビット12 )が0で、
SDRAMカラム・アドレス・ビット9-8(プロセッサ・アドレス・ビット11-10)が1のアドレスを選びま
す。
■ 3番目のアドレスには、SDRAMカラム・アドレス・ビット11と9(プロセッサ・アドレス・ビット12-11)
が0で、SDRAMカラム・アドレス・ビット8(プロセッサ・アドレス・ビット10)が1のアドレスを選びま
す。
■ そして最後のアドレスには、
SDRAMカラム・アドレス・ビット11、9、および8(プロセッサ・アドレス・
ビット12-10 )が全て0のアドレスを選びます。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
10-33
SDRAM コントローラ
この基準を満たすアドレスはたくさんありますが、
1つの例としては次のようになります。
address1 = 0E001E00h
address2 = 0E000E00h
address3 = 0E000600h
address4 = 0E000200h
次に、SDRAM外部バンクのカラム数を判定する手順を示します。
1.
まず、pattern1をaddress1に書込み、そして読出す。
2.
pattern2をaddress2に書込み、そして読出す。
3.
pattern3をaddress3に書込み、そして読出す。
4.
pattern4をaddress4に書込み、そして読出す。
5.
4回の読み書きにおいて、1回でも書込んだデータと違ったパーターンを読込んだ場合、
このバ
ンクにはSDRAMが存在しないか、
またはSDRAMが動作していないと考えられます。いずれに
しても、
このバンクはイネーブルせずに次のバンクの判定に移ります。
6.
4回の読み書き全てが一致した場合、もう一度address1を読出すと、その値から実際のカラム
数がわかります。
この例で使用したパーターンを使うと、最後に読出した値がそのまま実際の外部バンクのカラム数
になります。
10.6.4.2
内部バンク数の判定
正しい内部バンク数と、外部バンクの真の最終アドレスの判定には、
5回の書込みと7回の読出しを行
います。
5つの違ったデータ・パターンを用いなければなりません。
例えば
pattern5 = 3Fh
pattern6 = 1Fh
pattern7 = 0Fh
pattern8 = 07h
pattern9 = AAh
低位ロウ・アドレス・ビットと、低位内部バンク選択ビット( BA0)、
およびカラム・アドレス・ビット(プロ
セッサ・アドレス・ビット31-28と23-0の値)が全て同じで、
プロセッサ・アドレス・ビット27-24に特別に
選んだロウ・アドレスを持った、5つのSDRAMメモリ・アドレスを選びます。プロセッサ・アドレス・ビッ
ト27-24は、ROW10より大きなSDRAMロウがこの最大SDRAM設定にマップされたものです。
■ 最初のアドレスには、
プロセッサ・アドレス・ビット27-24がすべて1のアドレスを選びます。
■ 2番目のアドレスには、
プロセッサ・アドレス・ビット27が0で、26-24がすべて1のアドレスを選びま
す。
■ 3番目のアドレスには、
プロセッサ・アドレス・ビット27-26がすべて0で、25-24がすべて1のアドレ
スを選びます。
■ 4番目のアドレスには、
プロセッサ・アドレス・ビット27-25がすべて0で、24が1のアドレスを選びま
す。
10-34
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
SDRAM コントローラ
■ そして最後のアドレスには、
プロセッサ・アドレス・ビット27-24がすべて0のアドレスを選びます。
この基準を満たすアドレスはたくさんありますが、
1つの例としては次のようになります。
address5 = 0F000000h
address6 = 07000000h
address7 = 03000000h
address8 = 01000000h
address9 = 00000000h
次に、内部バンク数の判定方法を示します。
1.
まず、pattern5をaddress5に書込み、そして読出す。
2.
pattern6をaddress6に書込み、そして読出す。
3.
pattern7をaddress7に書込み、そして読出す。
4.
pattern8をaddress8に書込み、そして読出す。
5.
pattern9をaddress9に書込み、そして読出す。
6.
5回の読み書きにおいて、1回でも書込んだデータと違ったパーターンを読込んだ場合、
このバ
ンクにはSDRAMが存在しないか、
またはSDRAMが動作していないと考えられます。いずれに
しても、
このバンクはイネーブルせずに次の外部バンクの判定に移ります。
7.
5回の読み書き全てが一致した場合、もう一度address7を読出すと、その値から実際の内部バ
ンク数がわかります。
8.
このときaddress7から読出したパターンがpattern9なら、
この外部バンクのSDRAMは内部2バ
ンク構成です。
9.
address7から読出したパターンがpattern7かpattern8の場合、
この外部バンクのSDRAMは4
つの内部バンクを持っています。
10. もしaddress7から読出したパターンがpattern7、pattern8またはpattern9以外の場合、
このバ
ンクのメモリは使用できません。
pattern7が返ってきた時に内部2バンクである理由は、SDRAMコントローラは2つのページを開いて
いるつもりでアクセスしているところに、
SDRAMは1ページしか持っておらず、結果として違うページ
からデータを読んでくることになるからです。
10.6.4.3
外部バンクの真の最終アドレスの判定
外部バンクの真の最終アドレスの判定は、address5をもう一度読出すことで行います。pattern5、
pattern6、pattern7、
またはpattern8以外の値を読込んだ場合、
このバンクのメモリは使用できません。
次に、外部バンクの真の最終アドレスの判定手順を示します。
1.
デバイスが11カラムの場合、
この例で使用したパターンを使うと、
最後に読出した値がそのまま
実際の最終アドレスになります。
2.
11カラムより少ない場合、少ないカラム数分最後に読出した値を右シフトすると真の最終アドレ
スが得られます。
3.
この値に 1 を加え、8 0 h とO R をとったものが、S D R A M B a n k 0 - 3 E n d i n g A d d r e s s
(DRCBENDADR) レジスタ (MMCR offset 18h) に書込む値になります。
この手順を4つの外部バンク全てについて行います。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
10-35
SDRAM コントローラ
10-36
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
第11章
ライト・バッファとリード・バッファ
11.1
概要
ÉlanSC520 マイクロコントローラはSDRAMシステムの性能を最適化する、2つのバッファリング技
術を持っています。それはライト・バッファとリード・アヘッド機能を持ったリード・バッファです。
ウエイト・ステート無し
ライト・バッファは全てのマスタ(Am5x86 CPU、PCIまたはGP-DMA)に対し、
でデータのポストを可能にするメカニズムを提供します。イネーブルされていると、
SDRAMのレイテ
ンシによるペナルティからマスタを効果的に切り離します。結果的に、SDRAMはマスタからのより多
くの読みだし要求に応えることができます。さらに、
ライト・バッファはライト・マージやライト・コラプ
ス機能によりFIFOストレージをより効果的に利用し、最終的にSDRAMへの書込み転送量を減らすこ
ともできます。効率的にデータ・コヒーレンシを保つことができるデータ・リード・マージもサポートし
ています。
リード・バッファは2つのキャッシュ・ライン(32 バイト)分のデータをSDRAMから読出し、格納できる
大きさを持っています。リード・バッファに付随するリード・アヘッド機能がイネーブルの場合、要求さ
れたキャッシュ・ラインに続く次のキャッシュ・ラインまでプリフェッチさせることができます。この機能
は、その後のアクセスがプリフェッチしたキャッシュ・ラインに対して行われる( spatial locality)との
予測に基づいています。リード・バッファは常にイネーブルですが、
リード・アヘッド機能とライト・バッ
ファはシステム・リセット後、ディセーブルされます。
ライト・バッファとリード・バッファのリード・アヘッド機能は密接な関係がありますが、個々にイネーブ
ルできます。
以下はライト・バッファの特徴です。
■ ランダム・アクセス可能な32レベルのダブル・ワードFIFO
■ コンテンツ・アドレッサブル・メモリ
( CAM)がスヌープ機能を提供
■ 空いているバッファに対してはウエイト・ステート無しでアクセス可能
■ ライト・マージ、
ライト・コラプス、
およびリード・マージ機能を持つ
■ Am5x86 CPU、PCI、
およびGP-DMAのSDRAM書込み転送に対して有効
以下はリード・バッファの特徴です。
■ リード・バッファはAm5x86 CPUの2つのキャッシュ・ライン分のデータを格納
■ リード・バッファにヒットした場合、
ウエイト・ステート無しでアクセス可能
■ リード・アヘッド機能がイネーブルの場合、マスタからの2つ以上のダブル・ワード読出し要求に応
じて、次のキャッシュ・ラインまでプリフェッチする
■ 最初のフェッチは要求されたダブル・ワードから開始
■ Am5x86 CPU、PCI、
およびGP-DMAのSDRAM読出し転送に対して有効
ライト・バッファは、
マスタからの個々の書込みまたはバースト・ライト要求を速く終らせるのが目的で
す。そのため、全てのマスタに対し0ウエイト・ステートで書込みを終了させます。ライト・バッファのラ
イト・マージやライト・コラプス機能は、Am5x86 CPU、PCI、
およびGP-DMAの8ビット、16ビット連続
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
11-1
ライト・バッファとリード・バッファ
転送などの個々の転送を1つのSDRAM書込みにつなぎあわせ、大幅に性能を向上させます。
リード・バッファのリード・アヘッド機能は、Am5x86 CPUや外部PCIマスタからのバースト・リード要求
に対して効果を発揮します。Am5x86 CPUによるキャッシュ・ライン・フィルは、
おそらく最も多く実行
されるSDRAM読出し要求です。この読出しは通常、キャッシュ・ライン・バーストとして4ダブル・ワー
ド( 32ビット)で行います。PCIマスタからのバースト・リードにも大きな効果があります。
両方の機能はそれぞれ設定できます。マスタ・ライト・サイクルまたはライト・バッファ・ライト・サイクル
がリード・バッファにあるラインにヒットした場合、
データ・コヒーレンシを保つためにリード・バッファの
内容は破棄されます。それぞれの機能の設定を変更する際のデータ・コヒーレンシは、ハードウエア
によって保たれます。ライト・バッファを手動でフラッシュすることも可能です。
11.2
ブロック図
Figure 11-1 に示すとおり、ライト・バッファとリード・バッファはSDRAMコントローラのサブシステム
として組込まれています。より詳細な内部ライト・バッファとリード・バッファのアーキテクチャをFigure
11-2 に示します。
Figure 11-1
ライト・バッファとリード・バッファのブロック図(SDRAMサブシステム)
Élan™SC520 Microcontroller
MA12–MA0
BA1–BA0
Write Buffer/Read Buffer
SCS3–SCS0
Address Decode Unit
CPU Interface
SCASB–SCASA
Read Buffer
SRASB–SRASA
SDQM3–SDQM0
SDRAM Controller
Write Buffer
SWEB–SWEA
CLKMEMOUT
CLKMEMIN
MECC6–MECC0
MD31–MD0
11-2
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
ライト・バッファとリード・バッファ
Figure 11-2
ライト・バッファとリード・バッファのブロック図
Élan™SC520 Microcontroller
Write Buffer/Read Buffer
Read Buffer
Address Latch
rd_ad
[27–2]
Address Tag 0
Address Tag 1
Read Buffer Data Latch
doubleword 7
rab_data[31–0]
x5_rd_
data[31–0]
doubleword 6
dram_
doubleword 5
data[31–0]
doubleword 4
Read-Merge
doubleword 3
doubleword 2
doubleword 1
doubleword 0
Read Buffer
Controller
x5_control
dram_control
SDRAM
Write Buffer
Controller
31
Controller
1 0
wb_ad[27–2]
x5_ad[27–2]
Address Tag
wb_be_l[3–0]
x5_be[3–0]
Byte Valid Bits
Master Trace Bits
WBMSTR2–WBMSTR0
Address/Debug Tag Storage (32 ranks)
Byte 3
x5_wr_data[31–0]
Byte 2
wb_data[31–0]
Byte 1
Byte 0
Data Store (32 ranks)
11.3
システム設計
Table 11-1 は、SDRAMトレース・サポートおよびテストに使用する多重化された信号です。これら
のピンの使用法に関しては、第24章「システム・テストとデバッギング」を参照してください。
これらの3つのピンに関連した CFG2-CFG0 ピンストラップ機能は、PWRGOOD がアサートされた
結果として取込まれ、
これらのピンの他の機能には影響しませんので、
この表には示されていません。
イネーブルされていると、Table 11-1 に示された他の機能は使用できません。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
11-3
ライト・バッファとリード・バッファ
Table 11-1
11.4
多重化されたSDRAM信号
Default Signal
Alternate Function Control Bit
Register
CF_ROM_GPCS
WBMSTR0
DATASTRB
WBMSTR1
SDRAM Control (DRCCTL) register
(MMCR offset 10h)
CF_DRAM
WBMSTR2
WB_TST_ENB
レジスタ
Table 11-2 に、SDRAM バッファ制御のためのメモリ・マップされたレジスタを示します。
Table 11-2
メモリ・マップされたSDRAMバッファ制御レジスタ
Register
Mnemonic
MMCR
Offset
Address
Function
SDRAM Control
DRCCTL
10h
SDRAM write buffer test mode enable
SDRAM Buffer Control
DBCTL
40h
Write buffer enable, read-ahead enable, write
buffer watermark, write buffer flush
11.5
動作
ライト・バッファとリード・バッファは、
SDRAMの性能を向上するためにSDRAMコントローラに組込ま
れた 2つの機能です。
ライト・バッファは全てのマスタ( Am5x86 CPU、PCI、
またはGP-DMA)に対し、
ウエイト・ステート無
しでデータをポストするメカニズムを提供し、SDRAMの書込みレイテンシによるペナルティから解放
します。ライト・バッファがイネーブルの場合、SDRAMに対する書込みは全てライト・バッファが行いま
す。
リード・バッファのリード・アヘッド機能は、現在のアクセスの次のキャッシュ・ラインまでプリフェッチす
SDRAM読出しの性能を向上します。
ることで、
データを要求元に対しほぼ0ウエイト・ステートで返し、
リード・アヘッド機能は、Am5x86 CPUのプリフェッチ機構(プログラムの流れの spatial locality に
PCIのリード・バーストに対して効果があります。リード・
基づく)が持つ前方へフェッチが進む特性や、
プリフェッチは(イネーブルの場合)、
マスタからの2つ以上のダブル・ワードのバースト・リードに対し
てのみ起動します。GP-DMAはバーストを行わないので、GP-DMAからの読出し要求では一切プリ
フェッチしません。しかしながら、
GP-DMA読出し要求中でも、キャッシュ・ラインの残りは常にフェッチ
されます。
ライト・バッファはイネーブルされている場合、
ライト・バッファSDRAMに対する書込みサイクル中に、
マスタの情報を外部ピン (WBMSTR2-WBMSTR0) に出力することでデバッグ機能を提供します。
このピンにより、書込まれているデータがどのマスタからのものかを知ることができます。出力され
るマスタは、Am5x86 CPU、PCIまたはGP-DMAです。ライト・バッファはライト・マージやライト・コラ
プス機能を持っているので、同レベルのライト・バッファ内に複数のマスタからの書込みデータを含ん
でいることがあります。ライト・バッファのデバッグ・サポートに関して、詳しくは第24章「システム・テ
ストとデバッギング」を参照してください。
11-4
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
ライト・バッファとリード・バッファ
11.5.1
ライト・バッファ
ÉlanSC520 マイクロコントローラのSDRAMコントローラは32×4 バイトの格納領域を持つライト・
データ・バッファを内蔵しています。ライト・バッファは標準的なポスティングFIFO以上の機能を持って
います。標準 FIFOでは、既に持っているデータであることを知らずに盲目的にデータをポストしま
す。ライト・バッファでは各書込みアクセスをスヌープして、より効果的に行います。
スヌープ機能は、現在のアドレスのデータが既にFIFO内にあるかどうかを調べます。この機能により、
書込みデータを既にライト・バッファ内にあるデータに埋込んだり、
上書きしたりすることができます。
SDRAMに対する連続するダブル・ワード未満のデータ書込みの回数を減らし、FIFOの格
結果として、
納領域を効率良く使用できます。スヌープ機能はまた、
リード・マージ機能を提供しデータ・コヒーレ
ンシのオーバヘッドをより効率良く取扱います。これにより、読出しサイクルの前に全てのライト・バッ
ファのフラッシュを行わなくて済みます(スヌープ機能を持たない通常のFIFOでは必ず行わなけれ
ばなりません)。
ライト・バッファは次の効果を持っています。
■ 0ウエイト・ステートのデータ・ポスティング(バッファがフルでない場合)で、SDRAMへの書込み
終了を待たずに効果的にマスタの書込み動作を終了
■ リード・マージ機能により強化されたリード・アラウンド・ライトのサポートで、SDRAMコントロー
ラはバッファからの SDRAM書込みよりも読出しを優先させることが可能
■ 書込みデータのライト・マージ、
およびライト・コラプス機能。をサポート
リード・アラウンド・ライト機能はライト・バッファがイネーブルの時に働き、
ライト・バッファ要求の前、
ま
たは近辺でSDRAM への読出し要求を行うことを可能にします。ライト・バッファ要求は、以前のマス
タからの書込みでポストされたデータを、SDRAMに移す時に発生します。リード・アラウンド・ライト
はライト・バッファがイネーブルの時にのみ機能します。
11.5.1.1
ライト・バッファのディセーブル
ライト・バッファがディセーブルされている場合、
どのようなマスタが発生した読み書き転送でも、
全て
ライト・バッファを通さずに直接SDRAMに向けられます。書込みデータはポストされず、読出しサイク
ルもコヒーレンシのためのスヌーピングを必要としません。ライト・バッファがディセーブルされた時
にライト・バッファに保持されている有効なデータは最優先で自動的に(ハードウエアにより)SDRAM
にフラッシュされます。これによりデータ・コヒーレンシは保たれます。この期間に発生したマスタか
らのSDRAM読み書きアクセスはライト・バッファのフラッシュが完了するまでストール(ウエイト・ス
テートによって)
します。
ライト・バッファは、SDRAM Buffer Control (DBCTL) レジスタ (MMCR offset 40h) のWB_FLUSH
ビットをセットすることによって、手動でフラッシュすることもできます。手動でのフラッシュの後、そ
れが完了したかどうかはWB_FLUSHビットによって知ることができます。
11.5.1.2
ライト・バッファのイネーブル
ライト・バッファがイネーブルの場合、全てのマスタによる書込みデータは全て、
ライト・バッファに入
ります。データは、SDRAMコントローラが要求を受けることができるようになった後、FIFOの順番で
ライト・バッファからSDRAMへ書込まれます。
スヌープ機能が読出し、書込み両サイクルの性能を向上させます。
■ 書込みサイクルでのスヌープ機能は、
ライト・バッファが書込みデータが既にバッファ内に存在し
ているかどうかを調べ、
もしあるならライト・マージするかライト・コラプスするかを決定するため
に使用します。これにより、SDRAMに対する連続するダブル・ワード未満のデータ書込みの回数
を減らして書込みの性能を向上し、
さらにバッファの物理的格納領域を効率良く使用できます。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
11-5
ライト・バッファとリード・バッファ
■ 読出しサイクルでは、
スヌープ機能により読出し要求のアドレスのデータがライト・バッファ内にあ
るかどうかを調べます。もしあるならば、そのデータはSDRAMから読込まれたデータにマージさ
れます。これにより、読出しサイクルの前にライト・バッファのフラッシュを行わずに済み、SDRAM
システムの性能を向上します。
ライト・マージ、
ライト・コラプス、
およびリード・マージ機能に関しては、11.5.1.2.1 節と11.5.1.2.2 節
で解説します。
ライト・バッファとリード・バッファは全てのマスタからのSDRAMメモリ要求に対して機能しますが、
SDRAM書込みよりもAm5x86 CPUのキャッシュをフィルするための SDRAM読出しの方が、より頻
繁に発生します。この需要に応え、SDRAMに対する読出しアクセスを書込みよりも優先させるため
に、
SDRAMコントローラはライト・バッファを用いて書込みのオーバヘッドを減らします。ライト・バッ
プロセッサは早期に実行を継続できます。後続の読
ファにより書込みは0ウエイト・ステートで終了し、
出しサイクルに対しては、
SDRAMコントローラのリード・アラウンド・ライト機能により読出しが優先的
に行われ、
マスタがストールするのを防ぎます。スヌーピングの機能無しでは、
ライト・バッファ内の全
てのデータを、
読出しサイクルの前にフラッシュしなくてはなりません。スヌーピングの機能によって、
不必要なフラッシュを避けられます。これによりデータ・コヒーレンシの維持に伴うオーバヘッドを減
らすことができます。
ライト・バッファ内のデータのアドレスに対して読出しが起こると、
SDRAMから返されたデータにライ
ト・バッファ内のデータがマージされます。リード・マージ機能は、
ライト・バッファをフラッシュさせず
にデータ・コヒーレンシを保つことができます。
11.5.1.2.1
ライト・マージとライト・コラプス
ライト・バッファがイネーブルの時、
ライト・マージとライト・コラプスの機能をサポートします。
■ ライト・マージはFigure 11-3 に示すように、個々の書込みがライト・バッファ・レベルまたはダブ
1つのバ
ル・ワードにヒットし、1つのダブル・ワードにマージできる時に機能します。しかしながら、
イト位置は1回しか書込まないことを暗黙的に示します。
■ ライト・コラプスはFigure 11-4 に示すように、
ライト・マージ機能に似いますが、同じバイト位置
が1回以上書き変えられます。ライト・コラプス機能は、個々の書込みがライト・バッファの同じレベ
ルに対して複数回ヒットし、前のデータを上書することを可能にします。
SDRAMアクセスの性能を向上します。ライト・バッ
これらの機能はSDRAMへの書込み回数を減らし、
ファにポストされたダブル・ワードと、書込み要求を行おうとするマスタとの依存関係は全くありませ
ん。つまり、
複数のマスタからの書込みデータが、
ライト・バッファ内でライト・マージ、
またはライト・コ
ラプスされるということです。
ライト・マージ、
ライト・コラプスの言葉の定義は、PCI Local Bus Specification, Revision 2.2 の記
述にのっとって使用しています。
11-6
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
ライト・バッファとリード・バッファ
Figure 11-3
ライト・バッファ・マージの例
1.
DMA Write, Byte, Adrs 0FBB000, Data 88h
D[31:24]
D[23:16]
D[15:8]
D[7:0]
1.
2.
31 30
DMA Write, Byte, Adrs 0FBB000, Data 88h
DMA Write, Byte, Adrs 0FBB001, Data 92h
3
2
88
1
0
D[31:24]
D[23:16]
92
D[15:8]
1.
2.
3.
DMA Write, Byte, Adrs 0FBB000, Data 88h
DMA Write, Byte, Adrs 0FBB001, Data 92h
DMA Write, Byte, Adrs 0FBB002, Data 44h
D[7:0]
31 30
3
2
88
1
0
D[31:24]
1.
2.
3.
4.
DMA Write, Byte, Adrs 0FBB000, Data 88h
DMA Write, Byte, Adrs 0FBB001, Data 92h
DMA Write, Byte, Adrs 0FBB002, Data 44h
DMA Write, Byte, Adrs 0FBB003, Data 66h
D[23:16]
44
D[15:8]
92
D[7:0]
31 30
3
2
88
1
D[31:24]
66
D[23:16]
44
D[15:8]
92
D[7:0]
31 30
3
2
88
1
0
0
Notes:
This example illustrates how four separate write cycles can be "merged" and reduced to only one
doubleword SDRAM write transaction.
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
11-7
ライト・バッファとリード・バッファ
Figure 11-4
ライト・バッファ・コラプスの例
1.
CPU Write, Low Word, Adrs 0A00X, Data 55AAh
D[31:24]
D[23:16]
55
D[15:8]
D[7:0]
1.
2.
CPU Write, Low Word, Adrs 0A00X, Data 55AAh
CPU Write, Doubleword, Adrs 0X, Data 12345678h
31 30
3
D[31:24]
12
D[23:16]
34
D[15:8]
1.
2.
3.
CPU Write, Low Word, Adrs 0A00X, Data 55AAh
CPU Write, Doubleword, Adrs 0X, Data 12345678h
CPU Write, Low Word, Adrs 0A00X, Data CDEFh
2
AA
1
0
56 55
D[7:0]
31 30
3
78 AA
2 1 0
D[31:24]
12
D[23:16]
34
D[15:8]
56 CD
D[7:0]
31 30
3
78 EF
2 1
0
Notes:
This example illustrates how existing data can be overwritten. Separate write cycles can be
ìcollapsedî and reduced to only one doubleword SDRAM write transaction.
11.5.1.2.2
リード・マージ
ライト・バッファはリード・マージをサポートします。
■ リード・マージはFigure 11-5 に示すように、読出しサイクルがライト・バッファ内の「ダーティ」な
ダブル・ワードにヒットしたときに機能し、SDRAMから読出したデータにライト・バッファ内のデー
タが埋込まれ、
または置換えられます。
リード・マージはSDRAMサイクルを無くすことはありません。たとえダブル・ワードの全てのバイトが
ライト・バッファにヒットしたとしても、
SDRAMに対する読出しサイクルは発生し、読みだしたデータ全
てがライト・バッファ内の最新のデータと置換えられます。リード・マージは、読出しサイクルの度に
ライト・バッファをフラッシュする必要を無くし、
データ・コヒーレンシを保つと同時にSDRAMの性能
を向上します。
11-8
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
ライト・バッファとリード・バッファ
Figure 11-5
ライト・バッファ・リード・マージの例
Read Data
Read
Merge
Logic
EE00CDEF
EE001122
xxxxCDEF
Write Buffer (Data Segment)
Master
D[23:16]
55
AA
34
D[15:8]
FF
00 00 CD 56
D[7:0]
FE
00
EF 78
A000000
A[27:2]
BE[3:0]
FBC0000
12
0000000
CC
5678000
Address
11
CDEFA00
Write Data
D[31:24]
Write Buffer (Address Segment)
SDRAM
Notes:
This example illustrates a 32-bit master read of address A000000h, which causes a read hit in
the write buffer. This causes the lower data word from the write buffer to be merged with the upper
data word from SDRAM, to return the entire doubleword to the requesting master.
11.5.1.3
ライト・バッファのウオータマーク
ライト・バッファは8、16、24、
または28ダブル・ワードのウオータマークを設定できます。データがライ
ト・バッファに書込まれる際、新しいランクの格納場所が割当てられ、
ライト・マージやライト・コラプス
は適応されません。割当てられたランクに対して書込みサイクルが発生し、それがウオータマークの
設定範囲を超えている場合、
ライト・バッファはSDRAMコントローラに対して書込み要求を行います。
■ 大きなウオータマークの設定( 28ダブル・ワードなど)をすると、小さなウオータマークの設定に
比べて、
ライト・バッファはSDRAMヘの書込みの前に、
より多くのマスタからの書込みを受付ける
ことができます。もし、多くのダブル・ワード未満(バイト、ワード、または3 バイト)の書込みが
Am5 x 86 CPU 、PCI またはGP-DMA から要求されると、大きなウオータマークの設定では
SDRAMヘの書込みの前に多くの要求をこなすことができ、データのライト・マージやライト・コラ
プスを適応する機会も増えます。
■ 完全なダブル・ワード・データが多く、
ライト・マージやライト・コラプスがあまり起こらないアプリ
ケーションでは、小さなウオータマークの設定の方が良いでしょう。この場合ライト・バッファは
SDRAMへの書込みの頻度を高くし、ライト・バッファがフルになる事を防ぎます。
ライト・バッファのウオータマークの設定は SDRAM Buffer Control (DBCTL) レジスタ (MMCR offset
40h) のWB_WMビットで行います。通常は16ダブル・ワードのウオータマーク設定をお奨めします。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
11-9
ライト・バッファとリード・バッファ
SDRAMコントローラのアービタは、ライト・バッファへのパークをサポートしており、ライト・バッファ
からのSDRAM書込みを行った後、
アービタはそのままライト・バッファへのグラント信号をアサートし
続け、
マスタからの読出し要求かSDRAMリフレッシュが発生するまで続きます。ライト・バッファへの
グラントがデアサートされると、
ライト・バッファが再びSDRAM書込みを要求するのは、
ウオータマー
クを越えたアクセスが発生したときです。このパーク機能により、より高い優先度のマスタからの
SDRAM読出し、またはSDRAMリフレッシュが発生するまで、
ライト・バッファはSDRAMを使い続ける
ことができます。
11.5.2
リード・バッファとリード・アヘッド機能
SDRAMコントローラは8×4バイトのリード・データ・バッファを持っています。これらのバッファをまと
めて、2 キャッシュ・ライン分のデータを SDRAM から読込むことができます。リード・バッファは、
SDRAMからデータを先読みし、マスタからの読出し要求に0ウエイト・ステートで応えることによって
SDRAM読出しの性能を向上します。
SDRAMコントローラは、マスタが要求するデータの大きさに関わらず、常にキャッシュ・ライン全体分
のデータをSDRAMから読出し、
リード・バッファに格納します。例えばバーストしないマスタからの読
出し要求(単一のダブル・ワード)でも、SDRAMコントローラは1 キャッシュ・ライン分のデータを
SDRAMからリード・バッファに取込みます。リード・バッファのリード・アヘッド機能がイネーブルで、マ
スタが2つ以上のダブル・ワードをバースト・リードした場合、要求されたデータが含まれるキャッシュ・
ラインだけでなく、次のキャッシュ・ラインまでSDRAMから読み出します。
通常のデマンド・フェッチでは、
SDRAMコントローラはマスタからの読出し要求に応じて動作します。
リード・アヘッド機能がイネーブルの場合、
マスタが2つ以上のダブル・ワードをバースト・リード要求し
た時のみ、
リード・アヘッド・プリフェッチを行います。リード・アヘッド機能は、
Am5x86 CPUやPCIバー
スト時の、前方へのフェッチの傾向があるデバイスに対して効果を発揮します。GP-DMAはバースト
しないので、
プリフェッチは行いません。しかしながら、全ての読出しアクセスはキャッシュ・ライン単
位で行うので、GP-DMAも残りのキャッシュ・ラインのデータに対しては効果的に読込めます。
リード・バッファは2キャッシュ・ライン分のバッファを持っており、ディセーブルはできません。リード・
バッファのリード・アヘッド機能はディセーブルできます。
11.5.2.1
リード・アヘッド機能のディセーブル
リード・アヘッド機能がディセーブルの場合、SDRAMコントローラのプリフェッチ機能はディセーブル
されます。全てのマスタのSDRAM読出し要求はデマンド・フェッチになり、要求されたデータを含む
キャッシュ・ライン全体がリード・バッファに取込まれます。リード・アヘッド機能がディセーブルされて
いても、キャッシュ・ライン2つ分のバッファは全て利用することができ、最後の2つのデマンド・フェッ
チされたキャッシュ・ライン・データを保持します。
11.5.2.2
リード・アヘッド機能のイネーブル
リード・アヘッド機能がイネーブルの場合、
マスタが2つ以上のダブル・ワードをバースト・リードすると、
次のキャッシュ・ラインまでSDRAMから読み出します。プリフェッチされるキャッシュ・ラインは必ず要
求されたキャッシュ・ラインに続きます。アクセスがリード・バッファにヒットすると、
リード・アヘッド・ロ
ジックは現在リード・バッファから供給しているデータの次のキャッシュ・ラインをSDRAM読出し要求
します。
リード・バッファは2キャッシュ・ライン分の容量で、
アドレス・タグを持っています。読出しサイクルの度
に、
このタグが要求のアドレスと比較されます。比較が一致すると、そのデータがマスタに対して0ウ
エイト・ステートで返されます。このヒットの作業中に、次のキャッシュ・ラインがリード・バッファに存在
11-10
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
ライト・バッファとリード・バッファ
しないと、
プリフェッチ・ロジックはそれをSDRAMに要求します。要求されたデータがリード・バッファ
に無い場合、そのデータをSDRAMから取込み、
続けてプリフェッチ・ロジックは次のキャッシュ・ライン
の取込みを行います。読出しサイクルは要求されたダブル・ワードをまず取込むので、残りのダブル・
ワードを取込む間マスタは処理を続けることができます。
リード・バッファのリード・アヘッド機能がイネーブルの場合、
プリフェッチはマスタが2つ以上のダブル・
ワードをバースト・リードした時のみ行います。単一のダブル・ワード読出しではリード・アヘッド・プリ
フェッチされず、
要求されたデータを含むキャッシュ・ラインだけをリード・バッファに取込みます。GP-
DMA読出しは常に単一ダブル・ワードです。
システムのコヒーレンシを保つため、
リード・バッファの各キャッシュ・ラインはデータの有効性を示す
バリッド・ビットを持っています。キャッシュ・ラインのバリッド・ビットは、マスタのSDRAM書込みアク
セス、
または現在リード・バッファ内にあるキャッシュ・ラインと同じアドレスのデータを持つライト・バッ
ファ・データの書込みアクセスが発生するとクリアされます。
11.5.3
DAMの考察
リード・バッファとそのリード・アヘッド機能は、長期間バスを保有し(2つ以上のダブル・ワード)、バー
スト転送可能(読出しサイクルで)なマスタに対して、最適な性能を与えます。ほとんどのバースト可
能なマスタは、キャッシュ・ライン分のデータをバーストします。このようなマスタでは、
データの先読
みによりリード・バッファ・ヒットを期待でき、性能が向上します。
■ リード・アヘッド機能はAm5 x86 CPU のバースト・リード(キャッシュがイネーブルの場合、通常
キャッシュ・ライン分のバーストを行う)に対して効果を発揮します。キャッシュ・ライン・フィルの
間、Am5x86 CPUは1 バースト以上の期間バスを保有するので、
リード・バッファ・プリフェッチの
ヒットが期待できます。
■ PCIマスタのバースト・リード要求においても、
リード・バッファのリード・アヘッド機能は、SDRAM
からキャッシュ・ライン分のデータを要求するPCIマスタに対して効果を発揮します。
GP-DMAコントローラは複数のチャネルをサポートし、
シングル、
デマンドまたはブ
■ しかしながら、
ロック転送モードを持っており、GP-DMAチャネルの設定次第でリード・バッファが効果を発揮す
ることもあります。
前述のとおり、
リード・アヘッド機能がディセーブルされていても、SDRAMコントローラは読出し要求
に対してかならずキャッシュ・ライン全体を取込みます。DMA転送はバーストしない(単一のダブル・
ワード要求)ので、
リード・アヘッド機能がイネーブルであっても残りのキャッシュ・ライン分のデータし
か取込みません。
■ キャッシュ・ラインの先頭アドレスから昇順に行うよう設定されているDMAチャネルは、
リード・バッ
ファの機能を効果的に利用できます。デマンドまたはブロック転送モードでは、後続のアクセスが
1キャッシュ・ライン分リード・バッファにヒットするからです。
■ 降順モードに設定されたDMA転送も、
残りのキャッシュ・ラインが全て取込まれるのでリード・バッ
ファの効果を得ることができます。降順モードのDMA転送では、
最初のアクセスがキャッシュ・ラ
インの最後のデータの時に最高の性能が得られます。
DMA転送モードの種類は、
リード・バッファの性能に直接影響されます。理想的には同じDMAチャネ
ルができるだけ長くバスを保有するほど、
リード・バッファのヒットが多くなります。
複数のDMAチャネルを使用するシステムでは、各チャネルにバス権が移るたびにリード・バッファ・ミ
スが起こるでしょう。なぜならば、各DMAチャネルは違ったSDRAM領域に対してアクセスを行い、前
のDMAチャネルが取込んだキャッシュ・ラインを持っているリード・バッファにミス・ヒットするからで
す。したがって、理想的には、DMAチャネルが転送を開始したら、キャッシュ・ラインの最後に来るまで
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
11-11
ライト・バッファとリード・バッファ
できるだけ多くの転送を行うことで、最大の効果が得られます。つまり、
シングル転送モードに設定さ
れた複数のDMAチャネルを使用するシステムでは、前のDMAチャネルが取込んだキャッシュ・ライン
を有効に使うことができず、
リード・バッファ・ミスが起こることになります。
デマンド、
およびブロックDMA転送モードでは、残りのキャッシュ・ラインからのフェッチにおいてリー
ド・バッファの効果を得ることができるでしょう。これらのモードを使うデバイスは、
通常長めにバスを
保持し、
リード・バッファに取込んだデータを有効に利用できます。
11.5.4
PCIの考察
PCIターゲットして、ÉlanSC520 マイクロコントローラはPCIマスタからのSDRAMへの書込み、読出
し要求を受けます。PCIターゲットとして大きなバースト転送を容易にするために、PCIターゲット・ロ
ジックは各々64レベルの書込みデータFIFOと読出しデータFIFOを持っています。
11.5.4.1
書込みサイクル
PCIマスタのSDRAMへのバースト・ライトに対し、ÉlanSC520 マイクロコントローラはPCIターゲッ
ト書込みFIFOがフルになるまで0ウエイト・ステートで対応できます。PCIインタフェースからFIFOが
満たされる一方、FIFOからデータが取りだされSDRAMへ書込まれます。SDRAMコントローラのラ
イト・バッファがイネーブルの場合、
データは即座にPCIターゲット書込みFIFOからSDRAMライト・バッ
ファへ0ウエイト・ステート(ライト・バッファがフルでない場合)で転送され、
PCIターゲット書込みFIFO
はすぐに空になります。これによりPCIマスタはSDRAMのレイテンシを受けず、PCI バスを早期に解
放することができます。
SDRAMへのPCIターゲット書込み転送中、
コヒーレンシを保つためAm5x86 CPUのキャッシュはス
ヌープされます。CPU がライト・バック・キャッシュ・モードでスヌープがヒットした場合、更新された
Am5x86 CPUのキャッシュ・ラインは、PCIターゲット書込みを行う前にメモリにライト・バックされな
ければなりません。ライト・バッファがイネーブルの時、
Am5x86 CPUのキャッシュ・ラインのライト・バッ
クはライト・バッファにポストされ、後続のPCIターゲット書込み転送によりライト・バッファの中でライ
ト・バックされたデータが上書されます。結果としてメモリに対する転送の総量を減らします。
11.5.4.2
読出しサイクル
ほとんどのアプリケーションでは、PCIマスタはSDRAMへデータを転送し、終了時にプロセッサに対
し割込みを発生します。それを受けてプロセッサは、SDRAM内のデータにアクセスします。ライト・
バッファはリード・マージ機能を持っているので、
プロセッサが必要としているデータはまだリード・バッ
ファ内にあり、
読出し要求の前にリード・バッファをフラッシュするオーバヘッドが無く、
即座にプロセッ
サへデータを渡します。ライト・バッファがイネーブルの場合さらに、SDRAMコントローラはリード・ア
ラウンド・ライト動作を行うので、
ライト・バッファへの書込みの前後にプロセッサからの読出しを行う
ことができます。これにより読出しの性能が向上します。
PCIマスタのSDRAM読出し転送中、ÉlanSC520 マイクロコントローラのPCIターゲット読出しFIFO
はSDRAMから読出したデータで満たされます。そしてこのデータはターゲット読出しFIFOから、要
求しているPCIマスタへ直接送られます。PCIのバーストはリニアで昇順なので、SDRAMコントロー
ラのリード・アヘッド機能は、PCIマスタのスタート・アドレスから昇順にデータを(SDRAMから)先読
みします。ÉlanSC520 マイクロコントローラのPCIターゲット読出しFIFOはSDRAMからデータを要
求しますが、
データはプリフェッチによりリード・バッファにヒットし、PCIターゲット読出しFIFOに即座
に転送されます。
小さなバースト、
または頻繁な独立したPCI読出し転送よりも、大きなPCIバースト要求ほどリード・ア
ヘッド機能の恩恵を受けることになります。Am5x86 CPUはSDRAM読出し要求を最も多く行うので、
11-12
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
ライト・バッファとリード・バッファ
小さなバーストや頻繁な独立したPCI読出し転送は先読みを阻害します。例えば、Am5x86 CPUのた
めにプリフェッチしたデータはPCI読出しでは使われず、
またPCI読出しでプリフェッチしたデータは
Am5x86 CPUでは使われない可能性が高いからです。
11.5.5
ソフトウエアの考察
ライト・バッファとリード・バッファには、設定による多少のオーバヘッドがかかります。
ライト・バッファの設定を変更中は、
データのコヒーレンシはハードウエアによって保たれます。ライト・
バッファがディセーブルされた場合その内容は、
他のマスタのSDRAMに対する動作の前に自動的に、
かつ優先的にSDRAMにフラッシュされます。ライト・バッファの内容はディセーブルの際自動的にフ
ラッシュされますが、
SDRAM Buffer Control (DBCTL) レジスタ (MMCR offset 40h) のWB_FLUSH
ビットにより、
ソフトウエアからマニュアルでフラッシュさせることもできます。リード・アヘッド機能を
ディセーブルした場合、
プリフェッチされたデータはリード・バッファ内に残ります。
ライト・バッファとリード・バッファのリード・アヘッド機能は、
システム・リセットまたはプログラム・リセッ
ト後ディセーブルされます。SDRAMサイズ判定や、
SDRAMテスト、
または読出す前にSDRAMに書込
みが行われている必要があるソフトウエアの実行前には、
ライト・バッファをディセーブルすることが
必要です。ライト・バッファをディセーブルせずに行うと、正しい結果が得られないことがあります。
一般的にSDRAMサイズ判定やテストの間は、SDRAMへデータを書込み、それを読出し、SDRAMが
存在するかどうか(サイズ判定時)、
またはその場所のSDRAMが動作しているかどうか(テスト時)を
判定します。ライト・バッファはデータ・コヒーレンシの維持に伴うオーバヘッドを軽減するためにリー
ド・マージを行うので、
データの読み戻しの前にライト・バッファからSDRAMへ移されていないことが
あります。
(このオーバヘッドはコヒーレンシを維持するリード・マージ機能を持たない、
スヌープ機能
なしのライト・バッファで必要になります。)書込んだデータがライト・バッファにあるうちにそのデー
タを読みだすと、
リード・マージ機能によりSDRAMから取込んだデータにリード・バッファ内のデータ
を埋込んで返します。したがって、実際にSDRAMにデータが書込まれていなくても、正しいデータが
得られることになります。これにより、SDRAMが実装されていないにも関わらず、実装されているよ
うに見え、
正しいSDRAMのサイズ判定ができなかったり、
テストに間違ってパスしたりします。正しい
結果を得るためには、書込んだデータは読出す前にSDRAMに移動していなければなりません。
以上のような、書込んだデータがテストの前に実際にSDRAMに書込まれていなければならないよう
な場合、
ライト・バッファはディセーブルしなければなりません。通常のプログラムの動作においては、
ライト・バッファとリード・バッファはSDRAMの一部であるように見えます。
11.5.6
SDRAM帯域幅の向上
ライト・バッファがイネーブルの時にもたらされる性能向上は、SDRAM書込みのレイテンシからマス
タの書込み動作を切り離すことで得られます。これにより、全てのマスタからの頻度の高いSDRAM
読出し要求に対しても、
満足に対応する事が可能になります。これをさらに最適化するために、
ライト・
バッファがイネーブルの時、
書込みデータがライト・バッファ内にポストされている間でもマスタからの
読出し要求を受付けます。結果として、
ライト・バッファがイネーブルの時、SDRAMに対する読出しは
優先的に行われることになります。しかしながら、次の状況では、
ライト・バッファからのSDRAM書込
みが優先的に行われます。
■ ライト・バッファがディセーブルされ、
ライト・バッファにフラッシュのプライオリティが付けられた場
合。
■ ユーザがマニュアルでライト・バッファをフラッシュした場合。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
11-13
ライト・バッファとリード・バッファ
ライト・バッファはデータのリード・マージを行うので、
コヒーレンシのためのオーバヘッドは最小に抑
えられます。ライト・バッファのリード・マージ機能は、読出し、書込みサイクル中にライト・バッファが内
容をスヌープする事で実現します。ライト・バッファ内のデータのアドレスに対して読出しが発生した
という特殊な状況で、
コヒーレンシを保つためにライト・バッファ全体をフラッシュすることで被るレイ
テンシをなくすことができます。このような場合、SDRAMから読みだされたデータに対し、
より新し
いデータがライト・バッファから取りだされ、SDRAMからの古いデータと置き代わります。コヒーレン
シを保つためのライト・バッファのフラッシュをなくすことで、
リード・アラウンド・ライト動作をいっそう
効率良くします。
ライト・バッファが最大に効果を発揮するのは、連続するバイトを個々にSDRAMに書込むときです。
例えば、GP-DMAが8ビット・デバイスからSDRAMに64バイトのブロック転送を行う場合です。ライト・
バッファ無しでは、
これはSDRAMに対して64回のバイト転送が発生します。ライト・バッファのライト・
マージ機能により、個々の連続するバイトはマージされ16回のダブル・ワードSDRAM書込みになりま
す。したがってこの例では、最終的にSDRAMに書込む回数が64から16回に減らされます。
メモリ・システ
ライト・バッファはまた、複数のマスタからSDRAM書込みが頻繁に行われた場合でも、
ムの性能を向上します。ライト・バッファはデータのポストに際し0ウエイト・ステートで終了するので、
S D R A M インタフェースはマスタからの他の要求に対して早期に解放されます。次のマスタが
SDRAM アクセスのアービトレーション中に、ライト・バッファは前のマスタがポストしたデータを
SDRAMへ書込むことができます。このため、複数のマスタからSDRAM書込みが頻繁に行われてい
る間、
ライト・バッファはアービトレーションのオーバヘッドを隠すことができます。この様子を Figure
11-6 に示します。
Figure 11-6
ライト・バッファがディセーブル/イネーブルの場合のバス動作
SDRAM access
CPU
Arb
Arb
SDRAM access
Arb
SDRAM access
Arb
PCI
Arb
GP Bus
Arb
SDRAM access
CPU
System with Write Buffer Disabled
SDRAM access
SDRAM access
Arb
CPU
Arb
SDRAM access
Arb
PCI
Arb
SDRAM access
Arb
GP Bus
Arb
CPU
System with Write Buffer Enabled
リード・バッファのリード・アヘッド機能が最大に効果を発揮するのは、連続的に先読みがヒットした場
合です。この状態はバースト期間の長いマスタ、
または同じマスタからの連続的なバーストによって
起こります。例えば、
PCIマスタが256バイト(64ダブル・ワード)のSDRAM読出しを行うとします。リー
ド・バッファのプリフェッチは前方に進み、
またPCI転送もリニアに前方に進むので、
リード・アヘッド機
能によってプリフェッチされたデータによって連続するデータの要求が満たされます。
11-14
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
ライト・バッファとリード・バッファ
11.6
初期化
ライト・バッファとリード・バッファはシステム・リセットによってリセットされます。このシステム・リセッ
トにより、
ライト・バッファとリード・バッファのリード・アヘッド機能はディセーブルされ、関連するステー
ト・マシンは全てアイドル状態になります。
プログラマブル・リセット中、
ライト・バッファはリセットされ、
内容は保存されません。リード・バッファの
内容はプログラマブル・リセット時、保存されます。プログラマブル・リセットにより、
ライト・バッファと
リード・バッファのリード・アヘッド機能はディセーブルされます。このタイプのリセットに関して、詳し
くは第6章「リセットの生成」を参照してください。
SDRAMのサイズ判定やテストの前には、誤った判定をしないようライト・バッファをディセーブルする
ことが必要です。SDRAMのサイズ判定やテスト中は、
リード・アヘッド機能もディセーブルすることを
お奨めします。リード・アヘッド機能により誤った結果になることはありませんが、
サイズ判定やテスト
のアルゴリズムでは連続アクセスをしないので、いらないデータのプリフェッチにより若干性能が低
下することになります。この後は、
自由にライト・バッファやリード・アヘッド機能をイネーブルしてかま
いません。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
11-15
ライト・バッファとリード・バッファ
11-16
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
第12章
ROM/Flash コントローラ
12.1
概要
ÉlanSC520 マイクロコントローラはROM、EPROM、およびFlashデバイスにインタフェースする高
性能なROMコントローラを持っています。32ビット・データ幅やページ・モードを持つデバイスをサ
ポートし、高性能を得ることができます。
この節では、ROM、EPROM、
またはFlashのことをROMと称します。またROMは、
チップ・セレクト信
号に接続されたすべてのバンクのROMデバイスを指します。32ビットROMは、
8ビットROMデバイス
4個またはその他の組み合せで構成されているものとします。
ROMコントローラは以下の機能を持っています。
■ 広範囲にわたる業界標準のROM、EPROM、
およびFlashデバイス、
さらにページ・モードを持つ
デバイスをサポートしています。
■ 3つのチップ・セレクトがあります。各チップ・セレクトは64M バイトまでサポートします。
– 1つはブート時に必ず使用します。
– 残りの2つはオプションであり、GP バス・チップ・セレクトと多重化されています。
■ ページ・モード及び非ページ・モード両デバイスのタイミングをプログラムできます。
コード実行の制御、キャッシュ
■ Programmable Address Region (PAR) レジスタの属性により、
可否、Flash への書込み保護の機能を提供します。
ÉlanSC520 マイクロコントローラは8ビット、16ビット、および32ビットのROM構成をサポートします。
■ ROMアドレスには常にGPアドレス・バスを使用しますが、ROMデータ・バスはGPバスのデータ・
バスかSDRAMデータ・バスを選ぶことができます。
■ ブート・デバイス(BOOTCS)用には、PWRGOODのアサートによってコンフィギュレーション・ピ
ンの状態が取込まれ、ROMのデータ幅、
どちらのバス( GP バスまたはSDRAMインタフェース)
をROMのデータ・バスに使うかを設定します。
– 残り2つのオプションのチップ・セレクトは、ROMコントローラのコンフィギュレーション・レジ
スタで設定します。
■ 8ビット、16ビット・バス幅のROMは、
GPバスまたはSDRAMデータ・バスどちらでもサポートでき
ますが、Table 12-1 に示すように、32ビット・バス幅の設定ではSDRAMデータ・バスしか使用で
きません。
Table 12-1
ROM/フラッシュ・データ・バスの接続オプション
Data Bus
8-Bit ROM
16-Bit ROM
32-Bit ROM
GP Bus data pins
Yes
Yes
No
SDRAM interface data pins
Yes
Yes
Yes
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
12-1
ROM/Flash コントローラ
12.2
ブロック図
Figure 12-1 は、ROMコントローラのブロック図を示します。
Figure 12-1
ROMコントローラのブロック図
CFG2–CFG0
Élan™SC520 Microcontroller
Data Bus (GPD15–GPD0 or MD31–MD0)
GPA25–GPA0
Configuration Registers
BOOTCS
ROMCS1
ROMCS2
GPA25–GPA4
Pinstrap data
for BOOTCS
GPA3–GPA0
ROM Controller
Reset
Configuration data
M
u
x
Configuration data
address[3–0]
rom_cycle
CPU
PAR
Registers
rdy, brdy
ROMRD
be3–be0, blast,
Programmable
FLASHWR
ads, w/r, x5_ad[3–2]
Timing Control
BOOTCS
ROMCS1*
BOOTCS
ROMCS1
ROMCS2
wr_protect
ken
Clock
12.3
ROM
ROMCS2*
ROMBUFOE
*May be multiplexed
with other pin
functions.
cpu_clk (33 MHz)
システム設計
タイミング表や詳しいタイミング図に関しては、ÉlanSC520 Microcontroller Data Sheet, 注文番
号#22003 を参照してください。
ブート・デバイス(BOOTCS)の設定情報、
特にROMのバス幅や場所は、
外部ピン・ストラップによって得
られます。CFG2 ピン・ストラップは、バスがGPバスまたはSDRAMデータ・バスのどちらに配置されて
いるかを設定します。CFG1-CFG0 ピンは、
ROMデバイスのデータ幅を決めます。CFG2-CFG0 は
12-2
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
ROM/Flash コントローラ
PWRGOODがアサートされた時に取り込まれます。詳しくは「12.6 初期化」を参照してください。
ROMCS1 と ROMCS2 によって、
さらに2つのROMチップ・セレクトをサポートします。これらのピン
は Table 12-2 に示すとおり、汎用チップ・セレクト GPCS1 と GPCS2 にそれぞれ多重化されていま
す。片方の機能をイネーブルすると、Table 12-2 に示される他の機能はディセーブルされます。
Table 12-2
多重化されたROM信号
Default Signal
Alternate Function Control Bit
Register
ROMCS2
GPCS2
GPCS2_SEL
ROMCS1
GPCS1
GPCS1_SEL
Chip Select Pin Function Select
(CSPFS) register (MMCR offset C24h)
ROMコントローラは様々な性能や、
システムの電圧アイソレーションの要求に対応します。動作電圧
が異なる他のデバイスと共存するため、ROMデータ・ピンはGPバスまたはSDRAMデータ・バスのど
ちらかに接続することができます(Figure 12-2 )。1つのROM バンクのデータ・ピンはどちらか一方
のデータ・バスに接続しなければなりません(つまり、ROMデータ・ピンは2つのバスに同時に接続し
てはいけません)。
■ ROMデバイスを32ビット・バス幅で使用する場合、SDRAMデータ・バスを使用します。したがっ
て、
システム設計者はSDRAMの負荷容量やタイミングを熟慮しなければなりません。第10章の
「 10.3 システム設計」を参照してください。
■ ROMデバイスはGPバスのデータ・ピンにも接続できますが、
この場合バス幅は8または16ビット
に制限されます。Table 12-1 を参照してください。
どちらのデータ・バスに接続されているかに関わらず、
ROMデバイスのアドレスは常にGPバスから出
力されるので注意してください。
12.3.1
電圧のアイソレーション
ÉlanSC520 マイクロコントローラでは、SDRAM バスもGPバスも5V耐圧、3.3V駆動です。しかしな
がら、5V ROMデバイスを5V耐圧でない3.3V SDRAMと同時に使用する場合には、
アイソレーション
のバッファが必要です。例えば、5V耐圧でない3.3V SDRAMが5V ROMデバイスと同じデータ・バス
を使用している状況でアイソレーション・バッファを入れない場合、
ROM読出し時にSDRAMが破壊さ
れることがあります。
ROMBUFOE信号はアイソレーション・バッファをサポートするための信号で、デバイスがSDRAMバ
ス、GP バスどちらのデータ・バスに接続されていても使用できます。このような状況での接続例を
Figure 12-2 に示します。ROMBUFOEはROMに対するすべてのアクセス中に、デバイスがSDRAM
バス、GPバスどちらのデータ・バスに接続されていてもアサートされます。
SDRAMコントローラのリード、ライト・バッファは、ROMデバイスのアクセスでは働きません。ROMが
SDRAMバスに接続されていても同様です。SDRAMのバッファリングがイネーブルで、ROMデバイス
がSDRAMデータ・バス(MD31-MD0)に接続されている場合、ROMデバイスのデータ・ピンをコント
ロールするにはROMRDを使用しなければなりません。このような場合、
外部デバイスはROMRDがア
サートされている間はデータを駆動しないように、
システムを設計しなければなりません。
SDRAMのデータ・バスをROMと共有する場合、注意深くデータ・バスの負荷を考慮しなければなり
ません。場合によってはROMデバイスによる高負荷を回避するために、バッファを使用する必要があ
ります。バッファを使用するシステムでは、ROMBUFOE信号を用いることができます。同様に、GPバ
スにおいても負荷の問題を解決するためにバッファ使用し、ROMBUFOEでROMとの間のバッファを
コントロールできます。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
12-3
ROM/Flash コントローラ
もしSDRAMバス、
GPバス両方にROMを接続し、かつバッファを使用する(どちらか一方にでも)シス
テムでは、バスの競合を防ぐためにROM チップ・セレクトとROMRDを必要に応じてデコードし、
ROMBUFOEを制御しなければなりません。例えば、SDRAMのバッファリングがイネーブルの場合、
SDRAMコントローラはポストされたデータをSDRAMに書込みます。この時、Am5x86 CPUがGP
データ・バス上のROMから読出しアクセスを行うと、
SDRAMバスに接続されたアイソレーション・バッ
ファがアクティブになり、
SDRAMコントローラのアクセスと競合することになります。これを避けるた
めには、ROMBUFOEは対応するROMCSxピンを同時に使って制御しなければなりません。
Figure 12-2
電圧のアイソレーション例
SDRAM
Élan™SC520
Microcontroller
3.3-V SDRAM
Bus
5-V ROM
Buffer
ROMBUFOE
GP Bus
SDRAM
Élan™SC520
Microcontroller
Bus
5-V Peripheral
3.3-V SDRAM
3.3-V ROM
GP Bus
3.3-V Peripheral
3.3-V ROM
SDRAM
Élan™SC520
Microcontroller
Bus
3.3-V SDRAM
3.3-V ROM
GP Bus
3.3-V ROM
Buffer
5-V Peripheral
GPDBUFOE
Notes:
Both the GP bus and the SDRAM bus can be operated at either 5 V or 3.3 V.
12-4
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
ROM/Flash コントローラ
12.4
レジスタ
Table 12-3 に、ROMコントローラの設定に使用するメモリ・マップされたレジスタを示します。
Table 12-3
メモリ・マップされた
ROMコントローラ・レジスタ
Register
Mnemonic
MMCR
Offset
Address
BOOTCS Control
BOOTCSCTL
50h
BOOTCS device select (SDRAM bus or GP
bus), device data width, device operation mode,
subsequent access delay, first access delay
ROMCS1 Control
ROMCS1CTL
54h
ROMCS1 device select (SDRAM bus or GP
bus), device data width, device operation mode,
subsequent access delay, first access delay
ROMCS2 Control
ROMCS2CTL
56h
ROMCS2 device select (SDRAM bus or GP
bus), device data width, device operation mode,
subsequent access delay, first access delay
Chip Select Pin Function
Select
CSPFS
C24h
ROMCSx or GPCSx pin function select
12.5
Function
動作
システムにおいてROM/Flashデバイスは、一般的に2種類の情報、すなわちシステム設定データとプ
ログラム・コードを格納しています。これらの使用法によってはシステムが持つROM/Flashデバイス
の選択も変わってきます。
システムの設定を読出すだけならば低速なROM/Flashでかまいませんが、
プログラムを直接実行す
るには不適切です。このような場合、
プログラム・コードを一度SDRAMにコピーして実行することも
できます。
(シャドウイングに関して、詳しくは第3章「システムの初期化」を参照してください。)
コード・ブロックをコピーすれば、
コピー動作の時に一度だけしかアクセスしないので、
ROMの性能は
それほど重要ではなくなります。より高性能が必要なROMから直接コードを実行する(Execute-InPlace オペレーティング・システム)場合、バースト機能の無いROMに対してまで高速アクセスをし
ないよう、注意が必要です。
この節では、以上のような様々な状況における、違った設定や動作モードを解説します。
12.5.1
ROMサポート
ÉlanSC520 マイクロコントローラが持つ3つのチップ・セレクト信号は、すべて最大64Mバイトまで
サポートします。各チップ・セレクトの設定例を以下に示します。
■ 4つの1Mビット×8デバイスを32ビットSDRAMデータ・バスに接続し、全4M バイト。
■ 各々4つの8Mビット×8デバイスを2つのバンクに持ち、全64Mバイト。
■ 各々2つの8Mビット×16デバイスを2つのバンクに持ち、全64Mバイト。
■ 各々2つの8Mビット×8デバイスを4つのバンクに持ち、全64Mバイト。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
12-5
ROM/Flash コントローラ
ROMデバイスはAm5x86 CPUだけがアクセスできます。外部PCIマスタやGP-DMAがROMアクセ
スを行った場合、ÉlanSC520 マイクロコントローラの正常な動作は保証されません。
データ・バスがSDRAM バス、
GPバスのどちらにつながれていても、ROMデバイスへのアドレスは常
にGP バスを介して出力されます。
ROMコントローラはAm5x86 CPUの読出しアクセスに対し、バス・サイジングを行いません。言換え
れば、bs16とbs8はROM読出しアクセスでは一切アサートされないということです。ROMコントロー
ラはAm5x86 CPUが要求する読出しデータを、可能なかぎり集めるべきです。このために、ROMコ
ントローラは内部のバイト・イネーブル信号 be3-be0 とアクセスのキャッシュ可否をモニタします。
バイト・イネーブルに基づき、バーストでないAm5x86 CPUサイクルに対し1–4 バイトを返し、バース
ト・アクセスに対しては最大でキャッシュ・ライン全体分、16 バイトを返します。
ROMコントローラはバースト・ライトや、書込みサイクル中のマルチプル・データ・オペレーションをサ
ポートしません。ROMデバイスに対する書込みでは、通常は性能が要求されることはありません。書
込み動作時、
ROMコントローラはAm5x86 CPUに対し、brdyではなくrdyを返します。さらに、Am5x86
CPUは選択されたROMデバイスのデータ・サイズに応じてbs16またはbs8をアサートします。
12.5.1.1
サポートするデバイスの種類
ROMコントローラは2種類のROMデバイスをサポートします。
■ Non-page-mode ROM −− どれだけのデータが要求されたかに関わらず、常に同じアクセス
時間を持つROMデバイス。
■ Advanced page-mode ROM −− 同一メモリ・ページ内のデータであれば、複数のデータを高
速にアクセスでき、
性能を向上できるデバイス。ROMコントローラはROMデバイスのページ・サ
イズに関する制限はなく、ページ・サイズ4のROMデバイスはすべて使用することができます。し
かしながら、ページの4番目のエントリの後、ROMコントローラは新しいイニシャル・アクセスを開
始します。最初のアクセスによりページが開かれ、同一ページ内の後続のデータは、
アドレスの下
位ビットを変化させるだけで高速に読むことができます。
Non-page-mode ROM や Advanced page-mode ROM はクロックを必要としません。
Figure 12-3 は16ビット・ページ・モードROMからの、4ワードの読出しを示します。SDRAMコントロー
ラのライト・バッファはROMコントローラと関係がありません。
Figure 12-3
page-mode ROM:16ビットROMからの4ワードのフェッチ
GPA25–GPA0
MD31–MD0
ROMRD
- - - 0h
- - - 2h
Bytes 0-1
- - - 4h - - - 6h
Bytes 2-3 Bytes 4-5
Bytes 6-7
Notes:
Subsequent reads occur
within the same memory
page, by changing the lower
address bits only, resulting in
a fast access of eight bytes.
BOOTCS
Initial memory page opened here
12-6
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
ROM/Flash コントローラ
12.5.2
ROMコントローラとタイミング設定
ÉlanSC520 マイクロコントローラは、チップ・セレクト毎に下記のROMデバイス設定を行うことがで
きます。
■ ROMのロケーション( GPデータ・バス、
またはSDRAMデータ・バス)
■ ROMの幅( 8、16、
または32ビット)
■ 動作モード(ページ・モードの可否)
■ アクセス・タイミング
12.5.2.1
ROMのロケーション
ROMのアドレスには必ずGPバス・アドレスを使用しますが、ROMデータ・バスはGPデータ・バスまた
はSDRAMデータ・バスに接続できます。
ブート・デバイス(BOOTCS)の設定は、CFG2 ピン・ストラップでどちらのバスをROMのデータ・バ
スに使用するかを決めます。他のROMデバイス(ROMCS1とROMCS2)は、初期化ソフトウエアに
よって設定情報をプログラムしなければなりません。
■ BOOTCS Control (BOOTCSCTL) レジスタ (MMCR offset 50h) のDGPビットは、PWRGOOD
ピンがアサートされたときに取込まれたCFG2ピンの値が格納されています。
これらのチップ・セレクトでイネー
■ ROMCS1 および ROMCS2 control レジスタのDGPビットは、
ブルされるROMデバイスのロケーションを設定します。
12.5.2.2
ROMの幅
ROMデバイスのバス幅は、8ビット、16ビット、または32ビットをサポートします。
CFG1-CFG0ピン・ストラップがブート・デバイス(BOOTCS)のバス幅を決定します。他のROMデバ
イス(ROMCS1とROMCS2)は、初期化ソフトウエアによって設定情報をプログラムしなければなり
ません。
■ BOOTCS Control (BOOTCSCTL) レジスタの WIDTHビットは、PWRGOODピンがアサートさ
れたときに取込まれたCFG1-CFG0ピンの値が格納されています。
■ ROMCS1 および ROMCS2 control レジスタの WIDTHビットは、
これらのチップ・セレクトでイ
ネーブルされるROMデバイスのバス幅を設定します。
12.5.2.3
動作モード
各チップ・セレクト信号に用意されたコントロール・レジスタのMODEビットは、
接続されるデバイスの
動作モードを設定します。
データが供給されるレートによって、下記の動作モードに分けられます。
■ Non-page mode −− すべてのサイクルに対して同じアクセス・タイムを持つデバイス。Figure
12-4に3ウエイト・ステート動作のROMを示します。
■ Page mode −− ページ・サイズ内の後続データを高速でアクセスできるデバイス。Figure 125 にイニシャル1ウエイト、ページ内0ウエイト・ステートのアクセスが可能なROMを示します。
ページ・モードROMに対して境界が会っていないアクセスが発生した場合、つまり、すべてのデータ
が同一ページに入らないアクセスの場合、新しいページを開かなければなりません。その場合,多少
のディレイが追加されます( Figure 12-6 を参照)。ページ内のランダム・アクセスはサポートしてい
ません。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
12-7
ROM/Flash コントローラ
Figure 12-4
Non-page mode ROM: 16ビットROMからの4ワードのフェッチ
GPA25–GPA0
- - - 0h
GPD15–GPD0, or
MD15–MD0
- - - 2h
- - - 8h
- - - 4h
2
1
3
4
ROMRD
BOOTCS
Figure 12-5
page-mode ROM:32ビットROMからの 4つのダブルワード(Aligned)のフェッチ
GPA25–GPA0
- - - 0h
- - - 4h
MD31–MD0
1
2
- - - 8h - - - ch
3
4
ROMRD
BOOTCS
Figure 12-6
page-mode ROM:8ビットROMからの4つのダブルワード(Unaligned)のフェッチ
GPA25–GPA0
GPD7–GPD0, or
MD7–MD0
2
3
2
3
4
5
4
5
ROMRD
BOOTCS
Page crossing
12.5.2.4
アクセス・タイミング
アクセス・タイミングはBOOTCS または ROMCSx Control レジスタで設定します。
– ページ・モードを持たないROMのアクセスと、ページ・モードROM のイニシャル・アクセスの
ディレイを、FIRST_DLYビット・フィールドに設定します。
– ページ・モードROMのページ内アクセスのディレイをSUB_DLYビット・フィールドに設定しま
す。
Table 12-4 は、プログラムされたウエイト・ステートのアクセス・タイミングを示します。この値は下
記の式で得られます。
AccessTime = (NumberWaitstates + 1) * Period - Setup
但し
Period はクロック期間( 33.333MHz水晶発振子を使用時30ns )。
Setup は20nsとする(実際のセットアップ・タイムと、ページ内アクセス時のアドレス変化の
ディレイを計算に入れる)。
12-8
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
ROM/Flash コントローラ
Table 12-4
例:ROMアクセスのタイミングとウエイト・ステート
Wait States
Access Timing (ns)
0
10
1
40
2
70
4
130
Notes:
1. This example assumes that a 33.333-MHz
crystal is being used in the system.
12.5.3
バス・サイクル
ROMコントローラは常に、Am5x86 CPUが要求したすべてのデータを返します。つまり、ROMから
の読出しにbrdyを返します。実際のROMアクセスの数は、Am5x86 CPUの転送のキャッシュの可否、
要求されたバイト数、ROMの幅によって変わります。 最小の転送は1 バイトです。最大の転送は16
バイト(キャッシュ・ライン・フィル)です。ROMの幅によっては、要求されるデータをアクセスする数は
変化します( Table 12-5 を参照)。
Table 12-5
アクセス数とROMの幅
ROM Width
12.5.3.1
Minimum Number of
Accesses
Maximum Number of
Accesses (Cache-Line Fill)
8 bit
1
16
16 bit
1
8
32 bit
1
4
シングルCPU読出しアクセス
Figure 12-7 は、16ビットのデータ(GPD15-GPD0 )を、8ビット1ウエイト・ステートでページ・モード
なしのROMからフェッチする例です。転送はバス・サイクルの始動(adsのアサート)から始ります。そ
してROMコントローラは2回のROMアクセスを行い、必要なデータを集めた後サイクルを終了しま
す。ROMデバイスが16または32ビット幅であれば、
1回のROMサイクルしか発生しないことに注意し
てください。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
12-9
ROM/Flash コントローラ
Figure 12-7
マルチアクセス例:8ビットROMから1ダブルワード( 2バイト)以下のデータをフェッチする場合
CPU clock
ads
GPA25–GPA0
ADR+0
GPD7–GPD0, or
MD7–MD0
ADR+1
0
1
brdy
blast
ROMRD
BOOTCS
Notes: An 8-bit ROM is attached to the 16-bit GP bus.
12.5.3.2
ページ・モード読出しアクセス
ROMコントローラはAm5x86 CPUのバースト動作にも対応しています。ページ・モードROMを使用
するとさらに効果が高まります。Figure 12-8 に、2-1-1-1 バースト・シーケンス、最初のアクセスに
2サイクル、後続のすべてアクセスを1サイクルで行う例を図示します。
Figure 12-8
32ビットROMから4ダブルワードをフェッチする場合のページ・アクセス
(バースト・シーケンス2-1-1-1)
CPU clock
start cycle
ads
GPA25–GPA0
---C
---8
---4
---0
MD31–MD0
brdy
blast
BOOTCS
ROMRD
データ幅が32ビット未満のROMデバイスに対するバーストでは、
ROMコントローラは要求されたデー
タを集めるために複数回のサイクルを実行します。16ビット・デバイスに対する32ビット・アクセスで
は、
ROMコントローラは2回の16ビット・アクセスを行います。18ビット・デバイスに対する32ビット・ア
クセスでは、ROMコントローラは4回の8ビット・アクセスを行います。16ビットROMデバイスに対す
る32ビット要求の例を、Figure 12-9 に示します。
12-10
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
ROM/Flash コントローラ
Figure 12-9
16ビットROMから2ダブルワードをフェッチする場合のページ・アクセス
CPU clock
ads
start cycle
GPA25–GPA2
---8
---C
GPA1–GPA0
0
2
0
2
GPD15–GPD0, or
MD15–MD0
brdy
blast
BOOTCS
ROMRD
12.5.3.3
キャッシュ・ライン・フィル
キャッシュ可能なメモリ領域に対してアクセスすると、Am5x86 CPUに対してキャッシュ・ライン・フィ
ル動作であることを示すken信号がアサートされます。これによりAm5x86 CPUは4つのダブル・ワー
ド(16バイト)を読込み、複数回のROMアクセスが発生します。32ビットROMでのキャッシュ・ライン・
フィル動作を、Figure 12-10 に示します。
Figure 12-10 キャッシュ・ライン・フィル(32ビットROMから4つのダブルワードのフェッチ)
CPU clock
ads
ken
GPA25–GPA0
---C
---8
---4
---0
MD31–MD0
brdy
blast
BOOTCS
ROMRD
12.5.3.4
Flashデバイスへの書込み
ÉlanSC520 マイクロコントローラは書込み可能なFlashデバイスをサポートしています。Flashデバ
イスはランダム書込みアクセスを意図したものではないので、バースト・ライト動作はサポートしてお
らず、
したがってrdyがAm5x86 CPUに返されます。Figure 12-11 は、Flash ROMへの書込みサイ
クルを示します。加えて、書込みアクセスの場合、ROMコントローラはバス・サイズ信号をアサートし
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
12-11
ROM/Flash コントローラ
てROMのバス幅を示します。これにより16ビットの書込みを8ビットROMに対して行う場合、
Am5x86
CPUの書込みサイクルは2回行われます。
Flashデバイスに対する書込みアクセスは、デバイスのデータ幅未満のサイズで行うことはできませ
ん。例えば、16ビットFlashデバイスに対して8ビット書込みを行うことは禁止されています。同様に16
ビットFlashデバイスに対して、24ビット書込みを行うこともできないので注意が必要です。これは、24
ビット書込みが16ビットの書込みと、8ビットの書込みの2回にわけて行われるためです。
Figure 12-11 フラッシュメモリーへのワード書込みサイクル
CPU clock
ads
GPA25–GPA0
address
GPD15–GPD0, or
MD15–MD0
W
rdy
bs16
FLASHWR
BOOTCS
12.5.4
ソフトウエアの考察
12.5.4.1
アドレスのデコード
ROMコントローラはアドレスのデコードを行いません。チップ・セレクト信号を生成するためのアドレ
ス・デコードは、Programmable Address Region (PAR) によって行います。PARレジスタに設定
された領域に加えて、
デフォルトの領域 FFFF0000-FFFFFFFFh がシステム・リセットによって設定さ
れ、初期のブートROMからのフェッチに適応されます。ROMチップ・セレクトのアドレス領域設定や
ROMのシャドウイングに関しては、第3章「システムの初期化」および第4章「システム・アドレス・マッ
ピング」を参照してください。
12.5.4.2
Flashメモリのプログラム
Flashには8ビットと16ビットのものがあり、セクタ分けされた構造を持っています。セクタは固定また
は可変で、8-32K バイトのレンジを持ちます。新しい大容量のFlashデバイスでは、最大256K バイト・
セクタを持つものもあります。
Flashデバイスでは、セクタ消去、セクタ保護、および特定バイトのプログラムなど、いくつかのプログ
ラム動作ができます。
■ バイト消去の値は0FFhです。
■ ビットは1から0へプログラムされます。
■ セクタ内のビットを1つでも0から1へ変更する必要がある場合は、
セクタ全体をまず消去してプ
ログラムし直さなければなりません。
ほとんどのFlashデバイスは、Am5x86 CPUがそのデバイスからデータをフェッチしている間はプロ
グラムすることができません。そのため、
プログラムするためのコードは、
プログラム中は別のデバイ
12-12
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
ROM/Flash コントローラ
スに置いておく必要があります。これは特に難しいことではありません。なぜならば、Flashのプログ
ラムは通常、
高性能を要求されるような動作ではなく、ユーザ設定などの時に行うからです。しかしな
がら、新しい「デュアル・ブート」Flashでは、1部の領域から命令のフェッチを行いながら、他のセクタ
を消去またはプログラムすることができます。
一般的にFlashのプログラム(または消去)は、更新しようとするセクタ内のアドレスに対してプログラ
ム・コマンド・シーケンスを書込み、続けて消去コマンドやターゲット・アドレスおよびデータを書込む
ことによって行います。
以下はプログラム・コマンド・シーケンスの例です。
1.
セクタ内のアドレス 555h にバイト AAh を書込む。
2.
セクタ内のアドレス 2AAh にバイト 55h を書込む。
3.
セクタ内のアドレス 555h にバイト A0h を書込む。
4.
実際のデータを実際のアドレスに書込む。もし1Mバイトのブート・デバイスが 0FFF00000h か
ら始るなら、
最初のセクタのプログラム・シーケンスはアドレス 0FFF00555h から書込むことに
なる。
実際の値やアドレスはデバイス毎に異ります。
コマンドを発行した後、
次のプログラム要求をFlashに送る前に、
組込まれたアルゴリズムが終了する
のを待たなければなりません。これを行ういくつかの方法があります。
■ 1つは、ready/busy ハードウエア・ピンの状態をポーリングする(PIOに接続しておく)方法です。
プログラムしたアドレスへの読出しを繰返し、
イベントが終了したことを示すいくつかの
■ 2つめは、
印のうち1つをみつけることです。
一般的に待ち時間は16msです。セクタ消去は1sから最大10s(デバイスの寿命限界)かかります。
プログラム・コマンド・シーケンスもステータス・リードも、Flashをプログラムするアプリケーションで
のÉlanSC520 マイクロコントローラの使用方法に直接関わってきます。
最初に、
プログラムしようとする領域はキャッシュ不可に設定しなければなりません。キャッシュ可能
な場合、
プログラム・コマンド・シーケンスは物理アドレスを変更しないので、次に読出したときに正し
いデータが返らないことになります。また、ステータス・リードは外部から供給されたビットが、1つの
読出しから別の読出しに変わることに依存しています。キャッシュからこのような読出しを行うと、正
しく機能しないことは明白です。プログラムが終了後、キャッシュをイネーブルにします。
他の明白な関連事項は、Flashデバイスに書込むためにはストローブ信号が必要だということです。
デバイスはそれが持つデータ幅でプログラムされ、バイト書込みイネーブルを持っていません。書込
みに際し、
最小限の書込みパルス幅が必要です。これは通常、
自然なチップ・イネーブルの期間であり、
特別なタイミングの修正は必要ありません。Flash は500ns の最小リセット・パルス幅が必要で、
ÉlanSC520 マイクロコントローラはこの仕様を満たします。
12.5.5
レイテンシ
ROMレイテンシとは、ROMアクセスがシステム性能を下げる要因になる時間を表します。例えば、
Am5x86 CPUがROMをアクセス中、他のマスタはSDRAMにアクセスすることができません。レイテ
ンシ時間は、
おもにROMのバス幅とアクセス・タイムに影響されます。
Execute-In-Place (XIP) オペレーティング・システムや頻繁に参照されるデータ構造を持ちROMが、
32ビットで構成されているときに最小のレイテンシが得られます。これによりデータ転送が早期に終
了し、他のマスタにSDRAMリソースを解放します。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
12-13
ROM/Flash コントローラ
例えば、4つのダブル・ワードを 2-1-1-1 ページ・モードROMから読出す場合、
このデータをロードす
るのにかかる時間は5クロックです。しかしながら、同じデータをページ・モード無しの8ビットROMか
らロードすると、1アクセスあたり2ウエイト・ステートとして48クロックかかります。前述の例では十分
な性能が得られますが、後述の例では許容できないでしょう。
12.6
初期化
ROMコントローラはÉlanSC520 マイクロコントローラのシステム・リセットに接続されています。
システム設計者は、BOOTCSにつながるブートROMの設定をピン・ストラップで構成しなければなり
ません。ÉlanSC520 マイクロコントローラのCFG2-CFG0ピンは、PWRGOODがアサートされた時
に取り込まれ、Table 12-6 に示すようにブート・デバイスのロケーション、
データ幅を決定します。
■ CFG2はブート・デバイスがSDRAMデータ・バスか、
またはGPバス・データ・バスのどちらを使う
かを設定します。
■ CFG1-CFG0はブート・デバイスのデータ幅を設定します。
■ BOOTCSはシステム・リセット後アクティブになります。ブート・コードは Programmable Address
Region (PAR) レジスタを初期化し、ブートROMデバイスに必要な領域を割当てます。第3章の
「 3.7.6 外付けROMデバイス」を参照してください。
Table 12-6
BOOTCSにおけるCFGxピンストラップの設定オプション
CFG2
CFG1
CFG0
BOOTCS Data Width
BOOTCS Location
0
0
0
8-bit
GP bus
0
0
1
16-bit
GP bus
1
0
0
8-bit
SDRAM bus
1
0
1
16-bit
SDRAM bus
1
1
x (donít care)
32-bit
SDRAM bus
ROMCS1 や ROMCS2 に接続されるブート・デバイスでないROMはピン・ストラップを必要とせず、
ROMコンフィギュレーション・レジスタで設定できます。
システム・リセット時、
ROMコントローラはBOOTCSだけをイネーブルします。BOOTCSの設定と、他
のROMデバイスのイネーブルおよび設定には、以下の手順が必要です。
1.
2.
ROM の幅、モード、アクセス・タイミングおよびロケーションの設定を、BOOTCS Control
(BOOTCSCTL) レジスタ (MMCR offset 50h) 、ROMCS1 Control (ROMCS1CTL) レジスタ
(MMCR offset 54h) 、そして ROMCS2 Control (ROMCS2CTL) レジスタ (MMCR offset
56h) で行います。
BOOTCS デバイスや ROMCSx デバイスのアドレス・レンジ、キャッシュ可否、書込み保護、
およ
びコード実行制限の設定を、PARレジスタで行います。
12-14
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
第13章
汎用バス(GP-BUS)コントローラ
13.1
概要
ÉlanSC520 マイクロコントローラは汎用バス(GPバス)コントローラを内蔵しています。GPバスは
内部および外部用の、8ビットまたは16ビットのペリフェラル・デバイスを直結できるバスです。GPバ
スは33MHzで動作し、超低コストで良い性能を提供します。
汎用バス・コントローラは以下の機能を持っています。
■ 最大8本の外部チップ・セレクト (GPCS7-GPCS0)
■ 8、
および16ビットのI/Oおよびメモリ・サイクルをサポート
■ プログラム可能なバス・インタフェース・タイミング
■ GPIOCS16 と GPMEMCS16 を用いたダイナミック・バス・サイジング
■ GPRDYを用いた外部デバイスのためのダイナミック・ウェイト・ステート・サポート
■ 1チップ・セレクトあたり最大64Mバイトのメモリ・アドレス空間
■ 8、
および16ビットのDMAイニシエータをサポート
13.2
ブロック図
Figure 13-1は、GP バス・コントローラのブロック図です。
13.3
システム設計
Table 13-1 に、ÉlanSC520 マイクロコントローラにおいて他のインタフェースと共有する、GP バ
ス信号を示します。GPA25-GPA14 のピンストラップ機能は、
PWRGOOD のアサート時に取込まれ
るだけであり、
これらのピンのGPバス機能には影響しません。したがってこの表には示されていませ
ん。GP バスの機能がイネーブルの場合、Table 13-1 に示された他の機能はディセーブルまたは変
更されます。
ROMデバイスのデータ・バスはGPバスまたはSDRAMデータ・バスにつなぐことができます。しかし
ながら、
データ・バスがどちらにつながっていても、ROMデバイス用のアドレスは常にGP バスから出
力されます。いずれにしても、ROMアクセスはGP バスの GPA25-GPA0 を共用します。
GP バスの使用法に関する詳しい図は、
「 13.5.8.2 スーパーI/Oコントローラとの接続」、
「 13.5.8.3
AMD Enhanced Serial Communications Controller (8 MHz) の接続」を参照してください。
タイミング・テーブルや詳しいタイミング図に関しては、ÉlanSC520 Microcontroller Data Sheet,
注文番号#22003 を参照してください。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
13-1
汎用バス ( GP-BUS ) コントローラ
Figure 13-1
GPバス・コントローラ・システムのブロック図
Élan™SC520 Microcontroller
WDT
UART1
RTC
UART2
PIC
Reset
Internal GP Bus
Timers
PIO
ior, iow,
memr, memw,
SSI
GP-DMA
GPRESET
GPIRQ10–
GPIRQ0,
INTA–INTD
GPA25–GPA0
GPD15–GPD0
GP Bus Controller
MUX
bs8
GP Bus
Control
State Machine
be3–be0
gp_sel
r/w
bs16
GPDBUFOE*
Echo mode select
From CPU:
m/io
Configuration
Registers
GPIOCS16*
GPMEMCS16*
GPBHE*
GPRDY*
GPALE*
GPCS7–
GPCS0*
GPMEMRD
Programmable
Interface
Timing
Control
GPMEMWR
gior, giow,
gmemr, gmemw,
gaen
MUX
GPIORD
GPIOWR
GPAEN*
dior, diow,
dmemr, dmemw,
daen
Programmable
33 MHz
Divider
GP-DMA
State Machine
GPTC*
GPDRQ3–
GPDRQ0*
GPDACK3–
GPDACK0*
*Multiplexed pins
13-2
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
汎用バス ( GP-BUS ) コントローラ
Table 13-1
多重化されたGPバス信号
Default
Signal
Interface or
Alternate
Function
Control Bit
Register
TMROUT0
GPCS7
GPCS7_SEL
TMROUT1
GPCS6
GPCS6_SEL
Chip Select Pin Function Select (CSPFS)
register (MMCR offset C24h)
TMRIN0
GPCS5
GPCS5_SEL
TMRIN1
GPCS4
GPCS4_SEL
PITGATE2
GPCS3
GPCS3_SEL
ROMCS2
GPCS2
GPCS2_SEL
ROMCS1
GPCS1
GPCS1_SEL
PIO27
GPCS0
PIO27_FNC
PIO26
GPMEMCS16
PIO26_FNC
PIO25
GPIOCS16
PIO25_FNC
PIO24
GPDBUFOE
PIO24_FNC
PIO23
GPIRQ0
PIO23_FNC
PIO22
GPIRQ1
PIO22_FNC
PIO21
GPIRQ2
PIO21_FNC
PIO20
GPIRQ3
PIO20_FNC
PIO19
GPIRQ4
PIO19_FNC
PIO18
GPIRQ5
PIO18_FNC
PIO17
GPIRQ6
PIO17_FNC
PIO16
GPIRQ7
PIO16_FNC
PIO15
GPIRQ8
PIO15_FNC
PIO14
GPIRQ9
PIO14_FNC
PIO13
GPIRQ10
PIO13_FNC
PIO12
GPDACK0
PIO12_FNC
PIO11
GPDACK1
PIO11_FNC
PIO10
GPDACK2
PIO10_FNC
PIO9
GPDACK3
PIO9_FNC
PIO8
GPDRQ0
PIO8_FNC
PIO7
GPDRQ1
PIO7_FNC
PIO6
GPDRQ2
PIO6_FNC
PIO5
GPDRQ3
PIO5_FNC
PIO4
GPTC
PIO4_FNC
PIO3
GPAEN
PIO3_FNC
PIO2
GPRDY
PIO2_FNC
PIO1
GPBHE
PIO1_FNC
PIO0
GPALE
PIO0_FNC
PIO31–PIO16 Pin Function Select
(PIOPFS31_16) register (MMCR offset
C22h)
PIO15–PIO0 Pin Function Select
(PIOPFS15_0) register (MMCR offset
C20h)
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
13-3
汎用バス ( GP-BUS ) コントローラ
13.3.1
GPバスの負荷
GPバスに多くの外部デバイスがつながるにしたがって、GPA25-GPA0 および GPD15-GPD0 の負
荷も増えます。そのため GPA25-GPA0 および GPD15-GPD0 のライズ・タイムやフォール・タイム
が大きくなり、負荷を分散するためのバッファが必要になります。
GP バスはバッファ制御用にGPDBUFOEピンを持っています。この信号はすべての外部GP バス・ペ
リフェラルへのアクセスに対してアサートされます。内部ペリフェラルへのアクセス時にはアサート
されません( GP バス・エコー・モードの設定に関わらず)。
Figure 13-2 は、外部データ・バッファの使用例です。GPDBUFOEはデータ・バッファをイネーブルす
るために使用し、GPIORD と GPMEMRD でデータ・バッファの方向を選択します。GP バス上のデ
バイスがI/Oにマップされたものだけならば、
Figure 13-2 のANDゲートは必要ありません。GPIORD
でデータ・バッファの方向を選択します。同様に、メモリにマップされたデバイスだけならば、
GPMEMRDだけで制御できます。
Figure 13-2
外部データ・バッファの使用例
GPDBUFOE
EN
GPIORD
GPMEMRD
DIR
Élan™SC520 Microcontroller
XCVR
GPD15–GPD0
Data Bus*
Notes:
If the GP address bus must be buffered, ensure that the buffer is always enabled.
* All GP bus peripherals connect their data to this bus.
GPIOCS16、GPMEMCS16、
および GPRDY は、通常外部デバイスからオープン・ドレイン出力で駆
動されるので、ÉlanSC520 マイクロコントローラに外付で強めのプルアップ抵抗(通常1KΩ)が必要
です。GPIRQxにもプルアップ抵抗(通常1KΩ)が必要です。
13.3.2
電圧の変換
GP バスは5V耐圧入力で、3V出力ですが、外部デバイスに3Vと5Vのデバイスが混在する場合、ボル
テージ・トランスレータが必要になり、GPCSxとGPDBUFOEにより制御できます。Figure 13-3 に、
ボルテージ・トランスレータの使用例を示します。
13-4
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
汎用バス ( GP-BUS ) コントローラ
Figure 13-3
ボルテージ・トランスレータの使用例
GPCSx
EN
GPDBUFOE
Voltage
Translator
Élan™SC520 Microcontroller
XCVR
GPIORD
DIR
GPMEMRD
5-V Data
GPD15–GPD0
3-V Data
Notes:
GPCSx is the chip select for the 5-V peripheral.
13.4
レジスタ
Table 13-2 に、GP バス・コントローラを設定するメモリ・マップされたレジスタを示します。
Table 13-2
メモリ・マップされたGPバス・レジスタ
Register
Mnemonic
MMCR
Offset
Address
GP Echo Mode
GPECHO
C00h
Echo mode enable
GP Chip Select Data Width
GPCSDW
C01h
Data width select for GPCS7–GPCS0
GP Chip Select Qualification
GPCSQUAL
C02h
Chip select qualification with GPIORD,
GPIOWR, GPMEMRD, or GPMEMWR
GP Chip Select Recovery
Time
GPCSRT
C08h
Chip select recovery time of a GP bus cycle
GP Chip Select Pulse Width
GPCSPW
C09h
Width of the chip select signal from the offset
GP Chip Select Offset
GPCSOFF
C0Ah
Chip select offset time from the beginning of the
bus cycle
GP Read Pulse Width
GPRDW
C0Bh
Width of the GPIORD and GPMEMRD signals
from the offset
GP Read Offset
GPRDOFF
C0Ch
Offset from the beginning of the bus cycle for
GPIORD and GPMEMRD
GP Write Pulse Width
GPWRW
C0Dh
Width of the GPIOWR and GPMEMWR signals
from the offset
Function
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
13-5
汎用バス ( GP-BUS ) コントローラ
Table 13-2
メモリ・マップされたGPバス・レジスタ(続き)
Register
Mnemonic
MMCR
Offset
Address
GP Write Offset
GPWROFF
C0Eh
Offset from the beginning of the bus cycle for
GPIOWR and GPMEMWR
GP ALE Pulse Width
GPALEW
C0Fh
Width of the GPALE signal from the offset
GP ALE Offset
GPALEOFF
C10h
Offset from the beginning of the bus cycle for
GPALE
PIO15–PIO0 Pin Function
Select
PIOPFS15_0
C20h
PIO15–PIO0 or interface function select:
GPIRQ10–GPIRQ8, GPDACK3–GPDACK0,
GPDRQ3–GPDRQ3, GPTC, GPAEN, GPRDY,
GPBHE, GPALE
PIO31–PIO16 Pin Function
Select
PIOPFS31_16
C22h
PIO31–PIO16 or interface function select: RIN2,
DCD2, DSR2, CTS2, GPCS0, GPMEMCS16,
GPIOCS16, GPDBUFOE, GPIRQ7–GPIRQ0
Chip Select Pin Function
Select
CSPFS
C24h
GPCS7–GPCS1 or alternate function select:
TMROUT1–TMROUT0, TMRIN1–TMRIN0,
PITGATE2, ROMCS2, ROMCS1
Reset Configuration
RESCFG
D72h
Control bit for GP bus reset (GPRESET)
13.5
Function
動作
GPバスは外部デバイス同様、内蔵ペリフェラルに対しても単純なインタフェースを提供します。GPバ
スは33MHzで動作します。
GP バス・コントローラは、内蔵ペリフェラルに対しては固定のタイミングを、外部ペリフェラルに対し
てはプログラム可能なタイミングを提供します。
ÉlanSC520 マイクロコントローラ内部では、DMAコントローラ、プログラマブル・インタラプト・コン
トローラ(PIC)、
プログラマブル・インターバル・タイマ(PIT )、UART、
およびリアル・タイム・クロック
(RTC)がGP バスを使用します。内蔵ペリフェラルはGP バスの最大クロック・レートで動作するよう
設計されています。これらはまた、
PC/AT互換モードで動作することもできますが、そのモードに制約
されることは通常ありません。
GPバス・インタフェースは、GPバスと外部デバイスとの間のタイミングをソフトウエアによってプログ
ラムすることができます。GPバス・インタフェースは、
プログラマブル・タイミング、
ダイナミック・データ
幅サイジング、
サイクルの延長機能を持っており、
様々な標準ペリフェラルを利用することができます。
外部GPバス・デバイス用に8本のチップ・セレクトが用意されています。これらはI/O、
またはメモリ・ア
クセスに使用できます。これらのチップ・セレクトは、Programmable Address Region (PAR) レジ
スタに設定された領域に対応して、Am5x86 CPUからのアクセスによりアサートされます。
4つの外部DMAチャネルが提供され、GPバスのペリフェラル・デバイスとシステムSDRAMとの間で
フライ・バイDMA転送を行うことができます。
GPバス・アクセスは、Am5x86 CPUもしくは内蔵GP バスDMAコントローラからのみ起動できます。
Am5x86 CPUから見て、GPバス上のデバイスはキャッシュ不可であり、GPバス上のデバイス(メモリ
とペリフェラル)の見え方を単純にしています。
13-6
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
汎用バス ( GP-BUS ) コントローラ
GPバスはデバッグに便利なエコー・モードを持っています。GPバスのエコー・モードがイネーブルの
場合、
内部GPバス・サイクルが外部ピンに出力され、内部のサイクルを見ることができるようになりま
す。内部ペリフェラルのアクセスを見ることにより、
プログラムされたタイミング・セットが他の外部ペ
リフェラルに対してタイミング・コンフリクトを起こさないよう保証することができます。エコー・モー
ドをイネーブルしても、GP-DMAアクセスや、GP バスの外部アクセスへの影響はありません。
13.5.1
プログラマブル・バス・インタフェース・タイミング
バス・インタフェースのタイミングは、以下の信号をプログラムできます。
■ チップ・セレクト GPCS7-GPCS0
■ リード・ストローブ GPIORD および GPMEMRD
■ ライト・ストローブ GPIOWR および GPMEMWR
■ アドレス・ラッチ・イネーブル GPALE
これらの各信号は、以下のパラメータをプログラムできます。
■ バス・サイクル開始からのオフセット
■ オフセットからのパルス幅
■ チップ・セレクト・リカバリ・タイム
Figure 13-4 は、様々な可変のGP バス・タイミング・パラメータの相互関係を示したものです。実際
の時間は下記の式で計算できます。
(REG_VAL + 1) * TCLK
但し
REG_VAL = レジスタの値
TCLK = 内部クロック周期
最小のオフセット、パルス幅、
リカバリ・タイムはそれぞれ30ns(33.333MHz 水晶発振子使用時)で、
最小のバス・サイクル・タイムは90nsになります。オフセット、パルス幅、
リカバリ・タイムのパラメータ
は8ビット値(最大255)なので、
最大のバス・サイクル・タイムは23μs (2(8 ビット) * 30 ns * 3 レジスタ)
になります。
13.5.1.1
要求されるタイミング
プログラムされたチップ・セレクトのタイミングは、GP バス・サイクル全体の長さを決定します。した
がってチップ・セレクトのタイミング・パラメータは適切に設定しなければなりません。これは外部デバ
イスがGPCSxピンを必要としなくても必要です。
■ コマンド・ストローブ(リード、
ライト)がプログラムされた期間で正しく出力されるようにするため
には、
チップ・セレクトのプログラム値、
オフセット+パルス幅+リカバリ・タイム がコマンド・ストロー
ブ・パルス幅のプログラム値、オフセット+パルス幅+リカバリ・タイム より大きくなければなりま
せん。
■ 同様に、GPALEがプログラムされた期間出力されるようにするためには、
チップ・セレクトのプロ
グラム値、
オフセット+パルス幅+リカバリ・タイム がGPALEのプログラム値、
オフセット+パルス
幅+リカバリ・タイム より大きくなければなりません。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
13-7
汎用バス ( GP-BUS ) コントローラ
Figure 13-4
GPバス・タイミング・フォーマット
GPA25–GPA0
Address Valid
GPCS
GPCSOFF + 1
GPCSPW + 1
GPCSRT + 1
GPMEMRD or GPIORD
GPRDOFF + 1
GPRDW + 1
GPMEMWR or GPIOWR
GPWROFF + 1
GPWRW + 1
GPALE
GPALEOFF + 1
Beginning of a bus cycle
GPALEW + 1
Bus cycle duration
Notes:
1. Timing parameter values are in units of one internal clock period.
2. Timing parameters in the diagram can be adjusted via the corresponding GP bus registers.
3. GPCSOFF + GPCSPW + GPCSRT must be greater than or equal to GPRDOFF + GPRDW,
GPWROFF + GPWRW, or GPALEOFF + GPALEW.
4. The abbreviations in the figure refer to these GP bus registers:
Mnemonic
Register
GPCSRT
GP Chip Select Recovery Time
GPCSPW
GP Chip Select Pulse Width
GPCSOFF
GP Chip Select Offset
GPRDW
GP Read Pulse Width
GPRDOFF
GP Read Offset
GPWRW
GP Write Pulse Width
GPWROFF
GP Write Offset
GPALEW
GP ALE Pulse Width
GPALEOFF
GP ALE Offset
13.5.1.2
プログラマブル・タイミングと同時にGPRDYを使用する
GPRDY を使用する場合、バス・サイクルはペリフェラルが必要とするだけ、延すことができます。
G P R D Y はプログラムされた バス・サイクルよりも早く終了させることはできません。詳細は
「 13.5.9.8 ウエイト・ステート」を参照してください。
13.5.1.3
プログラマブル・タイミングと同時にGPバス・エコー・モードを使用する
GPバス・エコー・モードをイネーブルすると、
システム設計者はGPバス・タイミングが Table 13-3 よ
りも早くならないように注意しなければなりません。GPバス・エコー・モード時の、最小GPバス・タイ
ミングのレジスタ値を Table 13-3 に示します。
13-8
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
汎用バス ( GP-BUS ) コントローラ
Table 13-3
GPバス・エコー・モード時の最小バス・タイミング
GPCSOFF, GPRDOFF,
GPALEOFF (Offset)
Register Value1
GPCSPW, GPRDW,
GPALEW
(Pulse Width)
Register Value1
GPCSRT
(Recovery Time)
Register Value1
GP chip select
1
3
1
GP read
1
3
GP write
1
3
GPALE
0
0
Signal Type
Notes
1. The actual time value is the register value plus 1. Times are in units of one internal clock period.
13.5.2
I/Oマップと、メモリ・マップ・デバイスのサポート
GPバス・コントローラは、8ビットまたは16ビット、およびI/Oまたはメモリ・マップのどのような組み合
せのデバイスでもサポートします。
■ 外部デバイスがI/Oマップ・デバイスの場合、GPIORD と GPIOWR を読出し、書込みアクセス時
のストローブとして使用します。
■ 外部デバイスがメモリ・マップ・デバイスの場合、GPMEMRD と GPMEMWR を読出し、書込み
アクセス時のストローブとして使用します。
I/Oまたはメモリ・マップ領域の設定に関しては、第4章「システム・アドレス・マッピング」、および第3章
の「3.7.4 外部GP バス・デバイス」を参照してください。
13.5.3
チップ・セレクトの条件
すべてのGPバス・チップ・セレクトは、
コマンド・ストローブ GPIORD、GPIOWR、
GPMEMRD、
または
GPMEMWR によって条件付けすることができ、GP Chip Select Qualification (GPCSQUAL) レ
ジスタ (MMCR offset C02h) および Programmable Address Region (PAR) レジスタを用いて
プログラムします。
チップ・セレクトを条件付けする場合、内部チップ・セレクトは1つまたは両方のコマンド・ストローブと
他方のストローブを使
論理的にANDをとられます。片方のコマンド・ストローブを条件付けに選ぶと、
うアクセス時にはチップ・セレクトはアサートされません。例えば、チップ・セレクトの条件付けに
GPMEMWR を用いた場合、そのチップ・セレクトはメモリ読出しアクセス時にはアサートされません。
一般的なシステム環境においては、
コマンド・ストローブはチップ・セレクトより短く、そしてそのよう
な場合、外部チップ・セレクトはコマンド・ストローブと同じタイミングになります。チップ・セレクトが内
部のコマンドで条件付けられる場合、
コマンドとチップ・セレクトの間の関係は外部に対しては保証さ
れません。例えば、
チップ・セレクトのデアサートによりコマンドがデアサートされることがあります。
条件付けの機能は、バッファ・チップやトランシーバを接続する際に、外部ロジックを使わなくて済む
ので便利です。
13.5.4
データ・サイジングとアライメントが合っていないアクセス
GPバス・コントローラは、常に8ビットまたは16ビットのサイズで動作します。Am5x86 CPUが8ビット
または16ビット・デバイスに対して32ビット・アクセスを行った場合、
GPバス・コントローラはGP Chip
Select Data Width (GPCSDW) レジスタの設定とGPIOCS16 および GPMEMCS16信号の状態に
応じて、Am5x86 CPUに対して8ビット幅であることを示すbs8、
または16ビット幅であることを示す
bs16を返します。そしてAm5x86 CPUは32ビット・データがそろうまで、必要な回数だけ8ビットまた
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
13-9
汎用バス ( GP-BUS ) コントローラ
は16ビット・サイクルを繰返します。このように、バス・サイジングはソフトウエアからは透過的に行わ
れます。読出しでも書込みでも同様です。
GP Chip Select Data Width (GPCSDW) レジスタが8ビットにプログラムされていても、
「 13.5.9.7
GPIOCS16 および GPMEMCS16 のタイミング」に解説されているとおり、GPIOCS16 (I/Oアクセ
ス中) または GPMEMCS16 (メモリ・アクセス中)のアサートが優先されます。
アライメントが合っていない(アドレスが16ビット・アドレス境界に並んでいない)アクセスは、
Am5x86
CPUを通してサポートします。Am5x86 CPUはアライメントが合っていないアドレスのバス・サイク
複数のサイクルに分けます。GPバス・コントロー
ルを、バイト・イネーブル(be3-be0)を適宜使用して、
ラは単純に分解されたアクセスを1つずつ外部サイクルとして実行します。
13.5.5
ROM/Flashコントローラとのアドレスおよびデータ・バスの共用
ROMデバイスのデータ・バスは、GPバス・データ・バスまたはSDRAMデータ・バスに接続できます。
■ ROMデバイスがGPデータ・バスに接続されている場合、ROMアクセスはGPD15-GPD0 および
GPA25-GPA0 両方を使用します。
ROMアクセスは GPA25-GPA0 を
■ ROMデバイスがSDRAMデータ・バスに接続されている場合、
GPバスと共用します。
ROMまたはGPバスへのアクセスを行うのはAm5x86 CPUだけなので、バスの競合が発生すること
はありません。Am5x86 CPUは一時期にROMまたはGPバス・アクセスのどちらかしか行わないので、
問題ありません。
GP バスDMAコントローラはGPバスへのアクセスを行うことができることに注意してください。GP
バスDMAコントローラは、GP バスを使用する前にAm5x86 CPUバスも所有していなければならな
いので、
Am5x86 CPUのROMサイクルとGPバスDMAコントローラが起動したバス・サイクルが競合
することはありません。
ROMデバイスはキャッシュ可能ですが、GPバス・デバイスはキャッシュ不可なので注意してください。
ROMコントローラはキャッシュに対応しており、
また独自の制御信号(チップ・セレクト、
リード・
これは、
ストローブ、
およびライト・ストローブ)を持っているためです。
13.5.6
GPバスのエコー・モード
通常の動作では、
内蔵ペリフェラルへのアクセスは外部ピンでは見ることができませんが、
GPバスの
エコー・モードはこれを可能にします。この機能はデバッグ・システムやブート・コードを助けます。こ
れは内蔵ペリフェラル(タイマ、GP-DMAコントローラ、UART、SSI、RTC、その他)に対してだけ適応
され、
メモリやPCI バス・コントローラには機能しません。
"エコー出力"される内蔵ペリフェラルへのアクセスは、他の外部ペリフェラルとタイミングの競合が発
生しないようプログラマブル・タイミング・セットを使用します。通常、内蔵ペリフェラルのアクセスは
外部ペリフェラルよりも高速です。そのため、
システムのデバッグのためにGPバス・エコー・モードを
使用中は、外部ペリフェラルとの互換性を維持するために内蔵ペリフェラルのアクセスも遅くなって
いますので、
システム性能が低下することに注意してください。
GPバス・エコー・モードがイネーブルの場合、Am5x86 CPUからの内蔵ペリフェラルへのアクセスに
ともないGPAENがアサートされ、外部ペリフェラルが不用意に反応することを防ぎます。通常動作
(GPバス・エコー・モードがディセーブル)においては、GPバス・コントローラは一切GPAENをアサー
トしません。
GPバス・エコー・モードをイネーブルしても、GPバスDMAコントローラからのアクセスは影響を受け
13-10
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
汎用バス ( GP-BUS ) コントローラ
ません。そのため、GPバスDMAコントローラは通常動作時と同様にGPAENをアサートします。GP
バス・エコー・モードでの内部GPDMAアクセス中は、外部GPバス・コマンド、GPIORD、GPMEMRD、
GPIOWR、GPMEMWR はアサートされません。しかしながら、GPAENはアサートされます。
GPバス・エコー・モードがイネーブルの間、さらにプログラマブル・タイミング・パラメータに関して考
慮しなければならないことがあります。
「 13.5.1.3 プログラマブル・タイミングと同時にGPバス・エ
コー・モードを使用する」を参照してください。
13.5.7
DMAインタフェース
外部GP バス・ペリフェラルのために、4つのDMAチャネルがあります。GPDRQ3-GPDRQ0信号は直
接GP-DMAコントローラに接続され、そのレベルはGP-DMAコントローラでプログラムできます。
GP-DMAの制御信号とタイミングはすべてGP-DMAコントローラが生成し、GPバス・コントローラの
プログラマブル・タイミングはGP-DMAサイクルのタイミングに影響しません。詳しくは、
第14章「GP
バスDMAコントローラ」を参照してください。
13.5.8
使用例
13.5.8.1
一般的なISAデバイスとの互換性
GPバスはISAデバイスと互換性がありますが、下記の ISAバスの機能はサポートしていません。
■ LA23-LA17 は GPA23-GPA17 によってサポートしますが、
Am5x86 CPU自身アドレス・パイプラ
GPバスでもアドレス・パイプライニングをサポートしません。
イニングをサポートしていないので、
■ GPバス・アドレス空間を16MBではなく最大64MBにするため、GPA25-GPA24が追加されてい
ます。
■ 外部マスタ・アクセスをサポートしません。ÉlanSC520 マイクロコントローラは常にGP バスの
マスタです(外部マスタはPCIバスで対応します)。
■ GPIOCS16 と GPMEMCS16 がアサートされているときは、GPバスのタイミングの変更は行わ
れません。
ウエイト・ステートを必要とするスレーブ・デバイス
■ IOCHRDY は GPRDY でサポートしますが、
のための入力ピンとしてだけです。外部マスタをサポートしないので、出力としての GPRDY は
サポートしません。
■ IOCHK はサポートしませんが、
GPIRQx信号(マスク可能、
ノン・マスカブルに割当可能)がエラー
のレポートに使用できます。
■ SDRAMリフレッシュはGPバス上にエコー出力されないので、REFRESH ピンはサポートしませ
ん。
■ GP バスのプログラマブル・インタフェース・タイミングの都合上、NOWSはサポートしていませ
ん。
■ 標準的なISAインタフェースは非同期なので、
BCLKおよびOSCはサポートしません。必要ならば
外部発振器を使用できます。
■ GP バスはほとんどのISA バス・デバイスをサポートできるように、
プログラマブル・バス・インタ
フェース・タイミングを持っています。しかしながら、GP バスはすべてのレガシーISAタイミング
をサポートしてはいません。ÉlanSC520 マイクロコントローラがサポートするGPバスおよびGPDMAタイミングに関しては、ÉlanSC520 Microcontroller Data Sheet, 注文番号 #22003 を参
照してください。
Table 13-4 は、ISA信号とGP バス信号との対応表です。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
13-11
汎用バス ( GP-BUS ) コントローラ
Table 13-4
ISA信号とGPバス信号との対応表
ISA Signal Name
GP Bus Signal Name
AEN
GPAEN
BALE
GPALE
BCLK
(Not Supported)
DACK
GPDACK
DRQ
GPDRQ
IOCHK
Supported through GPIRQ
IOCHRDY
GPRDY
IOCS16
GPIOCS16
IOR
GPIORD
IOW
GPIOWR
IRQ
GPIRQ
LA23–LA17
GPA23–GPA17
MASTER
(Not Supported)
MEMCS16
GPMEMCS16
MEMR
GPMEMRD
MEMW
GPMEMWR
OSC
(Not Supported)
REFRESH
(Not Supported)
RSTDRV
GPRESET
SA19–SA0
GPA19–GPA0
SBHE
GPBHE
SD15–SD0
GPD15ñGPD0
TC
GPTC
(Not Supported)
GPA25–GPA24
Notes
1. This table does not imply that the ÉlanSC520 microcontroller is fully
compliant with all ISA timing specifications. See the Élan™SC520 Microcontroller Data Sheet, order #22003, for information on the GP bus
and GP-DMA timing supported by the ÉlanSC520 microcontroller.
13-12
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
汎用バス ( GP-BUS ) コントローラ
13.5.8.2
スーパーI/Oコントローラとの接続
Figure 13-5 に、ÉlanSC520 マイクロコントローラにスーパーI/Oコントローラを接続したシステム
の例を示します。Figure 13-6 は、接続タイミングの例です。この例では、
プログラマブル・インタ
フェース・タイミング・レジスタは、
「 13.5.1 プログラマブル・バス・インタフェース・タイミング」の式
を使って、Table 13-5 の様にプログラムされています。
Table 13-5
スーパーI/Oコントローラのインタフェース・タイミングの例
Pulse
Offset Offset
Chip
Width
GP Bus
Register Time Require- Register
Signal Type
Value
(ns) ment (ns)
Value
Pulse
Width
(ns)
Chip
Requirement (ns)
Recovery
Time
Recovery
Chip
Register
Timer
RequireValue
(ns)
ment (ns)
GP chip
selects
0
30
N/A
0
30
N/A
2
90
66
GP read
0
30
19
1
60
60
N/A
N/A
N/A
GP write
0
30
19
1
60
60
N/A
N/A
N/A
GPALE
0
30
N/A
0
30
N/A
N/A
N/A
N/A
Notes
1. This example assumes that a 33.333-MHz crystal is being used in the system.
バス・サイクルはGPRDYをデアサートすることにより延長できることに注意してください。詳しくは
「 13.5.9.8 ウエイト・ステート」を参照してください。
Figure 13-5
スーパーI/Oコントローラを接続したÉlanSC520 マイクロコントローラ
GPA10–GPA0
GPD7–GPD0
SA10–SA0
SD7–SD0
GPIORD
GPIOWR
GPRDY
IORJ
IOWJ
IOCHRDY
GPAEN
AEN
DRQ3J–
DRQ1J
DACK3J–
DACK1J
Élan™SC520 Microcontroller GPDRQx
GPDACKx
GPTC
GPIRQx
GPRESET
Super I/O
TC
IRQ7–3
IRQ11–9
MR
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
13-13
汎用バス ( GP-BUS ) コントローラ
Figure 13-6
スーパーI/Oインターフェイスのタイミング図
GPA10–GPA0
Address Valid
GPCSx1
30 ns
30 ns
90 ns+
GPIORD2
30 ns
60 ns+
30 ns
60 ns+
GPIOWR**
GPALE
(Not needed)
30 ns
30 ns
GPRDY
Trdy
GPD7–GPD0
Read Data
30 ns
GPD7–GPD0
Write Data
Beginning of a bus cycle
120 ns
Notes:
1. Although the chip selects are not used, the recovery time needs to be programmed.
2. GPIORD, GPIOWR, and the chip select recovery time are delayed when the GPRDY signal is deasserted.
3. This example assumes that a 33.333-MHz crystal is being used in the system.
13.5.8.3
AMD Enhanced Serial Communications Controller (8 MHz) との接続
この遅いデバイスその接続例は、
プログラマブル・タイミングが様々なタイミング要求をいかに満た
すかを示したものです。Figure 13-7 は、
ÉlanSC520 マイクロコントローラと Am85C30 Enhanced
Serial Communications コントローラとの接続例です。Table 13-6 と Figure 13-8 は、接続タイミ
ングの例です。この例では、
プログラマブル・インタフェース・タイミング・レジスタは、
「 13.5.1 プロ
グラマブル・バス・インタフェース・タイミング」の式を使ってプログラムされています。
13-14
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
汎用バス ( GP-BUS ) コントローラ
Table 13-6
ÉlanSC520マイクロコントローラとAm85C30との接続タイミング例
Pulse
Offset Offset
Chip
Width
GP Bus
Register Time Require- Register
Signal Type
Value
(ns) ment (ns)
Value
Pulse
Width
(ns)
Chip
Requirement (ns)
Recovery
Chip
Recovery
Time
RequireTimer
Register
(ns)
ment (ns)
Value
GP chip
selects
2
90
0
4
150
150
0
30
3.5
GP read
2
90
70
4
150
150
N/A
N/A
N/A
GP write
2
90
70
4
150
150
N/A
N/A
N/A
GPALE
0
30
N/A
0
30
N/A
N/A
N/A
N/A
Notes
1. This example assumes that a 33.333-MHz crystal is being used in the system.
Figure 13-7
ÉlanSC520 マイクロコントローラと Am85C30との接続
GPA1
GPA0
GPD7–GPD0
A/B
D/C
D7–D0
GPIORD
RD
GPIOWR
WR
GPCSx
CE
Am85C30
Élan™SC520 Microcontroller
GPIRQx
INT
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
13-15
汎用バス ( GP-BUS ) コントローラ
Figure 13-8
Am850C30インターフェイスのタイミング図
GPA1–GPA0
Address Valid
GPCSx
90 ns
150 ns
90 ns
150 ns
30 ns
GPIORD
GPIOWR
90 ns
GPALE
(Not needed)
30 ns
30 ns
GPD7–GPD0
Read Data
GPD7–GPD0
Beginning of a bus cycle
Write Data
270 ns
Notes:
1. This example assumes that a 33.333-MHz crystal is being used in the system.
13.5.9
バス・サイクル
13.5.9.1
8ビットI/Oデバイスへの8ビット・データ・アクセス
8ビットI/Oデバイスへの8ビット・データ・アクセスは、GPD7-GPD0を使ってCPUと外部デバイスとの
間でデータ転送を行います。8ビットのメモリ・マップのI/Oデバイスの場合、
GPIOWR と GPIORD の
代わりに GPMEMWR と GPMEMRD を使用します。
Figure 13-9 は、8ビットI/Oデバイスへの8ビット・データ・アクセスのタイミング図です。
Figure 13-9
8ビットI/Oデバイスへの8ビット・データ・アクセス
GPA25–GPA0,
GPBHE
GPCSx
GPMEMRD, GPMEMWR,
GPIORD, or GPIOWR
GPD7–GPD0
GPD7–GPD0
13-16
Read Data
Write Data
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
汎用バス ( GP-BUS ) コントローラ
13.5.9.2
16ビットI/Oデバイスへの16ビット・データ・アクセス
16ビットI/Oデバイスへの16ビット・データの読み書きも、8ビットI/Oデバイスへのアクセスと同様で
す。16ビット・アクセスでは、16ビットのGPDすべてを使用します。メモリ・マップのI/Oデバイスの場
合、GPIOWR と GPIORD の代わりに GPMEMWR と GPMEMRD を使用します。
Figure 13-10 は、16ビットI/Oデバイスへの16ビット・データ・アクセスのタイミング図です。
Figure 13-10 16ビットI/Oデバイスへの16ビット・データ・アクセス
GPA25–GPA0,
GPBHE
GPCSx
GPMEMRD, GPMEMWR,
GPIORD, or GPIOWR
GPD15–GPD0
Read Data
GPD15–GPD0
13.5.9.3
Write Data
8ビットI/Oデバイスへの16ビット・データ・アクセス
8ビットI/Oデバイスに対し16ビット・データ・アクセスを行った場合、2つの連続する8ビット・アクセス
が必要ですが、それはソフトウエアに対しては透過的にAm5x86 CPUが解決します。メモリ・マップの
I/Oデバイスの場合、GPIOWR と GPIORD の代わりに GPMEMWR と GPMEMRD を使用します。
Am5 x86 CPUが16ビット・データ・アクセスを行った場合、GP バス・コントローラはbs8をAm5 x86
CPUに返し、デバイスのデータ幅が8ビットのデバイスあることを示します。Am5x86 CPUはそれを
受けて、2つの連続する8ビット・アクセスを行い、16ビット・データ・アクセスは2つに分かれた8ビット・
データのGPバス・サイクルになります。Figure 13-11 は、8ビットI/Oデバイスへの 16ビット・データ・
アクセスのタイミング図です。
Figure 13-11 8ビットI/Oデバイスへの16ビット・データ・アクセス
GPA25–GPA0,
GPBHE
x..x0h
x..x1h
GPCSx
GPMEMRD, GPMEMWR,
GPIORD, or GPIOWR
GPD7–GPD0
(for read)
GPD7–GPD0
(for write)
2nd
1st
1st
2nd
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
13-17
汎用バス ( GP-BUS ) コントローラ
13.5.9.4
8ビットI/Oデバイスへの32ビット・データ・アクセス
8ビットI/Oデバイスに対し32ビット・データ・アクセスを行った場合、4つの連続する8ビット・アクセス
が必要ですが、それはソフトウエアに対しては透過的にAm5x86 CPUが解決します。メモリ・マップの
I/Oデバイスの場合、GPIOWR と GPIORD の代わりに GPMEMWR と GPMEMRD を使用します。
Am5 x86 CPUが16ビット・データ・アクセスを行った場合、GP バス・コントローラはbs8をAm5 x86
CPUに返し、デバイスのデータ幅が8ビットデバイスあることを示します。Am5x86 CPUはそれを受
けて、4 つの連続する8ビット・アクセスを行い、32ビット・データ・アクセスは4 つに分かれた8ビット・
データのGPバス・サイクルになります。Figure 13-12 は、8ビットI/Oデバイスへの 32ビット・データ・
アクセスのタイミング図です。
Figure 13-12 8ビットI/Oデバイスへの32ビット・データ・アクセス
GPA25–GPA0,
GPBHE
x..x0h
x..x1h
x..x2h
x..x3h
GPCSx
GPMEMRD, GPMEMWR,
GPIORD, or GPIOWR
GPD7–GPD0
(for read)
GPD7–GPD0
(for write)
13.5.9.5
1st
1st
2nd
3rd
2nd
4th
3rd
4th
16ビットI/Oデバイスへの32ビット・データ・アクセス
16ビットI/Oデバイスに対し32ビット・データ・アクセスを行った場合、2つの連続する16ビット・アクセ
スが必要ですが、それはソフトウエアに対しては透過的にAm5x86 CPUが解決します。メモリ・マップ
のI/Oデバイスの場合、GPIOWR と GPIORD の代わりに GPMEMWR と GPMEMRD を使用しま
す。
Am5x86 CPUが32ビット・データ・アクセスを行った場合、GP バス・コントローラはbs16をAm5x86
CPUに返し、デバイスのデータ幅が16ビットのデバイスあることを示します。Am5x86 CPUはそれを
受けて、2つの連続する16ビット・アクセスを行い、32ビット・データ・アクセスは2つに分かれた16ビッ
ト・データのGP バス・サイクルになります。
Figure 13-13 は、16ビットI/Oデバイスへの32ビット・データ・アクセスのタイミング図です。
Figure 13-13 16ビットI/Oデバイスへの32ビット・データ・アクセス
GPA25–GPA0,
GPBHE
x..x0h
x..x2h
GPCSx
GPMEMRD, GPMEMWR,
GPIORD, or GPIOWR
GPD15–GPD0
(for read)
1st
GPD15–GPD0
(for write)
13-18
1st
2nd
2nd
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
汎用バス ( GP-BUS ) コントローラ
13.5.9.6
16ビットI/Oデバイスへの8ビット・データ・アクセス
バイト・リード/ライト・サイクルの場合、16ビットのうちのどちらのバイトをアクセスするのかを決め
るために、GPA0 と GPBHE 信号が必要です。Table 13-7 は、
どのようにバイトが選択されるかを
示したものです。
Table 13-7
16ビットデバイスにおけるバイト選択
GPBHE
GPA0
Cycle Description
0
0
16-bit access of 16-bit device
0
1
Upper byte access of 16-bit device
1
0
Lower byte access of either 8-bit or 16-bit device
1
1
Upper byte access of 8-bit device
メモリ・マップのI/Oデバイスの場合、GPIOWR と GPIORD の代わりに GPMEMWR と GPMEMRD
を使用します。
Figure 13-14 は、16ビットI/Oデバイスへの8ビット・データ・アクセスのタイミング図です。
Figure 13-14 16ビットI/Oデバイスへの8ビット・データ・アクセス
GPA25–GPA0
x..x0h
Low Byte
x..x1h
High Byte
GPBHE
GPCSx
GPMEMRD, GPMEMWR,
GPIORD, or GPIOWR
GPD15–GPD0
GPD15–GPD0
13.5.9.7
Read Data
Write Data
Read Data
Write Data
GPIOCS16 および GPMEMCS16 のタイミング
GPバス・コントローラはデータ・バス幅を決める2つの方法を持っています。
■ GP Chip Select Data Width (GPCSDW) レジスタ (MMCR offset C01h) により、各チップ・セ
レクトを個々に8ビットまたは16ビット・データ・バスにプログラムできます。
■ GPバス・コントローラはまた、
GPIOCS16 および GPMEMCS16 ピンを用いてダイナミック・バス・
サイジングをサポートしています。これらのピンを使用して、Table 13-8 に示すように、現在のア
クセスのプログラムされたデータ・バス幅を無効にして別のものを指定することができます。
– GPIOCS16 および GPMEMCS16 は、アドレスまたはチップ・セレクトが有効になった後でア
サートすることができ、
アドレスまたはチップ・セレクトが無効になった後でデアサートできま
す。
– これらのピンの1つでも外部デバイスからアサートされると、GPバス・コントローラはAm5x86
CPUに対してbs16をアサートします。
– これらの信号をアサートしても、プログラマブル・インタフェース・タイミングには影響を与え
ません。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
13-19
汎用バス ( GP-BUS ) コントローラ
これら 2 つの信号に要求されるタイミングは、G P R D Y のデアサ ート・タイミングと同じです
(「 13.5.9.8.1 GPRDY の認識」を参照してください)。
Table 13-8
プログラムされたデータ・バス幅を無効にするダイナミック・バス・サイジング
GP Chip Select Data Width
(GPCSDW) Register Setting
GPIOCS16
GPMEMCS16 Assertion Resultant Bus Size
8-bit
Deasserted
8-bit
8-bit
Asserted
16-bit
16-bit
Deasserted
16-bit
16-bit
Asserted
16-bit
Figure 13-15に、16ビット・アクセス、8ビット・アクセスの、GPIOCS16 のタイミングを示します。
Figure 13-15 16ビットI/Oデバイスへの16ビット・アクセス
GPA23–GPA0,
GPBHE
Addr
GPCSx
GPIOCS16
GPMEMRD, GPMEMWR,
GPIORD, or GPIOWR
GPD15–GPD0
Read Data
GPD15–GPD0
13.5.9.8
Write Data
ウエイト・ステート
ÉlanSC520 マイクロコントローラはGP バス・サイクルにウエイト・ステートを挿入するための、2つ
の方法を持っています。
■ ユーザはプログラマブル・インタフェース・タイミング・レジスタをプログラムして、GPIORD、
GPMEMRD、GPIOWR、
またはGPMEMWRを必要なウエイト・ステート分遅らせることができま
す。
■ またGPRDYにより、サイクル単位で動的にウエイト・ステートを挿入できます。
GPRDYはGPバス・サイクルの延長にのみ使用でき、サイクルを早期に終了させることはできません。
コントロール信号は常に、最低でもタイミング・コントロール・レジスタに設定された期間アサートさ
れます。そして、GPRDYのデアサートによりディレイを追加できます。
Figure 13-16 はGPRDYのタイミングです。
13.5.9.8.1
GPRDYの認識
33.333MHz水晶発振子を使用しているとして、GPバス・サイクルにウエイト・ステートを挿入するた
めには、GPRDY ピンはプログラムされたコマンド・ストローブのデアサートよりも最低45nS前にデ
アサートし、最低30nSの幅がなければなりません。GPRDY ピンがデアサートされている間中、
ウエ
13-20
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
汎用バス ( GP-BUS ) コントローラ
イト・ステートが追加されます。コマンド・ストローブは、GPRDY信号が33MHzクロックで同期され、
内部でアサートされたのを確認し、
またプログラムされたパルス幅の期間が経過した時にデアサー
トされます。
Figure 13-16 GPRDYタイミング
GPA25–GPA0
Address
GPCSx
GPMEMRD, GPMEMWR,
GPIORD, or GPIOWR
GPRDY
Notes:
The programmable timing would cause the
cycle to end here, but the GPRDY
deassertion stretches the cycle further.
GPRDY assertion then allows the cycle to
continue.
Read Data
GPD15–GPD0
Write Data
GPD15ñGPD0
13.5.10
割込み
割込みを発生する外部デバイスは、GPIRQ10-GPIRQ0を使用します。GPIRQx割込み信号はGPバ
ス・コントローラをバイパスし、
プログラマブル・インタラプト・コントローラ( PIC)に接続されていま
す。詳しくは、第15章「プログラマブル・インタラプト・コントローラ( PIC)」を参照してください。
13.5.11
レイテンシ
13.5.11.1
8/16ビット GPバス幅
GPバスのデータ幅は小さいので、Am5x86 CPUからの32ビットアクセスは8ビットまたは16ビットの
GPバス・サイクルに分割されます。この期間、Am5x86 CPUの他のバス・サイクルは起動できず、ま
たGP-DMAや外部PCIバス・マスタもSDRAMにアクセスできません。
13.5.11.2
遅いGPバス・サイクル
GPバス・サイクルのインタフェース・タイミングが遅く設定されていたり、GPRDYを長期間デアサー
トしてサイクルを延長すると、CPUバスを独占することになるのでシステム性能が低下します。
注意:非常に長いGPバス・サイクルが原因で、PCIホスト・ブリッジ・ターゲット・コントローラが、PCI Local Bus Specification, Revision 2.2 に規定された10μsの最大終了期限を犯す場合があります。PCI bus 2.2 に対応
する設計では、
ソフトウエアによりGPバス・サイクルやGP-DMAのデマンドまたはブロック・モード転送を制限
しなければなりません。
13.5.11.3
キャッシュ不可のGPバス
すべてのGP バス・アクセスはキャッシュ不可です。したがって、
このバスからのコードの実行はお奨
めできません。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
13-21
汎用バス ( GP-BUS ) コントローラ
13.6
初期化
GPバス・コントローラはシステム・リセットによりリセットされます。内部GPバスはイネーブルされ、下
位1KバイトのI/O空間が割当てられますが、
チップ・セレクトは1つもイネーブルされません。外部GP
バスは、Programmable Address Region (PAR) レジスタが初期化されるまでイネーブルされま
せん。
GPバスのリセットは、
システム・リセットまたはソフトウエア書込みによって行うことができます。Reset
Configuration (RESCFG) レジスタ (MMCR offset D72h) の GP_RST ビットに1を書込むことによ
り、GPRESET がアサートされます。このビットを0にクリアすると GPRESET ピンはデアサートされ
ます。GPRESETピンは外部GPバス・ペリフェラルのみ利用可能です。この信号がアサートされた場
合、GP バスにつながれたすべてのデバイスはリセット状態に初期化されなければなりません。
GPバス・コントローラは以下の手順でイネーブルします。
1.
各チップ・セレクトのアドレス・デコード領域をPARレジスタに設定する。
2.
外部チップ・セレクト・ピンを Chip Select Pin Function Select (CSPFS) レジスタ (MMCR
offset C24h) で設定する。
3.
外部GP バス・タイミングを、
この章で解説したとおりプログラマブル・インタフェース・タイミン
グ・レジスタで設定する。
4.
各チップ・セレクトのデータ幅を GP Chip Select Data Width (GPCSDW) レジスタ (MMCR
5.
必要に応じて、
チップ・セレクトをリード/ライト・ストローブで条件付けるために、GP Chip Se-
offset C01h) に設定します。
lect Qualification (GPCSQUAL) レジスタ (MMCR offset C02h) を設定する。
6.
必要に応じて、GP Echo Mode (GPECHO) レジスタ (MMCR offset C00h) を設定して、GP
バス・エコー・モードをイネーブルする。
13-22
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
第14章
GPバスDMAコントローラ
14.1
概要
ÉlanSC520 マイクロコントローラはGP バスDMA(GP-DMA)コントローラを内蔵しています。GPDMAコントローラは、外部ペリフェラルとSDRAMとの間のDMA転送を行います。内蔵UARTシリア
ル・ポートとSDRAM間のDMA転送もサポートします。本書では、GP-DMAとはGPバス上でのDMA
転送を示します。
GPバスDMAコントローラは以下の機能を持っています。
■ GP バス・ペリフェラルとSDRAM間のフライ・バイ転送。
■ 最高7つのDMAリクエスト・チャネル(外部4チャネル)。
■ 2つの内蔵UARTがGP-DMA転送を起動可能
■ GP-DMAコントローラは全てのシステムSDRAMをアドレス可能。
■ エンハンストGP-DMAモードでは
–
–
–
–
4つのチャネルは個々に8または16ビットに設定可能。
最大転送数は16M バイト(24ビット・カウント・レジスタ)。
チャネル幅はデフォルトでPC/AT互換モード( 3つの16ビットと4つの8ビットチャネル)。
バッファ・チェイン機能。
■ 可変クロック・モード:4、8、
および16MHz。
■ 転送はSDRAMとの間のみ可能。GP-DMAコントローラでは、
PCI、ROM、他のGPバス・デバイス
との間のDMA転送はできません。
注意:GP バスDMAコントローラは、ほとんどのISA DMAアプリケーションやデバイスをサポートできます。
しかしなが
ら、全てのレガシーISAのタイミングをサポートしているわけではありません。ÉlanSC520 マイクロコントローラが
サポートするGPバスとGP-DMAタイミングに関しては、ÉlanSC520 Microcontroller Data Sheet, 注文
番号 #22003 を参照してください。
14.2
ブロック図
GP-DMAコントローラは2つのDMAコア、スレーブ・コアとマスタ・コアで構成されています。
■ スレーブ・コアはデフォルトで0、1、2、
および3の、4つの8ビット・チャネルを持っています。
■ マスタ・コアは、デフォルトで5、6、
および7の、3つの16ビット・チャネルを持っています。
■ チャネル4はカスケード・モードに設定しなければならず、
8ビット・チャネル0-3のうち1つでも使用
する場合はマスクを解除しなければなりません。
■ エンハンストGP-DMAモードでは、
チャネル3、5、6、
および7は8ビットまたは16ビットに設定でき
ます。
Figure 14-1 は、GP-DMAコントローラのブロック図です。Figure 14-2 はマスタとスレーブ・コア
の接続状態を示します。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
14-1
GP バス DMA コントローラ
Figure 14-1
GP-DMAコントローラのブロック図
Élan™SC520 Microcontroller
GP-DMA Controller
GPDRQ3–GPDRQ0
txdrq[1–0]
rxdrq[1–0]
txdack[1–0]
rxdack[1–0]
GPA25–GPA0
GPD15–GPD0
Configuration
Registers
Channel
Mapping
Initiator
(I/O)
Control
GP Bus
I/O
dior
diow
dmemr
dmemw
GPTC*
GPAEN*
UARTs
GP Bus
GPDACK3–GPDACK0*
*Multiplexed pins
dack7–dack5
drq7–drq5
dma_is_16
Master Core
dramrd
Target
(SDRAM)
Control
Slave Core
dack3–dack0
dramwr
daddr[27–0]
breq
drq3–drq0
bgnt
addr[27–0]
14-2
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
Bus
Interface
Unit
GP バス DMA コントローラ
Figure 14-2
マスタ・コアとスレイブ・コア・カスケードの図
ADDR[15–0] HRQ
HLDA
DATA[7–0]
CS
ADDR[15:0]
Master Core
GP data
dma0_cs
gpdrq7
gpdack7
breq
bgnt
DRQ
Channel 7
DACK
gpdrq6
gpdack6
gpdrq5
gpdack5
DRQ
Channel 6
DACK
DRQ
Channel 5
DACK
DRQ
Channel 4
DACK
Interconnect
Logic
daddr[27–0]
dior
diow
HRQ
DATA[7–0]
HLDA
CS
ADDR[15–0]
Slave Core
dma1_cs
gpdrq3
DRQ
Channel 3
DACK
gpdack3
gpdrq2
gpdack2
gpdrq1
gpdack1
dmemr
dma_is_16
GPTC
GPAEN
DRQ
Channel 2
DACK
DRQ
Channel 1
DACK
gpdrq0
gpdack0
14.3
dmemr
DRQ
Channel 0
DACK
システム設計
Table 14-1 に他のインタフェースと共有するGP-DMA信号を示します。一方の機能がイネーブルさ
れている場合、Table 14-1 に示される同じピンの他の機能はディセーブルされるか、変更されます。
GPDRQx と GPDACKx 信号は、極性をプログラムすることができます。デフォルトの極性はISA互
換です。
GP-DMAコントローラは転送の最後に割込みを発生しないので、
システム設計者は割込みをさせた
いGPIRQxにGPTCを接続しなければなりません。GPTC を GPDACKx で条件付けることにより、
割込みを特定しやすくなります。
タイマ出力 (TMROUT1 また
一定の周期でDMA転送をしなければならないアプリケーションでは、
は TMROUT0) をGPDRQx ピンに接続できます。
タイミング表やタイミング図に関しては、
ÉlanSC520 Microcontroller Data Sheet, 注文番号 #22003
を参照してください。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
14-3
GP バス DMA コントローラ
Table 14-1
14.4
多重化されたGP-DMA信号
PIO
(Default)
Signal
Interface
Function
Control Bit
Register
PIO12
GPDACK0
PIO12_FNC
PIO11
GPDACK1
PIO11_FNC
PIO15–PIO0 Pin Function Select
(PIOPFS15_0) register (MMCR offset C20h)
PIO10
GPDACK2
PIO10_FNC
PIO9
GPDACK3
PIO9_FNC
PIO8
GPDRQ0
PIO8_FNC
PIO7
GPDRQ1
PIO7_FNC
PIO6
GPDRQ2
PIO6_FNC
PIO5
GPDRQ3
PIO5_FNC
PIO4
GPTC
PIO4_FNC
PIO3
GPAEN
PIO3_FNC
レジスタ
GPバスDMA(GP-DMA)コントローラは、メモリ・マップのレジスタとダイレクト・マップのレジスタで
設定します。
14.4.1
メモリ・マップ・レジスタ
GP-DMAコントローラを設定するMMCRレジスタの一覧を Table 14-2 に示します。これらのレジ
スタは、
PC/AT互換以上の機能を持っています。例えば、拡張ページ・レジスタ、エンハンストGP-DMA
モードの機能、そして外部 GPDRQx と GPDACKx 信号をGP-DMAコントローラの特定のチャネ
ルに割当てる機能があります。
Table 14-2
メモリ・マップされたGP-DMAコントローラ・レジスタ
Register
Mnemonic
MMCR
Offset
Address
PIO15–PIO0 Pin Function
Select
PIOPFS15_0
C20h
PIO or interface function select: GPDACK3–
GPDACK0, GPDRQ3–GPDRQ3, GPTC,
GPAEN
DMA Buffer Chaining
Interrupt Mapping
DMABCINTMAP
D40h
GP-DMA buffer chaining interrupt mapping
GP-DMA Control
GPDMACTL
D80h
GP-DMA enhanced mode enable, channel
size, clock mode
GP-DMA Memory-Mapped
I/O
GPDMAMMIO
D81h
I/O or memory-mapped I/O channel
configuration
GP-DMA Resource Channel
Map A
GPDMAEXTCHMAPA
D82h
Channel mapping for GPDRQ3–GPDRQ0
GP-DMA Resource Channel
Map B
GPDMAEXTCHMAPB D84h
Channel mapping for internal serial port
GP-DMA requests
GP-DMA Channel 0
Extended Page
GPDMAEXTPG0
Bits 27–24 of the memory address for
Channel 0
14-4
D86h
Function
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
GP バス DMA コントローラ
Table 14-2
メモリ・マップされたGP-DMAコントローラ・レジスタ(続き)
Register
Mnemonic
MMCR
Offset
Address
GP-DMA Channel 1
Extended Page
GPDMAEXTPG1
D87h
Bits 27–24 of the memory address for
Channel 1
GP-DMA Channel 2
Extended Page
GPDMAEXTPG2
D88h
Bits 27–24 of the memory address for
Channel 2
GP-DMA Channel 3
Extended Page
GPDMAEXTPG3
D89h
Bits 27–24 of the memory address for
Channel 3
GP-DMA Channel 5
Extended Page
GPDMAEXTPG5
D8Ah
Bits 27–24 of the memory address for
Channel 5
GP-DMA Channel 6
Extended Page
GPDMAEXTPG6
D8Bh
Bits 27–24 of the memory address for
Channel 6
GP-DMA Channel 7
Extended Page
GPDMAEXTPG7
D8Ch
Bits 27–24 of the memory address for
Channel 7
GP-DMA Channel 3
Extended Transfer Count
GPDMAEXTTC3
D90h
Bits 23–16 of Channel 3 transfer count value
(enhanced GP-DMA mode)
GP-DMA Channel 5
Extended Transfer Count
GPDMAEXTTC5
D91h
Bits 23–16 of Channel 5 transfer count value
(enhanced GP-DMA mode)
GP-DMA Channel 6
Extended Transfer Count
GPDMAEXTTC6
D92h
Bits 23–16 of Channel 6 transfer count value
(enhanced GP-DMA mode)
GP-DMA Channel 7
Extended Transfer Count
GPDMAEXTTC7
D93h
Bits 23–16 of Channel 7 transfer count value
(enhanced GP-DMA mode)
Buffer Chaining Control
GPDMABCCTL
D98h
Buffer chaining enables for channels 7, 6, 5,
and 3
Buffer Chaining Status
GPDMABCSTA
D99h
Buffer chaining status for channels 7, 6, 5, and
3
Buffer Chaining Interrupt
Enable
GPDMABSINTENB
D9Ah
Buffer chaining interrupt enables for channels
7, 6, 5, and 3
Function
Buffer Chaining Valid
GPDMABCVAL
D9Bh
Valid buffer of the buffer chaining operation
GP-DMA Channel 3 Next
Address Low
GPDMANXTADDL3
DA0h
Address bits 0–15 of the next data buffer in
memory used with Channel 3
(enhanced GP-DMA mode)
GP-DMA Channel 3 Next
Address High
GPDMANXTADDH3
DA2h
Address bits 16–27 of the next data buffer in
memory used with Channel 3
(enhanced GP-DMA mode)
GP-DMA Channel 5 Next
Address Low
GPDMANXTADDL5
DA4h
Address bits 0–15 of the next data buffer in
memory used with Channel 5
(enhanced GP-DMA mode)
GP-DMA Channel 5 Next
Address High
GPDMANXTADDH5
DA6h
Address bits 16–27 of the next data buffer in
memory used with Channel 5
(enhanced GP-DMA mode)
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
14-5
GP バス DMA コントローラ
Table 14-2
メモリ・マップされたGP-DMAコントローラ・レジスタ(続き)
Register
Mnemonic
MMCR
Offset
Address
GP-DMA Channel 6 Next
Address Low
GPDMANXTADDL6
DA8h
Address bits 0–15 of the next data buffer in
memory used with Channel 6
(enhanced GP-DMA mode)
GP-DMA Channel 6 Next
Address High
GPDMANXTADDH6
DAAh
Address bits 16–27 of the next data buffer in
memory used with Channel 6
(enhanced GP-DMA mode)
GP-DMA Channel 7 Next
Address Low
GPDMANXTADDL7
DACh
Address bits 0–15 of the next data buffer in
memory used with Channel 7
(enhanced GP-DMA mode)
GP-DMA Channel 7 Next
Address High
GPDMANXTADDH7
DAEh
Address bits 16–27 of the next data buffer in
memory used with Channel 7
(enhanced GP-DMA mode)
GP-DMA Channel 3 Next
Transfer Count Low
GPDMANXTTCL3
DB0h
Bits 0–15 of the next transfer count for Channel
3 when using buffer chaining
(enhanced GP-DMA mode)
GP-DMA Channel 3 Next
Transfer Count High
GPDMANXTTCH3
DB2h
Bits 16–23 of the next transfer count for
Channel 3 when using buffer chaining
(enhanced GP-DMA mode)
GP-DMA Channel 5 Next
Transfer Count Low
GPDMANXTTCL5
DB4h
Bits 0–15 of the next transfer count for Channel
5 when using buffer chaining
(enhanced GP-DMA mode)
GP-DMA Channel 5 Next
Transfer Count High
GPDMANXTTCH5
DB6h
Bits 16–23 of the next transfer count for
Channel 5 when using buffer chaining
(enhanced GP-DMA mode)
GP-DMA Channel 6 Next
Transfer Count Low
GPDMANXTTCL6
DB8h
Bits 0–15 of the next transfer count for Channel
6 when using buffer chaining
(enhanced GP-DMA mode)
GP-DMA Channel 6 Next
Transfer Count High
GPDMANXTTCH6
DBAh
Bits 16–23 of the next transfer count for
Channel 6 when using buffer chaining
(enhanced GP-DMA mode)
GP-DMA Channel 7 Next
Transfer Count Low
GPDMANXTTCL7
DBCh
Bits 0–15 of the next transfer count for Channel
7 when using buffer chaining
(enhanced GP-DMA mode)
GP-DMA Channel 7 Next
Transfer Count High
GPDMANXTTCH7
DBEh
Bits 16–23 of the next transfer count for
Channel 7 when using buffer chaining
(enhanced GP-DMA mode)
14.4.2
Function
ダイレクト・マップ・レジスタ
GP-DMAコントローラは、7つのDMAチャネルを持っています。Table 14-3 に、7つの各チャネルの
為のダイレクト・マップI/Oレジスタを示します。
GP-DMAコントローラは2つのDMAコアを持っており、
カスケードして7つのDMAチャネルを提供しま
す。コアはマスタとスレーブです。Table 14-3 は、2つのコアそれぞれで利用可能なダイレクト・マップ
のレジスタを含んでいます。これらのレジスタはマスタまたはスレーブ・コアの機能をプログラムします。
14-6
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
GP バス DMA コントローラ
GP-DMAを制御するレジスタに加え、一組の汎用レジスタがあります。これらのレジスタは、ページ・
レジスタと同じチップ・セレクト領域にデコードされています。
Table 14-3
ダイレクト・マップされたGP-DMAコントローラ・レジスタ
Mnemonic
I/O
Address
Channel 0 Memory Address
Channel 1 Memory Address
Channel 2 Memory Address
Channel 3 Memory Address
Channel 4 Memory Address
Channel 5 Memory Address
Channel 6 Memory Address
Channel 7 Memory Address
GPDMA0MAR
GPDMA1MAR
GPDMA2MAR
GPDMA3MAR
GPDMA4MAR
GPDMA5MAR
GPDMA6MAR
GPDMA7MAR
0000h
0002h
0004h
0006h
00C0h
00C4h
00C8h
00CCh
Memory address bits 15–0 during GP-DMA
transfers
Channel 0 Transfer Count
Channel 1 Transfer Count
Channel 2 Transfer Count
Channel 3 Transfer Count
Channel 4 Transfer Count
Channel 5 Transfer Count
Channel 6 Transfer Count
Channel 7 Transfer Count
GPDMA0TC
GPDMA1TC
GPDMA2TC
GPDMA3TC
GPDMA4TC
GPDMA5TC
GPDMA6TC
GPDMA7TC
0001h
0003h
0005h
0007h
00C2h
00C6h
00CAh
00CEh
Bits 15–0 of the transfer count for the GPDMA transactions
Channel 2 Page
Channel 3 Page
Channel 1 Page
Channel 0 Page
Channel 6 Page
Channel 7 Page
Channel 5 Page
GPDMA2PG
GPDMA3PG
GPDMA1PG
GPDMA0PG
GPDMA6PG
GPDMA7PG
GPDMA5PG
0081h
0082h
0083h
0087h
0089h
008Ah
008Bh
Memory address bits 23–16 or 23–17
during GP-DMA transfers
MSTDMASTA
SLDMASTA
00D0h
0008h
GP-DMA request status and terminal count
condition for each channel.
Master DMA Channel 4–7 Control MSTDMACTL
Slave DMA Channel 0–3 Control SLDMACTL
00D0h
0008h
DMA controller enable, arbitration mode,
and timing control
Master Software DRQ(n) Request MSTDMASWREQ
Slave Software DRQ(n) Request SLDMASWREQ
00D2h
0009h
Software GP-DMA request initiated to a
specific channel
Master DMA Channel 4–7 Mask
Slave DMA Channel 0–3 Mask
MSTDMAMSK
SLDMAMSK
00D4h
000Ah
GP-DMA channel mask
Master DMA Channel 4–7 Mode
Slave DMA Channel 0–3 Mode
MSTLDMAMODE
SLDMAMODE
00D6h
000Bh
Transfer mode, transfer type, automatic
initialization, and address increment mode
for each channel
Master DMA Clear Byte Pointer
Slave DMA Clear Byte Pointer
MSTDMACBP
SLDMACBP
00D8h
000Ch
Pointer to which byte will be accessed in
the 16-bit GP-DMA registers
Register
Function
Registers for Each Channel
Registers for Each DMA Core (Master and Slave)
Master DMA Channel 4–7 Status
Slave DMA Channel 0–3 Status
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
14-7
GP バス DMA コントローラ
Table 14-3
ダイレクト・マップされたGP-DMAコントローラ・レジスタ(続き)
Register
Mnemonic
I/O
Address
Master DMA Controller Reset
Slave DMA Controller Reset
MSTDMARST
SLDMARST
00DAh
000Dh
GP-DMA controller reset
Master DMA Controller Temporary MSTDMATMP
Slave DMA Controller Temporary SLDMATMP
00DAh
000Dh
Preserves PC/AT compatibility
Master DMA Mask Reset
Slave DMA Mask Reset
MSTDMAMSKRST
SLDMAMSKRST
00DCh
000Eh
Mask register reset to activate the
associated GP-DMA channels
Master DMA General Mask
Slave DMA General Mask
MSTDMAGENMSK
SLDMAGENMSK
00DEh
000Fh
GP-DMA channel masks
GPDMAGR0
GPDMAGR1
GPDMAGR2
GPDMAGR3
GPDMAGR4
GPDMAGR5
GPDMAGR6
GPDMAGR7
GPDMAGR8
0080h,
0084h–
0086h,
0088h,
008Ch–
008Fh
General-purpose R/W registers
Function
General-Purpose Registers
General Registers
14.5
動作
ÉlanSC520 マイクロコントローラのGP-DMAコントローラは、以下の機能を持っています。
■ フライ・バイGP-DMA転送のみサポートします。フライ・バイ転送では、1回の転送で直接I/Oデバ
イスまたはメモリ・マップI/OデバイスとSDRAMの間で転送を行います。
■ Memory-to-memory (SDRAMからSDRAM) と I/O-to-I/O (GPバス・デバイスどうし) での転送
はサポートしません。
■ サポートする転送モードは、
シングル、
ブロック、
およびデマンドです。
■ サポートする転送タイプは、
リード、
ライト、
およびベリファイです。
14.5.1
GP-DMA転送
ÉlanSC520 マイクロコントローラは標準PC/ATシステムのアーキテクチャを持っているので、DMA
転送の方法もIndustry Standard Architecture (ISA) にのっとっています。GPDRQx と GPDACKx
のデフォルトの極性はそれぞれ正論理と負論理ですが、他の極性にプログラムすることもできます。
ÉlanSC520 マイクロコントローラでは、GP-DMA転送において以下の一般的な規則に従います。
■ GP-DMAのイニシエータはGPDRQxをアサートするI/Oデバイスです。これは必ずGPバス上の
外部I/Oデバイス(またはメモリ・マップI/Oデバイス)か、
もしくは内蔵UARTシリアル・ポートです。
8ビットまたは16ビットに設定できます。内蔵UARTは8ビットにプログラムしなければならないの
でご注意ください。
■ GP-DMAのターゲットは常にシステム・メモリ(SDRAM )です。Table 14-4 に、GP-DMAイニシ
エータとターゲットの可能な組み合わせを示します。
14-8
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
GP バス DMA コントローラ
■ GP-DMAターゲットは常にSDRAMなので、関連するアドレス領域はシステムSDRAMに割当て
られていなければなりません。もしSDRAMに割当てられていない場合、誤動作の原因になりま
す。システム・アドレスのマッピングに関しては、第4章「システム・アドレス・マッピング」を参照し
てください。
■ Élan SC520 マイクロコントローラはGP バス・デバイスどうし、
また SDRAMからSDRAM への
peer-to-peerの転送はサポートしません。
■ PCI bus 2.2 に対応する設計では、
ソフトウエアによってGP バスDMAのデマンドおよびブロッ
ク・モード転送を制限しなければなりません。非常に長い転送時間によって、PCIホスト・ブリッジ・
ターゲット・コントローラが、PCI Local Bus Specification, Revision 2.2 に規定された10μs
のメモリ書込み最大終了期限を越えてしまうことがあります。
Table 14-4
GP-DMAイニシエータ/ターゲットの組み合わせ
GP-DMA Initiator
Channel Size
GP-DMA Target
UARTs
8 bits
SDRAM
GP Bus
8 or 16 bits
SDRAM
同じ外部GPバスに接続されている他のデバイスが、
GPAバス上のアドレスをデコードしないように、
GP-DMAコントローラはGPAEN信号を提供しています。内部の Transfer Countレジスタが0hから
FFFFh (エンハンストGP-DMAモードではFFFFFFh) に変化すると、GP-DMAコントローラはGPTC
をアサートして転送の終了を知らせます。
14.5.1.1
14.5.1.1.1
GP-DMAイニシエータ
内蔵UART
ÉlanSC520 マイクロコントローラが内蔵する2つのUARTは、それぞれ送信、受信または両方におい
てDMA転送を起動できます。シリアル・ポートは8ビット・デバイスなので、
これらのDMAリクエストは
デフォルトで8ビットのどのチャネル(チャネル0-3)にでも割当てることができます。
アクノリッジ (txdack)
■ 読出し転送では、UARTは送信チャネル (txdrq) のリクエストをアサートし、
を待ち、I/Oコマンド (GPIOWR) がアサートされた際に GPD15-GPD0 バスの下位バイトから
データを取込みます。
■ 書込み転送では、
UARTは受信チャネル (rxdrq) のリクエストをアサートし、アクノリッジ (rxdack)
を待ち、
I/Oコマンド (GPIORD) がアサートされた際に GPD15-GPD0 バスの下位バイトにデー
タを出力します。
内蔵シリアル・ポートに接続されたチャネルは、drqの検出論理を正論理に、dackを負論理に、書込み
モードはWRTSELビットを使ってレイト・ライトに、
タイミング・モードはCOMPTIMビットによりノーマ
ル・タイミングにプログラムしなければなりません。これはデフォルトの設定です。これらのビットは
Slave and Master DMA Channel x Control (SLDMACTL および MSTDMACTL) 内にあります。
UARTは8ビット・データ転送しかサポートしないので、内蔵UARTシリアル・ポートからのリクエストは、
16ビット・チャネルに割当てることはできないのでご注意ください。
14.5.1.1.2
外部I/Oデバイス
外部 I/O デバイスは、そのサイズによりどのチャネルでも使うことができます。各 I/O デバイスは、
GPDRQ/GPDACK信号ペアを1組ずつ占有します。
■ 読出し転送では、外部 I/O デバイスはそのリクエスト (GPDRQx) をアサートし、アクノリッジ
(GPDACKx) を待ちます。そして、I/Oコマンド (GPIOWR) がアサートされた際にGPD バスから
データを取込みます。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
14-9
GP バス DMA コントローラ
■ 書込み転送では、外部I/Oデバイスはリクエストをアサートし、
アクノリッジを待ちます。そして、I/
Oコマンド (GPIORD) がアサートされた際にGPDバスにデータを出力します。
14.5.1.1.3
外部メモリ・マップI/Oデバイス
GPバス上の外部デバイスは、メモリ・アドレス空間にマップすることもできます。詳しくは、第4章「シ
ステム・アドレス・マッピング」を参照してください。このようなデバイスはメモリ・マップI/Oデバイス
として扱われます。メモリ・マップI/Oデバイスに対するGP-DMA転送はI/Oデバイスと同様に行われ
ますが、GPIORD と GPIOWR の代わりに GPMEMRD と GPMEMWR をコマンドとして使用しま
す。GP-DMA Memory-Mapped I/O (GPDMAMMIO) レジスタ (MMCR offset D81h) をこの目的
に使用します。
14.5.1.2
GP-DMAチャネル割当
GP-DMAリクエストは、以下のソースから発生します。
受信チャネルで、
全部で4つのリクエスト。
■ 2つの内蔵UARTシリアル・ポート(常に8ビット)の送信、
■ GPDRQ3-GPDRQ0 および GPDACK3-GPDACK0(8ビットまたは16ビット)を使うGPバス・デ
バイス。
Table 14-5 は、ÉlanSC520 マイクロコントローラのリソースに、
どのGP-DMAチャネルを使えるか
を示しています。
Élan SC520 マイクロコントローラにおける全てのGP-DMAチャネルの割当は、2つの GP-DMA
Resource Channel Map x (GPDMAEXTCHMAPx) レジスタでプログラムできます。
Table 14-5
GP-DMAチャネル・マッピング
GP-DMA Channel
14.5.2
Microcontroller Resource
0
1
2
3
UART 1 transmit request
✔
✔
✔
✔
UART 2 receive request
✔
✔
✔
✔
UART 1 transmit request
✔
✔
✔
✔
UART 2 receive request
✔
✔
✔
✔
External request GPDRQ0
✔
✔
✔
External request GPDRQ1
✔
✔
✔
External request GPDRQ2
✔
✔
External request GPDRQ3
✔
✔
4
5
6
7
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
動作モード
GP-DMAコントローラの動作モードは、GP-DMA Control (GPDMACTL) レジスタ (MMCR offset
D80h) の ENH_MODE_ENB ビットで設定できます。
14.5.2.1
ノーマルGP-DMAモード
ノーマルGP-DMAモードは、GP-DMAコントローラのデフォルトの動作モードです。このモードでは
■ チャネル 0、1、2、
および3は内蔵UARTシリアル・ポートか、外部8ビット・デバイスで使用します。
■ チャネル 5、6、
および7は、外部16ビット・デバイスで使用します。
このモードはPC/ATアーキテクチャと互換性があります。
14-10
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
GP バス DMA コントローラ
14.5.2.2
エンハンストGP-DMAモード
チャネル3 、5 、6 、および7 だけがエンハンストGP-DMAモードをサポートします。エンハンストGPDMAモードでは
■ これら4つのチャネルは、
8ビットまたは16ビットに設定できます。他のチャネル(0、1、および2)は、
エンハンストGP-DMAモードのチャネルと同時にノーマル8ビットチャネルとして利用できます。
■ 転送カウント・レジスタは24ビットのサイズに拡張され、
最大16Mバイトのデータを転送できます。
ノーマルGP-DMAモードでの64Kバイト境界(16
■ アドレス加算器のサイズは28ビットに拡張され、
ビット・デバイスでは128K バイト)の制限をなくします。
このモードでは更に、
「 14.5.4.7 バッファ・チェイニング」に解説するように、2つの連続しないメモリ・
バッファをチェイニングしてDMA転送を行う機能も持っています。
14.5.3
GP-DMAチャネルのアドレッシング
14.5.3.1
ノーマルGP-DMAモードでのアドレッシング
GP-DMAチャネル4は、チャネル0-3をスレーブ・コアからマスタ・コアを通してCPUへカスケードする
ために使用し、データ転送用には使用されません。正常な動作のためには、
ソフトウエアは必ずこの
設定を Master DMA Channel 4-7 Mode (MSTDMAMODE) レジスタ (Port 00D6h) の TRNMOD
フィールドで行わなければなりません。
14.5.3.1.1
8ビット転送
チャネル0-3は、8ビットI/OデバイスとSDRAM間の8ビット・データ転送をサポートします。8ビットGP-
DMAでは、システム・アドレス空間の何処にでもアクセスできますが、アドレス加算機は16ビット幅し
か持っていないので、8ビットGP-DMAリクエストは64Kバイトの物理ページ境界を越えることはでき
ません。Table 14-6 に示すように、8ビットGP-DMA転送は
■ Slave DMA Channel x Memory Address (GPDMAxMAR) レジスタにアドレス・ビット 15-0
を設定します。
■ Slave DMA Channel x Page (GPDMAxPG) レジスタにアドレス・ビット 23-16 を設定します。
■ GP-DMA Channel x Extended Page (GPDMAEXTPGx) レジスタにシステム・メモリ・アドレ
ス・ビット 27-24 を設定します。
14.5.3.1.2
16ビット転送
チャネル5-7は、16ビットI/OデバイスとSDRAM間の16ビット・データ転送をサポートします。16ビット
GP-DMAでは、システム・アドレス空間の偶数アドレス(ワード境界)の何処にでもアクセスできます
が、
アドレス加算機は16ビット幅しか持っていないので、
16ビットGP-DMAリクエストは128Kバイトの
物理ページ境界を越えることはできません。16ビットGP-DMA転送は
■ A0は0に固定されます。
■ Master DMA Channel x Memory Address (GPDMAxMAR) レジスタにアドレス・ビット 16-1
を設定します。
■ Master DMA Channel x Page (GPDMAxPG) レジスタにアドレス・ビット 23-17 を設定しま
す。
■ GP-DMA Channel x Extended Page (GPDMAEXTPGx) レジスタにシステム・メモリ・アドレ
ス・ビット 27-24 を設定します。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
14-11
GP バス DMA コントローラ
Table 14-6
8ビットGP-DMAチャネル・アドレス生成
Source
GP-DMA Channel x
Extended Page Registers
Slave DMA Channel x
Page Registers
Slave DMA Channel x
Memory Address Register
Address
A27–A24
A23–A16
A15–A0
Table 14-7
16ビットGP-DMAチャネル・アドレス生成
Source
GP-DMA Channel x
Extended Page Registers
Master DMA Channel x
Page Registers
Master DMA Channel x
Memory Address Register
Address
A27–A24
A23–A17
A16–A1, A0=0
14.5.3.2
エンハンストGP-DMAモードのアドレッシング
エンハンストGP-DMAモードでは、
チャネル3、5、6、
および7は、8ビットまたは16ビットに設定できま
す。
■ チャネルが8ビットに設定されている場合、
アドレスは Table 14-6 のように生成されます。
■ チャネルが16ビットに設定されている場合、
アドレスは Table 14-7 のように生成されます。
■ しかしながら、バッファ・チェイニング機能を使用する場合、次のデータ・バッファのメモリ・アドレ
スはチャネルの Next Address レジスタから直接提供されます。この機能は「14.5.4.7 バッファ・
チェイニング」で解説します。
アドレス加算機のサイズは28ビットに拡張され、8ビット転送での64Kバイト物理ページ境界、
および16
ビット転送での128Kバイト物理ページ境界の制限がなくなります。この機能は、
チャネル3、
5、6、およ
び7でのみ利用できます。
14.5.4
GP-DMA転送モード
GP-DMAコントローラは、
リード、
ライト、
およびベリファイ動作を3つの転送モード、
すなわちシングル、
デマンドまたはブロックで行うことができます。3 つのモードは全て、G P - D M A イニシエータは
GPDRQxをアサートし、GPDACKxが返ってくるまでアサートし続けなければ認識されません。
14.5.4.1
シングル転送モード
シングル転送モードでは、
GP-DMAコントローラはAm5x86 CPUバス権を取得するたびに、1つの転
送を行います。GP-DMAイニシエータがGPDRQxをアサートし、
データが転送されるまでアクティブ
にし続けます。正常な動作のためには、
イニシエータはI/Oコマンドを受けてDRQxをネゲートしなけ
ればなりません。
14.5.4.2
デマンド転送モード
デマンド転送モードでは、
GP-DMAイニシエータがGPDRQxをアサートすると、転送するデータが残っ
ているかぎりアクティブにし続けます。Terminal Count (TC) に達するか、GP-DMAイニシエータが
GPDRQxをデアサートするまで、GP-DMAコントローラはGP-DMA転送を続けます。正常な動作の
ためには、
イニシエータはI/Oコマンドを受けてDRQxをネゲートしなければなりません。
デマンド転送モードを使用時、転送が自動初期化コントロール・モードの場合、余計な転送を防ぐため
に、最後のDMAサイクルのGPTCのアサートの前に、GPDRQxをデアサートしなければなりません。
そうでなければ、
チャネルは自動的にマスクされ、後続のリクエストに応える前に初期化が必要にな
ります。
14-12
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
GP バス DMA コントローラ
14.5.4.3
ブロック転送モード
ブロック転送モードではGP-DMAイニシエータがGPDRQをアサートし、GPDACKxがアサートされる
までアクティブに保ちます。GP-DMAコントローラはTCに達するまでGP-DMA転送を続け、
プログラ
ムした数量の転送を行います。
14.5.4.4
転送の種類
GP-DMA転送にはリード、ライト、およびベリファイの3種類があります。
カレント・アドレス・レジスタ( Memory
■ Figure 14-3 はリード転送です。メモリ読出しサイクルは、
Address レジスタ、Page レジスタ、および Extended Page レジスタを組合せたもの)からア
ドレスが出力され、転送先のデバイスへの書込みサイクルが続きます。
■ Figure 14-4 はライト転送です。I/O読出しサイクルの後にメモリ書込みサイクルが続き、アドレ
データ
スはカレント・アドレス・レジスタから出力されます。使用するGP-DMAチャネルに応じて、
幅は8ビットか16ビットになります。
■ Figure 14-5 はベリファイ転送です。これはリードまたはライト転送ですが、GPIORD、GPIOWR、
GPMEMRD、
およびGPMEMWR等のI/O、
メモリ・コントロール信号は出力されません。ベリファ
GP-DMAコアが正しいアドレスを出力し、
コントロール・ロジックが正しく動作して
イ転送は通常、
いるかを検証するために用います。ベリファイ・サイクルではデータは転送されません。DMAベ
リファイ・サイクルでは、ÉlanSC520 マイクロコントローラはMAアドレス・バスに対し、SDRAM
アドレスを出力しません。
Figure 14-3
GP-DMAリード転送
GPDRQx
GPDACKx
daddr[27:0]
Address Valid
GPAEN
dmemr
GPIOWR, GPMEMWR
GPD15–GPD0
Data Valid
GPTC
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
14-13
GP バス DMA コントローラ
Figure 14-4
GP-DMAライト転送
GPDRQx
GPDACKx
daddr[27:0]
Address Valid
GPAEN
dmemw
GPIORD, GPMEMRD
GPD15–GPD0
Data Valid
GPTC
Figure 14-5
GP-DMAベリファイ転送
GPDRQx
GPDACKx
daddr[27:0]
Address Valid
GPAEN
dmemr
GPIOWR, GPMEMWR
dmemw
GPIORD, GPMEMRD
GPD15–GPD0
GPTC
14.5.4.5
自動初期化コントロール
Slave or Master Channel x Mode レジスタのAINITで自動初期化コントロール・モードに設定して
いる場合、
カウント終了後カレント・アドレスとカレント・カウント・レジスタの初期値が、
自動的にその
チャネルのベース・アドレスとベース・カウント・レジスタにリストアされます。
この機能は、
一定サイズのデータをSDRAM中の固定のバッファに対して転送を行うときに便利です。
バッファ・チェイン・モードの時は、
この機能はディセーブルしなければなりません。そうでなければ、
誤
動作の原因になります。
14-14
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
GP バス DMA コントローラ
14.5.4.6
プライオリティ
GP-DMAコントローラはプライオリティに関して2つの手法を使用でき、様々な要求を満たします。あ
るチャネルのサービスを認識した後、他のチャネルは現在の転送が終了する(現在のチャネルの
DACKxがデアサートされる)までDMAサイクルを開始しません。
■ 固定プライオリティは、
チャネル番号に基づきます(チャネル0が最高、
チャネル7が最低のプライ
オリティ)。高いプライオリティのチャネルは低いプライオリティのチャネルが要求に応えるのを妨
げます。
最後に使用したチャネルが最低のプライオリティになり、
他のチャネルのプ
■ 回転プライオリティは、
ライオリティが上がります。この手法はラウンド・ロビンとして知られています。
14.5.4.7
バッファ・チェイニング
エンハンストGP-DMAモードでは、
チャネル3、5、6、
および7は一つの転送要求に対して、SDRAM内
に複数のデータ・バッファ
(フラグメンテッド・データ・バッファ)を用いて転送を行うことができます。
この機能をバッファ・チェイニングと呼びます。この機能の目的は、SDRAM内の不連続なバッファを
対象に行うGP-DMA転送を容易にすることです。
この機能を使用する一例として、
SDRAM内のパケット・データを外部デバイスに対して転送すること
があげられます。パケット・ヘッダとパケット・データは、2つの連続しない位置に置かれていることが
あります。バッファ・チェイニング機能を使うと、ユーザはパケット・ヘッダとパケット・データを1つの
DMA転送で行うことができます。同様に、GP-DMAコントローラは、受取ったパケットのヘッダとデー
タを、2カ所の別々のSDRAM バッファに取込むことができます。
対応するBuffer Chaining Control (GPDMABCCTL) レジスタ (MMCR offset D98h) の
CHx_BCHN_ENBビットにより、バッファ・チェイニング・モードをイネーブルすることができます。
1.
GP-DMAサイクルを開始する前に、Next Address レジスタと Next Transfer Count レジスタ
をプログラムしなければなりません。
2.
ターミナル・カウントに達すると、G P - D M A コントローラは B u f f e r C h a i n i n g V a l i d
3.
もしこのビットがセットされていると、Next Address レジスタと Next Transfer Count レジス
(GPDMABCVAL) レジスタ (MMCR offset D9Bh) のCHx_CBUF_VALビットを調べます。
タの値が内部のカレント・アドレスとカレント・トランスファ・カウント・レジスタにそれぞれロード
されます。
4.
次に G P - D M A コントローラ・ハ ードウエアは、マスク可能または不可割込みを発生し、
CHx_CBUF_VALビットをクリアします。
5.
このビットはソフトウエアに対し、Next Address と Next Transfer Count レジスタに新しい値
を書込み、次のバッファのチェインを作ることができることを示します。
6.
7.
そしてDMA転送は、次のターミナル・カウントに達するまで続きます。
もしCHx_CBUF_VALビットがセットされていない場合、GP-DMAコントローラは割込みを発生
し、さらにGPTCをアサートしてチェインが終了したことを示します。
一般的に、バッファ・チェイニングはシングル転送モードで行いますが、
ブロック・モードやデマンド・モー
ドでの動作もサポートしています。
ブロック転送モードを使用する場合、
チェインの最後のバッファに到達するまでGP-DMAコントロー
ラはバス要求をアクティブしつづけます。ブロック転送モードでは、
2つのバッファだけをチェインする
ことは無意味です。なぜなら、GP-DMAコントローラは転送中GPバスを解放せず、Next Address と
Next Transfer Count レジスタに新しい値を書込み、次のバッファをつなぐ事ができないからです。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
14-15
GP バス DMA コントローラ
バッファ・チェイニング・モードは自動初期化コントロール・モードで使うことはできません。
14.5.5
バス・サイクル
Table 14-8 は、4つの GP-DMAサイクル・タイプとコマンド・ストローブを示しています。GPバス・コ
メモリ・マップI/Oデバイスに対して出力されま
マンド・ストローブのGPMEMRD と GPMEMWRは、
す。内部メモリ・コマンドはこの表には含まれません。
Table 14-8
GP-DMAサイクル・タイプ
GP-DMA Initiator GP-DMA Target
Data Transfer Direction
(GP-DMA Cycle Type)
GP Bus Command
Strobes Generated
I/O device
SDRAM
I/O to memory (GP-DMA write)
GPIORD
I/O device
SDRAM
Memory to I/O (GP-DMA read)
GPIOWR
Memory-mapped
I/O device
SDRAM
Memory-Mapped I/O to memory
(GP-DMA write)
GPMEMRD
Memory-mapped
I/O device
SDRAM
Memory to memory-mapped I/O
(GP-DMA read)
GPMEMWR
14.5.5.1
GPバスI/OからSDRAM
Figure 14-6 は、デマンド転送モードでのGP-DMA読出しサイクルです。
Figure 14-6
デマンド転送モードでのGP-DMA読出しサイクル
GPDRQx
GPDACKx
daddr[27:0]
Addr Valid
Addr Valid
Addr Valid
GPAEN
GPDBUFOE
dmemr
GPIOWR, GPMEMWR
GPD15–GPD0
Data Valid
Data Valid
Data Valid
GPTC
14-16
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
GP バス DMA コントローラ
14.5.5.2
キャッシュにヒットした場合のGP-DMAリード
Figure 14-7 は、キャッシュ(ライトバック・キャッシュ)にヒットした場合の読出し転送です。
Figure 14-7
キャッシュ(ライトバック・キャッシュ)にヒットした場合のGP-DMA読出し転送
GPDRQx
GPDACKx
daddr[27:0]
Address Valid
GPAEN
GPDBUFOE
eads
hitm
hold
hlda
dmemr
GPIOWR,
GPMEMWR
GPD15–GPD0
Data Valid
GPTC
14.5.6
GPバス・エコー・モード
GPバス・エコー・モードがイネーブルの場合、Am5x86 CPUが内部ペリフェラルにアクセスするして
いる時に外部ペリフェラルがそれに応答しないようにするために、GPAENがhighにドライブされま
す。通常動作( GP バス・エコー・モードがディセーブル)では、GPAENは一切アサートされません。
しかしながら、GPバスDMAコントローラが起動したアクセスはGPバス・エコー・モードであっても影
響を受けず、GP バスDMAコントローラは通常動作時でもGPAEN をアサートします。GP バス・エ
コー・モードでの内部 GPDMA アクセスでは、外部 GP バス・コマンド、GPIORD 、GPMEMRD、
GPIOWR、
GPMEMWRはアサートされません。しかしながら、
GPAENはアサートされます。詳しくは、
第13章の「 13.5.6 GP バスのエコー・モード」を参照してください。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
14-17
GP バス DMA コントローラ
14.5.7
クロックの考察
GP-DMAコントローラは、4MHz、8MHz、または16MHzで動作するようにプログラムできます。この
オプションは、GP-DMA Control (GPDMACTL) レジスタ (MMCR offset D80h) で設定します。こ
れらの周波数は 3 3 M H z クロックを分周して得られます。正確な周波数は、使用する水晶発振子
(33.000MHzか33.333MHz )によって変わります。
14.5.8
割込み
ノーマルGP-DMAモードでは、GP-DMAコントローラは割込みを発生しませんが、転送の終了毎に
GPTCをアサートします。
バッファ・チェイニング・モードがイネーブルの場合、バッファの転送が完全に終了するたびに、
マスク
可能または不可割込みを発生します。この割込みは、Next Address と Next Transfer Count がカ
レント・アドレスとカレント・トランスファ・カウントにそれぞれコピーされた後に発生します。バッファ・
チェインが終了したときにのみGPTCがアサートされます。GPTCがアサートされた場合も割込みが
発生します。
14.5.9
ソフトウエアの考察
チャネル4は常にカスケード・モードでなければなりません。そうでないと誤動作の原因になります。
チャネル4のみカスケード・モードにプログラムできます。他の全てのチャネルは、
他の3つのモード(シ
ングル、デマンド、
またはブロック)のいずれかにプログラムできます。
各チャネルの Memory Address と Transfer Count レジスタは、バイト・アクセスです。これらのレ
ジスタに16ビット値をアクセスすると、同じI/Oアドレスに対して2つの連続するバイト・アクセスが必
要です。エンハンストGP-DMAモードでは、Memory Address と Transfer Count レジスタは両方
とも2 つの 16ビットレジスタに分割されますが、32ビット命令でアクセスできるようLOWワードと
HIGHワードが配置されます。GPバスは32ビット・アクセスを2つの16ビット・アクセスに分割しますが
(高低アドレスの動作はアトミック動作ではない)、通常これは問題ではありません。
ブロック転送モードでバッファ・チェイン機能を使う場合、GP-DMAコントローラは2番目のバッファが
終了するまでバスを保持し続けます。この場合1つ目のバッファの終了時に割込みを発生するのは無
意味です。なぜなら、割込みサービス・ルーチンはAm5x86 CPUバスにアクセスできない(GP-DMA
コントローラがブロック転送モードにプログラムされているため)からです。
アクティブなチャネルがマスクされる前に、GPDRQx信号はデアサートしなければなりません。
14.5.10
レイテンシ
14.5.10.1
ノンプリエンプティブ・レイテンシ
ÉlanSC520 マイクロコントローラは、SDRAMの性能を向上するためライト・バッファとリード・バッ
ファ
(リード・アヘッド機能付き)を持っています。これらのバッファは、
ブロックやデマンド転送時のGPDMAのレイテンシを改善します。
■ 書込み転送時、
ライト・バッファはバイトまたはワード・データをGP バスから集め、
SDRAMに対し
てはフルのダブル・ワードで書込みます。このメカニズムは効果的で、GP-DMAコントローラから
見た場合SDRAMに対するアクセスが1ウエイト・ステートになります。
■ 読出し転送では、
リード・バッファがキャッシュ・ライン全体( 16バイト)を取込みます。これにより
GP-DMAコントローラは、SDRAMアクセスを0ウエイト・ステートで行うことができます。しかし
ながら、
リード・バッファは前向きにフェッチするので、降順にアドレスが進むようプログラムされ
た GP-DMAチャネルは、
リード・バッファ・ミスが多くなります。GP-DMAアクセス時は1ダブル・
ワード以下なので、
リード・バッファはプリフェッチしません。
14-18
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
GP バス DMA コントローラ
これらのバッファの動作に関する詳細は、第11章「ライト・バッファとリード・バッファ」を参照してくだ
さい。
14.5.10.2
プリエンプティブ・レイテンシ
下記のイベントはGP-DMAの応答を遅らせることがあります。
■ SDRAMリフレッシュ・サイクル(応答はしますが、転送は遅れます)。
■ PCI要求。
■ 高プライオリティのGP-DMA要求。
■ もしGP-DMAのターゲットがダーティなキャッシュ・ラインにある場合のキャッシュのライト・バッ
ク(応答はしますが、転送は遅れます)。
■ ROM/GPバスの遅い転送。
デマンド転送かブロック転送が始まり、
GP-DMAコントローラがキャッシュ内のSDRAM領域から読出
しを行うと、キャッシュのスヌープが終るまで転送は一時停止します。もしGP-DMAがアクセスする
データがキャッシュ内にあった場合、キャッシュ・ライン・ライト・バック・サイクルも発生します。
14.6
初期化
GP-DMAコントローラはシステム・リセットでリセットされます。加えて、スレーブ、マスタ・コントロー
ラは、Slave DMA Controller Reset (SLDMARST) レジスタ (Port 000Dh) と Master DMA Con-
troller Reset (MSTDMARST) レジスタ (Port 00DAh) によるソフトウエア・リセットをかけることが
できます。
GP-DMAコントローラはシステム・リセット後イネーブルされますが、全てのチャネルはマスクされ停
止しています。DMA Controller Reset レジスタに書込まれた後も同様です。全てのチャネルはデ
フォルトでノーマルGP-DMAモードです。動作周波数のデフォルトは4MHzです。
14.6.1
14.6.1.1
設定例
ノーマルGP-DMAモードの8ビット・チャネルの設定
ノーマル GP-DMAモードでは、4つの8ビットチャネル、すなわち0、1、2、
および3が利用できます。内
部シリアル・ポートや外部からのリクエストのいずれも、
これらのチャネルに割当てることができます。
8ビット・チャネルの設定は次の手順で行います。
1.
2.
DMAスレーブ・コアをイネーブルする。
Master DMA Channel 4-7 Mode (MSTDMAMODE) レジスタ (Port 00D6h) の TRNMOD
フィールドによりチャネル4をカスケード・モードにし、そして、
チャネル4のマスクを解く。
3.
デフォルトの4MHzでない場合、動作周波数をプログラムする。
4.
特定のチャネルにリクエストを割当てる。
5.
対応するチャネルのメモリ・アドレス、転送回数、ページ・アドレス、
および拡張ページ・アドレスを
プログラムする。
6.
7.
DMAモード、タイプ、アドレス加算モード、およびプライオリティ・モードをプログラムする。
Slave DMA General Mask (SLDMAGENMSK) レジスタ (Port 000Fh) でチャネルのマスク
を解く。この時点で、GP-DMAコントローラは外部リクエストを受けられる状態になる。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
14-19
GP バス DMA コントローラ
14.6.1.2
ノーマルGP-DMAモードの16ビット・チャネルの設定
ノーマルGP-DMAモードでは、3つの16ビットチャネル、すなわち5、6、
および7が利用できます。外部
からのリクエストはどれでも、
これらのチャネルに割当てることができます。内部UARTシリアル・ポー
トからのリクエストを16ビット・チャネルに割当てることはできません。UARTは8ビット・アクセスしか
サポートしないためです。外部リクエストのための、
16ビット・チャネルの設定は次の手順で行います。
1.
DMAマスタ・コアをイネーブルする。
2.
デフォルトの 4MHzでない場合、動作周波数をプログラムする。
3.
特定のチャネルに外部リクエストを割当てる。
4.
対応するチャネルのメモリ・アドレス、転送回数、ページ・アドレス、
および拡張ページ・アドレスを
プログラムする。
5.
6.
DMAモード、タイプ、アドレス加算モード、およびプライオリティ・モードをプログラムする。
Master DMA General Mask (MSTDMAGENMSK) レジスタ (Port 00DEh) でチャネルのマ
スクを解く。この時点で、GP-DMAコントローラは外部リクエストを受けられる状態になる。
14.6.1.3
エンハンストGP-DMAモードの8ビット・チャネルの設定
エンハンストGP-DMAモードでは、
チャネル5、6、
および7を8ビット・チャネルに設定できます。内部
UARTシリアル・ポートからのリクエストはいずれも、チャネル3に割当てることができます。外部から
のリクエストはどれでも、
チャネル3、5、6、
および7に割当てることができます。外部リクエストのため
の、8ビット・チャネルの設定は次の手順で行います。
1.
チャネル3の場合はスレーブ・コアを、その他のチャネルはマスタ・コアをイネーブルする。
2.
チャネル3の場合、
Master DMA Channel 4-7 Mode (MSTDMAMODE) レジスタ (Port 00D6h)
のTRNMODフィールドによりチャネル4をカスケード・モードにし、そして、
チャネル4のマスクを
解く。チャネル5、6、および7 の場合、GP-DMA Control (GPDMACTL) レジスタ (MMCR offset D80h) の対応するCHx_ALT_SIZEビットをセットする。
3.
デフォルトの 4MHzでない場合、動作周波数をプログラムする。
4.
エンハンストGP-DMAモードをイネーブルする。
5.
特定のチャネルに外部リクエストを割当てる。
6.
対応するチャネルのメモリ・アドレス、転送回数、ページ・アドレス、
および拡張ページ・アドレスを
プログラムする。
7.
64Kバイトを越える転送の場合、拡張転送回数をプログラムする。
8.
DMAモード、タイプ、アドレス加算モード、およびプライオリティ・モードをプログラムする。
9.
必要に応じてnext address、next transfer count をプログラムし、バッファ・チェイニング・モー
ドをイネーブルする。
10. General Mask register でチャネルのマスクを解く。この時点で、GP-DMAコントローラは外
部リクエストを受けられる状態になる。
14-20
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
GP バス DMA コントローラ
14.6.1.4
エンハンストGP-DMAモードの16ビット・チャネルの設定
エンハンストGP-DMAモードでは、
チャネル3を16ビット・チャネルに設定できます。16ビット外部デバ
イスはいずれもチャネル3、5、
6、および7に割当てることができます。外部リクエストのための、16ビッ
ト・チャネルの設定は次の手順で行います。
1.
チャネル3の場合はスレーブ・コアを、その他のチャネルはマスタ・コアをイネーブルする。
2.
チャネル3の場合、Master DMA Channel 4-7 Mode (MSTDMAMODE) レジスタ (Port 00D6h)
のTRNMODフィールドによりチャネル4をカスケード・モードにし、そして、
チャネル4のマスクを
解く。さらに、GP-DMA Control (GPDMACTL) レジスタ (MMCR offset D80h) の
CH3_ALT_SIZEビットをセットする。
3.
デフォルトの4MHzでない場合、動作周波数をプログラムする。
4.
エンハンストGP-DMAモードをイネーブルする。
5.
特定のチャネルに外部リクエストを割当てる。
6.
対応するチャネルのメモリ・アドレス、転送回数、ページ・アドレス、
および拡張ページ・アドレスを
プログラムする。
7.
128Kバイトを越える転送の場合、拡張転送回数をプログラムする。
8.
DMAモード、タイプ、アドレス加算モード、およびプライオリティ・モードをプログラムする。
9.
必要に応じてnext address、next transfer count をプログラムし、バッファ・チェイニング・モー
ドをイネーブルする。
10. General Mask register でチャネルのマスクを解く。この時点で、GP-DMAコントローラは外
部リクエストを受けられる状態になる。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
14-21
GP バス DMA コントローラ
14-22
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
第15章
プログラマブル・インタラプト・コントローラ
15.1
概要
ÉlanSC520 マイクロコントローラのプログラマブル・インタラプト・コントローラ(PIC)は高性能なプ
ログラマブル・ルータを内蔵した3つの業界標準のコントローラで構成されます。
プログラマブル・インタラプト・コントローラは、Am5x86 CPUに対する様々なソースからの割込み要
求を調停する1つのマスタ・コントローラに対して2つのコントローラがスレーブとして接続される構
成となっています。マスタ・コントローラの割込みチャネル2(IR2)とチャネル5(IR5)がスレーブ1コン
トローラとスレーブ2コントローラのそれぞれの出力に接続されています。この構成により、
異なる優
先順位の 22までのマスク可能な割込みチャネルがプログラマに対して提供されます。
プログラマブル・インタラプト・ルータは外部および内部の様々な割込みソースから3つのコントロー
ラの22の割込みチャネルへのルーティングを受け持ちます。またインタラプト・ルータはCPUに対す
るマスク不可の割込みを生成するために様々なNMIソースのルーティングもプログラムすることが
できます。
ÉlanSC520 マイクロコントローラのプログラマブル・インタラプト・コントローラはPC/ATコンパチブ
ルの特徴をサポートするようにデザインされています。スタートアップ・ソフトウェアはISA割込みに使
われるソースをマスタ・コントローラとスレーブ1の適切な割込みチャネルにルーティングするように、
プログラマブル・インタラプト・ルータを設定できます。
PCI割込みはレベルセンシティブでシェアラブルであり、概してオープンドレイン入力として実装され
ています。これをサポートするためにプログラマブル・インタラプト・コントローラは、従来の全ての
チャネルに対してエッジトリガかレベルセンシティブかを選択する事に対して、
新たにチャネル別にエッ
ジトリガかレベルセンシティブ割込みかを選択する事ができるようになりました。これにより割込みタ
イプが混在するシステム環境を構成する最大限の自由度が提供されます。
ÉlanSC520 マイクロコントローラのプログラマブル・インタラプト・コントローラの特徴は、
■ NMIに加え22の割込み優先レベル
■ プログラマブル・インタラプト・ルータによる内部または外部の割込みソースから異なる優先順位
の割込みあるいはNMIへのマッピング
■ 15の汎用外部割込み要求(GPIRQ10-GPIRQ0とINTA-INTD)に対してエッジトリガかレベルセン
シティブかプログラム可能
■ 19の内部割込み要求に対してエッジトリガかレベルセンシティブかプログラム可能
■ NMIを含むどの割込み優先レベルでもソフトウェアによってアサートすることができます
■ PC/ATインタラプト・コントローラとのソフトウェア互換性を提供する構成
■ 外部ソースに対して割込みの極性反転がプログラム可能
■ Am5x86 CPUの浮動小数点エラー(ferr)割込みclear、ignne機能
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
15-1
プログラマブル・インタラプト・コントローラ
15.2
ブロック・ダイアグラム
Figure15-1は割込みソースとルーティングを示すÉlanSC520 マイクロコントローラのプログラマブ
ル・インタラプト・コントローラのブロック図です。
プログラマブル・インタラプト・コントローラは、それぞれ8つの割込みチャネルを持つマスタ、
スレー
ブ1、スレーブ2の3つの独立した割込みコントローラから構成されます。マスタ・コントローラ上の 2
つの割込みチャネルはスレーブ・コントローラにカスケード接続されるのに使われています。
ÉlanSC520 マイクロコントローラではこのように合計22の割込み優先レベルがあります。優先レベ
ルはP1からP22まで番号付けされており、
どの優先レベルがスレーブかマスタ・コントローラに接続
されているかを示しています。P1が最も優先レベルが高くP22が最も優先レベルが低いことになり
ます。
15.3
システム設計
Table 15-1に他のインターフェイスと共有されているPIC信号を示します。イネーブルにされた時、
Table 15-1に示されるマルチプレクスされた信号はディセーブルか同じピンを使用する他の機能に
変更されます。
周辺装置が割込みサービスを要求するとき、GPIRQ10-GPIRQ0とINTA-INTD信号がアサートされ
ます。INTA-INTD専用のピンはGPPIRQx信号と同じタイプの割込みになります。これらはPCI割込み
の慣習に習ってINTxと呼ばれています。
Table 15-1
15-2
多重化されたPIC信号
PIO
(Default)
Function
Interface
Function
Control Bit
Register
PIO23
GPIRQ0
PIO23_FNC
PIO22
GPIRQ1
PIO22_FNC
PIO21
GPIRQ2
PIO21_FNC
PIO31–PIO16 Pin Function Select
(PIOPFS31_16) register
(MMCR offset C22h)
PIO20
GPIRQ3
PIO20_FNC
PIO19
GPIRQ4
PIO19_FNC
PIO18
GPIRQ5
PIO18_FNC
PIO17
GPIRQ6
PIO17_FNC
PIO16
GPIRQ7
PIO16_FNC
PIO15
GPIRQ8
PIO15_FNC
PIO14
GPIRQ9
PIO14_FNC
PIO13
GPIRQ10
PIO13_FNC
PIO15–PIO0 Pin Function Select
(PIOPFS15_0) register (MMCR offset C20h)
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
プログラマブル・インタラプト・コントローラ
Figure 15-1
プログラマブル・インタラプト・コントローラ( PIC )のブロック図
Élan™SC520 Microcontroller
Programmable Interrupt
Controller
Programmable Inversion Logic
INTA
INTB
INTC
INTD
GPIRQ0
GPIRQ1
GPIRQ2
GPIRQ3
GPIRQ4
GPIRQ5
GPIRQ6
GPIRQ7
GPIRQ8
GPIRQ9
GPIRQ10
ICE
ice_irq
ADU
wpv_irq
Timers
UARTs
RTC
gp_tmr0_irq
gp_tmr1_irq
gp_tmr2_irq
pit_tmr0_irq
pit_tmr1_irq
pit_tmr2_irq
uart1_irq
uart2_irq
rtc_irq
irq_p1
irq_p2
Slave 1
Controller
irq_p3
IR0 (P3)
irq_p4
0
irq_p5 IR1 (P4)
s1_irq 1
irq_p6 IR2 (P5) INT
irq_p7 IR3 (P6)
irq_p8 IR4 (P7)
s2
irq_p9 IR5 (P8)
IR6
(P9)
irq_p10
IR7 (P10)
irq_p11
irq_p12
Interrupt
Slave 2
Controller
Router
Master
Controller
IR0 (P1)
IR1 (P2)
IR2
INT
IR3 (P11)
IR4 (P12)
IR5
IR6 (P21)
IR7 (P22)
irq_p13
irq_p14 IR0 (P13)
0
irq_p15 IR1 (P14)
s2_irq 1
irq_p16 IR2 (P15)INT
irq_p17 IR3 (P16)
irq_p18 IR4 (P17)
s5
irq_p19 IR5 (P18)
irq_p20 IR6 (P19)
IR7 (P20)
intr
CPU
Numeric
Error
Logic
ferr_irq
WDT
wdt_irq
SSI
ssi_irq
irq_p21
irq_p22
nmi_out
nmi
ecc_irq
SDRAM
ecc_nmi
PCI Host pci_irq
Bridge
pci_nmi
Arbiter
gpdma_bc_irq
GP-DMA
ferr
nmi_enb
nmi_trig
irq[22:1]_trig Configuration
Registers
22
s2
s5
Control
Logic
Control signals
Notes:
The priorities of the 22 channels are shown, with P1 being the highest and P22 the lowest priority.
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
15-3
プログラマブル・インタラプト・コントローラ
15.4
レジスタ
プログラマブル・インタラプト・コントローラ(PIC)はTable 15-2とTable 15-3に記述されているレジ
スタによって制御されます。
Table 15-2
メモリ・マップされたプログラマブル・インタラプト・コントローラ.
レジスタ
Register
Mnemonic
MMCR
Offset
Address
PIO15–PIO0 Pin Function
Select
PIOPFS15_0
C20h
PIO or interface function select: GPIRQ10–
GPIRQ8
PIO31–PIO16 Pin Function
Select
PIOPFS31_16
C22h
PIO or interface function select: GPIRQ7–
GPIRQ0
Interrupt Control
PICICR
D00h
Global interrupt mode enables, global NMI
enable, NMI completion control
Master PIC Interrupt Mode
MPICMODE
D02h
Edge- or level-sensitive interrupt mode select
per channel
Slave 1 PIC Interrupt Mode
SL1PICMODE
D03h
Edge- or level-sensitive interrupt mode select
per channel
Slave 2 PIC Interrupt Mode
SL2PICMODE
D04h
Edge- or level-sensitive interrupt mode select
per channel
Software Interrupt 16–1
Control
SWINT16_1
D08h
Software interrupt generation control (priority
levels 1–16)
Software Interrupt 22–17/NMI SWINT22_17
Control
D0Ah
Software interrupt generation control (priority
level 17–22), software NMI generation to the
CPU
Interrupt Pin Polarity
INTPINPOL
D10h
Polarity of external interrupt sources (INTA–
INTD and GPIRQ10–GPIRQ0)
PCI Host Bridge Interrupt
Mapping
PCIHOSTMAP
D14h
System arbiter and PCI Host Bridge interrupt
mapping to any of 22 available interrupt
channels or NMI, PCI NMI enable control
ECC Interrupt Mapping
ECCMAP
D18h
ECC interrupt mapping to any of 22 available
interrupt channels or NMI, ECC NMI enable
control
GP Timer 0 Interrupt Mapping GPTMR0MAP
D1Ah
GP Timer 0 interrupt mapping to any of 22
available interrupt channels or NMI
GP Timer 1 Interrupt Mapping GPTMR1MAP
D1Bh
GP Timer 1 interrupt mapping to any of 22
available interrupt channels or NMI
GP Timer 2 Interrupt Mapping GPTMR2MAP
D1Ch
GP Timer 2 interrupt mapping to any of 22
available interrupt channels or NMI
PIT 0 Interrupt Mapping
PIT0MAP
D20h
PIT 0 interrupt mapping to any of 22 available
interrupt channels or NMI
PIT 1 Interrupt Mapping
PIT1MAP
D21h
PIT 1 interrupt mapping to any of 22 available
interrupt channels or NMI
PIT 2 Interrupt Mapping
PIT2MAP
D22h
PIT interrupt mapping to any of 22 available
interrupt channels or NMI
15-4
Function
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
プログラマブル・インタラプト・コントローラ
Table 15-2
メモリ・マップされたプログラマブル・インタラプト・コントローラ.
レジスタ(続き)
Register
Mnemonic
MMCR
Offset
Address
UART 1 Interrupt Mapping
UART1MAP
D28h
UART 1 interrupt mapping to any of 22 available
interrupt channels or NMI
UART 2 Interrupt Mapping
UART2MAP
D29h
UART 2 interrupt mapping to any of 22 available
interrupt channels or NMI
PCI Interrupt A Mapping
PCIINTAMAP
D30h
PCI INTA mapping to any of 22 available
interrupt channels or NMI
PCI Interrupt B Mapping
PCIINTBMAP
D31h
PCI INTB mapping to any of 22 available
interrupt channels or NMI
PCI Interrupt C Mapping
PCIINTCMAP
D32h
PCI INTC mapping to any of 22 available
interrupt channels or NMI
PCI Interrupt D Mapping
PCIINTDMAP
D33h
PCI INTD mapping to any of 22 available
interrupt channels or NMI
DMA Buffer Chaining
Interrupt Mapping
DMABCINTMAP
D40h
DMA buffer chain interrupt mapping to any of 22
available interrupt channels or NMI
SSI Interrupt Mapping
SSIMAP
D41h
SSI interrupt mapping to any of 22 available
interrupt channels or NMI
Watchdog Timer Interrupt
Mapping
WDTMAP
D42h
WDT interrupt mapping to any of 22 available
interrupt channels or NMI
RTC Interrupt Mapping
RTCMAP
D43h
RTC interrupt mapping to any of 22 available
interrupt channels or NMI
Write-Protect Violation
Interrupt Mapping
WPVMAP
D44h
Write-protect violation to PAR interrupt mapping
to any of 22 available interrupt channels or NMI
AMDebug Technology RX/TX ICEMAP
Interrupt Mapping
D45h
AMDebug technology JTAG port receive or
transmit interrupt mapping to any of 22 available
interrupt channels or NMI
Floating Point Error Interrupt
Mapping
FERRMAP
D46h
Floating point error interrupt mapping to any of
22 available interrupt channels or NMI
GPIRQ0 Interrupt Mapping
GP0IMAP
D50h
GPIRQ0 interrupt mapping to any of 22 available
interrupt channels or NMI
GPIRQ1 Interrupt Mapping
GP1IMAP
D51h
GPIRQ1 interrupt mapping to any of 22 available
interrupt channels or NMI
GPIRQ2 Interrupt Mapping
GP2IMAP
D52h
GPIRQ2 interrupt mapping to any of 22 available
interrupt channels or NMI
GPIRQ3 Interrupt Mapping
GP3IMAP
D53h
GPIRQ3 interrupt mapping to any of 22 available
interrupt channels or NMI
GPIRQ4 Interrupt Mapping
GP4IMAP
D54h
GPIRQ4 interrupt mapping to any of 22 available
interrupt channels or NMI
GPIRQ5 Interrupt Mapping
GP5IMAP
D55h
GPIRQ5 interrupt mapping to any of 22 available
interrupt channels or NMI
GPIRQ6 Interrupt Mapping
GP6IMAP
D56h
GPIRQ6 interrupt mapping to any of 22 available
interrupt channels or NMI
Function
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
15-5
プログラマブル・インタラプト・コントローラ
Table 15-2
メモリ・マップされたプログラマブル・インタラプト・コントローラ.
レジスタ(続き)
Register
Mnemonic
MMCR
Offset
Address
GPIRQ7 Interrupt Mapping
GP7IMAP
D57h
GPIRQ7 interrupt mapping to any of 22 available
interrupt channels or NMI
GPIRQ8 Interrupt Mapping
GP8IMAP
D58h
GPIRQ8 interrupt mapping to any of 22 available
interrupt channels or NMI
GPIRQ9 Interrupt Mapping
GP9IMAP
D59h
GPIRQ9 interrupt mapping to any of 22 available
interrupt channels or NMI
GPIRQ10 Interrupt Mapping
GP10IMAP
D5Ah
GPIRQ10 interrupt mapping to any of 22
available interrupt channels or NMI
Table 15-3
Function
ダイレクト・マップされたプログラマブル・インタラプト・コントローラ・レジスタ
Register
Mnemonic
I/O Address Function
Master PIC Interrupt Request MPICIR
Slave 2 PIC Interrupt Request S2PICIR
Slave 1 PIC Interrupt Request S1PICIR
0020h
0024h
00A0h
Real-time status of interrupt request assertion
Master PIC In-Service
Slave 2 PIC In-Service
Slave 1 PIC In-Service
MPICISR
S2PICISR
S1PICISR
0020h
0024h
00A0h
Interrupt request service status
Master PIC Initialization
Control Word 1 (ICW1)
Slave 2 PIC Initialization
Control Word 1 (ICW1)
Slave 1 PIC Initialization
Control Word 1 (ICW1)
MPICICW1
S2PICICW1
S1PICICW1
0020h
0024h
00A0h
Interrupt mode, address interval, cascade or
single PIC configuration, ICW4 control
Master PIC Operation Control MPICOCW2
Word 2 (OCW2)
S2PICOCW2
Slave 2 PIC Operation
S1PICOCW2
Control Word 2 (OCW2)
Slave 1 PIC Operation
Control Word 2 (OCW2)
0020h
0024h
00A0h
Interrupt EOI, priority rotation control, EOI level
select, control to access OCW2 and OCW3
Master PIC Operation Control MPICOCW3
Word 3 (OCW3)
S2PICOCW3
Slave 2 PIC Operation
S1PICOCW3
Control Word 3 (OCW3)
Slave 1 PIC Operation
Control Word 3 (OCW3)
0020h
0024h
00A0h
Poll command, read register command, special
mask mode
Master PIC Initialization
Control Word 2 (ICW2)
Slave 2 PIC Initialization
Control Word 2 (ICW2)
Slave 1 PIC Initialization
Control Word 2 (ICW2)
0021h
0025h
00A1h
Base interrupt vector number
15-6
MPICICW2
S2PICICW2
S1PICICW2
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
プログラマブル・インタラプト・コントローラ
Table 15-3
ダイレクト・マップされたプログラマブル・インタラプト・コントローラ・レジスタ(続き)
Register
Mnemonic
I/O Address Function
Master PIC Initialization
Control Word 3 (ICW3)
Slave 2 PIC Initialization
Control Word 3 (ICW3)
Slave 1 PIC Initialization
Control Word 3 (ICW3)
MPICICW3
S2PICICW3
S1PICICW3
0021h
0025h
00A1h
Slave cascading channel select (MPICICW3)
Master PIC Initialization
Control Word 4 (ICW4)
Slave 2 PIC Initialization
Control Word 4 (ICW4)
Slave 1 PIC Initialization
Control Word 4 (ICW4)
MPICICW4
S2PICICW4
S1PICICW4
0021h
0025h
00A1h
Nested mode, EOI mode
Master PIC Interrupt Mask
(OCW1)
Slave 2 PIC Interrupt Mask
(OCW1)
Slave 1 PIC Interrupt Mask
(OCW1)
MPICINTMSK
S2PICINTMSK
S1PICINTMSK
0021h
0025h
00A1h
Channel interrupt mask
Floating Point Error Interrupt
Clear
FPUERRCLR
F0h
Clear FPU error interrupt
15.5
オペレーション
15.5.1
インタラプト・フロー・シーケンス
次にÉlanSC520 マイクロコントローラのPICを使ったシステムにおいての典型的な割込みフロー・
シーケンスを示します。
1.
デバイスがマッピングされた割込みチャネルにおいてライジング・エッジかレベル・ハイで示され
る割込み要求を発生したとき、対応するInterrupt Request (xIR)レジスタ・ビットがセットされま
す。
2.
PICは内部Interrupt Mask (xINTMSK)レジスタとIn-Service (xISR)レジスタをチェックします。
もし要求された割込みがマスクされてなく、他の同じ優先順位か優先順位の高い割込みが進行
していなければ、マスタ・コントローラはCPUに割込みを要求します。
3.
CPUのFlagsレジスタのIFビットがSTI命令によってセットされていれば、CPUは割込みを承認し
ます。この時、
PICは現在有効な最も優先順位の高い割込み要求の8ビットの割込みベクタをデー
タ・バス上に出力し、PICの対応するIn-Service (xISR)レジスタ・ビットをセットします。もし、IF
ビットがディセーブルされていれば、その割込みは無視されます。
割込み要求は少なくとも有効な割込み要求であるとみなされる最初のCPU の承認パルスが発生す
るまで続かなくてはなりません。承認パルスが発生した時に割込み要求が有効でなければ、
関連した
マスタかスレーブのPICはIR7入力に関連する割込みエントリ番号を返します。しかし、
この状況では
In-Service (xISR)レジスタ・ビットはセットされません。これは疑似割込み状態として知られ、優先レ
ベルP22(マスタ・コントローラ)、P10(スレーブ1・コントローラ)、P20(スレーブ2・コントローラ)の
ための割込みハンドラで検出できます。Interrupt Request (xIR)レジスタ・ビットは割込み要求の間、
それが疑似割込みか有効な割込み要求かに関わらずセットされます。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
15-7
プログラマブル・インタラプト・コントローラ
4.
CPUが割込みベクタを読み、承認の間に読み込んだベクタに対応する割込みのサービスを行い
ます。
5.
さらなる同じ優先レベルの割込みがサービスされる前に、現在有効な割込みの In-Service
(xISR)レジスタ・ビットをリセットするために、EOI(end-of-interrupt)がPICに実行される必要が
あります。これは2つある方法のうちのどちらかの方法で行われます。
– Automatic EOI (AEOI)モードでは、In-Service (xISR)レジスタ・ビットはCPUからの承認サ
イクルの終わりでリセットされます。AEOIモードはポーリングをサポートせず、
スレーブではな
くマスタ設定でのみ利用できます。
– AEOIがディセーブルされている時、割込みハンドラは割込みサービス・ルーチンの終わりで
EOIコマンドを実行して、In-Service (xISR)レジスタ・ビットをクリアしなければなりません。
どちらかのスレーブ・コントローラからの割込み要求があった場合、そのスレーブ・コントローラはマ
スタ・コントローラに対して割込みを発生し、
マスタ・コントローラの対応するInterrupt Request (xIR)
レジスタ・ビットをアサートします。マスタ・コントローラはまず現在サービスされている割込みで優
先順位が高い割込みがあるかどうかを決定します。もし無ければ、
ステップ2に述べられているように
CPUに対して割込みを要求します。そうでなければPICから別の割込み要求があるまで、より優先順
位の高い割込みサービス・ルーチンは中断されずに続行されます。
上に記した割込みシーケンスとは異なる、スレーブ・コントローラからの割込み要求の方法が2つあ
ります。この場合ステップ3-5は似ていますがスレーブ・アウトプットによってセットされた Interrupt
Request (xIR)レジスタ・ビットが最も優先順位の高い割込みであるため、マスタ・コントローラはス
レーブ・コントローラにCPUに対する割込みベクタを発行させます。
他の相違点は2つのEOIが必要になることです。1つはマスタ・コントローラに対して割込み要求によっ
てセットされた最も優先順位の高いIn-Service (xISR)レジスタ・ビットをリセットするもので、
もう1つ
はスレーブに対して最も優先順位の高い In-Service (xISR)レジスタ・ビットをリセットさせるもので
す。この2つのEOIに順番は問われません。
15.5.2
割込みソース
ÉlanSC520 マイクロコントローラの割込みソースは4つの明確なカテゴリに分類することができま
す。
■ 割込み入力ピンによる外部からのハードウェア割込み
■ ペリフェラルによる内部からのハードウェア割込み
■ 割込みトリガ・ビットによる内部からのハードウェア割込み
■ INT命令によるソフトウェア割込み
このセクションではソフトウェア割込みを除くこれらの割込み全てについて述べます。最初の2つの
ハードウェア割込みソースはAm5x86 CPUのNMI割込み入力にマッピングすることができます。NMI
は「 15.5.6 マスク不可割込みとルーティング」で述べられます。ソフトウェア割込みは標準的なx86
の仕様に従って行われますのでこのマニュアルでは述べません。
15.5.2.1
ハードウェア割込み
ÉlanSC520 マイクロコントローラには57のハードウェア割込みソースがあります。
■ Software Interrupt 16-1 Control (SWINT16_1)レジスタ(MMCRオフセットD08h)とSoftware
Interrupt 22-17/NMI Control(SWINT22_17)レジスタ(MMCRオフセットD0Ah)のコントロール・
ビットからの23の割込み
■ 15の外部割込みピン(GPIRQ10-GPIRQ0とINTA-INTD)からの 15の割込み
15-8
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
プログラマブル・インタラプト・コントローラ
■ 以下に述べる内部ペリフェラル・ソースからの 19の割込み
–
–
–
–
–
–
–
–
–
–
–
–
–
PCIホスト・ブリッジ/システム・アービタ(割込み)
PCIホスト・ブリッジ(NMI)
SDRAM ECCシングルビット・エラー(割込み)
SDRAM ECCマルチビット・エラー(NMI)
6つのタイマ(3つのGPタイマと3つのPITタイマ)
2つのUART
GP-DMA バッファ・チェイン
SSI
ウォッチドッグ・タイマ
RTC
Programmable Address Region (PAR)レジスタ内の書込み保護違反
AMDebugインターフェイスJTAGポート・レシーバとトランスミッタ・アクティビティ
浮動小数点エラー
19の内部ペリフェラル・ソースについてFigure 15-2で示されるように、
■ 17のマスク可能割込みが使用できます。マスク可能割込みとして使用できない割込みはSDRAM
ECCマルチビット・エラーNMIソースとPCIホスト・ブリッジの独立した NMI専用ソースの 2つで
す。
■ 18 の割込みがAm5x86CPU の NMI 割込みに接続されます。SDRAM ECCシングルビット・エ
ラー・ソースだけはNMIを発生させることはできません。
内部PCIホスト・ブリッジとSDRAMコントローラはそれぞれマスク可能割込みソースとNMI 割込み
ソースを発生させます。しかし、内部PCIホスト・ブリッジの割込みソースだけがマスク可能割込みに
もNMIにもマップすることができます。SDRAMコントローラのマスク可能割込みソースはNMIにマッ
プすることはできません。
Figure 15-2
割込みソース
External
Sources
15
15
0
1
polarity[0..14]
src_enb[0..14]
(nmi_enb[0..14] for NMI)
Internal
Peripheral
Sources
17 for maskable interrupt
(18 for NMI)
17 (18 for NMI)
src_enb[15..31]
(nmi_enb[15..32] for NMI)
1 of 23
Trigger
Control
Bits
23
To a specific controllerís
interrupt channel (x22)
or NMI
irq[1..22]_trig
(nmi_trig)
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
15-9
プログラマブル・インタラプト・コントローラ
15.5.3
割込みソース・ルーティング
Figure 15-3に割込みルータの構成を示しています。割込みイネーブル信号は割込みチャネルをま
たがって共有されることはありません。
ペリフェラルからの32のハードウェア割込みソース(外部15、内部17)は22の割込みチャネルのため
の22のORゲートにそれぞれ接続されています。22のORゲートはまたそれぞれSoftware Interrupt
x Control (SWINTx)レジスタの1つからの入力を持っています。
セット時には割込みトリガ・コントロール・ビットはPICの関連のある割込み信号をアサートします。こ
れらのビットは完全にソフトウェアによって制御されています。通常動作時にはハードウェアはこれら
のビットをセットしたりクリアすることはありません。リセットによってこれらのビットはクリアされます。
すべての割込み要求はFigure 15-1に示される優先レベルに従って、最も優先順位の高い割込みが
最初にサービスされるようにインタラプト・コントローラによって調停されます。22の割込みチャネル
のそれぞれに対してマスク・ビットがあるのでそれぞれの割込みチャネル毎に個別にマスクを設定す
ることができます。
複数の割込み要求を1つの共通の割込みチャネルで共有することができます。これは「 15.5.5 割込
みの共有」で述べられています。
リセット後、割込みソースはそれぞれ望ましい割込みチャネルにマップされる必要があります。これは
通常初期化のためのソフトウェアによって行われます。また通常動作時に設定を行うこともできます。
このマッピング・ビットのパワー・オン・リセット状態のデフォルトはクリアです。プログラマは明確に
個々の割込み要求を望ましい割込みチャネルにマップする必要があります。
15.5.3.1
割込み要求の極性反転
3つの独立したインタラプト・コントローラはローからハイの立ち上がりエッジかアクティブ・ハイ・レベ
ルの割込み要求しか認識できないため、
アクティブ・ローの割込みソースをサポートするように15の
外部割込み要求のそれぞれにプログラマブルな極性反転を用意しました。例えば、
アクティブ・ローの
割込み要求をPCIが発生した場合、
コントローラが有効な割込み要求だと認識しないうちに、
マップさ
れた PICチャネルに届く前にÉlanSC520マイクロコントローラ内で反転される必要があります。
全ての内部で発生した割込み信号は正しいアクティブ・ハイの極性であり、
ソフトウェアによる反転の
必要はありません。これらの内部で発生した信号とは、
内部で発生したNMI信号と同様にGP-DMAコ
ウォッチドッグ・タイマ、
ントローラ、PCI ホスト・ブリッジ・システム・アービタ、タイマ、UART 、SSI 、
SDRAMコントローラ、RTC、AMDebugテクノロジ・インターフェイス、浮動小数点エラー、アドレス・
マッピングを含みます。
15-10
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
プログラマブル・インタラプト・コントローラ
Figure 15-3
割り込みソース・ルーティング
Channel 22 Router
Channel 3 Router
Channel 2 Router
Channel 1 Router
GPIRQ0
0
1
polarity0
src_enb0
GPIRQ10
polarity10
src_enb10
INTA
0
1
1
0
polarity11
src_enb11
INTD
polarity14
src_enb14
pit_tmr0_irq
src_enb15
pit_timr1_irq
src_enb16
pit_tmr2_irq
src_enb17
gp_tmr0_irq
src_enb18
gp_tmr1_irq
src_enb19
gp_tmr2_irq
src_enb20
uart1_irq
src_enb21
uart2_irq
src_enb22
ecc_irq
src_enb23
gpdma_bc_irq
src_enb24
wdt_irq
src_enb25
rtc_irq
src_enb26
pci_irq
src_enb27
ssi_irq
src_enb28
wpv_irq
src_enb29
ice_irq
src_enb30
ferr_irq
src_enb31
irq[1]_trig
1
0
irq_p22
irq_p1
irq_p3
irq_p2
Notes:
All the 32 hardware interrupt sources are common to all the 22 channel routers. The polarity control signal per
external interrupt source is also common to all the 22 channel routers. The decoder for the enable signals is not
shown; only the decoded representation of the signals is shown. Each channel router has its unique internallygenerated hardware interrupt trigger, and only irq[1]_trig is shown for channel router 1.
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
15-11
プログラマブル・インタラプト・コントローラ
15.5.3.2
PC/AT互換
PC/AT互換システムのために、マイクロコントローラ・ハードウェアはレガシーISA割込み信号をそれ
ぞれスレーブ1コントローラとマスタ・コントローラに自動的に割り当てることはしません。ユーザ・ソ
フトウェアがこれらの割込みが正しく適切なPC/AT互換のチャネルに割り当てられることを保証する
必要があります。Table 15-4はPC/AT互換システムで割込みチャネルが割り当てられる様子が示し
ています。
Table 15-4
PC/AT互換システムにおける割込みチャネルのマッピング
PC/AT-Compatible System
ÉlanSC520 Microcontroller
IRQ
I/O Device
Priority
Interrupt Source to Map
IRQ0
System Timer 0
P1
Internal (PIT 0 interrupt)
Keyboard interface
IRQ1
P2
External via GPIRQx pin
Slave controller cascading
––
Cascaded from Slave 1 controller
IRQ3
UART 2
P11
Internal (UART 2 interrupt)
IRQ4
UART 1
P12
Internal (UART 1 interrupt)
IRQ51, 2
Parallel port 2
P13
External via GPIRQx pin
IRQ2
1, 2
IRQ6
Floppy disk controller
P21
External via GPIRQx pin
IRQ7
Parallel port 1
P22
External via GPIRQx pin
IRQ8
Real-time clock
P3
Internal (RTC interrupt)
IRQ9
Any 8- or 16-bit ISA device
P4
External via GPIRQx pin
IRQ10
Any 8- or 16-bit ISA device
P5
External via GPIRQx pin
IRQ11
Any 8- or 16-bit ISA device
P6
External via GPIRQx pin
IRQ12
Mouse interface
P7
External via GPIRQx pin
IRQ13
Numeric coprocessor
P8
Internal (floating point error interrupt)
IRQ14
Any 8- or 16-bit ISA device
P9
External via GPIRQx pin
IRQ15
Any 8- or 16-bit ISA device
P10
External via GPIRQx pin
Notes:
1. In the ÉlanSC520 microcontrollerís PIC, interrupt channels 2 and 5 of the Master interrupt controller are hard-wired to the outputs of Slave 1 and Slave 2 interrupt controllers, respectively. The
cascading of the slave controllers is fixed in order to simplify the system interrupt programming
model.
2. When configured for PC/AT-compatible operation, the Slave 1 interrupt controller is cascaded
and the Slave 2 controller is bypassed. In this configuration, IRQ2 is not available, and interrupt priority P13 acts as IRQ5. For configuration details see "PC/AT Compatibility" on page 15-12.
15.5.3.3
浮動小数点エラー
ÉlanSC520マイクロコントローラはレガシーPC/ATシステムのように標準的なFloating Point Error
Interrupt Clear (FPUERRCLR)レジスタ(ポート00F0h)を介してDOS互換の浮動小数点エラーの
ハンドリングをサポートします。PC/ATシステムでは内部のCPU割込みを介してではなくPCのインタ
ラプト・コントローラを通して外部から浮動小数点エラーを制御します。この場合、
発生した割込み要
求はたいていIRQ13にルーティングされます。これはÉlanSC520マイクロコントローラのPICではプ
ログラマブルです。これによって割込みハンドラは割込み要求をクリアしCPUに算術エラー(ignne)信
号のアクティブを無視させるために、Floating Point Error Interrupt Clear (FPUERRCLR)レジスタ
に書込みを行わせます。この様に割込みハンドラの中で浮動小数点命令の実行を可能にしています。
一度ハンドラによってFPUのエラー状態がクリアされると、浮動小数点エラー(ferr)信号はデアサート
15-12
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
プログラマブル・インタラプト・コントローラ
され、
続いて内部のignne信号がデアサートされます。割込み要求とignne信号は共にシステム・リセッ
トでクリアされます。
15.5.3.4
スレーブ・コントローラの無効化
それぞれのスレーブ・コントローラはソフトウェアによって無効化することができ、割込み要求はマス
タ・コントローラの関連する割込みチャネルへ簡単に接続することができます。例えば、スレーブ1コ
ントローラがディセーブルされている場合、
このコントローラの優先順位3の入力にフックされている
割込み要求irq_p3はマスタ・コントローラのチャネル入力IR2に見えます。同様に、もしスレーブ2コ
ントローラもディセーブルになっていた場合、割込み要求irq_p13はマスタ・コントローラのチャネル
入力IR5で見ることができます(Figure 15-1参照)。別の言い方をすれば、
これらの割込み要求は共
にスレーブ・コントローラをバイパスしたと言えます。この方法で、
マスタ・コントローラを用いて実現
できる8つ以内の割込み優先順位であればソフトウェアによって非常に簡単な割込み構成を実現でき
ます。ソフトウェアのオーバーヘッドを最小限にし、割込みサイクルのレイテンシを改善するために1
つだけEOIを生成する必要があります。
このトピックの付加情報としては、
「15.5.9 ソフトウェアの考察」を参照してください。
15.5.4
エッジトリガまたはレベルセンシティブ割込み
22の割込み優先順位レベルのそれぞれについてエッジトリガかレベルセンシティブ割込みかの設定
をすることができます。これは全ての割込み要求に対して割込みのタイプを決定するグローバル・ビッ
トを持つ標準的なインタラプト・コントローラとは異なる点です。
ÉlanSC520 マイクロコントローラでは、
全てのインタラプト・コントローラがこの割込みタイプの認識
能力をチャネル毎に持つことができます。22の割込みチャネルのそれぞれに対して割込みタイプをプ
ログラムする為にコントロール・ビットが用意されています。割込みタイプをグローバル割込みモード
に設定するかチャネル毎の割込みモードに設定するかの選択はソフトウェアによって行います。元々の
グローバル・ビットは個々のコントローラに保持されていますが、
それぞれのデバイスのためのすべて
の割込みは全体的にエッジトリガかレベルセンシティブかのどちらかに設定されます。これは特にマス
タ・コントローラとスレーブ1コントローラに関してPC/AT互換性において便利です。
コントローラがエッジトリガ・モードかレベルセンシティブ・モードにプログラムされているかに関わら
ず、割込み要求ソースはCPUが割込みを承認するまで割込み要求をアサートし続けます。この承認
はÉlanSC520 マイクロコントローラの外部からは見えません、外部割込みソースに割込みサービス・
ルーチンがソフトウェアによって割込み要求をデアサートできるようなメカニズムを用意することを
推奨します。
15.5.5
割込みの共有
コントローラは複数の割込みソースからの割込み入力の共有をサポートしています。割込みの共有
は全ての内部割込みにも外部割込みにも適用できます。割込みソースを割込みチャネルにマップす
るためにORゲートを使用しているため、1 つの割込みチャネルに対して1 つ以上の割込みソースを
マップするのは簡単です。このことはFigure 15-3を参照してください。
レベルセンシティブ割込みの共有はたいていオープン・ドレインかオープン・コレクタの複数の割込み
出力を 1 つの割込み入力ピンに接続することで実現されています。もちろん慣習的な方法として
ÉlanSC520 マイクロコントローラの外部でこれを行うことができます。
しかし、割込みの共有はマイクロコントローラの内部でも簡単に構成することができます。単に複数
の割込みソースを同じ割込みチャネルにマッピングするだけでよいのです。チャネルのORゲートが
複数の割込みを割込みチャネルに本質的に共有します。この場合、割込みペンディング・ステータス・
ビットはそれぞれのデバイス毎に用意されなければなりません。全ての内部ペリフェラルは割込みス
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
15-13
プログラマブル・インタラプト・コントローラ
テータス・ビットを持っています。
割込み信号のプログラマブル反転があるので、外部デバイスはÉlanSC520 マイクロコントローラに
対して、割込み要求線をローにしプルアップ・レジスタによって立ち上がりエッジでドライブすること
も、
(PCI割込みの発生のように)プルアップ・レジスタによるハイ・レベルからロー・レベルに能動的に
ドライブすることでも割込みを発生させることができます。
エッジトリガ割込みをÉlanSC520 マイクロコントローラで共有することは推奨しません。
このトピックの付加情報としては、
「 15.5.9 ソフトウェアの考察」を参照してください。
15.5.6
マスク不可割込みとルーティング
ÉlanSC520 マイクロコントローラのPICのユニークな機能として、
ソフトウェアによってほとんどのハー
ドウェア割込みソースからCPUへのマスク不可割込み(NMI)を発生させることができる点です。
■ S D R A M コントローラによる内部で発生した E C C 割込みを除いて、全ての割込みソースは
Am5x86 CPUのNMI入力に接続することができます。
■ PCIホスト・ブリッジとSDRAMコントローラはそれぞれ別々に異なるNMI割込みソースをPICに
対して発生します。これらの割込みソースはNMIを発生することはできますが、マスク可能割込
みをCPUに対して発生することはできません。
CPUに対する34のNMI発生の割込みソースがあります。
■ 15の外部割込み
■ 18の内部で発生した割込み
■ 1つのソフトウェアNMIソース
Figure 15-4にÉlanSC520 マイクロコントローラのNMI発生のロジック構成を示します。
15.5.6.1
NMIの共有
ÉlanSC520 マイクロコントローラではNMIを共有することができます。Figure 15-4で示されるよ
うにNMIソースは1つの ORゲートに接続されています。
それぞれの割込みソースは、他の割込みソースと選択的に共有されるためにイネーブル信号によっ
て制御されています。これらのイネーブル信号はそれぞれInterrupt Mapping (xMAP)レジスタによっ
て制御されその割込みルーティング・ビットを11111bにプログラムすることでイネーブルにされま
す。Interrupt Control (PICICR) レジスタ (MMCRオフセットD00h)のNMIイネーブル(NMI_ENB)
ビットは全てのNMIがCPUに届かない様にすることができます。このビットはPC/AT互換の場所から
移動されました ( 第 20 章の「 20.5.4.3 レガシー NMIイネーブル・ビットの移動」を参照ください)。
NMI_ENB はシステム・リセットやソフト・リセットによってディセーブルされ、それを使用する前に
NMI_ENBビットをセットすることでイネーブルにされなければなりません。
NMI共有はレベルセンシティブNMIのみで行われることを推奨します。全てのNMIはマスク可能な割
込みソースと同じように扱われるべきです。全てのNMIは一度アサートされるとソフトウェアによって
クリアされるまでアサートされたままになります。Interrupt Control (PICICR)レジスタのNMI_DONE
ビットはNMI共有を簡単にします。このビットは全てのNMIハンドラから見え、
現在実行中のNMIハン
ドラはNMI_DONEビットをアサートする前にNMIソースをクリアできます。NMIハンドラ・ソフトウェ
アは、ハンドラを抜けるためのIRET命令を実行する前に直接NMI_DONEビットに1を書込み自分で
クリアしなければなりません。CPUのNMIタイミング仕様を満足するために、
NMI_DONEビットをセッ
トすることで他のペンディングになっているNMI要求がサービスされることを許可する前の短い時間
にそのNMI信号をCPUに対してデアサートします。
エッジトリガのNMIをÉlanSC520 マイクロコントローラで共有することは推奨できません。
15-14
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
プログラマブル・インタラプト・コントローラ
Figure 15-4
NMIルーティング
GPIRQ0
0
1
polarity0
nmi_enb0
GPIRQ10
0
1
polarity10
nmi_enb10
INTA
1
0
polarity11
nmi_enb11
INTD
polarity14
nmi_enb14
pit_tmr0_irq
nmi_enb15
pit_tmr1_irq
nmi_enb16
pit_tmr2_irq
nmi_enb17
gp_tmr0_irq
nmi_enb18
gp_tmr1_irq
nmi_enb19
gp_tmr2_irq
nmi_enb20
uart1_irq
nmi_enb21
uart2_irq
nmi_enb22
ssi_irq
nmi_enb23
ecc_nmi
nmi_enb24
wdt_irq
nmi_enb25
rtc_irq
nmi_enb26
pci_nmi
nmi_enb27
pci_irq
nmi_enb28
gpdma_bc_irq
nmi_enb29
wpv_irq
nmi_enb30
ice_irq
nmi_enb31
ferr_irq
nmi_enb32
nmi_trig
1
0
nmi_out
NMI to CPU
nmi_enb
Notes:
The polarity control signal per external interrupt source is common to those used across the channel routers. The
gating NMI enable bits for each source are controlled via the interrupt mapping registers. The NMI conditioning logic
to implement NMI sharing is not shown in this figure
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
15-15
プログラマブル・インタラプト・コントローラ
15.5.7
優先順位の種類
それぞれのインタラプト・コントローラは割込み要求に対してそのFigure 15-1で示されるようににIR
番号に応じて優先順位をつけます。ここではデフォルトとしてIR0を最も高い優先順位とし、IR7を最
も低い優先順位とします。
カスケードされた環境では、22の優先順位レベルは Figured 15-1のようにP1が最も優先順位が高
くP22が最も低くなります。結果として2つ以上の割込み要求が同時に発生したとしても、
より高い優
先順位の割込みが最初にサービスされ、低い優先順位の割込みはペンディングになります。
インタラプト・コントローラはネストされた割込みをサポートします。ネスティングの深さはシステムの
パフォーマンスに影響しますのでプログラマはこの事については注意して実装する必要があります。
インタラプト・コントローラは特殊および自動ローテーション・タイプもサポートします。
■ 特殊なローテーションとして、個別のコントローラの中で最も優先順位の低いものがプログラム
されると他の全ての優先順位も決定されます。
– 例えばFigure 15-1で、P5が最も優先順位が低くプログラムされるとスレーブ1コントローラ
のP6がこのコントローラの中で最も優先順位が高くなります。
– この場合、優先順位は最も優先順位の高いものから次の様になります。P1-P2 (マスタ), P6P10 (スレーブ1), P3-P5 (スレーブ1), P11-P12 (マスタ), P13-P20 (スレーブ2), P21-P22 (
マスタ)。これはマスタ・コントローラもスレーブ2コントローラもそれぞれIR7を最も優先順位
の低いものとしてプログラムされるからです。
– 事実、Figure 15-1に示す構成は(優先順位でP1-P22となる)固定された優先順位体系の1つ
で特殊なローテーション・タイプのバリエーションの1つです。
■ 自動ローテーションでは、
コントローラの全ての優先順位は等価として扱われます。
– このモードでは、サービス直後の割込み要求に最も低い優先順位が割り当てられます。従っ
て、同じデバイスからの割込みの要求は順番を待たされます。
– 最悪の場合には、そのデバイスは多くて1度に7つの他のデバイスがサービスされるまで待た
されることになります。
15.5.8
設定情報
15.5.8.1
プログラミング
PICの初期化シーケンスはそれぞれのコントローラに対して2から4バイトの書込みシーケンスによっ
て構成されます。この最初の初期化バイトはコントローラの最も下位アドレス(マスタ・コントローラ:
020h, スレーブ1コントローラ:0A0h, スレーブ2コントローラ:024h)に書込まれ、その後に続くすべ
ての初期化バイトはコントローラの上位アドレス(マスタ・コントローラ:021h,スレーブ1コントローラ:
0A1h,スレーブ2コントローラ:025h)に書込まれます。
1.
最初の初期化バイトInitialization Control Word 1 (xICW1)レジスタはコントローラに初期化
シーケンスが始まることを知らせます。このレジスタはまた割込みトリガ(エッジトリガかレベル
センシティブか)のタイプ、
コントローラがカスケード構成か否か、
4つ目の初期化バイトすなわち
Initialization Control Word 4 (xICW4)レジスタの値が必要かどうかなどを制御します。
2.
2番目のバイトInitialization Control Word 2 (xICW2)レジスタはそのコントローラのベクタ・
オフセットを含みます。PC/AT互換の割込みでは、
xICW2レジスタの値はマスタ・コントローラに
対して08hでスレーブ1コントローラに対しては70hになります(スレーブ2コントローラはPC/AT
互換システムでは使用されません)。
3.
3番目のバイトInitialization Control Word 3 (xICW3)レジスタは、xICW1レジスタでコントロー
ラがカスケード構成で設定したときにのみ書込まれます。マスタ・コントローラに対して、
どのIR
入力がスレーブ・コントローラに対してフックされるかを示します。スレーブ・コントローラにつ
15-16
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
プログラマブル・インタラプト・コントローラ
いては、スレーブ・コントローラに接続されるマスタ・コントローラのIRピンを示します。
重要なことは、ÉlanSC520 マイクロコントローラのPICはスタンド・アローンのマスタ・コントローラ
の構成でも、
スレーブ1かスレーブ2のどちらでも1つのスレーブ・コントローラとカスケードした構成
でも、スレーブ・コントローラを両方ともカスケードした構成でも使用することができます。
– スタンド・アローンのマスタ・コントローラとして設定する場合、8つ以下の割込みがユーザに
提供され、Master PIC Initialization Control Word 3 (MPICICW3) レジスタ (ポート 0021h)
のビット2と5が0にクリアされなければなりません。
– スレーブ1コントローラのみカスケードの設定をする場合、Master PIC Initialization Control Word 3 (MPICICW3) レジスタ(ポート 0021h)のS2がセットされS5がクリアされなけれ
ばなりません。
– スレーブ2コントローラのみカスケードの設定をする場合、Master PIC Initialization Control Word 3 (MPICICW3) レジスタ(ポート 0021h)のS2がクリアされS5がセットされなけれ
ばなりません。
– スレーブ・コントローラを両方ともカスケードの設定をする場合、Master PIC Initialization
Control Word 3 (MPICICW3) レジスタ(ポート 0021h)のS2とS5が共にセットされなければ
なりません。
4.
Initialization Control Word 1 (xICW1)レジスタで示されている時だけ書込まれますが、Initialization Control Word 4 (xICW4)レジスタはEOIが手動か自動で発生させられるかを制御します。ま
た他のビットはÉlanSC520 マイクロコントローラでは常にセットされている必要があります。
PICのコンフィグレーション・レジスタのいくつかのパラメータはÉlanSC520 マイクロコントローラで
はコントローラが既に決められているように固定されています。
例えば、Slave 1 PIC Initialization Control Word 3 (S1PICICW3) レジスタ (ポート 00A1h)は常に
2dであり、マスタ・コントローラのIR2にスレーブ1がフックされることを示しています。
このように固定されていないコンフィグレーション・パラメータに対して、
Figure 15-1の様に正しく手
配するためにはコントローラを初期化するソフトウェアは注意深く設計する必要があります。
例えばスレーブ・コントローラが両方ともバイパスされる時は、スレーブ・コントローラがIR2とIR5信
号へそれぞれフックされることを示すために、Master PIC Initialization Control Word 3
(MPICICW3) レジスタ(ポート 0021h)は24h(または00100100b)を含んでいなければなりません。
インタラプト・コントローラが初期化された後、その後に続くポート021h、0A1h、025hへの読出しや
書込みアクセスは、それぞれマスタ・コントローラ、
スレーブ1コントローラ、
スレーブ2コントローラの
Interrupt Mask (xINTMSK) レジスタへのアクセスになります。Operation Control Word 2 (xOCW2)
とOperation Control Word 3 (xOCW3)レジスタはそれぞれ020h、0A0h、024hに割り当てられた
ポートへの書込みによってアクセスします。これらのレジスタをつかってインタラプト・コントローラ
は様々なモードに設定することができます。
5.
Interrupt Mask (xINTMSK)レジスタを初期化することでチャネル毎の割込み要求のマスクを
設定することができます。
6.
Operation Control Word 2 (xOCW2)への書込みで様々なローテーション・タイプやEOIモー
ドを設定します。
7.
Operation Control Word 3 (xOCW3)レジスタでは異なるマスク・モードの設定や In-Service
(xISR)レジスタかInterrupt Request (xIR)レジスタの読出しの制御とコントローラがソフトウェ
アがポーリングするのに使用されるかどうかなどを設定します。
残りのコントローラに依存しないレジスタは次にプログラムされます。これは様々な割込みソースを
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
15-17
プログラマブル・インタラプト・コントローラ
適切な優先順位レベルや(Figure15-1のように)NMIへのルーティング、
必要に応じた極性反転、
チャ
ネル毎に異なる割込みモードの設定、
グローバル割込みモードのイネーブルの設定、マスタNMIイ
ネーブルの設定などを含みます。これらのレジスタはTable 15-2に示します。
Set Interrupt-Enable Flag (STI) 命令の使用に先立ってEOIが全てのチャネルに対して実行される
ことを推奨します。これはCPUの割込み要求の受け付けをイネーブルにする前の初期化フェーズの
間に潜在的にセットされたすべての疑似In-Service (xISR) レジスタのクリアを行います。
15.5.8.2
PC/ATコンフィグレーション
ÉlanSC520 マイクロコントローラのPICをPC/AT互換モードに設定するために、
「 15.5.8.1 プログ
ラミング」に記述されているのと同じ設定シーケンスが次のような例外と共に述べられています。
1.
2.
Master PIC Initialization Control Word 1 (MPICICW1)レジスタ(ポート 0020h)のSNGLビッ
トは0にクリアされなければなりません。
Master PIC Initialization Control Word 3 (MPICICW3)レジスタ(ポート 0021h)のS2が1に
セットされS5が0にクリアされなければなりません。
3.
Interrupt Control (PICICR)レジスタ(MMCR オフセットD00h) の M_GINT_MODEビットと
S1_GINT_MODEビットが共に1にセットされなければなりません。
4.
マスタ・コントローラとスレーブ1コントローラのそれぞれに対するベース・インタラプト・ベクタ
番号08hと70hをMaster PIC Initialization Control Word 2 (MPICICW2)レジスタ(ポート
0021h)とSlave 1 PIC Initialization Control Word 2 (S1PICICW2)レジスタ(ポート 00A1h)に
書込まなければなりません。この値を書込むことで、
これらのレジスタの8ビット・ベース・インタ
ラプト・ベクタ番号のビット7-3に対応するT7-T3ビットが正しく設定されます。またA10-A8ビッ
ト・フィールド(ビット2-0)はPC/AT互換割込みでは0でなければならないので、
このフィールドが
クリアされます。
5.
Master PIC Initialization Control Word 4 (MPICICW4)レジスタ(ポート 0021h)とSlave 1
PIC Initialization Control Word 4 (S1PICICW4)レジスタ(ポート 00A1h)のSFNMとAEOIビッ
トが0にクリアされなければなりません。
6.
システムで使用されているどの割込みソースも割込みマッピング・レジスタによって適切な割込
み優先順位に割り当てられていなければなりません。Table 15-4にPC/ATのIRQとI/Oデバイス
とÉlanSC520 マイクロコントローラの割込み優先順位との関連が示してあります。
この場合、
スレーブ1コントローラだけがマスタ・コントローラにIR2入力を通してカスケードされてい
ます。スレーブ2コントローラはマスタ・コントローラから論理的に切り離されており、元々フックされ
ていた最も優先順位の高いチャネルは、IR5入力へ自動的にルーティングされ、それによってPC/AT
互換のインタラプト・コントローラのアーキテクチャを実現します。
15.5.9
ソフトウェアの考察
15.5.9.1
割込みの共有
割込みの共有はシステムの複雑さとオーバーヘッドを増します。割込みの共有を実装するシステム
のパフォーマンスとの関わりを完全に理解することが必要になります。割込み線を共有する複数の割
込み要求に対して、
システム・デザイナは割込みの共有に関連する潜在的な複雑さに気が付く必要が
あります。
例えば最悪の場合として、
CPUが(割込みフック・プロセスの間に作られた)割込み連鎖の始まりでフッ
クされた最初の割込み要求をサービスするまでに容認できないような非常に長い時間を要するかも
しれません。この問題はその前に1つ以上の割込み要求がペンディングになっている場合はさらにひ
15-18
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
プログラマブル・インタラプト・コントローラ
どいことになります。これは割込みフック・プロセスの間により重要な割込みテーブルのエントリを連
鎖の終わりの方へ優先順位付けするか並び変えることでいくぶん軽くすることができます。
レベルセンシティブ割込みの共有は一般的にはうまくいきますが、
エッジセンシティブ割込みの共有は
推奨しません。
15.5.9.2
スレーブ・コントローラの無効化
ÉlanSC520 マイクロコントローラのPICはソフトウェアによってどちらか一方または両方のスレーブ・
コントローラをカスケード・チェインから論理的に切り離すことができます(Master PIC Initialization
Control Word 3 (MPICICW3) レジスタのS2とS5ビット参照)。1つまたは2つのスレーブ・コントロー
ラをディセーブルすることで、9または16よりも少ない割込みチャネルのシステムを構成することが
できます。
スレーブ・コントローラはマスタ・コントローラにハードワイヤードで接続されていますが、
設定につい
てソフトウェアでスレーブ・コントローラをバイパスすることで、
より効果的な割込みシステムとなり
マスタ・コントローラだけが初期化され設定されればよいことになります。この構成では割込みサー
ビス・ルーチンの最後で2つでなくEOIが1つだけ必要とされます。
どちらかのスレーブ・コントローラがディセーブルのとき、
スレーブ・コントローラにフックされた最も
高い優先順位の割込みが自動的にマスタ・コントローラの対応するチャネル2または5にルーティング
されます。プログラマは、
スレーブ・コントローラの他の7つの優先順位の低いチャネルへのマッピン
グはこれらの割込み要求のマスタ・コントローラへの伝播を抑制する事に気をつける必要がありま
す。Figure 15-1にÉlanSC520 マイクロコントローラの PICの構成について示します。
15.5.9.3
有効な割込み要求の検出
割込み要求が対応するIn-Service (xISR)レジスタ・ビットがセットされるのに十分な時間(決定論的な
時間ではありませんが)アクティブでなかった場合、その要求は疑似割込みパルスとみなされます。
どんな割込み要求の疑似パルスも影響を受けたコントローラのIR7入力に関連する割込みハンドラ
スレーブ1コントローラに対しては
を実行させます(マスタ・コントローラに対しては優先レベルP22、
P10、スレーブ2コントローラに対してはP20 )。Interrupt Request (xIR)レジスタ・ビットはそれが疑
似か有効な割込み要求かに関わらず、常に割込み要求の間はセットされます。
IR7に関係する割込みハンドラは、有効な割込み要求が割込みを発生したのかどうかを検出するため
にIn-Service (xISR)レジスタ.
ビットをチェックする必要があります。もし、In-Service (xISR)レジス
タ・ビットがセットされていれば、有効な割込み要求が発生しており通常のルーチンが実行されます。
そうでなければ疑似割込みと認識され割込みルーチンを抜けます。
ある期間より短い割込み要求の疑似パルスはIn-Service (xISR)レジスタ・ビットをチェックすることで
ソフトウェアによりフィルタリングすることができます。もし与えられた優先レベルでフックされた全て
の割込みソースが自身のステータス・ビットを提供するならより長い疑似パルスだけが検出できます。
15.5.9.4
浮動小数点ユニット・エラー・ハンドリング
レガシーPC/ATシステムのようなDOS互換の浮動小数点エラー・ハンドリングを実装するには、
CPU's
Control 0 (CR0)レジスタの Numeric Error (NE)ビットがクリアされる必要があります。NEビットが
セットされているとÉlanSC520 マイクロコントローラのプログラマブル・インタラプト・コントローラ
による外部割込み要求の代わりに例外 16 が発生します。浮動小数点ユニットの詳細に関しては、
Am486® DX/DX2 Microprocessor Hardware Reference Manual, 1994 (order #17965)を参照
してください。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
15-19
プログラマブル・インタラプト・コントローラ
15.6
初期化
プログラマブル・インタラプト・コントローラはシステム・リセットにのみ反応します。
スレーブ1、スレーブ2、マスタ・インタラプト・コントローラはシステム・リセットには影響されません。
インタラプト・コントローラのダイレクト・マップド・レジスタは一度設定されるとシステム・リセットして
も値は保持されます。しかし他の全てのコンフィグレーション・レジスタはシステム・リセットが発生す
るとパワー・オン・リセット状態のデフォルトに設定されます。インタラプト・ルータがリセットされ割込
み要求は禁止されます。これによって全ての割込み要求がCPUに届くのをディセーブルします。
システム・リセット時にPICはディセーブルされます。
1. 「 15.5.8 設定情報」で述べられているようにマスタ、スレーブ1、スレーブ2コントローラを設定
します。全ての割込みをマスクします。
2.
3.
サポートされる割込み優先レベルに対応する場所に割込みサービス・ルーチンを置きます。
割込みソースをインタラプト・ルータの割込みレベルにマッピングし、対応する割込みコントロー
ラの割込みをアンマスクすることで、使用したい優先レベルをイネーブルにします。CPU の
FlagsレジスタのIFビットをSTI命令に実行しセットします(システムのNMIはディセーブルされ、
ソフト・リセットされ使用する前にはNMI_ENBビットによってイネーブルされなければなりませ
ん)。
15-20
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
第16章
プログラマブル・インターバル・タイマ
16.1
概要
ÉlanSC520 マイクロコントローラは4つの独立したタイマ・モジュールを内蔵しています。それらは
3つのタイマを持つPC/AT互換のプログラマブル・インターバル・タイマ(PIT)と3つの汎用タイマと1
つのソフトウェア・タイマ、そしてウォッチドッグ・タイマです。プログラマブル・インターバル・タイマに
ついてはこの章で述べられます。また汎用タイマについては第17章で、
ソフトウェア・タイマについて
は第18章で、そしてウォッチドッグ・タイマについては第19章で述べられています。
ÉlanSC520 マイクロコントローラのプログラマブル・インターバル・タイマ(PIT)はPC/AT互換性の
ためデザインされた3つの独立したタイマを持っています。
PITの特徴は
■ 3つの16ビット・タイマまたはチャネル
■ 1.1882 MHzソースか外部ピンのどちらでもクロック・ソースとして使用できます。同じクロック
が3つの全てのチャネルに供給されます。
■ それぞれのチャネルに1つの割込み出力
■ PITチャネル2に対しては1つの外部出力ピン
■ 以下に示すようなオペレーション・モードをサポート
– ターミナル・カウントでの割込み
– ハードウェアによる再トリガ可能なワンショット
– レートおよび方形波の生成
– ハードウェアおよびソフトウェアによる再トリガ可能なストローブ
16.2
ブロック図
Figure 16-1にプログラマブル・インターバル・タイマのブロック図を示します。
16.3
システム設計
Table 16-1に他のインターフェイスと共有されているPIT信号を示します。PITOUT2ピンに関係する
ピンストラップ機能はPWRGOODアサーションの結果としてのみサンプリングされ、
このピンのPIT機
能には影響を与えません、従ってそれはこの表には示していません。イネーブルにされるとTable 16-
1に示されるマルチプレクスされた信号はディセーブルされるか同じピンを使用する別の機能に割り
当てられます。
注意:PITOUT2に関係するCFG3ピンストラップはAMDの内部試験モードで使用されます。
リセット中はこのピンを
ハイレベルにしないでください。
Table 16-1
多重化されたプログラマブル・インターバル・タイマ( PIT )信号
Default Signal
Alternate Function
Control
Register
CLKTIMER
CLKTEST
CLK_PIN_DIR
Clock Select (CLKSEL) register
(MMCR offset C26h)
PITGATE2
GPCS3
GPCS3_SEL
Chip Select Pin Function Select
(CSPFS) register (MMCR offset C24h)
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
16-1
プログラマブル・インターバル・タイマ
Figure 16-1
プログラマブル・インターバル・タイマ ブロック図
Élan™SC520 Microcontroller
Programmable Interval Timer
Always Enabled
1.1882
MHz
pit_tmr0_irq
Channel 0
CLKTIMER
pit_tmr1_irq
gate 0
PIC
pit_tmr2_irq
PITGATE2
Channel 1
gate 1
0061h[0]
Channel 2
Port
B
gate 2
0061h[1]
PITOUT2
0061h[5]
Notes:
Port B is addressed at 0061h in I/O space.
16.4
レジスタ
プログラマブル・インターバル・タイマ(PIT)はTable 16-2とTable 16-3に示されるレジスタを使って
設定します。ダイレクトマップされた System Control Port BレジスタがPC/AT互換PIT機能を使用
できるようにします。
Table 16-2
メモリ・マップされたプログラマブル・インターバル・タイマ設定レジスタ
Register
Mnemonic
MMCR
Offset
Address
\\Chip Select Pin Function
Select
CSPFS
C24h
GPCS3 or PITGATE2 function select
\\Clock Select
CLKSEL
C26h
CLKTIMER[CLKTEST] pin enable, clock output
select options (PIT), CLKTIMER select (input
clock for PIT)
\\PIT 0 Interrupt Mapping
PIT0MAP
D20h
PIT 0 interrupt mapping
\\PIT 1 Interrupt Mapping
PIT1MAP
D21h
PIT 1 interrupt mapping
\\PIT 2 Interrupt Mapping
PIT2MAP
D22h
PIT 2 interrupt mapping
16-2
Function
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
プログラマブル・インターバル・タイマ
Table 16-3
ダイレクト・マップされたプログラマブル・インターバル・タイマ設定レジスタ
Register
Mnemonic
I/O Address Function
PIT Channel 0 Count
PIT0CNT
0040h
Current count value for Channel 0
PIT Channel 1 Count
PIT1CNT
0041h
Current count value for Channel 1
PIT Channel 2 Count
PIT2CNT
0042h
Current count value for Channel 2
PIT 0 Status
PIT0STA
0040h
Counter mode status, null count, output state,
latch command or read/write control setting, and
BCD setting for Channel 0
PIT 1 Status
PIT1STA
0041h
Counter mode status, null count, output state,
latch command or read/write control setting, and
BCD setting for Channel 1
PIT 2 Status
PIT2STA
0042h
Counter mode status, null count, output state,
latch command or read/write control setting, and
BCD setting for Channel 2
PIT Mode Control
PITMODECTL
0043h
PIT counter select or read-back command, read/
write control or counter latch command, counter
mode, BCD select
PIT Counter Latch Command PITCNTLAT
0043h
Control to latch current count of the selected
channel for read-back
PIT Read-Back Command
PITRDBACK
0043h
Control to latch status and current count of each
channel for read-back
System Control Port B
SYSCTLB
0061h
PITOUT2 signal enable, status, and Channel 2
gate input control
16.5
オペレーション
プログラマブル・インターバル・タイマは3つの異なったタイマまたはチャネルと6つのオペレーション・
モードを持ちます。またこの全てのチャネルで全てのモードをサポートしています。
16.5.1
PITチャネル0
PITチャネル0が汎用割込み要求に使用されます。PITチャネル0はPC/AT互換モードで動作させるた
めに割込み優先順位P1(IRQ0)をアサートするように設定することができます。割込みの取り扱いに
ついては第15章「プログラマブル・インタラプト・コントローラ」を参照してください。
PITチャネル0はPC/AT互換モードで動作させるためにIRQ0をアサートするように設定できます。そ
のゲート・ラインはハイレベルになっていてPITチャネル0はモード0,2,3,4の4つのモードのみで動作
典型的に割込みのために使用されます。
します。モード0はリスタートするまでハイ状態を保つので、
16.5.2
PITチャネル1
PITチャネル1は汎用タイマです。PITチャネル1の出力はプログラマブル・インタラプト・コントローラ
の入力をドライブするために内部でハード的に接続されています。割込みの取り扱いについては第15
章「プログラマブル・インタラプト・コントローラ」を参照してください。
そのゲート・ラインはハイレベルになっていてPITチャネル1もまたモード0,2,3,4の4つのモードのみ
で動作します。モード0はリスタートするまでハイ状態を保つので、
典型的に割込みのために使用され
ます。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
16-3
プログラマブル・インターバル・タイマ
16.5.3
PITチャネル2
PITチャネル 2 のゲート・ラインはSystem Control Port B (SYSCTLB)レジスタ(ポート0061h) の
PIT_GATE2ビットか外部入力ピンPITGATE2によって制御されます。PITGATE2はマルチプレクスさ
れたピンなので、そのピンがディセーブルされていれば、ゲート・ラインはSystem Control Port B
(SYSCTLB)レジスタのPIT_GATE2ビットのみで制御されます。
PIT チャネル 2 の出力はプログラマブル・インタラプト・コントローラの入力をドライブするために
ÉlanSC520 マイクロコントローラの内部でハードワイヤードに接続されて、System Control Port
B (SYSCTLB)レジスタ(ポート 0061h)のPIT_OUT2_STAビットから状態を読込むことができます。
詳細については第 15 章を参照してください。System Control Port B (SYSCTLB)レジスタの
PIT_OUT2_ENBビットがセットされているとき、その出力は外部出力ピンPITOUT2に接続されます。
PITチャネル2は6つの全てのモードで動作します。
16.5.4
オペレーティング・モード
各々の PITチャネルの動作モードはPIT Mode Control (PITMODECTL)レジスタ(ポート 0043h)の
Counter Mode (CTR_MODE)ビット・フィールドで明示します。
16.5.4.1
モード0: ターミナル・カウントでの割込み
ターミナル・カウント・モードでの割込みでは
1.
PIT Channel x Count (PITxCNT)レジスタへ初期値がロードされ、カウンタの出力はローにな
ります。
2.
ゲート入力がハイレベルならば1入力クロック・パルス毎にカウント値が1づつ減算されます。
3.
ゲート入力がローレベルならば、ゲートが再びハイレベルになった後の立ち上がりクロック後ま
4.
カウンタの出力の初期値はローで、そのカウント値がゼロになるまでローレベルのままです。ま
でカウント値は維持されます。
た、
カウント値がゼロになり出力がハイになると、そのカウンタに新しいカウント値がロードされ
るか新しいモード0のコントロール・ワードがロードされるまで出力はハイレベルのままです。
16.5.4.2
モード1: ハードウェア-リトリガラブル・ワンショット
ハードウェア-リトリガラブル・ワンショットでは
1.
PIT Channel 2 Count (PIT2CNT)レジスタに初期値がロードされた後、ゲート信号の立ち上が
りエッジでカウンタの出力がローになります。
2.
3.
継続的なクロック・パルスによってカウント値が減ってゆきます。
出力がローになると共にゲート・トリガがワンショット・パルスを発生しカウント値がゼロになるま
で維持されます。
4.
出力がハイになり、次のトリガの後のクロック・パルスの入力があるまでハイレベルのままです。
ワンショット・パルスの期間は
ワンショット・パルスの期間 = 初期値 * クロック入力の期間
このモードはハードウェア-リトリガラブルと呼ばれます。ゲート入力に立ち上がりエッジが入力される
と一つの出力パルスが発生し、
カウンタは初期値にリロードされ新しいカウントが満了するまでパル
スが続くからです。このモードはPITチャネル2でのみサポートされます。
16-4
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
プログラマブル・インターバル・タイマ
16.5.4.3
モード2: レート・ジェネレータ
レート・ジェネレータ・モードにプログラムされると、nを初期値とした時にカウンタはnカウンタによっ
て分周するように動作します。
1.
出力信号はハイで開始され、
カウンタの初期値が1まで減っていくまでの間ハイレベルで続きま
す。
2.
出力は1クロック分だけローになり、再びハイになります。
3.
カウンタは初期値にリロードされ、カウント・シーケンスがくり返されます。
nクロック・サイクル毎に出力に1クロック・パルスが発生します。
デフォルトでは、PC/AT互換システムはPITチャネル0をこのモードでプログラムします。
16.5.4.4
Mode 3: スクエア・ウェーブ・モード
スクエア・ウェーブ・モードでは、
1.
カウンタの出力は、
そのカウント値が偶数でロードされている限り50%のデューティー・サイクル
となります。出力の初期値はハイです。
2.
ゲートがハイレベルに維持されている間、
クロック・サイクル毎に2づつカウントが減っていきます。
3.
カウントがゼロになると、出力は反転し初期値がリロードされ、
シーケンスがくり返されます。
出力信号の期間は
期間 = 入力クロック期間 * カウンタにロードされる初期値
初期値が奇数の場合は、出力は(n+1)/2サイクルの間だけハイで(n-1)/2サイクルの間はローです。
デフォルトでは、PC/AT互換システムではPITチャネル1と2が、それぞれDRAMリフレッシュとスピー
カのためにこのモードにプログラムされます。
16.5.4.5
モード4: ソフトウェア-トリガード・ストローブ
ソフトウェア-トリガード・モードでは
1.
ソフトウェアによって初期値がロードされた1クロック・パルス後、
カウンタは自動的にカウントダ
ウンを始めます。出力信号の初期値はハイです。
2.
カウントはクロック入力信号によってセットされた割合で減っていきます。
3.
ターミナル・カウントに達すると、
カウンタは1クロック・パルスの期間だけ出力にストローブ・パ
ルスを発生します。
4.
カウンタがnの値でロードされていれば、n+1クロック・サイクル後に出力にストローブ・パルスが
生成されます。
16.5.4.6
モード5: ハードウェア-トリガード・ストローブ
ハードウェア-トリガード・モードでは
1.
カウントはローからハイのゲート信号の遷移によって開始されます。
2.
カウントが満了するまで出力はハイレベルに維持されます。
3.
出力は1クロック・サイクルの間だけローになり、再びハイになります。
4.
コントロール・ワードと初期値を書込んだ後、
カウンタはトリガ後の次ぎのクロック・パルスでロー
ドされます。
ストローブ・パルスは、ゲート入力でローからハイの遷移(トリガ)のn+1クロック・パルス後に発生し
ます。このカウント・シーケンスはリトガラブルです。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
16-5
プログラマブル・インターバル・タイマ
このモードでは、
カウンタ出力はトリガのメカニズムを除いてモード4と同じ用に振る舞います。この
モードはPITチャネル2のみでサポートされます。
16.5.5
クロックについての考察
PITクロックのソースは 1.1882 MHz PITクロックでも外部ピンからでも使用できます。これはClock
Select (CLKSEL)レジスタ(MMCRオフセットC26h)のCLK_PIN_DIRビットで設定されます。
ÉlanSC520 マイクロコントローラのPITクロックはPC/AT互換システムなどの1.19318MHzではあ
りません。詳細については第16章16.5.7.1を参照ください。
16.5.5.1
内部クロック
Table 16-4
PIT内部クロックのソース
16.5.5.2
Internal Clock Source
Resolution Range
Duration
1.1882 MHz
841.61 ns–55.1 ms
16-bit duration
外部クロック
独立した外部クロック入力ピンCLKTIMERがPIT へ供給されています。Table 16-5にPITのための
CLKTIMER入力に対する外部クロック・ソースの周波数レンジが示されています。
Table 16-5
16.5.6
PIT外部クロックのソース
External Clock Source
Frequency Range
CLKTIMER
1.18125–1.20511 MHz
割込み
それぞれのPITチャネルはプログラマブル・インタラプト・コントローラ(PIC)へのそれ自身の割込みが
用意されています。割込みのステアリングについての詳細については第15章を参照ください。
PITに関しては、割込み要求は常にターミナル・カウントで発生し、それが基本的にはPITチャネルの出
力信号となります。割込み要求信号のパターンはそのチャネルにプログラムされたオペレーション・
モードに依存します。モード0と1はローからハイの信号をターミナル・カウントで発生し、それらは通
常割込みソースとして使用されます。
16.5.7
ソフトウェアの考察
16.5.7.1
PC/AT互換システムにおけるPITクロック・ソースの使用
PC/AT互換システムでは、ブート・コードは通常PIT Channel 0 Count (PIT0CNT)レジスタ(ポート
0040h)の値をFFFFhに設定します。1日の正確な時間を得るためにこの割込み期間を当てにします。
ÉlanSC520 マイクロコントローラのタイマ・クロックのソースが 1.1882 MHzであると、優先順位
P1の割込み(IRQ0)は55.15ms毎に発生します。従来からPITクロック・ソースは1.19318MHzであり、
これは54.93msの割込み発生間隔に相当します。この割込み発生間隔の違いがPC/AT互換システム
の時間管理を不正確なものにしています。
この問題を扱う2つの方法があります。1つはシステム・ブート・コードを通してPIT Channel 0 Count
(PIT0CNT)レジスタの値を変更すること。2つめはPITを外部クロック・ソースでドライブすることです。
■ PIT Channel 0 Count (PIT0CNT)レジスタの変更- シス−ム・ブート・コードがこのレジスタの
値をFEF3hにプログラムすれば、望ましい割込み発生間隔の54.93msが達成できます。
16-6
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
プログラマブル・インターバル・タイマ
■ CLKTIMERピンに外部1.19318MHzクロックを供給-システム・デザイナはCLKTIMERピンに周
波数1.19318MHzの外部クロック・ソースを供給することを選べます。このピンはPITの設定に先
立ってシステム・ブート・プロセス中のシステム・ブート・コードによってこの機能を設定される必
要があります。このためにはClock Select (CLKSEL)レジスタ(MMCR オフセットC26h) の
CLK_PIN_DIRビットを使用します。
16.6
初期化
システム・リセット時、PITそれ自身の状態は不定です。全てのチャネルのモード、
カウント、出力は不定
です。それぞれのPITチャネルはそれが使用される前にプログラムされる必要があります。余計な割
込みを防ぐために、
それぞれのPITチャネルはAm5x86 CPUの割込みをイネーブルにするのに先立っ
て設定されなければなりません。
1.
PIT Mode Control (PITMODECTL)レジスタ(ポート 0043h)へのコントロール・ワードの書込
み
2.
プログラムされるPITチャネルの PIT Channel x Count (PITxCNT)レジスタへの初期値の書
込み。コントロール・ワードが初期値のフォーマットを決定します。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
16-7
プログラマブル・インターバル・タイマ
16-8
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
第17章
汎用タイマ
17.1
概要
汎用(GP)タイマは、定期的な割込みや外部イベントのカウントや測定など、最も一般的なタイミング
やカウント・アプリケーションを意図しています。
汎用タイマの特徴は
■ 3つの16ビット・タイマ
■ カウンタ・エレメント当たり32ビットタイマを最大2つまで可能にするタイマの2ステージ・カスケー
ド
■ クロック・ソースはシステム・クロック(33MHz)、外部ピン、
プリスケールされたクロックから選べ
ます。外部ピンとプリスケールされたクロックはGPタイマ0とGPタイマ1でのみ利用できます。
最大クロックは33MHz/4です。
■ GPタイマ0とGPタイマ1には外部のイベントの取り込み、パルス・カウント、
カウンタのリセット/リ
ロードのために使用できる1つの外部入力ピンがそれぞれ用意されています。
■ GPタイマ0とGPタイマ1には1つの外部出力ピンがあります。
■ それぞれのタイマに1つの割込み出力があります。
■ 次に示す複数のオペレーティング・モード
–
–
–
–
17.2
ターミナル・カウントでの割込み
ハードウェア・リトリガ・モード
レートあるいはスクエア・ウェーブ発生
継続モード
ブロック図
Figure 17-1に汎用レジスタのブロック図を示します。
17.3
システム設計
Table 17-1に他のインターフェイスと共有している汎用タイマの信号を示します。イネーブル時は
Table 17-1に示されるマルチプレクスされた信号で、ディセーブル時は同じピンを使用する他の機
能に切り替わります。
Table 17-1
多重化された汎用タイマ信号
Default Signal
Alternate Function
Control Bit
TMROUT0
GPCS7
Register
TMROUT1
GPCS6
GPCS7_SEL Chip Select Pin Function Select (CSPFS)
GPCS6_SEL register (MMCR offset C24h)
TMRIN0
GPCS5
GPCS5_SEL
TMRIN1
GPCS4
GPCS4_SEL
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
17-1
汎用タイマ
Figure 17-1
汎用タイマ ブロック図
Élan™SC520 Microcontroller
General-Purpose Timers
TMRIN0
33 MHz
GP Timer 0
33 MHz
GP Timer 1
TMROUT0
TMRIN1
17.4
gpt_tmr0_irq
gpt_tmr1_irq
clk_pre
PIC
GP Timer 2
33 MHz
TMROUT1
gpt_tmr2_irq
レジスタ
汎用タイマは、Table 17-2に示すメモリ・マップド・レジスタを持っています。
Table 17-2
メモリ・マップされた汎用タイマ・レジスタ
Register
Mnemonic
MMCR
Offset
Address
Chip Select Pin Function
Select
CSPFS
C24h
TMROUTx, TMRINx, or GPCSx pin function
select
GP Timers Status
GPTMRSTA
C70h
Interrupt status and clear for all three GP timers
GP Timer 0 Mode/Control
GPTMR0CTL
C72h
GP Timer 0 enable, permit Enable bit write,
interrupt enable, maxcount register in use,
maximum count, retrigger, internal clock source
prescaler, external clock source, alternate
compare mode, continuous mode
GP Timer 0 Count
GPTMR0CNT
C74h
Current count value
GP Timer 0 Maxcount
Compare A
GPTMR0MAXC
MPA
C76h
Maxcount value A to compare with current count
GP Timer 0 Maxcount
Compare B
GPTMR0MAXC
MPB
C78h
Maxcount value B, used in the alternate mode
GP Timer 1 Mode/Control
GPTMR1CTL
C7Ah
GP Timer 1 enable, permit Enable bit write,
interrupt enable, maxcount register in use,
maximum count, retrigger, internal clock source
prescaler, external clock source, alternate
compare mode, continuous mode
GP Timer 1 Count
GPTMR1CNT
C7Ch
Current count value
17-2
Function
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
汎用タイマ
Table 17-2
メモリ・マップされた汎用タイマ・レジスタ(続き)
MMCR
Offset
Address
Function
Register
Mnemonic
GP Timer 1 Maxcount
Compare A
GPTMR1MAXC
MPA
C7Eh
Maxcount value A to compare with current count
GP Timer 1 Maxcount
Compare B
GPTMR1MAXC
MPB
C80h
Maxcount value B, used in the alternate mode
GP Timer 2 Mode/Control
GPTMR2CTL
C82h
GP Timer 2 enable, permit Enable bit write,
interrupt enable, maxcount register in use,
maximum count, continuous mode
GP Timer 2 Count
GPTMR2CNT
C84h
Current count value
GP Timer 2 Maxcount
Compare A
GPTMR2MAXC
MPA
C8Eh
Maxcount value to compare with current count
GP Timer 0 Interrupt Mapping GPTMR0MAP
D1Ah
GP Timer 0 interrupt mapping to any of 22
available interrupt channels or NMI
GP Timer 1 Interrupt Mapping GPTMR1MAP
D1Bh
GP Timer 1 interrupt mapping
GP Timer 2 Interrupt Mapping GPTMR2MAP
D1Ch
GP Timer 2 interrupt mapping
17.5
オペレーション
ÉlanSC520 マイクロコントローラは3つの汎用タイマを持っており、それぞれが複数の異なったモー
ドをサポートしています。
17.5.1
GPタイマ0とGPタイマ1
GPタイマ0と1はタイマ入力ピンをドライブする外部イベントの数を数えたり時間を計ったり、
また様々
な波形をタイマ出力ピンに発生させることに使用できます。
GPタイマ0とGPタイマ1のためのソース・クロックはAm5x86 CPUのコア・クロック周波数の4分の1
か、Am5x86 CPUのクロック・スピードの 4分の1を最大周波数とするタイマ外部入力(TMRIN0また
はTMRIN1)の設定があります。タイマの外部入力ピンからドライブされる場合、そのタイマは入力の
遷移というイベントを数えることになります。
GPタイマ 0とGPタイマ1は16ビット・タイマです。GP Timer x Mode/Control (GPTMRxCTL)レジ
スタのPSC_SELビットをセットすることによってGPタイマ2をプリスケーラとして設定した時は、
これ
(「 17.5.7.1 GPタイマ・カウ
らの2つのタイマはそれぞれ32ビットタイマとしてカスケードされます。
ント・エレメントの結合」を参照してください。)32ビット・モードのとき、GPタイマ0と1は16ビット・タ
イマとしては使用できません。
TMRIN0とTMRIN1ピンはそれぞれのタイマ・レジスタのコンフィグレーション・ビットを使用すること
でたくさんの機能のうちの1つに設定することができます。それらの機能は
■ クロック入力-GP Timer x Mode/Control (GPTMRxCTL)レジスタのEXT_CLKビットによって
設定されます。
■ イネーブル入力-GP Timer x Mode/Control (GPTMRxCTL) レジスタのRTGビットとEXT_CLK
ビットの両方を0にクリアすることで設定されます。
■ リセット入力(ハードウェア・リトリガ・モード)-GP Timer x Mode/Control (GPTMRxCTL)レジ
スタの RTGビットを1にセットし、EXT_CLKビットを0にクリアすることで設定されます。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
17-3
汎用タイマ
17.5.2
GPタイマ2
GPタイマ2は外部ピンには接続されていない16ビットタイマです。GPタイマ2は割込みを発生させる
ためにソフトウェアによって使われたり、
リアルタイム・コーディングやタイムディレイ・アプリケーショ
ンのポーリングなどに使用できます。またGPタイマ0とGPタイマ1のプリスケーラとしても使用でき
ます。GPタイマ2のソース・クロックは常にAm5x86 CPUのクロック周波数の4分の1です。
17.5.3
17.5.3.1
オペレーティング・モード
ターミナル・カウントで割込みモード
このモードでは、
タイマ・カウント値がGP Timer Maxcount Compareレジスタの値になった時に割
込み要求が発生します。このモードはGP Timer x Mode/Control (GPTMRxCTL)レジスタの
INT_ENBビットによって設定されます。
連続モードがイネーブルになっていれば、
割込み要求パルスは一定の時間間隔で継続的に発生し、そ
の時間間隔はGP Timer Maxcount Compareレジスタの値に依存します。
17.5.3.2
ハードウェア・リトリガ・モード
ハードウェア・リトリガ・モードでは、TMRIN1かTMRIN0入力ピンの0から1への遷移のエッジによって
それぞれのタイマに対するGP Timer x Count (GPTMRxCNT)レジスタの値をリセットし、カウント
は続行されます。このモードはGP Timer x Mode/Control (GPTMRxCTL)レジスタのRTGビットを
1にセットしEXT_CLKビットを0にクリアすることで有効になります。
17.5.3.3
交互比較モード
プライマリのGP Timer x Maxcount Compare A (GPTMRxMAXCMPA)レジスタとセカンダリの
GP Timer x Maxcount Compare B (GPTMRxMAXCMPB)レジスタを使用することでタイマに2
つの最大値を交互にくり返すことができます。このモードは G P T i m e r x M o d e / C o n t r o l
(GPTMRxCTL)レジスタのALT_CMPビットによって有効になります。
交互比較モードでは、カウンタがカウント中で G P T i m e r x M a x c o u n t C o m p a r e A
(GPTMRxMAXCMPA)と比較している間TMROUT0かTMROUT1ピンがハイになります。そのタイ
マの出力はカウンタがカウント中でGP Timer x Maxcount Compare B (GPTMRxMAXCMPB)と
比較している間はローです。
17.5.3.4
スクエア・ウェーブ・モード
このモードでは、2つのGP Timer Maxcount Compareレジスタのうち現在どちらが有効かによって
示される波形がTMROUT0またはTMROUT1ピンに発生されます。波形のデューティーサイクルと周
波数は交互に使用されるGP Timer Maxcount Compareレジスタの値に依存します。このモードは
GP Timer x Mode/Control (GPTMRxCTL)レジスタの ALT_CMPビットとCONT_COMPビットが
共にセットされることで有効になります。
17.5.3.5
連続モード
連続モードでは、GP Timer x Count (GPTMRxCNT)レジスタの値がGP Timer x Maxcount Com-
pareレジスタ( AまたはB )の値に達したときに0にリセットされ、タイマは直ちにカウントを再開しま
す。連続モードはGP Timer x Mode/Control (GPTMRxCTL)レジスタのCONT_CMPビットをセッ
トすることで有効になります。
17.5.3.6
17-4
プリスケーラ・モード
GPタイマ2の内部出力はGPタイマ0とGPタイマ1の入力クロック・ソースになりえます。GP Timer x
Mode/Control (GPTMRxCTL)レジスタの PSC_SELビットがセットされるとGPタイマ0とGPタイマ
1はGPタイマ2によってプリスケールされます。これによってGPタイマ0とGPタイマ1は32ビット・タ
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
汎用タイマ
イマとしてカスケードされます。PSC_SELビットはEXT_CLKビットがセットされ外部クロックが有効
になっていると無視されます。
17.5.4
設定情報
GP Timer x Count (GPTMRxCNT)レジスタはタイマの現在値を含んでいます。これらのレジスタ
は対応するタイマが動作中か否かにかかわらず、
いつでも読み書きが可能です。タイマ・イベントが発
生する毎に対応するGP Timer x Count (GPTMRxCNT) の値をタイマがインクリメントします。
それぞれのタイマは、タイマの最大値を指定するG P T i m e r x M a x c o u n t C o m p a r e A
(GPTMRxMAXCMPA)レジスタを持っています。
■ タイマが最大値に達すると、同クロック・サイクル中にGP Timer x Count (GPTMRxCNT)レジ
スタの値を0にリセットします。
■ GP Timer x Count (GPTMRxCNT)レジスタの値はGP Timerx Maxcount Compare A
(GPTMRxMAXCMPA)の値と同じになることはありません。
加えて、GPタイマ0とGPタイマ1はGP Timer x Maxcount Compare B (GPTMRxMAXCMPB)レ
ジスタも持っています。
■ GP Timer x Maxcount Compare A (GPTMRxMAXCMPA)レジスタとGP Timer x Maxcount
Compare B (GPTMRxMAXCMPB)レジスタの両方を使用することでタイマに2つの最大値を
交互に持たすことができます。これは交互比較モードと呼ばれ GP Timer x Mode/Control
(GPTMRxCTL)レジスタの ALT_CMPビットによって制御されます。
– タイマが両方のGP Timer Maxcount Compareレジスタを使用し、GP Timer x Mode/Control (GPTMRxCTL)レジスタのALT_CMPビットとCONT_CMPビットがセットされているとき、
タイマの出力ピン(TMROUT0またはTMROUT1)は方形波(スクエア・ウェーブ)を発生します。
– 方形波のデューティーサイクルや周波数は交互に使用するGP Timer Maxcount Compare
レジスタの値に依存します。
■ タイマがGP Timerx Maxcount Compare A (GPTMRxMAXCMPA)レジスタのみを使用する
ために A L T _ C M P ビットがプログラムされていれば、タイマ出力ピン ( T M R O U T 0 または
TMROUT1)は最大値に達した後、Am5x86 CPUの1クロック・サイクルだけローになります。
17.5.5
クロックに関する考察
3つの汎用タイマのクロック・ソースは33MHzのシステム・クロックです。GPタイマ0とGPタイマ1に
関してはクロック・ソースとして外部ピンによるものとプリスケールされたクロックも利用できます。
この機能はGP Timer 0 Mode/Control (GPTMR0CTL)レジスタ(MMCRオフセットC72h) とGP
Timer 1 Mode/Control (GPTMR1CTL)レジスタ(MMCRオフセットC7Ah)によって設定されます。
17.5.5.1
内部クロック
内部クロックの精度はTalbe 17-3に示すように、
どのような33MHzの水晶発信子がシステムで使用
されているかに依存します。
Table 17-3
GPタイマの内部クロック・ソース
Internal Clock Source
Resolution Range
Duration
33.000 MHz
121.20 ns–7.94 ms
16-bit duration
33.000 MHz
121.20 ns–520.55 seconds 32-bit duration
33.333 MHz
120.00 ns–7.86 ms
33.333 MHz
120.00 ns–515.40 seconds 32-bit duration
16-bit duration
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
17-5
汎用タイマ
17.5.5.2
外部クロック
独立した外部クロック入力ピンTMRIN0とTMRIN1は、
それぞれGPタイマ0とGPタイマ1に供給されま
す。Table 17-4に汎用タイマのTMRIN0とTMRIN1入力に対する外部クロック・ソースの周波数レンジ
を示しています。外部クロックの最大周波数は使用されている水晶発信子の周波数の4分の1です。
Table 17-4
17.5.6
GPタイマの外部クロック・ソース( 33.333MHz水晶発信子使用)
External Clock Source
Frequency Range
TMRIN0
0–8.33325 MHz
TMRIN1
0–8.33325 MHz
割込み
それぞれのGPタイマはプログラマブル・インタラプト・コントローラ(PIC)にそれ自身の割込みを持っ
ています。割込みのステアリングに関する詳細は第15章「プログラマブル・インタラプト・コントロー
ラ」を参照ください。
汎用タイマのGP Timer x Mode/Control (GPTMRxCTL)レジスタによってタイマ割込み要求の発
生を有効にします。割込み要求はカウントが最大値に達したときに発生します。
Maximum Count Compare AレジスタとMaximum Count Compare Bレジスタの両方が使用さ
れる場合、GP Timer x Count (GPTMRxCNT)レジスタの値がGP Timer x Maxcount Compare A
(GPTMRxMAXCMPA)レジスタかGP Timer x Maxcount Compare B (GPTMRxMAXCMPB)レジ
スタのどちらかの値と一致した時に割込み要求が発生します。
GP Timers Status (GPTMRSTA)レジスタ(MMCRオフセットC70h)は3つの汎用タイマの割込みス
テータス情報を含んでいます。タイマ割込み要求信号がアサートされクリアされるまで、
対応する割
込みステータス・ビットがセットされます。
17.5.7
ソフトウェアに関する考察
17.5.7.1
GPタイマ・カウント・エレメントの結合
GPタイマ0とGPタイマ1が両方同時にGPタイマ2によってカウントされるように設定することができ
ます。この設定によって最大2つの32ビット・カウンタが構成できます。GPタイマ2は2つの32ビット・
カウンタの共通のエレメントとなります。タイマの可能な組み合わせは、
■ GPタイマ2、GPタイマ1、GPタイマ0をそれぞれ独立に16ビットカウンタとして使用
■ GPタイマ2とGPタイマ0で1つの32ビット・カウンタとGPタイマ1で独立な1つの16ビット・カウンタ
■ GPタイマ2とGPタイマ1で1つの32ビット・カウンタとGPタイマ0で独立な1つの16ビット・カウンタ
■ GPタイマ2を共通のタイム・ベースとして、GPタイマ2とGPタイマ0で1つの32ビット・カウンタと
GPタイマ2とGPタイマ1で別の32ビット・カウンタ
17.5.7.2
カスケードされた32ビット・タイマの読出し
GPタイマ0かGPタイマ1をGPタイマ2とカスケードすることで32ビット・タイマを構成する場合、ロー
ルオーバを正しく処理するために2つのカウンタ出力を読むときに注意が必要になります。これは原
理的に両方のカウンタの内容を同時に読む方法が無いため複雑です。目的は16ビットの下位タイマ
の値を読出すときにカスケードされた32ビットの値を返すアルゴリズムを開発することです。
ロールオーバをテストするため、
ソフトウェアは上位タイマ値につづいて下位タイマ値を読出しなが
ら両方のタイマを2度連続して読出す必要があります。非常に重要なことはソフトウェアはこれらの4
回の16ビットの読出しを上位タイマ値の1カウント以内に行う必要があります。ソフトウェアはこの条
17-6
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
汎用タイマ
件を満足するために割込みをディセーブルする必要があるかもしれません。
例えば、
最初の読出しで下位タイマ値をL1に読出し、
上位タイマ値をM1に読出します。次に、
L2とM2に
対応してそれぞれ下位タイマ値と上位タイマ値を読出します。すると3つの可能性があります。
17.5.7.2.1
可能性1
(M1 = M2 = 0) and (L1 > L2)
この状態はL1とM1の読出しの間に上位タイマにロールオーバが起きている場合です。この場合、上
位タイマ値から推測される正しい値は、
(ALT_CMPビットが0の場合)GPTimer x Maxcount Compare A (GPTMRxMAXCMPA)レジスタにプログラムされている値の1つ少ない値か(ALT_CMPビッ
トが1の場合)GP Timer x Maxcount Compare A (GPTMRxMAXCMPA)レジスタとGP Timer x
Maxcount Compare B (GPTMRxMAXCMPB)レジスタの最大値の1つ少ない値です。
17.5.7.2.2
可能性2
(M2 = M1 <> 0) and (L1 > L2)
この状態は(M1とL1の読出しの間に上位タイマではなく)下位タイマにロールオーバが起きている
場合です。上位タイマ値から推測される正しい値はL1が読出されたときの上位タイマ値であるM1-
1です。
17.5.7.2.3
可能性3
■ これ以外の事例については、
もしロールオーバが発生してそれがL1とM1の読出し後に起きても、
L1とM1は正しい値として使用することができます。
17.5.7.2.4
例1
例えば、G P タイマ 0 が継続モードで G P タイマ 2 によってカウントされるようにプログラムされ、
ALT_CMPが0にクリアされGP Timer 0 Maxcount Compare A (GPTMR0MAXCMPA)レジスタの
値が2000hにプログラムされているとします。
GPタイマ2は連続モードで内部33Mhzクロックによってカウントされるようにプログラムされ、GP
Timer 2 Maxcount Compare A (GPTMR2MAXCMPA)レジスタの値が8000hに設定されています。
GPタイマ2の周期は
8000h / 33 MHz * 4 = 4 ms
GPタイマ0のサイクル・タイムは
2000h * 4 ms = 32.77 s
例としてソフトウェアが次の様にタイマを読出したとします。
1.
GPタイマ2 = 7997h
2.
GPタイマ0 = 0h
3.
GPタイマ2 = 14h
4.
GPタイマ0 = 0h
この例では、GPタイマ2の2回目の読出し値(14h)が最初の値(7997h)よりも小さく、GPタイマ0の読
出し値は両方とも0です。したがってこれは可能性1にあたり、
正しいカスケードされたタイマの32ビッ
トの値は、
32764ms+(7997h * 121.2ns)=32767.8ms=32.7678sです。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
17-7
汎用タイマ
17.5.7.2.5
例2
GPタイマ0とGタイマ2は例1と同じ様に設定されていますが、
タイマから返された値は次のようになっ
たとします。
1.
GPタイマ2 = 7997h
2.
GPタイマ0 = 15h
3.
GPタイマ2 = 5h
4.
GPタイマ0 = 16h
この例では、GPタイマ2の2回目の読出し値(5h)が最初の値(7997h)より小さいですが、最初のGPタ
イマ0の読出し値(15h)が2回目の値(16h)より小さいので、可能性3があてはまりカスケードされたタ
イマの正しい32ビットの値は
15h * 4ms + 7997 * 121.2 ns = 72.772 ms
17.6
初期化
システム・リセットにより全ての汎用タイマ・レジスタはゼロにリセットされます。それぞれのタイマは
それが使用される前に正しい設定をプログラムされる必要があります。
1.
比較最大値をGP Timer x Maxcount Compare (GPTMR0MAXCMPx)レジスタに書込みま
す。
2.
GP Timer x Mode/Control (GPTMRxCTL)レジスタで望ましいオペレーションやモードの設
定を行い、
カウントを有効にします。
17-8
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
第18章
ソフトウェア・タイマ
18.1
概要
ソフトウェア・タイマはマイクロセコンドの分解能でミリセコンドのタイムベースのタイマに使用され
ます。この機能の対する理想的なアプリケーションはシステムに広いソフトウェアのタイムベースを
供給するものやコード・プロファイリングやイベント間の時間を正確に計測するものなどです。ソフト
ウェア・タイマの特徴は
■ 1つの1ミリセコンド毎にカウントする16ビット・ミリセコンド・カウンタ。これによって最大65.5秒
間のカウントが可能です。このタイマの精度はシステムで使用されている33MHzの水晶発信子
の精度に依存します。
■ マイクロセコンド・ラッチ・レジスタはミリセコンド・レジスタの値が最後に読まれたときからの時
間をマイクロセコンド値で提供します。
■ 16ビット・ミリセコンド・カウンタはそれが読込まれたときに0にリセットされます。
■ ソフトウェア・タイマはシステムで33.000MHzか33.333MHzのどちらの水晶発信子が使用され
ていても正確な時間を扱うことができるように設定できます。
18.2
ブロック図
Figure 18-1にソフトウェア・タイマのブロック図を示します。
Figure 18-1
ソフトウェア・タイマ ブロック図
Élan™SC520 Microcontroller
Software Timer
33 MHz
/33
UPCTR
1 MHz
Microsecond
Up Counter
Rollover
Signal
Millisecond
Counter
SWTMRMILLI
Latch
Enable
Microsecond
Latch
Register
SWTMRMICRO
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
18-1
ソフトウェア・タイマ
18.3
レジスタ
ソフトウェア・タイマはTable 18-1に示すレジスタを使用します。
Table 18-1
メモリ・マップされたソフトウェア・タイマ設定レジスタ
Register
Mnemonic
MMCR
Offset
Address
Software Timer Millisecond
Count
SWTMRMILLI
C60h
Current 10-bit count value (milliseconds)
Software Timer Microsecond
Count
SWTMRMICRO
C62h
Current latched 16-bit count value
(microseconds)
C64h
Crystal frequency (33.000 MHz or 33.333 MHz)
Software Timer Configuration SWTMRCFG
18.4
Function
オペレーション
ソフトウェア・タイマはソフトウェアでの利用に有効なハードウェア・タイムベースを提供します。それ
は従来のシステム.
タイムベース生成の方法を置き換えるためにデザインされました。
従来は、
システム・タイムベース生成はタイマに周期的な割込みを発生させるようにプログラムする
ことでなされました。この割込みの割込みサービス・ルーチンは割込みが発生する度にカウンタをイ
ンクリメントします。この値はしばしばグローバル変数に保持され、時間経過を追跡する必要のある
他のコードによりアクセスできるようになっています。ときには1つの手続きインターフェイス(機能)
がそのカウンタの値にアクセスするのに使われます。割込みサービス・ルーチンによって管理される
カウンタは通常システムの初期化時に0にセットされます。したがってそれはシステム・ブートからの
時間を表します。
この方法の問題点はハードウェア・タイマのリソースを消費することです。それはまたたびたび実行さ
れる割込みサービス・ルーチンをも要求します。しばしばより高い分解能の要求を成し遂げるのは、た
とえ小さな割込みサービス・ルーチンであっても1秒間に何度も実行することのオーバーヘッドがとて
も大きく困難になります。この方法で1msよりも高い分解能のタイムベースを提供するのは事実上と
ても難しいことです。また割込みを非常に多く使用しているシステムではタイマ割込みが時々ミスされ
ることがあり、それによって割込みカウンタは長期的にみるとそれほど正確ではなくなります。
ÉlanSC520 マイクロコントローラに内蔵されるソフトウェア・タイマはこれらの問題を解決できます。
ソフトウェア・タイマは16ビットのミリセコンド・カウンタ( Software Timer Millisecond Count
(SWTMRMILLI)レジスタ)、10ビットのマイクロセコンド・アップ・カウンタ(UPCTR)、UPCTR (Software Timer Microsecond Count (SWTMRMICRO)レジスタ) のためのラッチ・レジスタから構成
されています。カウンタは両方ともシステム・リセットでゼロにリセットされます。
マイクロセコンド・アップ・カウンタは1MHzでカウントし1000カウント毎(1ミリセコンド毎)にロール
オーバします。マイクロセコンド・アップ・カウンタがロールオーバすると、その信号がミリセコンド・カ
ウンタをカウントさせます。ミリセコンド・カウンタを読込みと3つの事が起ります。
1.
Software Timer Millisecond Count (SWTMRMILLI)レジスタ(MMCRオフセットC60h)の値
がソフトウェアに返されます。
2.
マイクロセコンド・アップ・カウンタの値が S o f t w a r e T i m e r M i c r o s e c o n d C o u n t
(SWTMRMICRO)レジスタ(MMCRオフセットC62h)にラッチされます。
3.
Software Timer Millisecond Count (SWTMRMILLI)レジスタ・カウンタはゼロにリセットされます。
この動作は割込みサービス・ルーチンなしでソフトウェアに時間経過を追跡することを可能にします。
18-2
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
ソフトウェア・タイマ
例えば、
ここにシステム・タイムベースを扱うために使用されるいくつかのサンプル・コードを示します。
typedef unsigned long int DWORD;
typedef unsigned short int WORD:
// an unsigned 32-bit value
// an unsigned 16-bit value
static volatile WORD* SWTMRMILLI = 0xA0000200;
static volatile WORD* SWTMRMICRO = 0xA0000202;
// volatile is essential
// volatile is essential
static DWORD ticks;
// the number of 1-ms ticks since system boot
// that have passed since system reset
static DWORD mics;
// A running microsecond value
DWORD sys_ticks()
{
ticks += *SWTMRMILLI;
mics = *SWTMRMICRO + (ticks * 1000);
return ticks;
}
DWORD sys_mics()
{
ticks += *SWTMRMILLI;
mics = *SWTMRMICRO + (ticks * 1000);
return mics;
}
これはオペレーティング・システムや他のタイミングに必要な32ビット・マイクロセコンドと32ビット・
ミリセコンド・タイムベースを扱うのに必要なコードの全てです。
18.4.1
設定情報
ソフトウェア・タイマ・カウンタ・エレメント(ミリセコンド・カウンタとマイクロセコンド・カウンタ)は読
み出し専用です。ソフトウェア・タイマは常に動作し、
どのような入力も外部ピンや割込みなどの出力
も持ちません。ソフトウェア・タイマは33.000MHzか33.333MHzの水晶発信子のどちらを使用する
かに応じて正確な時間を維持するためだけに設定されます。
18.5
初期化
システム・リセット時にソフトウェア・タイマはゼロからカウントし始めます。
ソフトウェア・タイマはシステムで使用される水晶発信子に依存する33.000MHzか33.333MHzのど
ちらで動作させるかを初期化する必要があります。これは Software Timer Configuration
(SWTMRCFG)レジスタ(MMCRオフセットC64h)のXTAL_FREQビットで設定されます。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
18-3
ソフトウェア・タイマ
18-4
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
第19章
ウォッチドッグ・タイマ
19.1
概要
ÉlanSC520 マイクロコントローラはウォッチドッグ・タイマ(WDT)を内蔵しています。
ウォッチドッグ・タイマの特徴は
■ 再設定やカウンタのリセットを行うためのWatchdog Timer Control (WDTMRCTL)レジスタに
アクセスするには特別な鍵となる書込みシーケンスが必要になります。
■ 33MHzCPUクロックによって最大30秒までのタイムアウト時間をサポートします。
■ 最初のタイムアウトでシステム・リセットを行うか、
(マスク可能でもマスク不可でも)割込み要求
を発生するかプログラムすることができます。2度目のタイムアウトまでにソフトウェアがインジ
ケータ・ビットをクリアしなければ、
ウォッチドッグ・タイマはシステム・リセットを発生させます。
■ ウォッチドッグ・タイマの割込み要求はマスク可能にもマスク不可にもプログラムできます。
■ ソフトウェアがウォッチドッグ・タイマの割込み要求を検出するためのステータス・フラグが用意さ
れています。
■ 通常パワーオン・リセット時にサンプリングされるÉlanSC520 マイクロコントローラの入力ピン
(PWRGOOD入力など)はウォッチドッグ・タイマのタイムアウトによるシステム・リセット時にはサ
ンプリングされません。
■ ウォッチドッグ・タイマのカウンタはAMDebug・テクノロジ・モードでは自動的に停止します。
19.2
ブロック図
Figure 19-1にウォッチドッグ・タイマのブロック図を示します。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
19-1
ウォッチドッグ・タイマ
Figure 19-1
ウォッチドッグ・タイマ ブロック図
Élan™SC520 Microcontroller
Watchdog Timer
Internal GP bus
ice_mode
System
Configuration
Configuration
Registers
Registers
Key
Detection
Logic
wdt_rst
cnt_reset
Clock
Reset
Time-Out
33-MHz Clock
Counter
wdt_irq
PIC
19.3
レジスタ
ウォッチドッグ・タイマはTable 19-1に示すメモリ・マップド・レジスタによって制御されます。
Table 19-1
メモリ・マップされたウォッチドッグ・タイマ・レジスタ
Register
Mnemonic
MMCR
Offset
Address
Watchdog Timer Control
WDTMRCTL
CB0h
Watchdog timer enable, WDT reset enable,
interrupt flag, duration of the WDT time-out
interval
Watchdog Timer Count Low
WDTMRCNTL
CB2h
Bits 15–0 of the WDT current count
19-2
Function
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
ウォッチドッグ・タイマ
Table 19-1
メモリ・マップされたウォッチドッグ・タイマ・レジスタ(続き)
Register
Mnemonic
MMCR
Offset
Address
Watchdog Timer Count High
WDTMRCNTH
CB4h
Bits 30–16 of the WDT current count
Watchdog Timer Interrupt
Mapping
WDTMAP
D42h
WDT interrupt mapping
Reset Status
RESSTA
D74h
Reset source status: watchdog timer time-out
19.4
Function
オペレーション
ウォッチドッグ・タイマ(WDT)は、
ソフトウェアが期待通りの反応をしなくなったときにシステムのコン
トロールを取り戻すために使用されます。ソフトウェアのエラーからの復旧時間が保証される必要が
あるようなシステムではウォッチドッグ・タイマが使用されるべきです。
ウォッチドッグ・タイマが有効になると、
カウンタは自動的にゼロにリセットされ、
カウントを開始します。
33MHzのクロック・サイクル毎に1ずつカウントされます。ウォッチドッグ・タイマが有効になっている
間は、
いつでもソフトウェアは「 19.4.1.1 キー・シーケンス」に従ってクリア・キー・シーケンスを書込
むことでカウンタをゼロにリセットできます。タイムアウト・カウントに達する前にソフトウェアがカウ
ントをリセットできないとウォッチドッグ・タイマは割込みかまたはシステム・リセットを発生します。
■ ウォッチドッグ・タイマはタイムアウト時に割込み(マスク可能またはマスク不可)か、
システム・リ
セットのどちらかを発生するように設定することができます。
■ またウォッチドッグ・タイマは割込みとシステム・リセットの両方を発生するようにも設定できます。
このモードでは、
ウォッチドッグ・タイマは割込みを発生させ、再び動作開始します。もしタイムア
ウトが2度目ならばシステム・リセットを発生します。
書込みの前にWatchdog Timer Control (WDTMRCTL)レジスタ(MMCRオフセットCB0h)をオープ
ンために特別なキー・シーケンスが必要になります。これによって間違ったコードがウォッチドッグ・タ
イマの動作をディセーブルしてしまったり変更してしまう事を防ぎます。同じキー・シーケンスが常に
ウォッチドッグ・タイマのコントロール・レジスタをアンロックするのに使用されます。
19.4.1
設定情報
19.4.1.1
キー・シーケンス
Watchdog Timer Control (WDTMRCTL)レジスタへの全ての書込みはそれに先立って特別なキー・
シーケンスを必要とします。
■ Watchdog Timer Control (WDTMRCTL)レジスタを開いて単一の書込みを行うにはCCCCh
の書込みに続いて3333hのデータ・パターンの書込みが必要です。
キーとして書込まれる値はレジスタに書込まれるのではなく内部ロジックにレジスタへの書込みを
オープンにするために使用されます。一度Watchdog Timer Control (WDTMRCTL)レジスタのENB
ビットがセットされるとこのレジスタに対してのその後の書込みに関しても後続のキー・シーケンスが
必要になります。
ウォッチドッグ・タイマがイネーブルの間、
ソフトウェアはいつでもカウンタをクリアするためのキー・
シーケンスを書込むことでカウンタをゼロにリセットできます。
■ カウンタをリセットするにはWatchdog Timer Control (WDTMRCTL)へ5555hに続いてAAAAh
のデータ・パターンを書込む必要があります。
キーの書込みによってカウンタはリセットされ、それ以上の書込みは必要ありません。注意する点は、
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
19-3
ウォッチドッグ・タイマ
このカウントクリア・キーはライト・キーが有効のときには実行されません。それはレジスタにAAAAh
の値を書込むことになるからです。
それぞれのキー・シーケンスの書込みは一度に引き続き行われる必要はありません。キーやデータの
書込みの間に、
いくつかのプロセッサ・サイクルがあっても、
メモリやI/Oへの読み書きが行われても、
Watchdog Timer Control (WDTMRCTL)レジスタへのアクセスを伴わない限りは問題ありません。
19.4.1.2
割込み要求の発生
ウォッチドッグ・タイマに割込み要求を発生させるように設定するには、
ソフトウェアはレジスタへのア
クセスを行うためにWatchdog Timer Control (WDTMRCTL)のENBビットをセットする必要があり
ます。このレジスタのWRST_ENBビットはクリアします。ウォッチドッグ・タイマが一度タイムアウトに
なると割込み要求が発生します。
ウォッチドッグ・タイマの割込み要求はマスク可能にもマスク不可にもプログラムできます。ウォッチ
ドッグ・タイマの割込み要求のマスク可能またはマスク不可の選択に関する詳細は第15章「プログラ
マブル・インタラプト・コントローラ」を参照ください。
2 度目のタイムアウト・イベントが起き、
ソフトウェアが最初のタイムアウトによってアサートされた
IRQ_FLGビットをクリアできなかった場合、
ウォッチドッグ・タイマはWRST_ENBビットがセットされて
いるかどうかに関わらず、割込み要求の代わりにシステム・リセットを発生します。
19.4.1.3
システム・リセットの発生
ウォッチドッグ・タイマにシステム・リセットを発生するように設定するためには、
ソフトウェアはレジス
タをアクセス可能にするためにENBビットをセットする必要があります。WRST_ENBビットもセットさ
れている必要があります。ウォッチドッグ・タイマは一度目のタイムアウトで、
システム・リセットを発生
します。
19.4.1.4
タイムアウト時間
Watchdog Timer Control (WDTMRCTL)レジスタのExponent Select (EXP_SEL)ビット・フィール
ドが次の数式によって計算されるタイムアウト時間のExponentを表します。
タイムアウト時間 = 2Exponent / (33 MHz水晶発信周波数)
上記の式では、Talbe19-2に示されるように周波数は33MHzクロックを基準にしています。
Table 19-2
ウォッチドッグ・タイマのタイムアウト時間
EXP_SEL Field
Exponent
33.000 MHz
33.333 MHz
00h
invalid value
infinity
infinity
01h
14
496 µs
492 µs
02h
24
508 ms
503 ms
04h
25
1.02 s
1.01 s
08h
26
2.03 s
2.01 s
10h
27
4.07 s
4.03 s
20h
28
8.13 s
8.05 s
40h
29
16.27 s
16.11 s
80h
30
32.54 s
32.21 s
Notes:
Only the least significant bit set in the EXP_SEL field determines the time-out duration. For example,
setting the field to F0h results in an exponent of 27.
19-4
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
ウォッチドッグ・タイマ
19.4.2
割込み
ウォッチドッグ・タイマの割込み条件がWatchdog Timer Control (WDTMRCTL)レジスタによって設
定されていれば、
タイムアウト時に割込みがアサートされます。
■ ウォッチドッグ・タイマが割込みを発生する様に設定されていれば、割込みが発生するとWatchdog Timer Control (WDTMRCTL)レジスタのIRQ_FLGビットがセットされます。
■ 割込みサービス・ルーチンは割込みがウォッチドッグ・タイマが発生したものかどうかを検証する
ためにこのフラグを確認しなければなりません。
■ IRQ_FLG がセットされていれば、割込みサービス・ルーチンは Watchdog Timer Control
(WDTMRCTL)に正しいキー・シーケンスを書込み、続いてこのビットに1を書込むことで、
フラグ
をクリアしなければなりません。
■ 2度目のウォッチドッグ・タイマのタイムアウトが発生したときにIRQ_FLGがクリアされていなけ
れば、2度目の割込みイベントではなくWDTシステム・リセットが発生します。
注意:IRQ_FLGビットは読み出しではクリアされません。このビットをクリアするには正しいキー・シーケンスをウォッチ
ドッグ・タイマに書込み、
その後、対応するビット・ポジションに1を書込む必要があります。
19.4.3
AMDebug™ テクノロジ・インターフェイス
AMDebug・テクノロジ・インターフェイスは可能なウォッチドッグ・タイマのタイムアウトに関係なく、
エミュレータ・コードを走らせることができます。これはまた、
ウォッチドッグ・タイマを有効にするアプ
リケーションとより効果的にエミュレータを使用する事を可能にします。AMDebug・テクノロジ・モー
ドはウォッチドッグ・タイマのカウントを停止させます。
19.4.4
ソフトウェアに関する考察
タイマが、
WRST_ENBビットがクリアされた状態にプログラムされているときにウォッチドッグ・タイマ
にタイムアウトが起ると、割込みが発生し、
タイムアウト・カウンタはリセットされ、Watchdog Timer
Control (WDTMRCTL)レジスタのIRQ_FLGビットがセットされます。もし2度目のウォッチドッグ・タ
イマのタイムアウト以前にソフトウェアによってIRQ_FLGビットがクリアされなければ、WRST_ENB
ビットの状態に関わらずシステム・リセットが発生します。IRQ_FLGビットはソフトウェアによってクリ
アできますが、セットすることはできません。
最初のウォッチドッグ・タイマ・タイムアウトによる割込み要求信号の発生は、
疑似パルスや不良データや
正しく無いコードからの復旧が可能かもしれないシステムに関して非常に便利です。この場合、
潜在的
なデータの復旧が重要となります。このようなシステムでは、
割込みハンドラ・ルーチンが誤ったコード
によって破壊されてはいないことが保証される必要があります。ウォッチドッグ・タイマはソフトウェアが
適切に反応しなくなったような全てのケースで機能します。ÉlanSC520 マイクロコントローラのウォッ
チドッグ・タイマはこのようなケースでも保証できるようにいくつもの特徴を合わせ持っています。
■ 一度ソフトウェアがウォッチドッグ・タイマを有効にすると、ENBビットとIRQ_FLGビットを除く全
てが読み出し専用になります。これによってブート・コードやモニタ・プログラムはシステムが設定
されるまではウォッチドッグ・タイマをディセーブルにできます。
■ ウォッチドッグ・タイマへの全ての書込みはキー・シーケンスの書込みを先立って行う必要があり
ます。キー・シーケンスの検証はWatchdog Timer Control (WDTMRCTL)レジスタへの単一の
書込みを可能にします。
■ ウォッチドッグ・タイマのタイムアウト・カウンタは、
ENBビットをセットするか、
特別なクリア・キー・シー
ケンスをWatchdog Timer Control (WDTMRCTL)レジスタに書込むことでリセットされます。
これらの特徴によってウォッチドッグ・タイマが過ったコードの影響を受けないように保証することが
できます。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
19-5
ウォッチドッグ・タイマ
Watchdog Timer Count HighとLowの両レジスタは単一の32ビットCPU命令によって読み出しが
できますが、32ビット・アクセスは2 つの 16ビット・アクセスに分割されます。Watchdog Timer
Counterから正確な32ビットの値を読み出す必要があれば、第17章の「汎用タイマ」のこの問題に関
する提案を参照ください。
19.5
初期化
パワーオン・リセット時、
ウォッチドッグ・タイマはディセーブルされています。ソフトウェアはWatchdog
Timer Control (WDTMRCTL)レジスタのENBビットをセットすることでウォッチドッグ・タイマを有効
にしなければなりません。ウォッチドッグ・タイマのタイムアウト・カウントのデフォルト値は許される最
大値となっています。タイムアウト時のシステム・リセットの発生にはWRST_ENBビットをセットしま
す。
「19.4.1 設定情報」を参照してください。それ以外の全ての動作は通常のシステム・リセットと同
じです。
プロセッサはウォッチドッグ・タイマによるシステム・リセットの場合には外部ピンのサンプリングをし
ません。これはウォッチドッグ・タイマのシステム・リセットによっては、System Board Information
(SYSINFO)レジスタ(MMCRオフセットD70h)、BOOTCSデータ・バス幅、BOOTCSデータ・バス・セレ
クト・パラメータは変化しないことを意味します。それ以外の全ての動作は通常のシステム・リセット
と同じです。
19-6
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
第20章
リアル・タイム・クロック
20.1
概要
ÉlanSC520マイクロコントローラに内蔵のリアル・タイム・クロック(RTC)は、PC/ATシステムに使わ
れているMC146818Aデバイスと互換性があります。RTCはアラーム付きの時刻クロックと100年の
カレンダーで構成されます。この時計/カレンダーはプログラマブルな周期的な割込みと114バイトの
用のスタティックなユーザRAMを持っています。時計/カレンダーはバイナリまたはバイナリ・コーデッ
ド・デシマル (BCD)で表わされます。
RTCの機能を以下に示します。
■ PC/AT互換
■ 秒、分、時をカウント
■ 曜日、
日、月、年をカウント
■ バイナリまたはBCDで表わされる時間、
カレンダー、
アラーム
■ 12時間用または24時間用クロック、12時間モードではAMまたはPMの表示付き
■ 夏時間(Daylight saving time) のオプション
■ 月末の自動認識
■ 自動閏年補正
■ 14 バイトのクロックとコントロール・レジスタ
■ 114バイトの汎用RAM
■ 個別にマスク可能な3つの割込みソースと、それに対応するステータス・ビット
■ 時刻アラームは1秒1回から1日1回まで周期をプログラム可能
■ 周期的な割込みは122μsから500msの周期で発生するようプログラム可能
■ 更新終了割込みはサイクルごとのステータスを提供
■ 内蔵の RTCリセット信号は電源投入時にリセットを実行
RTCは、
コアの電源から独立した独自のパワー・ピンとリセットを持っています。チップの電源がオフ
であっても、RTCは電源を維持し、完全に機能するモードで時間、カレンダー、そしてユーザRAMの
データを維持します。
RTCは、時間、カレンダー、アラーム・データ、
と4つのコントロール/ステータス・レジスタを持ってい
ます。RTC Status D (RTCSTAD) レジスタ (RTC index 0Dh)は、RAMの内容、時刻レジスタ、そし
てカレンダーの有効性を示すステータス・ビット(RTC_VRT)を持っています。RTC_VRTビットは、内
蔵のRTCリセットがアサートされることによってセットされます。
RTCの割込み要求はプログラマブル割込みコントローラ・ブロックに内部で接続されています。
20.2
ブロック図
Figure 20-1にリアル・タイム・クロックのブロック図を示します。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
20-1
リアル・タイム・クロック
Figure 20-2にRTC電圧モニタのブロック図を示します。バックアップ・バッテリが取り付けられてい
ないか、
電圧が低い場合、ÉlanSC520マイクロコントローラのRTC電圧モニタはRTCコアに信号を出
すように設計されています。さらに、
システムの電源が落とされるときも、
電圧モニタ回路はRTCコア
に信号を送ります。
Figure 20-2で示されるように、電圧モニタは、正確なレファレンス電圧を得るためのバンドギャップ電
圧発生器と、
バンドギャップ電圧を「低バッテリ」
トリップ電圧に調整するためのハイゲイン・アンプを持っ
ています。バックアップ・バッテリのモニタ機能のほかに、
電圧モニタはRTCにパワー・ダウン信号も提
供します。この信号は、
他の内蔵ペリフェラルからRTCを隔離するために使われます。このシーケンス
注文番号 #22003、
に掲載されています。
のタイミング図はÉlanSC520 Microcontroller Data Sheet、
Figure 20-1 リアル・タイム・クロック ブロック図
Élan™SC520 Microcontroller
Real-Time Clock
Time Base (32.768 kHz)
/4
/32
RATE_SEL[3–0]
OSC_CTL[2–0]
1-Hz Clock
/2
Clock/
Calendar
Update
Control and Status
Registers A,B,C,D
(4 Bytes)
Clock, Alarm
Calendar RAM
(10 Bytes)
BCD/
Binary
Increment
Configuration RAM
(114 bytes)
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
rtc_irq
PIC
VMRTCMonitor
RTC Voltage
/32
rst_rtc
Internal GP bus
interface
20-2
/32
Periodic Interrupt Selection
(1-of-15 Selection)
Divider
Control
pwrdn
/32
リアル ・タイム ・クロック
Figure 20-2
RTC電圧モニタ ブロック図
Bandgap
VBG
Voltage
Generator
2.0 V
Amplifier
+
One
Shot
RTC Reset
–
BBATSEN
PWRGOOD
D
Q
Internal RTC Power-Down
FlipFlop
32 kHz
CK
20.3
システム設計
20.3.1
バックアップ・バッテリに関する考慮
主電源が止められているときのRTCの動作は、外部のバックアップ・バッテリがシステム設計に含まれ
ているかどうかによって異なります。バックアップ・バッテリがシステムで不要な場合は、RTCは主電
源プレーンに接続できます。
20.3.1.1
外部のバックアップ・バッテリを持っているシステム
外部RTCバックアップ・バッテリがÉlanSC520マイクロコントローラのVCC_RTCピンに接続されて
いる場合は、たとえ他のすべての電源が止められていても、
リアル・タイム・クロック(RTC )は動作可
能です。
バックアップ・バッテリを使った場合の構成をFigure 20-3に示します。VCC_RTCの一次電源は主電
源プレーン (Vcc)です。順電圧降下が小さくなる( 0.25V未満)ようにD1を選択します。D1は、主電
源が止まっているとき、バックアップ・バッテリからVcc電源プレーンに電源が供給されるのも防ぎま
す。
バックアップ・バッテリの電圧は3.3Vを超えないようにします(BBATSENとVCC_RTCピンに影響を
与えます)。高い電圧はÉlanSC520マイクロコントローラに損傷を与える可能性があります。
R1とC2で構成されているRC回路は、内部回路の電源投入シーケンスの遅延時間を設定します。C1
は高周波をフィルタします。
詳細の部品仕様についてはÉlanSC520 Microcontroller Data Sheet、注文番号 #22003、を参照
して下さい。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
20-3
リアル・タイム・クロック
Figure 20-3
バックアップ・バッテリを使用した回路
D2
D1
C1
BATT
(3.3 V max)
VCC_RTC
10 Ω
R1
VCC_RTC
BBATSEN
C2
É an™SC520 Microcontroller
RTCの時刻、日付、そしてユーザRAMが最後のブート時からまだ有効であるか確認するために、
ソフ
トウェアはシステム・ブート時にRTC Status D (RTCSTAD) レジスタ (RTC index 0Dh)のRTC_VRT
ビットを読みます。このステータス・ビットは、内部のRTCだけをリセットする信号がアサートされると、
セットされます。外部バックアップ・バッテリを持つ(Figure 20-3で示すような)システムでは、主電源
がオフになり、そしてバックアップ・バッテリの電圧が低くなるか、取り付けられていないときに、RTC
がリセットされます。
このようなシステムでは、VCC_RTCピンは32.768 kHzオシレータとRTCのための専用電源供給ピ
ンです。
■ 主システム電源がオンになると、主電源プレーン(Vcc)が外部のダイオードを通してVCC_RTC
ピンをドライブします。
■ 主システム電源がオフになるか、機能しなくなったとき、VCC_RTCは第2の外部ダイオードを通
してバックアップ・バッテリによってドライブされます。
■ PWRGOOD信号がアサートされるたびに、
オンチップ電圧モニタ回路はBBATSENピンを通して
バックアップ・バッテリの電圧レベルをモニタします。
■ バックアップ・バッテリが 2.0V 未満になると、RTC ロジックはリセットされます。読出し専用の
RTC_VRTビットはクリアされて、
このビットが読出されるまではこの状態でラッチされます。最初
にこのビットが読まれた後は、
RTCがリセットされるまでその後の読出しはすべて1の値が返され
ます。
■ 主システム電源がオフで、バックアップ・バッテリが当初から取り付けられている場合は、R1とC2
によって構成されている外部RC回路は、BBATSEN入力に遅い立ち上がりエッジを生成し、そし
てRTCはリセットされます。
20.3.1.2
外部バックアップ・バッテリがないシステム
外部のRTCバックアップ・バッテリを使っていないシステムのための回路の設計方法を、Figure 204 に示します。これはバッテル・システムが必要とするR C と同じものを使いますが、この場合は
VCC_RTCに接続されます。
VCC_RTCのための電源プレーンにはVCC_ANLGが選択されます。この理由は、
これはVCC_RTC
の最大値である3.3Vより十分に低い、大変よくフィルタされた電源プレーンであるからです。
20-4
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
リアル ・タイム ・クロック
この構成では、RTCは電源投入後にリセットされますが、その後にPWRGOODがアサートされてもリ
セットされません。
内容は無効になります。こ
■ RTCを電源投入後にリセットされる−−電源がRTCから外されたとき、
の場合RTCはリセットされます。
■ RTCがリセットされない−−PWRGOODに接続されたスイッチが押されて(Vccはハイに保持さ
れ続ける)、BBATSENがハイでPWRGOODが再度アサートされると、RTCはリセットされませ
ん。この場合、電力の供給はなくならなかったので、RTCの内容はまだ有効で、RTCのリセットは
起こりません。
Figure 20-4に示す抵抗とキャパシターの詳細な部品仕様はÉlanSC520 Microcontroller Data
Sheet、注文番号 #22003に掲載してあります。
Figure 20-4
バックアップ・バッテリを使用しない回路
VCC_ANLG
C1
R1
VCC_RTC
BBATSEN
C2
20.3.2
Élan™SC520 Microcontroller
32.768 kHz水晶発信子の選択とそのインタフェース
32.768 kHzの水晶発信子の選択についての情報と詳細な仕様は、ÉlanSC520 Microcontroller Data
Sheet、注文番号#22003、を参照して下さい。
20.3.3
外付けRTCを使う
ÉlanSC520マイクロコントローラがリセット状態をぬけると、内部のRTCはイネーブルされています。
システム・アプリケーションが外付けのRTCを使用することが必要な場合、
競合が起こることを妨ぐた
めに、
ブート・プロセスと初期化のときに内部のRTCをディセーブルしなくてはなりません。
Address Decode Control (ADDDECCTL) レジスタ (MMCR offset 80h)には、内蔵RTCと外付け
RTCとを選択するコントロール・ビットが含まれています。RTC_DISビットを1にセットすると、0070h
と0071h のアドレスの内部 I/O デコードをディセーブルして、内部の RTC をディセーブルします。
RTC_DISビットがセットされると、
これらのアドレスへのアクセスは外部バス・サイクルを発生し、
外部
のRTCモデュールが使えるようになります。
内蔵RTCをディセーブルにしても、
プログラマブル割込みコントローラ(PIC)への割込みの接続は自
動的にディセーブルされません。PC/AT互換が必要な場合、設計者は、外付けRTCの割込み要求を
ÉlanSC520マイクロコントローラのプログラマブル割込み入力に接続し、割込みステアリング・ロジッ
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
20-5
リアル・タイム・クロック
クをプログラムして、その要求を割込みプライオリティP8にまわすようにします。
内蔵RTCをディセーブルしても、
これはいかなるようにもコアをディセーブルしたり、
リセットしたりす
ることはありません。
詳細は第3章の「内蔵ペリフェラルのディセーブル」を参照して下さい。
20.4
レジスタ
RTCはTable 20-1、Table 20-2とTable 20-3に掲載されているコンフィギュレーション・レジスタに
よってコントロールされます。
Table 20-1
メモリ・マップされたリアル・タイム・クロック・レジスタ
Register
Mnemonic
MMCR
Offset
Address
Function
Address Decode Control
ADDDECCTL
80h
RTC disable
RTC Interrupt Mapping
RTCMAP
D43h
RTC interrupt mapping
Table 20-2
ダイレクト・マップされたリアル・タイム・クロック・レジスタ
Register
Mnemonic
I/O Address Function
RTC/CMOS RAM Index
RTCIDX
0070h
RTC index to read or write
RTC/CMOS RAM Data Port
RTCDATA
0071h
Data to be read or written
Table 20-3
RTCインデックスされたリアル・タイム・クロック・レジスタ
Register
Mnemonic
I/O Address Function
RTC Current Second
RTCCURSEC
70h/71h
Index 00h
Seconds
RTC Alarm Second
RTCALMSEC
70h/71h
Index 01h
Seconds alarm
RTC Current Minute
RTCCURMIN
70h/71h
Index 02h
Minutes
RTC Alarm Minute
RTCALMMIN
70h/71h
Index 03h
Minutes alarm
RTC Current Hour
RTCCURHR
70h/71h
Index 04h
Hours, 12- and 24-hour mode
RTC Alarm Hour
RTCALMHR
70h/71h
Index 05h
Hours alarm, 12- and 24-hour mode
RTC Current Day of the Week RTCCURDOW
70h/71h
Index 06h
Day of the week
RTC Current Day of the
Month
RTCCURDOM
70h/71h
Index 07h
Day of the month
RTC Current Month
RTCCURMON
70h/71h
Index 08h
Month
RTC Current Year
RTCCURYR
70h/71h
Index 09h
Year
20-6
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
リアル ・タイム ・クロック
Table 20-3
RTCインデックスされたリアル・タイム・クロック・レジスタ(続き)
Register
Mnemonic
I/O Address Function
RTC Control A
RTCCTLA
70h/71h
Index 0Ah
Update status, divider chain control, and
periodic interrupt rate selection
RTC Control B
RTCCTLB
70h/71h
Index 0Bh
Update override (SET); periodic interrupt, alarm
interrupt, and update-ended interrupt enables;
date mode, 24/12 hour control, and daylight
saving enable
RTC Status C
RTCSTAC
70h/71h
Index 0Ch
Interrupt request, periodic interrupt, alarm
interrupt, and update-ended interrupt flags
RTC Status D
RTCSTAD
70h/71h
Index 0Dh
RTC power status (BBATSEN)
General-Purpose CMOS
RAM (114 bytes)
RTCCMOS
70h/71h
Index 0E–
7Fh
General-purpose CMOS RAM bytes
20.5
オペレーション
適切なRTCインデックス・レジスタを読むことによって、
プログラムはRTCから時間とカレンダーの情
報を引き出すことができます。これらのレジスタに書込むことによって、
プログラムは時刻、カレン
ダー、そしてアラームの情報を変えることもできます。
RTC Control A (RTCCTLA) レジスタ (RTC index 0Ah) のOSC_CTLビット・フィールドが010bに
セットされ、RTC Control B (RTCCTLB) レジスタの SETビットがクリアされていると、RTCはアップ
デート・サイクルを1秒に1回実行します。SETビットが1の場合、すべてのアップデートはディセーブル
され、そしてプログラムは時刻とカレンダーのレジスタを初期化することができます。
32.768 kHzを時間のベースとすると、アップデート・サイクルは1984μsかかります。アップデートが
完了する前にこれらのRAM位置をプログラムが読むと、出力は不定になります。このときには、RTC
Control A (RTCCTLA) レジスタのUpdate-In-Progress (UIP) statusビットがセットされます。
RTCアップデートの最中に利用できない状態の対応方法が3つあります。
■ Update-ended割込みを使う−−イネーブルされていると、
この割込みは毎アップデート・サイク
ルの後に起こります。これは、時刻と日付のレジスタを読むために998ms以上の時間があること
になります。
■ RTC Control A (RTCCTLA) レジスタの Update-in-Progress (UIP)ビットを使う−−この UIP
ビットは1秒に1度変わります。UIPビットがハイになってから244μs後に、
アップデート・サイクル
が始まります。これは、UIPビットを読んで0であれば、時刻やカレンダーのデータが変わるまで最
低244μsあることになります。UIPビットを読んで1の場合は、時刻やカレンダーのデータは有効
でないかもしれません。時刻やカレンダーのデータを読むための時間は244μsを超えてはいけ
ないことに注意して下さい。
■ 周期的な割込みを使って、
アップデート・サイクルが行われているか確認する
正しいデータを保証するためには、
月の最後の日の、
日が変わる2秒以内に時刻をセットしないように
注意して下さい。
20.5.1
コンフィギュレーション情報
20.5.1.1
時間フォーマットを設定する
RTC Control B (RTCCTLB) レジスタ (RTC index 0Bh) の 12/24 Hour Mode Select
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
20-7
リアル・タイム・クロック
(HOUR_MODE_SEL)ビットは、時間の位置が1から12を示すか、0から23を示すかを決定します。
HOUR_MODE_SELビットは、RTC Current Hour (RTCCURHR) レジスタ (RTC index 04h) と
RTC Alarm Hour (RTCALMHR) レジスタ (RTC index 05h)を再初期化しないと変えることはでき
ません。12時間フォーマットが選択された場合は、
これら2つのそれぞれのレジスタのAM_PMビット
とALM_AM_PMビットは1のときにPMを表わします。
20.5.1.2
日付と時間のプログラミング
プログラムは、それぞれ対応しているRAMの位置に書込むことによって、時刻、
カレンダー、そしてア
ラームを初期化できます。
■ 内部のレジスタを初期化する前に、時刻とカレンダーのアップデートが起こるのを防ぐために、
RTC Control B(RTCCTLB) レジスタ (RTC index 0Bh)のSETビットをセットします。
■ 選んだフォーマット(バイナリかBCD)の10ヶ所を初期化します。
■ RTC Control B (RTCCTLB)レジスタのdata mode (DATE_MODE)ビットを使って、
フォーマッ
トを指定します。すべての時刻、
カレンダー、そしてアラーム・レジスタは、バイナリかBCDの同じ
データ・モードを使わなくてはなりません。
■ アップデートができるようにSETビットをクリアします。
20.5.1.3
周期的な割込みの発生
Table 20-4に示すように、RTC Control A (RTCCTLA)レジスタのRATE_SELビットをプログラムす
ることによって、異なる周期的な割込みレートを指定できます。
周期的な割込みは、RTC Control B (RTCCTLB)レジスタのPER_INT_ENBビット・フィールドによっ
てイネーブルされます。RTC Status C (RTCSTAC)レジスタ(RTC index 0Ch)の PER_INT_FLG
ビットは、RTCの周期的な割込みイベントのためのラッチされたステータスを提供します。
注意:同期をとるため、最初の割込みはプログラムしたレートで発生しないかもしれません。
Table 20-4
RATE_SELを使った周期的な割込みレースの指定
Periodic Interrupt Interval
None
20-8
Frequency
RATE_SEL3–0
None
0
0
0
0
3.90625 ms
256 Hz
0
0
0
1
7.8125 ms
128 Hz
0
0
1
0
122.070 µs
8 kHz
0
0
1
1
244.14 µs
4 kHz
0
1
0
0
488.28 µs
2 kHz
0
1
0
1
976.562 µs
1 kHz
0
1
1
0
1.953125 ms
512 Hz
0
1
1
1
3.90625 ms
256 Hz
1
0
0
0
7.8125 ms
128 Hz
1
0
0
1
15.625 ms
64 Hz
1
0
1
0
31.25 ms
32 Hz
1
0
1
1
62.5 ms
16 Hz
1
1
0
0
125 ms
8 Hz
1
1
0
1
250 ms
4 Hz
1
1
1
0
500 ms
2 Hz
1
1
1
1
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
リアル ・タイム ・クロック
20.5.1.4
アラーム機能を使う
3つのアラーム・バイトは2つの異なる方法で使えます。
■ RTC Control B (RTCCTLB)レジスタの Alarm Interrupt Enable (ALM_INT_ENB)ビットがセッ
トされていると、アラーム・レジスタで指定された時刻にアラーム割込みが起こります。
■ "Don't care"状態(C0-FFhの16進バイト)が3個のアラーム・レジスタの1つ以上に書かかれた場
合は、アラーム割込みは1秒に1回から1時間に1回起こります。
– C0-FFhの値を使って、時、分、秒のアラーム・レジスタをセットすると、1秒に1回RTCアラーム・
イベントが発生します。
– C0-FFhの値を使って、時、分のアラーム・レジスタをセットすると、1分に1回RTCアラーム・イ
ベントが発生します。
– C0-FFhの値を使って、時のアラーム・レジスタをセットすると、1時間に1回RTCアラーム・イベ
ントが発生します。
20.5.1.5
西暦2000年問題の取り扱い
適切なソフトウェアサポートを行うことによって、ÉlanSC520マイクロコントローラはY2Kに対応して
います。年の世紀の部分をCMOSメモリの32hのバイトにストアすることによってY2K問題を処理し
ます。RTC Current Year (RTCCURYR) レジスタ (RTC index 09h)の繰り上げは、
オペレーティン
グ・システム・ソフトウェアが処理する必要があります。
Y2K対応になるためには、年をセットするソフトウェアは、4桁の年が取り扱えなければなりません。
RTCをセットするルーチンは、年の下半分をRTC Current Year (RTCCURYR)レジスタに書込み、
年の上半分を世紀CMOSメモリの位置に書込みます。
この作業は、ÉlanSC520マイクロコントローラをサポートするパソコン・スタイルのBIOSソフトウェ
AMDのWebサイ
アによって適切に処理されます。サポートされているBIOS製品についての情報は、
トを参照して下さい。
組込みシステムでは、RTC用の簡単なソフトウェア関数のセットが4桁の年をサポートします。
20.5.2
クロックに関する考慮
32KXTAL2と32KXTAL1ピンは、外部の32.768 kHz水晶、または発振器をÉlanSC520マイクロコン
トローラに接続するために使われます。このクロック・ソースは内部のRTCのクロックに使われます。
詳細は第5章「クロックの生成とコントロール」を参照して下さい。
20.5.3
割込み
RTCは3つの異なった割込みソースを提供します。3つの割込みはすべて内部のプログラマブル割込
みコントローラに接続されていて、そしてどの割込みチャネルにもマップすることができます。
3つの
割込みのソースは以下の通りです。
■ 周期的割込み−−122μsから500msのレートがセットできます。
■ アラーム割込み−−1秒1回から1日1回までのレートがセットできます。
■ Update-Ended割込み−−アップデート・サイクルのステータスを提供します。
これらの3つの割込みは、RTC Control B (RTCCTLB)レジスタでイネーブルされます。RTC割込み
要求は、ローからハイに変化したときのみアクティブになります。
これらの割込みが使える前に、
これらはプログラマブル割込みコントローラにマップされなければな
りません。詳細情報はTable 15-4を参照して下さい。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
20-9
リアル・タイム・クロック
20.5.4
ソフトウェアに関しての考慮
20.5.4.1
RTC分周器チェーンを初期化する
RTCのリセット・イベントは、分周期チェーンや RTC Control A (RTCCTLA) レジスタ (RTC index
0Ah)のInternal Oscillator Control (OSC_CTL)ビット・フィールドを初期化しません。内部のRTC分
周期チェーンは、
110bまたは111bの値をOSC_CTLフィールドに書くことによってリセットされます。
このいずれかの値を書込むことによって、すべての分周期チェーンをリセットし、
タイム・ベースのアッ
プデートをディセーブルします。分周期チェーンをリセットすることはRTCの初期化の一部として必要
ではありませんが、
これを使ってタイム・ベースを初期化した後に正確な開始時間を設定できます。
分周期をイネーブルして、適切な分周期をセットするには、OSC_CTLフィールドに010bの値を書込
みます。
20.5.4.2
CMOSメモリにアクセスする
CMOS RAMへのアクセスはRTCの動作には全く関係なく行われます。しかし、RTCがディセーブル
されていると、CMOS RAMは利用できませんが、主電源とバックアップ電源がRTCコアから外され
ない限り、内容は失われません。RTCを再度イネーブルすると、CMOS RAMに内容は保持した状態
でアクセスできるようになります。
CMOSメモリにアクセスするためには、最初にRTC/CMOS RAM Index (RTCIDX) レジスタ (Port
0070h) にほしいバイトの位置を書き、そしてその位置の内容を RTC/CMOS RAM Data Port
(RTCDATA) レジスタ (Port 0071h)から読出すか、またはこのデータ・ポートに書込みます。
20.5.4.3
レガシーNMIイネーブル・ビットの移動
PC/AT互換のシステムでは、書込みだけが許されているRTC/CMOS RAM Index (RTCIDX)レジス
タ (Port 0070h)のビット7によって、マスク不可割込み(NMI)をイネーブルします。ÉlanSC520マイ
クロコントローラでは、
このNMI_ENBビットはInterrupt Control (PICICR) レジスタ (MMCR offset
D00h)のビット6に移動されています。明示的に割込みをイネーブルしたり、ディセーブルしたりする
レガシー・ソフトウェアは、
これに対応するように変更する必要があります。しかしながら、
レガシー・シ
ステム(メモリ・パリティ・エラーとチャネル・チェック)とÉlanSC520マイクロコントローラ(どんな割
込みソースへもマップ可能)でのNMIの使われ方の違いの性質から、
互換性に関しての問題は最小限
におさえられます。ÉlanSC520マイクロコントローラのRTC/CMOS RAM Index (RTCIDX) レジ
スタ (Port 0070h) のビット7への書込みは、RTC/CMOS RAM Data Port (RTCDATA) レジスタ
(Port 0071h)でアクセスされたデータのインデックスに何の影響も与えません。
例えば
-mov-al, 85h
-out-70h, al
そして
-mov-al, 05h
-out-70h, al
両方のシーケンスは、RTC Alarm Hour (RTCALMHR) レジスタ (RTC index 05h)の内容がRTC/
CMOS RAM Data Port (RTCDATA)レジスタにアクセスされる結果になります。
20.6
初期化
リアル・タイム・クロックはシステム・リセットでイネーブルされます。
1.
内部レジスタを初期化する前に、RTC Control B (RTCCTLB) レジスタ (RTC index 0Bh)の
SETビットによって、時刻とカレンダーのアップデートをディセーブルします。
20-10
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
リアル ・タイム ・クロック
2.
RTC Control A (RTCCTLA) レジスタ (RTC index 0Ah)のOSC_CTLフィールドに11xbの値
を書込んで、RTC分周期チェーンをリセットします。
3.
10個の時刻、カレンダー、そしてアラーム・レジスタをバイナリかBCDデータ・フォーマットで初
期化します。
4.
RTC Control B (RTCCTLB)レジスタの DATE_MODEビットでデータ・モードのフォーマットを
指定します。10個全ての時刻、
カレンダー、そしてアラーム・レジスタは、バイナリかBCDの、
同じ
データ・モードを使わなくてはなりません。
5.
RTC Control B (RTCCTLB)レジスタの SETビットでアップデートをイネーブルします。
6.
OSC_CTLフィールドに010bをプログラムして分周期チェーンをイネーブルします。時刻とアッ
プデート・サイクルはこの書込みの 500ms後に始まります。
ステップ2と6 は正確な設定が必要な場合に必要です。それ以外のときは、ステップ2 でOSC_CTL
フィールドに010bを書込んで、
ステップ6はスキップできます。しかしながら、最初のアップデート・サ
イクルが行われるのはアップデートがイネーブルされてからある時間が経ってからです。
初期化されると、RTCはプログラムされたデータ・モードですべてのアップデートをします。データ・
モードを変更するには、10個のデータ・バイトを再初期化する必要があります。
20.6.1
RTCのリセット
RTCはシステム・リセットによって自動的にリセットされません。RTCリセットを引き起こす3つの条件
があります。
■ BBATSENが2.0Vより低くなる(PWRGOODがアサートされたときにサンプルされる) −−主電
源での動作中に、バックアップ・バッテリ電圧がトリップ電圧(2.0V)より低くなるかもしれません。
PWRGOODのアサートが起こるまで、RTCはリセットされません。
■ VCC_TRCに電力が与えられる(バックアップ・バッテリの取り付け時)−−バックアップ・バッテリを
つなげた時には、RTCは直ちにリセットされます。
■ 電源投入時にバッテリがない(PWRGOODがアサートされたときにサンプルされる) −−システ
ムにバックアップ・バッテリがなく、そしてBBATSEN線が2.0Vより低くなると、PWRGOODがア
サートされる時にRTCはリセットされます。 BBATSENの状態によっては、主電源のリセット時にRTCリセットが起こる場合と、起こらない場合が
あることに注意して下さい。
BBATSEN信号が2.0Vレファレンスより低くなり、PWRGOODがローの場合、RTCの内容がすでに有
効でないことをRTC_VRTビット(RTC index 0Dh)経由でユーザに知らせるために、内部RTCリセッ
ト信号が発生します。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
20-11
リアル・タイム・クロック
20-12
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
第21章
UARTシリアル・ポート
21.1
概要
ÉlanSC520 マイクロコントローラは業界標準の16550コンパチUARTを2つ持っており、両方とも現
行の16450と16550のソフトウェアをすべて動作させることができます。
UARTは16450コンパチのUARTモードで立ち上がります(キャクタ・モードあるいはnon-FIFOモード
とも呼ばれています)。各UARTは16550コンパチ・モード(FIFOモードとも呼ばれています)と16450
コンパチ・モードをソフトウェアで切り替えることができます。16550コンパチ・モードでは、繰り返し
行われるサービス・ルーチンからCPUを開放するために、
レシーバとトランスミッタはそれぞれ16バ
イトのFIFOでバッファされています。
機能:
■ 完全なUARTピン・アウト:各UARTにSOUT, SIN, CTS,RTS, DSR, DTR, RIN, DCD
■ 16550コンパチ・モードでは、
トランスミッタとレシーバはそれぞれ16バイトのFIFOでバッファさ
れています。
■ 全二重(データが同時に双方向に送ることができる)
■ DMAオペレーション
■ 18.432 MHzまたは1.8432 MHzの内部ボーレート・クロック
■ DCから1.152 Mbaudのボーレート
– ボーレート・ジェネレータが1から(216-1)までの入力クロック除数値を提供し、16x クロックを
作ります。
■ プログラマブルなシリアル・インタフェース
–
–
–
–
–
5, 6, 7, と 8ビットのキャラクタ・サイズ
偶数、奇数、
またはパリティ無しのビット生成と検出
1, 1.5, または2ストップ・ビット
ブレークの生成と検出
各UART のアドレス・デコードは独立にディセーブルできるため、代わりに外部デバイスを使
うことができます
■ 内部の診断:
–
–
–
–
21.2
誤ったスタート・ビットの検出
完全なステータス報告機能
ブレーク、パリティ・エラー、オーバーラン・エラー、そしてフレーミング・エラーの検出
通信リンクの故障を分離するためのループバック・コントロール
ブロック図
Figure 21-1に1つの UART のブロック図を示します。ÉlanSC520 マイクロコントローラはお互い
に同じ機能をする2つの UART を持っています。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
21-1
UART シリアル・ポート
Figure 21-1
UARTブロック図
Élan™SC520 Microcontroller
UART
Transmitter
SOUTx
TX shift register
TX Hold Register
TX FIFO
Prescaler
18.432 MHz
1.8432 MHz
Baud
Generator
clk_uart
(18.432 MHz)
Configuration
Registers
Receiver
GP Bus
RX FIFO
RX Buffer Register
SINx
RX shift register
To/from DMA
tx_dack
rx_dack
tx_dma_req
DMA Control
rx_dma_req
gptc
Interrupt
out2
uart_irq
Modem
Control
21.3
From
clocks
To PIC
RTSx
CTSx
DTRx
DSRx
DCDx
RINx
システム設計
Table 21-1に示すように、UART 2の信号はPIO31-PIO28信号と共用されています。イネーブルさ
れた場合、Table 21-1に示すマルチプレクスされた信号は、同じピンを使う他の機能をディセーブル
するか、変更します。
Table 21-1
多重化されたUART信号
PIO
(Default)
Function
Interface
Function
Control Bit
Register
PIO31
RIN2
PIO31_FNC
PIO30
DCD2
PIO30_FNC
PIO31–PIO16 Pin Function Select
(PIOPFS31_16) register (MMCR offset C22h)
PIO29
DSR2
PIO29_FNC
PIO28
CTS2
PIO28_FNC
両方のUARTは全モデム・コントロール信号(SOUTx, SINx, CTSx , RTSx, DSRx, DTRx , RINx ,
DCDx) を使用しても、2本の信号だけ(SOUTx と SINx)を使用しても動作します。2本の信号しか使
わない場合は、
使われていない入力ポードのピンは接続されないままにしておきます。(これらの信号
には内部にプルアップ抵抗が付いています。)
21-2
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
UART シリアル・ポート
各UARTはループバック・モードをサポートします。このモードでは、UARTのトランスミッタ出力はレ
シーバ入力に内部で接続されています。これは、UART出力ピンの状態に影響を与えないで、そして
UART入力ピンの状態に関係なく、ローカルの UARTチャネルの動作をテストするのに便利です。
ループバック・モードでは、RTSとDTRはそれぞれCTSとDSRに内部で接続されています。さらに、
DTRとRTS信号は強制的にインアクティブになります。したがって、ハードウェア・フロー・コントロー
ルは動作しません。
ループバック・モードに入っている間、UARTの割込み要求はディセーブルされています。
Table 21-2にDTE から DTEへの接続を掲載します。
Table 21-2
DTEからDTEへの接続
DTE
21.4
DTE
SOUT
SIN
SIN
SOUT
CTS
RTS
RTS
CTS
DSR
DTR
DTR
DSR
RIN
RIN
DCD
DCD
レジスタ
UARTはTable 21-3のメモリ・マップされたレジスタとTable 21-4のダイレクト・マップされたレジス
タによってコントロールされています。
Table 21-3
メモリ・マップされたUARTレジスタ
Register
Mnemonic
MMCR
Offset
Address
Address Decode Control
ADDDECCTL
80h
UART 1 and UART 2 disables
PIO31–PIO16 Pin Function
Select
PIOPFS31_16
C22h
PIO or interface function select: RIN2, DCD2,
DSR2, CTS2
Clock Select
CLKSEL
C26h
CLKTIMER[CLKTEST] pin enable, CLKTEST
output select options (18.432 MHz or 1.8432
MHz UART), CLKTIMER or CLKTEST select
UART 1 General Control
UART 2 General Control
UART1CTL
UART2CTL
CC0h
CC4h
Clock source; receive TC interrupt and transmit
TC interrupt enables
UART 1 General Status
UART 2 General Status
UART1STA
UART2STA
CC1h
CC5h
Receive TC and transmit TC interrupts status
UART 1 FIFO Control
Shadow
UART 2 FIFO Control
Shadow
UART1FCRSHAD
UART2FCRSHAD
CC2h
CC6h
Information written to the direct-mapped UART
x FIFO Control (UARTxFCR) register
UART 1 Interrupt Mapping
UART1MAP
D28h
UART 1 interrupt mapping
Function
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
21-3
UART シリアル・ポート
Table 21-3
メモリ・マップされたUARTレジスタ(続き)
Register
Mnemonic
MMCR
Offset
Address
UART 2 Interrupt Mapping
UART2MAP
D29h
Table 21-4
Function
UART 2 interrupt mapping
ダイレクト・マップされたUARTレジスタ
Register
Mnemonic
I/O Address Function
UART 1 Transmit Holding
UART 2 Transmit Holding
UART1THR
UART2THR
02F8h
03F8h
Byte to be transmitted
UART 1 Receive Buffer
UART 2 Receive Buffer
UART1RBR
UART2RBR
02F8h
03F8h
Received byte
UART 1 Baud Clock Divisor
Latch LSB
UART 2 Baud Clock Divisor
Latch LSB
UART1BCDL
UART2BCDL
02F8h
03F8h
Least significant byte of a 16-bit baud-rate clock
divisor used to generate the 16x baud clock
UART 1 Baud Clock Divisor
Latch MSB
UART 2 Baud Clock Divisor
Latch MSB
UART1BCDH
UART2BCDH
02F9h
03F9h
Most significant byte of a 16-bit baud-rate clock
divisor used to generate the 16x baud clock
UART 1 Interrupt Enable
UART 2 Interrupt Enable
UART1INTENB
UART2INTENB
02F9h
03F9h
Interrupt enables: modem status, receiver line
status, transmit holding empty, received data
available, and time-out
UART 1 Interrupt ID
UART 2 Interrupt ID
UART1INTID
UART2INTID
02FAh
03FAh
FIFO mode indication, interrupt identification,
interrupt pending status
UART 1 FIFO Control
UART 2 FIFO Control
UART1FCR
UART2FCR
02FAh
03FAh
Trigger level for received data available
interrupt, DMA mode, transmitter FIFO and
receiver FIFO clear, FIFO enable for 16550compatible mode
UART 1 Line Control
UART 2 Line Control
UART1LCR
UART2LCR
02FBh
03FBh
Divisor latch access (DLAB), break, stick parity,
parity, asynchronous data parity, stop, transmit/
receive word length
UART 1 Modem Control
UART 2 Modem Control
UART1MCR
UART2MCR
02FCh
03FCh
Loopback diagnostic mode, UARTx interrupt
enable, RTSx and DTRx control
UART 1 Line Status
UART 2 Line Status
UART1LSR
UART2LSR
02FDh
03FDh
FIFO error, transmitter empty indicator,
Transmitter Holding register or transmit FIFO
empty, break indicator, framing error, parity
error, overrun error, data ready
UART 1 Modem Status
UART 2 Modem Status
UART1MSR
UART2MSR
02FEh
033FEh
Real-time and latched status bits for DCDx,
RINx, DSRx and CTSx
UART 1 Scratch Pad
UART 2 Scratch Pad
UART1SCRATCH
UART2SCRATCH
02FFh
03FFh
Temporary data storage
21-4
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
UART シリアル・ポート
21.5
オペレーション
各UARTは次のことを行います。
■ モデムかペリフェラル・デバイスから受信したデータ・キャラクタのシリアル・パラレル変換
■ CPUかDMAコントローラによって書込まれたデータ・キャラクタの パラレル・シリアル変換
通信中、
データはフレーム単位で送受信されます。フレーム・フォーマットおよびボーレートは、
トラン
スミッタとレシーバで同じでなければなりません。フレーム・フォーマットはUART x Line Control
(UARTxLCR) レジスタの設定により決定されます。各フレームはスタート・ビット(ロー)から始まり、
1、1.5、または2つのストップ・ビット(ハイ)で終わります。スタート・ビットが送信/受信された後、5、6、
7、または8ビットの長さにプログラムできるデータ・ビットは、最下位のビットからシリアルに送信/受信
されます。最後のデータ・ビットの後に、UART x Line Control (UARTxLCR) レジスタの PENBビッ
トによってイネーブルされるパリティ・ビットをオプションとして付けることができます。フレームとフ
レームの合間(アイドル状態)は、信号は常にハイになっています。
■ UART x Transmit Holding (UARTxTHR) レジスタにバイトが書かれると、
フレームの送信が開
始されます。
■ スタート・ビットが受信されると、
フレームの受信が開始されます(SIN入力は1ボーレート周期の
間ローにドライブされます)。
ÉlanSC520 マイクロコントローラのUARTでサポートされているフレームの構成とビット・ストリー
ム・シーケンスを、
Figure 21-2に示します。Figure 21-3に、偶数パリティ、1つのストップ・ビット、8デー
タ・ビット設定の場合のUARTフレームの送信を示します。
Figure 21-2
UARTフレーム構成
Start
Bit
Figure 21-3
5 Data Bits
Optional
6th
Data Bit
Optional
7th
Data Bit
Optional
8th
Data Bit
Optional
Parity Bit
Stop
Bit
Optional
0.5 or 2nd
Stop Bit
UARTフレーム転送
Baud Clock
TxD or RxD
idle
start
0
1
0
1
1
1
0
0
parity
stop idle
Serial data
Asynchronous serial frame
Asynchronous transmission of 03Ah as 8 bits of data, even parity, one stop bit
各UARTは、1から(216-1)の除数でタイミング・レファレンス・クロックを割れるプログラマブルなボー
レート・ジェネレータを持っていて、16xのクロックを内部の発信/受信ロジックに供給できます。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
21-5
UART シリアル・ポート
各UARTには6つのハンドシェーク信号があります。
■ DTRx (Data Terminal Ready) 出力−−この信号がローの場合は、UARTが通信のリンクを確
立する準備ができていることをモデムに知らせます。DTRx出力信号はUART x Modem Control (UARTxMCR) レジスタによってアサートしたりデアサートすることができます。ループバッ
ク・モード動作時にはDTRxはインアクティブ状態になります。
■ DSRx (Data Set Ready) 入力−−この信号がローの場合は、モデムがUARTとの通信リンクを
確立する準備ができていることを示しています。DSRxピンの状態のテストはUART x Modem
Status (UARTxMSR) レジスタで行えます。UART x Modem Status (UARTxMSR) レジスタ
のDDSR statusビットは、そのレジスタを最後に読んだときからDSRx信号が変化したかどうか
を示します。DSRxの変化によって割込みを発生することもできます。
■ RTSx (Request-to-Send)出力−−この信号がローの場合は、UARTがデータを交換する準備が
できていることをモデムに知らせます。RTSx出力信号はUART x Modem Control (UARTxMCR)
レジスタによってアサートしたりデアサートすることができます。ループバック・モード動作時に
はRTSxはインアクティブ状態になります。
モデムがデータの交換をする準備が
■ CTSx (Clear-to-Send) 入力−−この信号がローの場合は、
できていることを示します。CTSxピンの状態のテストはUART x Modem Status (UARTxMSR)
レジスタで行えます。UART x Modem Status (UARTxMSR) レジスタの DCTS statusビット
は、そのレジスタを最後に読んだときからCTSx信号が変化したかどうかを示します。CTSxの変
化によって割込みを発生することもできます。
■ DCDx (Data Carrier Detect) 入力−−この信号がローの場合は、モデムがデータ・キャリヤを
検出し、
こちらのモデムと相手のモデムとの接続が確立したことを示します。DCDxピンの状態の
テストはUART x Modem Status (UARTxMSR) レジスタで行えます。UART x Modem Status
(UARTxMSR) レジスタのDDCD statusビットは、そのレジスタを最後に読んだときからDCDx
信号が変化したかどうかを示します。DCDxの変化によって割込みを発生することもできます。
■ RINx (Ring Indicator)入力−−この信号がローの場合は、モデムが電話の呼び出し信号を受信
したことを示します。RINxピンの状態のテストはUART x Modem Status (UARTxMSR) レジ
スタで行えます。UART x Modem Status (UARTxMSR) レジスタのTERI statusビットは、その
レジスタを最後に読んだときからRINx信号がアサートからデアサートに変化したかどうかを示し
ます。RINxの変化によって割込みを発生することもできます。
21.5.1
データ伝送
21.5.1.1
16450コンパチブルのUARTモード
16450コンパチブル(non-FIFOまたはcharacter)モードでは
1.
UART x Transmit Holding (UARTxTHR) レジスタに書かれたデータは、送信シフト・レジスタ
が空になると内部の送信シフト・レジスタに順次ラッチされていきます。
2.
いったん内部の送信シフト・レジスタにデータがラッチされると、 UART x Line Status
(UARTxLSR) レジスタのTransmit Holding Register Empty (THRE) ビットが1になります(オ
プションでUART割込みを発生)。
3.
アプリケーションがUART x Transmit Holding (UARTxTHR) レジスタに再びデータを書込め
るようになります。
このモードでTHREビットがセットされていない時に UART x Transmit Holding (UARTxTHR)レジ
スタに書込むと、誤ったデータが送信されてしまうことが起こることに注意をして下さい。
21-6
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
UART シリアル・ポート
このモードで、UART x Transmit Holding (UARTxTHR)レジスタと内部の送信シフト・レジスタが
両方とも空の場合、UART x Line Status (UARTxLSR) レジスタのTransmitter Empty (TEMT)ビッ
トがセットされます。アプリケーションは、TEMTがセットされている場合は、THREをチェックしないで
UART x Transmit Holding (UARTxTHR) レジスタに連続して2 バイト書込むことができます。
21.5.1.2
16550コンパチブルの UARTモード
16550コンパチブル (FIFO)モードでは
1.
UART x Transmit Holding (UARTxTHR) レジスタに書かれたデータは、次に空いているFIFO
の位置にラッチされます。
2.
送信するデータは、有効なデータとして最初のFIFO のエントリから直接シフトして出力されま
す。FIFOは合計16バイトです。したがって、TEMTビットがセットされている限り、
ソフトウェアは
送信するために16バイト連続してUART x Transmit Holding (UARTxTHR)レジスタに安全に
書込むことができます。
THRE(オプションで割込み発生可能)ビットとTEMTビットは、FIFOから最後のキャラクタがシフトされ
てFIFOが空になると必ずセットされます。FIFOに入っているキャラクタ数がわからない場合は、
ソフト
ウェアは追加データを書込む前にTHREビットかTEMTビットがセットされるのを待つようにします。
21.5.2
データ受信
21.5.2.1
16450コンパチブルの UARTモード
16450コンパチブル・モードでは
1.
受信したデータはSINピンから内部の受信シフト・レジスタにシフトされます。
2.
いったん全UARTフレームが受信されると、そのキャラクタは内部の受信シフト・レジスタから
3.
UART x Line Status (UARTxLSR) レジスタのData Ready (DR) ビットは1にセットされます(
オプションで割込みの発生が可能)。
UART x Receive Buffer (UARTxRBR) レジスタに転送されます。
UART x Receive Buffer (UARTxRBR) レジスタを読むことによってDRビットはクリアされること
に注意をして下さい。ソフトウェアが最初のキャラクタを読む前に(DRビットがまだセットされている
)、
2つ目のキャラクタが UART x Receive Buffer (UARTxRBR)レジスタに転送されてきた場合は、
UART x Line Status (UARTxLSR)レジスタのOverrun Error (OE) ビットが1にセットされ、そして
最初のキャラクタは破壊されてしまいます。その後に受信されるバイトは、
ソフトウェアがUART x
Receive Buffer (UARTxRBR)レジスタを読むまでは、UART x Receive Buffer (UARTxRBR)レジ
スタをオーバー・ライトし続けます。
21.5.2.2
16550コンパチブルの UARTモード
16550コンパチブル・モードでは
1.
受信されたデータは内部の受信シフト・レジスタにシフトされます。
2.
いったん全UARTフレームが受信されると、そのキャラクタは内部の受信シフト・レジスタから
FIFOに転送されます。
– FIFOが空の場合は、UART x Line Status (UARTxLSR) レジスタのDRビットがセットされ、
ソフトウェアによってFIFOが完全に空になるまでセットの状態が続きます。
– 受信したキャラクタが UART x FIFO Control (UARTxFCR)レジスタのRFRTフィールドで
指定された限界を超えてFIFOに入り、
かつreceived data available割込みがイネーブルさ
れていると、割込みが発生します。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
21-7
UART シリアル・ポート
– データがFIFOに有り、そして4キャラクタ期間たってもソフトウェアによる読出しによって受信
FIFOからデータを取り出していない場合も、receive data available割込みが発生します。
16550コンパチブル・モードでは、FIFOがすでに100%満杯になっている時に、新しいキャラクタが完
全に受信されると、Overrun Error (OE)ビットがセットされます。このオーバーランによってFIFOの
データは上書きされません。しかし、
シフト・レジスタ内のデータは失われます。
21.5.3
エラー操作
オーバーラン・エラーに加えて、受信されるデータには3タイプの異常な状態があります。
■ パリティ・エラー
■ フレーミング・エラー
■ ブレーク表示
21.5.3.1
パリティ・エラー
パリティ・エラーは、
エラーを起したキャラクタのパリティ・ビットが、
UART x Line Control (UARTxLCR)
レジスタの Even Parity Select (EPS) ビット、Stick Parity Enable (SP) ビット、Asynchronous Data
Parity Enable (PENB) ビットにより示されたパリティと一致しなかったことを示します。
21.5.3.2
フレーミング・エラー
フレーミング・エラーは、パリティ・ビットに続くビット(パリティがイネーブルされている場合)、
または最
後のデータ・ビットに続くビット(パリティがイネーブルされていない場合)がロジックの0として検出さ
れたことを示します。このタイプのエラーの後に再度シンクロナイズするために、UARTはフレーミン
グ・エラーの原因は次のスタート・ビットが早く来すぎてしまったためと想定します。2つ目のビットを求
めるためにデータをサンプルする前に、
スタート・ビットを2回(1回は最初のキャラクタのエラーを起し
たストップ・ビットとして、
そしてもう1回は2つ目のキャラクタのスタート・ビットとして)サンプルします。
21.5.3.3
ブレーク表示
ブレーク表示は、受信された入力データが完全なUARTフレーム(スタート・ビット、
データ・ビット、パ
リティ、そしてストップ・ビットを含む)より長い時間、
0であったことを示します。ブレーク表示が起きた
時にロードされるデータは常に0で、そして続くキャラクタは、
いったん受信入力がアイドル状態(ハイ
の状態)に戻ると通常通りロードされます。
21.5.3.4
21.5.3.4.1
21.5.3.4.2
エラー報告
16450コンパチブルのUARTモード
16450コンバチブル・モードでは、UART x Line Status (UARTxLSR) レジスタのエラー・ビット (OE,
PE, FE, and BI) は、UART x Receive Buffer (UARTxRBR) レジスタ内に現在あるバイトの受信時
に、エラーが検出されたことを示します。Receiver line status割込みがイネーブルされている場合
は、
どの OE、PE、FE、
またはBI の条件でも割込みを発生します。
16550コンパチブルのUARTモード
16550コンパチブル・モードでは、FIFOのトップにあるキャラクタにエラー条件が検出された場合の
みにエラー・ビット (PE、FE、そしてBI) がセットされます。UART x Receive Buffer (UARTxRBR) レ
ジスタを読むことによってFIFOを次に受信したキャラクタに進めるので、FIFOからデータを読む前
にエラー・ビットをUART x Line Status (UARTxLSR) レジスタから読まなければなりません。UART
x Line Status (UARTxLSR) レジスタのERR_IN_FIFOビットによってFIFO内にあるデータ(FIFOの
トップだけでない)にエラーが伴っているか検出することができます。
UART x Line Status (UARTxLSR) レジスタを読むと、ERR_IN_FIFOビットを除き、全エラー・ビッ
トがクリアされます。UART x Line Status (UARTxLSR) レジスタを読み、FIFO内にある全てのデー
21-8
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
UART シリアル・ポート
タにエラーが無いか空の場合に、ERR_IN_FIFOビットはクリアされます。Receiver line status割込
みがイネーブルされている場合は、OE、
PE、FE、またはBIのいずれかの条件で割込みが発生します。
ERR_IN_FIFOは直接割込みを発生するがないことに注意して下さい。
21.5.4
21.5.4.1
コンフィギュレーション情報
ボーレート
転送のボーレートを生成するために、UARTクロックはプログラマによって選択された除数によって
2つのUART x Baud Clock Divisor Latch MSB and
分周されます。UART のボーレート発生器は、
LSBレジスタにプログラムされた除数から自動的にボーレートを計算します。転送のためにボーレー
トを設定するために、
これらのレジスタは初期化した時に読まれます。ボーレートは次の式に従って計
算されます。
ボーレート=クロック周波数 / 16 * BAUDDIV
ここでは、
クロック周波数とは主レファレンス・クロックの周波数、1.8432 MHzまたは18.432 MHzの
ことです。この周波数はUART x General Control (UARTxCTL)レジスタの CLKSRCビットによっ
て決定されます。BAUDDIVはUART x Baud Clock Divisor Latch MSB and LSBレジスタによっ
て定義されます。各クロック周波数から通常のボーレートを得るために使う除数の値(10進と16進)を
Table 21-5に示します。
Table 21-5
ボーレート、ディバイザ、クロック・ソース
DIV[15–0] (Decimal)
Baud Rate
DIV[15–0] (Hexadecimal)
1.8432 MHz
18.432 MHz
1.8432 MHz
18.432 MHz
300 baud
384d
3840d
0180h
0F00h
600 baud
192d
1920d
00C0h
0780h
2400 baud
48d
480d
0030h
01E0h
4800 baud
24d
240d
0018h
00F0h
7200 baud
16d
160d
000Fh
00A0h
9600 baud
12d
120d
000Ch
0078h
14.4 kbaud
8d
80d
0008h
0050h
19.2 kbaud
6d
60d
0006h
003Ch
57.6 kbaud
2d
20d
0002h
0014h
115.2 kbaud
1d
10d
0001h
000Ah
144 kbaud
8d
0008h
192 kbaud
6d
0006h
288 kbaud
4d
0004h
576 kbaud
2d
0002h
1.152 Mbaud
1d
0001h
21.5.4.2
ハードウェア・フロー・コントロール
UART x Interrupt Enable (UARTxINTENB) レジスタのEMSIビットがセットされると、ハードウェア・フ
ロー・コントロールを容易にするためにmodem status割込みがイネーブルされます。割込みは、
CTSx、
DTRx、RINx、そしてDCDxという3つのコントロール信号の変化によってトリガーされます。
21.5.4.3
動作モード
UART x FIFO Control (UARTxFCR) レジスタの FIFO_ENBビットをセットしたりクリアしたりする
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
21-9
UART シリアル・ポート
ことにより、16450コンパチブル UARTモードまたは16550コンパチブル UARTモードを設定できま
す。ÉlanSC520マイクロコントローラのUARTは、
ソフトウェアの制御下で16450コンパチブル・モー
ドと16550コンパチブル・モードの切り替えが行えます。
16550コンパチブル・モードでは、UART x FIFO Control (UARTxFCR) レジスタのRF_CLRビット
とTF_CLRビットによって、受信と送信の FIFO バッファをそれぞれクリアできます。UART x FIFO
Control (UARTxFCR) レジスタのRFRTフィールドによって受信FIFOのトリガー・レベルをプログラ
ムすることができます。
21.5.5
DMAインタフェース
より高いシリアル・データ転送レートをサポートするために、
両UARTともDMAをサポートしています。
GP-DMAコントローラの動作についての詳細情報は第14章の「 GP バスDMAコントローラ」を参照
して下さい。
ÉlanSC520マイクロコントローラの DMA インタフェースは、2つの内蔵UARTをサポートするため
受信用1つ、
送信用1つの最大2つの
に、
最高4つの8ビットのDMAチャネルを提供します。各UARTは、
DMAチャネルを使うことができます。DMA転送は16450と16550の両コンパチブル・モードでサポー
トしています。
DMAコントローラはリードとライトの動作をシングル・サイクル・モード、
デマンド・モード、
またはブロッ
ク転送モードで行うことができます。ただし、
UART転送にはブロック転送モードはサポートされてい
ません。
21.5.5.1
送信DMA
UARTにもう1つ送信キャラクタを入れる余裕がある場合には、UARTから内部のtx_dma_req信号が
アサートされます。
■ 16450コンパチブル・モードでは、
これは内部の送信シフト・レジスタまたはUART x Transmit
Holding (UARTxTHR) レジスタがキャラクタを受け付けることができることを示します。
■ 16550コンパチブル・モードでは、
これはtransmit FIFOが満杯でないことを示します。
21.5.5.2
受信DMA
UARTからの内部のrx_dma_req信号がアサートされるのは、次の場合です。
■ 16550コンパチブル・モードでは、受信トリガー・レベルになるか、
またはタイム・アウトが起きた
時。Receive FIFOが完全に空になるとrx_dma_req信号はインアクティブになります。
■ 16450コンパチブル・モードでは、UART x Receive Buffer (UARTxRBR) レジスタに有効なキャ
ラクタが入っている時。
どちらのモードでも、エラー条件とともにキャラクタを受信したときには内部のrx_dma_req信号は
ソフトウェアによってエ
デアサートされます。これにより、次のDMA転送によってクリアされる前に、
ラー条件を検査することができます。ソフトウェアがUART x Line Status (UARTxLSR)レジスタを
読んで、エラー・ステータスをいったんクリアすると、UARTにまたキャラクタが入るとrx_dma_reqが
アサートされます。
21.5.6
クロックの考慮
スタンダードなPC/AT のボーレートをサポートするUART へのクロック入力は 1.8432MHz です。
18.432 MHz のクロックは、UART の高速シリアル通信にも提供されます。この周波数はUART x
General Control (UARTxCTL)レジスタの CLK_SRCビットによって決定されます。
21.5.7
21-10
割込み
ÉlanSC520マイクロコントローラ内の2つのUARTは、それぞれがプログラマブル・インタラプト・コ
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
UART シリアル・ポート
ントローラに割込みを供給します。É l a n S C 5 2 0 マイクロコントローラの各シリアル・ポートは、
uart1_irqまたはuart2_irqにマップできる内部割込み信号を持っています。より詳細な情報は第15章
「プログラマブル・インタラプト・コントローラ」を参照して下さい。
Table 21-6にUARTのDMAおよびシリアル・ポートへの割込みのソースをまとめます。
UARTによって発生した割込みは、
ソースのイベントによって様々な方法でクリアされます。特定のイ
ベントをクリアする詳細については、ÉlanSC520 Microcontroller Register Set Manual、発注番号
#22005、のイベントのステータス・ビットの説明を参照して下さい。
Table 21-6
URAT割込みプログラミングの概略
Enable
Register1, 2
Interrupt Description
Receive DMA transfer count UART x General
Transmit DMA transfer count Control
(UARTxCTL)
Modem status change
Status
Register3
UART x Receive TC Detected
UART x
General Status UART x Transmit TC Detected
(UARTxSTA)
UART x Interrupt UART x
Enable
Modem Status
(UARTxINTENB) (UARTxMSR)
Receiver line status
Source Event
UART x Line
Status
(UARTxLSR)
Polled
Status Bit
RXTC_DET
TXTC_DET
Delta data carrier detect
DDCD
Trailing edge ring indicator
TERI
Delta data set ready
DDSR
Delta clear to send
DCTS
Break indicator
BI
Framing error
FE
Parity error
PE
Overrun error
OE
Transmitter holding register
empty
Transmit holding register (16450- THRE
compatible mode) or transmitter
FIFO (16550-compatible mode)
empty
Received data available
Data ready
(16450-compatible mode)
DR
FIFO trigger level reached
(16550-compatible mode)
––
FIFO time-out
(16550-compatible mode)
––
––4
FIFO time-out5
Notes:
1. Before any UART interrupt is enabled, the corresponding UART x Interrupt Mapping (UARTxMAP) register must
be configured to route the interrupt to the appropriate interrupt request level and priority.
2. The OUT2 bit in the UART x Modem Control (UARTxMCR) register is used as a master control for UART interrupts. The OUT2 bit must be set for UART interrupts to be generated. Status bits can be read even when interrupts
are disabled.
3. If two of the interrupts enabled in the UART x Interrupt Enable (UARTxINTENB) register are pending simultaneously, the highest-priority interrupt is identified in the INT_ID bit field of the UART x Interrupt ID (UARTxINTID)
register.
4. There are no polled-status bits for the FIFO trigger level and FIFO time-out events. These events are indicated
by the INT_ID bit field only.
5. The FIFO time-out interrupt is enabled with the received data available interrupt by the ERDAI bit in the UART x
Interrupt Enable (UARTxINTENB) register.
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
21-11
UART シリアル・ポート
21.5.7.1
シリアル・ポートの割込み
各シリアル・ポートは標準のUART割込みをサポートします。これには次のものが含まれています。
■ 受信データが用意できている、
またはFIFOのトリガー・レベルに達した
■ Transmit Holdingレジスタ (THRE) が空
■ モデム・ステータスの変化(clear-to-send、
data-set-ready、ring indicator、data carrier detect
を含む)
■ Line Statusレジスタのreceiver割込み (オーバーラン・エラー、パリティ・エラー、
フレーミング・
エラー、
ブレーク割込みを含む)
16550コンパチブル・モードでは、receiver data available割込みはイネーブルされると、FIFOタイ
ム・アウト割込みもイネーブルされます。
UART割込みのソースとその優先順位はTable 21-7に示します。2つの割込みのソースが同時にあ
る場合は、UART x Interrupt ID (UARTxINTID) レジスタのIDフィールドによって優先順位の高さ
が決まります。割込みのソースがクリアされてから、
このポートから続けて読むと、
次に高い優先順位
のポートが返されます。
Table 21-7
シリアル・ポート割込みと割込みの優先順位
INT_ID
Bit Field
Description
Identification Priority
000b
Modem status change
Fourth (Lowest)
001b
Transmit holding register empty (16540-compatible
mode)/Transmit FIFO empty (16550-compatible mode)
Third
010b
Received data available (16540-compatible mode)/
Receiver FIFO trigger (16550-compatible mode)
Second
011b
Receive line status
First (Highest)
100b
Not used
––
101b
Not used
––
110b
FIFO time-out
Second
111b
Not used
––
Note: In 16450-compatible mode, the INT_ID2 bit always reads back 0. The INT_ID bit
field is located in the UART x Interrupt ID (UARTxINTID) register.
UART の割込みは、Interrupt Enableレジスタによってイネーブルされ、また UART x Interrupt ID
(UARTxINTID)レジスタのリードによってイネーブルされます。
21.5.7.2
21-12
DMA割込み
DMA転送と関連しているTransfer Count (TC) 信号がアサートされると、各UARTは割込みを発生
4つのイネーブル・
します。これらの割込み用として、
各UARTの送受信Transfer Count値を達成する、
ビットと4つのステータス・ビットがあります。これらのビットはUART x General Control (UARTxCTL)
レジスタとUARTx General Status (UARTxSTA) レジスタにあります。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
UART シリアル・ポート
21.5.7.3
割込みのディセーブル
UART x Modem Control (UARTxMCR) レジスタのOUT2ビットを0にクリアすることによって、各
UART の割込み要求はプログラマブル・インタラプト・コントローラに行く前にディセーブル(ローで
ゲートして)することができます。MCRのLOOPビットをセットすると、UARTの割込み要求もディセー
ブルすることに注意して下さい。したがって、ループバック・モードにある間は、割込みはPICに届きま
せん。
21.6
初期化
システム・リセットにおいて、
シリアル・ポートは使用不能になります。使用可能にするためには、
ソフト
ウェアによって設定しなくてはなりません。
1.
2.
必要とするボーレート、キャラクタ長、そしてパリティをUARTにプログラムして設定します。
必要に応じて割込みとDMA動作をイネーブルします。UARTの割込みがプログラマブル・インタ
ラプト・コントローラまで伝わるには、UART x Modem Control (UARTxMCR)レジスタのOUT2
ビットは1にセットされなくてはなりません。
UARTがイネーブルされた後は、16450コンパチブル・デバイスとして立ち上がります。ソフトウェア
制御下で16550コンパチブル・モードと16450コンパチブル・モードの切り替えができます。
3.
UART x FIFO Control (UARTxFCR) レジスタの FIFO_ENBビットをセットすることにより、
16550コンパチブル・モードをイネーブルできます。この書込み専用レジスタの内容は、UART x
FIFO Control Shadow (UARTxFCRSHAD) レジスタで読むことができます。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
21-13
UART シリアル・ポート
21-14
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
第22章
同期シリアル・インタフェース
22.1
概要
ÉlanSC520マイクロコントローラは同期シリアル・インタフェース(SSI)を内蔵しています。SSIはペ
リフェラル・デバイスとの効率良い全二重と半二重の双方向通信を提供します。このインタフェース
は、
ISDNトランシーバー、EEPROM、SLAC、オーディオ・コーデック、LCDドライバ、DSPなどのような
デバイスを設定したり、ステータスをモニタするために使うことができます。これはモトローラの
Serial Peripheral Interface (SPI)、モトローラのSerial Communication Port (SCP)、ナショナル・
セミコンダクター社のMicrowireや他の業界標準と互換なスレーブ・インタフェースと通信すること
ができます。
SSIの特徴は下記の通りです。
■ 全二重と半二重の動作
■ 4ピンあるいは3ピンのペリフェラル・デバイスと互換
■ プログラマブル I/O(PIO)ピンにより複数のデバイスをイネーブル可能
■ 設定可能なクロックのアイドル状態とフェーズ
■ 設定可能なビット・シフトの順番(最上位からまたは最下位から)
■ 64 KHzから8 MHzのプログラマブルなSSIクロック・スピード
■ 割込みとして使えるtransaction completeステータス
22.2
ブロック図
SSIのブロック図をFigure 22-1に示します。3ピンのSSIインタフェースと4ピンのSSIインタフェース
の、
システム図とタイミング図を、Figure 22-2からFigure 22-5に示します。
22.3
システム設計
3本のSSIピン、すなわちclock out (SSI_CLK)、data out (SSI_DO)、data in(SSI_DI) がサポートさ
れています。SSI_DO信号は、
SSIに発信活動がないとき、通常はハイ・インピーダンスです。スレープ・
デバイスによって必要な場合、
このピンに外部プルアップかプルダウン抵抗を付けます。
多くのスレーブ・デバイスは、動作中はエネーブル・ピンがアサートされていて、動作していないとき
にはネゲートされている必要があります。ÉlanSC520マイクロコントローラのPIOピンをこのために
使うことができます。
多くのスレーブのSSIポートは、ÉlanSC520マイクロコントローラに割込み出力ピンを出すことがで
きます。これは、
PIOとマルチプレクスされているGPIRQxピンの1本につなぎます。外部割込みにつ
いては第15章の「プログラマブル・インタラプト・コントローラ」と第2章の「ピンの説明」を参照して
下さい。
タイミング表と追加のタイミング図はÉlanSC520 Microcontroller Data Sheet、注文番号#22003、
を参照して下さい。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
22-1
同期シリアル・インタフェース
Figure 22-1
同期シリアル・インタフェース( SSI )ブロック図
Élan™SC520 Microcontroller
GPIRQx
Programmable Interrupt
Controller (PIC)
PIO
Block
PIOx
SSI
SSI_DO
ssi_irq
SSI Transmit Register
Internal
GP Bus
SSI Control Register
SSI Clock
Generation
33-MHz
Clock
shift register
SSI Status Register
SSI Command Register
tri_do
SSI Receive Register
SSI_CLK
shift register
SSI_DI
22.4
レジスタ
Table 22-1に示すメモリ・マップされたレジスタは、SSIを設定するために使われます。
Table 22-1
メモリ・マップされた同期シリアル・インタフェース( SSI )レジスタ
Register
Mnemonic
MMCR
Offset
Address
SSI Control
SSICTL
CD0h
SSI clock speed, interrupt enable, clock phase,
clock idle state, bit order
SSI Transmit
SSIXMIT
CD1h
Byte or data to be shifted out to SSI_DO pin
SSI Command
SSICMD
CD2h
Transfer command to be executed: transmit,
receive, or simultaneous transmit/receive
SSI Status
SSISTA
CD3h
Busy status, transaction complete status
SSI Receive
SSIRCV
CD4h
Byte or data shifted in from SSI_DI pin
SSI Interrupt Mapping
SSIMAP
D41h
SSI interrupt mapping
22-2
Function
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
同期シリアル・インタフェース
22.5
オペレーション
同期シリアル・インタフェースは、
いくつかの方式で構成できるポートを定義します。一般的に、
マイク
ロコントローラのポートはマスタと呼ばれ、そして1つかそれ以上のペリフェラル・デバイスのポート
はスレーブと呼ばれます。
アドレスおよびデータ
■ マスタ・ポート(ÉlanSC520マイクロコントローラ)は、スレーブ・コマンド、
をシリアル通信することによってスレーブを設定します。
■ 同じように、
スレーブ(ペリフェラル・デバイス)は、要求されたステータス情報やデータを送ること
ができます。
SSI Control (SSICTL)レジスタ (MMCR offset CD0h)のオプションや、
ソフトウェアでコントロール
されているデバイス・イネーブル信号を使って、
SSIポートが様々なフォーマットをエミュレートするよ
うにカスタマイズすることができます。柔軟性を持つことによって、複数のデバイスと簡単に通信で
き、
ソフトウェアのオーバーヘッドを減らすことができます。
3つの命令によってSSIを通してデータ転送を始めることができます。SSI Control (SSICTL) レジス
タへの書込みによって、
実行するサイクルの種類を選択し、
サイクルが開始されます。3つのSSI命令
とは:
■ Transmit-only (half-duplex)−−発信トランザクションまたはサイクルでは、SSI Transmit
(SSIXMIT) レジスタ (MMCR offset CD1h) の内容がSSI_DOピンにシリアル・シフトされます。
■ Receive-only (half-duplex)−−受信トランザクションでは、SSI_DIからSSI Receive (SSIRCV)
レジスタ (MMCR offset CD4h) へバイトをシフトします。
■ Simultaneously transmit and receive (full-duplex)
ÉlanSC520マイクロコントローラのSSIは常にマスタで、SSI命令が発行されるとクロックをドライブ
します。スレープ・デバイスはクロックをドライブすることはできません。すべてのトランザクションは
8クロック・サイクル以内で終了します。
22.5.1
22.5.1.1
利用法シナリオ
4ピン・インタフェース
全二重の4ピンのポートは、入力と出力のデータ・ピンが分かれています。Figure 22-2は複数の4ピ
ンのスレープ・デバイスに接続されているSSI のブロック図です。Figure 22-3に示すように、送信と
受信のオペレーションは同じ8クロックの中で行えます。しかしながら、
多くの4ピンのスレーブポート
は半二重で動作します。このような場合はFigure 22-5となります。
22.5.1.2
3ピン・インタフェース
Figure 22-4のように、SSI_DOとSSI_DIは、3ピンのペリフェラル・デバイスとインタフェースするた
めに、外部でショートすることができます。これによって、
スレーブI/Oピンに合うI/O信号を作ります。
3ピンのポートは、半二重通信のためにデータ出力と入力をマルチプレクスします。Figure 22-5に示
すように、典型的な半二重動作は、
インバートされていないフェーズとクロック・モードの、2バイトの
プロトコルで実現されます。最初のバイトはスレーブに1つの命令/アドレス・バイトを送り、そしてそれ
は2番目のバイトのデータを送信するのか、受信するのかを示します。アクティブ・クロックを検出した
ときに、スレーブは信号を送り始めるか、受信し始めます。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
22-3
同期シリアル・インタフェース
Figure 22-2
SSI 4ピン・インタフェース
SSI_CLK
SSI_DO
Élan™SC520 Microcontroller
SSI_DI
Four-Pin Slave Synchronous
Serial Interface
Clock in
Data in
Data out
PIOx
Enable
PIOx
Four-Pin Slave Synchronous
Serial Interface
Clock in
Data in
Data out
Enable
Figure 22-3
SSI同時送受信
PIOx
SSI_CLK
SSI_DO
SSI_DI
Figure 22-4
SSI 3ピン・インタフェース
SSI_CLK
Clock in
Three-Pin Slave
SSI_DO
Élan™SC520 Microcontroller
Data in/out
SSI_DI
PIOx
Figure 22-5
Synchronous
Serial Interface
Enable
インバートされていないフェーズ・モード/クロック・モードでの典型的なSSIの半二重通信
PIOx
SSI_CLK
SSI_DO
SSI_DI
22-4
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
同期シリアル・インタフェース
22.5.2
コンフィギュレーション情報
SSI Control (SSICTL) レジスタ (MMCR offset CD0h) 内のMSBF_ENB、CLK_INV_ENB、そして
PHS_INV_ENBビットが、
ビットの順番、
クロック・アイドル状態、
そしてデータが送信/受信されるクロッ
ク・エッジ(フェーズ)を定義します。
■ スレーブが送信するために使う同じクロック・エッジで、SSIはSSI_DOをアサートするように設定
します。
■ SSI_DIは反対のクロック・エッジでサンプルされます。
22.5.2.1
ビット順
SSI Most Significant Bit First Mode Enable (MSBF_ENB)ビットによって、SSIのビット順を変えら
れます。1バイトは最下位ビットからも(LSBF)、
あるいは最上位ビットからも(MSBF)転送することがで
きます。このビットに1が書込まれると、MSBFモードが有効です。このモードが入力と出力のデータ
で普通です。
22.5.2.2
クロック・アイドル状態
クロック・アイドル状態はSSI Inverted Clock Mode Enable (CLK_INV_ENB)ビットによってコント
ロールされます。
ドライブ/サンプルまでの絶対時間はCLK_INV_ENBビットによって変化しません。
■ CLK_INV_ENBビットが0の値のとき、
SSI_CLKはハイでアイドルになり、そしてトランザクション
の最中はローにパルスします。
クロックのアイドル状態はローです。
■ CLK_INV_ENBビットが1の値のとき、
22.5.2.3
クロック・フェーズ
シリアル・データに対して相対的なクロック・フェーズは、SSI Inverted Phase Mode Enable
(PHS_INV_ENB) ビットによって決定されます。
■ インバートされていないフェーズ・モードでは、
データはSSIクロックの奇数エッジで送信され、そ
して偶数エッジで受信されます。したがって、
書いているときは、
トランザクションの最初のSSIク
ロック・エッジで、SSI_DOの最初のビットをシフトして出します。受信トアンザクションの最中は、
SSI_DIデータはSSIクロックの偶数エッジでラッチされます。
■ インバートされたフェーズ・モードでは、
SSI_DI信号は最初の(奇数の)クロック・エッジでサンプル
する必要があります。従って、最初のビットはSSI_DOに、
SSI_CLKの最初のエッジの半SSIクロッ
ク・サイクル前にアサートされ、その後は偶数エッジにアサートされます。
22.5.3
バス・サイクル
CLK_INV_ENBとPHS_INV_ENBの4つの可能な組合せをFigure 22-6に示します。
■ PHS_INV_ENB、
CLK_INV_ENB、
とMSBF_ENBビットがすべて1にセットされると、
Microwire互
換の構成になります。
そしてMSBF_ENBビットが1にセットさ
■ PHS_INV_ENBとCLK_INV_ENBビットが0にクリアされ、
れると、SSIはSCPインタフェースと互換になります。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
22-5
同期シリアル・インタフェース
Figure 22-6
SSIクロック・フェーズとクロック・アイドル状態
PIOx
SSI_DI
SSI_DO
SSI_CLK
PHS_INV_ENB=0
CLK_INV_ENB=0
SSI_CLK
PHS_INV_ENB=0
CLK_INV_ENB=1
SSI_CLK
PHS_INV_ENB=1
CLK_INV_ENB=0
SSI_CLK
PHS_INV_ENB=1
CLK_INV_ENB=1
Transaction complete,
three-state SSI_DO
Write
Read
22.5.3.1
4ビットの読出しサイクル
4ビットのオペレーションは、転送された8ビットのうちの4ビットを無視することによってシミュレート
することができます。Figure 22-7に4ビットの読出しオペレーションの例を示します。
1.
全二重SSIコマンドは、
インバートされていないフェーズ、
インバートされていないクロック、そし
てMSBFモードで実行されます。
2.
3.
SSI_DOの最初の4ビットはスレーブ・ニブル読出し命令を送信します。
SSI_DOの最後の4ビットは4ビットのNOP命令を、スレーブによって無視されなければ、指定で
きます。
4.
SSI_DIの最初の4ビットはシフトして取り込まれます、
しかしソフトウェアによって無視することが
できます。
Figure 22-7
5.
SSI_DIの最後の 4ビットが要求したニブルです。
6.
SSIトランザクションは、最後の読出しエッジの半SSI_CLKサイクル後に完了します。
SSI 4ビットの読出しサイクル:全二重、インバートされていないフェーズ/クロック
PIOx
SSI_CLK
SSI_DO
MSB
LSB
SSI_DI
MSB
22-6
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
LSB
同期シリアル・インタフェース
22.5.3.2
バースト、16ビット、そして32ビットのサイクル
バースト、
16ビット、そして32ビットのデータ交換は、複数の8ビット・トランザクションによってシミュレー
トすることができます。
トランザクションの合間には最低1CPUクロックのアイドル時間があります。そ
れぞれのトランザクションの追加の遅延はソフトウェアによって決定されます。Figure 22-8に16ビッ
トの動作例を示します。2つの全二重SSI命令がMicrowire互換のペリフェラルで実行されます。
Figure 22-8
全二重Microwire互換コンフィギュレーションの場合のSSIバックツーバック・トランザクション
Command
Command
PIOx
SSI_CLK
SSI_DO
7
0
MSB
SSI_DI
LSB
7
0
MSB
LSB
Transaction
complete
22.5.4
Transaction
complete
クロックに関する考慮
SSIクロックは33 MHzクロックから得られます。SSI Control (SSICTL) レジスタ (MMCR offset
CD0h)のCLK_SELビットで、SSIクロック (SSI_CLKピン)の周波数を設定します。システムが33.000
MHzまたは33.333 MHzの水晶を使っているかによって、実際のビット・レートは変化します。周波数
の選択については、ÉlanSC520 Microcontroller Register Set Manual、注文番号#22005、
を参照
して下さい。
22.5.5
割込み
CPUにトランザクションが完了したことを知らせるために、SSIによって割込みを発生することができ
ます。
1.
SSI Control (SSICTL) レジスタのTC_INT_ENBビットに1を書込むことによって割込みをイネー
ブルします。
2. トランザクションが完了すると、SSI Status (SSISTA) レジスタ (MMCR offset CD3h) のBSY
ビットは0にクリアされ、SSI Status (SSISTA) レジスタの SSI Transaction Complete Interrupt (TC_INT) ビットは1にセットされ、そして割込みを送ることができます。
3. トランザクションの最後に受信したエッジの半SSIクロック周期後に(あるいはトランザクションの
最後の送信したエッジの1SSIクロック周期後)、ハードウェアが SSI Status (SSISTA)レジスタ
をアップデートし、SSIが再びビジーでないことを示します。
4.
TC_INTビットに1を書込み返してビットをクリアし、そして割込みを認識します。0を書込んでも
何の影響もありません。
割込みがイネーブルされていない場合、BSYビットを読むためにSSI Status (SSISTA) レジスタを
定期的にチェックすることができます。SSI Command (SSICMD)レジスタがロードされるとBSYは
1にセットされます。
インバートされていないフェーズ・モードと、
インバートされているフェーズ・モードでのTC_INTとBSY
ビットの値は、Figure 22-9に示します。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
22-7
同期シリアル・インタフェース
Figure 22-9
SSIタイミング:TC_INTビットとBSY_STAビット
Write 1 to TC_INT
Write 1 to TC_INT
TC_INT=0
TC_INT=0
BSY=0
TC_INT=1
Write SSI command
BSY=1
BSY=0
TC_INT=1
Write 1 to TC_INT
TC_INT=0
Write SSI command
BSY=1
BSY=0
TC_INT=1
SSI_CLK
PHS_INV_ENB=0
CLK_INV_ENB=0
SSI_CLK
PHS_INV_ENB=1
CLK_INV_ENB=1
22.5.6
ソフトウェアに対しての考慮
送信または受信のトランザクションが開始される前に、(必要であれば)スレーブをイネーブルし、
トラ
ンザクションが完了した後にディセーブルすべきです。セットアップとホールド時間の仕様を満たす
チップ・イネーブル信号を作るために、
PIOをコントロールするのはソフトウェアの責任です。これらの
ピンには、
対応するSSIのハードウェア機能を持っていません。これらのピンの説明は第23章「プログ
ラマブルI/O 」を参照して下さい。
アクティブなオペレーションの最中に設定が変更されたり、
2番目のSSI命令が書込まれたりすると、信
頼できない動作が起こります。SSIがビジーな時にはSSI Transmit (SSIXMIT) レジスタ、SSI Control (SSICTL) レジスタ、そしてSSI Command (SSICMD)レジスタへの書込みは行ってはなりませ
ん。ソフトウェアはSSIコマンドを書く前に、
SSI Transmit (SSIXMIT)レジスタを(必要である場合)ロー
ドすべきです。SSI Receive (SSIRCV) レジスタ (MMCR offset CD4h)は受信トランザクションが
完了するまで読むべきではありません。
22.6
初期化
SSIポートはシステム・リセットの間はディセーブルされていて、
すべてのSSIレジスタのビットは0に初期化
されます。SSIはリセットされた後にイネーブルされますが、
SSI命令が実行されるまでアクティブになりま
次のステップのいくつか、
あるいはすべてを行います。
せん。SSIトランザクションを開始するためには、
1.
2.
SSI Control (SSICTL) レジスタのTC_INT_ENBビットでCPUトランザクション完了割込みをイ
ネーブル/ディセーブルします。
SSI Control (SSICTL) レジスタ (MMCR offset CD0h) のPHS_INV_ENBビットでインバート
されたフェーズ・モードをイネーブル /ディセーブルします。
3.
SSI Control (SSICTL) レジスタのCLK_INV_ENBビットでインバートされたクロック・モードを
イネーブル/ディセーブルします。
4.
SSI Control (SSICTL) レジスタのMSBF_ENBビットでMSBFモードをイネーブル/ディセーブルします。
5.
SSI Control (SSICTL) レジスタの CLK_SELビットでSSIクロック・スピードを選択します。
6.
PIOを使ってデバイス・イネーブル・ピンをイネーブル/ディセーブルします。
7.
SSI Transmit (SSIXMIT) レジスタ (MMCR offset CD1h) へ出力データを書込みます。
8.
SSI Command (SSICMD) レジスタ (MMCR offset CD2h) へ SSI命令を書込みます。
9. トランザクション完了割込みを待ちます。割込みがディセーブルのときは、SSI Status (SSISTA)
レジスタ (MMCR offset CD3h)のBSYビットを読んでポートの活動スタータスをチェックします。
10. SSI Receive (SSIRCV) レジスタ (MMCR offset CD4h) から入力データを読みます。
11. SSI Status (SSISTA) レジスタのTC_INTビットへ1を書込んでビットをクリアし、割込みがイネー
ブルされていれば割込みを認識します。
22-8
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
第23章
プログラマブルI/O
23.1
概要
Élan SC520 マイクロコントローラは32 のプログラム可能なI/O 信号(PIO)をサポートし、これらは
ÉlanSC520マイクロコントローラの他の機能によって対応されないデバイスを制御したり、信号をモ
ニタしたりするためにシステム・ボードで使われます。これらの信号は、入力、
あるいは出力として、ハ
イまたはローにドライブするようにプログラムすることができます。
PIO信号は次の機能を持つようにプログラムすることができます。
■ 入力として読まれる(リセット後のデフォルト条件)
■ 出力としてハイまたはローにドライブされる
ÉlanSC520マイクロコントローラでは、全てのPIOは全てのシステム・デザインで必要とされない、GP
バス信号のような他の機能と共有されています。これはシステム設計者に最大の柔軟性を与えるた
めです。わかりやすくするために、本資料ではPIOピンが提供する2 つの機能を、PIO 機能とインタ
フェース機能として分けて区別します。
プルアップあるいはプルダウン抵抗でター
各PIO信号は、ÉlanSC520マイクロコントローラの中で、
ミネートされています。この機能によって、基板の上のターミネーションが不要になるので、
システム
設計がより簡単になります。各PIO信号はピンのインタフェース機能に従ってターミネートされてい
ます。つまり、
通常アクティブ・ローの信号は、
リセット時にインアクティブにするために、
普通はプルアッ
プを持ちます。各PIO信号のターミネーションに関してはÉlanSC520 Microcontroller Data Sheet
(注文番号#22003) を参照して下さい。
23.2
ブロック図
Figure 23-1はPIO機能のブロック図です。この機構は各PIOにそれぞれ用意されています。この図
には1つだけのPIOの例が示してあります。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
23-1
プログラマブル I/O
Figure 23-1
PIO信号ブロック図
Élan™SC520 Microcontroller
Interface
Function
Gate
VCC_IO
50–150 K
PIO
Data
Register
PIOx
50–150 K
PIO
Direction
Register
Interface
Function
PIO
Pin Function
Select
Register
S
PIO Set
Register
Logic
PIO Clear
Register
Notes:
A PIO has either a pullup or pulldown resistor, but not both.
23.3
システム設計
多くのPIOは他の機能とピンを共有するため、
システム設計者はシステム・デザインでどのPIOを使う
か通常は選択しなくてはならず、
制限を受けます(すなわち、基板上にインタフェース機能が必要かも
しれません)。PIOかインタフェース機能かを選択するのは、Table 23-1に示すように、
2つのPIOx Pin
Function SelectレジスタでそれぞれのPIOごとに行います。イネーブルされていると、Table 23-1
で示すマルチプレクスされた信号は、同じピンを使う他のいかなる機能もディセーブルするか変えて
しまいます。
注意:全てのPIOは(インタフェース機能の要求に応じて)、
プルアップかプルダウン抵抗によってターミネートされてい
ます。プルアップとプルダウン抵抗はおよそ100から150オームです。どのPIOを使うべきか決めるときに、
ピン
のターミネーションを考慮すべきです。例えば、
デフォルトでプルダウンされるPIOがチップ・セレクトとして使わ
れる場合、内部のプルダウン抵抗はもっと強い外部のプルアップ抵抗によって無効にされるか、
または外部の
デバイスはリセット時に自分のチップ・セレクトをアクティブにしてなくてはなりません。
23-2
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
プログラマブル I/O
PWRGOODのアサートの後には、Table 23-1に示すように、全PIO信号はデフォルトで入力になり、
プルアップかプルダウン抵抗でターミネートされます。これらの信号は、出力または代わりにインタ
フェース機能として用いる前に、
プログラムされなくてはなりません。
「 23.6 初期化」を参照して下
さい。
Table 23-1
多重化されたPIO信号
PIO
(Default)
Function
Interface
Function
Pin Configuration
Following
System Reset
Control Bit
Register
PIO31
RIN2
input with pullup
PIO31_FNC
PIO30
DCD2
input with pullup
PIO30_FNC
PIO29
DSR2
input with pullup
PIO29_FNC
PIO31–PIO16 Pin Function Select
(PIOPFS31_16) register
(MMCR offset C22h)
PIO28
CTS2
input with pullup
PIO28_FNC
PIO27
GPCS0
input with pullup
PIO27_FNC
PIO26
GPMEMCS16
input with pullup
PIO26_FNC
PIO25
GPIOCS16
input with pullup
PIO25_FNC
PIO24
GPDBUFOE
input with pullup
PIO24_FNC
PIO23
GPIRQ0
input with pullup
PIO23_FNC
PIO22
GPIRQ1
input with pullup
PIO22_FNC
PIO21
GPIRQ2
input with pullup
PIO21_FNC
PIO20
GPIRQ3
input with pullup
PIO20_FNC
PIO19
GPIRQ4
input with pullup
PIO19_FNC
PIO18
GPIRQ5
input with pullup
PIO18_FNC
PIO17
GPIRQ6
input with pullup
PIO17_FNC
PIO16
GPIRQ7
input with pullup
PIO16_FNC
PIO15
GPIRQ8
input with pullup
PIO15_FNC
PIO14
GPIRQ9
input with pullup
PIO14_FNC
PIO13
GPIRQ10
input with pullup
PIO13_FNC
PIO12
GPDACK0
input with pullup
PIO12_FNC
PIO11
GPDACK1
input with pullup
PIO11_FNC
PIO10
GPDACK2
input with pullup
PIO10_FNC
PIO9
GPDACK3
input with pullup
PIO9_FNC
PIO8
GPDRQ0
input with pulldown
PIO8_FNC
PIO7
GPDRQ1
input with pulldown
PIO7_FNC
PIO6
GPDRQ2
input with pulldown
PIO6_FNC
PIO5
GPDRQ3
input with pulldown
PIO5_FNC
PIO4
GPTC
input with pullup
PIO4_FNC
PIO3
GPAEN
input with pullup
PIO3_FNC
PIO2
GPRDY
input with pullup
PIO2_FNC
PIO1
GPBHE
input with pullup
PIO1_FNC
PIO0
GPALE
input with pullup
PIO0_FNC
PIO15–PIO0 Pin Function Select
(PIOPFS15_0) register
(MMCR offset C20h)
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
23-3
プログラマブル I/O
23.4
レジスタ
Table 23-2に、PIO信号をコントロールするメモリ・マップされたコンフィギュレーション・レジスタを
まとめたリストを示します。
Table 23-2
メモリ・マップされたPIOレジスタ
Register
Mnemonic
MMCR
Offset
Address
PIO15–PIO0 Pin Function
Select
PIOPFS15_0
C20h
PIO15–PIO0 or interface function select:
GPIRQ10–GPIRQ8, GPDACK3–GPDACK0,
GPDRQ3–GPDRQ3, GPTC, GPAEN, GPRDY,
GPBHE, GPALE
PIO31–PIO16 Pin Function
Select
PIOPFS31_16
C22h
PIO31–PIO16 or interface function select: RIN2,
DCD2, DSR2, CTS2, GPCS0, GPMEMCS16,
GPIOCS16, GPDBUFOE, GPIRQ7–GPIRQ0
Chip Select Pin Function
Select
CSPFS
C24h
GPCS7–GPCS1 or alternate function select:
TMROUTx, TMRINx, PITGATE2, ROMCS2,
ROMCS1
Clock Select
CLKSEL
C26h
CLKTIMER[CLKTEST] pin enable, clock output
select options (18.432 MHz or 1.8432 MHz
UART, PLL1, PLL2, PIT, and RTC), CLKTIMER
or CLKTEST select
Drive Strength Control
DSCTL
C28h
I/O pad drive strength for SCS3–SCS0,
SRASA–SRASB, SCASA–SCASB, SWEA–
SWEB, SDQM3–SDQM0, MA12–MA0, MD31–
MD0, MECC6–MECC0.
PIO15–PIO0 Direction
PIODIR15_0
C2Ah
PIO15–PIO0 as input or output
PIO31–PIO16 Direction
PIODIR31_16
C2Ch
PIO31–PIO16 as input or output
PIO15–PIO0 Data
PIODATA15_0
C30h
Read/write directly the state of the PIO15–PIO0
pin
PIO31–PIO16 Data
PIODATA31_16
C32h
Read/write directly the state of the PIO31–
PIO16 pin
PIO15–PIO0 Set
PIOSET15_0
C34h
Drive PIO15–PIO0 output High
PIO31–PIO16 Set
PIOSET31_16
C36h
Drive PIO31–PIO16 output High
PIO15–PIO0 Clear
PIOCLR15_0
C38h
Drive PIO15–PIO0 output Low
PIO31–PIO16 Clear
PIOCLR31_16
C3Ah
Drive PIO31–PIO16 output Low
23.5
Function
オペレーション
すべてのPIO信号ピンは入力、出力、
あるいはインタフェース機能(例えば、GPバス信号)としてプログ
ラムすることができます。これらは、電源投入時のリセットで、
内蔵されたプルアップか、
プルダウン抵
抗がついたPIO入力としてイネーブルされます。
入力としては、
PIOは他のデバイスからの信号をモニタするためにソフトウェアによって使われます。こ
れらは、
他のインタフェースからは持ってこられない信号をチップの中に持って来るパスを供給します。
出力としては、ハイかローにドライブできる信号を持つ外部デバイスをソフトウェアがコントロールす
23-4
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
プログラマブル I/O
る能力をPIOは提供します。
23.5.1
コンフィギュレーション情報
23.5.1.1
PIOピンと単純な入力
システムの電源投入時には、PIOピンは単純な入力として選択されます。PIOx Dataレジスタを使っ
てピンの入力値が読めます。
たった2つだけのアクションがPIOピンの単純な入力をディセーブルします。
■ ピンのインタフェース機能を選択する
■ PIOのPIOx DirectionレジスタのPIOx_DIRビットを設定して、PIOを出力として構成する。
23.5.1.2
PIOピンと単純な出力
PIOピンのインタフェース機能が選択されていない場合は、PIOx_DIRがセットされ、PIOは出力にな
ります。ピンの値をセットするには、PIOx SetとPIOx Clearレジスタにビットに書込んだり、
または適
切なPIOx Dataレジスタを使うことによって行います。
23.5.2
ソフトウェアに対しての考慮
Table 23-3にPIOを設定するのに必要なレジスタ設定をまとめます。
Table 23-3
PIOコンフィギュレーションの概略
Function
Select
Register
Bit
Direction
Register
Bit
Data
Register
Bit
(Writes)
1
X2
X
0
0
0
Set
Register
Bit
Data
Register
Bit
Clear
Register
Bit
(Reads)1
X
X
?3
The pin is not a PIO; it uses its interface function. The
value of the pin can be read at the Data bit, but writes to
the Direction, Data, Set, and Clear bits have no effect.
X
X
X
?
The PIO is an input. The state of the pin can be read at
the Data bit. Writes to the Data, Set and Clear bits have
no effect.
1
X
X
14
0
The PIO is an output. The 1 that is written to the Clear bit
causes this PIO pin to be driven Low. The state of the pin
can be read at the Data bit, (in this case the pin is Low).
0
1
X
1
X
1
The PIO is an output. The 1 that is written to the Set bit
causes this PIO pin to be driven High. The state of the
pin can be read at the Data bit, (in this case the pin is
High).
0
1
0
X
X
0
The PIO is an output. The 0 that is written to the Data bit
causes this PIO pin to be driven Low. The state of the pin
can be read at the Data bit, (in this case the pin is Low).
0
1
1
X
X
1
The PIO is an output. The 1 that is written to the Data bit
causes this PIO pin to be driven High. The state of the pin
can be read at the Data bit, (in this case the pin is High).
Resulting Programmable I/O Pin Function
Notes:
1. The Data Register Bit (Reads) column shows the resulting state of the Data register bit and the corresponding
PIO pin.
2. X = Not used in this operation.
3. ? = Input value. (The Data register bit state always reflects the corresponding pin state, whether input or output.)
4. For a particular PIO output operation, only one of the pinís Data, Set, or Clear bits can be used. The state of the
unused bits is not important, but subsequent writes to these bits can change the PIO pin state.
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
23-5
プログラマブル I/O
PIOピンをセット、
クリア、そして読むレジスタは32ビット命令でアクセスできますが、32ビット・アクセ
スは2つの16ビット・アクセスに分割されることに注意して下さい。これは、例えば、PIO5とPIO18を
同時にセットすることは不可能になります。同じように、PI012とPI023の状態を同時にサンプルする
ことは不可能です。命令によって返却された32ビットの値は、
異なる時間にサンプルした2つの16ビッ
ト値を持っています。32ビットのオペレーションでは、下位の16ビットのワード(PIO31-PIO16のため
)は常に上位の16ビットのワード(PIO15-PIO0のために)よりも前にアクセスされます。2つのアクセス
の間の時間は確定できず、バスにアクセスしようとしているCPUの他のマスタに基づいています。
23.6
初期化
システム・リセットの後は、すべてのPIO31-PIO0信号はデフォルトでプルアップかプルダウンの抵抗
ターミネーションが付いている入力となります。信号を出力あるいは代わりのインタフェース機能と
して用いる前に、信号をプログラムしなくてはなりません。
PIOx信号を初期化するために、次のステップが必要とされます。
1.
特定のアプリケーションにおいて、
どのÉlanSC520マイクロコントローラのピンがPIO機能を利
2.
PIO機能か各PIO31-PIO0ピンのインタフェース機能かを選択するために、PIOx Pin Function
Selectレジスタをプログラムします。
用でき、
どれがインタフェース機能としてプログラムされるべきかを決定しています。
3.
PIO機能性を使うと指定されたピンに対して、PIOx Directionレジスタをプログラムすることに
よってPIO の方向を定義します。
4.
5.
入力として定義されたPIOピンは、PIOx Dataレジスタ経由で読むことができます。
出力として定義されたPIOピンは、PIOx Data、PIOx Set、
またはPIOx Clearレジスタ経由です
でに書込むことができます。
23-6
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
第24章
システム・テストとデバッギング
24.1
概要
この章ではÉlanSC520 マイクロコントローラの種々のシステム・レベル・テストの機能について説明
します。ÉlanSC520マイクロコントローラを使用したシステムでハードウェアとソフトウェアをデバッ
グする際に便利な機能です。システム・レベル・テストの機能の一部は、
ソフトウェアのデバッグを行う
AMDebugインタフェースと共に使用すると便利です。この機能は第26章「AMDebug™テクノロジ」
に説明されています。
システム・レベルのデバッギングを容易にするためにÉlanSC520マイクロコントローラに内蔵された
機能を下記のリストに要約します。
■ 外部バス活動のトレースが行えるインサーキット・イミュレーションをサポートする、
簡単な3ピン・
インタフェース
■ SDRAMインタフェースで現在アクティブなライト・バッファ書込みサイクルがどのバス・マスタに
よって行われたかを検出することを補助するライト・バッファ・テスト・モード
■ Am5x86 CPU、PCIバス・マスタ、
またはGP-DMAサイクルが同時に起こった時に、
システム・トラ
ンザクションの複雑度を軽減する非並列のアービトレーション・モード
■ Am5x86 CPUの内蔵周辺デバイスへのアクセス時の内部サイクルと読出しデータをGPバスへ
エコーする機能
■ Am5x86 CPUの内蔵キャッシュ・コントローラのディセーブル機能、キャッシュ・ライト・ポリシーの
制御、キャッシュ不可のメモリ領域の設定機能
■ Am5x86 CPUの内部コアのクロック・スピードの制御
■ SDRAMリード・バッファとライト・バッファのディセーブル機能
■ 書込み禁止メモリ領域への不当なメモリ書込みが行われた時のAm5x86への割込み機能、
または
データ・メモリから命令のフェッチが行われ時のAm5x86への例外発生機能
■ リセット・イベントのソースが検出可能
■ テストのために、Error Correcting Code (ECC)エラーをトレース可能
■ ECCシンドローム・コードのオーバーライド機能
24.2
システム設計
Table 24-1に示すように、ÉlanSC520マイクロコントローラがシステム・テスト・モード(デフォルト)ま
たはライト・バッファ・テスト・モードに設定されているかによって、ÉlanSC520マイクロコントローラ
3本のデバッグ・ピンはCF_DRAM、DATASTRB、そしてCF_ROM_GPCS、
またはWBMSTR2-WBMSTR0
として動作します。
これらの3本のピンに関連しているCFG2-CFG0のピンストラップ機能は、PWRGOODのアサート結
果によってのみサンプルされ、
これらのピンは他の機能に影響を与えないので、
この表には載せてい
ません。イネーブルされている時には、Table 24-1に示すマルチプレクスされている信号は、同じピ
ンを使用している機能をディセーブルまたは変更します。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
24-1
システム・テストとデバッギング
Table 24-1
24.2.1
多重化されたシステム・テスト/デバッギング信号
Default Signal
Alternate Function Control Bit
CF_ROM_GPCS
WBMSTR0
DATASTRB
WBMSTR1
CF_DRAM
WBMSTR2
Register
WB_TST_ENB SDRAM Control (DRCCTL) register
(MMCR offset 10h)
負荷
ロジック・アナライザがÉlanSC520マイクロコントローラのピンに接続されている場合、それは、例え
ばSDRAMインタフェースのように、
クリティカルなバス上で考慮しなくてはならない追加の負荷とな
ります。SDRAMクロックあるいはPCI バスクロックに接続するときには、細心の注意が必要です。外
部クロック・ドライバがシステム回路基板で使われている場合は、それは使われていないか、負荷が軽
いクロック・ドライバの出力に接続するのが最適です。
24.3
レジスタ
Table 24-2に、
システム・レベル・デバッギング機能をコントロールするために使われる、
メモリ・マッ
プされたレジスタを示します。
Table 24-2
メモリ・マップされたシステム・テスト/デバッギング・レジスタ
Register
Mnemonic
MMCR
Offset
Address
Am5x86 CPU Control
CPUCTL
02h
CPU cache mode select (write-through or writeback), CPU clock speed
SDRAM Control
DRCCTL
10h
System test mode (CF_DRAM, DATASTRB, and
CF_ROM_GPCS), write buffer test mode
(WBMSTR2ñWBMSTR0) enable
ECC Check Code Test
ECCCKTEST
23h
ECC check code override for test and error
handler development
ECC Single-Bit Error Address ECCSBAD
24h
Physical address of the location in SDRAM that
caused a single-bit ECC error
ECC Multi-Bit Error Address
ECCMBADD
28h
Physical address of the location in SDRAM that
caused a multi-bit ECC error
SDRAM Buffer Control
DBCTL
40h
Write buffer functions: write buffer enable, readahead enable, write buffer watermark, write
buffer flush.
System Arbiter Control
SYSARBCTL
70h
System arbitration concurrency mode enable
Address Decode Control
ADDDECCTL
80h
Write-protect violation interrupt enable
Programmable Address
Region x
PAR0–PAR15
88–C4h
Set noncacheable, write-protected, and nonexecutable memory regions
GP Echo Mode
GPECHO
C00h
Echo mode enable for monitoring integrated
peripheral accesses on GP bus
Reset Configuration
RESCFG
D72h
AMDebug mode enable
24-2
Function
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
システム・テストとデバッギング
Table 24-2
メモリ・マップされたシステム・テスト/デバッグ・レジスタ(続き)
Register
Mnemonic
MMCR
Offset
Address
Reset Status
RESSTA
D74h
24.4
Function
Reset source status: SCP reset, AMDebug hard
reset detect, AMDebug system reset, watchdog
timer time-out, CPU shutdown (soft reset),
PRGRESET pin, and PWRGOOD pin
オペレーション
ÉlanSC520マイクロコントローラは、ハードウェアとソフトウェアの両方のシステム・レベルのデバッ
ギングをラボ環境で行うのに役立ついくつかの機能を提供します。これらの機能はインサーキット・エ
ミュレーション・システムと一緒に使うことができますが、
デバッギング作業の一部を簡単にするため
にこの機能を単独で使うこともできます。ほとんどの機能は、
システム・トランザクション情報をキャ
プチャするために、
ロジック・アナライザと一緒に使われます。この独特なシステム・レベルのデバッギ
ング機能は、
この章の別のセクションに記述されています。
この3ピンのデバッギング・インタフェースはÉlanSC520マイクロコントローラにおいて特に有用な機
能です。このインタフェースは2つの異なるモードで動作します。
■ システム・テスト・モード
■ ライト・バッファ・テスト・モード
24.4.1
システム・テスト・モード
システム・テスト・モードが3ピン・インタフェースの主要な用途で、
これらのピンにロジック・アナライ
ザや外部のインサーキット・エミュレーション・システム等のハードウェアを接続して、
現在のAm5x86
CPUサイクルについての重要な情報を得ることができます。
システム・テスト・モードは主に、SDRAMやROM/FlashまたはGPバス・インタフェース上のAm5x86
CPU 命令のフェッチと通常のメモリ・リード・サイクルとを区別するために使われます。ある信号
(DATASTRB)はSDRAMデータ・バス上のデータが有効であるかを識別するために提供されていま
す。この信号は主に、
このインタフェースをモニタしてSDRAMのデータをキャプチャするために、
イ
ンサーキット・エミュレーション・ツールによって使われます。
システム・テスト・モードはSDRAM Control (DRCCTL) レジスタ (MMCR offset 10h) の
WB_TST_ENBビットをクリアすることによってイネーブルされます。システム・テスト・モードは
ÉlanSC520マイクロコントローラのデフォルトのテスト・モードです。マルチプレクスされているデ
バッギング信号の動作は24.4.1.1で説明されています。
24.4.1.1
24.4.1.1.1
システム・テスト・モードのピン機能
CF_DRAM
SDRAMのリード・サイクル中は、CF_DRAM信号が命令フェッチのステータスを提供します。
■ 現サイクルでDATASTRBがアクティブで、
この信号がローの時は、現SDRAMのリード・サイクル
はCPUが要求したCPU命令のフェッチ、
またはCPUが要求した命令フェッチによって開始された
リード・プリフェッチです。
■ この信号がハイの時は、SDRAMリードが命令フェッチではなく、
このサイクルを開始させたのは
プリフェッチである、
ないにかかわらず、
CPU、PCIマスタ、
またはGP-DMAコントローラのいずれ
かになります。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
24-3
システム・テストとデバッギング
SDRAMのライト・サイクルでは、CF_DRAM信号はデータのソースを示します。ソースとしてはGPDMAコントローラ、PCI バス・マスタ、またはCPUのいずれかです。
または
■ この信号がハイの時は、現SDRAMライト・サイクルを要求したのは、GP-DMAによるか、
PCI バス・マスタ(CPUである可能性もあります)であることを示します。
■ ローの時は、
このライト・サイクルを要求したバス・マスタはCPUだけしかありえません。
24.4.1.1.2
DATASTRB
DATASTRB信号はプログラムされているSDRAMタイミングに影響されることなく、外部のインサー
キット・エミュレーション・システムがSDRAMインタフェースからデータをラッチするために便利です。
■ ローの時は、SDRAMデータ・バス上のデータは有効です。
■ ハイの時は、CLKMEMIN信号の次の立ち上がりエッジでSDRAMデータ・バス上のデータをラッ
チすることができます。
24.4.1.1.3
CF_ROM_GPCS
CF_ROM_GPCS信号は、ROM/FlashサイクルのROMRD信号のローからハイへの立ち上がり、
また
はGPCS7-GPCS0サイクルでGPMEMRDのローからハイへの立ち上がりでサンプルすることができ
ます。
■ GPMEMRDまたはROMRDがアサートされている時のみ、
CF_ROM_GPCD信号をサンプルする
ようにします。
■ これらの条件でローの場合、
この信号は、CPUがROM(GPバスまたはSDRAMインタフェースか
ら)またはGP バス・メモリ・デバイスから命令のフェッチを行っていることを示しています。
24.4.1.2
システム・テスト・モード・インタフェースを使う
システム・テスト・モード・インタフェースは、Am5x86 CPUのSDRAMとGPバス・インタフェース上の
活動をトレースするのに便利です。
トレースするのは、Am5x86 CPUがイニシエータの時、SDRAM
リードやライトのサイクル中にデータが有効である時、
命令のフェッチとデータのアクセスとを区別す
る時などが含まれます。これを行うには、BA1-BA0とMA12-MA0のSDRAMアドレス・バスをデマル
チプレクスして完全な28ビット・アドレスを生成する必要があります。さらに、
デバイス・サイズやシン
メトリーをSDRAMのコントローラ・コンフィギュレーション・レジスタの一部にプログラミングするた
めの知識が必要です。このモードでは、WBMSTR1ピンにデータ・ストローブが用意されているので、
SDRAMタイミングをプログラムするための詳細な知識は不要です。SDRAMサイクルのタイミング
とアドレスのマルチプレクスに関しての詳細は第10章「 SDRAMコントローラ」を参照して下さい。
CF_DRAM信号とCF_ROM_GPCS信号によって外部でSDRAM、ROM/Flash、
またはどのGPバス・
メモリ・デバイスかの区別ができます。SDRAMコントローラのリード・バッファからのプリフェッチも検
出することができます。
24.4.1.3
システム・テスト・モードでのSDRAMライト・サイクル
システム・テスト・モードでのSDRAMライト・サイクルのページ・ヒットのタイミングをFigure 24-1に
示します。ロジック・アナライザまたは外部のインサ ーキット・エミュレーション・システムが、
CF_DRAM 、B A 1 - B A 0 、M A 1 2 - M A 0 、そして M D 3 1 - M D 0 の信号をキャプチャするためには、
DATASTRB信号を使って情報をラッチする適切なタイミングを得ることができます。この情報は、
DATASTRBがアクティブのときに、CLKMEMINの立ち上がりエッジでキャプチャする必要がありま
す。ECCをイネーブルしたダブル・ワード以下のライトで起こるリード・モディファイ・ライト・サイクル
のリード部分ではDATASTRBはアサートされないことに注意して下さい。
24-4
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
システム・テストとデバッギング
Figure 24-1
システム・テスト・モードでのSDRAMライト・サイクルのタイミング(ページ・ヒット)
CLKMEMIN
BA1–BA0
MA12–MA0
Col
Command
Nop
Wr
MD31–MD0
Nop
a
DATASTRB
CF_DRAM
Valid on this clock edge
24.4.1.4
システム・テスト・モードでのSDRAMリード・サイクル
システム・テスト・モードでのSDRAMリード・サイクル (CAS Latencyが2) のページ・ミスのタイミン
グをFigure 24-2に示します。ロジック・アナライザまたは外部のインサーキット・エミュレーション・シ
BA1-BA0、MA12-MA0、そしてMD31-MD0の信号をキャプチャするためには、
ステムが、
CF_DRAM、
DATASTRB信号を使って情報をラッチする適切なタイミングを得ることができます。この情報は、
DATASTRBがアクティブのときに、CLKMEMINの立ち上がりエッジでキャプチャする必要がありま
す。CAS latencyタイミングはSDRAM Timing Control (DRCTMCTL) レジスタ (MMCR offset
12h)で設定されます。要求しているマスタによって生成された物理アドレスを調べるためにBA1BA0とMA12-MA0バスを使います。
Figure 24-2
システム・テスト・モードでのSDRAMリード・サイクルのタイミング(ページ・ミス)
CLKMEMIN
BA1–BA0
MA12–MA0
Row
Command
Act
MD31–MD0
Col
Nop
Rd
Nop
Nop
a
b
c
d
DATASTRB
CF_DRAM
Notes:
CAS latency is 2.
24.4.1.5
ROMインタフェースでトランザクションをトレースする
命令フェッチとメモリ・リード・サイクルを区別するためには、ROMインタフェースでトランザクション
をトレースするのにCF_ROM_GPCS 信号のみで十分です。ROM アクセスのイニシエータには
Am5x86 CPUだけがなれます。アドレス・バスはマルチプレクスされていないので、ROM/Flashサイ
クル中、
アドレスはGPA25-GPA0ピンから直接読むことができます。ROMのデータ・バスはSDRAM
インタフェース・データ・ピン (MD31-MD0) 、
またはGPバス・インタフェース・データ・ピン (GPD15-
GP0) のどちらかに接続されるので、ROMアレイのシステム構成は事前にわかっています。また、各
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
24-5
システム・テストとデバッギング
ROMのチップ・セレクトに接続されているデバイスや、ROM controller configurationレジスタの設
定によって、ROMサイクルのタイミングは変化します。次に示すピンをモニタしてROMインタフェー
スのトランザクションをトレースすることができます。
■ CF_ROM_GPCS、命令フェッチを区別する必要がある場合
■ GPA25-GPD0、ROMのマルチプレクスされていないアドレス・バス
またはMD31-MD0、SDRAMデータ・バス、ROM controller
■ GPD15-GPD0、ROMデータ・バス、
configurationレジスタの設定による
■ ROMチップ・セレクトのBOOTCS、そしてオプションとしてROMCS1とROMCS2
■ ROMRD、FLASHWRコントロール信号
アドレスとデータ・ピンが有効である適切なタイミングを検出するためのROMインタフェース信号と
そのタイミングの詳細は、第12章の「 ROM/Flashコントローラ」を参照して下さい。
24.4.1.6
GPバス・インタフェース上のトランザクションをトレースする
命令フェッチとメモリ・リード・サイクルとを区別する必要がある場合は、GPバス・インタフェースのト
ランザクションをキャプチャするにはCF_ROM_GPCS信号だけで十分です。しかし、GP-DMAトラン
ザクションとAm5x86 CPUサイクルとをフィルタするには、
さらにいくつかの信号の条件が必要です。
PCI バス・マスタがGP バス上にサイクルをイニシエートすることは許されません。GPバスのサイク
ルをトレースするのに必要な信号は、外部に接続されているスレーブ・デバイスの種類に依存します。
GPバスの性能の制限により、
このバスからの命令の実行をすることは避けるよう強く推奨します。
GP-DMAイニシエータがGPバスに接続されている場合は、GP-DMAサイクル中にアドレスのデコー
ドが行われるのを防ぐために、GPAEN信号はGPバス・デバイスによってモニタされていなければな
りません。GPAEN信号がアクティブ(ハイ)の時、GPバス・コントロール信号がアサートされている場
合、GP-DMAイニシエータのリードまたはライトをコントロールしていて、GPA25-GPA0ピンのアド
レスは無効です。内部でエコーされているサイクルの間、
GPバス・デバイスによってアドレスがデコー
ドされるのを防止するために、GPAENはアクティブの状態にドライブされています。
GPバスは、いくつかの異なるサイクルの種類、
ダイナミック・バス・サイジング、そしてタイミング・コン
トロールをサポートしているので、GPバスのトランザクションを適切にトレースするにはいくつもの
信号が必要です。このようなトレースを行うために考慮すべき各種信号を次のリストにまとめます。
■ CF_ROM_GPCS、命令フェッチを識別する必要がある場合
■ GPA25-GPA0、マルチプレクスされていないアドレス・バス
■ 8ビット・サイクルの場合はGPD7-GPD0 のデータ・バス、16ビット・サイクルの場合はGPD15-
GPD0
■ ROMCS1またはROMCS2、
またはPIOピンにマルチプレクスされた、GPバス・チップ・セレクト
■ GPALE、GPIORD/GPMEMRD、GPIOWR/GPMEMWR、GPAENコントロール信号
■ GP バス・サイクルをダイナミックに延ばすデバイスのためにGPRDY信号
■ ターゲット・デバイスのサイクルのバス幅をダイナミックに検出するデバイスのためにGPIOCS16
とGPMEMCS16
サイクルのタイミングの詳細については第13章「汎用バス(GP-BUS)コントローラ」を参照して下さ
い。
24.4.2
ライト・バッファ・テスト・モード
ライト・バッファ・テスト・モードは、
どのバスのオーナー(Am5x86 CPU、PCI バス・マスタ、
またはGP-
DMAコントローラ)が現在のSDRAMのライト・サイクルを行ったかを示し、そしてどのバスのオーナー
24-6
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
システム・テストとデバッギング
が現在のSDRAMのリード・サイクルを要求しているか示します。
Élan SC520マイクロコントローラはメモリ性能を改善するために32エントリのFirst-In-First-Out
(FIFO)ライト・バッファを内蔵しています。このライト・バッファはライト・マージとライト・コラップスも
サポートしています。したがって、
各32ビットのエントリとエントリ内の各バイトは、Am5x86 CPU、PCI
バス・マスタ、
またはGP-DMAコントローラによって書込むことができます。例えば、
ライト・バッファ
のエントリのバイト0とバイト1はAm5x86 CPUによって書込み、同じエントリのバイト2はPCIバス・マ
スタによって書込み、そして同じエントリのバイト3はGP-DMAコントローラによって書込むことがで
きます。
これによりSDRAMのサブシステムの性能は改善されますが、SDRAMのライト・サイクルのソースを
通常のSDRAMインタフェースからだけでは判断できないため、ロジック・アナライザを使ってシステ
ムのデバッグを行う時には混乱をきたします。(ライト・バッファについての詳細な情報については第
11章「ライト・バッファとリード・バッファ」を参照して下さい。)
SDRAM Control (DRCCTL) レジスタ (MMCR offset 10h)のWB_TST_ENBビットによってライト・
バッファ・テスト・モードがイネーブルされた場合、Am5x86 CPU、PCI バス・マスタ、GP-DMAコント
ローラ、またはこれらの組み合わせのどれがライト・バッファの特定のエントリに書込んだかは、
WBMSTR2-WBMSTR0ピンによって示されます。
24.4.2.1
ライト・バッファ・テスト・モード・インタフェースを使う
ライト・バッファのデバッグのためにWBMSTR2-WBMSTR0ピンをサンプルするためには、SDRAMイ
ンタフェースでいつ書込みサイクルが起きているかを検出するためにSDRAMインタフェース信号を
外部でデコードする必要があります。各サイクルについて有用な情報を得るためには、BA1-BA0と
MA12-MA0のSDRAMアドレス・バスをデマルチプレクスして28ビットのメモリ・アドレスを生成し、
SRASx、SCASx、SWExのコマンド信号をサンプルして、読出し、書込みリフレッシュ・サイクル、その
他のサイクルを区別しなくてはなりません。
Figure 24-3にSDRAMのライト・サイクルのWBMSTR2-WBMSTR0のタイミングを示します。
トレー
ス情報は、
コマンドがSDRAMに与えられるクロック・エッジの1クロック前に入手可能になります。こ
れにより、SDRAMコマンドがサンプルされるクロック・エッジでトレース情報をキャプチャするために
十分なセットアップが保証されます。WBMSTR2-WBMSTR0トレース信号の情報を正しい時間とサ
イクルのタイプでキャプチャするのは、モニタしている機器が行います。これは、SDRAM のインタ
フェースピンをモニタし、
プログラムされているSDRAMのタイミングを検出するためにSDRAMサイ
クルのタイプをデコードすることによって行います。ÉlanSC520マイクロコントローラのアドレス・マ
ルチプレクス方式とSDRAMのタイミングと信号についての詳細は第10章「 SDRAMコントローラ」
を参照して下さい。
SDRAMリード・サイクル中にデータが有効な時を検出するには、CASの遅延時間等のSDRAMタイミ
ングの設定の知識が必要です。24.4.2.3「ライト・バッファ・テスト・モードのSDRAMリード・サイクル」
を参照して下さい。書込みでは、書込みを行う時にデータが入手可能です。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
24-7
システム・テストとデバッギング
24.4.2.2
ライト・バッファ・テスト・モードのSDRAMライト・サイクル
Table 24-3にSDRAMの書込み動作時のWBMSTR2-WBMSTR0のデコードを記述します。
Table 24-3
ライト・バッファ・ライト・サイクルにおけるWBMSTR2-WBMSTR0のピン定義
WBMSTR2 WBMSTR0 Pins
Am5x86 CPU
PCI
Bus Master
GP-DMA
Controller
0
0
0
Reserved
0
0
1
GP-DMA contributed write data
0
1
0
PCI master contributed write data
0
1
1
PCI master and GP-DMA contributed write data
1
0
0
Am5x86 CPU contributed write data
1
0
1
Am5x86 CPU and GP-DMA contributed write data
1
1
0
Am5x86 CPU and PCI master contributed write
data
1
1
1
All masters contributed write data
Description
Figure 24-3に、ライト・バッファ・テスト・モード時のページ・ヒットが起きたSDRAMのライト・サイクル
のタイミング例を示します。WBMSTR2-WBMSTR0ピンをキャプチャするには、
ロジック・アナライザ
または外部のインサ ーキット・エミュレーション・システムが S D R A M コマンドをデコードし、
CLKMEMINの立ち上がりエッジでWBMSTR2-WBMSTR0ピンをラッチする必要があります。
Figure 24-3
ライト・バッファ・テスト・モードでのSDRAMライト・サイクルのタイミング(ページ・ヒット)
CLKMEMIN
BA1–BA0
MA12–MA0
Command
Wr
Nop
Nop
MD31–MD0
Sample WBMSTRx pins here
WBMSTR2–
WBMSTR0
24.4.2.3
ライト・バッファ・テスト・モードのSDRAMリード・サイクル
リード 動 作 時 に 、現 在 のリード・サ イクル はど の マ スタが 行って い るか を 検 出 す る た め に
WBMSTR2-WBMSTR0ピンを使うことができます。ライト・バッファ内のエントリに、
これらの複数の
ソースが書込むことができますが、読出すのは1つのイニシエータしかできません。
ライト・バッファ・テスト・モード時のSDRAMのリード動作中の WBMSTR2-WBMSTR0ピンについて
Table 24-4に記述します。リード・モディファイ・ライトのリード部分で、WBMSTR2-WBMST0信号の
24-8
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
システム・テストとデバッギング
1つ以上がアクティブのSDRAMのリード・サイクルが起こることがあることに注意して下さい。この場
合、
どのバスのイニシエータがSDRAMに書込みを行っているライト・バッファのエントリに関連してい
るかをWBMSTR2-WBMSTR0ピンが示します。
Table 24-4
SDRAMリード・サイクルにおけるWBMSTR2-WBMSTR0のピン定義
WBMSTR2 WBMSTR0 Pins
PCI
Bus Master
Am5x86 CPU
0
0
GP-DMA
Controller
0
Description
Read prefetch cycle (No master requested
read cycle)
0
0
1
GP-DMA is current read master
0
1
0
PCI master is current read master
0
1
1
Reserved
1
0
0
Am5x86 CPU is current read master
1
0
1
Reserved
1
1
0
Reserved
1
1
1
Reserved
Figure 24-4に、ライト・バッファ・テスト・モード時のページ・ミスを起したSDRAMのリード・サイクル
(CASのレーテンシが2)のタイミングを示します。リード・サイクル時にWBMSTR2-WBMSTR0ピンを
キャプチャするには、
ロジック・アナライザまたは外部のインサーキット・エミュレーション・システムは、
SDRAMリード・コマンドをデコードし、適正なCASのレーテンシのタイミングになるまでWBMSTR2W B M S T R 0 ピンをラッチすることを遅延させる必要があります。W B M S T R 2 - W B M S T R 0 は
CLKMEMIN の立ち上がりエッジでキャプチャされます。CASレーテンシのタイミングはSDRAM
Timing Control (DRCTMCTL) レジスタ (MMCR offset 12h)で設定します。MA12-MA0とBA1リクエストを出しているマスタによって生成された物理アドレスを検出するために使う
BA0信号は、
ことができます。
Figure 24-4
ライト・バッファ・テスト・モードでのSDRAMリード・サイクルのタイミング(ページ・ミス)
CLKMEMIN
BA1–BA0
MA12–MA0
Command
MD31–MD0
WBMSTR2–
WBMSTR0
Row
Act
Col
Nop
Rd
Nop
Nop
a
b
c
d
CPU
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
24-9
システム・テストとデバッギング
24.4.3
ÉlanSC520マイクロコントローラのその他のデバッグ機能
24.4.3.1
非並列アービトレーション・モード
ÉlanSC520マイクロコントローラのシステム・アービトレーションは、Am5x86 CPUアービタと並列
モードの動作が可能なPCI バス・アービタによって構成されています。並列アービトレーション・モー
ドでは、Am5x86 CPUバスとPCI バスのトランザクションは同時に行えます。例えば、Am5x86 CPU
のトランザクションとPCIバス同志のトランザクションが同時に行えます。このモードの利点は、2つの
バスを最適に利用することです。しかしながら、同時に動作している時にバスの動作をトレースする
のは難しいため、
システムのデバッグを行おうとしている時には混乱を起します。さらに、Am5x 86
CPUと外部のPCI バス・マスタの両方がアクティブで、並列アービトレーション・モード時には、いくつ
かのシステムのバグは不適切な設定に起因することがあります。例えば、
Am5x86 CPUが、PCIバス・
マスタ動作に影響を与えるアドレス・デコード・レジスタなどのコンフィギュレーション・レジスタを変
更している場合、
これが起こる可能性があります。この場合、非並列アービトレーション・モードを使う
ことによってこれらの問題をトレースすることを支援できます。
システムを初期化した際は、
ÉlanSC520マイクロコントローラはSystem Arbiter Control (SYSARBCTL)
レジスタ (MMCR offset 70h) のCNCR_MODE_ENBビットがセットされるまで、
非並列アービトレーショ
ン・モードで立ち上がります。デバッグを行うには、
このステップを行わずに、
非並列モードの状態にして
おく方が便利です。詳細については第8章「システム・アービトレーション」を参照して下さい。
24.4.3.2
24.4.3.3
GPバス上に内蔵の周辺デバイス・アクセスをエコーする
Am5x86 CPUからÉlanSC520マイクロコントローラの内蔵ペリフェラルへの全てのアクセスは外部
からは見えません。しかし、
オプションとしてGPバス・エコー・モードを使ってGPバスで直接モニタす
ることができます。必要に応じて、
ロジック・アナライザをGPバスに接続してモニタし、そしてトランザ
クションをデバッグすることができます。GP Echo Mode (GPECHO) レジスタ (MMCR offset C00h)
の GP_ECHO_ENBビットがセットされている時、GP-DMAコントローラ、RTC 、内蔵タイマ、PIC 、
UART、そしてPIOへのアクセスはGPバスを通して外部にエコーされます。読出しの際は、ペリフェラ
ルからのデータはGP バスのデータ信号であるGPD15-GPD0にもドライブされます。
追加のシステム・デバッグ機能のまとめ
システムのデバッグのために特に用意されていないÉlanSC520マイクロコントローラの機能も、デ
バッグ時に有用なものがいくつかあります。これらの機能は、他の章で説明されていますが、参考の
ために次に概要を述べます。
■ ÉlanSC520マイクロコントローラは、Am5x86 CPUのキャッシュ書込みポリシーをAm5x86 CPU
Control (CPUCTL) レジスタ (MMCR offset 02h) でコントロールし、そしてCPUのmachine
status (CR0)レジスタを使ってキャッシュをディセーブルすることができます。キャッシュのコヒ
レンシが問題であったり、
またはAm5x86のCPUメモリ・サイクルが外部から見る必要があるよう
なシステムの問題をデバッグする時に、
これは有用になります。キャッシュ・コントロールについて
の詳細は第7章「 Am5x86 CPU 」を参照して下さい。
Am5x86 CPU Control(CPUCTL)レジスタでAm5x86のCPUの
■ ÉlanSC520マイクロコントローラは、
内部のクロック・スピードをダイナミックにコントロールする機能を持っています。これは主に熱の管
理を行うためのものですが、
デバッグするためにクロック・スピードを調整することは有用である場合
があります。クロック・スピードの調整についての詳細は第7章「Am5x86O CPU」を参照して下さい。
■ SDRAMコントローラのライト・バッファとリード・バッファは、SDRAM Buffer Control (DBCTL)
レジスタ (MMCR offset 40h)のWB_ENBビットをリセットすることによってディセーブルするこ
とができます。これがシステムのデバッグ時に役立つのは、バスの活動をトレースことを困難に
するSDRAMへの書込みのキュー(待ち列)と、
SDRAMインタフェースでのプリフェッチを防止す
るためです。これらの機能をディセーブルするための詳細は第11章「ライト・バッファとリード・
24-10
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
システム・テストとデバッギング
バッファ」を参照して下さい。
■ ÉlanSC520マイクロコントローラのアドレス・デコード・ロジックは、
書込み禁止のメモリ領域の違
反通知を出すことができます。これは書込み禁止になっているメモリ領域を違法に一部分変更し
ようとするソフトウェア・タスクのデバッグを行うのに便利です。この機能をイネーブルするため
の詳細は第4章の「システム・アドレス・マッピング」を参照して下さい。
■ ÉlanSC520マイクロコントローラのアドレス・デコード・ロジックは、命令実行禁止のアドレス領域
に対する違反も通知することができます。この機能は、
データのみと指定されているメモリ領域
から、命令を実行しようとするソフトウェア・タスクをデバッグするのに便利です。この機能をイ
ネーブルするための詳細は第4章の「システム・アドレス・マッピング」を参照して下さい。
■ Reset Configuration (RESCFG) レジスタ (MMCR offset D72h)のICE_ON_RSTビットがセッ
トされている場合は、
リセットされるたびに(リセットのシーケンスの直後 )Am5 x 86 CPU は
AMDebugモードに入ります。リセットの原因を識別するために、デバッグを行うツールはReset
Status (RESSTA) レジスタ (MMCR offset D74h)を読出します。
■ システムのデバッグ時にも便利な、
ソフトウェア割込みを強制的に起したり、
特定の割込みをマス
クするような、
多くの機能をプログラマブル・インタラプト・コントローラ (PIC)はサポードします。
システムの割込みを設定するための詳細については、第15章「プログラマブル・インタラプト・コ
ントローラ」を参照して下さい。
■ ECCシングル・ビットやマルチ・ビット・エラーを扱うソフトウェアの開発を支援するために、ECC
Check Code Test (ECCCKTEST) レジスタ (MMCR offset 23h)が提供されています。このレ
ジスタを使って、後続するSDRAM書込みアクセスに対して、自動的に生成されるECCチェック・
コードをユーザが指定したチェック・コードに強制的に置き換えることができます。
24.4.4
ソフトウェアの考慮
あるアドレス領域のキャッシュに関するアトリビュートが、(PARレジスタをプログラムして)どのような
メモリ領域に対してもキャッシュ可能からキャッシュ不可に変更したり、
キャッシュ方式がライト・バック
からライト・スルーに変更されたりした場合は、キャッシュは常にフラッシュすべきです。
書込み禁止違反による割込みや、
Address Decode Control (ADDDECCTL) レジスタ(MMCR offset
80h) の中の命令実行禁止領域のアトリビュートをイネーブルする場合は、適切な割込みサービス・
ルーチンと例外処理のソフトウェアを用意しておかなくてはなりません。書込み禁止に対しての違反
が起きた場合は、違反したアドレスは32ビットのレジスタにラッチされ、それはそのレジスタがソフト
ウェアによってクリアされるまで保持されます。そのレジスタが読まれる前に起こる他の違反は見る
ことができないことに注意して下さい。
PARレジスタのアトリビュートによって書込み禁止とマークされた全てのメモリ領域に対して、Am5x86
CPU、全てのPCIバス・マスタ、GP-DMAコントローラが書込みをしようとすると、書込み禁止違反が起
こります。これが起こると、
そのサイクルは常に書込み禁止サイクル(SDQM3-SDQM0ピンが強制的に
インアクティブ状態)としてSDRAMに対して行われ、
元のデータは捨てられます。
24.4.5
遅延
この章で記述してあるデバッグの過程を支援するための機能は、
システムの性能に影響を与える可
能性があり、
この機能をイネーブルあるいはディセーブルする際にはこれについて考慮しておく必要
があります。機能とそれが遅延に対しての直接影響の簡潔なリストを次に示します。
■ 外部でデータをキャプチャするためにSDRAMのタイミングが遅いスピードにプログラミングさ
れていない限り、
ライト・バッファとシステム・テスト・モードは性能に影響を与えません。
■ あらゆるトランザクションが開始される前には、両方のバスのオーナーシップについての交渉が
必要なため、非同時のアービトレーションはPCI バスの遅延、Am5 x86 CPU の遅延、そしてGP-
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
24-11
システム・テストとデバッギング
DMAコントローラの遅延に影響を与えます。PCI バス・マスタが無いシステムや、GP-DMAイニ
シエータが非常に少ない場合は、バスの取得が瞬時に行われるため、
システムには影響を及ぼし
ません。
■ Am5x86 CPUの内部キャッシュはシステム性能に大きな影響を与えます。
– ディセーブルされていると、全てのAm5x86 CPUのオペレーションについて外部バス・サイク
ルが必要となり、PCI バス・マスタやGP-DMAイニシエータに与えられるバスのバンド幅がか
なり少なくなります。
– ライト・スルーのキャッシュ・モードに設定されている場合、全ての Am5x86 CPUの書込みサ
イクルはAm5x86 CPU バスで行われますが、ライト・バックのキャッシュ・モードでは、キャッ
シュ・ミスまたはライト・バック/コピー・バックのサイクルが起こった場合のみAm5x86 CPUバ
スのサイクルが発生します。ライト・スルーのキャッシュ・モードの方がPCIバス・マスタやGPDMAイニシエータから奪うバンド幅はかなり小さいですが、キャッシュがライト・バック・モード
で動作している時に比べるとかなり多くなります。
– PARレジスタでメモリ領域がキャッシュ不可とマークされている場合、キャッシュのライト・バッ
クについてのオーバーヘッドは軽減され、全てのシステム・バスのオーナーに対して遅延を減
少します。
■ Am5x86 CPUが内部キャッシュから実行すると、Am5x86 CPUコアの内部のクロック・スピード
はAm5x86 CPUの総合的な性能に影響を与えます。キャッシュがディセーブルされていると、全
てのオペレーションは33MHzの固定スピードの外部バス・サイクルが必要となるため、
高いコア・
スピードの影響はかなり少なくなります。
■ 読出しと書込みの順番や、PCIバス・マスタの数や、
システム上のGP-DMAの活動量によっては、
ライト・バッファとリード・バッファをディセーブルすると性能に大きな影響を与えることがありま
す。多くに依存するため、
これらのバッファが各システムに与える正確な影響を予測することは困
難です。しかし、条件によってはシステム性能に顕著な変化を及ぼすことがあることを認識して
かなり異なる
おく必要があります。システム・バスの活動プロファイルは2つのケースの場合で、
ことがあるため、
システムのデバッグの仕方を複雑にします。
■ 書込み禁止違反(あるいはマスク可能な他の割込み)を通知するための割込みをイネーブルする
と、
コンテキスト・スイッチが起こり、
この割込みを処理する前に、Interrupt Descriptor Tableの
リロード、そして現在のAm5x86 CPU の状態をセーブする動作が行われます。書込み保護違反
はシステム開発の初期にしか通常は発生しないので、
これは長期的な問題にはなりません。
■ GP バスのエコーがイネーブルされている場合、内蔵のペリフェラルのアクセス時間は、外部GP
バスでプログラムされているタイミングによって決まります。
24.5
初期化
システム・リセット後のÉlanSC520マイクロコントローラのデバッグ機能の状態は次のとおりです。
■ WBMSTR2-WBMSTR0ピンはシステム・テスト・モードにデフォルトでなり、それぞれCF_DRAM、
DATASTRB、そしてCF_ROM_GPCSピンの機能を持ちます。
■ システム・アービトレーションは非並列のアービトレーション・モードにデフォルトでなります。
■ 内部の周辺デバイスへのアクセスのエコーはディセーブルされます。
■ Am5x86 CPUのキャッシュはディセーブルされ、
ライト・バック・キャッシュ・モードに設定されます。
■ Am5x86 CPUのデフォルトのクロック・スピードは100 MHzです。
■ ライト・バッファとリード・バッファはディセーブルされます。
■ 書込み禁止違反割込みはディセーブルされ、Programmable Address Region (PAR) レジス
タはクリアされます。したがって、書込み禁止や命令実行不可の領域は定義されていません。
24-12
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
第25章
バウンダリ・スキャン・テスト・インタフェース
25.1
概要
ÉlanSC520マイクロコントローラが提供するテストおよびデバッグの機能はIEEE Standard Test
Access Port (TAP) およびJoint Test Action Group (JTAG) (IEEE Std 1149.1-1990)に従ってい
ます。テスト回路はテストを行い、そして次の保証をします。
■ コンポーネントが正確に機能する
■ 各部品間の接続が正常
■ 各部品がプリント基板上で正常に正確に相互に動作する
25.2
ブロック図
Figure 25-1にÉlanSC520マイクロコントローラのBoundary Scanレジスタのブロック図を示します。
Figure 25-1
バウンダリ・スキャン・レジスタのロジック構造
Élan™SC520 Microcontroller
Boundary Scan Register
BSR
JTAG_TMS
JTAG_TRST
TAP
Control
Controller
JTAG_TCK
B/S
cell
On-Chip
Input pins
B/S
cell
System
Logic
B/S
cell
Bidirectional
pins
B/S
cell
B/S
cell
JTAG_TDI
Output pins
JTAG_TDO
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
25-1
バウンダリ・スキャン・テスト・インタフェース
25.3
レジスタ
ÉlanSC520マイクロコントローラには、4個のテスト・データ・レジスタ、すなわちBypassレジスタ、
Boundary Scanレジスタ、Device Identificationレジスタ、Serial Debug Port Dataレジスタが含
まれています。5個目のレジスタであるInstructionレジスタは実行するテストとアクセスするデータ・
レジスタを指定するために使われます。
BypassレジスタとBoundary ScanレジスタはJTAG_TDIとJTAG_TDOにシリアルに接続されてい
て、JTAG_TDIはテスト・データ・レジスタの最上位ビットに、そしてJTAG_TDOは最下位ビットに接続
されています。データはテスト・クロック(JTAG_TCK)の毎立ち上がりエッジに1ステージ(レジスタ内
のビット位置)シフトされます。Table 25-1に各レジスタの説明を掲載します。Serial Debug Port Data
レジスタはAMDebug ユーティリティの一部で、物理的にはAMDebug ロジックの中にあります。
AMDebug™インタフェースに関しての詳細は第26章「 AMDebugテクノロジ」を参照して下さい。
Table 25-1
チップ・テスト/デバッギング・レジスタ
Register
Mnemonic
Function
Boundary Scan
BSR
A single shift register path containing the boundary scan cells that are
connected to all input and output pins of the ÉlanSC520 microcontroller.
Figure 25-1 shows the logical structure of the Boundary Scan register. Data
is transferred without inversion from JTAG_TDI to JTAG_TDO through the
Boundary Scan register during scanning. The Boundary Scan register is
affected by the EXTEST and SAMPLE/PRELOAD instructions.
Bypass
BPR
Provides a path from JTAG_TDI to JTAG_TDO with one clock cycle
latency.Used to bypass the chip completely while testing boards containing
many chips.
Device Identification
DID
A 32-bit register that contains AMD's ID code for the ÉlanSC520
microcontroller.
Serial Debug Port Data SDPD
A 38 bit register that serves as a command/status/data interface with the
Am5x86 CPU processor. Figure 25-2 on page 25-13 shows the format.
Instruction
Determines the test that has to be executed and the data register to access.
25.4
IR
オペレーション
ÉlanSC520マイクロコントローラのテストとデバッギング機能は次の要素を持っています。
■ ピン−−JTAG_TDI, JTAG_TMS, JTAG_TDO, JTAG_TCK, JTAG_TRST。さらに、AMDebug
ユーティリティのためにCMDACK, BR/TC, STOP/TX, TRIG/TRACEという4本のピンがありま
す。
■ Instructionレジスタ(IR)−−命令コードは実行する特定のテストやデバッグ・オペレーション、そし
てアクセスするテスト・データ・レジスタを指定します。
■ Test Dataレジスタ−−Boundary Scan (BSR)レジスタ、Device Identification (DID) レジス
タ、Bypass (BPR) レジスタ、Serial Debug Port Data (SDPD) レジスタ。
■ Test Access Port (TAP)コントローラ−−ステート・マシンとコントロール・ロジックのインプリ
メンテーション。
Instructionレジスタとテスト・データ・レジスタは並列に接続された個別のシフト・レジスタの経路で、
それぞれTAP信号のJTAG_TDIとJTAG_TDOに接続されている共通のシリアル・データ入力と共通
なシリアル・データ出力を持っています。
25-2
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
バウンダリ・スキャン ・テスト・インタフェース
25.4.1
Instructionレジスタ
Instructionレジスタは、命令をデバイスにシリアルにシフトして入れる4ビットのレジスタです。命令は
実行するテストとアクセスするデータ・レジスタを決定します。最下位ビットがJTAG_TDO出力の最
も近くにあります。Test access port(TAP)コントローラがリセットされると、Instructionレジスタに
デフォルト命令のIDCODEがロードされます。
25.4.1.1
実装されている命令
ÉlanSC520マイクロコントローラはバウンダリ・スキャン命令の3種類、すなわちBYPASS、SAMPLE/
PRELOAD、EXTESTを全てサポートします。さらに追加命令IDCODE、HIGHZ、DEBUGもサポート
します。
Table 25-2に、ÉlanSC520マイクロコントローラでサポートされているtest access port(TAP)命
令を示します。
Table 25-2
テスト・アクセス・ポート命令セット
Instruction
EXTEST
0000
SAMPLE/PRELOAD
0001
IDCODE
0010
HIGHZ
0011
Reserved
0100
DEBUG
25.4.1.1.1
IR3–IR0
0101
Reserved
0110 1110
BYPASS
1111
EXTEST命令
命令コードは0000bです。EXTEST命令はデバイス・パッケージの外の回路、特に基板の配線のテス
トを可能にします。この命令は、各バウンダリ・スキャン・セルに対応している出力ピンに、マイクロコ
ントローラのBoundary Scanレジスタにロードされた値を出力することによって行います。そして、
対応するBoundary Scanレジスタにマイクロコントローラの入力ピンの値を取り込みます。Boundary Scanレジスタのコントロール設定位置にロードされた値に従って、I/Oピンは入力か出力に選択
されます。Boundary scanレジスタの入力ラッチにシフトされて入れられた値は、ÉlanSC520マイク
ロコントローラの内部のロジックによって使われることはありません。
注意:EXTEST命令を使った後、通常動作( バウンダリ・スキャンでない)の前に、ÉlanSC520マイクロコントローラの
状態を保証するために、ÉlanSC520マイクロコントローラをリセットすべきです。
25.4.1.1.2
SAMPLE/PRELOAD命令
命令コードは0001bです。SAMPLE/PRELOAD命令は2つの機能を持っています。
■ TAPコントローラがCapture-DR状態にあるとき、SAMPLE/PRELOAD命令で、
ÉlanSC520マイ
クロコントローラの通常動作に影響を与えないで、その通常動作の「スナップ写真」が撮れます。
この命令は、
マイクロコントローラが出力する値を、出力に対応しているBoundary Scanレジス
タにサンプルさせます。また、
マイクロコントローラに入力されている値を、入力に対応している
セルにサンプルさせます。入力と出力において、
サンプリングはJTAG_TCKの立ち上がりエッジ
に行われます。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
25-3
バウンダリ・スキャン・テスト・インタフェース
■ TAPコントローラがUpdate-DR状態にある時、
SAMPLE/PRELOAD命令はEXTEST命令を実行
することによって、基板に出力するためにデータをデバイスのピンにプリロードします。データは
Boundary ScanレジスタにJTAG_TCKの立ち下がりエッジにプリロードされます。
25.4.1.1.3
IDCODE命令
命令コードは0010bです。IDCODE命令は、JTAG_TDIとJTAG_TDOを接続するDevice Identificationレジスタを選択し、
これによってdevice identificationコードがJTAG_TDOからデバイスの外に
シフトして出力されます。Device Identificationレジスタは、JTAG_TDIからシフトして出力される
データによって変わることはないことに注意してください。
25.4.1.1.4
HIGHZ命令
命令コードは0011bです。HIGHZ命令は、JTAG_TDIとJTAG_TDOの間の Bypassレジスタを接続
します。この命令は全出力を強制的にハイ・インピーダンス状態にします。
25.4.1.1.5
BYPASS命令
命令コードは1111bです。BYPASS命令はJTAG_TDIまたはJTAG_TDOに接続されるBYPASSレジ
スタを選択しますが、
これによりデバイスのシフト量を1ビットに減らして、実質的にÉlanSC520マイ
クロコントローラのテスト・ロジックを回避します。
基板レベルのテスト・データ・パスの開放回路の欠陥によって、JTAG_TDI入力のプル・アップ抵抗に
よる命令スキャン・サイクルの後に、Bypassレジスタが選択されることに注意してください。これは
システム・ロジックの正常な動作にとって望ましくない干渉を妨ぐために行われます。この命令が実
行されているとき、命令レジスタはアクセスすることができます。これは、この命令の実行中は
Boundary Scanレジスタだけしか影響を受けないからです。
25.4.1.1.6
DEBUG命令
命令コードは0101です。DEBUG命令は、Am5x86 CPUプロセッサとのコマンド/ステータス/データ
のインタフェースの役をする38ビットの専用データ・レジスタをイネーブルします。DEBUG命令が命
令レジスタに書込まれると、
シリアル・デバッグ・シフタはJTAG TDI-TDOシリアル・インタフェースに
接続されます。TAPコントローラ・ステート・マシンのCapture-DR-Update-DRシーケンスを使って、
DEBUG命令とデータはシリアル・デバッグ・シフタにロードされたり、読出されたりします。
DEBUG命令をロードすることによって、AMDebugテクノロジの追加信号が、非常に正確な外部ブ
レークポイントのアサートを可能にし、JTAGシリアル・インタフェースのステータス・ポーリングを不
要にします。これらの信号はCMDACK、BR/TC、STOP/TX、
およびTRIG/TRACEです。
25.4.2
コンフィギュレーション情報
ÉlanSC520マイクロコントローラにはJTAG_TDIからJTAG_TDOまで、5つのスキャン・パスがあり
ます。
■ 命令パス
■ Bypassパス
■ Boundary Scanレジスタを通しての主データ・パス
■ Serial Debug Port Dataレジスタ
■ Device Identificationレジスタ
25.4.2.1
命令パス
この4つのセルからなるパスは、Instructionレジスタをスキャンするために使われます。TAPコント
ローラがSelect-IR-ScanからUpdate-IRの状態を通った後に、
このチェーンはロードされます。Fig-
ure 25-4を参照してください。
25-4
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
バウンダリ・スキャン ・テスト・インタフェース
25.4.2.2
Bypassパス
デバイスのシフト長を1ビットにして、
このパスはマイクロコントローラのテスト・ロジックをバイパス
します。このオペレーションの最中でもInstructionレジスタに命令を入力することができます。
25.4.2.3
主データ・スキャン・パス
Table 25-3に主データ・スキャン・パスを示します。ここで示しているのは最初から最後への順です。
つまり、最初はJTAG_TDIに最も近く、そして最後はJTAG_TDOに最も近いものです。コントロール・
セルはトライステート・パッドのイネーブルを制御するために使われます。1がコントロール・セルにシ
フトされて入力されると、対応するピンはトライステートになるか、入力として選択されます。
注意:Table 25-3の格子がかかっている各コントロール・セルには、
コントロール・セルの下と、次のコントロール・セ
ルの前にリストされているパッドの、出力イネーブル・コントロールが含まれています。双方向のパッドでは、出
力は(JTAG_TDIの最も近くに)最初にリストされています。
Table 25-3
主データ・スキャン・パス
Pad Name
Scan Type
Boundary Scan Order
Control
1
BA1
Output
2
BA0
Output
3
MA12
Output
4
MA11
Output
5
MA10
Output
6
MA9
Output
7
MA8
Output
8
MA7
Output
9
MA6
Output
10
MA5
Output
11
MA4
Output
12
MA3
Output
13
MA2
Output
14
MA1
Output
15
MA0
Output
16
Control
17
MD31
Bidirectional
18, 19
MD30
Bidirectional
20, 21
MD29
Bidirectional
22, 23
MD28
Bidirectional
24, 25
MD27
Bidirectional
26, 27
MD26
Bidirectional
28, 29
MD25
Bidirectional
30, 31
MD24
Bidirectional
32, 33
MD23
Bidirectional
34, 35
MD22
Bidirectional
36, 37
MD21
Bidirectional
38, 39
MD20
Bidirectional
40, 41
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
25-5
バウンダリ・スキャン・テスト・インタフェース
Table 25-3
25-6
主データ・スキャン・パス(続き)
Pad Name
Scan Type
Boundary Scan Order
MD19
Bidirectional
42, 43
MD18
Bidirectional
44, 45
MD17
Bidirectional
46, 47
MD16
Bidirectional
48, 49
MD15
Bidirectional
50, 51
MD14
Bidirectional
52, 53
MD13
Bidirectional
54, 55
MD12
Bidirectional
56, 57
MD11
Bidirectional
58, 59
MD10
Bidirectional
60, 61
MD9
Bidirectional
62, 63
MD8
Bidirectional
64, 65
MD7
Bidirectional
66, 67
MD6
Bidirectional
68, 69
MD5
Bidirectional
70, 71
MD4
Bidirectional
72, 73
MD3
Bidirectional
74, 75
MD2
Bidirectional
76, 77
MD1
Bidirectional
78, 79
MD0
Bidirectional
80, 81
MECC6
Bidirectional
82, 83
MECC5
Bidirectional
84, 85
MECC4
Bidirectional
86, 87
MECC3
Bidirectional
88, 89
MECC2
Bidirectional
90, 91
MECC1
Bidirectional
92, 93
MECC0
Bidirectional
94, 95
Control
96
SCS3
Output
97
SCS2
Output
98
SCS1
Output
99
SCS0
Output
100
Control
101
CLKMEMOUT
Output
102
CLKMEMIN
Input
103
Control
104
SRASB
Output
105
SRASA
Output
106
Control
107
SCASB
Output
108
SCASA
Output
109
Control
110
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
バウンダリ・スキャン ・テスト・インタフェース
Table 25-3
主データ・スキャン・パス(続き)
Pad Name
Scan Type
Boundary Scan Order
SWEB
Output
111
SWEA
Output
112
Control
113
SDQM3
Output
114
SDQM2
Output
115
SDQM1
Output
116
SDQM0
Output
117
Control
118
BOOTCS
ROMRD
FLASHWR
ROMBUFOE
ROMCS1
Output
119
Control
120
Output
121
Control
122
Output
123
Control
124
Output
125
Control
126
Output
127
Control
128
Output
129
Control
130
AD31
Bidirectional
131, 132
AD30
Bidirectional
133, 134
AD29
Bidirectional
135, 136
AD28
Bidirectional
137, 138
AD27
Bidirectional
139, 140
AD26
Bidirectional
141, 142
AD25
Bidirectional
143, 144
AD24
Bidirectional
145, 146
AD23
Bidirectional
147, 148
AD22
Bidirectional
149, 150
AD21
Bidirectional
151, 152
AD20
Bidirectional
153, 154
AD19
Bidirectional
155, 156
AD18
Bidirectional
157, 158
AD17
Bidirectional
159, 160
AD16
Bidirectional
161, 162
AD15
Bidirectional
163, 164
AD14
Bidirectional
165, 166
AD13
Bidirectional
167, 168
AD12
Bidirectional
169, 170
AD11
Bidirectional
171, 172
AD10
Bidirectional
173, 174
ROMCS2
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
25-7
バウンダリ・スキャン・テスト・インタフェース
Table 25-3
主データ・スキャン・パス(続き)
Pad Name
Scan Type
Boundary Scan Order
AD9
Bidirectional
175, 176
AD8
Bidirectional
177, 178
AD7
Bidirectional
179, 180
AD6
Bidirectional
181, 182
AD5
Bidirectional
183, 184
AD4
Bidirectional
185, 186
AD3
Bidirectional
187, 188
AD2
Bidirectional
189, 190
AD1
Bidirectional
191, 192
AD0
Bidirectional
193, 194
Control
195
CBE3
Bidirectional
196, 197
CBE2
Bidirectional
198, 199
CBE1
Bidirectional
200, 201
CBE0
Bidirectional
202, 203
Control
204
PAR
Bidirectional
205, 206
SERR
Input
207
Control
208
PERR
FRAME
TRDY
IRDY
STOP
DEVSEL
25-8
Bidirectional
209, 210
Control
211
Bidirectional
212, 213
Control
214
Bidirectional
215, 216
Control
217
Bidirectional
218, 219
Control
220
Bidirectional
221, 222
Control
223
Bidirectional
224, 225
Control
226
CLKPCIOUT
Output
227
CLKPCIIN
Input
228
Control
229
RST
Output
230
INTD
Input
231
INTC
Input
232
INTB
Input
233
INTA
Input
234
REQ4
Input
235
REQ3
Input
236
REQ2
Input
237
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
バウンダリ・スキャン ・テスト・インタフェース
Table 25-3
主データ・スキャン・パス(続き)
Pad Name
Scan Type
Boundary Scan Order
REQ1
Input
238
REQ0
Input
239
Control
240
GNT4
GNT3
GNT2
GNT1
GNT0
Output
241
Control
242
Output
243
Control
244
Output
245
Control
246
Output
247
Control
248
Output
249
Control
250
GPA25
Bidirectional
251, 252
GPA24
Bidirectional
253, 254
GPA23
Bidirectional
255, 256
GPA22
Bidirectional
257, 258
GPA21
Bidirectional
259, 260
GPA20
Bidirectional
261, 262
GPA19
Bidirectional
263, 264
GPA18
Bidirectional
265, 266
GPA17
Bidirectional
267, 268
GPA16
Bidirectional
269, 270
GPA15
Bidirectional
271, 272
GPA14
Output
273
GPA13
Output
274
GPA12
Output
275
GPA11
Output
276
GPA10
Output
277
GPA9
Output
278
GPA8
Output
279
GPA7
Output
280
GPA6
Output
281
GPA5
Output
282
GPA4
Output
283
GPA3
Output
284
GPA2
Output
285
GPA1
Output
286
GPA0
Output
287
Control
288
GPD15
Bidirectional
289, 290
GPD14
Bidirectional
291, 292
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
25-9
バウンダリ・スキャン・テスト・インタフェース
Table 25-3
主データ・スキャン・パス(続き)
Pad Name
Scan Type
Boundary Scan Order
GPD13
Bidirectional
293, 294
GPD12
Bidirectional
295, 296
GPD11
Bidirectional
297, 298
GPD10
Bidirectional
299, 300
GPD9
Bidirectional
301, 302
GPD8
Bidirectional
303, 304
Control
305
GPD7
Bidirectional
306, 307
GPD6
Bidirectional
308, 309
GPD5
Bidirectional
310, 311
GPD4
Bidirectional
312, 313
GPD3
Bidirectional
314, 315
GPD2
Bidirectional
316, 317
GPD1
Bidirectional
318, 319
GPD0
Bidirectional
320, 321
Control
322
Output
323
Control
324
GPRESET
GPIORD
GPIOWR
GPMEMRD
GPMEMWR
PIO27
PIO26
PIO25
PIO24
PIO23
PIO22
PIO21
PIO20
25-10
Output
325
Control
326
Output
327
Control
328
Output
329
Control
330
Output
331
Control
332
Bidirectional
333, 334
Control
335
Bidirectional
336, 337
Control
338
Bidirectional
339, 340
Control
341
Bidirectional
342, 343
Control
344
Bidirectional
345, 346
Control
347
Bidirectional
348, 349
Control
350
Bidirectional
351, 352
Control
353
Bidirectional
354, 355
Control
356
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
バウンダリ・スキャン ・テスト・インタフェース
Table 25-3
主データ・スキャン・パス(続き)
Pad Name
Scan Type
Boundary Scan Order
PIO19
Bidirectional
357, 358
Control
359
PIO18
PIO17
PIO16
PIO15
PIO14
PIO13
PIO12
PIO11
PIO10
PIO9
PIO8
PIO7
PIO6
PIO5
PIO4
PIO3
PIO2
PIO1
PIO0
Bidirectional
360, 361
Control
362
Bidirectional
363, 364
Control
365
Bidirectional
366, 367
Control
368
Bidirectional
369, 370
Control
371
Bidirectional
372, 373
Control
374
Bidirectional
375, 376
Control
377
Bidirectional
378, 379
Control
380
Bidirectional
381, 382
Control
383
Bidirectional
384, 385
Control
386
Bidirectional
387, 388
Control
389
Bidirectional
390, 391
Control
392
Bidirectional
393, 394
Control
395
Bidirectional
396, 397
Control
398
Bidirectional
399, 400
Control
401
Bidirectional
402, 403
Control
404
Bidirectional
405, 406
Control
407
Bidirectional
408, 409
Control
410
Bidirectional
411, 412
Control
413
Bidirectional
414, 415
Control
416
SOUT1
Output
417
SIN1
Input
418
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
25-11
バウンダリ・スキャン・テスト・インタフェース
Table 25-3
主データ・スキャン・パス(続き)
Pad Name
Boundary Scan Order
419
RTS1
Output
420
CTS1
Input
421
DSR1
Input
422
Control
423
DTR1
Output
424
DCD1
Input
425
RIN1
Input
426
Control
427
SOUT2
Output
428
SIN2
Input
429
Control
430
RTS2
PIO28
PIO29
DTR2
PIO30
PIO31
25-12
Scan Type
Control
Output
431
Control
432
Bidirectional
433, 434
Control
435
Bidirectional
436, 437
Control
438
Output
439
Control
440
Bidirectional
441, 442
Control
443
Bidirectional
444, 445
Control
446
SSI_CLK
Output
447
SSI_DI
Input
448
Control
449
SSI_DO
Output
450
Control
451
CLKTIMER
Bidirectional
452, 453
PWRGOOD
Input
454
PRGRESET
Input
455
Control
456
CMDACK
Output
457
BR/TC
Input
458
Control
459
STOP/TX
Output
460
Control
461
TRIG/TRACE
Output
462
Control
463
DC
Bidirectional
464, 465
Control
466
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
バウンダリ・スキャン ・テスト・インタフェース
Table 25-3
主データ・スキャン・パス(続き)
Pad Name
Scan Type
Boundary Scan Order
DATASTRB
Bidirectional
467, 468
Control
469
CPUACT
Bidirectional
470, 471
Control
472
Bidirectional
473, 474
Control
475
PITOUT2
PITGATE2
TMRIN1
Bidirectional
476, 477
Control
478
Bidirectional
479, 480
Control
481
TMRIN0
Bidirectional
482, 483
Control
484
TMROUT1
Output
485
Control
486
TMROUT0
Output
487
Notes:
The control cell for the BA1–BA0 and MA12–MA0 pins is closest to the JTAG_TDI pin (beginning
of the boundary scan chain), and TMROUT0 is closest to the JTAG_TDO pin (end of the boundary
scan chain).
Each of the shaded control cells shown in Table 25-3 contains the output enable control for the pads
listed below the control cell and before the next control cell. For bidirectional pads, the output is
listed first (closest to JTAG_TDI).
25.4.2.4
Serial Debug Port Dataレジスタ
Figure 25-2にSerial Debug Port Dataレジスタのフォーマットを示します。38ビットのSerial Debug Port DataレジスタはAm5x86 CPUとのコマンド/ステータス/データのインタフェースをします。
Figure 25-2
Serial Debug Port Dataレジスタのフォーマット
37
6
Debug Data
JTAG_TDI
25.4.2.5
5
2
Command
Bit
Name
Function
37–6
DEBUG_DATA[31–0]
Debug Data
5–2
COMMAND[3–0]
Command
1
P
Command pending flag status
0
F
Command finished flag status
1
0
P
F
JTAG_TDO
Device Identificationレジスタ
Figure 25-3にDevice Identificationレジスタのフォーマットを示します。ÉlanSC520マイクロコン
トローラでは、Device Identificationレジスタの最下位の28ビットは0EFF003hの値にハード・コード
化されています。ビット31_28によって表されているVERSIONフィールドは、ÉlanSC520マイクロコ
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
25-13
バウンダリ・スキャン・テスト・インタフェース
ントローラのRevision ID (REVID) レジスタ (MMCR offset 00h)の MINORSTEPフィールドの値を
反映します。
Figure 25-3
Device Identificationレジスタのフォーマット
28 27
31
Version
25.4.3
12 11
Part Number
0
Manufacturer Identity
Bit
Name
Function
31–28
VERSION
Value of the MINORSTEP field of the
ÉlanSC520 Microcontroller Revision
ID (REVID) register
27–0
Part Number and
Manufacturer Identity
Hardcoded to 0EFF003h
Test Access Port (TAP)コントローラ
Test Access Port (TAP)コントローラはテスト・ロジックの動作の順序をコントロールする同期した、
有限のステート・マシンです。TAPコントローラはJTAG_TCKの立ち上がりエッジでステートを変え
ます。それは、
JTAG_TRSTピンをローに保持するか、
あるいは、
5つのJTAG_TCK周期の間JTAG_TMS
ピンをハイに保持することによって、Test-Logic-Reset状態にリセットすることができます。
TAPコントローラのステート・マシンはFigure 25-4に示します。
25-14
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
バウンダリ・スキャン ・テスト・インタフェース
Figure 25-4
テスト・アクセス・ポート・コントローラの状態図
JTAG_TRST
1
Test-Logic-Reset
0
1
1
0
Run-Test/Idle
1
Select-DR-Scan
Select-IR-Scan
0
0
1
1
Capture-DR
Capture-IR
0
0
0
0
Shift-DR
Shift-IR
1
1
1
1
Exit1-DR
Exit1-IR
0
0
0
0
Pause-DR
Pause-IR
1
1
0
0
Exit2-DR
Exit2-IR
1
1
Update-DR
1
25.4.3.1
25.4.3.1.1
Update-IR
0
1
0
TAPコントローラの状態
Test-Logic-Reset状態
この状態では、
デバイスの通常動作が妨げられずに続けられるように、
テスト・ロジックはディセーブル
されます。これはIDCODE命令がロードされるように、
instructionレジスタを初期化することによって
行います。コントローラの元の状態が何であっても、最低5つのJTAG_TCKの立ち上がりエッジ間の
JTAG_TMS入力がハイ(1)に保持されていると、
コントローラはTest-Logic-Reset状態に遷移します。
JTAG_TMSがハイである限り、
コントローラはこの状態に残ります。同じく、JTAG_TRSTがアサート
されているとTAPコントローラもこの状態に強制的に入ります。
システムの電源が入ったとき、JTAG TAPコントローラはPWRGOODによってリセットされません。
しかし、JTAG_TRSTは内蔵のプルダウン抵抗によってTAPコントローラをリセットします。
25.4.3.1.2
Run-Test-Idle状態
これはスキャン動作の合間のコントローラ状態です。この状態のとき、
JTAG_TMSがローに保たれる
限り、
コントローラはこの状態に残ります。この状態で機能を実行しない命令では、
テスト・ロジックの
活動は起こりません。Instructionレジスタとすべてのテスト・データ・レジスタは前の状態を保持しま
す。JTAG_TMSがハイで、立ち上がりエッジがJTAG_TCKに入ると、
コントローラはSelect-DR状態
に遷移します。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
25-15
バウンダリ・スキャン・テスト・インタフェース
25.4.3.1.3
Select-Data Register (DR)-Scan状態
これは一時的なコントローラ状態です。現在の命令によって選択された テスト・データ・レジスタは
前の状態を保持します。この状態で、
JTAG_TMSがローに保持され、立ち上がりエッジがJTAG_TCK
に入った場合、
コントローラはCapture-DR状態に遷移し、そして選択されたテスト・データ・レジスタ
のスキャン・シーケンスが始まります。JTAG_TMSがハイに保持され、JTAG_TCKに立ち上がりエッ
ジが入ると、
コントローラはSelect-IR-Scan状態に遷移します。
命令はこの状態で変化しません。
25.4.3.1.4
Capture-DR状態
この状態では、現在の命令がEXTESTまたはSAMPLE/PRELOADであると、Boundary Scanレジス
タは入力ピンのデータを取り込みます。パラレル入力を持っていない他のテスト・データ・レジスタは
変化しません。
命令はこの状態で変化しません。
TAPコントローラがこの状態で、JTAG_TCKに立ち上がりエッジが入ると、
コントローラはJTAG_TMS
がハイであればExit1-DR状態に遷移し、
またJTAG_TMSがローであれShift-DR状態に遷移します。
25.4.3.1.5
Shift-DR状態
このコントローラ状態では、現在の命令の結果JTAG_TDIとJTAG_TDOの間に接続されたテスト・
データ・レジスタは、JTAG_TCKの立ち上がりエッジごとにシリアル出力へデータを1ステージシフト
します。
命令はこの状態で変化しません。
TAPコントローラがこの状態で、JTAG_TCKに立ち上がりエッジが入ると、
コントローラはJTAG_TMS
がハイであればExit1-DR状態に、JTAG_TMSがローであればShift-DR状態に残ります。
25.4.3.1.6
Exit1-DR状態
これは一時的な状態です。この状態で、
JTAG_TMSがハイに保持され、JTAG_TCKに立ち上がりエッ
ジが入ると、コントローラはU p d a t e - D R 状態に遷移し、スキャニング・プロセスが終了します。
JTAG_TMSがロー保持され、JTAG_TCKに立ち上がりエッジが入ると、
コントローラはPause-DR状
態に遷移します。
現在の命令によって選択されたテスト・データ・レジスタは、
この状態では前の値を保持します。命令
はこの状態で変化しません。
25.4.3.1.7
Pause-DR状態
Pause状態は、JTAG_TDIとJTAG_TDOの間のシリアル・パスにあるテスト・データ・レジスタを通し
て、
テスト・コントローラがデータをシフトすることを一時的に止めることを可能にします。この状態
を使う例としては、長いテスト・シーケンスを行うアプリケーションの最中に、
テスタがピン・メモリへ
ディスクからリロードさせる場合が挙げられます。
現在の命令によって選択されたテスト・データ・レジスタは、
この状態では前の値を保持します。命令
はこの状態で変化しません。
JTAG_TMS がローである限り、コントローラはこの状態のままです。JTAG_TMS がハイになり、
JTAG_TCKに立ち上がりエッジが入ると、
コントローラはExit2-DR状態に遷移します。
25-16
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
バウンダリ・スキャン ・テスト・インタフェース
25.4.3.1.8
Exit2-DR状態
これは一時的な状態です。この状態では、JTAG_TMSがハイに保持されて、JTAG_TCKに立ち上が
りエッジが入ると、
コントローラをUpdate-DR状態に遷移し、
これによってスキャニング・プロセスが
コントローラ
終了します。JTAG_TMSがローに保持され、JTAG_TCKに立ち上がりエッジが入ると、
はShift-DR状態に遷移します。
現在の命令によって選択されたテスト・データ・レジスタは、
この状態では前の値を保持します。命令
はこの状態で変化しません。
25.4.3.1.9
Update-DR状態
EXTEST命令とSAMPLE/PRELOAD命令に応えてデータがシフトされている間、パラレル出力が変
Boundary Scanレジスタにはラッチ付きのパラレル出力が用意されてい
化してしまうのを妨ぐため、
ます。TAPコントローラがこの状態にあり、Boundary Scanレジスタが選ばれると、JTAG_TCKの立
ち上がりエッジに、
データはシフト・レジスタのパスからこのレジスタのパラレル出力にラッチされま
す。ラッチ付きパラレル・ポートに保持されているデータはこの状態以外では変化しません。
現在の命令によって選択されたテスト・データ・レジスタの中のすべてシフト・レジスタのステージは、
この状態では前の値を保持します。命令はこの状態で変化しません。
TAPコントローラがこの状態にあり、そしてJTAG_TCKに立ち上がりエッジが入ると、
コントローラは
JTAG_TMSがハイに保持されればSelect-DR状態に遷移し、またJTAG_TMSがローに保持されれば
Run-Test/Idle状態に遷移します。
25.4.3.1.10 Select-Instruction Register (IR)-Scan状態
これは一時的なコントローラ状態です。現在の命令によって選択されたテスト・データ・レジスタは、
前の状態を保持します。この状態で、JTAG_TMSがローに保持され、
JTAG_TCKに立ち上がりエッジ
が入ると、
コントローラはCapture-IR状態に遷移し、そしてこのInstructionレジスタのスキャン・シー
ケンスが開始されます。JTAG_TMSがハイに保持されて、JTAG_TCKに立ち上がりエッジが入ると、
コントローラはTest-Logic-Reset状態に遷移します。
命令はこの状態で変化しません。
25.4.3.1.11 Capture-IR状態
このコントローラ状態では、Instructionレジスタの中のシフト・レジスタはJTAG_TCKの立ち上がり
エッジで0001bの固定値をロードします。
現在の命令によって選択されたテスト・データ・レジスタは、
この状態では前の値を保持します。命令
はこの状態で変化しません。
コントローラがこの状態の時、JTAG_TCKに立ち上がりエッジが入ると、
コントローラはJTAG_TMS
がハイに保持されるとExit1-IR状態に遷移し、
またJTAG_TMSがローに保持されるとShift-IR状態に
遷移します。
25.4.3.1.12 Shift-IR状態
この状態では、
Instructionレジスタの中のシフト・レジスタはJTAG_TDIとJTAG_TDOの間に接続され、
そしてJTAG_TCKの立ち上がりエッジごとに、
データをシリアル出力の方へ1ステージシフトします。
現在の命令によって選択されたテスト・データ・レジスタは、
この状態では前の値を保持します。命令
はこの状態で変化しません。
コントローラがこの状態の時、JTAG_TCKに立ち上がりエッジが入ると、
コントローラはJTAG_TMS
がハイに保持されるとExit1-IR状態に遷移し、
またJTAG_TMSがローに保持されるとShift-IR状態に
残ります。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
25-17
バウンダリ・スキャン・テスト・インタフェース
25.4.3.1.13 Exit1-IR状態
これは一時的な状態です。この状態で、
JTAG_TMSがハイに保持され、JTAG_TCKに立ち上がりエッ
ジが入ると、コントローラは U p d a t e - I R 状態に遷移し、スキャニング・プロセスを停止する。
JTAG_TMSがローに保持され、JTAG_TCKに立ち上がりエッジが入ると、コントローラはPause-IR
状態に遷移します。
現在の命令によって選択されたテスト・データ・レジスタは、
この状態では前の値を保持します。命令
はこの状態で変化しません。
25.4.3.1.14 Pause-IR状態
Pause状態は、Instructionレジスタを通してデータをシフトすることをテスト・コントローラが一時的
に停止させます。
現在の命令によって選択されたテスト・データ・レジスタは、
この状態では前の値を保持します。命令
はこの状態で変化しません。
JTAG_TMS がローである限り、コントローラはこの状態に残ります。JTAG_TMS がハイになり、
JTAG_TCKに立ち上がりエッジが入ると、
コントローラはExit2-IR状態に遷移します。
25.4.3.1.15 Exit2-IR状態
これは一時的な状態です。この状態の時、JTAG_TMSがハイに保持され、JTAG_TCKに立ち上がり
エッジが入ると、
コントローラはUpdate-IR状態に遷移し、スキャニング・プロセスが停止されます。
JTAG-TMSがローに保持され、JTAG_TCKに立ち上がりエッジが入ると、
コントローラはShift-IR状態
に遷移します。
現在の命令によって選択されたテスト・データ・レジスタは、
この状態では前の値を保持します。命令
はこの状態で変化しません。
25.4.3.1.16 Update-IR状態
Instructionレジスタにシフトされた命令は、JTAG_TCKの立ち下がりエッジでシフト・レジスタのパス
からパラレル出力にラッチされます。新しい命令がされると、それが現在の命令になります。
現在の命令によって選択されたテスト・データ・レジスタは、前の値を保持します。
TAP コントローラがこの状態にあり、JTAG_TCK に立ち上がりエッジが入ると、コントローラは
JTAG_TMSがハイに保持されるとSelect-DR状態に遷移し、またJTAG_TMSがローに保持されると
Run-Test Idle状態に遷移します。
25.4.4
バス・サイクル
Figure 25-5とFigure 25-6でそれぞれ、データ・スキャン・モードと命令スキャン・モードのテスト・ロ
ジック・オペレーションについてのバス・サイクル情報を示します。
25-18
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
バウンダリ・スキャン ・テスト・インタフェース
Figure 25-5
テスト・ロジック動作:データ・スキャン
JTAG_TCK
JTAG_TMS
Test-Logic-Reset
Select-I R-Scan
Select-DR-Scan
Run-Test/Idle
Update -DR
Exit1-DR
Shift-DR
Exit2-DR
Pause-DR
Exit1-DR
Shift-DR
Capture-DR
Select-DR-Scan
Run-Test/Idle
Controller State
JTAG_TDI
Data Input to IR
IR Shift Register
Parallel Output of IR
Instruction
IDCODE
Data Input to BSR
BSR Shift Register
Parallel Output of BSR
Old Data
Register Selected
JTAG_TDO Enable
New Data
Boundary Scan Register
Inactive
Active
Inactive
Active
Inactive
JTAG_TDO
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
25-19
バウンダリ・スキャン・テスト・インタフェース
Figure 25-6
テスト・ロジック動作:Instructionスキャン
JTAG_TCK
JTAG_TMS
Run-Test/Idle
Update-IR
Exit1-IR
Shift-IR
Exit2-IR
Pause-IR
Exit1-IR
Shift-IR
Select-IR-Scan
Capture-IR
Select-DR-Scan
Run-Test/Idle
Test-Logic-Reset
Controller State
JTAG_TDI
Data Input to IR
0001
IR Shift Register
Parallel Output of IR
New Instruction
IDCODE
Data Input to BSR
BSR Shift Register
Parallel Output of BSR
Register Selected
JTAG_TDO Enable
Instruction Register
Inactive
Active
Inactive
Active
Inactive
JTAG_TDO
25.4.5
クロックに関しての考慮
バウンダリ・スキャンのターゲット・スピードは25 MHzです。
25.5
初期化
JTAG TAPコントローラは電源立ち上げ時にPWRGOODの機能でリセットされません。
テスト・アクセス・ポート・コントローラは次の方法でリセットできます。
■ JTAG_TRSTピンがロー(0)にドライブされたとき−−これはInstructionレジスタを含む全JTAG
サブシステムをリセットします。
■ JTAG_TMSピンが最低5つのJTAG_TCKの立ち上がりエッジの間ハイ(1)に保持されたとき−−
JTAG_TMSがハイ(1)の間はこの状態になっています。JTAG_TCKの立ち下がりエッジのタイミ
ングで、
JTAG_TMS信号に誤ったロー(0)の信号が入ったことにより、TAPコントローラがリセット
状態を離れてしまっても、3つのJTAG_TCKの立ち上がりエッジの間、JTAG_TMSがハイに保持
されるとリセット状態に戻ります。
TAPコントローラのTest-Logic-Reset状態では、
デバイスの通常動作が妨げなしに続けられるように、
テスト・ロジックはディセーブルされます。
「 Test-Logic-Reset状態」を参照して下さい。
25-20
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
第26章
AMDebug™テクノロジ
26.1
概要
ÉlanSC520マイクロコントローラはフル機能の、高性能なインサーキット・エミュレーション機能をサ
ポートしています。このインサーキット・エミュレーションのサポートは、特にデザイン・サイクルの初
期に、
ユーザがソフトウェアのテストとデバッグができるようにAMDによって開発されました。この機
能を利用して、
ソフトウェアはより広範囲でかつフル実行スピードで動作確認ができます。また、
Am5x86 CPUの内部キャッシュから実行しながらトレースすることを可能にします。
ÉlanSC520マイクロコントローラに含まれているAMDebugインタフェースは、製品開発チームに2
つの異なるコミュニケーション・パスを提供し、両方ともAMDのFusionE86プログラムに参加してい
るサード・パーティ・ベンダーからの強力なデバッグ・ツールによってサポートされています。(AMD
FusionE86パートナーの資料のサード・パーティ・サポートを参照してください。)
■ シリアルAMDebugテクノロジは、拡張されたJTAGプロトコルに基づいたシリアル接続と、各基
板に実装できる低価格な12ピンコネクタを使います。この低コスト・ソリューションは多くのソフ
トウェア開発者の要求を満たします。
■ パラレルAMDebugテクノロジは25ピンのパラレル・デバッグ・ポートを使ってÉlanSC520マイク
ロコントローラとホストの間の命令とデータを交換します。より多いピン数が必要となるので、追
加のピンはÉlanSC520マイクロコントローラの特別なbond-outパッケージで提供されます。こ
のパッケージはインサーキット・エミュレータ・メーカなどのツール開発者にのみ提供されます。
パラレルAMDebugポートは高速なデータ交換をサポートするタスクを、大変楽にします。
チップ上のトレース・コントローラはプロセッサ内の命令実行の流れを再構築するためのトレース情
報を提供します。これはシリアルAMDebugポート、bond-outパラレル・ポート、
または内部トレース・
バッファのいずれもサポートします。
従来のバウンダリ・スキャン・テストでのJTAGテクノロジの使用法は第25章「バウンダリ・スキャン・
テスト・インタフェース」を参照して下さい。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
26-1
AMDebug テクノロジ
26.2
ブロック図
Figure 26-1にAMDebugソフトウェア・アーキテクチャのシステム図を示します。2つの異なった構
成が示してあります。
Figure 26-1
AMDebugテクノロジのソフトウェア・アーキテクチャ
Target System
RAM
Élan™SC520
Microcontroller
Low-Cost
Serial
Converter
Host System
PC
CPU
or
UART
Trace
Cache
AMD Debug
Logic
ROM
Trace
Capture
Plus
Parallel
Interface
Debug
Control
Software
Serial Port, 12-Pin Connector, or
Parallel Port, 25-Pin Bond-Out
26.3
システム設計
GPA25-GPA23ピン、DEBUG_ENTER、INST_TRCEとAMDEBUG_DISに対応しているpinstrap機
能は、PWRGOODがアサートされることによってのみサンプルされ、そしてこれらのピンのGPバス
機能に影響を与えません。
26.3.1
AMDebug™ポートを接続する
ホスト・コンピュータのシリアル・ポート、パラレル・ポート、
またはイーサーネット接続を含む、様々な
方法でホスト・コンピュータをÉlanSC520マイクロコントローラのAMDebugポートを接続すること
ができます。個別のツールや接続の種類に関しては、AMD FusionE86パートナーの資料のサード・
パーティ・サポートを参照して下さい。
最低限の A M D e b u g の動作は 4 本の基本 J T A G 信号ピンで行うことができます:J T A G _ T C K ,
JTAG_TMS, JTAG_TDI, JTAG_TDO。JTAGピンだけを使い、追加のサポート・ピンを利用しない
と、
プロセッサ・ピンに関しては最も低いコストが実現されますが、
しかし代償として機能が少なくな
ります。JTAGピンの機能はマルチプレクスされていません。マルチプレクスすると、常時どのような
条件でもプロセッサと通信できることが保証できなくなります。
多数のソフトウェア開発者の要求を満足するために、
PCポートをAMDebugポートに接続するために
低価格なコネクタを使うことができます。このような簡単な方法でターゲットへ接続できることは、
か
なりの利点があります:
■ インサークット・エミュレータのようなケーブルで接続するためにプロセッサを取り外す必要があ
りません。
26-2
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
AMDebug テクノロジ
■ どのようなプロセッサ・パケージ・テクノロジが使われても接続は保証されます。
■ デバッグ通信はプロセッサやメモリ・システムのクロック・スピードに依存しません。
2つのAMDebugコネクタ・フォーマットが指定されています:12ピン・コネクタ(Figure 26-2) と20ピ
ン・コネクタ(Figure 26-3)。これらは最大動作周波数とコネクタ・ピン数において異なります。両方と
も同じ数のアクティブな信号を持っていますが、
20ピンの方は各信号ワイヤの間にグラウンド・ワイヤ
が入っています。
Table 26-1
AMDebugテクノロジのコネクタ・ピン
Name
I/O
External
Resistor
Description
JTAG_TCK
Input
PU
Clock for the TAP controller and the debug serial/parallel interface
JTAG_TDI
Input
PU
Input test data and instructions
JTAG_TDO
Output PU
Output data; three-stated when data is not driven
JTAG_TMS
Input
PU
Test functions and sequence of test changes
JTAG_TRST
Input
PU
Reset the JTAG controller
SYSRESET
Input
PU
Reset all system logic. This pin should be held Low for at least four TCK
clock cycles. SYSRESET can be ANDed directly with the PWRGOOD
signal. This enables the AMDebug control unit to drive the ÉlanSC520
microcontrollerís reset.
BR/TC
Input
PD
CMDACK
Output
Request entry to AMDebug mode/Turn instruction trace capture on-off
––
Acknowledge command
STOP/TX
Output
––
Asserted High on entry to AMDebug mode; during normal mode set High
TRIG/TRACE
Output
––
Trigger event to logic analyzer (optional, from Am486 debug registers)
PWRGOOD
Output
––
Sample power level used by the JTAG controller driving hardware
内蔵のデバッグ・テクノロジに基づいたソフトウェア開発システムは次の点を考慮する必要があります:
■ 各基板のデザインに最低12ピンのコネクタを用意します。
■ AMDebugポートを標準の12ピン・コネクタに出すサポートをするプロセッサのピンから、必要な
のトラッキングをアサインします。
■ 顧客サイト(in-field)でのデバッグを可能にするために、量産システムに小型のコネクタを実装し
ます。
Figure 26-2
12ピン・コネクタのフォーマット
1
Ground
2
VGND
PWRGOOD
Sample Power Source
Test Clock
JTAG_TCK
CMDACK
Command Acknowledge
Test Mode Select
JTAG_TMS
BR/TC
Enter AMDebug Mode, Trace Control
Test Data In
JTAG_TDI
STOP/TX
In AMDebug Mode, Receive Data
Test Data Out
JTAG_TDO
TRIG/TRACE
Trigger Event
Reserved for
System Reset
SYSRESET
12
Keyed
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
26-3
AMDebug テクノロジ
シリアル・コネクタが高いスピード、例えば10 MHz以上で、
クロックされるとき、信号のクロストーク
が発生する危険があります。この問題を軽減するために、Figure 26-3で示すように、20ピン・シルア
ル・コネクタのフォーマットも使用できます。このフォーマットでは各信号ワイヤの間にグラウンドが入
ります。ケーブルがあまり長くない限り、低価格のツールを基にしたAMDebugテクノロジは、Figure
26-2で示すように、12ピン・コネクタで満足に動作します。
Figure 26-3
20ピン・シリアル・コネクタのフォーマット
1
2
Ground
Gnd
Test Clock
JTAG_TCK
PWRGOOD
Gnd
Test Mode Select
JTAG_TMS
Gnd
Test Data In
JTAG_TDI
Gnd
Test Data Out
JTAG_TDO
Gnd
Test Reset
JTAG_TRST
Gnd
Reserved for
System Reset
Command Acknowledge
SYSRESET
Gnd
CMDACK
Gnd
Enter AMDebug Mode, Trace Control
BR/TC
In AMDebug Mode, Receive Data
STOP/TX
Trigger Event
TRIG/TRACE
Keyed
19
26.3.2
Sample Power Source
20
ターゲット・コネクタの機械的仕様
ターゲット基板にはオスのヘッダ・ピンが使われます。Figure 26-4に示すように、
ピン間隔は12ピン
ターゲットに接続するために、
メスのコ
と20ピン・フォーマットともに2mmです。デバッグ用装置には、
ネクタが付いているリボン・ケーブルを使います。最後のピンであるピン12あるいはピン20は、取り
付けません。あるいは、必要に応じてこの位置から外します。この位置には、
リボン・ケーブルのメス・
コネクタにポストを入れておきます。これでコネクタがさかさまの状態で繋がれるのが防げます。互
換性のあるコネクタはSamtec, Inc. (12ピンのモデルはTMM-112-02-x-D)、3M、その他のメーカか
ら提供されています。
Figure 26-4
AMDebugテクノロジ・ターゲット・コネクタの機械的仕様
2 mm
Male connector
on target board
2 mm
3.7 mm
Side View
Key
26-4
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
AMDebug テクノロジ
26.3.3
ターゲット・システムの上のコネクタを確認する
AMDebugポートには高周波信号が含まれているので、コネクタは可能な限りプロセッサに近く置く
ようにして下さい。しかし、物理的な仕様は満足するように余裕を持たなければなりません。JTAGを
使うバウンダリ・スキャンをサポートするシステムでは、他の JTAGスキャン・チェーンとAMDebug
ポートからプロセッサに接続される部分を切断できるようにジャンパー・ブロックを用意しておく必要
があります(Figure 26-5を参照)。AMDebugテクノロジをサポートするためにJTAGしか使わないシ
ステムではこのジャンパは必要ありません。AMDebugテクノロジのデバッギングが使われない場合
は、
スキャン・チャインを構成する他のデバイスとプロセッサを接続するようにジャンパを設定します。
Figure 26-5
ターゲット・コネクタの配置
Bus
33 Ω
JTAG_TCK
BR/TC
JTAG_TMS
STOP/TX
10 kΩ
GND
CMDACK
33 Ω
TRIG/TRACE
ÉlanSC520
Microcontroller
JTAG_TDI
JTAG_TRST
SYSRESET
JTAG_TDO
10 kΩ
Jumper setting when
not used for debugging
VCC
33 Ω
JTAG_TDI on next
chip in chain
JTAG_TDO on previous
chip in chain
Figure 26-5で示すように、
ターゲット・ボードにはプルアップとプルダウン抵抗を実装します。メスの
ケーブル・コネクタによってドライブされる信号線は、接続する前にトライステートにします。接続する
デバイスは、
AMDebugポートをドライブする前にVCC信号ピンをサンプルして、要求されている高電
圧を探知できます。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
26-5
AMDebug テクノロジ
26.4
オペレーション
AMDのソフトウェア・デバッグ戦略によって、
ツール・プロバイダによって提供される幅広いデバッグ・
ツールが利用可能になります。AMDebugポートによって、
マイクロコードによって処理するのための
命令をÉlanSC520マイクロコントローラに送ることが可能です。ターゲット(ÉlanSC520マイクロコ
ントローラ) とターゲットを制御するホスト・システムとの間の情報交換をするために、AMDebugコ
ミュニケーションとデータ・レジスタが使われます。
多くのソフトウェア開発者の要求を満足する低価格な通信パスでは、拡張されたJTAGプロトコルに
基づいたシリアル接続が使われます。このオプションではプロセッサへ極めて少ない信号ピンを必要
とし、そして12ピンのコネクタを各基板のデザインに載せることができます。PC-port-to-AMDebug-
port変換器は低価格で入手可能です(AMD FusionE86パートナー資料のサード・パーティ・サポート
を参照して下さい)。
インサーキット・エミュレータ・メーカのようなツール開発者にだけ提供する高性能な通信パスは、
AMDebugポートとホストとの間の命令とデータの交換を提供するパラレル・ポート接続を使います。
ピン数が多くなるので(8本ではなく25本)、増えた信号ピンはbond-outパッケージで供給されること
になります。両方の接続方法で使われるダイは同じです。標準のパラレル・インタフェース・フォーマッ
トは、
ターゲット・プロセッサとの高速なデータ交換のサポートを大変簡単にします。
さらに、パラレル・アクセスは、実行トレース・データをbond-outパラレル・アクセス・ピンの上に提供
することができるようにします。これは26.4.1 のセクションの説明のように、オンチップ・トレース・
キャッシュで収集されたデータと同じです。ただし異なるのは、
トレースの深さは、bond-outプロセッ
サでないものではオンチップ・トレース・キャッシュによって制限されるのに対して、
こちらは外部ハー
ドウェアだけに制約されることです。
26.4.1
オンチップ・トレース・キャッシュ
オンチップ命令キャッシュを使うと、外部ピンを観測するだけでプログラムの実行パスを完全にトレー
スすることが困難になります。ソフトウェア・エンジニアは、キャッシュをオフにしたり、
プロセッサの動
作を邪魔してモニタしたりしないで、
プログラムのアドレスの流れを知る必要があります。クロック・
スケーリングや高速な内部クロックが使われているので、
オンチップ・トレース・キャッシュを使わずに
トレース情報をチップの外へ提供するのは難しくなっています。
AMDのソフトウェア・デバッグ戦略では、分岐決定の結果などの重要な情報だけを小さなオンチップ・
トレース・キャッシュにストアする方式を提供しています。圧縮技術を採用することによって、実行パ
スの多くをオンチップ・トレース・キャッシュに保持できるようになっています。このキャッシュには、オ
ペレーティング・システムの活動や性能を上げるのに重要なパラメータなど、他の情報も記録するこ
とができます。Bond-outパッケージでは、
トレース情報は、内部の高速なクロック・スピードではなく、
システム・バスのスピードでチップの外へ絶えず提供できます。これはインサーキット・エミュレータ
の開発者にとって利点です。
マルチタスク・オペレーティング・システムが使われている場合もトレース・キャッシュは便利です。
1
つのタスクの実行を邪魔しないでトレースすることが可能です。これにより、オペレーティング・シス
テムに付属しているデバッガーの機能を従来のものより拡張することができます。一般的に、オペ
レーティング・システムと、ロジック・アナライザやインサーキット・エミュレータのような、外部のキャ
プチャー・ハードウェアとの統合が貧弱でしたが、
この方式はこれを改善できます。
26-6
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
AMDebug テクノロジ
26.4.2
ソフトウェア性能のプロファイリング
ソフトウェア・プロファイリングとは、1つの完全なプログラムの中の各種ソフトウェア・プロシージャの
演算処理時間、周波数、
コーリングのパターンを調べることです。いろいろな技法が現在使われてい
ます。あるものは統計的解析に基づき、あるものは統計標本抽出をしない測定に基づいています。実
行時間とコールのリンケージは、
一般に、
システム・バスを見ている外部の(チップ外の)計測装置によ
りキャプチャーされます。
アプリケーションの実行時間を最適化しようとしているソフトウェア・エンジニアにとって、パフォーマ
ンス・プロファイリングは非常に便利なツールです。bond-outパッケージを使うときは、
外部のハード
ウェア・デバイスが必要なデータを取り込むように設計することができます。命令のトレースに使われ
るとき、
トレース・キャッシュは、
プロファイル分析だけを行うために、
必要な情報より多くの情報を持っ
ています。一般的に、
コードは解析を行う前に、
まず最初に「ハード対応」にする必要があります。
その代わりに、パフォーマンス・プロファイリングをサポートするためには、経過時間を計測するため
のカウンタをスタートしたりストップしたりするように、
ブレーク・ポイント・コントロール・レジスタを
設定します。カウンタがスタートされると、それは最初はゼロに設定されて、そしてカウンタがストッ
プされると、その値はトレース・キャッシュに入ります。この方式では、外部の(チップ外の)ハードウェ
アによって支援されるシステムの能力のすべてを持っているわけではありません。しかし、
プロファイ
リングを始める前にコードの「ハード対応」を必要としません。
ブレーク・ポイント/トレース・コントロール・レジスタは、
あるプロシージャに入るとカウンタをトリガー
(スタート)するようにセットします。2つ目のブレーク・ポイント/トレース・コントロール・レジスタを、そ
のプロシージャのプロログに入るとカウントを止めるために使います。同様な方法で、割込みハンド
ラの実行時間のような、他のパラメータを計測します。カウンタが止められると、16ビットのカウント
値はトレース・キャッシュに入れられます。
プロファイル・データを解析するためには、後処理用のソフトウェアが必要です。
トレース・キャッシュ
は、
ソフトウェアのプロファイルに使われるとき、命令実行のトレース情報は収集しません。プロファイ
ルをしているときには、
トレース・キャッシュは、例えばある選択されたプロシージャにおいて、
実行す
るのにかかった時間に関する情報を収集します。1度に1つのプロシージャしかプロファイルすること
はできません。
トレース・キャッシュを調べることによって、そのプロシージャを処理していた最低、
平
トレースのエントリは、時間を
均、そして最大の時間が(収集されたサンプルの範囲内で)わかります。
表わす2つの値からなります。2つ目のカウンタは常時動作していますが、
トレース・キャッシュに入る
とゼロにリセットされます。2つ目のカウンタは、計測しているプロシージャが実行される頻度を得る
ために使われます。これに対して、最初のカウンタはそのプロジージャの実行時間(期間)についての
情報を提供します。
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
26-7
AMDebug テクノロジ
26-8
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
索引
Numerics
32KXTAL2-32KXTAL 1 signals
descritption:解説, 2-10
usage:使用法, 5-3, 5-8
33MXTAL2-33MXTAL 1 signals
descritption:解説, 2-10
usage:使用法, 2-7, 5-3
A
A10-A8 bit field, 15-18
a20 gate support:a20ゲート・サポート, 6-8
A20G_CTL bit field, 6-8
GP bus:GPバス、See general-purpose (GP) bus:汎用
(GP )バス
AD31-Ad0 signals
description:解説, 2-6
usage:使用法, 2-7, 9-3, 9-9
ADDDECCTL register, 4-2
Address buses:アドレス・バス
general-purpose(GP)bus address bus:汎用バス・
アドレス・バス,2-6
PCI address bus:PCIアドレス・バス,2-6
ROM/Flash controller address bus:ROM/Flashコ
ントローラ・アドレス・バス,2-6
SDRAM controller address bus:SDRAMコント
ローラ・アドレス・バス, 2-5
shared buses: 共有されるバス, 13-10
Address Decode Control(ADDDECCTL) resister
function:機能, 4-2, 20-6, 21-3, 24-2
usage:使用法, 3-21, 4-12, 4-14, 4-19, 20-5, 24-11
address mapping:アドレス・マッピング
bus master address spaces(table): バス・マス
ターのアドレス空間(表),4-3
cacheability control:キャッシュできるかどうかのコ
ントロール, 4-15, 4-19
code execution control:命令実行コントロール・
コード, 4-15, 4-19
configuration:設定, 4-14
buses: バス, 4-4
chip select for noncontiguous memory or I/
O:非連続のメモリまたはI/Oのチップ・セレクト,
4-15
chip selects:チップ・セレクト, 4-4
external memory:外部メモリ, 4-15
external super I/O chip:外部スーパーI/Oチッ
プ, 4-15
GP bus peripheral space:GPバスペリフェラル
空間, 4-15
Memory regions above DOS application
space: DOSアプリケーション空間の上のメモリ
領域, 4-16
PCI bus devices: PCIバス・デバイス, 4-17
ROM/Flash space:ROM/Flash空間, 4-14
Windows compatibility:Windows互換, 4-16
configuration register access:コンフィギュレー
ション・レジスタ・アクセス, 4-19
I/O map(figure):I/Oマップ(図), 4-11
I/O space:I/O空間, 4-10
Configuration Base Address register:
Configuration Base Addressレジスタ, 4-11
GP bus I/O region: GP バスI/O 領域, 4-14
PC/AT-compatible I/O peripherals region:
PC/AT互換I/O ペリフェラルの領域, 4-12
PCI configuratrion space: PCIコンフィギュ
レーション空間, 4-11
PCI I/O space: PCI I/O空間, 4-12
initialization:初期化, 4-20
interrupts:割込み, 4-17
memory and I/O space summary(table):メモリ空
間、I/O空間の要約(表), 4-4
memory map(figure):メモリ・マップ(図)
memory space:メモリ空間, 4-7
GP bus memory space:GPバス・メモリ空間
integrated memoy-mapped peripherals: 内
蔵のメモリ・マップされたペリフェラル, 4-10
memory-mapped configuration
region(MMCR) space: Memory-Mapped
Configuration Region (MMCR) レジスタ空間,
4-9
PCI bus memory space: PCIバスのメモリ空間,
4-9
SDRAM space:SDRAM空間, 4-8
operation:動作, 4-3
positive address decoding:ポジティブ・アドレス・デ
コーディング, 4-9
PC/AT peripherals I/O map(table): PC/ATペリフェ
ラルのI/Oマップ(表), 4-13
positive address decoding:ポジティブ・アドレス・デ
コーディング, 3-13
positive address decoding(example):ポジティブ・
アドレス・デコーディング(例), 3-14, 4-15
Programmable Address Region(PAR) registers:
Programmable Address Region (PAR) レジスタ,
4-5
PAR register format(figure):PARレジスタの
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
索引 -1
索引
フォーマット(図), 4-6
resisters:レジスタ, 4-2
software considerations: ソフトウェアに関する考慮,
4-17
write protection violation: 書込み保護違反, 4-17,
4-19
write protection violation: 書込み保護違反, 4-15
AEOI bit field, 15-18
AINIT bit field, 14-14
ALM_AM_PM bit field, 20-8
ALM_AM_PM bit field, 20-9
ALT_CMP bit field, 17-4, 17-5
AM_PM bit field, 20-8
Am486 CPU
Instruction set, xxii
Am5x86 CPU Control(CPUCTL)register
function:機能, 5-6, 7-1, 24-2
usage:使用法, 5-7, 7-3, 7-4
Am5x86 CPU
block diagram(figure):ブロック図(図), 7-2
bus arbitration:バス・アービトレーション, 8-3
cache:キャッシュ
behavior during clock speed changes:クロッ
ク・スピード変更時の動作, 7-4
configuration options(table):コンフィギュレー
ション・オプション(表), 7-4
flushing:フラッシュ, 24-11
memory management:メモリ管理, 7-4
performance considerations:性能の考察, 24-12
clocking considerations:クロックの考察, 7-4,
8-7
CPU core identification:CPUコアの確認, 3-7
CPU PLL stabilization time: CPUのPLLが安定する
までの時間, 7-4
CPU speed:CPUのスピード, 3-7
documentation, xxii
floating point unit(FPU): 浮動小数点演算ユニット
(FPU ), 7-3
initialization:初期化, 7-5
hard CPU reset: ハードCPUリセット, 7-5
soft CPU reset:ソフトCPUリセット, 6-7, 7-5
interrupts:割込み, 7-5
latency:遅延, 7-5
operation:動作, 7-3
registers:レジスタ, 7-1
AMDebug Disable signal, See AMDEBUG_DIS
signal.
AMDebug Technology RX/TX Interrupt Mapping
(ICEMAP)register
function:機能, 15-5
AMDEBUG_DIS signal
description:解説, 2-13
usage:使用法, 26-2
AMDebug technology:AMDebugテクノロジ
block diagram(figure):ブロック図(図), 26-2
on-chip trace cache: オンチップ・トレース・キャッ
索引 -2
シュ, 26-6
operation:動作, 26-6
signal descriptions:信号の解説, 2-12
software architecture(figure):ソフトウェア・アーキ
テクチャ(図), 26-2
software performance profiling: ソフトウェア性能
のプロファイリング, 26-7
system design:システム設計, 26-2
12-pin connector format(figure): 12ピン・コネ
クタのフォーマット(図), 26-3
20-pin serial connector format(figure): 20ピ
ン・シリアル・コネクタのフォーマット(図),26-4
connecting the AMDebug port: AMDebug
ポートの接続, 26-2
connector pins(table):コネクター・ピン(表),
26-3
locating the target connector(figure):ターゲッ
ト・コネクタの確認, 26-5
target connector mechanical specifications:
ターゲット・コネクタの機械的仕様, 26-4
Analog Ground signal. See GND_ANLG signal.
Analog Power Supply signal. See VCC_ANLG singal.
Applications. See Élan SC520 microcontroller
Arbiter Priority Control(ARBPRICTL)resister
function:機能, 8-2
usage:使用法, 8-8, 8-20, 8-22
arbitration:アービトレーション、See system arbitration:
システム・アービトレーション
ARBPRICTL register, 8-2
ATTR bit field, 3-10, 3-12, 4-5, 4-15
B
BA1-BA0 signals
control:コントロール, 10-10, 10-19
description:解説, 2-5
Backup Battery Sense signal. See BBATSEN signal
Bank Address signals. See BA1-BA0 signals
BBATSEN signal
description:解説, 2-14
usage:使用法, 6-7, 20-3, 20-4, 20-7, 20-11
BI bit field, 21-8
BIOS. See system initialization:システムの初期化
bit fields
A10-A8, 15-18
A20G_CTL, 6-8
AEOI, 15-18
AINIT, 14-14
ALM_AM_PM, 20-8
ALM_INT_ENB, 20-9
ALT_CMP, 17-4, 17-5
AM_PM, 20-8
ATTR, 3-10, 3-12, 4-5, 4-15
BI, 21-8
BNKx_BNK_CNT, 10-15, 10-15
BNKx_COLWDTH, 10-15, 10-15
BSY, 22-7
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
索引
BUS_MAS, 9-11
bit fields(continued)
BUS_NUM, 9-10
BUS_PARK_SEL, 8-10, 8-22
CACHE_WR_MODE, 7-4, 8-6
CAS_LAT, 10-20, 10-31
CH3_ALT_SIZE, 14-21
CLK_INV_ENB, 22-5
CLK_PIN_DIR, 5-3, 5-9, 16-1, 16-6, 16-7
CLK_PIN_ENB, 5-9
CLK_SEL, 5-8, 22-7
CLK_SRC, 21-10
CLK_TST_SEL, 5-9
CNCR_MODE_ENB, 8-3, 8-22, 24-10
COMPTIM, 14-9
CONT_CMP, 17-4
CPU_PRI, 8-8
CPU_RST. 6-4, 6-7
CTR_MODE, 16-4
DCTS, 21-6
DDCD, 21-6
DDSR, 21-6
DEVICE_NUM, 9-10
DGP, 12-7
DR, 21-7
ECC_CHK_POS, 10-28
EMSI, 21-9
ENABLE, 4-12, 4-17, 9-10, 9-11
ENB, 19-3, 19-4, 19-6
ENH_MODE_ENB, 14-10
EPS, 21-8
ERR_IN_FIFO, 21-8
EXP_SEL, 5-8, 19-4
EXT_CLK, 17-3
FE, 21-8
FIFO_ENB, 21-9, 21-13
FIRST_DLY, 12-8
FUNCTION_NUM, 9-10
GNT_TO_ID, 8-23
GNT_TO_INT_ENB, 8-19, 8-23
GNT_TO_STA, 8-19
GP_ECHO_ENB, 24-10
GP_RST, 6-4, 6-7, 13-22
GPCSx_SEL, 12-3, 13-3, 16-1, 17-1
HI_PRI_0_SEL, 8-8
HI_PRI_1_SEL, 8-8
HOUR_MODE_SEL, 20-7
ICE_HRST_DET, 6-8
ICE_ON_RST, 6-5, 6-7, 24-11
ICE_SRST_DET, 6-8
INT_ENB, 17-4
IRQ_FLG, 19-4, 19-5
LOOP, 21-13
LTIM, 3-19
M_AD_IRQ_ID, 9-27
M_CMD_IRQ_ID, 9-27
M_GINT_MODE, 15-18
M_RETRY_TO, 9-12, 9-28
bit fields(continued)
M_WPOST_ENB, 9-11
MATCH, 4-17
MBIT_ERR, 10-27
MEM_ENB, 9-11, 9-18
MODE, 12-7
MSBF_ENB, 22-5
MULT_INT_ENB, 10-27
NMI_DONE, 15-14
NMI_ENB, 6-7, 15-14, 15-20, 20-10
OE, 21-7, 21-8
OPMODE_SEL, 10-20, 10-30, 10-31, 10-32
OSC_CTL, 20-7, 20-10
OUT2, 21-13
PCI_RST, 6-4, 6-7, 9-29
PE, 21-8
PENB, 21-5, 21-8
PER_INT_ENB, 20-8
PER_INT_FLG, 20-8
PG_SZ, 3-9, 3-10, 4-5
PHS_INV_ENB, 22-5
PIOx_FNC, 13-3, 14-4, 15-2, 21-2, 23-3
PIT_GATE2, 16-4
PIT_OUT2_ENB, 16-4
PIT_OUT2_STA, 16-4
PRT_RST_ENB, 3-4, 6-4, 6-6, 10-29
PRGRST_DET, 6-8
PSC_SEL, 17-3
PWRGOOD_DET, 6-8
RAS_CAS_DLY, 10-21
RAS_PCHG_DLY, 10-21
RATE_SEL, 20-8
REGISTER_NUM, 9-10
RF_CLR, 21-10
RFRT, 21-7, 21-10
RFSH_ENB, 10-19
RFSH_SPD, 10-18
RTC_DIS, 3-21, 20-5
RTC_VRT, 6-7, 20-4
RTG, 17-3
S1_GINT_MODE, 15-18
S2, 15-17, 15-18, 15-19
S2_GINT_MODE, 3-19
S5, 15-17, 15-18, 15-19
SBIT_ERR, 10-27
SD_RST_DET, 6-8
SET, 20-7
SFNM, 15-18
SGL_INT_ENB, 10-27
SNGL, 15-18
SP, 21-8
SUB_DLY, 12-8
SYS_RST, 6-4, 6-5
SZ_ST_ADR, 3-9, 3-10, 4-5
T_DLYTR_ENB, 9-19
T_IRQ_ID, 9-27
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
索引 -3
索引
T_PURGE_RD_ENB, 9-21
bit fields(continued)
T7-T3, 15-18
TARGET, 3-10, 4-5, 4-8, 4-15, 4-18, 9-18
TC_INT, 22-7
TC_INT_ENB, 22-7
TEMT, 21-7
TERI, 21-6
TF_CLR, 21-10
THRE, 21-6
TRNMOD, 14-11, 14-19
UART1_DIS, 3-21
UART2_DIS, 3-21
UIP, 20-7
WB_ENB, 24-10
WB_FLUSH, 11-5, 11-13
WB_TST_ENB, 10-19, 24-2, 24-3, 24-7
WB_WM, 11-9
WDT_RST_DET, 6-8
WIDTH, 12-7
WRST_ENB, 19-4
WRTSEL, 14-9
XTAL_FREQ, 18-3
BNKx_BNK_CNT bit field, 10-15, 10-15
BNKx_COLWDTH bit field, 10-15, 10-15
BOOTCS Control(BOOTCSCTL)register
function:機能, 12-5
usage:使用法, 12-7, 12-14
BOOTCS signal
configuration:設定, 12-2, 12-14
control:コントロール, 3-10
description:解説, 2-6
usage:使用法, 3-5, 3-17, 4-4, 4-7, 4-8, 4-14, 4-20,
19-6, 24-6
BOOTCSCTL register, 12-5
bootstraps
signal description:信号の解説, 25-2
Boundary Scan(BSR)register
function:機能, 25-2
usage:使用法, 25-3, 25-4, 25-16, 25-17
BR/TC signal
control:コントロール, 25-4
description:解説, 2-12
BSY bit field, 22-7
Buffer Chaining Control(GBDMABCCTL) register
function:機能, 14-5
usage:使用法, 14-15
Buffer Chaining Interrupt Enable(GPDMABSINTENB)
register
function:機能, 14-5
Buffer Chaining Status(GPDMABCSTA)register
function:機能, 14-5
Buffer Chaining Valid(GPDMABCVAL)register
function:機能, 14-5
usage:使用法, 14-15
bus arbitration:バス・アービトレーション、See system
arbitration:システム・アービトレーション
索引 -4
Bus Grant signals. See GNT4-GNT0 signals.
Bus Request signals. See REQ4-REQ0 signals.
BUS_MAS bit field, 9-11
BUS_NUM bit field, 9-10
BUS_PARK_SEL bit field, 8-10, 8-22
Bypass(BPR)register
function:機能, 25-2
usage:使用法, 25-4
C
cache. See Am5x86 CPU
CACHE_WR_MODE bit field, 7-4, 8-6
cacheability control, 3-12
CAS_LAT bit field, 10-20, 10-31
CBAR register, 4-2
CBE3-CBE0 signals
description:解説, 2-6
usage:使用法, 2-7
CF_DARM signal
control:コントロール, 24-2
description:解説, 2-12
usage:使用法, 10-19, 24-1, 24-3, 24-12
CF_ROM_GPCS signals
control:コントロール, 24-2
description:解説, 2-12
usage:使用法, 10-19, 24-1, 24-4, 24-5, 24-6, 24-12
CFG2-CFG0 signals
description:解説, 2-13
usage:使用法, 2-6, 6-4, 6-6, 11-3, 12-2, 12-7, 12-14,
24-1
CFG3 signal
description:解説, 2-13
usage:使用法, 16-1
CH3_ALT_SIZE bit field, 14-21
Chip Select Pin Function Select(CSPFS)register
function:機能, 12-5, 13-6, 16-2, 17-2, 23-4
usage:使用法, 12-3, 13-3, 13-22, 16-1, 17-1, 23-5
chip selects. See GPCS7-GPCS0 signals
Class Code/Revision ID(PCICCREVID)register
function, 9-8
Clear To Send signals. See CTS2-CTS1 signals.
CLK_INV_ENB bit field, 22-5
CLK_PIN_DIR bit field, 5-3, 5-9, 16-1, 16-6, 16-7
CLK_PIN_ENB bit field, 5-9
CLK_SEL bit field, 5-8, 22-7
CLK_SRC bit field, 5-8, 21-10
CLK_TST_SEL bit field, 5-9
CLKMEMIN signal
description:解説, 2-5
usage:使用法, 10-6, 10-7, 10-11
CLKMEMOUT signal
description:解説, 2-5
usage:使用法, 10-6, 10-7, 10-11
CLKPCIIN signal
description:解説, 2-6
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
索引
usage:使用法, 9-5
CLKPCIOUT signal
description:解説, 2-7
usage:使用法, 5-5, 9-2, 9-5, 9-6
CLKSEL register, 5-6, 23-4
CLKTEST signal
control:コントロール, 5-3, 5-6, 16-1, 16-2
description:解説, 2-10
usage:使用法, 5-9
CLKTIMER signal
control:コントロール, 5-3, 5-6, 16-1, 16-2
description:解説, 2-10
usage:使用法, 5-8, 5-9, 16-6, 16-7
clock generation and control:クロック生成とコントロール
block diagram(figure):ブロック図(図), 5-2
CLKTEST clock routing(figure):CLKTESTクロッ
ク・ルーティング(図), 5-9
CLKTEST signal:CLKTEST信号, 5-9
CLKTIMER signal:CLKTIMER信号, 5-9
clock distribution(figure):クロック・ディストリビュー
ション(図), 5-3
clock sources(figure):クロック・ソース(図), 5-2
clock startup and lock times(table): クロックのス
タートアップ時間とロック時間(表), 5-2
initialization:初期化, 5-9
internal clock:内部クロック, 5-7
CPU, 5-7
general-purpose(GP)bus:汎用バス, 5-7
general-purpose(GP)timers:汎用タイマー, 5-8
GP-DMA controller:GP-DMAコントローラ, 5-8
PCI bus:PCIバス, 5-7
programmable interval timer(PIT): プログラマ
ブル・インターバル・タイマ, 5-8
real-time clock(RTC): リアル・タイム・クロック,
5-8
ROM/Flash interface:ROM/Flaceインタフェー
ス, 5-7
SDRAM controller:SDRAMコントローラ, 5-7
software timer:ソフトウェア・タイマ
synchronous serial interface(SSI): 同期シリア
ル・インターフェース, 5-8
UART serial ports:UARTシリアル・ポート, 5-8
Watchdog timer: ウオッチドッグ・タイマ, 5-8
operation:動作, 5-7
PLL lock time(table):PLL のロック時間(表), 5-2
PLLs, 5-7
registers:レジスタ, 5-6
signal description:信号解説, 2-10
system design:システム設計, 5-3
bypassing 32.768-kHz
oscillator(figure):32.768kHzの発振器のバイパ
ス(図), 5-5
bypassing 33-MHz
oscillatore(figure):33MHzの発振器のバイパス
(図), 5-6
bypassing internal oscillators:内部発振器のバ
イパス, 2-10, 5-5
clock pin loading: クロック・ピンの負荷, 5-4
crystal selection: 水晶発振子の選択, 5-4
shared signals(table):共有される信号(表), 5-3
timing error and clock accuracy(table):タイミン
グの誤差とクロックの精度(表), 5-5
Clock Select(CLKSEL) register
function:機能, 5-6, 16-2, 21-3, 23-4
usage:使用法, 5-3, 5-9, 16-1, 16-6, 16-7
CMDACK signal
control:コントロール, 25-4
description:解説, 2-12
CNCR_MODE_ENB bit field, 8-3, 8-22, 24-10
code execution control:コード実行制御,3-12
Code Fetch ROM/GPCS signal. See CF_ROM_GPCS
signal.
Code Fetch SDRAM signal. See CF_DRAM signal.
Column Address Strobe signals. See SCASA-SCASB
signals.
Command Acknowledge signal. See CMDACK
signal.
Command or Byte-Enable Bus signals. See CBE3CBE0 signals.
COMPTIM bit field, 14-9
Configuration:設定
signal description:信号の解説, 2-13
Configuration Base Address(CBAR) register
function:機能, 4-2
usage:使用法, 3-4, 4-9, 4-11, 4-17, 4-20
Configuration Input 3 signal. See CFG3 signal.
Configuration Input signals. See CFG2-CFG0
signals.
configuration RAM
function:機能, 20-7
CONT_CMP bit field, 17-4
CPU. See Am5x86 CPU
CPU bus arbitration:CPUバス・アービトレーション、See
system arbitration:システム・アービトレーション
CPU_PRI bit field, 8-8
CPU_RST bit field, 6-4, 6-7
CPUCTL register, 7-1
CSPFS register, 23-4
CTR_MODE bit field, 16-4
CTS2-CTS1 signals
control:コントロール, 13-6, 21-2, 21-3, 21-4
description:解説, 2-9, 21-6
usage:使用法, 21-2, 21-9
D
data buses:データ・バス
boot device configuration: ブート・デバイスの設定,
12-7, 12-14
CFG2 pinstrap:CFG2 ピンストラップ, 2-13
general-purpose(GP) bus data bus:汎用(GP)バ
スのデータ・バス, 2-8
loading:負荷, 10-9, 12-3, 13-4
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
索引 -5
索引
PCI data bus:PCIデータ・バス, 2-6
ROM/Flash controller data bus:ROM/Flashコント
ローラ・データ・バス, 2-6
ROM/Flash controller data bus connection
options(table): ROM/Flashコントローラ・データ・バ
スのコネクション・オプション(表), 12-1
SDQMx signal behavior:SDQMx信号の動き, 10-6
SDRAM controller data bus: SDRAMコントロー
ラ・データ・バス, 2-5
shared buses:共有されるバス, 13-10
voltage isolation: 電圧のアイソレーション, 12-3
Data Carrier Detect signals. See DCD2-DCD1
signals.
Data Input/Output Mask signals. See SDQM3SDQM0 signals.
Data Set Ready signals. See DSR2- DSR1 signals.
data sheet, xxii
Data Strobe signal. See DATASTRB signal.
Data Terminal Ready signals. See DTR2-DTR1
signals.
DATASTRB signal
control:コントロール, 24-2
description:解説, 2-12
usage:使用法, 10-19, 24-1, 24-3, 24-4, 24-12
DBCTL register, 11-4
DCD2-DCD1 signals
control:コントロール, 13-6, 21-2, 21-3, 21-4
description:解説, 2-9, 21-6
usage:使用法, 21-2, 21-9
DCTS bit field, 21-6
DDCD bit field, 21-6
DDSR bit field, 21-6
DEBUG_ENTER signal
description:解説, 2-13
usage:使用法, 26-2
debugging:デバッギング、See chip test and debugging.
See also system test and debugging. See also
シ
AMDebug™ technology:チップ・テスト/デバッギング、
ステム・テスト/デバッギング、AMDebugテクノロジ
Device Identification(DID) register
format:フォーマット, 25-14
function:機能, 25-2
usage:使用法, 25-4, 25-13
Device Select signal. See #DEVSEL signal.
Device/Vendor ID(PCIDEVID) register
function:機能, 9-8
DEVICE_NUM bit field, 9-10
DEVSEL signal
control:コントロール, 9-8
description:解説, 2-7
timing:タイミング, 9-19
usage:使用法 9-3, 9-19
DGP bit field, 12-7
DMA Buffer Chaining Interrupt Mapping
(DMABCINTMAP) register
function:機能, 14-4, 15-5
DMA. See GP-DMA controller:GP-DMAコントローラ
索引 -6
DMABCINTMAP register, 15-5
documentation:資料, xxii
Élan SC520 microcontroller documentation:
ÉlanSC520 マイクロコントローラの資料, xxii
literature ordering:資料の注文, iii, xxiii
world wide web site:ワールド・ワイド・ウェブ・サイト,
xxiii
documentation conventions:表記規則, xxiii
Documentation Notation table:表記規則一覧, xxiii
DR bit field, 21-7
DRAM. See SDRAM controller:SDRAMコントローラ
DRCBENDADR register, 10-10
DRCCFG register, 10-10
DRCCTL register, 10-10
DRCTMCTL register, 10-10
Drive Strength Control(DSCTL) register
function:機能, 10-10, 23-4
usage:使用法, 10-19
DSCTL register, 23-4
DSR2-DSR1 signals
control:コントロール, 13-6, 21-2, 21-3, 21-4
description:解説, 2-9, 21-6
usage:使用法, 21-2
DTR2-DTR1 signals
control:コントロール, 21-4
description:解説, 2-9, 21-6
usage:使用法, 21-2, 21-9
E
ECC Check Bit Position(ECCCKBPOS) register
function:機能, 10-10
usage:使用法, 10-28
ECC Check Code Test(ECCKTEST) register
function:機能, 10-10, 10-24
usage:使用法, 10-17, 24-11
ECC Control(ECCCTL) register
function:機能, 10-10
usage:使用法, 10-27
ECC Interrupt Mapping(ECCMAP) register
function:機能, 10-10, 15-4
ECC Multi-Bit Error Address(ECCMBADD) register
function:機能, 10-10, 24-2
usage:使用法, 10-28
ECC Single-Bit Error Address(ECCSBADD) register
function:機能, 10-10, 24-2
usage:使用法, 10-28
ECC Status(ECCSTA) register
function:機能, 10-10
usage:使用法, 10-27
ECC. See SDRAM controller.
ECC_CHK_POS bit field, 10-28
ECCKBPOS register, 10-10
ECCCKTEST register, 10-10
ECCCTL register, 10-10
ECCMAP register, 15-4
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
索引
ECCMBADD register, 10-10
ECCSBADD register, 10-10
ECCSTA register, 10-10
Élan SC520 microcontroller
applications:アプリケーション, 1-8
digital set top box:デジタル・セット・トップ・ボッ
クス, 1-9
smart residential gateway: スマート・レジデン
ト・ゲートウェイ, 1-8
telephone line concentrator, 1-9
thin client: シン・クライアント, 1-8
architectural overview: アーキテクチャ概要, 1-4
address-mapping: アドレス・マッピング, 1-5
AMDebug™ technology, 1-4
clock generation:クロック生成, 1-6
general-purpose (GP) bus interface: 汎用
(GP )バス・インターフェース, 1-6
integrated peripherals: 内蔵ペリフェラル, 1-7
JTAG boundary scan test interface: JTAG バ
ウンダリ・スキャン・テスト・インターフェース, 1-7
PCI bus interface:PCIバス・インターフェース,
1-5
ROM/Flash controller:ROM/Flash コントロー
ラ, 1-5
SDRAM controller:SDRAMコントローラ, 1-5
system testing and debugging features: シス
テム・テスティングとデバッグ機能, 1-8
x86 architecture: x86アーキテクチャ, 1-4
block diagram:ブロック図, 1-2
crystal specifications:水晶発振器の仕様, xxii
distinctive characteristics: 特徴, 1-1
logic diagram by default pin function: 各ピンを
フォルトの機能でグループ化したロジック図, 2-3
logic diagram by interface: インターフェースごと
にグループ化したロジック図, 2-2
package dimensions: パッケージ寸法, xxii
pin designations:ピンの設計, xxii
register descriptions:レジスタの解説, xxii
thermal characteristics:熱特性, xxii
timing:タイミング, xxii
ÉlanSC520 Microcontroller Revision ID (REVID)
register
function:機能, 7-1
usage:使用法, 25-14
EMSI bit field, 21-9
ENABLE bit field, 4-12, 4-17, 9-10, 9-11
ENB bit field, 19-3, 19-4, 19-6
ENH_MODE_ENB bit field, 14-10
Enter AMDebug Mode signal. See DEBUG_ENTER
signal.
EPS bit field, 21-8
ERR_IN_FIFO bit field, 21-8
EXP_SEL bit field, 5-8, 19-4
EXT_CLK bit field, 17-3
external oscillator:外部オシレータ, 2-10, 5-5
F
FE bit field, 21-8
FERRMAP register, 15-5
fields. See bit fields.
FIFO_ENB bit field, 21-9, 21-13
FIRST_DLY bit field, 12-8
Flash memory. See ROM/Flash controller.
FLASHWR signal
description:解説 2-6
usage:使用法, 24-6
Floating Point Error Interrupt Clear (FPUERRCLR)
register
function:機能, 7-1, 15-7
usage:使用法, 15-12
Floating Point Error Interrupt Mapping (FERRMAP)
register
function:機能, 7-1, 15-5
floating point unit (FPU):浮動殊小数点演算ユニット, 7-3
error handling: エラーのハンドリング, 15-12, 15-19
FPUERRCLR register, 15-7
FRAME signal
description:解説, 2-7
usage:使用法, 9-3, 9-9
FUNCTION_NUM bit field, 9-10
G
general-purpose (GP) bus
block diagram (figure):ブロック図(図), 13-2
bus cycles: バス・サイクル, 13-16
8-bit access of 16-bit I/O device (figure): 16
ビットI/Oデバイスへの8ビッ
ト・データ・アクセス, 13-19
8-bit access of 8-bit I/O device (figure): 8
ビットI/Oデバイスへの8ビット・データ・アクセス,
13-16
16-bit access of 16-bit I/O device (figure):
16ビットI/Oデバイスへの 16ビット・データ・アク
セス, 13-17
16-bit access of 8-bit I/O device (figure): 8
ビットI/Oデバイスへの16ビット・データ・アクセス,
13-17
32-bit access of 16-bit I/O device (figure):
16ビットI/Oデバイスへの 32ビット・データ・アク
セス, 13-18
32-bit access of 8-bit I/O device (figure): 8
ビットI/Oデバイスへの32ビット・データ・アクセス,
13-18
differentiating byte accesses of 16-bit
devices
(table):16ビットデバイスの異なるバイト・アクセ
ス, 13-19
GPIOCS16 and GPMEMCS16 timing:
GPIOCS16とGPMEMCS16のタイミング, 13-19
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
索引 -7
索引
GPRDY timing (figure):GPRDYのタイミング
(図), 13-21
wait states: ウエイト・ステート, 13-20
bus sizing: バス・サイジング, 13-19
dynamic bus sizing override (table):ダイナ
ミック・バス・サイジングによる無効, 13-20
chip select qualification:チップ・セレクトの条件,
13-9
configuration:設定, 4-15
configuring external GP bus devices:外部GPバ
ス・デバイスの設定, 3-7, 3-13
multiple devices on one chip select: 複数の
デバイスで1つのチップ・セレクトを使用する, 3-14
single device performing its own decode: 独
自にデコードを行う単独のデバイス, 3-14
single device using one chip select1つのチッ
プ・セレクトを使用する単独のデバイス:, 3-14
configuring Programmable Address Region x
(PARx) registers:Programmable Address
Region x(PARx) レジスタの設定, 3-8
data sizing:データ・サイジング, 13-9
DMA interface:DMAインタフェース, 13-11
echo mode: エコー・モード, 13-8, 13-10
echo mode minimum timing (table): エコー・
モードの最小タイミング(表), 13-9
GP bus reset:GPバス・リセット, 6-7
I/O space:I/O空間, 4-14
I/O-mapped device support: I/Oマップ・デバイス
のサポート, 13-9
initialization:初期化, 13-22
interrupts:割込み, 13-21
ISA bus compatibility:ISAバスとの互換性, 13-11
ISA signals and GP bus signals (table): ISA信号
とGP バス信号(表), 13-12
latency:遅延, 13-21
8/16-bit GP bus width:8/16ビット GPバス幅,
13-21
noncacheable GP bus:キャッシュ不可のGPバ
ス, 13-21
slow GP bus cycles:遅いGPバス・サイクル ,
13-21
memory space:メモリ空間, 4-9
memory-mapped device support:メモリ・マップさ
れたデバイスのサポート, 13-9
operation:動作, 13-6
overview:概要, 13-1
programmable timing: プログラマブル・タイミング,
13-7
GPRDY, 13-8
programmable timing format (figure): プログ
ラマブル・タイミング・フォーマット(図), 13-8
timing requirements:要求されるタイミング,
13-7
registers:レジスタ, 13-5
serial communications controller interface:
Serial Communications Controllerのインタフェー
ス, 13-14
索引 -8
Am85C30 interface (figure):Am85C30インタ
フェース(図), 13-15
Am85C30 interface timing (figure):Am85C30
インタフェース・タイミング(図), 13-16
sharing address and data bus with ROM/
Flash:ROM/Flashコントローラとのアドレスおよ
びデータ・バスの共用, 13-10
signal descriptions:信号の解説, 2-7, 2-11
Super I/O controller interface:スーパーI/Oコント
ローラのインタフェース, 13-13
Super I/O controller interface (figure):スー
パーI/Oコントローラのインタフェース(図), 13-13
Super I/O interface timing (figure): スーパーI/
Oインタフェース・タイミング(図), 13-14
system design:システム設計, 13-1
external data buffer (figure):外部のデータ・
バッファ
(図), 13-4
loading:負荷, 13-4
shared signals (table):共有される信号(表),
13-3
voltage translation:電圧の変換, 13-4
voltage translation example (figure):電圧の変
換の例(図), 13-5
unaligned accesses: アライメントが合っていない
アクセス, 13-9
usage scenarios:使用例, 13-11
general-purpose (GP) timers
block diagram (figure):ブロック図(図), 17-2
cascaded 32-bit timer: カスケードされた32ビット・
タイマ, 17-6
clocking considerations: クロックに関する考察,
17-5
external clock sources (table):外部のクロッ
ク・ソース(表), 17-6
internal clock sources (table):内部のクロック・
ソース(表), 17-5
configuration:設定, 17-5
GP Timer 0, 17-3
GP Timer 1, 17-3
GP Timer 2, 17-4
Initialization:初期化, 17-8
Interrupts:割込み, 17-6
operating modes:動作モード, 17-4
alternate compare mode:交互比較モード, 17-4
continuous mode:連続モード, 17-4
hardware retrigger mode:ハードウェア・リトリガ・
モード, 17-4
interrupt on terminal count modeターミナル・カウ
ントで割込みモード:, 17-4
prescaler mode:プリスケーラ・モード, 17-4
square wave mode: スクエア・ウェーブ・モード, 17-4
operation:動作, 17-3
registers:レジスタ, 17-2
signal descriptions:信号の解説, 2-10
software considerations:ソフトウェアの考慮, 17-6
combining GP Timer Count elements: GPタ
イマ・カウント・エレメントの結合, 17-6
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
索引
reading the cascaded 32-bit timer: カスケー
ドされた32ビット・タイマの読み込み, 17-6
system design:システム設計, 17-1
shared signals (table):共有される信号(表),
17-1
General-Purpose Address Bus signals. See GPA25GPA0 signals.
General-Purpose Chip Select signals. See GPCS7GPCS0 signals.
General-Purpose CMOS RAM (RTCCMOS) register
function:機能, 20-7
General-Purpose Data Bus signals. See GPD15GPD0 signals.
GND signals
description:解説, 2-14
GND_ANLG signal
description:解説, 2-14
GNT_TO_ID bit field, 8-23
GNT_TO_INT_ENB bit field, 8-19, 8-23
GNT_TO_STA bit field, 8-19
GNT4-GNT0 signals
description:解説, 2-7
usage:使用法, 8-7
GP ALE Offset (GPALEOFF) register
function:機能, 13-6
usage:使用法, 13-8
GP ALE Pulse Width (GPALEW) register
function:機能, 13-6
usage:使用法, 13-8
GP Bus Address Enable signal. See GPAEN signal.
GP Bus Address Latch Enable signal. See GPALE
signal.
GP Bus Byte High Enable signal. See GPBHE signal.
GP Bus Data Bus Buffer Output Enable signal. See
GPDBUFOE signal.
GP Bus DMA Acknowledge signals. See GPDACK3GPDACK0 signals.
GP Bus DMA Request signals. See GPDRQ3GPDRQ0 signals.
GP Bus I/O Chip-Select 16 signal. See GPIOCS16
signal.
GP Bus I/O Read signal. See GPIORD signal.
GP Bus I/O Write signal. See GPIOWR signal.
GP Bus Interrupt Request signals. See GPIRQ10GPIRQ0 signals.
GP Bus Memory Chip-Select 16 signal. See
GPMEMCS16 signal.
GP Bus Memory Read signal. See GPMEMRD signal.
GP Bus Memory Write signal. See GPMEMWR signal.
GP Bus Ready signal. See GPRDY signal.
GP Bus Reset signal. See GPRESET signal.
GP Bus Terminal Count signal. See GPTC signal.
GP Chip Select Data Width (GPCSDW) register
function:機能, 13-5
usage:使用法, 13-9, 13-19, 13-20, 13-22
GP Chip Select Offset (GPCSOFF) register
function:機能, 13-5
usage:使用法, 13-8
GP Chip Select Pulse Width (GPCSPW) register
function:機能, 13-5
usage:使用法, 13-8
GP Chip Select Qualification (GPCSQUAL) register
function:機能, 13-5
usage:使用法, 13-9, 13-22
GP Chip Select Recovery Time (GPCSRT) register
function:機能, 13-5
usage:使用法, 13-8
GP Echo Mode (GPECHO) register
function:機能, 13-5, 24-2
usage:使用法, 13-22, 24-10
GP Read Offset (GPRDOFF) register
function:機能, 13-5
usage:使用法, 13-8
GP Read Pulse Width (GPRDW) register
function:機能, 13-5
usage:使用法, 13-8
GP Timer x Count (GPTMRxCNT) register
function:機能, 17-2, 17-3
usage:使用法, 17-4
GP Timer x Interrupt Mapping (GPTMRxMAP)
register
function:機能, 15-4, 17-3
GP Timer x Maxcount Compare A
(GPTMRxMAXCMPA) register
function:機能, 17-2, 17-3
usage:使用法, 17-4, 17-5, 17-6, 17-7, 17-8
GP Timer x Maxcount Compare B
(GPTMRxMAXCMPB) register
function:機能, 17-2, 17-3
usage:使用法, 17-4, 17-5, 17-6, 17-8
GP Timer x Mode/Control (GPTMRxCTL) register
function:機能, 5-6, 17-2, 17-3
usage:使用法, 5-8, 17-3, 17-4, 17-5, 17-6, 17-8
GP Timers Status (GPTMRSTA) register
function:機能, 17-2
usage:使用法, 17-6
GP timers. See general-purpose (GP) timers.
GP Write Offset (GPWROFF) register
function:機能, 13-6
usage:使用法, 13-8
GP Write Pulse Width (GPWRW) register
function:機能, 13-5
usage:使用法, 13-8
GP_ECHO_ENB bit field, 24-10
GP_RST bit field, 6-4, 6-7, 13-22
GPA25-GPA0 signals
description:解説, 2-6, 2-7
usage:使用法, 2-8, 13-1, 13-4, 13-10, 24-5, 24-6
GPAEN signal
control:コントロール, 13-3, 13-6, 14-4
description:解説, 2-8
usage:使用法, 13-10, 14-9, 14-17, 24-6
GPALE signal
control:コントロール, 13-3, 13-6
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
索引 -9
索引
description:解説, 2-8
usage:使用法, 13-7, 24-6
GPALEOFF register, 13-6
GPALEW register, 13-6
GPBHE signal
control:コントロール, 13-3, 13-6
description:解説, 2-8
usage:使用法, 13-19
GPCS7-GPCS0 signals
configuration:設定, 3-13, 4-5, 4-9, 4-15, 4-19
control:コントロール, 3-10, 12-3, 13-3, 13-5, 13-6,
16-2, 17-1
description:解説, 2-11
usage:使用法, 3-10, 12-3, 13-7, 24-4
GPCSDW register, 13-5
GPCSOFF register, 13-5
GPCSPW register, 13-5
GPCSQUAL register, 13-5
GPCSRT register, 13-5
GPCSx_SEL bit field, 12-3, 13-3, 16-1, 17-1
GPD15-GPD0 signals
description:解説, 2-8
usage:使用法, 12-9, 13-10, 14-9, 24-6, 24-10
GPDACK3-GPDACK0 signals
control:コントロール, 13-3, 13-6, 14-4
description:解説, 2-8
usage:使用法, 14-3
GPDBUFOE signal
control:コントロール, 13-3, 13-6
description:解説, 2-8
usage:使用法, 13-4
GP-DMA Channel x Extended Page (GPDMAEXTPGx)
register
function:機能, 14-4
usage:使用法, 14-11, 14-12
GP-DMA Channel x Extended Transfer Count
(GPDMAEXTTCx) register
function:機能, 14-5
GP-DMA Channel x Next Address High
(GPDMANXTADDHx) register
function:機能, 14-5, 14-6
usage:使用法, 14-15, 14-18
GP-DMA Channel x Next Address Low
(GPDMANXTADDLx) register
function:機能, 14-5, 14-6
usage:使用法, 14-15, 14-18
GP-DMA Channel x Next Transfer Count High
(GPDMANXTTCHx) register
function:機能, 14-6
usage:使用法, 14-15, 14-18
GP-DMA Channel x Next Transfer Count Low
(GPDMANXTTCLx) register
function:機能, 14-6
usage:使用法, 14-15, 14-18
GP-DMA Control (GPDMACTL) register
function:機能, 5-6, 14-4
usage:使用法, 5-8, 14-10, 14-18, 14-20
索引 -10
GP-DMA controller:GP-DMAコントローラ
addressing GP-DMA channels: GP-DMAチャネル
のアドレッシング, 14-11
16-bit channel address generation (table):
16ビットGP-DMAチャネルのアドレス生成, 14-12
8-bit channel address generation (table): 8
ビットGP-DMAチャネルのアドレス生成, 14-12
enhanced GP-DMA mode:エンハンストGPDMAモード, 14-12
normal GP-DMA mode:ノーマルGP-DMAモー
ド, 14-11
block diagram (figure):ブロック図(図), 14-2
bus cycles:バス・サイクル, 14-16
cycle types (table):サイクル・タイプ(表), 14-16
GP bus I/O to SDRAM:GPバスI/Oから
SDRAM, 14-16
read in demand transfer mode (figure):デマ
ンド転送モードでのGP-DMAリード(図), 14-16
read transfer (figure):リード転送(図), 14-13
read transfer with cache hit (figure): キャッ
シュにヒットした場合のGP-DMA
読出し転送(図), 14-17
verify transfer (figure):ベリファイ転送(図),
14-14
write transfer (figure):ライト転送(図), 14-14
channel mapping:チャネル・マッピング, 14-10
channel mapping (table):, 14-10
clocking considerations:クロックの考慮, 14-18
example configurations:設定例, 14-19
16-bit channel in enhanced mode: エンハン
ストモードの16ビット・チャネル, 14-21
16-bit channel in normal mode:ノーマルモー
ドの16ビット・チャネル, 14-20
8-bit channel in enhanced mode:エンハンス
トモードの8ビット・チャネル, 14-20
8-bit channel in normal mode:ノーマルモード
の8ビット・チャネル 14-19
fly-by transfers: フライ・バイ転送, 14-8
GP bus echo mode:GP バス・エコー・モード, 14-17
GP bus timing:GPバス・タイミング, 13-11
GP-DMA initiators:GP-DMAイニシエータ, 14-9
external I/O devices:外部のI/Oデバイス, 14-9
external memory-mapped I/O devices:外部
のメモリ・マップされたI/Oデバイス, 14-10
internal UARTs:内部UARTs, 14-9
GP-DMA transfer modes
automatic initialization control:自動初期化コ
ントロール, 14-14
block transfer mode:ブロック転送モード, 14-13
buffer chaining:バッファ・チェイニング, 14-15
demand transfer mode:デマンド転送モード,
14-12
priority:優先順位, 14-15
single transfer mode:シングル転送モード, 14-12
transfer types: 転送の種類, 14-13
GP-DMA transfers, 14-8
Initialization:初期化, 14-19
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
索引
Initiator:イニシエータ, 14-8
initiator/target combinations supported (table):
サポートされたイニシエータ/ターゲットのコンビネー
ション(表), 14-9
interrupts:割込み, 14-18
latency:遅延, 14-18
nonpreemptive latency:ノンプリエンプティブ・
レイテンシ, 14-18
preemptive latencyプリエンプティブ・レイテン
シ, 14-19
master and slave core cascading (figure): マス
タ・コアとスレイブ・コア・カスケード, 14-3
operating modes:動作モード, 14-10
enhanced GP-DMA mode:エンハンストGPDMAモード, 14-11
normal GP-DMA mode:ノーマルGP-DMAモー
ド, 14-10
operation:動作, 14-8
overview:概要, 14-1
PCI considerations:PCI の考慮, 14-9
peer-to-peer transfers:peer-to-peer の転送, 14-9
registers:レジスタ, 14-4
signal descriptions:信号の解説, 2-7
software considerations:ソフトウェアの考慮, 14-18
system design:システム設計, 14-3
shared signals (table):共有される信号(表),
14-4
target:ターゲット, 14-8
transfer modes:転送モード, 14-12
GP-DMA Memory-Mapped I/O (GPDMAMMIO)
register
function:機能, 14-4
usage:使用法, 14-10
GP-DMA Resource Channel Map A
(GPDMAEXTCHMAPA) register
function:機能, 14-4
usage:使用法, 14-10
GP-DMA Resource Channel Map B
(GPDMAEXTCHMAPB) register
function:機能, 14-4
usage:使用法, 14-10
GPDMABCCTL register, 14-5
GPDMABCSTA register, 14-5
GPDMABCVAL register, 14-5
GPDMABSINTENB register, 14-5
GPDMACTL register, 14-4
GPDMAEXTCHMAPA register, 14-4
GPDMAEXTCHMAPB register, 14-4
GPDMAEXTPGx register, 14-4, 14-5
GPDMAEXTTCx register, 14-5
GPDMAMMIO register, 14-4
GPDMANXTADDHx register, 14-5, 14-6
GPDMANXTADDLx register, 14-5, 14-6
GPDMANXTTCHx register, 14-6
GPDMANXTTCLx register, 14-5, 14-6
GPDMAxMAR register, 14-7
GPDMAxPG register, 14-7
GPDMAxTC register, 14-7
GPDRQ3-GPDRQ0 signals
control:コントロール, 13-3, 13-6, 14-4
description:解説, 2-8
usage:使用法, 14-3, 14-10
GPECHO register, 13-5
GPIOCS16 signal
control:コントロール, 13-3, 13-6
description:解説, 2-8
timing:タイミング, 13-19
usage:使用法, 13-4, 13-10, 13-11, 24-6
GPIORD signal
control:コントロール, 13-5
description:解説, 2-8
usage:使用法, 13-4, 13-7, 13-9, 13-11, 13-20,
14-9, 14-17, 24-6
GPIOWR signal
control:コントロール, 13-5
description:解説, 2-8
usage:使用法, 13-7, 13-9, 13-11, 13-20, 14-9,
24-6
GPIRQ10-GPIRQ0 signals
control:コントロール, 9-7, 13-3, 13-6, 15-2, 15-4
description:解説, 2-9
usage:使用法, 2-7, 9-2, 13-21, 15-2, 15-5, 15-8,
23-3
GPIRQx Interrupt Mapping (GPxIMAP) register
function:機能, 15-5
GPMEMCS16 signal
control:コントロール, 13-3, 13-6
description:解説, 2-9
timing:タイミング, 13-19
usage:使用法, 13-4, 13-10, 13-11, 24-6
GPMEMRD signal
control:コントロール, 13-5
description:解説, 2-9
usage:使用法, 13-4, 13-7, 13-9, 13-11, 13-20,
14-10,
14-17, 24-4, 24-6
GPMEMWR signal
control:コントロール, 13-5
description:解説, 2-9
usage:使用法, 13-7, 13-9, 13-11, 13-20, 14-10,
14-17, 24-6
GPRDOFF register, 13-5
GPRDW register, 13-5
GPRDY signal
control:コントロール, 13-3, 13-6
description:解説, 2-9
timing:タイミング, 13-20
usage:使用法, 13-4, 13-8, 13-11, 13-13, 13-20,
24-6
GPRESET signal
control:コントロール, 6-3, 13-6, 13-22
description:解説, 2-9
usage:使用法, 6-4, 6-7
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
索引 -11
索引
GPTC signal
control:コントロール, 13-3, 13-6, 14-4
description:解説, 2-9
usage:使用法, 14-3, 14-9, 14-12, 14-18
GPTMRSTA register, 17-2
GPTMRxCNT register, 17-2, 17-3
GPTMRxCTL register, 17-2, 17-3
GPTMRxMAP register, 15-4
GPTMRxMAXCMPA register, 17-2, 17-3
GPTMRxMAXCMPB register, 17-2, 17-3
GPWROFF register, 13-6
GPWRW register, 13-5
GPxIMAP register, 15-5
Ground signal. See GND signal.
H
HBCTL register, 9-7
HBMSTIRQCTL register, 9-7
HBMSTIRQSTA register, 9-7
HBTGTIRQCTL register, 9-7
HBTGTIRQSTA register, 9-7
Header Type (PCIHEADTYPE) register
function:機能, 9-8
HI_PRI_0_SEL bit field, 8-8
HI_PRI_1_SEL bit field, 8-8
Host Bridge Control (HBCTL) register
function:機能, 6-3, 9-7
usage:使用法, 6-7, 9-11, 9-19, 9-21, 9-29
Host Bridge Master Interrupt Address (MSTINTADD)
register
function:機能, 9-7
usage:使用法, 9-12, 9-27
Host Bridge Master Interrupt Control
(HBMSTIRQCTL) register
function, 9-7
usage, 8-19
Host Bridge Master Interrupt Status (HBMSTIRQSTA)
register
function:機能, 9-7
usage:使用法, 9-27
Host Bridge Target Interrupt Control
(HBTGTIRQCTL) register
function:機能, 9-7
usage:使用法, 8-19
Host Bridge Target Interrupt Status (HBTGTIRQSTA)
register
function:機能, 9-7
usage:使用法, 9-27
HOUR_MODE_SEL bit field, 20-7
I
I/O map:I/O マップ、See address mapping:アドレスマッ
ピング
ICE_HRST_DET bit field, 6-8
索引 -12
ICE_ON_RST bit field, 6-5, 6-7, 24-11
ICE_SRST_DET bit field, 6-8
ICEMAP register, 15-5
initialization:初期化
See also system initialization.
address mapping:アドレス・マッピング, 4-20
Am5 x 86® CPU, 7-5
clocks:クロック, 5-9
general-purpose (GP) bus:汎用バス, 13-22
general-purpose (GP) timers:汎用タイマー, 17-8
GP-DMA controller:GP-DMAコントローラ, 14-19
JTAG test access port (TAP) controller:JTAGテ
スト・アクセス・ポート・コントローラ, 25-20
PCI host bridge:PCIホスト・ブリッジ, 9-29
Power-on reset, 6-9
programmable input/output (PIO):プログラマブ
ル・インプット/アウトプット, 23-6
programmable interrupt controller (PIC): プログ
ラマブル・インタラプト・コントローラ, 15-20
programmable interval timer (PIT): プログラマブ
ル・インターバル・タイマ, 16-7
read buffer: リード・バッファ, 11-15
real-time clock (RTC): リアル・タイム・クロック, 20-10
reset types:リセット・タイプ, 6-3
ROM/Flash controller:ROM/Flashコントローラ,
12-14
SDRAM controller:SDRAMコントローラ, 10-29
software timer:ソフトウェア・タイマー, 18-3
synchronous serial interface (SSI): 同期シリアル・
インタフェース, 22-8
system arbiter: システム・アービタ, 8-22
system reset:システム・リセット, 6-4
UART serial ports:UARTシリアル・ポート, 21-13
watchdog timer (WDT):ウォッチドッグ・タイマー,
19-6
write buffer:ライト・バッファ, 11-15
Initiator Ready signal. See IRDY signal.
INST_TRCE signal
description:解説, 2-13
usage:使用法, 26-2
Instruction (IR) register
function:機能, 25-2
usage:使用法, 25-3, 25-3, 25-4, 25-15, 25-17,
25-20
instruction set manual, xxii
Instruction Trace signal. See INST_TRCE signal.
INT_ENB bit field, 17-4
INTA-INTD signals
control:コントロール, 9-7
description:解説, 2-7, 15-4
usage:使用法, 9-2, 15-2, 15-8
Interrupt Control (PICICR) register
function:機能, 15-4
usage:使用法, 3-19, 7-6, 15-14, 15-18, 20-10
Interrupt Pin Polarity (INTPINPOL) register
function:機能, 9-7, 15-4
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
索引
usage:使用法, 3-20
Interrupt Request signals. See INTA-INTD signals.
interrupts. See programmable interrupt controller
(PIC):プログラマブル割込みコントローラ
INTPINPOL register, 15-4
IRDY signal
description:解説, 2-7
usage:使用法, 9-3
IRQ_FLG bit field, 19-4, 19-5
ISA bus compatibility:ISA バス互換性
ISA features not supported, 13-11
ISA signals and GP bus signals (table), 13-12
J
JTAG boundary scan test interface:JTAG バウンダリ・
スキャン・テスト・インタフェース
block diagram (figure):ブロック図(図), 25-1
Boundary Scan register (figure): バウンダリ・ス
キャン・レジスタ(図), 25-1
bus cycles: バス・サイクル, 25-18
data scan (figure):データ・スキャン(図), 25-19
instruction scan (figure):命令スキャン(図),
25-20
clocking considerations:クロックに関しての考慮,
25-20
configuration information: コンフィギュレーション
情報, 25-4
bypass path: bypassパス, 25-5
instruction path: 命令パス, 25-4
main data scan path: 主データ・スキャン・パス,
25-5
Device Identification register (figure): Device
Identificationレジスタ(図), 25-14
Initialization:初期化, 25-20
instruction register:命令レジスタ, 25-3
BYPASS instruction:BYPASS命令, 25-4
EXTEST instruction:EXTEST命令, 25-3
HIGHZ instruction:HIGHZ命令, 25-4
IDCODE instruction:IDCODE命令, 25-4
SAMPLE/PRELOAD instruction:SAMPLE/
PRELOAD命令, 25-3
main data scan path (table):主データ・スキャン・パ
ス(表), 25-5
operation: 動作, 25-2
overview: 概要, 25-1
registers:レジスタ, 25-2
Serial Debug Port Data register (figure): シリア
ル・デバッグ・ポート・データ・レジスタ(図), 25-13
signal descriptions:信号の解説, 2-12
TAP controller state diagram (figure):TAPコント
ローラ・ステートの図(図), 25-15
TAP instruction set (table):TAP instruction セット
(表),25-3
test access port (TAP) controller:テスト・アクセス・
ポート( TAP )コントローラ, 25-14
capture-DR state:capture-DR状態, 25-16
capture-IR state:capture-IR状態, 25-17
exit1-DR state:exit1-DR状態, 25-16
exit1-IR state:exit1-IR状態, 25-18
exit2-DR state:exit2-DR状態, 25-17
exit2-IR state:exit2-IR状態, 25-18
pause-DR state:pause-DR状態, 25-16
pause-IR state:pause-IR状態, 25-18
run-test-idle state:run-test-idle状態, 25-15
select-DR-scan state:select-DR-scan状態,
25-16
select-IR-scan state:select-IR-scan状態, 25-17
shift-DR state:shift-DR状態, 25-16
shift-IR state:shift-IR状態, 25-17
test-logic-reset state:test-logic-reset状態,
25-15
update-DR state:update-DR状態, 25-17
update-IR state:update-IR状態, 25-18
JTAG_TCK signal
description:解説, 2-12
usage:使用法, 25-2, 25-3, 26-2
JTAG_TDI signal
description:解説, 2-12
usage:使用法, 25-2, 25-4, 26-2
JTAG_TDO signal
description:解説, 2-12
usage:使用法, 25-2, 25-3, 25-4, 26-2
JTAG_TMS signal
usage:使用法, 2-12, 25-14, 26-2
JTAG_TRST signal
description:解説, 2-12
usage:使用法, 25-14
L
LF_PLL1 signal
description:解説, 2-10
usage:使用法, 5-2
logic diagram
default pin function:デフォルト・ピンの機能, 2-3
interface:インタフェース, 2-2
LOOP bit field, 21-13
Loop Filter Interface signal. See LF_PLL1 signal.
LTIM bit field, 3-19
M
M_AD_IRQ_ID bit field, 9-27
M_CMD_IRQ_ID bit field, 9-27
M_GINT_MODE bit field, 15-18
M_RETRY_TO bit field, 9-12, 9-28
M_WPOST_ENB bit field, 9-11
MA12-MA0 signals
control:コントロール, 10-10, 10-19
description:解説, 2-5
usage:使用法, 10-31, 24-4, 24-7, 24-9
Master DMA Channel 4-7 Control (MSTDMACTL)
register
function:機能, 14-7
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
索引 -13
索引
Master DMA Channel 4-7 Mask (MSTDMAMSK)
register
function:機能, 14-7
Master DMA Channel 4-7 Mode (MSTDMAMODE)
register
function:機能, 14-7
usage:使用法, 14-11, 14-14, 14-19
Master DMA Channel 4-7 Status (MSTDMASTA)
register
function:機能, 14-7
Master DMA Channel x Memory Address
(GPDMAxMAR) register
function:機能, 14-7
usage:使用法, 14-11, 14-12, 14-18
Master DMA Channel x Page (GPDMAxPG) register
function:機能, 14-7
usage:使用法, 14-11, 14-12
Master DMA Channel x Transfer Count (GPDMAxTC)
register
function:機能, 14-7
usage:使用法, 14-9, 14-18
Master DMA Clear Byte Pointer (MSTDMACBP)
register
function:機能, 14-7
Master DMA Controller Reset (MSTDMARST) register
function:機能, 14-8
usage:使用法, 14-19
Master DMA Controller Temporary (MSTDMATMP)
register
function:機能, 14-8
Master DMA General Mask (MSTDMAGENMSK)
register
function:機能, 14-8
usage:使用法, 14-20
Master DMA Mask Reset (MSTDMAMSKRST) register
function:機能, 14-8
Master PIC Initialization Control Word 1 (MPICICW1)
register
function:機能, 15-6
usage:使用法, 15-16, 15-18
Master PIC Initialization Control Word 2 (MPICICW2)
register
function:機能, 15-6
usage:使用法, 15-16, 15-18
Master PIC Initialization Control Word 3 (MPICICW3)
register
function:機能, 15-7
usage:使用法, 15-16, 15-17, 15-18, 15-19
Master PIC Initialization Control Word 4 (MPICICW4)
register
function:機能, 15-7
usage:使用法, 15-16, 15-17, 15-18
Master PIC In-Service (MPICISR) register
function:機能, 15-6
usage:使用法, 15-17
Master PIC Interrupt Mask (MPICINTMSK) register
function:機能, 15-7
索引 -14
usage:使用法, 15-17
Master PIC Interrupt Mode (MPICMODE) register
function:機能, 15-4
Master PIC Interrupt Request (MPICIR) register
function:機能, 15-6
Master PIC Operation Control Word 2 (MPICOCW2)
register
function:機能, 15-6
usage:使用法, 15-17
Master PIC Operation Control Word 3 (MPICOCW3)
register
function:機能, 15-6
usage:使用法, 15-17
Master Retry Time-Out (PCIMRETRYTO) register
function:機能, 9-8
usage:使用法, 9-12, 9-28
Master Software DRQ(n) Request (MSTDMASWREQ)
register
function:機能, 14-7
MATCH bit field, 4-17
MBIT_ERR bit field, 10-27
MD31-MD0 signals
control:コントロール, 10-10, 10-19, 23-4
description:解説, 2-5, 2-6
usage:使用法, 10-6, 10-9, 24-4, 24-6
MECC6-MECC0 signals
control:コントロール, 10-10, 10-19, 23-4
description:解説, 2-5
usage:使用法, 10-9
MEM_ENB bit field, 9-11, 9-18
Memory Data Bus signals. See MD31-MD0 signals.
Memory Error Correction Code signals. See MECC6MECC0 signals.
memory map. See address mapping:アドレス・マッピ
ング
memory-mapped configuration region:メモリ・マップさ
れた設定領域, 4-1, 4-9
memory space:メモリー空間, 4-4
priority: 優先度, 4-17
relocating:リロケーティング, 4-11, 4-17
memory-mapped configuration region (MMCR)
integrated memory-mapped peripherals: 内蔵の
メモリ・マップされたペリフェラル, 4-10
MMCR. See memory-mapped configuration region:メ
モリ・マップされた設定領域
See also address mapping:アドレス・マッピン
グ
MODE bit field, 12-7
MPICICW1 register, 15-6
MPICICW2 register, 15-6
MPICICW3 register, 15-7
MPICICW4 register, 15-7
MPICINTMSK register, 15-7
MPICIR register, 15-6
MPICISR register, 15-6
MPICMODE register, 15-4
MPICOCW2 register, 15-6
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
索引
MPICOCW3 register, 15-6
MSBF_ENB bit field, 22-5
MSTDMACBP register, 14-7
MSTDMACTL register, 14-7
MSTDMAGENMSK register, 14-8
MSTDMAMODE register, 14-7
MSTDMAMSK register, 14-7
MSTDMAMSKRST register, 14-8
MSTDMARST register, 14-8
MSTDMASTA register, 14-7
MSTDMASWREQ register, 14-7
MSTDMATMP register, 14-8
MSTINTADD register, 9-7
MULT_INT_ENB bit field, 10-27
N
NMI. See programmable interrupt controller (PIC):プ
ログラマブル割込みコントローラ
NMI_DONE bit field, 15-14
NMI_ENB bit field, 6-7, 15-14, 15-20, 20-10
O
OE bit field, 21-7, 21-8
OPMODE_SEL bit field, 10-20, 10-30, 10-31, 10-32
OSC_CTL bit field, 20-7, 20-10
OUT2 bit field, 21-13
P
PAR signal
description:解説, 2-7
Parity Error signal. See PERR signal.
PARx register, 4-2
PC/AT compatibility, 1-7
a20 gate support: a20ゲート・ピン, 6-8
address mapping:アドレス・マッピング, 4-12
general-purpose (GP) bus configuration: 汎用バ
ス(GP )の設定, 13-6
GP-DMA transfers: GP-DMA転送, 14-1, 14-8
interrupt channel mapping (table): 割込みチャネル
のマッピング(表), 15-12
ISA devices:ISAデバイス, 13-11
ISA signals and GP bus signals (table):ISA信号
とGP バス信号(表), 13-12
normal GP-DMA mode:ノーマルGP-DMAモード,
14-11
PC/AT peripherals I/O map (table):PC/AT ペリ
フェラルのI/Oマップ(表), 4-13
PC/AT port logic:PC/AT のポート・ロジック, 6-8,
16-4
programmable interrupt controller (PIC)
configuration: プログラマブル・インタラプト・コント
ローラの設定, 15-18
programmable interval timer (PIT) clock source:
プログラマブル・インターバル・タイマ(PIT)のクロッ
ク・ソース, 16-6
real-time clock (RTC):リアルタイム・クロック, 20-5
Windows compatibility:Windowsとの互換性, 4-16
PC/AT port logic
a20 gate support:a20 ゲートのサポート, 6-8
SCP Command Port register (Port 0064h), 6-8
SCP Data Port register (Port 0060h), 6-8
System Control Port A register (Port 0092h), 6-8
System Control Port B register (Port 0061h), 16-4
PCI Address Data Bus signals. See AD31-AD0
signals.
PCI Bus Arbiter Status (PCIARBSTA) register
function:機能, 8-2
usage:使用法, 8-10, 8-19, 8-23
PCI bus arbitration. See system arbitration.
PCI Bus Clock Input signal. See CLKPCIIN signal.
PCI Bus Clock Output signal. See CLKPCIOUT
signal.
PCI bus. See PCI host bridge:PCホスト・ブリッジ
PCI Configuration Address (PCICFGADR) register
format (figure), 9-10
function:機能, 9-8
usage:使用法, 4-11, 4-12, 9-9, 9-10, 9-17
PCI Configuration Data (PCICFGDATA) register
function:機能, 9-8
usage:使用法, 4-11, 9-9, 9-10, 9-11, 9-17
PCI host bridge
arbitration:アービトレーション, 8-3
block diagram (figure):ブロック図(図), 9-2
トランザ
broken transactions:壊れている( broken)
クション, 8-19
bus arbitration: バス・アービトレーション, 8-3
configuration:設定, 9-9
generating configuration cycles: コンフィギュ
レーション・サイクルの発生, 9-10
configuration space:コンフィギュレーションの空間,
4-11
configuring PCI bus devices
network adapter: PCIバス・デバイスのネット
ワーク・アダプタの設定, 3-16
VGA controller on PCI bus: PCI バス上のVGA
コントローラ, 3-15
host bridge as PCI bus master:PCI バス・マスタと
してのホスト・ブリッジ, 9-11
bus cycles:バス・サイクル, 9-12
configuration read/write (figure): コンフィ
ギュレーション読出し/書込み(表), 9-17
CPU non-posted write cycle (figure):
CPUのポストされない書込みサイクル(表),
9-16
CPU posted write cycle (figure):CPUのポ
ストされた書込みサイクル(表), 9-15
CPU read cycle (figure):CPUの読出しサ
イクル(表), 9-12
CPU read with external target retry
(figure): 外部ターゲットのリトライを伴う
CPU読出し, 9-14
delayed transaction support:ディレイド・トラン
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
索引 -15
索引
ザクションのサポート, 9-12
read cycles:読出しサイクル, 9-12
write posting:ライト・ポスティング, 9-11
host bridge as PCI bus target:PCIバス・ターゲット
としてのホスト・ブリッジ, 9-18
address FIFO: アドレスFIFO, 9-20
burst ordering:バースト・オーダリング, 9-21
bus cycles:バス・サイクル, 9-22
external master SDRAM read (figure):外
部マスタのSDRAM読出し(表), 9-24
external master SDRAM write (figure):外
部マスタのSDRAM書込み(表), 9-22
target disconnect (figure):ターゲット・ディ
スコネクト(表), 9-25
command support:コマンド・サポート, 9-19
data coherency: データ・コヒーレンシ, 9-21
delayed transaction support:ディレイド・トラン
ザクションのサポート, 9-19
DEVSEL timing:DEVSEL タイミング, 9-19
FIFOs and prefetching:FIFOとプリフェッチ, 9-20
target address space:ターゲット・アドレス・ス
ペース, 9-18
I/O space:I/O空間, 4-4, 4-12
initialization:初期化, 9-29
interrupts:割込み, 8-19, 9-27
delayed transaction time-out: ディレイド・トラ
ンザクション・タイム・アウト, 9-27
master abort: マスタ・アボート, 9-27
parity errors: パリティ・エラー, 9-27
retry time-out counter expired: リトライ・タイ
ム・アウト・カウンタの時間切れ, 9-27
system error:システム・エラー, 9-27
target abort:ターゲット・アボート, 9-27
latency:レイテンシ, 9-28
master latency:マスタ・レイテンシ, 9-28
target latency:ターゲット・レイテンシ, 9-28
memory space:メモリ空間, 4-4, 4-9
operation:動作, 9-8
PCI bus arbiter
bus parking:バス・パーキング, 8-7
PCI reset, 6-7
registers:レジスタ, 9-7
SDRAM read buffer:SDRAMリード・バッファ, 11-12
SDRAM write buffer:SDRAMライト・バッファ, 11-12
signal descriptions:信号の解説, 2-6
system design:システム設計, 9-2
clocking in heavily loaded system (figure):
負荷の重いシステムでのクロッキング(表), 9-6
clocking in lightly loaded system (figure):負
荷の軽いシステムでのクロッキング, 9-6
crystal selection implications:水晶発信子の選
択, 9-6
external PCI bus master connection (figure):
外部PCIマスタ・デバイスへの接続, 9-4
external PCI bus target connection (figure):
外部PCI バス・ターゲットへの接続, 9-3
PCI clocking:PCIクロッキング, 9-5
索引 -16
SERR and PERR connection (figure):SERR
とPERRの接続, 9-5
unsupported configuration registers:サポートされ
ないコンフィギュレーション・レジスタ, 9-9
unsupported functions:サポートされない機能, 9-8
PCI Host Bridge Interrupt Mapping (PCIHOSTMAP)
register
function:機能, 8-3, 9-7, 15-4
usage:使用法, 8-19
PCI Interrupt A Mapping (PCIINTAMAP) register
function:機能, 9-7, 15-5
PCI Interrupt B Mapping (PCIINTBMAP) register
function:機能, 9-7, 15-5
PCI Interrupt C Mapping (PCIINTCMAP) register
function:機能, 9-7, 15-5
PCI Interrupt D Mapping (PCIINTDMAP) register
function:機能, 9-7, 15-5
PCI Parity signal. See PAR signal.
PCI_RST bit field, 6-4, 6-7, 9-29
PCIARBSTA register, 8-2
PCICCREVID register, 9-8
PCICFGADR register, 9-8
PCICFGDATA register, 9-8
PCIDEVID register, 9-8
PCIHEADTYPE register, 9-8
PCIHOSTMAP register, 15-4
PCIINTAMAP register, 15-5
PCIINTBMAP register, 15-5
PCIINTCMAP register, 15-5
PCIINTDMAP register, 15-5
PCIMRETRYTO register, 9-8
PCISTACMD register, 9-8
PE bit field, 21-8
PENB bit field, 21-5, 21-8
PER_INT_ENB bit field, 20-8
PER_INT_FLG bit field, 20-8
PERR signal
description:解説, 2-7
usage:使用法, 9-3
PG_SZ bit field, 3-9, 3-10, 4-5
PHS_INV_ENB bit field, 22-5
PIC. See programmable interrupt controller (PIC):プ
ログラマブル割込みコントローラ
PICICR register, 15-4
pins. See signals.
pinstraps
signal descriptions:信号の解説, 2-13
PIO functions. See programmable input/output (PIO).
PIO15-PIO0 Clear (PIOCLR15_0) register
function:機能, 23-4
usage:使用法, 23-5
PIO15-PIO0 Data (PIODATA15_0) register
function:機能, 23-4
usage:使用法, 23-5
PIO15-PIO0 Direction (PIODIR15_0) register
function:機能, 23-4
usage:使用法, 23-5
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
索引
PIO15-PIO0 Pin Function Select (PIOPFS15_0)
register
function:機能, 13-6, 14-4, 15-4, 23-4
usage:使用法, 3-8, 13-3, 14-4, 15-2, 23-3, 23-5
PIO15-PIO0 Set (PIOSET15_0) register
function:機能, 23-4
usage:使用法, 23-5
PIO31-PIO0 signals
control:コントロール, 13-3, 14-4, 15-2, 21-2, 23-3
usage:使用法, 23-6
PIO31-PIO16 Clear (PIOCLR31_16) register
function:機能, 23-4
usage:使用法, 23-5
PIO31-PIO16 Data (PIODATA31_16) register
function:機能, 23-4
usage:使用法, 23-5
PIO31-PIO16 Direction (PIODIR31_16) register
function:機能, 23-4
usage:使用法, 23-5
PIO31-PIO16 Pin Function Select (PIOPFS31_16)
register
function:機能, 13-6, 15-4, 21-3, 23-4
usage:使用法, 3-8, 13-3, 15-2, 21-2, 23-3, 23-5
PIO31-PIO16 Set (PIOSET31_16) register
function:機能, 23-4
usage:使用法, 23-5
PIOCLR15_0 register, 23-4
PIOCLR31_16 register, 23-4
PIODATA15_0 register, 23-4
PIODATA31_16 register, 23-4
PIODIR15_0 register, 23-4
PIODIR31_16 register, 23-4
PIOPFS15_0 register, 23-4
PIOPFS31_16 register, 23-4
PIOSET31_16 register, 23-4
PIOx_FNC bit field, 13-3, 14-4, 15-2, 21-2, 23-3
PIT Channel x Count (PITxCNT) register
function:機能, 16-3
usage:使用法, 16-4, 16-6
PIT Counter Latch Command (PITCNTLAT) register
function:機能, 16-3
PIT Mode Control (PITMODECTL) register
function:機能, 16-3
usage:使用法, 16-4, 16-7
PIT Read-Back Command (PITRDBACK) register
function:機能, 16-3
PIT x Interrupt Mapping (PITxMAP) register
function:機能, 15-4, 16-2
PIT x Status (PITxSTA) register
function:機能, 16-3
PIT. See programmable interval timer (PIT).
PIT_GATE2 bit field, 16-4
PIT_OUT2_ENB bit field, 16-4
PIT_OUT2_STA bit field, 16-4
PITCNTLAT register, 16-3
PITGATE2 signal
control:コントロール, 13-3, 13-6, 16-1, 16-2, 16-4
description:解説, 2-10
PITMODECTL register, 16-3
PITOUT2 signal
control:コントロール, 16-3
description:解説, 2-10
usage:使用法, 16-1, 16-4
PITRDBACK register, 16-3
PITxCNT register, 16-3
PITxMAP register, 15-4
PITxSTA register, 16-3
PLL. See clock generation and control:クロック生成と
コントロール、See also reset generation:リセット生成
power
signal descriptions:信号の解説, 2-14
Power Good signal. See PWRGOOD signal.
Power Supply signals. See VCC_CORE signal,
VCC_I/O signal, and VCC_RTC signal.
power-on reset, 6-9
PRG_RST_ENB bit field, 3-4, 6-4, 6-6, 10-29
PRGRESET signal
control:コントロール, 6-3, 10-10
description:解説, 2-10
timing (figure):タイミング, 6-6
usage:使用法, 3-4, 6-4, 6-6, 6-8, 6-9, 10-10, 10-29
PRGRST_DET bit field, 6-8
Programmable Address Region x (PARx) registers
address region attributes: アドレス領域の属性, 3-12
cacheability control:, 3-12
code execution control:, 3-12
doubleword boundaries: ダブル・ワードの境界, 4-19
external GP bus devices:外部のGPバス・デバイス,
3-13
external ROM devices:外部のROMデバイス, 3-17
format (figure):フォーマット(表), 3-10
function:機能, 4-2, 24-2
maximum region size: 最大領域サイズ, 4-19
PAR register priority: PAR レジスタの優先順位, 3-13
PCI bus devices:PCI バス・デバイス, 3-15
performance considerations of attributes:アトリ
ビュートの性能考察, 3-12
region size:領域サイズ, 4-18
SDRAM regions:SDRAM領域, 3-18
software considerations:ソフトウェアの考慮, 4-17
specifying pages and regions: ページとリージョ
ンの指定, 3-9
start address:スタート・アドレス, 4-18
usage:使用法, 2-11, 3-8, 3-10, 4-5, 12-14, 13-6,
13-9, 13-22, 15-9
worksheet (figure):ワークシート(表), 3-11
write-protection, 3-12
programmable input/output (PIO):プログラマブルI/O
(PIO)
block diagram (figure):ブロック図(図), 23-2
configuration:設定
configuration summary (table):設定のまとめ
(表), 23-5
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
索引 -17
索引
input pins:インプット・ピン, 23-5
output pins:アウトプット・ピン, 23-5
initialization:初期化, 23-6
operation:動作, 23-4
overview:概要, 23-1
PIO31-PIO0 signals:PI031-PI00信号, 23-4
Registers:レジスタ, 23-4
signal descriptions:信号の解説, 2-11
software considerations:ソフトウェアの考慮, 23-5
system design:システム設計, 23-2
shared signals (table):共有される信号(表),
23-3
Programmable Input/Output signals. See PIO31PIO0 signals.
programmable interrupt controller (PIC)
block diagram (figure), 15-3
configuration:設定, 15-16
PC/AT configuration:PC/ATの設定, 15-18
programming:プログラミング, 15-16
configuring interrupt mapping:割込みマップの設
定, 3-19
edge-triggered or level-sensitive interrupts: エッ
ジトリガあるいはレベルセンシティブ割込み, 15-13
initialization:初期化, 15-20
interrupt flow sequence: インタラプト・フロー・シー
ケンス, 15-7
interrupt sharing: 割込みの共有, 15-13
interrupt source routing: 割込みソース・ルーティン
グ, 15-10
disabling the slave controllers: スレーブ・コン
トローラの無効化, 15-13
floating point error handling: 浮動小数点エ
ラーのハンドリング, 15-12
PC/AT compatibility: PC/AT互換, 15-12
polarity inversion of interrupt requests: 割込
み要求の極性反転, 15-10
interrupt source routing (figure): 割込みソース・
ルーティング, 15-11
interrupt sources:割込みソース, 15-8
hardware-generated interrupts: ハードウェア
割込み, 15-8
interrupt sources (figure):割込みソース(図), 15-9
non-maskable interrupts and routing: マスク不可
割込みとルーティング, 15-14
NMI routing (figure):NMIルーティング, 15-15
NMI sharing:NMIの共有, 15-14
operation:動作, 15-7
overview:概要, 15-1
PC/AT interrupt channel mapping (table):PC/AT
割込みチャネル・マッピング(表), 15-12
priority types: 優先順位の種類, 15-16
registers:レジスタ, 15-4
software considerations: ソフトウェアの考察, 15-18
detecting invalid interrupt requests: 有効な割
込み要求の検出, 15-19
disabling the slave controllers: スレーブ・コン
トローラの無効化, 15-19
索引 -18
floating point unit error handling:浮動小数点
ユニット・エラー・ハンドリング, 15-19
interrupt sharing: 割込みの共有, 15-18
system design:システム設計, 15-2
shared signals (table):共有される信号(表),
15-2
programmable interval timer (PIT):プログラマブル・イン
ターバル・タイマ(PIT)
block diagram (figure):ブロック図, 16-2
clocking considerations: クロックについての考察,
16-6
external clock source (table):外部クロック・
ソース(表), 16-6
internal clock source (table):内部クロック・
ソース(表), 16-6
initialization:初期化, 16-7
interrupts:割込み, 16-6
operating modes: オペレーティング・モード, 16-4
hardware-retriggerable one-shot: ハードウェ
ア-リトリガラブル・ワンショット, 16-4
hardware-triggered strobe: ハードウェア-トリ
ガード・ストローブ, 16-5
interrupt on terminal count: ターミナル・カウ
ントでの割込み, 16-4
rate generator: レート・ジェネレータ, 16-5
software-triggered strobe: ソフトウェア-トリ
ガード・ストローブ, 16-5
square wave mode: スクエア・ウェーブ・モード,
16-5
operation:動作, 16-3
overview:概要, 16-1
PIT Channel 0, 16-3
PIT Channel 1, 16-3
PIT Channel 2, 16-4
registers:レジスタ, 16-2
signal descriptions:信号の解説, 2-10
software considerations: ソフトウェアの考察, 16-6
PC/AT-compatible systems:PC/AT互換システ
ム, 16-6
system design:システム設計, 16-1
shared signals (table):共有される信号(表),
16-1
Programmable Interval Timer 2 Gate signal. See
PITGATE2 signal.
Programmable Interval Timer 2 Output signal. See
PITOUT2 signal.
programmable reset: プログラマブル・リセット, 6-6, 10-29
Programmable Reset signal. See PRGRESET signal.
PSC_SEL bit field:, 17-3
pulldown resistors:プルダウン・レジスタ
configuration signals:設定信号, 2-13
ECC devices not installed:インストールされていな
いECCデバイス, 10-9
internal value:内部設定値, 2-4
JTAG boundary scan test interface:JTAG バウン
ダリ・スキャン・テスト・インタフェース, 25-15
JTAG signals:JTAGの信号, 2-12
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
索引
PIO31-PIO0 signals:PI031-PI00信号, 23-1-23-2
PIO31-PIO0 signals (table):PI031-PI00信号, 23-3
SSI devices:SSIデバイス, 22-1
pullup resistors:プルアップ・レジスタ
GP bus external pullups required:必要とされる
GP バスの外部プルアップ, 13-4
GPRDY signal:GPRDY信号, 2-9
internal value:内部設定値, 2-4
JTAG boundary scan test interface:JTAG バウン
ダリ・スキャンテスト・インタフェース, 25-4
JTAG signals:JTAG信号, 2-12
PCI external pullups required:必要とされるPCI外
部プルアップ, 9-3
PIO31-PIO0 signals:PIO31-PIO0信号, 23-1-23-2
PIO31-PIO0 signals (table):PIO31-PIO0信号(表),
23-3
SSI devices:SSIデバイス, 22-1
UART serial port signals:UARTシリアルポート信号,
21-2
PWRGOOD signal
description:解説, 2-10
timing:タイミング, 6-9
usage:使用法,6-2,6-4,6-8,20-5
PWRGOOD_DET bit field:, 6-8
R
RAS_CAS_DLY bit field, 10-21
RAS_PCHG_DLY bit field, 10-21
RATE_SEL bit field, 20-8
read buffer. ライト・バッファとリード・バッファ参照
real-time clock (RTC):リアルタイム・クロック(RTC)
block diagram (figure):ブロック図(図), 20-2
configuration:設定, 20-7
alarm function:アラーム機能, 20-9
date and time: 日付と時間, 20-8
hour format: 時間フォーマット, 20-7
periodic interrupts: 周期的な割込み, 20-8
using RATE_SEL (table): RATE_SEの使用
(表), 20-8
year 2000 issues:2000年問題, 20-9
disabling: ディセーブル, 3-21
initialization:初期化, 20-10
RTC reset:RTCリセット, 20-11
interrupts:割込み, 20-9
operation:動作, 20-7
overview:概要, 20-1
registers:レジスタ, 20-6
RTC reset:RTCリセット, 6-7
software considerations:ソフトウェアの考慮, 20-10
accessing the CMOS memory:CMOSメモリ
へのアクセス, 20-10
initializing the RTC divider chain: RTC分周器
チェーンの初期化, 20-10
legacy NMI enable bit moved:レガシーNMIイ
ネーブル・ビットの移動, 20-10
system design:システム設計, 20-3
backup battery considerations: バックアップ
バッテリに関する考慮, 20-3
circuit with backup battery (figure): バック
アップ・バッテリを使った場合の回路(図), 20-4
circuit without backup battery (figure): バッ
クアップ・バッテリがない回路(図), 20-5
external RTC: 外付けRTC, 20-5
selecting and interfacing a 32.768-kHz
crystal: 32.768 kHz水晶の選択とそのインタ
フェース, 20-5
voltage monitor: 電圧モニタ, 20-2
voltage monitor block diagram (figure): 電圧モニ
タのブロック図(図), 20-3
register set manual:レジスタ・セット・マニュアル, xxii
REGISTER_NUM bit field, 9-10
registers:レジスタ
Address Decode Control (ADDDECCTL), 4-2
Am5 x 86 CPU Control (CPUCTL), 7-1
AMDebug Technology RX/TX Interrupt Mapping
(ICEMAP), 15-5
Arbiter Priority Control (ARBPRICTL), 8-2
BOOTCS Control (BOOTCSCTL), 12-5
Buffer Chaining Control (GPDMABCCTL), 14-5
Buffer Chaining Interrupt Enable
(GPDMABSINTENB), 14-5
Buffer Chaining Status (GPDMABCSTA), 14-5
Buffer Chaining Valid (GPDMABCVAL), 14-5
Chip Select Pin Function Select (CSPFS), 23-4
Class Code/Revision ID (PCICCREVID), 9-8
Clock Select (CLKSEL), 5-6, 23-4
Configuration Base Address (CBAR), 4-2
Device/Vendor ID (PCIDEVID), 9-8
DMA Buffer Chaining Interrupt Mapping
(DMABCINTMAP), 14-4, 15-5
Drive Strength Control (DSCTL), 23-4
ECC Check Bit Position (ECCCKBPOS), 10-10
ECC Check Code Test (ECCCKTEST), 10-10
ECC Control (ECCCTL), 10-10
ECC Interrupt Mapping (ECCMAP), 15-4
ECC Multi-Bit Error Address (ECCMBADD), 10-10
ECC Single-Bit Error Address (ECCSBADD), 10-10
ECC Status (ECCSTA), 10-10
ÉlanSC520 Microcontroller Revision ID (REVID),
7-1
Floating Point Error Interrupt Clear
(FPUERRCLR), 15-7
Floating Point Error Interrupt Mapping
(FERRMAP), 15-5
General-Purpose CMOS RAM (RTCCMOS), 20-7
GP ALE Offset (GPALEOFF), 13-6
GP ALE Pulse Width (GPALEW), 13-6
GP Chip Select Data Width (GPCSDW), 13-5
GP Chip Select Offset (GPCSOFF), 13-5
GP Chip Select Pulse Width (GPCSPW), 13-5
GP Chip Select Qualification (GPCSQUAL), 13-5
GP Chip Select Recovery Time (GPCSRT), 13-5
GP Echo Mode (GPECHO), 13-5
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
索引 -19
索引
registers (continued)
GP Read Offset (GPRDOFF), 13-5
GP Read Pulse Width (GPRDW), 13-5
GP Timer x Count (GPTMRxCNT), 17-2, 17-3
GP Timer x Interrupt Mapping (GPTMRxMAP),
15-4
GP Timer x Maxcount Compare A
(GPTMRxMAXCMPA), 17-2, 17-3
GP Timer x Maxcount Compare B
(GPTMRxMAXCMPB), 17-2, 17-3
GP Timer x Mode/Control (GPTMRxCTL), 17-2,
17-3
GP Timers Status (GPTMRSTA), 17-2
GP Write Offset (GPWROFF), 13-6
GP Write Pulse Width (GPWRW), 13-5
GP-DMA Channel x Extended Page
(GPDMAEXTPGx), 14-4, 14-5
GP-DMA Channel x Extended Transfer Count
(GPDMAEXTTCx), 14-5
GP-DMA Channel x Next Address High
(GPDMANXTADDHx), 14-5, 14-6
GP-DMA Channel x Next Address Low
(GPDMANXTADDLx), 14-5, 14-6
GP-DMA Channel x Next Transfer Count High
(GPDMANXTTCHx), 14-6
GP-DMA Channel x Next Transfer Count Low
(GPDMANXTTCLx), 14-6
GP-DMA Control (GPDMACTL), 14-4
GP-DMA Memory-Mapped I/O (GPDMAMMIO),
14-4
GP-DMA Resource Channel Map A
(GPDMAEXTCHMAPA), 14-4
GP-DMA Resource Channel Map B
(GPDMAEXTCHMAPB), 14-4
GPIRQx Interrupt Mapping (GPxIMAP), 15-5
Header Type (PCIHEADTYPE), 9-8
Host Bridge Control (HBCTL), 9-7
Host Bridge Master Interrupt Address
(MSTINTADD), 9-7
Host Bridge Master Interrupt Control
(HBMSTIRQCTL), 9-7
Host Bridge Master Interrupt Status
(HBMSTIRQSTA), 9-7Host Bridge Target
Interrupt Control (HBTGTIRQCTL), 9-7
Host Bridge Target Interrupt Status
(HBTGTIRQSTA), 9-7
Interrupt Control (PICICR), 15-4
Interrupt Pin Polarity (INTPINPOL), 15-4
Master DMA Channel 4-7 Control
(MSTDMACTL), 14-7
Master DMA Channel 4-7 Mas (MSTDMAMSK),
14-7
Master DMA Channel 4-7 Mode
(MSTDMAMODE), 14-7
Master DMA Channel 4-7 Status (MSTDMASTA),
14-7
索引 -20
registers (continued)
Master DMA Channel x Memory Address
(GPDMAxMAR), 14-7
Master DMA Channel x Page (GPDMAxPG), 14-7
Master DMA Channel x Transfer Count
(GPDMAxTC), 14-7
Master DMA Clear Byte Pointer (MSTDMACBP),
14-7
Master DMA Controller Reset (MSTDMARST),
14-8
Master DMA Controller Temporary
(MSTDMATMP), 14-8
Master DMA General Mask (MSTDMAGENMSK),
14-8
Master DMA Mask Reset (MSTDMAMSKRST),
14-8
Master PIC Initialization Control Word 1
(MPICICW1), 15-6
Master PIC Initialization Control Word 2
(MPICICW2), 15-6
Master PIC Initialization Control Word 3
(MPICICW3), 15-7
Master PIC Initialization Control Word 4
(MPICICW4), 15-7
Master PIC In-Service (MPICISR), 15-6
Master PIC Interrupt Mask (MPICINTMSK), 15-7
Master PIC Interrupt Mode (MPICMODE), 15-4
Master PIC Interrupt Request (MPICIR), 15-6
Master PIC Operation Control Word 2
(MPICOCW2), 15-6
Master PIC Operation Control Word 3
(MPICOCW3), 15-6
Master Retry Time-Out (PCIMRETRYTO), 9-8
Master Software DRQ(n) Request
(MSTDMASWREQ), 14-7
PCI Bus Arbiter Status (PCIARBSTA), 8-2
PCI Configuration Address (PCICFGADR), 9-8
PCI Configuration Data (PCICFGDATA), 9-8
PCI Host Bridge Interrupt Mapping
(PCIHOSTMAP), 15-4
PCI Interrupt A Mapping (PCIINTAMAP), 15-5
PCI Interrupt B Mapping (PCIINTBMAP), 15-5
PCI Interrupt C Mapping (PCIINTCMAP), 15-5
PCI Interrupt D Mapping (PCIINTDMAP), 15-5
PIO15-PIO0 Clear (PIOCLR15_0), 23-4
PIO15-PIO0 Data (PIODATA15_0), 23-4
PIO15-PIO0 Direction (PIODIR15_0), 23-4
PIO15-PIO0 Pin Function Select (PIOPFS15_0),
23-4
PIO15-PIO0 Set (PIOSET15_0), 23-4
PIO31-PIO16 Clear (PIOCLR31_16), 23-4
PIO31-PIO16 Data (PIODATA31_16), 23-4
PIO31-PIO16 Direction (PIODIR31_16), 23-4
PIO31-PIO16 Pin Function Select
(PIOPFS31_16), 23-4
PIO31-PIO16 Set (PIOSET31_16), 23-4
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
索引
registers (continued)
PIT Channel x Count (PITxCNT), 16-3
PIT Counter Latch Command (PITCNTLAT), 16-3
PIT Mode Control (PITMODECTL), 16-3
PIT Read-Back Command (PITRDBACK), 16-3
PIT x Interrupt Mapping (PITxMAP), 15-4
PIT x Status (PITxSTA), 16-3
Programmable Address Region x (PARx), 4-2
Reset Configuration (RESCFG), 6-3
Reset Status (RESSTA), 6-3
ROMCS1 Control (ROMCS1CTL), 12-5
ROMCS2 Control (ROMCS2CTL), 12-5
RTC Alarm Hour (RTCALMHR), 20-6
RTC Alarm Minute (RTCALMMIN), 20-6
RTC Alarm Second (RTCALMSEC), 20-6
RTC Control A (RTCCTLA), 20-7
RTC Control B (RTCCTLB), 20-7
RTC Current Day of the Month (RTCCURDOM),
20-6
RTC Current Day of the Week (RTCCURDOW),
20-6
RTC Current Hour (RTCCURHR), 20-6
RTC Current Minute (RTCCURMIN), 20-6
RTC Current Month (RTCCURMON), 20-6
RTC Current Second (RTCCURSEC), 20-6
RTC Current Year (RTCCURYR), 20-6
RTC Interrupt Mapping (RTCMAP), 15-5
RTC Status C (RTCSTAC), 20-7
RTC Status D (RTCSTAD), 20-7
RTC/CMOS RAM Data Port (RTCDATA), 20-6
RTC/CMOS RAM Index (RTCIDX), 20-6
SCP Command Port (SCPCMD), 6-3
SCP Data Port (SCPDATA), 6-3
SDRAM Bank 0-3 Ending Address
(DRCBENDADR), 10-10
SDRAM Bank Configuration (DRCCFG), 10-10
SDRAM Buffer Control (DBCTL), 11-4
SDRAM Control (DRCCTL), 10-10
SDRAM Timing Control (DRCTMCTL), 10-10
Slave DMA Channel 0-3 Control (SLDMACTL),
14-7
Slave DMA Channel 0-3 Mask (SLDMAMSK), 14-7
Slave DMA Channel 0-3 Mode (SLDMAMODE),
14-7
Slave DMA Channel 0-3 Status (SLDMASTA),
14-7
Slave DMA Channel x Memory Address
(GPDMAxMAR), 14-7
Slave DMA Channel x Page (GPDMAxPG), 14-7
Slave DMA Channel x Transfer Count
(GPDMAxTC), 14-7
Slave DMA Clear Byte Pointer (SLDMACBP), 14-7
Slave DMA Controller Reset (SLDMARST), 14-8
Slave DMA Controller Temporary (SLDMATMP),
14-8
Slave DMA General Mask (SLDMAGENMSK),
14-8
registers (continued)
Slave DMA Mask Reset (SLDMAMSKRST), 14-8
Slave Software DRQ(n) Request
(SLDMASWREQ), 14-7
Slave x PIC Initialization Control Word 1
(SxPICICW1), 15-6
Slave x PIC Initialization Control Word 2
(SxPICICW2), 15-6
Slave x PIC Initialization Control Word 3
(SxPICICW3), 15-7
Slave x PIC Initialization Control Word 4
(SxPICICW4), 15-7
Slave x PIC In-Service (SxPICISR), 15-6
Slave x PIC Interrupt Mask (SxPICINTMSK), 15-7
Slave x PIC Interrupt Mode (SLxPICMODE), 15-4
Slave x PIC Interrupt Request (SxPICIR), 15-6
Slave x PIC Operation Control Word 2
(SxPICOCW2), 15-6
Slave x PIC Operation Control Word 3
(SxPICOCW3), 15-6
Software Interrupt 16-1 Control (SWINT16_1),
15-4
Software Interrupt 22-17/NMI Control
(SWINT22_17), 15-4
Software Timer Configuration (SWTMRCFG), 18-2
Software Timer Microsecond Count
(SWTMRMICRO), 18-2
Software Timer Millisecond Count
(SWTMRMILLI), 18-2
SSI Command (SSICMD), 22-2
SSI Control (SSICTL), 22-2
SSI Interrupt Mapping (SSIMAP), 15-5
SSI Receive (SSIRCV), 22-2
rSSI Status (SSISTA), 22-2
SSI Transmit (SSIXMIT), 22-2
Status/Command (PCISTACMD), 9-8
System Arbiter Control (SYSARBCTL), 8-2
System Arbiter Master Enable (SYSARBMENB),
8-2
System Board Information (SYSINFO), 6-3
System Control Port A (SYSCTLA), 6-3
System Control Port B (SYSCTLB), 16-3
UART x Baud Clock Divisor Latch LSB
(UARTxBCDL), 21-4
UART x Baud Clock Divisor Latch MSB
(UARTxBCDH), 21-4
UART x FIFO Control (UARTxFCR), 21-4
UART x FIFO Control Shadow
(UARTxFCRSHAD), 21-3
UART x General Control (UARTxCTL), 21-3
UART x General Status (UARTxSTA), 21-3
UART x Interrupt Enable (UARTxINTENB), 21-4
UART x Interrupt ID (UARTxINTID), 21-4
UART x Interrupt Mapping (UARTxMAP), 15-5
UART x Line Control (UARTxLCR), 21-4
UART x Line Status (UARTxLSR), 21-4
UART x Modem Control (UARTxMCR), 21-4
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
索引 -21
索引
registers (continued)
UART x Modem Status (UARTxMSR), 21-4
UART x Receive Buffer (UARTxRBR), 21-4
UART x Scratch Pad (UARTxSCRATCH), 21-4
UART x Transmit Holding (UARTxTHR), 21-4
Watchdog Timer Control (WDTMRCTL), 19-2
Watchdog Timer Count High (WDTMRCNTH),
19-3, 19-6
Watchdog Timer Count Low (WDTMRCNTL), 19-2
Watchdog Timer Interrupt Mapping (WDTMAP),
15-5
Write-Protect Violation Interrupt Mapping
(WPVMAP), 15-5
Write-Protect Violation Status (WPVSTA), 4-2
REQ4-REQ0 signals
control:コントロール, 2-7, 8-2
usage:使用法, 8-7
Request To Send signals. See RTS2-RTS1 signals.
RESCFG register, 6-3
Reset Configuration (RESCFG) register
function:機能, 6-3, 10-10, 13-6, 24-2
usage:使用法, 6-4, 6-5, 6-6, 6-7, 10-29, 13-22,
24-11
reset generation
a20 gate support:a20ゲート・サポート, 6-8
block diagram (figure):ブロック図(図), 6-2
core states after system reset (table): システム・
リセット後のコアの状態(表), 6-5
determining reset sources: リセット・ソースの決定,
6-8
GP bus reset:GPバス・リセット, 6-7
hard CPU reset:ハードCPUリセット, 7-5
initialization:初期化, 6-9
latency:遅延, 6-9
operation:動作, 6-3
overview:概要, 6-1
PCI reset:PCIリセット, 6-7
PLL start-up:PLLスタートアップ, 6-8
PLL start-up timing (figure):PLLスタートアップの
タイミング(図), 6-9
power-on reset: 電源投入リセット, 6-9
power-on reset timing (figure): 電源投入リセットの
タイミング(図), 6-9
PRGRESET timing (figure):PRGRESETタイミング
(図), 6-6
programmable reset: プログラマブル・リセット, 6-6,
10-29
registers:レジスタ, 6-3
reset sources (table):リセット・ソース(表), 6-4
reset types:リセット・タイプ, 6-3
reset vector and reset segment: リセット・ベク
ターとリセット・セグメント, 3-4
RTC reset:RTCリセット, 6-7
signal descriptions:信号の解説, 2-10
soft CPU reset:ソフトCPUリセット, 6-7, 7-5
software considerations:ソフトウェアの考慮, 6-8
system design:システム設計, 6-2
索引 -22
system reset:システム・リセット, 6-4
system reset with SDRAM retention: SDRAMを保
存したままのシステム・リセット, 6-6
Reset Latched Input signals. See RSTLD7-RSTLD0
signals.
Reset signal. See RST signal.
Reset Status (RESSTA) register
function:機能, 6-3, 7-1, 10-10, 19-3, 24-3
usage:使用法, 6-8, 24-11
RESSTA register, 6-3
REVID register, 7-1
RF_CLR bit field, 21-10
RFRT bit field, 21-7, 21-10
RFSH_ENB bit field, 10-19
RFSH_SPD bit field, 10-18
RIN2-RIN1 signals
control:コントロール, 13-6, 21-2, 21-3, 21-4
description:解説, 2-9, 21-6
usage:使用法, 21-2, 21-9
Ring Indicate signals. See RIN2-RIN1 signals.
ROM Buffer Output Enable signal. See ROMBUFOE
signal.
ROM/Flash Boot Chip Select signal. See BOOTCS
signal.
ROM/Flash Chip Select signals. See ROMCS2ROMCS1 signals.
ROM/Flash controller
access timing and wait states example (table):
アクセス・タイミングとウエイト・ステートの例(表),
12-9
accesses and ROM width (table): アクセスと
ROMの幅(表), 12-9
address decoding:アドレスのデコード, 12-12
block diagram (figure):ブロック図(図), 12-2
bus cycles:バス・サイクル, 12-9
2 doublewords from 16-bit ROM (figure): 16
ビットROMからの2つのダブルワード(図), 12-11
4 aligned doublewords from 32-bit ROM
(figure):32ビットROMからの4つの並んだダブル
ワード(図), 12-8
4 unaligned doublewords from 8-bit ROM
(figure):8ビットROMからの4つの並んでいない
ダブルワード(図), 12-8
4 words from 16-bit ROM (figures):16ビット
ROMからの4ワード(図), 12-8
burst page access from 32-bit ROM
(figure):32ビットROMからのバースト・ページ・
アクセス(図), 12-10
cache-line fill (figure): キャッシュ・ライン・フィ
ル(図), 12-11
multiple accesses from 8-bit ROM (figure):8
ビットROMからのマルチ・アクセス(図), 12-10
page-mode read access: ページ・モード読出
しアクセス, 12-10
single CPU read access: シングルCPU読出し
アクセス, 12-9
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
索引
word write cycle to Flash memory (figure): フ
ラッシュメモリーへのワード書込みサイクル(図),
12-12
writing to Flash: Flashへの書込み, 12-11
cacheability control:キャッシャビリティの制御, 3-12
code execution control:コード実行制御, 3-12
configuration:設定, 12-7
access timing:アクセス・タイミング, 12-8
operating mode:動作モード, 12-7
ROM location: ROMのロケーション, 12-7
ROM width: ROMの幅, 12-7
configuring external ROM devices
boot device mapping for BIOS shadowing:
BIOSシャドウのためのブートROMデバイス, 3-17
two Flash banks for XIP operating system: オ
ペレーティング・システムを直接実行する
(Execute-In-Place, XIP) 2バンクのFlash, 3-17
device types supported: サポートされるデバイス
の種類, 12-6
initialization:初期化, 12-14
CFGx options for BOOTCS (table): BOOTCS
のためのCFGxオプション(表), 12-14
latency:遅延, 12-13
memory space:メモリ空間, 4-4
operation:動作, 12-5
overview:概要, 12-1
programming Flash:Flashのプログラム, 12-12
registers:レジスタ, 12-5
sharing address and data bus with GP bus:GP
バスとのアドレスおよびデータ・バスの共用, 13-10
signal descriptions:信号の解説, 2-6
software considerations:ソフトウェアの考慮, 12-12
system design:システム設計, 12-2
data bus connection options (table): データ・
バスのコネクション・オプション(表), 12-1
shared signals (table):共有される信号(表),
12-3
voltage isolation: 電圧のアイソレーション, 12-3
voltage isolation examples (figure): 電圧のア
イソレーションの例(図), 12-4
write-protection, 3-12, 3-18
ROM/Flash controller data bus, 2-8
ROM/Flash Read signal. See ROMRD signal.
ROMBUFOE signal
description:解説, 2-6
usage:使用法, 2-8, 12-3
ROMCS1 Control (ROMCS1CTL) register
function:機能, 12-5
usage:使用法, 12-14
ROMCS1CTL register, 12-5
ROMCS2 Control (ROMCS2CTL) register
function:機能, 12-5
usage:使用法, 12-14
ROMCS2CTL register, 12-5
ROMCS2-ROMCS1 signals
control:コントロール, 3-10, 12-3, 13-3, 13-6
description:解説, 2-6
usage:使用法, 3-17, 4-8, 4-14, 12-3, 12-14, 24-6
ROMRD signal
description:解説, 2-6
usage:使用法, 12-3, 24-4, 24-6
Row Address Strobe signals. See SRASA-SRASB
signals.
RST signal
control:コントロール, 9-29
description:解説, 2-7
usage:使用法, 6-4, 6-7, 9-2, 9-3, 9-29
RSTLD7-RSTLD0 signals
description:解説, 2-14
usage:使用法, 6-3, 6-4, 6-5, 6-6
RTC. See real-time clock (RTC).
RTC Alarm Hour (RTCALMHR) register
function:機能, 20-6
usage:使用法, 20-7, 20-10
RTC Alarm Minute (RTCALMMIN) register
function:機能, 20-6
RTC Alarm Second (RTCALMSEC) register
function:機能, 20-6
RTC Control A (RTCCTLA) register
function:機能, 20-7
usage:使用法, 20-7, 20-8, 20-10
RTC Control B (RTCCTLB) registerk
function:機能, 20-7
usage:使用法, 20-7, 20-9, 20-10
RTC Current Day of the Month (RTCCURDOM)
register
function:機能, 20-6
RTC Current Day of the Week (RTCCURDOW)
register
function:機能, 20-6
RTC Current Hour (RTCCURHR) register
function:機能, 20-6
usage:使用法, 20-7
RTC Current Minute (RTCCURMIN) register
function:機能, 20-6
RTC Current Month (RTCCURMON) register
function:機能, 20-6
RTC Current Second (RTCCURSEC) register
function:機能, 20-6
RTC Current Year (RTCCURYR) register
function:機能, 20-6
usage:使用法, 20-9
RTC Interrupt Mapping (RTCMAP) register
function:機能, 15-5
RTC Status C (RTCSTAC) register
function:機能, 20-7
RTC Status D (RTCSTAD) register
function:機能, 20-7
usage:使用法, 6-7, 20-4
RTC/CMOS RAM Data Port (RTCDATA) register
function:機能, 20-6
usage:使用法, 20-10
RTC/CMOS RAM Index (RTCIDX) register
function:機能, 20-6
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
索引 -23
索引
usage:使用法, 20-10
RTC_DIS bit field, 3-21, 20-5
RTC_VRT bit field, 6-7, 20-4
RTCALMHR register, 20-6
RTCALMMIN register, 20-6
RTCALMSEC register, 20-6
RTCCMOS register, 20-7
RTCCTLA register, 20-7
RTCCTLB register, 20-7
RTCCURDOM register, 20-6
RTCCURDOW register, 20-6
RTCCURHR register, 20-6
RTCCURMIN register, 20-6
RTCCURMON register, 20-6
RTCCURSEC register, 20-6
RTCCURYR register, 20-6
RTCDATA register, 20-6
RTCIDX register, 20-6
RTCMAP register, 15-5
RTCSTAC register, 20-7
RTCSTAD register, 20-7
RTG bit field, 17-3
RTS2-RTS1 signals
control:コントロール, 21-4
description:解説, 2-9, 21-6
usage:使用法, 21-2
S
S1_GINT_MODE bit field, 15-18
S2 bit field, 15-17, 15-18, 15-19
S2_GINT_MODE bit field, 3-19
S5 bit field, 15-17, 15-18, 15-19
SBIT_ERR bit field, 10-27
SCASA-SCASB signals
control:コントロール, 10-10, 10-19, 23-4
description:解説, 2-5
usage:使用法, 10-5
SCP Command Port (SCPCMD) register
function:機能, 6-3, 7-1
usage:使用法, 6-7, 6-8
SCP Data Port (SCPDATA) register
function:機能, 6-3, 7-1
usage:使用法, 6-8
SCPCMD register, 6-3
SCPDATA register, 6-3
SCS3-SCS0 signals
control:コントロール, 10-10, 10-19, 23-4
description:解説, 2-5
usage:使用法, 10-1, 10-5, 10-12, 10-30
SD_RST_DET bit field, 6-8
SDQM3-SDQM0 signals
control:コントロール, 10-10, 10-19, 23-4
description:解説, 2-5
usage:使用法, 10-6, 10-28, 24-11
SDRAM Address signals. See MA12-MA0 signals.
SDRAM Bank 0-3 Ending Address (DRCBENDADR)
索引 -24
register
function:機能, 10-10
usage:使用法, 10-32, 10-33, 10-35
SDRAM Bank Configuration (DRCCFG) register
function:機能, 10-10
usage:使用法, 10-15, 10-33
SDRAM Buffer Control (DBCTL) register
function:機能, 11-4, 24-2
usage:使用法, 11-5, 11-9, 11-13, 24-10
SDRAM Chip Select signals. See SCS3-SCS0
signals.
SDRAM Clock Input signal. See CLKMEMIN signal.
SDRAM Clock Output signal. See CLKMEMOUT
signal.
SDRAM Control (DRCCTL) register
function:機能, 10-10, 11-4, 24-2
usage:使用法, 10-18, 10-19, 10-30, 24-2, 24-3,
24-7
SDRAM controller:SDRAMコントローラ
addressing, 10-12
address mapping to MA (table):MAへのアド
レス・マッピング(表), 10-12
page sizes (table):ページ・サイズ(表), 10-16
SDRAM devices supported (table):サポート
されるSDRAMデバイス(表), 10-13
supported SDRAM devices: サポートされる
SDRAMデバイス, 10-13
block diagram (figure):ブロック図(図), 10-2
block diagram detail (figure):ブロック図の詳細
(図), 10-3
buffering:バッファリング, 10-17
bus cycles:バス・サイクル, 10-22
auto refresh cycle (figure):自動リフレッシュ・
サイクル(図), 10-27
burst read cycle (figure): バースト・リード・サ
イクル(図), 10-22
burst read cycle with ECC enabled (figure):
ECCを使用したSDRAMバースト読出しサイクル
(図), 10-25
CPU burst write (figure): CPU のバースト書込
み(図), 10-24
ECC cycles:ECCサイクル, 10-24
mode register access (figure): モード・レジス
タ・アクセス(図), 10-27
read-modify-write cycle with ECC (figure):
ECCを使用したリード・モディファイ・ライト・サイ
クル(図), 10-26
write cycle (figure):書込みサイクル(図), 10-23
cacheability control:キャッシャビリティの制御, 3-12
code execution control:コード実行制御, 3-12
column address configuration (table): カラム・ア
ドレス設定(表), 10-15
configuring GP-DMA buffers with PAR registers,
3-18
control configuration:コントロールの設定, 10-18
drive-strength selection: 出力強度の選択, 10-19
operation mode select: 動作モードの選択, 10-30
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
索引
refresh control: リフレッシュ・コントロール, 10-18
refresh rates (table): リフレッシュ・レート(表),
10-18
write buffer test mode: ライト・バッファ・テスト・
モード, 10-19
error correction code (ECC): エラー訂正コード
(ECC ), 10-16, 10-27, 10-28
initialization:初期化, 10-29
boot process: ブート・プロセス, 10-32
programmable reset: プログラマブル・リセット,
10-29
SDRAM device initialization: SDRAMデバイス
の初期化, 10-30
auto refresh command: 自動リフレッシュ・
コマンド, 10-31
load mode register (table): ロード・モー
ド・レジスタ(表), 10-31
mode register programming: モード・レジ
スタのプログラミング, 10-31
NOP command: NOPコマンド, 10-31
operation mode select: 動作モード選択,
10-20
precharge command: プリチャージ・コマ
ンド, 10-31
sizing algorithm:サイズ判定アルゴリズム, 10-32
external bank column number: 外部バン
クのカラム数, 10-33
internal bank number: 内部バンク数, 10-34
true external bank ending address: 外部
バンクの真の最終アドレス, 10-35
interrupts:割込み, 10-27
multi-bit error: マルチ・ビット・エラー, 10-27
single-bit error:シングル・ビット・エラー, 10-27
latency:遅延, 10-28
memory space:メモリ空間, 4-4, 4-8
operation:動作, 10-11
registers:レジスタ, 10-10
SDRAM support:SDRAMサポート, 10-11
signal descriptions:信号の解説, 2-5
software considerations:ソフトウェアの考慮, 10-28
disabling buffers during configuration:設定中
のバッファのディセーブル, 10-28
ECC errors:ECCエラー, 10-28
write protection: 書込み保護, 10-28
system design:システム設計, 10-1
168-pin SDRAM DIMM configuration
(figure): 168ピンSDRAM DIMMの設定, 10-5
bank configuration (figure): バンクの設定(図),
10-4
clock generation (figure): クロック生成(図),
10-7
clock generation with external driver
(figure): 外部クロック・ドライバによるクロック生
成(図), 10-7
clock loading estimates (table):クロックの負
荷容量の推定値(表), 10-6
clocking:クロッキング, 10-6
delay calculation:遅延の計算, 10-7
estimated capacitance (tables): 推定容量
(表), 10-8
loading:負荷, 10-8
pins:ピン, 10-5
timing configuration:タイミング設定, 10-20
auto-refresh-to-RAS (TRC), 10-21
CAS latency (CL), 10-20
minimum RAS (TRAS), 10-22
RAS precharge (TRP), 10-21
RAS-to-CAS delay (TRCD), 10-21
RAS-to-RAS, 10-21
write-protection, 3-12, 3-18
SDRAM Memory Write Enable signals. See SWEASWEB signals.
SDRAM Timing Control (DRCTMCTL) register
function:機能, 10-10
usage:使用法, 10-20, 10-31, 24-5, 24-9
Serial Data In signals. See SIN2-SIN1 signals.
Serial Data Out signals. See SOUT2-SOUT1 signals.
Serial Debug Port Data (SDPD) register
format:フォーマット, 25-13
function:機能, 25-2
usage:使用法, 25-13
SERR signal
control:コントロール, 9-8
description:解説, 2-7
usage:使用法, 9-3, 9-27
SET bit field, 20-7
Set Interrupt-Enable Flag (STI) instruction, 15-7, 1518, 15-20
SFNM bit field, 15-18
SGL_INT_ENB bit field, 10-27
signal descriptions:信号の説明
AMDebug technology, 2-12
configuration:設定, 2-13
descriptions (table):解説(表), 2-5
general-purpose (GP) bus: 汎用(GP)バス, 2-7,
2-11
general-purpose (GP) timers:汎用(GP)タイマ, 2-10
GP-DMA controller:GP-DMAコントローラ, 2-7
JTAG, 2-12
PCI host bridge:PCIホスト・ブリッジ, 2-6
power:パワー, 2-14
programmable input/output (PIO):プログラマブル
割込みコントローラ(PIO), 2-11
programmable interval timer (PIT):プログラマブ
ル・インターバル・タイマ(PIT), 2-10
reset generation, 2-10
ROM/Flash controller:ROM/Flashコントローラ, 2-6
SDRAM controller:SDRAMコントローラ, 2-5
synchronous serial interface (SSI):同期シリアル・
インタフェース(SSI ), 2-9
UART serial ports:UARTシリアル・ポート, 2-9
signals
32KXTAL2-32KXTAL1, 2-10
33MXTAL2-33MXTAL1, 2-10
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
索引 -25
索引
AD31-AD0, 2-6
AMDEBUG_DIS, 2-13
BA1-BA0, 2-5
BBATSEN, 2-14
BOOTCS,2-6
BR/TC, 2-12
CBE3-CBE0,2-6
signals (continued)
CF_DRAM,2-12
CF_ROM_GPCS,2-12
CFG2-CFG0, 2-13
CFG3, 2-13
CLKMEMIN, 2-5
CLKMEMOUT, 2-5
CLKPCIIN, 2-6
CLKPCIOUT, 2-7
CLKTEST, 2-10
CLKTIMER, 2-10
CMDACK, 2-12
CTS2-CTS1,2-9
DATASTRB, 2-12
DCD2-DCD1,2-9
DEBUG_ENTER, 2-13
DEVSEL,2-7
DSR2-DSR1,2-9
DTR2-DTR1,2-9
FLASHWR,2-6
FRAME,2-7
GND, 2-14
GNT4-GNT0,2-7
GPA25-GPA0, 2-6, 2-7
GPAEN, 2-8
GPALE, 2-8
GPBHE,2-8
GPCS7-GPCS0,2-11
GPD15-GPD0, 2-6, 2-8
GPDACK3-GPDACK0,2-8
GPDBUFOE,2-8
GPDRQ3-GPDRQ0, 2-8
GPIOCS16,2-8
GPIORD,2-8
GPIOWR,2-8
GPIRQ10-GPIRQ0, 2-9
GPMEMCS16,2-9
GPMEMRD,2-9
GPMEMWR,2-9
GPRDY, 2-9
GPRESET, 2-9
GPTC, 2-9
INST_TRCE, 2-13
INTA-INTD,2-7
IRDY,2-7
JTAG_TCK, 2-12
JTAG_TDI, 2-12
JTAG_TDO, 2-12
JTAG_TMS, 2-12
索引 -26
JTAG_TRST, 2-12
LF_PLL1, 2-10
MA12-MA0, 2-5
MD31-MD0, 2-5, 2-6
MECC6-MECC0, 2-5
PAR, 2-7
PERR,2-7
signals (continued)
PIO31-PIO0, 2-11
PITGATE2, 2-10
PITOUT2, 2-10
PRGRESET, 2-10
PWRGOOD, 2-10
REQ4-REQ0,2-7
RIN2-RIN1,2-9
ROMBUFOE,2-6
ROMCS2-ROMCS1,2-6
ROMRD,2-6
RST,2-7
RSTLD7-RSTLD0, 2-14
RTS2-RTS1,2-9
SCASA-SCASB,2-5
SCS3-SCS0,2-5
SDQM3-SDQM0, 2-5
SERR,2-7
SIN2-SIN1, 2-9
SOUT2-SOUT1, 2-9
SRASA-SRASB,2-5
SSI_CLK, 2-10
SSI_DI, 2-10
SSI_DO, 2-10
STOP,2-7
STOP/TX, 2-12
SWEA-SWEB,2-5
TMRIN1-TIMIN0, 2-10
TRDY,2-7
TRIG/TRACE, 2-12
VCC_ANLG, 2-14
VCC_CORE, 2-14
VCC_I/O, 2-14
VCC_RTC, 2-14
WBMSTR2-WBMSTR0, 2-13
SIN2-SIN1 signals
description:解説, 2-9
usage:使用法, 21-2
Slave DMA Channel 0-3 Control (SLDMACTL)
register
function:機能, 14-7
Slave DMA Channel 0-3 Mask (SLDMAMSK) register
function:機能, 14-7
Slave DMA Channel 0-3 Mode (SLDMAMODE)
register
function:機能, 14-7
usage:使用法, 14-14
Slave DMA Channel 0-3 Status (SLDMASTA) register
function:機能, 14-7
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
索引
Slave DMA Channel x Memory Address
(GPDMAxMAR) register
function:機能, 14-7
usage:使用法, 14-11, 14-12, 14-18
Slave DMA Channel x Page (GPDMAxPG) register
function:機能, 14-7
usage:使用法, 14-11, 14-12
Slave DMA Channel x Transfer Count (GPDMAxTC)
register
function:機能, 14-7
usage:使用法, 14-9, 14-18
Slave DMA Clear Byte Pointer (SLDMACBP) register
function:機能, 14-7
Slave DMA Controller Reset (SLDMARST) register
function:機能, 14-8
usage:使用法, 14-19
Slave DMA Controller Temporary (SLDMATMP)
register
function:機能, 14-8
Slave DMA General Mask (SLDMAGENMSK) register
function:機能, 14-8
usage:使用法, 14-19
Slave DMA Mask Reset (SLDMAMSKRST) register
function:機能, 14-8
Slave Software DRQ(n) Request (SLDMASWREQ)
register
function:機能 1,-7
Slave x PIC Initialization Control Word 1 (SxPICICW1)
register
function:機能, 15-6
usage:使用法, 3-19, 15-16
Slave x PIC Initialization Control Word 2 (SxPICICW2)
register
function:機能, 15-6
usage:使用法, 15-16, 15-18
Slave x PIC Initialization Control Word 3 (SxPICICW3)
register
function:機能, 15-7
usage:使用法, 15-16, 15-17
Slave x PIC Initialization Control Word 4 (SxPICICW4)
register
function:機能, 15-7
usage:使用法, 15-17, 15-18
Slave x PIC In-Service (SxPICISR) register
function:機能, 15-6
usage:使用法, 15-17
Slave x PIC Interrupt Mask (SxPICINTMSK) register
function:機能, 15-7
usage:使用法, 15-17
Slave x PIC Interrupt Mode (SLxPICMODE) register
function:機能, 15-4
usage:使用法, 3-19
Slave x PIC Interrupt Request (SxPICIR) register
function:機能, 15-6
Slave x PIC Operation Control Word 2 (SxPICOCW2)
register
function:機能, 15-6
usage:使用法, 15-17
Slave x PIC Operation Control Word 3 (SxPICOCW3)
register
function:機能, 15-6
usage:使用法, 15-17
SLDMACBP register, 14-7
SLDMAGENMSK register, 14-8
SLDMAMODE register, 14-7
SLDMAMSK register, 14-7
SLDMAMSKRST register, 14-8
SLDMARST register, 14-8
SLDMASTA register, 14-7
SLDMASWREQ register, 14-7
SLDMATMP register, 14-8
SLxPICMODE register, 15-4
SNGL bit field, 15-18
Software Interrupt 16-1 Control (SWINT16_1) register
function:機能, 15-4
usage:使用法, 15-8
Software Interrupt 22-17/NMI Control (SWINT22_17)
register
function:機能, 15-4
usage:使用法, 15-8
software timer
block diagram (figure):ブロック図(図), 18-1
configuration:設定, 18-2
initialization:初期化, 18-3
operation:動作, 18-2
overview:概要, 18-1
registers:レジスタ, 18-2
Software Timer Configuration (SWTMRCFG) register
function:機能, 5-6, 18-2
usage:使用法, 5-8, 18-3
Software Timer Microsecond Count (SWTMRMICRO)
register
function:機能, 18-2
usage:使用法, 18-2
Software Timer Millisecond Count (SWTMRMILLI)
register
function:機能, 18-2
usage:使用法, 18-2
SOUT2-SOUT1 signals
description:解説, 2-9
usage:使用法, 21-2
SP bit field, 21-8
SRASA-SRASB signals
control:コントロール, 10-10, 10-19, 23-4
description:解説, 2-5
usage:使用法, 10-5, 10-8
sreset CPU signal, 6-7
SSI. See synchronous serial interface (SSI).
SSI Clock signal. See SSI_CLK signal.
SSI Command (SSICMD) register
function:機能, 22-2
usage:使用法, 22-7, 22-8
SSI Control (SSICTL) register
function:機能, 5-6, 22-2
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
索引 -27
索引
usage:使用法, 5-8, 22-3, 22-5, 22-7, 22-8
SSI Data Input signal. See SSI_DI signal.
SSI Data Output signal. See SSI_DO signal.
SSI Interrupt Mapping (SSIMAP) register
function:機能, 15-5, 22-2
SSI Receive (SSIRCV) register
function:機能, 22-2
usage:使用法, 22-3, 22-8
SSI Status (SSISTA) register
function:機能, 22-2
usage:使用法, 22-7, 22-8
SSI Transmit (SSIXMIT) register
function:機能, 22-2
usage:使用法, 22-3, 22-8
SSI_CLK signal
description:解説, 2-10
usage:使用法, 5-8, 22-1, 22-5, 22-7
SSI_DI signal
description:解説, 2-10
usage:使用法, 22-1, 22-3, 22-5
SSI_DO signal
description:解説 2-10
usage:使用法, 22-1, 22-3, 22-5
SSICMD register, 22-2
SSICTL register, 22-2
SSIMAP register, 15-5
SSIRCV register, 22-2
SSISTA register, 22-2
SSIXMIT register, 22-2
Status/Command (PCISTACMD) register
function:機能, 9-8
usage:使用法, 9-10, 9-18, 9-27
STOP signal
description:解説, 2-7
usage:使用法, 9-3
Stop/Transmit signal. See STOP/TX signal.
STOP/TX signal
control:コントロール, 25-4
description:解説, 2-12
SUB_DLY bit field, 12-8
SWEA-SWEB signals
control:コントロール, 10-10, 10-19, 23-4
description:解説, 2-5
usage:使用法, 10-5
SWINT16_1 register, 15-4
SWINT22_17 register, 15-4
SWT. See software timer.
SWTMRCFG register, 18-2
SWTMRMICRO register, 18-2
SWTMRMILLI register, 18-2
SxPICICW1 register, 15-6
SxPICICW2 register, 15-6
SxPICICW3 register, 15-7
SxPICICW4 register, 15-7
SxPICINTMSK register, 15-7
SxPICIR register, 15-6
SxPICISR register, 15-6
索引 -28
SxPICOCW2 register, 15-6
SxPICOCW3 register, 15-6
synchronous DRAM. See SDRAM controller.
synchronous serial interface (SSI)
block diagram (figure):ブロック図(図), 22-2
bus cycles:バス・サイクル, 22-5
4-bit read cycle:4ビット読出しサイクル, 22-6
burst, 16-bit, and 32-bit cycles: バースト、16
ビット、そして32ビットのサイクル, 22-7
clock phase and clock idle state (figure):ク
ロック・フェーズ/クロック・アイドル・ステート
(図), 22-6
full-duplex, back-to-back transactions
(figure):全二重バックツーバック・トランザクショ
ン(図), 22-7
full-duplex, non-inverted phase, noninverted clock (figure):全二重、インバートされ
ていないフェーズ/クロック(図), 22-6
half-duplex, non-inverted phase and clock
modes (figure):半二重通信、インバートされて
いないフェーズ・モード/クロック・モード(図),
22-4
simultaneous transmit and receive (figure):
SSIの同時の送受信(図), 22-4
TC_INT and BSY_STA timing (figure):TC_INT
とBSY_STAタイミング(図), 22-8
clocking considerations:クロックに関する考慮,
22-7
configuration:設定, 22-5
bit order:ビット順, 22-5
clock idle state:クロック・アイドル状態, 22-5
clock phase:クロック・フェーズ, 22-5
initialization:初期化, 22-8
interrupts:割込み, 22-7
operation:動作, 22-3
overview:概要, 22-1
registers:レジスタ, 22-2
signal descriptions:信号の解説, 2-9
software considerations:ソフトウェアに関する考慮,
22-8
system design:システム設計, 22-1
four-pin interface (figure):4ピン・インタフェー
ス(図), 22-4
three-pin interface (figure):3ピン・インタフェー
ス(図), 22-4
SYS_RST bit field, 6-4, 6-5
SYSARBCTL register, 8-2
SYSARBMENB register, 8-2
SYSCTLA register, 6-3
SYSCTLB register, 16-3
SYSINFO register, 6-3
System Arbiter Control (SYSARBCTL) register
function:機能, 8-2, 24-2
usage:使用法, 8-3, 8-10, 8-19, 8-22, 24-10
System Arbiter Master Enable (SYSARBMENB)
register
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
索引
function:機能, 8-2
usage:使用法, 8-19, 8-23
system arbitration:システム・アービトレーション
arbitration mode changes: アービトレーション・
モードの変更, 8-19
block diagram (figure):ブロック図(図), 8-2
broken transactions:壊れたトランザクション, 8-19
bus cycles: バス・サイクル, 8-11
CPU bus arbitration (figure):CPU バス・アービ
トレーション(図), 8-11
CPU bus cache write-back (figure): キャッ
シュのライト・バックにおけるCPUバス(図), 8-12
CPU-to-PCI cycle (figure):CPU-to-PCIサイク
ル(図), 8-14
nonconcurrent mode arbitration (figure): 非
並列モードでのアービトレーション(図), 8-18
PCI bus arbitration (figure):PCI バス・アービト
レーション(図), 8-15
PCI bus arbitration parking (figure): PCI バ
ス・アービトレーション・パーキング(図), 8-16
CPU bus arbiter: CPU バス・アービタ, 8-5
accessing the PCI host bridge target: PCIホ
スト・ブリッジ・ターゲットのアクセス, 8-6
arbitration protocol: アービトレーション・プロト
コル, 8-5
cache snooping: キャッシュ・スヌーピング, 8-6
clock speed changes: クロック速度変更, 8-7
GP-DMA arbitration:GP-DMAアービトレーショ
ン, 8-7
rotating priority queue (figure):回転プライオリ
ティ・キュー(図), 8-6
skipped master example (figure): スキップさ
れたマスタの例(図), 8-5
initialization:初期化, 8-22
interrupts:割込み, 8-19
latency:遅延, 8-20
concurrent arbitration mode: 並列アービト
レーション・モード, 8-22
concurrent arbitration mode bus parking: 並
列アービトレーション・モードのバス・パーキング,
8-22
CPU, 8-21
high-priority queue:高プライオリティ・キュー,
8-21
low-priority queue:低プライオリティ・キュー, 8-21
nonconcurrent arbitration mode: 非並列アー
ビトレーション・モード, 8-21
simple rotating priority: 単純な回転プライオリ
ティ, 8-20
simple rotating priority queue (figure): 単純
な回転プライオリティ・キュー(図), 8-20
operating modes: 動作モード, 8-3
concurrent arbitration mode:並列アービトレー
ション・モード, 8-4
nonconcurrent arbitration mode:非並列アー
ビトレーション・モード, 8-3
operation:動作, 8-3
PCI bus arbiter:PCI バス・アービター, 8-7
arbitration protocol:アービトレーション・プロト
コル , 8-8
bus parking: バス・パーキング, 8-10
external PCI master queues (figure): 外部の
PCIマスター・キュー(図), 8-9
host bridge master queue (figure): ホスト・ブ
リッジのマスター・キュー(図), 8-9
rearbitration:再アービトレーション, 8-10
registers:レジスタ, 8-2
software considerations:ソフトウェアの考慮, 8-19
write posting: ライト・ポスティング, 8-19
System Board Information (SYSINFO) register
function:機能, 6-3
usage:使用法, 19-6
System Control Port A (SYSCTLA) register
function:機能, 6-3, 7-1
usage:使用法, 6-7, 6-8
System Control Port B (SYSCTLB) register
function:機能, 16-3
usage:使用法, 16-4
System Error signal. See SERR signal.
system initialization:システムの初期化
BIOS initialization sequence: BIOS の初期化シー
ケンス, 3-3
configuration register access:レジスタ・アクセス
の設定, 4-19
CPU core identification: CPUコアの確認, 3-7
CPU speed:CPU のスピード, 3-7
disabling internal peripherals: 内蔵ペリフェラルの
ディセーブル, 3-21
external GP bus devices:外部のGPバス・デバイス,
3-7
multiple devices on one chip select: 複数の
デバイスで1つのチップ・セレクトを使用する, 3-14
single device performing its own decode: 独
自にデコードを行う単独のデバイス, 3-14
single device using one chip select: 1つの
チップ・セレクトを使用する単独のデバイス, 3-14
external ROM devices:外部のROMデバイス
boot device mapping for BIOS shadowing:
BIOSシャドウのためのブートROMデバイス, 3-17
two Flash banks for XIP operating system:
XIPオペレーティング・システムのための2つの
Flash バンク, 3-17
interrupt mapping:割込みマッピング, 3-19
edge-sensitive or level-triggered interrupts:
割込みのエッジ検出またはレベル検出, 3-19
interrupt polarity:割込みの優先順位, 3-20
memory-mapped configuration region (MMCR),
3-3
native embedded initialization sequence: 組み込
みシステムの初期化シーケンス, 3-1
PCI bus devices
network adapter:ネットワーク・アダプタ, 3-16
VGA controller on PCI bus: PCI バス上のVGA
コントローラ, 3-15
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
索引 -29
索引
PCI host bridge and arbitration: PCI ホスト・ブリッ
ジとアービトレーション, 3-20
pin multiplexing: 多重化されたピン, 3-8
Programmable Address Region x (PARx)
regions specifying pages and regions: ページと
リージョンの指定, 3-9
Programmable Address Region x (PARx)
registers:レジスタ, 3-8
address region attributes: アドレス・リージョン
の属性, 3-12
cacheability control, 3-12
code execution control, 3-12
external GP bus devices:外部GPバス・デバイ
ス, 3-13
external ROM devices:外部ROMデバイス, 3-17
format (figure):フォーマット(図), 3-10
PAR register priority: PAR レジスタの優先順
位, 3-13
PCI bus devices:PCIバス・デバイス, 3-15
performance considerations of attributes: 性
能の考察, 3-12
SDRAM regions:SDRAMの領域, 3-18
worksheet (figure):ワークシート(図), 3-11
write-protection:書込み保護, 3-12
programmable I/O pins:プログラマブル I/O ピン,
3-20
reset event:リセット・イベント, 3-4
reset vector and reset segment: リセット・ベク
ターとリセット・セグメント, 3-5
initial near jump example (figure): Initial
Nearジャンプの例(図), 3-6
SDRAM regions
configuring DMA buffers:DMA バッファの設定,
3-18
write-protected code segments: コード・セグ
メントの書込保護, 3-18
system reset:システム・リセット, 6-6
system test and debugging:システム・テスト/デバッギ
ング
cache mode control:キャッシュ・モード・コントロー
ル, 24-10
CPU clock speed control:CPUクロックのスピード・
コントロール, 24-10
disabling write buffer and read buffer: ライト・
バッファとリード・バッファのディスエーブリング, 24-10
ECC check code override: ECCチェック・コード・
オーバーライド, 24-11
echoing integrated peripheral accesses: 内蔵の
周辺デバイス・アクセスをエコーする, 24-10
execution control violation notification:実行制御
違反の通知, 24-11
forcing software interrupts: ソフトウェア割込みの
強制, 24-11
initialization:初期化, 24-12
interrupt masking:割込みのマスキング, 24-11
latency:遅延, 24-11
nonconcurrent arbitration mode:非並列のアービト
索引 -30
レーション・モード, 24-10
operation:動作, 24-3
overview:概要, 24-1
registers:レジスタ, 24-2
reset source identification:リセット・ソースの確認,
24-11
software considerations:ソフトウェアの考慮, 24-11
system design:システム設計, 24-1
loading:負荷, 24-2
logic analyzer use:ロジック・アナライザーの使
用, 24-2
shared signals (table):共有される信号(表),
24-2
system test mode:システム・テスト・モード, 24-3
pin functions:ピンの機能, 24-3
SDRAM read cycle (figure):SDRAM読出しサ
イクル(図), 24-5
SDRAM write cycle (figure):SDRAM書込みサ
イクル(図), 24-4
tracing transactions on GP bus:GP バス上の
トランザクションをトレースする, 24-6
tracing transactions on ROM interface:ROM
インタフェース上のトランザクションをトレース
する, 24-5
write buffer test mode:ライト・バッファのテスト・
モード, 24-7
SDRAM read cycle (figure):SDRAM読出しサ
イクル(図), 24-8
SDRAM write cycle (figure):SDRAM書込みサ
イクル(図), 24-8
WBMSTR2-WBMSTR0 during SDRAM read
cycles (table): SDRAMリードサイクル時の
WBMSTR2_WBMSTR0(表), 24-9
WBMSTR2-WBMSTR0 during write buffer
write cycles (table): ライト・バッファの書込みサ
イクル時のWBMSTR2_WBMSTR0(表), 24-8
write protection violation notification:書込み保護
違反の通知, 24-11
SZ_ST_ADR bit field, 3-9, 3-10, 4-5
T
T_DLYTR_ENB bit field, 9-19
T_IRQ_ID bit field, 9-27
T_PURGE_RD_ENB bit field, 9-21
T7-T3 bit field, 15-18
TARGET bit field, 3-10, 4-5, 4-8, 4-15, 4-18, 9-18
Target Ready signal. See TRDY signal.
TC_INT bit field, 22-7
TC_INT_ENB bit field, 22-7
TEMT bit field, 21-7
TERI bit field, 21-6
test access port (TAP) controller. JTAG バウンダリ・ス
キャン・テスト・インタフェース参照
Test Clock Output signal. See CLKTEST signal.
Test Data Input signal. See JTAG_TDI signal.
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
索引
Test Data Output signal. See JTAG_TDO signal.
Test Mode Select signal. See JTAG_TMS signal.
testing. See JTAG boundary scan test interface. See
also system test and debugging. See also AMDebug
technology: JTAG バウンダリ・スキャン・テスト・インタ
フェース、
チップ・テスト/デバッギング、
システム・テスト/
デバッギング、AMDebugテクノロジ
TF_CLR bit field, 21-10
THRE bit field, 21-6
Timer Clock Input signal. See CLKTIMER signal.
Timer Input 0 and 1 signals. See TMRIN1-TMRIN0
signals.
Timer Output 0 and 1 signals. See TMROUT1TMROUT0 signals.
TMRIN1-TIMIN0 signals
control:コントロール, 13-3, 13-6, 17-1
description:解説, 2-10
usage:使用法, 17-3, 17-4, 17-6
TMROUT1-TMROUT0 signals
control:コントロール, 13-3, 13-6, 17-1
description:解説, 2-10
usage:使用法, 14-3, 17-5
TRDY signal
description:解説, 2-7
usage:使用法, 9-3, 9-20, 9-21
TRIG/TRACE signal
control:コントロール, 25-4
description:解説, 2-12
Trigger/Trace signal. See TRIG/TRACE signal.
TRNMOD bit field, 14-11, 14-19
U
UART serial ports:UARTシリアル・ポート
baud rates, divisors, and clock source (table):
ボーレート, 除数およびクロック・ソース(表), 21-9
block diagram (figure):ブロック図, 21-2
clocking considerations:クロックの考慮, 21-10
configuration:設定, 21-9
baud rate:ボーレート, 21-9
hardware flow control: ハードウェア・フロー・コ
ントロール, 21-9
operating modes:動作モード, 21-9
data reception:データ受信, 21-7
data transmission:データ伝送, 21-6
disabling:ディセーブル, 3-21
DMA interface:DMAインタフェース, 21-10
receive DMA:受信DMA, 21-10
transmit DMA:送信DMA, 21-10
UART as GP-DMA initiator:GP-DMAイニシ
エータとしてのUART, 14-9
error handling:エラー操作, 21-8
break indication:ブレーク表示, 21-8
error reporting:エラー報告, 21-8
framing error:フレーミング・エラー, 21-8
parity error:パリティ・エラー, 21-8
frame configuration (figure):フレームの構成(図),
21-5
frame transmission (figure):フレームの送信(図),
21-5
GP-DMA channel mapping (table):GP-DMA の
チャネル・マッピング(表), 14-10
initialization:初期化, 21-13
interrupts:割込み, 21-10
DMA interrupts:DMA割込み, 21-12
interrupt disable:割込みのディセーブル, 21-13
interrupt priority (table):割込みの優先順位,
21-12
interrupt programming summary (table):割込
みプログラミングのまとめ, 21-11
serial port interrupts: シリアル・ポートの割込み,
21-12
operation:動作, 21-5
overview:概要, 21-1
registers:レジスタ, 21-3
signal descriptions:信号の解説, 2-9
system design:システム設計, 21-2
connection of DTE to DTE (table):DTE から
DTEへの接続(表), 21-3
shared signals (table):共有される信号(表),
21-2
UART x Baud Clock Divisor Latch LSB
(UARTxBCDL) register
function:機能, 21-4
usage:使用法, 21-9
UART x Baud Clock Divisor Latch MSB
(UARTxBCDH) register
function:機能, 21-4
usage:使用法, 21-9
UART x FIFO Control (UARTxFCR) register
function:機能, 21-4
usage:使用法, 21-3, 21-7, 21-9, 21-10, 21-13
UART x FIFO Control Shadow (UARTxFCRSHAD)
register
function:機能, 21-3
usage:使用法, 21-13
UART x General Control (UARTxCTL) register
function:機能, 5-6, 21-3
usage:使用法, 5-8, 21-9, 21-10, 21-11, 21-12
UART x General Status (UARTxSTA) register
function:機能, 21-3
usage:使用法, 21-11, 21-12
UART x Interrupt Enable (UARTxINTENB) register
function:機能, 21-4
usage:使用法, 21-9, 21-11
UART x Interrupt ID (UARTxINTID) register
function:機能, 21-4
usage:使用法, 21-11, 21-12
UART x Interrupt Mapping (UARTxMAP) register
function:機能, 15-5, 21-3, 21-11
UART x Line Control (UARTxLCR) register
function:機能, 21-4
usage:使用法, 21-5, 21-8
UART x Line Status (UARTxLSR) register
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
索引 -31
索引
function:機能, 21-4
usage:使用法, 21-6, 21-7, 21-8, 21-10, 21-11
UART x Modem Control (UARTxMCR) register
function:機能, 21-4
usage:使用法, 21-6, 21-11, 21-13
UART x Modem Status (UARTxMSR) register
function:機能, 21-4
usage:使用法, 21-6, 21-11
UART x Receive Buffer (UARTxRBR) register
function:機能, 21-4
usage:使用法, 21-7, 21-8, 21-10
UART x Scratch Pad (UARTxSCRATCH) register
function:機能, 21-4
UART x Transmit Holding (UARTxTHR) register
function:機能, 21-4
usage:使用法, 21-5, 21-6, 21-7, 21-10
UART1_DIS bit field, 3-21
UART2_DIS bit field, 3-21
UARTxBCDH register, 21-4
UARTxBCDL register, 21-4
UARTxCTL register, 21-3
UARTxFCR register, 21-4
UARTxFCRSHAD register, 21-3
UARTxINTENB register, 21-4
UARTxINTID register, 21-4
UARTxLCR register, 21-4
UARTxLSR register, 21-4
UARTxMAP register, 15-5
UARTxMCR register, 21-4
UARTxMSR register, 21-4
UARTxRBR register, 21-4
UARTxSCRATCH register, 21-4
UARTxSTA register, 21-3
UARTxTHR register, 21-4
UIP bit field, 20-7
universal asynchronous receiver/transmitter (UART):
汎用非同期レシーバ/トランスミッタ、See UART serial
ports:UARTシリアル・ポート
V
VCC_ANLG signal
description:解説, 2-14
usage:使用法, 5-3, 20-4
VCC_CORE signal
description:解説, 2-14
VCC_I/O signal
description:解説, 2-14
VCC_RTC signal
usage:使用法, 2-10, 2-14, 6-9, 20-3, 20-4, 20-11
W
watchdog timer (WDT):ウォッチドッグ・タイマ
AMDebug technology interface:AMDebug・テク
ノロジ・インターフェイス, 19-5
block diagram (figure):ブロック図(図), 19-2
索引 -32
configuration:設定, 19-3
interrupt request generation:割込み要求の発
生, 19-4
keyed sequences:キー・シーケンス, 19-3
system reset generation:システム・リセットの
発生, 19-4
time-out duration:タイムアウト時間, 19-4
initialization:初期化, 19-6
interrupts:割込み, 19-5
operation:動作, 19-3
overview:概要, 19-1
registers:レジスタ, 19-2
software considerations:ソフトウェアの考慮, 19-5
time-out duration (table):タイムアウト時間(表),
19-4
Watchdog Timer Control (WDTMRCTL) register
function:機能, 6-3, 19-2
usage:使用法, 5-8, 19-3, 19-4, 19-5, 19-6
Watchdog Timer Count High (WDTMRCNTH) register
function:機能, 19-3
usage:使用法, 19-6
Watchdog Timer Count Low (WDTMRCNTL) register
function:機能, 19-2
usage:使用法, 19-6
Watchdog Timer Interrupt Mapping (WDTMAP)
register
function:機能, 15-5, 19-3
WB_ENB bit field, 24-10
WB_FLUSH bit field, 11-5, 11-13
WB_TST_ENB bit field, 10-19, 24-2, 24-3, 24-7
WB_WM bit field, 11-9
WBMSTR2-WBMSTR0 signals
control:コントロール, 24-2
description:解説, 2-13
usage:使用法, 10-19, 11-4, 24-1, 24-7, 24-8, 24-12
WDT. See watchdog timer (WDT):ウォッチドッグ・タイマ
WDT_RST_DET bit field, 6-8
WDTMAP register, 15-5
WDTMRCNTH register, 19-3, 19-6
WDTMRCNTL register, 19-2
WDTMRCTL register, 19-2
WIDTH bit field, 12-7
WPVMAP register, 15-5
WPVSTA register, 4-2
write buffer and read buffer:ライト・バッファとリード・
バッファ
block diagram (figure):ブロック図(図), 11-2
data coherency: データのコヒーレンシ, 11-13
disabling during SDRAM sizing or test: SDRAM
サイズ判定やテストの間のディセーブル, 11-13
DMA considerations:DMAに関する考慮, 11-11
initialization:初期化, 11-15
operation:動作, 11-4
PCI considerations:PCIの考慮, 11-12
read cycles:読出しサイクル, 11-12
write cycles:書込みサイクル, 11-12
read buffer:リード・バッファ, 11-10
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
索引
disabled:ディセーブル, 11-10
enabled:イネーブル, 11-10
registers:レジスタ, 11-4
SDRAM bandwidth improvements:SDRAM帯域幅
の向上, 11-13
bus thrashing (figure): バス・スラッシング(図),
11-14
software considerations:ソフトウェアの考慮, 11-13
system design:システム設計, 11-3
shared signals (table):共有される信号(表),
11-4
write buffer:ライト・バッファ, 11-5
disabled:ディセーブル, 11-5
enabled:イネーブル, 11-5
read-merging:リード・マージ, 11-8
read-merging example (figure):リード・マージ
の例(図), 11-9
watermark:ウオータマーク, 11-9
write-collapsing:ライト・コラプス, 11-6
write-collapsing example (figure):ライト・コラ
プスの例, 11-8
write-merging:ライト・マージ, 11-6
Write Buffer Master signals. See WBMSTR2WBMSTR0 signals.
Write-Protect Violation Interrupt Mapping (WPVMAP)
register
function:機能, 15-5
Write-Protect Violation Status (WPVSTA) register
function:機能, 4-2
usage:使用法, 4-19
write-protection:書込み保護, 3-12
WRST_ENB bit field, 19-4
WRTSEL bit field, 14-9
X
XTAL_FREQ bit field, 18-3
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
索引 -33
索引
索引 -34
Élan™ SC520 マイクロコントローラ・ユーザーズ・マニュアル
Fly UP