UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 20232

PowerPC CCR0 - コア コンフィギュレーション レジスタおよびリセット値について

説明

キーワード : cache, PPC, PPC405, CCR0, 0x50700000, 507キャッシュ

PowerPC のメモリ システム機能を変更し、CCR0 (コア コンフィギュレーション レジスタ) を自分のシステム用にコンフィギュレーションしたいのですが、

変更する際に注意することはありますか。また、CCR0 のリセット値は何ですか。『PowerPC Processor Reference Guide』の「Reset and Initialization」の章にある表「SPR Contents Following Reset」には、CCR0 はリセット時に 0x00700000 に割り当てられると記述されていますが、「Register Summary」の章にある「Special-Purpose Registers Sorted by Name」、「Special-Purpose Registers Sorted by SPRN」、「Special-Purpose Registers Sorted by SPRF」の各表には、リセット値は未定義であると記載されています。どちらが正しいですか。

ソリューション

CCR0 レジスタのリセット値には 0x50700000 を使用することをお勧めします。EDK 8.1i 以降のバージョンでは、ブート コードで CCR0 レジスタのリセット値が 0x50700000 に設定されます (これは Virtex-4 にのみ適用)。

このリセット値は、CCR0 を次のように設定します。

ビット番号 名前 昨日

ビット 0:5 予約済み
ビット 6 LWL Load Word as Line を 0 に設定 - 要求されたデータのみを読み込み
ビット 7 LWOA Load Without Allocate を 0 に設定 - 割り当て
ビット 8 SWOA Store Without Allocate を 0 に設定 - 割り当て
ビット 9 DPP1 DCU PLB-Priority Bit 1 を 1 に設定 - ビット 1 の DCU PLB 優先順位 1
ビット 10:11 IPP ICU PLB-Priority Bits 0:1 を 03 に設定 - 最高の PLB 要求優先順位
ビット 12:13 予約済み
ビット 14 U0XE Enable U0 Exception を 0 に設定 - ディスエーブル
ビット 15 LDBE Load-Debug Enable を 0 に設定 - データ側 OCM の読み込みデータは不可視
ビット 16:19 予約済み
ビット 20 PFC Prefetching for Cacheable Regions を 0 に設定 - ディスエーブル
ビット 21 PFNC Prefetching for Noncacheable Regions を 0 に設定 - ディスエーブル
ビット 22 NCRS Non-Cacheable Request Size を 0 に設定 - 要求サイズは 4 ワード
ビット 23 FWOA Fetch Without Allocate を 0 に設定 - 割り当て
ビット 24:26 予約済み
ビット 27 CIS Cache-Information Select を 0 に設定 - 情報はキャッシュ データ
ビット 28:30 予約済み
ビット 31 CWS Cache-Way Select を 0 に設定 - キャッシュ ウェイは A

詳細は、次のサイトから『PowerPC Processor Reference Guide』を参照してください。
http://japan.xilinx.com/xlnx/xweb/xil_publications_showall.jsp?sGlobalNavPick=&sSecondaryNavPick=&category=-1209828&iLanguageID=2

「Memory-System Management」 -> 「Cache Control」 -> 「Core-Configuration Register 0」にある表 「Core-Configuration Register 0 (CCR0) Field Definitions」を参照してください。

このレジスタに変更を加えてもパフォーマンスは向上しません。すべてのシステムに対しリセット値を使用することをお勧めします。システムで、ディスクリプタとデータに対してキャッシュライン トランザクションを実行する場合、キャッシュ可能メモリにディスクリプタとデータを含め、書き込み後または読み出し前に領域を消去してください。

キャッシュの消去方法については、EDK インストール ディレクトリにあるXCache_Flush ファンクションを参照してください。
%Xilinx_EDK%\sw\lib\bsp\standalone_<current_version>\src\ppc405\xcache_l.h
%Xilinx_EDK%\sw\lib\bsp\standalone_<current_version>\src\ppc405\xcache_l.c

この回避策は、PPC405 の PVR (プロセッサ バージョン レジスタ) が 0x20011430 のシリコンでのみ必要です。PPC405 の PVR が 0x20011470 のシリコンの場合は、この回避策を適用する必要はありません (CCR0 はオリジナル リセット値のまま)。すべての製品シリコンには、PVR が 0x20011470 の PPC405 があります。

この情報に基づくと、ブート コードで CCR0 リセット値を 0x50700000 に変更できます。
AR# 20232
日付 12/15/2012
ステータス アクティブ
種類 一般
このページをブックマークに追加