of 220 /220
MicroBlaze プロセッサ リファレンス ガイド エンべデッ ド開発キッ ト EDK 11.4 UG081 (v10.3)

MicroBlaze プロセッサ リファレンス ガイド - Xilinx...MicroBlaze プロセッサ ガイドリファレンス japan.xilinx.com UG081 (v10.3)Xilinx is providing this product

  • Author
    others

  • View
    4

  • Download
    0

Embed Size (px)

Text of MicroBlaze プロセッサ リファレンス ガイド - Xilinx...MicroBlaze プロセッサ...

  • MicroBlaze プロセ ッサ リ フ ァ レンス ガイ ド

    エンべデ ッ ド開発キ ッ ト EDK 11.4

    UG081 (v10.3)

  • Xilinx is providing this product documentation, hereinafter “Information,” to you “AS IS” with no warranty of any kind, express or implied. Xilinx makes no representation that the Information, or any particular implementation thereof, is free from any claims of infringement. You are responsible for obtaining any rights you may require for any implementation based on the Information. All specifications are subject to change without notice.

    XILINX EXPRESSLY DISCLAIMS ANY WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE INFORMATION OR ANY IMPLEMENTATION BASED THEREON, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF INFRINGEMENT AND ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

    Except as stated herein, none of the Information may be copied, reproduced, distributed, republished, downloaded, displayed, posted, or transmitted in any form or by any means including, but not limited to, electronic, mechanical, photocopying, recording, or otherwise, without the prior written consent of Xilinx.

    © 2009 Xilinx, Inc. XILINX, the Xilinx logo, Virtex, Spartan, ISE, and other designated brands included herein are trademarks of Xilinx in the United States and other countries. All other trademarks are the property of their respective owners.

    本資料は英語版 (v.10.3) を翻訳し た もので、 内容に相違が生じ る場合には原文を優先し ます。 資料によ っては英語版の更新に対応し ていないものがあ り ます。

    日本語版は参考用と し てご使用の上、 最新情報につき ま し ては、 必ず最新英語版をご参照 く ださ い。

    MicroBlaze プロセ ッサ リ フ ァ レンス ガイ ド UG081 (v10.3)

    次の表に、 こ の文書の改訂履歴を示し ます。

    日付 バージ ョ ン 改訂内容

    2002 年 10 月 1 日 1.0 EDK 3.1 リ リ ース

    2003 年 3 月 11 日 2.0 EDK 3.2 リ リ ース

    2003 年 9 月 24 日 3.0 EDK 6.1 リ リ ース

    2004 年 2 月 20 日 3.1 EDK 6.2 リ リ ース

    2004 年 8 月 24 日 4.0 EDK 6.3 リ リ ース

    2004 年 9 月 21 日 4.1 EDK 6.3 サービ ス パッ ク 1 用に改訂

    2004 年 11 月 18 日 4.2 EDK 6.3 サービ ス パッ ク 2 用に改訂

    2005 年 1 月 20 日 5.0 EDK 7.1i リ リ ース

    2005 年 4 月 2 日 5.1 EDK 7.1i サービ ス パッ ク 1 用に改訂

    2005 年 5 月 9 日 5.2 EDK 7.1i サービ ス パッ ク 2 用に改訂

    2005 年 10 月 5 日 5.3 EDK 8.1i 用に改訂

    2006 年 2 月 21 日 5.4 EDK 8.1i サービ ス パッ ク 2 用に改訂

    2006 年 6 月 1 日 6.0 EDK 8.2i リ リ ース

    2006 年 7 月 24 日 6.1 EDK 8.2i サービ スパッ ク 1 用に改訂

    2006 年 8 月 21 日 6.2 EDK 8.2i サービ スパッ ク 2 用に改訂

    MicroBlaze プロセ ッサ リ フ ァ レンス ガイ ド japan.xilinx.com UG081 (v10.3)

    http://japan.xilinx.com

  • 2006 年 8 月 29 日 6.3 EDK 8.2i サービ スパッ ク 2 用に改訂

    2006 年 9 月 15 日 7.0 EDK 9.1i リ リ ース

    2007 年 2 月 22 日 7.1 EDK 9.1i サービ スパッ ク 1 用に改訂

    2007 年 3 月 27 日 7.2 EDK 9.1i サービ スパッ ク 2 用に改訂

    2007 年 6 月 25 日 8.0 EDK 9.2i リ リ ース

    2008 年 1 月 17 日 9.0 EDK 10.1 リ リ ース

    2008 年 3 月 4 日 9.1 EDK 10.1 サービ ス パッ ク 1 用に改訂

    2008 年 5 月 14 日 9.2 EDK 10.1 サービ ス パッ ク 2 用に改訂

    2008 年 7 月 14 日 9.3 EDK 10.1 サービ ス パッ ク 3 用に改訂

    2009 年 2 月 4 日 10.0 EDK 11.1 リ リ ース

    2009 年 4 月15 日 10.1 EDK 11.2 リ リ ース

    2009 年 5 月 28 日 10.2 EDK 11.3 リ リ ース

    2009 年 10 月 26 日 10.3 EDK 11.4 リ リ ース

    日付 バージ ョ ン 改訂内容

    UG081 (v10.3) japan.xilinx.com MicroBlaze プロセ ッサ リ フ ァ レンス ガイ ド

    http://japan.xilinx.com

  • MicroBlaze プロセ ッサ リ フ ァ レンス ガイ ド japan.xilinx.com UG081 (v10.3)

    http://japan.xilinx.com

  • 目次

    このマニュ アルについてマニュ アルの内容 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7表記規則. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

    書体 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8オン ラ イ ン マニュ アル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9

    第 1 章 : MicroBlaze アーキテ クチャ概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

    機能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12データ型およびエンデ ィ アン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

    イ ン ス ト ラ ク シ ョ ンのま と め . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15セマフ ォの同期化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25

    レジス タ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27汎用レジス タ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27特殊用途レジス タ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .28

    パイプラ イ ン アーキテ クチャ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523 段パイプラ イ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .525 段パイプラ イ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .52分岐 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .52

    メ モ リ アーキテ クチャ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54特権命令. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55仮想 メ モ リ 管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

    実モード . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .56仮想モード . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57変換ルッ ク アサイ ド バッ フ ァ (TLB) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .59ア ク セス保護 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .65UTLB 管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .66ページ ア ク セスおよびページ変更の記録 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .66

    リ セ ッ ト 、 割 り 込み、 例外、 ブレーク . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67リ セ ッ ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .68ハード ウ ェ ア例外 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .68ブレーク . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .71割 り 込み . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .71ユーザー ベク タ (例外) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .72

    命令キ ャ ッ シュ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .72命令キ ャ ッ シュの機能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .73命令キ ャ ッ シュの動作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .74命令キ ャ ッ シュのソ フ ト ウ ェ ア サポー ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .74

    データ キ ャ ッ シュ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .75データ キ ャ ッ シュの機能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .75データ キ ャ ッ シュの動作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .76データ キ ャ ッ シュの ソ フ ト ウ ェ ア サポー ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .78

    浮動小数点ユニ ッ ト (FPU) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .78フ ォーマ ッ ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .79繰 り 上げ/繰 り 下げ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .79操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .79

    MicroBlaze プロセ ッサ リ フ ァ レンス ガイ ド japan.xilinx.com 5UG081 (v10.3)

    http://japan.xilinx.com

  • 例外 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .80ソ フ ト ウ ェ ア サポー ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

    ラ イブラ リ およびバイナ リ の互換性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .80オペレータ レ イ テンシ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .80C 言語のプロ グ ラ ミ ング . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .81

    高速シンプレ ッ ク ス リ ン ク (FSL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82ハード ウ ェ ア ア ク セラ レータへの FSL の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .83

    デバッ グおよび ト レース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84デバッ グの概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .84ト レースの概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .84

    第 2 章 : MicroBlaze の信号イ ン ターフ ェ イス概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

    機能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .85MicroBlaze I/O の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86プロセ ッ サ ローカル バス (PLB) イ ン ターフ ェ イ ス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91オンチッ プ ペ リ フ ェ ラル バス (OPB) イ ン ターフ ェ イ ス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91ローカル メ モ リ バス (LMB) イ ン ターフ ェ イ ス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

    LMB 信号のイ ン ターフ ェ イ ス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .91LMB ト ラ ンザ ク シ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .93データの読み出しおよび書き込み操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .95

    高速シンプレ ッ ク ス リ ン ク (FSL) イ ン ターフ ェ イ ス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96マス タ FSL 信号のイ ン ターフ ェ イ ス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .96ス レーブ FSL 信号のイ ン ターフ ェ イ ス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .97FSL ト ラ ンザク シ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .97直接 FSL 接続 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .97

    ザイ リ ン ク ス CacheLink (XCL) イ ン ターフ ェ イ ス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99CacheLink 信号のイ ン ターフ ェ イ ス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .100CacheLink ト ラ ンザ ク シ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .101

    デバッ グ イ ン ターフ ェ イ ス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104ト レース イ ン ターフ ェ イ ス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105MicroBlaze コアのコ ンフ ィ ギュ レーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

    第 3 章 : MicroBlaze アプ リ ケーシ ョ ン バイナ リ イ ン ターフ ェ イス (ABI)データ型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113レジス タの使用規則 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114ス タ ッ クの規則 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

    呼び出し規則 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .117メ モ リ モデル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

    スモール データ領域 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .117データ領域 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .117共有の未初期化領域 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .118リ テ ラルまたは定数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .118

    割 り 込みおよび例外処理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

    第 4 章 : MicroBlaze 命令セ ッ ト アーキテ クチャ表記法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121フ ォーマ ッ ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123

    6 japan.xilinx.com MicroBlaze プロセ ッサ リ フ ァ レンス ガイ ドUG081 (v10.3)

    http://japan.xilinx.com

  • このマニュアルについて

    こ のマニ ュ アルでは、 エンべデッ ド開発キ ッ ト に含まれる 32 ビ ッ ト ソ フ ト プロセ ッ サの MicroBlaze™ のハード ウ ェア アーキテ クチャについて説明し ます。

    マニュアルの内容

    こ のマニ ュ アルは、 次の章から構成されています。

    • 第 1 章 「MicroBlaze アーキテ クチャ」 では、MicroBlaze の機能の概要に加え、ビ ッ グ エンデ ィ アン形式、 32 ビ ッ ト の汎用レジス タ、 キ ャ ッ シュのソ フ ト ウ ェ ア サポー ト および高速シンプ レ ッ ク ス リ ン ク イ ン ターフ ェ イ スの情報を説明し ます。

    • 第 2 章 「MicroBlaze の信号イ ン ターフ ェ イ ス」 では、 MicroBlaze への接続に使用でき る信号 イ ン ターフ ェ イ スのタ イプを説明し ます。

    • 第 3 章「MicroBlaze アプ リ ケーシ ョ ン バイナ リ イ ン ターフ ェ イ ス (ABI)」では、 アセンブ リ 言 語でソ フ ト プロセ ッ サ用のソ フ ト ウ ェ アを開発する際に重要なアプ リ ケーシ ョ ン バイナ リ イ ン ターフ ェ イ スについて説明し ます。

    • 第 4 章 「MicroBlaze 命令セ ッ ト アーキテ クチャ」 には、 MicroBlaze の命令セ ッ ト アーキテ ク チャの表記法、 フ ォーマ ッ ト 、 命令が記述されています。

    その他の情報については、 http://japan.xilinx.com/support/mysupport.htm を参照し て く ださ い。 次 の表に、 リ ソースの一覧を示し ます。 この リ ソースには、表示されている URL から直接ア ク セスで き ます。

    リ ソース 説明/URL

    チュー ト リ アル デザイ ン入力から検証やデバッ グまでのザイ リ ン ク スのデザイ ン フ ローに ついて説明し たチュー ト リ アルです。

    http://japan.xilinx.com/support/techsup/tutorials/index.htm

    アンサー ブラ ウザ ザイ リ ン ク スのソ リ ューシ ョ ン レ コード のデータベースです。

    http://japan.xilinx.com/xlnx/xil_ans_browser.jsp

    アプ リ ケーシ ョ ン ノー ト

    デバイ ス別デザイ ン技術およびアプローチの説明です。

    http://japan.xilinx.com/xlnx/xweb/xil_publications_index.jsp?category=Application+Notes

    データ シー ト リ ード バッ ク、バウ ンダ リ スキ ャ ン、 コ ンフ ィ ギ ュ レーシ ョ ン、レ ング ス カ ウ ン ト 、 デバ ッ グなど、 ザイ リ ン ク ス デバイ スの特性に関する情 報がデバイ ス別に記載されています。

    http://japan.xilinx.com/xlnx/xweb/xil_publications_index.jsp

    プロブレ ム ソルバー デザイ ンの問題を ト ラブルシュー ト でき る対話型ツールです。

    http://japan.xilinx.com/support/troubleshoot/psolvers.htm

    MicroBlaze プロセ ッサ リ フ ァ レンス ガイ ド japan.xilinx.com 7UG081 (v10.3)

    http://japan.xilinx.com/support/mysupport.htmhttp://japan.xilinx.com/support/techsup/tutorials/index.htmhttp://japan.xilinx.com/xlnx/xil_ans_browser.jsphttp://japan.xilinx.com/xlnx/xweb/xil_publications_index.jsp?category=Application+Noteshttp://japan.xilinx.com/xlnx/xweb/xil_publications_index.jsphttp://japan.xilinx.com/support/troubleshoot/psolvers.htmhttp://japan.xilinx.com

  • このマニュアルについて

    表記規則

    こ のマニ ュ アルでは、 次の表記規則を使用し ています。 各規則について、 例を挙げて説明し ます。

    書体

    次の規則は、 すべてのマニ ュ アルで使用されています。

    テ ク ニカル ヒ ン ト ザイ リ ン ク ス デザイ ン環境についての最新ニュース、 デザイ ンの ヒ ン ト 、 パッチ情報です。

    http://japan.xilinx.com/xlnx/xil_tt_home.jsp

    GNU マニュ アル すべての GNU マニュ アルを入手でき ます。

    http://www.gnu.org/manual

    リ ソース 説明/URL

    表記規則 使用箇所 例

    Courier フ ォ ン トシ ス テムが表示する メ ッ セージ、プロ ンプ ト 、プロ グ ラ ム フ ァ イル を表示し ます。

    speed grade: - 100

    Courier フ ォ ン ト (太字)

    構文内で入力する コマン ド を示します。

    ngdbuild design_name

    イ タ リ ッ ク フ ォ ン トユーザーが値を入力する必要のある構文内の変数に使用し ます。

    ngdbuild design_name

    二重/一重かぎかっ こ 『 』、 「」

    『 』 はマニ ュ アル名を、「 」 はセ ク シ ョ ン名を示し ます。

    詳細は、 『開発システム リ フ ァ レ ンス ガイ ド』 の 「PAR」 を参照し て く だ さい。

    角かっ こ [ ]

    オプシ ョ ンの入力またはパラ メータ を示し ますが、 bus[7:0] のよ う なバ ス 仕様では必ず使用 し ます。ま た、GUI 表記にも 使用し ま す。

    ngdbuild [option_name] design_name

    [File] → [Open] を ク リ ッ ク し ます。

    中かっ こ { } 1 つ以上の項目を選択する ための リ ス ト を示し ます。

    lowpwr ={on|off}

    縦棒 |選択する リ ス ト の項目を分離し ます。

    lowpwr ={on|off}

    縦の省略記号 . . .

    繰 り 返し項目が省略されている こと を示し ます。

    IOB #1: Name = QOUT’ IOB #2: Name = CLKIN’ . . .

    横の省略記号 . . . 繰 り 返し項目が省略されている こと を示し ます。

    allow block block_name loc1 loc2 ... locn;

    8 japan.xilinx.com MicroBlaze プロセ ッサ リ フ ァ レンス ガイ ドUG081 (v10.3)

    http://japan.xilinx.com/xlnx/xil_tt_home.jsphttp://www.gnu.org/manualhttp://japan.xilinx.com

  • 表記規則

    オン ラ イ ン マニュアルこ のマニ ュ アルでは、 次の規則が使用されています。

    表記規則 使用箇所 例

    青色の文字マニ ュ アル内の相互参照を示します。

    詳細は、 「その他の リ ソース」 を参照し て く ださ い。

    詳細については、第 1 章の「タ イ ト ル フ ォーマ ッ ト 」 を参照し て く だ さ い。

    青色の下線付き文字Web サイ ト (URL) への ハイパー リ ン ク です。

    最新のス ピード フ ァ イルは、 http://japan.xilinx.com から入手で き ます。

    MicroBlaze プロセ ッサ リ フ ァ レンス ガイ ド japan.xilinx.com 9UG081 (v10.3)

    http://japan.xilinx.com

  • このマニュアルについて

    10 japan.xilinx.com MicroBlaze プロセ ッサ リ フ ァ レンス ガイ ドUG081 (v10.3)

    http://japan.xilinx.com

  • 第 1 章

    MicroBlaze アーキテ クチャ

    こ の章では MicroBlaze™ の機能の概要と、 ビ ッ グ エンデ ィ アン形式、 32 ビ ッ ト 汎用レジス タ、 仮 想 メ モ リ 管理、キ ャ ッ シュ ソ フ ト ウ ェ ア サポー ト 、高速シンプレ ッ ク ス リ ン ク (FSL) イ ン ターフ ェ イ ス を含む、 MicroBlaze アーキテ クチャの詳細な情報を説明し ます。

    こ の章は、 次のセク シ ョ ンから構成されています。

    • 概要

    • データ型およびエンデ ィ アン

    • 命令

    • レジス タ

    • パイプラ イ ン アーキテ クチャ

    • メ モ リ アーキテ クチャ

    • 特権命令

    • 仮想 メ モ リ 管理

    • リ セ ッ ト 、 割 り 込み、 例外、 ブレーク

    • 命令キ ャ ッ シュ

    • データ キ ャ ッ シュ

    • 浮動小数点ユニ ッ ト (FPU)

    • ソ フ ト ウ ェ ア サポー ト

    • 高速シンプレ ッ ク ス リ ン ク (FSL)

    • デバッ グおよび ト レース

    MicroBlaze プロセ ッサ リ フ ァ ンレンス ガイ ド japan.xilinx.com 11UG081 (v10.3)

    http://japan.xilinx.com

  • 第 1 章 : MicroBlaze アーキテ クチャ

    概要

    MicroBlaze エンべデッ ド プロセ ッ サ ソ フ ト コ アは、 ザイ リ ン ク ス FPGA でのイ ンプ リ メ ンテー シ ョ ン向けに最適化された RISC (Reduced Instruction Set Computer) です。 図 1-1 に、MicroBlaze コ アのフ ァ ン ク シ ョ ン ブロ ッ ク図を示し ます。

    機能

    MicroBlaze は、 柔軟にコ ンフ ィ ギュ レーシ ョ ン可能な ソ フ ト コ ア プロセ ッ サで、 デザイ ンの要件 に応じ て機能を選択でき ます。

    MicroBlaze プロセ ッ サの機能は、 次の とお り です。

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

    • 3 個のオペラ ン ドおよび 2 個のア ド レ ス指定モード のあ る 32 ビ ッ ト 命令ワード

    • 32 ビ ッ ト ア ド レ ス バス

    • 単一パイプラ イ ン

    これらの機能に加え、選択可能なオプシ ョ ンの機能があ り ます。以前のバージ ョ ンの MicroBlaze で は、 こ こ に示す機能の一部のみがサポー ト されます。 オプシ ョ ンの機能がすべてサポー ト されてい るのは、 最新バージ ョ ンの MicroBlaze (v7.20) のみです。

    新規デザイ ンには、 最新バージ ョ ンの MicroBlaze プロセ ッ サを使用する こ と をお勧めし ます。

    13 ページの表 1-1 に、Microblaze の各バージ ョ ンでコ ンフ ィ ギュ レシ ョ ン可能な機能の概要を示し ます。

    図 1-1 : MicroBlaze コアのブロ ッ ク図

    DXCL_M

    DXCL_S

    データ側命令側

    DOPB

    DLMB

    IOPB

    ILMB

    バス イ ン ターフ ェ イス バス イ ン ターフ ェ イ ス

    命令バッ フ ァ

    プログラムカウン タ

    レジス タ フ ァ イル32 X 32b

    ALU

    命令

    デコー ド

    バスIF

    バスIF

    MFSL 0..15

    SFSL 0..15

    IXCL_M

    IXCL_S

    命令

    キャ

    ッシ

    デー

    タ キ

    ャッ

    シュ

    シフ ト

    バレル シ フ ト

    乗算器

    除算器

    FPU

    特殊用途レジス タ

    オプシ ョ ンの機能

    IPLB DPLB

    UTLBITLB DTLB

    MMU (Memory Management Unit)

    またはDWSFL 0..15

    またはDRSFL 0..15

    12 japan.xilinx.com MicroBlaze プロセ ッサ リ フ ァ ン レンス ガイ ドUG081 (v10.3)

    http://www.xilinx.com

  • 概要

    表 1-1 : MicroBlaze のオプシ ョ ン機能

    機能MicroBlaze のバージ ョ ン

    v4.00 v5.00 v6.00 v7.00 v7.10 v7.20

    バージ ョ ンのステータ ス 廃止予定 廃止予定 廃止予定 廃止予定 推奨 推奨

    プロセ ッ サ パイプラ イ ンの段数 3 5 3/5 3/5 3/5 3/5

    オンチッ プ ペ リ フ ェ ラル バス (OPB) データ側イ ン ターフ ェ イ ス

    オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン

    オンチッ プ ペ リ フ ェ ラル バス (OPB) 命令側イ ン ターフ ェ イ ス

    オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン

    ローカル メ モ リ バス (LMB) データ側 イ ン ターフ ェ イ ス

    オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン

    ローカル メ モ リ バス (LMB) 命令側 イ ン ターフ ェ イ ス

    オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン

    ハード ウ ェ ア バレル シフ タ オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン

    ハード ウ ェ ア除算器 オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン

    ハード ウ ェ ア デバッ グ ロジ ッ ク オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン

    高速シンプレ ッ ク ス リ ン ク (FSL) イ ン ターフ ェ イ ス

    0 ~ 7 0 ~ 7 0 ~ 7 0 ~ 15 0 ~ 15 0 ~ 15

    マシン ステータ ス設定およびク リ ア命令 オプシ ョ ン あ り オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン

    IOPB イ ン ターフ ェ イ スの命令キ ャ ッ シュ オプシ ョ ン な し な し な し な し な し

    IOPB イ ン ターフ ェ イ スのデータ キ ャ ッ シュ

    オプシ ョ ン な し な し な し な し な し

    CacheLink (IXCL) の命令キ ャ ッ シュ オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン

    CacheLink (DXCL) のデータ キ ャ ッ シュ オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン

    XCL の 4 または 8 ワード のキ ャ ッ シュ ラ イ ン

    4 オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン

    ハード ウ ェ ア例外サポー ト オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン

    パターン比較命令 オプシ ョ ン あ り オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン

    浮動小数点ユニ ッ ト (FPU) オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン

    ハード ウ ェ ア乗算器をデ ィ スエーブルに

    する1

    オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン

    ハード ウ ェ ア デバッ グで読み出し可能な ESR および EAR

    あ り あ り あ り あ り あ り あ り

    プロセ ッ サ バージ ョ ン レジス タ (PVR) - オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン

    エ リ アまたはス ピード の最適化 - - オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン

    ハード ウ ェ ア乗算器の 64 ビ ッ ト の結果 - - オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン

    MicroBlaze プロセ ッサ リ フ ァ ンレンス ガイ ド japan.xilinx.com 13UG081 (v10.3)

    http://japan.xilinx.com

  • 第 1 章 : MicroBlaze アーキテ クチャ

    データ型およびエンデ ィ アン

    MicroBlaze では、 データの記述にビ ッ グ エンデ ィ アン形式を使用し ます。 MicroBlaze に対しハー ド ウ ェ アでサポー ト されるデータ型は、 ワード、 ハーフ ワード、 およびバイ ト です。 各データ型に

    対する ビ ッ ト およびバイ ト 構成を次の表に示し ます。

    LUT キ ャ ッ シュ メ モ リ - - オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン

    プロセ ッ サ ローカル バス (PLB) データ側イ ン ターフ ェ イ ス

    - - - オプシ ョ ン オプシ ョ ン オプシ ョ ン

    プロセ ッ サ ローカル バス (PLB) 命令側 イ ン ターフ ェ イ ス

    - - - オプシ ョ ン オプシ ョ ン オプシ ョ ン

    浮動小数点変換および平方根命令 - - - オプシ ョ ン オプシ ョ ン オプシ ョ ン

    MMU (Memory Management Unit) - - - オプシ ョ ン オプシ ョ ン オプシ ョ ン

    拡張高速シンプレ ッ ク ス リ ン ク (FSL) 命令

    - - - オプシ ョ ン オプシ ョ ン オプシ ョ ン

    すべての命令キ ャ ッ シュ メ モ リ ア ク セスへのザイ リ ン ク ス Cache Link の使用

    - - - - オプシ ョ ン オプシ ョ ン

    すべてのデータ キ ャ ッ シュ メ モ リ ア ク セスへのザイ リ ン ク ス Cache Link の使用

    - - - - オプシ ョ ン オプシ ョ ン

    データ キ ャ ッ シュのラ イ ト バッ ク キ ャ ッシュ ポ リ シーの使用

    - - - - - オプシ ョ ン

    命令キ ャ ッ シュの Cache Link (IXCL) プロ ト コル

    - - - - - オプシ ョ ン

    データ キ ャ ッ シュの Cache Link (DXCL) プロ ト コル

    - - - - - オプシ ョ ン

    1. Virtex®-4 以降のフ ァ ミ リ で、 MUL18 および DSP48 プ リ ミ テ ィ ブを節約する ために使用。

    表 1-1 : MicroBlaze のオプシ ョ ン機能 (続き)

    機能MicroBlaze のバージ ョ ン

    v4.00 v5.00 v6.00 v7.00 v7.10 v7.20

    表 1-2 : ワー ド データ型

    バイ ト ア ド レ ス n n+1 n+2 n+3

    バイ ト 表記 0 1 2 3

    バイ ト 順 MSByte LSByte

    ビ ッ ト 表現 0 31

    ビ ッ ト 順 MSBit LSBit

    14 japan.xilinx.com MicroBlaze プロセ ッサ リ フ ァ ン レンス ガイ ドUG081 (v10.3)

    http://www.xilinx.com

  • 命令

    命令

    イ ンス ト ラ クシ ョ ンのま とめ

    MicroBlaze の命令は、 すべて 32 ビ ッ ト で、 タ イプ A と タ イプ B のいずれか と し て定義されます。 タ イプ A の命令には、最大 2 個のソース レジス タ オペラ ン ド と 1 個のデステ ィ ネーシ ョ ン レジス タ オペラ ン ド を含める こ と ができ ます。 タ イプ B の命令には、1 個のソース レジス タ オペラ ン ド と 16 ビ ッ ト の即値オペラ ン ド が含まれます。 この 16 ビ ッ ト の即値オペラ ン ド は、 タ イプ B 命令の前 に imm 命令を付け る と、 32 ビ ッ ト まで拡張可能です。 タ イプ B の命令には、 1 個のデステ ィ ネー シ ョ ン レジス タ オペラ ン ド が含まれます。 命令のフ ァ ン ク シ ョ ンは、 演算、 論理、 分岐、 読み込み /格納、 特殊に分類されます。 表 1-6 に MicroBlaze の命令セ ッ ト を示し ます。 これらの命令の詳細 は、 第 4 章 「MicroBlaze 命令セ ッ ト アーキテ クチャ」 を参照し て く ださい。 表 1-5 に、 各命令の セマンテ ィ ク スで使用される命令セ ッ ト の用語を説明し ます。

    表 1-3 : ハーフワー ド データ型

    バイ ト ア ド レ ス n n+1

    バイ ト 表記 0 1

    バイ ト 順 MSByte LSByte

    ビ ッ ト 表現 0 15

    ビ ッ ト 順 MSBit LSBit

    表 1-4 : バイ ト データ型

    バイ ト ア ド レ ス n

    ビ ッ ト 表現 0 7

    ビ ッ ト 順 MSBit LSBit

    表 1-5 : 命令セ ッ ト の用語

    シンボル 説明

    Ra R0 ~ R31、 汎用レジス タ、 ソース オペラ ン ド a

    Rb R0 ~ R31、 汎用レジス タ、 ソース オペラ ン ド b

    Rd R0 ~ R31、 汎用レジス タ、 デステ ィ ネーシ ョ ン オペラ ン ド

    SPR[x] 特殊用途レジス タ (x はレジス タ番号)

    MSR マシン ステータ ス レジス タ = SPR[1]

    ESR 例外ステータ ス レジス タ = SPR[5]

    EAR 例外ア ド レ ス レジス タ = SPR[3]

    FSR 浮動小数点ユニ ッ ト ステータ ス レジス タ = SPR[7]

    PVRx プロセ ッ サ バージ ョ ン レジス タ (x はレジス タ番号 = SPR[8192 + x] )

    BTR 分岐ターゲ ッ ト レジス タ = SPR[11]

    MicroBlaze プロセ ッサ リ フ ァ ンレンス ガイ ド japan.xilinx.com 15UG081 (v10.3)

    http://japan.xilinx.com

  • 第 1 章 : MicroBlaze アーキテ クチャ

    PC 実行段プロ グ ラ ム カ ウ ン タ = SPR[0]

    x[y] レジス タ x のビ ッ ト y

    x[y:z] レジス タ x のビ ッ ト y ~ z

    x レジス タ x のビ ッ ト 反転値

    Imm 16 ビ ッ ト の即値

    Immx x ビ ッ ト の即値

    FSLx 4 ビ ッ ト の高速シンプレ ッ ク ス リ ン ク (FSL) ポー ト 識別子 (x はポー ト 番号)

    C キ ャ リ ー フ ラ グ、 MSR[29]

    Sa 特殊用途レジス タ、 ソース オペラ ン ド

    Sd 特殊用途レジス タ、 デステ ィ ネーシ ョ ン オペラ ン ド

    s(x) 符号拡張引数 x (最大 32 ビ ッ ト )

    *Addr ロ ケーシ ョ ン Addr にあ る メ モ リ 内容 (データ サイ ズ揃え)

    := 代入演算子

    = 等号

    != 非等価

    > 大な り

    >= 以上

    < 小な り

    > x 右に x ビ ッ ト シフ ト

  • 命令

    unsigned 符号な し整数データ型に対し て実行される演算

    float 浮動小数点データ型に対し て実行される演算

    表 1-5 : 命令セ ッ ト の用語 (続き)

    シンボル 説明

    MicroBlaze プロセ ッサ リ フ ァ ンレンス ガイ ド japan.xilinx.com 17UG081 (v10.3)

    http://japan.xilinx.com

  • 第 1 章 : MicroBlaze アーキテ クチャ

    表 1-6 : MicroBlaze の命令セ ッ ト の一覧

    タ イプ A 0 ~ 5 6 ~ 10 11 ~ 15 16 ~ 20 21 ~ 31セマンテ ィ クス

    タ イプ B 0 ~ 5 6 ~ 10 11 ~ 15 16 ~ 31

    ADD Rd,Ra,Rb 000000 Rd Ra Rb 00000000000 Rd := Rb + Ra

    RSUB Rd,Ra,Rb 000001 Rd Ra Rb 00000000000 Rd := Rb + Ra + 1

    ADDC Rd,Ra,Rb 000010 Rd Ra Rb 00000000000 Rd := Rb + Ra + C

    RSUBC Rd,Ra,Rb 000011 Rd Ra Rb 00000000000 Rd := Rb + Ra + C

    ADDK Rd,Ra,Rb 000100 Rd Ra Rb 00000000000 Rd := Rb + Ra

    RSUBK Rd,Ra,Rb 000101 Rd Ra Rb 00000000000 Rd := Rb + Ra + 1

    ADDKC Rd,Ra,Rb 000110 Rd Ra Rb 00000000000 Rd := Rb + Ra + C

    RSUBKC Rd,Ra,Rb 000111 Rd Ra Rb 00000000000 Rd := Rb + Ra + C

    CMP Rd,Ra,Rb 000101 Rd Ra Rb 00000000001 Rd := Rb + Ra + 1

    Rd[0] := 0 if (Rb >= Ra) else Rd[0] := 1

    CMPU Rd,Ra,Rb 000101 Rd Ra Rb 00000000011 Rd := Rb + Ra + 1 (unsigned) Rd[0] := 0 if (Rb >= Ra, unsigned) else Rd[0] := 1

    ADDI Rd,Ra,Imm 001000 Rd Ra Imm Rd := s(Imm) + Ra

    RSUBI Rd,Ra,Imm 001001 Rd Ra Imm Rd := s(Imm) + Ra + 1

    ADDIC Rd,Ra,Imm 001010 Rd Ra Imm Rd := s(Imm) + Ra + C

    RSUBIC Rd,Ra,Imm 001011 Rd Ra Imm Rd := s(Imm) + Ra + C

    ADDIK Rd,Ra,Imm 001100 Rd Ra Imm Rd := s(Imm) + Ra

    RSUBIK Rd,Ra,Imm 001101 Rd Ra Imm Rd := s(Imm) + Ra + 1

    ADDIKC Rd,Ra,Imm 001110 Rd Ra Imm Rd := s(Imm) + Ra + C

    RSUBIKC Rd,Ra,Imm 001111 Rd Ra Imm Rd := s(Imm) + Ra + C

    MUL Rd,Ra,Rb 010000 Rd Ra Rb 00000000000 Rd := Ra * Rb

    MULH Rd,Ra,Rb 010000 Rd Ra Rb 00000000001 Rd := (Ra * Rb) >> 32 (signed)

    MULHU Rd,Ra,Rb 010000 Rd Ra Rb 00000000011 Rd := (Ra * Rb) >> 32 (unsigned)

    MULHSU Rd,Ra,Rb 010000 Rd Ra Rb 00000000010 Rd := (Ra, signed * Rb, unsigned) >> 32 (signed)

    BSRA Rd,Ra,Rb 010001 Rd Ra Rb 01000000000 Rd := s(Ra >> Rb)

    BSLL Rd,Ra,Rb 010001 Rd Ra Rb 10000000000 Rd := (Ra > Imm5)

    18 japan.xilinx.com MicroBlaze プロセ ッサ リ フ ァ ン レンス ガイ ドUG081 (v10.3)

    http://www.xilinx.com

  • 命令

    BSRAI Rd,Ra,Imm 011001 Rd Ra 00000010000 & Imm5 Rd := s(Ra >> Imm5)

    BSLLI Rd,Ra,Imm 011001 Rd Ra 00000100000 & Imm5 Rd := (Ra = Ra, float1) else Rd := 0

    FLT Rd,Ra 010110 Rd Ra 0 01010000000 Rd := float (Ra)1

    FINT Rd,Ra 010110 Rd Ra 0 01100000000 Rd := int (Ra)1

    表 1-6 : MicroBlaze の命令セ ッ ト の一覧 (続き)

    タ イプ A 0 ~ 5 6 ~ 10 11 ~ 15 16 ~ 20 21 ~ 31セマンテ ィ クス

    タ イプ B 0 ~ 5 6 ~ 10 11 ~ 15 16 ~ 31

    MicroBlaze プロセ ッサ リ フ ァ ンレンス ガイ ド japan.xilinx.com 19UG081 (v10.3)

    http://japan.xilinx.com

  • 第 1 章 : MicroBlaze アーキテ クチャ

    FSQRT Rd,Ra 010110 Rd Ra 0 01110000000 Rd := sqrt (Ra)1

    TNEAGET Rd,FSLx 011011 Rd 00000 0N0TAE000000 & FSLx

    Rd := FSLx (データ読み出し、 N = 0 の場合ブロ ッ キング) MSR[FSL] := 1 if (FSLx_S_Control = 1) MSR[C] := not FSLx_S_Exists if N = 1

    TNAPUT Ra,FSLx 011011 00000 Ra 1N0TA0000000 & FSLx

    FSLx := Ra (データ書き込み、 N = 0 の場合ブロ ッ キング) MSR[C] := FSLx_M_Full if N = 1

    TNECAGET Rd,FSLx 011011 Rd 00000 0N1TAE000000 & FSLx

    Rd := FSLx (制御読み出し、 N = 0 の場合ブロ ッ キング) MSR[FSL] := 1 if (FSLx_S_Control = 0) MSR[C] := not FSLx_S_Exists if N = 1

    TNCAPUT Ra,FSLx 011011 00000 Ra 1N1TA0000000 & FSLx

    FSLx := Ra (制御書き込み、 N = 0 の場合ブロ ッ キング) MSR[C] := FSLx_M_Full if N = 1

    OR Rd,Ra,Rb 100000 Rd Ra Rb 00000000000 Rd := Ra or Rb

    AND Rd,Ra,Rb 100001 Rd Ra Rb 00000000000 Rd := Ra and Rb

    XOR Rd,Ra,Rb 100010 Rd Ra Rb 00000000000 Rd := Ra xor Rb

    ANDN Rd,Ra,Rb 100011 Rd Ra Rb 00000000000 Rd := Ra and Rb

    PCMPBF Rd,Ra,Rb 100000 Rd Ra Rb 10000000000 Rd := 1 if (Rb[0:7] = Ra[0:7]) else Rd := 2 if (Rb[8:15] = Ra[8:15]) else Rd := 3 if (Rb[16:23] = Ra[16:23]) else Rd := 4 if (Rb[24:31] = Ra[24:31]) else Rd := 0

    PCMPEQ Rd,Ra,Rb 100010 Rd Ra Rb 10000000000 Rd := 1 if (Rd = Ra) else Rd := 0

    PCMPNE Rd,Ra,Rb 100011 Rd Ra Rb 10000000000 Rd := 1 if (Rd != Ra) else Rd := 0

    SRA Rd,Ra 100100 Rd Ra 0000000000000001 Rd := s(Ra >> 1) C := Ra[31]

    SRC Rd,Ra 100100 Rd Ra 0000000000100001 Rd := C & (Ra >> 1) C := Ra[31]

    SRL Rd,Ra 100100 Rd Ra 0000000001000001 Rd := 0 & (Ra >> 1) C := Ra[31]

    SEXT8 Rd,Ra 100100 Rd Ra 0000000001100000 Rd := s(Ra[24:31])

    SEXT16 Rd,Ra 100100 Rd Ra 0000000001100001 Rd := s(Ra[16:31])

    表 1-6 : MicroBlaze の命令セ ッ ト の一覧 (続き)

    タ イプ A 0 ~ 5 6 ~ 10 11 ~ 15 16 ~ 20 21 ~ 31セマンテ ィ クス

    タ イプ B 0 ~ 5 6 ~ 10 11 ~ 15 16 ~ 31

    20 japan.xilinx.com MicroBlaze プロセ ッサ リ フ ァ ン レンス ガイ ドUG081 (v10.3)

    http://www.xilinx.com

  • 命令

    WIC Ra,Rb 100100 00000 Ra Rb 01101000 ICache_Line[Ra >> 4].Tag := 0 if (C_ICACHE_LINE_LEN = 4)

    ICache_Line[Ra >> 5].Tag := 0 if (C_ICACHE_LINE_LEN = 8)

    WDC Ra,Rb 100100 00000 Ra Rb 01100100 キ ャ ッ シュ ラ イ ンが ク リ ア され、 格納データが廃棄されます。

    DCache_Line[Ra >> 4].Tag := 0 if (C_DCACHE_LINE_LEN = 4)

    DCache_Line[Ra >> 5].Tag := 0 if (C_DCACHE_LINE_LEN = 8)

    WDC.FLUSH Ra,Rb 100100 00000 Ra Rb 01100100 キ ャ ッ シュ ラ イ ンがフ ラ ッ シュ され、 格納データが メ モ リ に書き込まれてから ク リ ア

    されます。

    D_DCACHE_USE_WRITEBACK = 1 の ときに使用。

    WDC.CLEAR Ra,Rb 100100 00000 Ra Rb 01100100 ア ド レ スが一致する キ ャ ッ シュ ラ イ ンが クリ ア され、 格納データが破棄されます。

    D_DCACHE_USE_WRITEBACK = 1 の ときに使用。

    MTS Sd,Ra 100101 00000 Ra 11 & Sd SPR[Sd] := Ra

    • SPR[0x0001] は MSR

    • SPR[0x0007] は FSR

    • SPR[0x1000] は PID

    • SPR[0x1001] は ZPR

    • SPR[0x1002] は TLBX

    • SPR[0x1003] は TLBLO

    • SPR[0x1004] は TLBHI

    • SPR[0x1005] は TLBSX

    表 1-6 : MicroBlaze の命令セ ッ ト の一覧 (続き)

    タ イプ A 0 ~ 5 6 ~ 10 11 ~ 15 16 ~ 20 21 ~ 31セマンテ ィ クス

    タ イプ B 0 ~ 5 6 ~ 10 11 ~ 15 16 ~ 31

    MicroBlaze プロセ ッサ リ フ ァ ンレンス ガイ ド japan.xilinx.com 21UG081 (v10.3)

    http://japan.xilinx.com

  • 第 1 章 : MicroBlaze アーキテ クチャ

    MFS Rd,Sa 100101 Rd 00000 10 & Sa Rd := SPR[Sa]

    • SPR[0x0000] は PC

    • SPR[0x0001] は MSR

    • SPR[0x0003] は EAR

    • SPR[0x0005] は ESR

    • SPR[0x0007] は FSR

    • SPR[0x000B] は BTR

    • SPR[0x000D] は EDR

    • SPR[0x1000] は PID

    • SPR[0x1001] は ZPR

    • SPR[0x1002] は TLBX

    • SPR[0x1003] は TLBLO

    • SPR[0x1004] は TLBHI

    • SPR[0x2000] ~ SPR [0x200B] は PVR[0] ~ PVR [11]

    MSRCLR Rd,Imm 100101 Rd 00001 00 & Imm14 Rd := MSR MSR := MSR and Imm14

    MSRSET Rd,Imm 100101 Rd 00000 00 & Imm14 Rd := MSR MSR := MSR or Imm14

    BR Rb 100110 00000 00000 Rb 00000000000 PC := PC + Rb

    BRD Rb 100110 00000 10000 Rb 00000000000 PC := PC + Rb

    BRLD Rd,Rb 100110 Rd 10100 Rb 00000000000 PC := PC + Rb Rd := PC

    BRA Rb 100110 00000 01000 Rb 00000000000 PC := Rb

    BRAD Rb 100110 00000 11000 Rb 00000000000 PC := Rb

    BRALD Rd,Rb 100110 Rd 11100 Rb 00000000000 PC := Rb Rd := PC

    BRK Rd,Rb 100110 Rd 01100 Rb 00000000000 PC := Rb Rd := PC MSR[BIP] := 1

    BEQ Ra,Rb 100111 00000 Ra Rb 00000000000 PC := PC + Rb if Ra = 0

    BNE Ra,Rb 100111 00001 Ra Rb 00000000000 PC := PC + Rb if Ra != 0

    BLT Ra,Rb 100111 00010 Ra Rb 00000000000 PC := PC + Rb if Ra < 0

    BLE Ra,Rb 100111 00011 Ra Rb 00000000000 PC := PC + Rb if Ra 0

    BGE Ra,Rb 100111 00101 Ra Rb 00000000000 PC := PC + Rb if Ra >= 0

    表 1-6 : MicroBlaze の命令セ ッ ト の一覧 (続き)

    タ イプ A 0 ~ 5 6 ~ 10 11 ~ 15 16 ~ 20 21 ~ 31セマンテ ィ クス

    タ イプ B 0 ~ 5 6 ~ 10 11 ~ 15 16 ~ 31

    22 japan.xilinx.com MicroBlaze プロセ ッサ リ フ ァ ン レンス ガイ ドUG081 (v10.3)

    http://www.xilinx.com

  • 命令

    BEQD Ra,Rb 100111 10000 Ra Rb 00000000000 PC := PC + Rb if Ra = 0

    BNED Ra,Rb 100111 10001 Ra Rb 00000000000 PC := PC + Rb if Ra != 0

    BLTD Ra,Rb 100111 10010 Ra Rb 00000000000 PC := PC + Rb if Ra < 0

    BLED Ra,Rb 100111 10011 Ra Rb 00000000000 PC := PC + Rb if Ra 0

    BGED Ra,Rb 100111 10101 Ra Rb 00000000000 PC := PC + Rb if Ra >= 0

    ORI Rd,Ra,Imm 101000 Rd Ra Imm Rd := Ra or s(Imm)

    ANDI Rd,Ra,Imm 101001 Rd Ra Imm Rd := Ra and s(Imm)

    XORI Rd,Ra,Imm 101010 Rd Ra Imm Rd := Ra xor s(Imm)

    ANDNI Rd,Ra,Imm 101011 Rd Ra Imm Rd := Ra and s(Imm)

    IMM Imm 101100 00000 00000 Imm Imm[0:15] := Imm

    RTSD Ra,Imm 101101 10000 Ra Imm PC := Ra + s(Imm)

    RTID Ra,Imm 101101 10001 Ra Imm PC := Ra + s(Imm) MSR[IE] := 1

    RTBD Ra,Imm 101101 10010 Ra Imm PC := Ra + s(Imm) MSR[BIP] := 0

    RTED Ra,Imm 101101 10100 Ra Imm PC := Ra + s(Imm) MSR[EE] := 1, MSR[EIP] := 0 ESR := 0

    BRI Imm 101110 00000 00000 Imm PC := PC + s(Imm)

    BRID Imm 101110 00000 10000 Imm PC := PC + s(Imm)

    BRLID Rd,Imm 101110 Rd 10100 Imm PC := PC + s(Imm) Rd := PC

    BRAI Imm 101110 00000 01000 Imm PC := s(Imm)

    BRAID Imm 101110 00000 11000 Imm PC := s(Imm)

    BRALID Rd,Imm 101110 Rd 11100 Imm PC := s(Imm) Rd := PC

    BRKI Rd,Imm 101110 Rd 01100 Imm PC := s(Imm) Rd := PC MSR[BIP] := 1

    BEQI Ra,Imm 101111 00000 Ra Imm PC := PC + s(Imm) if Ra = 0

    BNEI Ra,Imm 101111 00001 Ra Imm PC := PC + s(Imm) if Ra != 0

    BLTI Ra,Imm 101111 00010 Ra Imm PC := PC + s(Imm) if Ra < 0

    表 1-6 : MicroBlaze の命令セ ッ ト の一覧 (続き)

    タ イプ A 0 ~ 5 6 ~ 10 11 ~ 15 16 ~ 20 21 ~ 31セマンテ ィ クス

    タ イプ B 0 ~ 5 6 ~ 10 11 ~ 15 16 ~ 31

    MicroBlaze プロセ ッサ リ フ ァ ンレンス ガイ ド japan.xilinx.com 23UG081 (v10.3)

    http://japan.xilinx.com

  • 第 1 章 : MicroBlaze アーキテ クチャ

    BLEI Ra,Imm 101111 00011 Ra Imm PC := PC + s(Imm) if Ra 0

    BGEI Ra,Imm 101111 00101 Ra Imm PC := PC + s(Imm) if Ra >= 0

    BEQID Ra,Imm 101111 10000 Ra Imm PC := PC + s(Imm) if Ra = 0

    BNEID Ra,Imm 101111 10001 Ra Imm PC := PC + s(Imm) if Ra != 0

    BLTID Ra,Imm 101111 10010 Ra Imm PC := PC + s(Imm) if Ra < 0

    BLEID Ra,Imm 101111 10011 Ra Imm PC := PC + s(Imm) if Ra 0

    BGEID Ra,Imm 101111 10101 Ra Imm PC := PC + s(Imm) if Ra >= 0

    LBU Rd,Ra,Rb 110000 Rd Ra Rb 00000000000 Addr := Ra + Rb Rd[0:23] := 0 Rd[24:31] := *Addr[0:7]

    LHU Rd,Ra,Rb 110001 Rd Ra Rb 00000000000 Addr := Ra + Rb Rd[0:15] := 0 Rd[16:31] := *Addr[0:15]

    LW Rd,Ra,Rb 110010 Rd Ra Rb 00000000000 Addr := Ra + Rb Rd := *Addr

    LWX Rd,Ra,Rb 110010 Rd Ra Rb 10000000000 Addr := Ra + Rb Rd := *Addr Reservation := 1

    SB Rd,Ra,Rb 110100 Rd Ra Rb 00000000000 Addr := Ra + Rb *Addr[0:8] := Rd[24:31]

    SH Rd,Ra,Rb 110101 Rd Ra Rb 00000000000 Addr := Ra + Rb *Addr[0:16] := Rd[16:31]

    SW Rd,Ra,Rb 110110 Rd Ra Rb 00000000000 Addr := Ra + Rb *Addr := Rd

    SWX Rd,Ra,Rb 110110 Rd Ra Rb 10000000000 Addr := Ra + Rb Rd := *Rd if Reservation = 1 Reservation := 0

    LBUI Rd,Ra,Imm 111000 Rd Ra Imm Addr := Ra + s(Imm) Rd[0:23] := 0 Rd[24:31] := *Addr[0:7]

    LHUI Rd,Ra,Imm 111001 Rd Ra Imm Addr := Ra + s(Imm) Rd[0:15] := 0 Rd[16:31] := *Addr[0:15]

    表 1-6 : MicroBlaze の命令セ ッ ト の一覧 (続き)

    タ イプ A 0 ~ 5 6 ~ 10 11 ~ 15 16 ~ 20 21 ~ 31セマンテ ィ クス

    タ イプ B 0 ~ 5 6 ~ 10 11 ~ 15 16 ~ 31

    24 japan.xilinx.com MicroBlaze プロセ ッサ リ フ ァ ン レンス ガイ ドUG081 (v10.3)

    http://www.xilinx.com

  • 命令

    セマ フ ォの同期化

    テス ト と セ ッ ト 、 比較と ス ワ ッ プ、 メ モ リ 交換、 フ ェ ッチ と追加などの共通セマフ ォ操作を イ ンプ

    リ メ ン ト するには、 LWX および SWX. 命令が使用されます。 また、 ス ピン ロ ッ ク のイ ンプ リ メ ン ト にも使用されます

    これらの命令は、通常、 システム プロ グ ラ ムによ って使用され、随時アプ リ ケーシ ョ ン プロ グ ラ ム によ って呼び出されます。一般的には、メ モ リ からセマフ ォ を読み込むにはプロ グ ラ ムによ り LWX が使用され、 予約が設定されます (まずはプロセ ッサが予約を保持)。 セマフ ォの値に基づいて結果 が計算され、 SWX 命令を使用し て結果値は同じ メ モ リ ロ ケーシ ョ ンに条件付で保存されます。 条 件付保存は、 直前の LWX 命令によ って確立された予約を基に実行されます。 保存が実行される と きに予約が存在する場合、保存が実行され MSR [C] が 0 にク リ ア されます。予約が存在し ない場合、 ターゲ ッ ト メ モ リ ロ ケーシ ョ ンは変更されず、 MSR [C] が 1 に設定されます。

    保存が問題な く 完了する と、 セマフ ォ読み込みから セマフ ォ保存までの命令シーケン スが実行され

    ます。 ほかのデバイ スは読み出し と ア ッ プデー ト の間のセマフ ォ ロ ケーシ ョ ンを変更し ません。 ほ かのデバイ スは、 操作中にセマフ ォ ロ ケーシ ョ ンから読み出すこ と ができ ます。 セマフ ォ操作が正 し く 動作するには、 必ず LWX 命令を SWX 命令とペアで使用し、 同じ ア ド レ ス を指定する よ う に し ます。 MicroBlaze では予約設定はワード単位で行われます。 両方の命令に対し、 ア ド レ スのワー ド が一致し ている必要があ り ます。これらの命令に対し てはワード不一致の例外が生成されません。

    条件付保存は、 保存ア ド レ スが予約を設定する読み込みア ド レ ス と一致し ていない場合でも、 予約

    が存在する場合常に実行されます。

    予約は 1 度に 1 つしか管理でき ません。 予約に関連し たア ド レ スは後続の LWX 命令を実行する と 変更でき ます。条件付保存は先の LWX 命令によ り 確立された予約に基づき実行されます。SWX 命 令を実行する と、 LWX で確立された もの と ア ド レ スが一致するかど う かにかかわらず、 常にプロ セ ッ サで保持されている予約がク リ アにな り ます。

    リ セ ッ ト 、 割 り 込み、 例外、 およびブレーク (BRK および BRKI 命令を含む) はすべて予約を ク リ ア し ます。

    LWX および SWX 命令を使用する ための一般的なガ イ ド ラ イ ンは次のよ う になっています。

    • LWX および SWX 命令はペアで使用し、 同じ ア ド レ ス を使用し ます。• ペアになっておらず、 別のア ド レ スに指定されている SWX 命令は、 プロセ ッ サで保持されて

    いる予約を ク リ アするために使用する こ と ができ ます。

    LWI Rd,Ra,Imm 111010 Rd Ra Imm Addr := Ra + s(Imm) Rd := *Addr

    SBI Rd,Ra,Imm 111100 Rd Ra Imm Addr := Ra + s(Imm) *Addr[0:7] := Rd[24:31]

    SHI Rd,Ra,Imm 111101 Rd Ra Imm Addr := Ra + s(Imm) *Addr[0:15] := Rd[16:31]

    SWI Rd,Ra,Imm 111110 Rd Ra Imm Addr := Ra + s(Imm) *Addr := Rd

    1. 浮動小数点の演算には特殊なケースが多数あ る ため、 通常の演算のみを示し ます。 第 4 章 「MicroBlaze 命令セ ッ ト アーキテ クチャ」 にすべての演算が リ ス ト されています。

    表 1-6 : MicroBlaze の命令セ ッ ト の一覧 (続き)

    タ イプ A 0 ~ 5 6 ~ 10 11 ~ 15 16 ~ 20 21 ~ 31セマンテ ィ クス

    タ イプ B 0 ~ 5 6 ~ 10 11 ~ 15 16 ~ 31

    MicroBlaze プロセ ッサ リ フ ァ ンレンス ガイ ド japan.xilinx.com 25UG081 (v10.3)

    http://japan.xilinx.com

  • 第 1 章 : MicroBlaze アーキテ クチャ

    • LWX 命令で条件付シーケン スは開始し ます。 その後、 メ モ リ ア ク セス または読み込まれた値に基づいた計算が続き ます。 シーケン スは SWX 命令で終了し ます。 ほ と んどの場合、 SWX 命令のエラーは LWX に返され、 再試行されます。

    • LWX 命令で読み込まれた値が 0 でない場合、 同期化プ リ ミ テ ィ ブよ っては実行する と きに LWX をペアにし な く て もかまいません。 これは、 テス ト と セ ッ ト のイ ンプ リ メ ンテーシ ョ ン例です。

    loop: lwx r5,r3,r0 ; load and reservebnei r5,next ; branch if not equal to zeroaddik r5,r5,1 ; increment valueswx r5,r3,r0 ; try to store non-zero valueaddic r5,r0,0 ; check reservationbnei r5,loop ; loop if reservation lost

    next:

    • LWX 命令で求める値が返されない場合、 LWX 命令のループを最小限にする こ と で、 パフ ォーマン ス を改善する こ と ができ ます。 また、 初期値チェ ッ ク を実行するため普通の読み込み命令を使用し て、 パフ ォーマン ス を改善する こ と もでき ます。 これは、 ス ピン ロ ッ ク のイ ンプ リ メ ンテーシ ョ ン例です。

    loop: lw r5,r3,r0 ; load the wordbnei r5,loop ; loop back if word not equal to 0lwx r5,r3,r0 ; try reserving againbnei r5,loop ; likely that no branch is needed addik r5,r5,1 ; increment valueswx r5,r3,r0 ; try to store non-zero valueaddic r5,r0,0 ; check reservationbnei r5,loop ; loop if reservation lost

    • LWX/SWX 命令ペアのループを最小限にする こ と で、 前に進める可能性が高ま り ます。 古い値は保存実行前にテス ト する必要があ り ます。 順序が逆になっている場合 ( 読み込みの前に保存が行われる場合 )、 さ らに多 く の SWX 命令が実行され、 LWX と SWX 間の予約が失われる可能性が高ま り ます。

    26 japan.xilinx.com MicroBlaze プロセ ッサ リ フ ァ ン レンス ガイ ドUG081 (v10.3)

    http://www.xilinx.com

  • レジス タ

    レジス タ

    MicroBlaze は直交命令セ ッ ト アーキテ クチャで、 32 個の 32 ビ ッ ト 汎用レジス タ と最大 18 個の 32 ビ ッ ト 特殊用途レジス タが含まれます。特殊用途レジス タの数は、設定するオプシ ョ ンによ って 異な り ます。

    汎用レジス タ

    32 個の 32 ビ ッ ト 汎用レジス タには、 R0 ~ R31 と い う 番号が付け られています。 レジス タ フ ァ イ ルは、ビ ッ ト ス ト リ ームのダウ ン ロード時に リ セ ッ ト されます。リ セ ッ ト 値は 0x00000000 です。 図 1-2 に汎用レジス タ を、 表 1-7 に各レジス タの説明および リ セ ッ ト 値 (存在する場合) を示し ます。

    メ モ : レジス タ フ ァ イルは、 外部 リ セ ッ ト 入力 Reset および Debug_Rst では リ セ ッ ト されません。

    汎用レジス タのソ フ ト ウ ェ アでの使用規則については、 表 3-2 を参照し て く ださ い。

    0 31

    R0 ~ R31

    図 1-2 : R0 ~ R31

    表 1-7 : 汎用レジス タ (R0 ~ R31)

    ビ ッ ト 名前 説明 リ セ ッ ト 値

    0:31 R0 常に 0 です。 書き込まれたデータは、すべて破棄 されます。

    0x00000000

    0:31 R1 ~ R13 32 ビ ッ ト 汎用レジス タ。 -

    0:31 R14 割 り 込みの戻 り ア ド レ スの格納に使用される 32 ビ ッ ト レジス タ。

    -

    0:31 R15 32 ビ ッ ト 汎用レジス タ。 ユーザー ベク タの戻り ア ド レ ス格納への使用を推奨し ます。

    -

    0:31 R16 ブレークの戻 り ア ド レ スの格納に使用される 32 ビ ッ ト レジス タ。

    -

    0:31 R17 MicroBlaze でハード ウ ェ ア例外をサポー ト する場合、 ハード ウ ェア例外の原因と なる命令

    に続 く 命令のア ド レ スの読み込みに使用。 た

    だし遅延ス ロ ッ ト の例外では、 BTR が使用されます ( 「分岐ターゲ ッ ト レジス タ (BTR)」 を参照)。 それ以外の場合は汎用レジス タです。

    -

    0:31 R18 ~ R31 32 ビ ッ ト 汎用レジス タ。 -

    MicroBlaze プロセ ッサ リ フ ァ ンレンス ガイ ド japan.xilinx.com 27UG081 (v10.3)

    http://japan.xilinx.com

  • 第 1 章 : MicroBlaze アーキテ クチャ

    特殊用途レジス タ

    プログラム カウン タ (PC)

    プロ グ ラ ム カ ウ ン タ (PC) は例外命令の 32 ビ ッ ト ア ド レ スで、 MFS 命令を使用し て読み出すこ と は可能ですが、MTS 命令を使用し て書き込むこ と はでき ません。 MFS 命令を使用する場合、PC レ ジス タは Sa = 0x0000 で指定し ます。 図 1-3 に PC を、表 1-8 に説明および リ セ ッ ト 値を示し ます。

    マシン ステータ ス レジス タ (MSR)

    マシン ステータ ス レジス タには、 プロセ ッサのコ ン ト ロール ビ ッ ト およびステータ ス ビ ッ ト が含 まれます。 MFS 命令を使用し て読み出すこ と ができ ます。 MSR を読み出す際、 ビ ッ ト 29 がキ ャ リ ー コ ピー と し てビ ッ ト 0 に複製されます。 MSR は、 MTS 命令または専用命令であ る MSRSET および MSRCLR を使用し て書き込むこ と ができ ます。

    MSRSET または MSRCLR を使用し て MSR に書き込むと、キ ャ リ ー ビ ッ ト はすぐに変化し、その 他のビ ッ ト は 1 ク ロ ッ ク サイ クル後に変化し ます。 MTS を使用し て書き込むと、 すべてのビ ッ ト が 1 ク ロ ッ ク サイ クル後に有効にな り ます。 ビ ッ ト 0 に書き込まれた値は、 すべて破棄されます

    MSR を MTS または MFS 命令 と使用する場合は、 MSR を Sx = 0x0001 で指定し ます。 図 1-4 に MSR レジス タ を、 表 1-9 にビ ッ ト の説明および リ セ ッ ト 値を示し ます。

    0 31

    PC

    図 1-3 : PC

    表 1-8 : プログラム カウン タ (PC)

    ビ ッ ト 名前 説明 リ セ ッ ト 値

    0:31 PC プロ グ ラ ム カ ウ ン タ

    実行命令のア ド レ ス。 「mfs r2 0」 では、 mfs 命令のア ドレ スが R2 に格納されます。

    0x00000000

    0 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

    ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑

    CC 予約済み VMS VM UMSUM PVR EIP EE DCE DZO ICE FSL BIP C IE BE

    図 1-4 : MSR

    28 japan.xilinx.com MicroBlaze プロセ ッサ リ フ ァ ン レンス ガイ ドUG081 (v10.3)

    http://www.xilinx.com

  • レジス タ

    表 1-9 : マシン ステータ ス レジス タ (MSR)

    ビ ッ ト 名前 説明 リ セ ッ ト 値

    0 CC 演算キ ャ リ ーのコ ピー

    演算キ ャ リ ー (ビ ッ ト 29) のコ ピーです。 CC は常にビ ッ ト C と同じです。

    0

    1:16 予約済み

    17 VMS 仮想保護モード での保存

    MMU を使用する場合のみ (C_USE_MMU > 1 かつ C_AREA_OPTIMIZED = 0)

    読み出し /書き込み

    0

    18 VM 仮想保護モード

    0 : C_USE_MMU = 3 の場合は MMU ア ド レ ス変換およびア ク セス保護デ ィ スエーブル、

    C_USE_MMU = 2 の場合はア ク セス保護デ ィスエーブル。

    1 : C_USE_MMU = 3 の場合は MMU ア ド レ ス変換およびア ク セス保護イ ネーブル、

    C_USE_MMU = 2 の場合はア ク セス保護イネーブル。

    MMU を使用する場合のみ (C_USE_MMU > 1 かつ C_AREA_OPTIMIZED = 0)

    読み出し /書き込み

    0

    19 UMS ユーザー モード での保存

    MMU を使用する場合のみ (C_USE_MMU > 0 かつ C_AREA_OPTIMIZED = 0)

    読み出し /書き込み

    0

    20 UM ユーザー モード

    0 : 特権モード。 すべての命令が許可されます。 1 : ユーザー モード 。 一部の命令は許可さ れません。

    MMU を使用する場合のみ (C_USE_MMU > 0 かつ C_AREA_OPTIMIZED = 0)

    読み出し /書き込み

    0

    21 PVR プロセ ッサ バージ ョ ン レジス タの有無

    0 : プロセ ッ サ バージ ョ ン レジス タ な し 1 : プロセ ッ サ バージ ョ ン レジス タ あ り

    読み出しのみ

    C_PVR のパラメ ータに依存

    MicroBlaze プロセ ッサ リ フ ァ ンレンス ガイ ド japan.xilinx.com 29UG081 (v10.3)

    http://japan.xilinx.com

  • 第 1 章 : MicroBlaze アーキテ クチャ

    22 EIP 例外実行中

    0 : 実行中のハード ウ ェ ア例外なし 1 : ハード ウ ェ ア例外を実行中

    例外がサポー ト されている場合のみ (C_*_EXCEPTION または C_USE_MMU)

    読み出し /書き込み

    0

    23 EE 例外イ ネーブル

    0 : ハード ウ ェ ア例外がデ ィ スエーブル1

    1 : ハード ウ ェ ア例外がイ ネーブル

    例 外 が サ ポ ー ト さ れ て い る 場 合 の み

    (C_*_EXCEPTION または C_USE_MMU)

    読み出し /書き込み

    0

    24 DCE データ キ ャ ッ シュ イ ネーブル

    0 : データ キ ャ ッ シュがデ ィ スエーブル 1 : データ キ ャ ッ シュがイ ネーブル

    データ キ ャ ッ シュが使用されている場合のみ (C_USE_DCACHE = 1)

    読み出し /書き込み

    0

    25 DZO 0 での除算または除算オーバーフ ロー2

    0 : 0 での除算なし、 または除算オーバーフ ローの発生

    1 : 0 での除算あ り 、 または除算オーバーフ ローの発生

    ハー ド ウ ェ ア除算器が使用さ れてい る場合のみ

    (C_USE_DIV = 1)

    読み出し /書き込み

    0

    26 ICE 命令キ ャ ッ シュ イネーブル

    0 : 命令キ ャ ッ シュがデ ィ スエーブル 1 : 命令キ ャ ッ シュがイ ネーブル

    命令 キ ャ ッ シ ュ が 使用 さ れ て い る 場合 の み

    (C_USE_ICACHE = 1)

    読み出し /書き込み

    0

    表 1-9 : マシン ステータ ス レジス タ (MSR) (続き)

    ビ ッ ト 名前 説明 リ セ ッ ト 値

    30 japan.xilinx.com MicroBlaze プロセ ッサ リ フ ァ ン レンス ガイ ドUG081 (v10.3)

    http://www.xilinx.com

  • レジス タ

    27 FSL FSL エラー

    0 : FSL の get/getd/put/putd でエラーなし 1 : FSL の get/getd/put/putd で制御タ イ プが不一致

    FSL リ ン クが使用されている場合のみ (C_FSL_LINKS > 0)

    読み出し /書き込み

    0

    28 BIP ブレーク実行中

    0 : 実行中のブレーク なし 1 : ブレーク実行中

    ブレーク のソースは、 ソ フ ト ウ ェ アのブレーク

    命令または Ext_Brk または Ext_NM_Brk ピ ンから のハード ウ ェ ア ブレークのいずれかです。

    読み出し /書き込み

    0

    29 C 演算キ ャ リ ー

    0 : キ ャ リ ーなし (ボロー ) 1 : キ ャ リ ー (ボローなし )

    読み出し /書き込み

    0

    30 IE 割 り 込みイ ネーブル

    0 : 割 り 込みがデ ィ スエーブル 1 : 割 り 込みがイ ネーブル

    読み出し /書き込み

    0

    31 BE バス ロ ッ ク イネーブル3

    0 : データ 側 OPB でのバス ロ ッ ク ディ ス エーブル

    1 : データ側 OPB でのバス ロ ッ ク イ ネーブル

    バス ロ ッ ク イネーブルは、 IXCL、 DXCL、ILMB、 DLMB、 IPLB、 DPLB、 または IOPB の動作に影響し ません。

    データ側 OPB が使用されている場合のみ

    読み出し /書き込み

    0

    1. MMU 例外 (データ格納例外、 命令格納例外、 データ TLB ミ ス例外、 命令 TLB ミ ス例外) はデ ィ スエーブルにでき ないため、 こ のビ ッ ト の影響を受けません。

    2. こ のビ ッ ト は、 整数が 0 で除算されている こ と、 または除算オーバーフ ローを示す信号でのみ使用し ます。 FSR には、 浮動小数点と 等価の も のがあ り ます。 DZO ビ ッ ト は、 プロセ ッ サで例外処理がイ ネーブルかど う かにかかわらず、 0 によ る除算または除算オーバーフ ローがあ るかど う かを示し ます。

    3. バス プロ ト コルの詳細は、 IBM CoreConnect の仕様 『64-Bit On-Chip Peripheral Bus, Architectural Specifications, Version 2.0』 を参照し て く だ さ い。

    表 1-9 : マシン ステータ ス レジス タ (MSR) (続き)

    ビ ッ ト 名前 説明 リ セ ッ ト 値

    MicroBlaze プロセ ッサ リ フ ァ ンレンス ガイ ド japan.xilinx.com 31UG081 (v10.3)

    http://japan.xilinx.com

  • 第 1 章 : MicroBlaze アーキテ クチャ

    例外ア ド レス レジス タ (EAR)

    例外ア ド レ ス レジス タは、 次の例外を発生させた読み込み/格納の完全なア ド レ ス を格納し ます。

    • 不整列ア ク セスによ る例外 (不整列ア ク セスのア ド レ ス)

    • DPLB または DOPB 例外 (実行でき なかった PLB または OPB データ ア ク セスのア ド レ ス)

    • データ格納例外 (ア ク セス された (仮想) 有効ア ド レ ス)

    • 命令格納例外 (読み出された (仮想) 有効ア ド レ ス)

    • データ TLB ミ ス 例外 (ア ク セス された (仮想) 有効ア ド レ ス)

    • 命令 TLB ミ ス例外 (読み出された (仮想) 有効ア ド レ ス)

    その他の例外では、 こ のレ ジス タ の内容は定義さ れていま せん。 EAR を MFS 命令で読み出す場 合、 Sa = 0x0003 で指定し ま す。 図 1-5 に EAR を、 表 1-10 にビッ ト の説明およ びリ セッ ト 値を 示 し ま す。

    0 31

    EAR

    図 1-5 : EAR

    表 1-10 : 例外ア ド レス レジス タ (EAR)

    ビ ッ ト 名前 説明 リ セ ッ ト 値

    0:31 EAR 例外ア ド レ ス レジス タ 0x00000000

    32 japan.xilinx.com MicroBlaze プロセ ッサ リ フ ァ ン レンス ガイ ドUG081 (v10.3)

    http://www.xilinx.com

  • レジス タ

    例外ステータ ス レジス タ (ESR)

    例外ステータ ス レジス タには、プロセ ッ サのステータ ス ビ ッ ト が含まれます。 ESR を MFS 命令で 読み出す場合、Sa = 0x0005 で指定し ます。 図 1-6 に ESR レジス タ を示し ます。表 1-11 にビ ッ ト の 説明と リ セ ッ ト 値を、 表 1-12 に例外ステータ ス (ESS) を示し ます。

    19 20 26 27 31

    ↑ ↑ ↑ ↑

    予約済み DS ESS EC

    図 1-6 : ESR

    表 1-11 : 例外ステータ ス レジス タ (ESR)

    ビ ッ ト 名前 説明 リ セ ッ ト 値

    0:18 予約済み

    19 DS 遅延ス ロ ッ ト によ る例外

    0 : 遅延ス ロ ッ ト 命令によ る例外な し 1 : 遅延ス ロ ッ ト 命令によ る例外あ り

    読み出しのみ

    0

    20:26 ESS 例外ステータ ス

    詳細は、 表 1-12 を参照し て く ださい。

    読み出しのみ

    表 1-12 を参照

    27:31 EC 例外の原因

    00000 : 高速シンプレ ッ ク ス リ ン ク の例外 00001 : 不整列データ ア ク セスによ る例外 00010 : 不正な op コード によ る例外 00011 : 命令バス エラーによ る例外 00011 : データ バス エラーによ る例外 00101 : 除算によ る例外 00110 : 浮動小数点ユニ ッ ト によ る例外 00111 : 特権命令によ る例外 10000 : データ格納によ る例外 10001 : 命令格納によ る例外 10010 : データ TLB ミ スによ る例外 10011 : 命令 TLB ミ スによ る例外

    読み出しのみ

    0

    MicroBlaze プロセ ッサ リ フ ァ ンレンス ガイ ド japan.xilinx.com 33UG081 (v10.3)

    http://japan.xilinx.com

  • 第 1 章 : MicroBlaze アーキテ クチャ

    表 1-12 : 例外ステータ ス (ESS)

    例外の原因 ビ ッ ト 名前 説明 リ セ ッ ト 値

    不整列データ

    ア ク セス

    20 W ワード ア ク セスによ る例外

    0 : 不整列ハーフ ワード ア ク セス

    1 : 不整列ワード ア ク セス

    0

    21 S 格納ア ク セスによ る例外

    0 : 不整列読み込みア ク セス

    1 : 不整列格納ア ク セス

    0

    22:26 Rx ソース/デステ ィ ネーシ ョ ン レジス タ

    不整列ア ク セスでソース (格納) またはデステ ィ ネーシ ョ ン (読み込み) とし て使用される汎用レジス タ

    0

    不正な命令 20:26 予約済み 0

    命令バス エラー 20:26 予約済み 0

    データ バス エラー 20:26 予約済み 0

    除算 20 DEC 除算 : 除算例外原因

    0 :ゼロでの 除算

    1 : 除算オーバーフ ロー

    0

    21:26 予約済み 0

    浮動小数点ユニ ッ ト 20:26 予約済み 0

    特権命令 20:26 予約済み 0

    高速シンプレ ッ ク ス リ ン ク

    20:22 予約済み 0

    23:26 FSL 例外発生の原因と なった高速シンプレ ッ ク ス リ ン クのイ ンデッ ク ス

    0

    データ格納 20 DIZ データ格納 - ゾーン保護

    0 : 実行されていない 1 : 実行された

    0

    21 S データ格納 - 格納命令

    0 : 実行されていない 1 : 実行された

    0

    22:26 予約済み 0

    命令格納 20 DIZ 命令格納 - ゾーン保護

    0 : 実行されていない 1 : 実行された

    0

    21:26 予約済み 0

    34 japan.xilinx.com MicroBlaze プロセ ッサ リ フ ァ ン レンス ガイ ドUG081 (v10.3)

    http://www.xilinx.com

  • レジス タ

    分岐ターゲ ッ ト レジス タ (BTR)

    分岐ターゲ ッ ト レジス タは、 MicroBlaze プロセ ッ サで例外を使用する よ う に設定し た場合にのみ 存在し ます。 MSR[EIP] = 0 の と き、 実行される遅延ス ロ ッ ト の分岐命令すべてに対する分岐ター ゲ ッ ト ア ド レ スがレジス タに格納されます。 遅延ス ロ ッ ト に含まれる命令によ り 例外が発生する と (ESR[DS]=1)、例外ハン ド ラは R17 に格納されている通常の例外ハン ド ラの戻 り ア ド レ スの代わ り に、 BTR に格納されている ア ド レ スに命令を戻し ます。 BTR を MFS 命令で読み出す場合、 Sa = 0x000B で指定し ます。 図 1-7 に BTR レジス タ を、 表 1-13 にビ ッ ト の説明および リ セ ッ ト 値を示 し ます。

    データ TLB ミ ス 20 予約済み 0

    21 S データ TLB ミ ス - 格納命令

    0 : 実行されていない 1 : 実行された

    0

    22:26 予約済み 0

    命令 TLB ミ ス 20:26 予約済み 0

    表 1-12 : 例外ステータ ス (ESS) (続き)

    例外の原因 ビ ッ ト 名前 説明 リ セ ッ ト 値

    0 31

    BTR

    図 1-7 : BTR

    表 1-13 : 分岐ターゲッ ト レジス タ (BTR)

    ビ ッ ト 名前 説明 リ セ ッ ト 値

    0:31 BTR 遅延ス ロ ッ ト に含まれる命令によ り 発生する例外から戻る と きにハン ド ラで使用される分岐ター

    ゲ ッ ト ア ド レ ス

    読み出しのみ

    0x00000000

    MicroBlaze プロセ ッサ リ フ ァ ンレンス ガイ ド japan.xilinx.com 35UG081 (v10.3)

    http://japan.xilinx.com

  • 第 1 章 : MicroBlaze アーキテ クチャ

    浮動小数点ユニ ッ ト ステータ ス レジス タ (FSR)

    浮動小数点ユニ ッ ト ステータ ス レジス タには、 浮動小数点ユニ ッ ト のステータ ス ビ ッ ト が含まれ ます。MFS 命令で読み出し、MTS 命令で書き込むこ と ができ ます。 読み出し または書き込みを実行 する場合、 Sa = 0x0007 で指定し ます。 浮動小数点ポイ ン ト 命令はレジス タのビ ッ ト のみをセ ッ ト し、レジス タ を ク リ アにするには MTS 命令を使用する しかあ り ません。図 1-8 に FSR レジス タ を、 表 1-14 にビ ッ ト の説明および リ セ ッ ト 値を示し ます。

    例外データ レジス タ (EDR)

    例外データ レジス タには、 FSL 例外の原因 と なった FSL リ ン ク で読み出されたデータが格納され ます。

    その他の例外では、こ のレジス タの内容は定義されていません。 EDR を MFS 命令で読み出す場合、 Sa = 0x000D で指定し ます。 図 1-9 に EDR レジス タ を、表 1-15 にビ ッ ト の説明および リ セ ッ ト 値 を示し ます。

    メ モ : C_FSL_LINKS が 0 よ り 大き く 、C_FSL_EXCEPTION が 1 に設定されている場合にのみイ ンプ リ メ ン ト されます。

    27 28 29 30 31

    ↑ ↑ ↑ ↑ ↑ ↑

    予約済み IO DZ OF UF DO

    図 1-8 : FSR

    表 1-14 : 浮動小数点ユニ ッ ト ステータ ス レジス タ (FSR)

    ビ ッ ト 名前 説明 リ セ ッ ト 値

    0:26 予約済み 未定義

    27 IO 不正な操作 0

    28 DZ 0 での除算 0

    29 OF オーバーフ ロー 0

    30 UF アンダーフ ロー 0

    31 DO 非正規化オペラ ン ド エラー 0

    0 31

    EDR

    図 1-9 : EDR

    36 japan.xilinx.com MicroBlaze プロセ ッサ リ フ ァ ン レンス ガイ ドUG081 (v10.3)

    http://www.xilinx.com

  • レジス タ

    プロセス識別レジス タ (PID)

    MMU ア ド レ ス変換の実行中に、 ソ フ ト ウ ェア プロセス を識別するために使用し ます。 MicroBlaze では、 C_USE_MMU コ ンフ ィ ギュ レーシ ョ ン オプシ ョ ンで制御し ます。 C_USE_MMU が 1 よ り 大き く 、 C_AREA_OPTIMIZED が 0 に設定されている場合にのみイ ンプ リ メ ン ト されます。 MFS および MTS 命令で PID にア ク セスする場合、Sa = 0x1000 で指定し ます。 こ のレジス タへのア ク セ スは、 メ モ リ 管理用の特殊なレジス タのパラ メ ータ、 C_MMU_TLB_ACCESS の設定に従います。

    また、 TLB エン ト リ へのア ク セスにも使用されます。

    • TLBHI (Translation Look-Aside Buffer High) を書き込む際に、 PID の値は TLB エン ト リ の TID フ ィ ール ド に格納されます。

    • TLBHI を読み出し、 また MSR[UM] が設定されていない場合は、 TID フ ィ ール ド の値が PID に格納されます。

    図 1-10 に PID レジス タ を、 表 1-16 にビ ッ ト の説明および リ セ ッ ト 値を示し ます。

    表 1-15 : 例外データ レジス タ (EDR)

    ビ ッ ト 名前 説明 リ セ ッ ト 値

    0:31 EDR 例外データ レジス タ 0x00000000

    24 31

    ↑ ↑

    予約済み PID

    図 1-10 : PID

    表 1-16 : プロセス識別レジス タ (PID)

    ビ ッ ト 名前 説明 リ セ ッ ト 値

    0:23 予約済み

    24:31 PID MMU ア ド レ ス変換の実行中に、 ソ フ ト ウ ェ ア プロセスを識別

    読み出し /書き込み

    0x00

    MicroBlaze プロセ ッサ リ フ ァ ンレンス ガイ ド japan.xilinx.com 37UG081 (v10.3)

    http://japan.xilinx.com

  • 第 1 章 : MicroBlaze アーキテ クチャ

    ゾーン保護レジス タ (ZPR)

    TLB エント リ で定義さ れた MMU メ モリ 保護を無効にし ます。 MicroBlaze では、C_USE_MMU コ ンフ ィ ギュ レーシ ョ ン オプシ ョ ンで制御し ます。 C_USE_MMU が 1 よ り 大き く 、 C_AREA_ OPTIMIZED が 0、 および指定された メ モ リ 保護ゾーン数が 0 よ り 大きい (C_MMU_ZONES> 0) 場合にのみイ ンプ リ メ ン ト されます。 イ ンプ リ メ ン ト される レジス タ ビ ッ ト 数は、 指定された メ モ リ 保護ゾーン数 (C_MMU_ZONES) によ って決ま り ます。 MFS および MTS 命令で ZPR にア ク セ スする場合、Sa = 0x1001 で指定し ます。 このレジス タへのア ク セスは、 メ モ リ 管理用の特殊なレジ ス タのパラ メ ータ、 C_MMU_TLB_ACCESS の設定に従います。 図 1-11 に ZPR レジス タ を、 表 1-17 にビ ッ ト の説明および リ セ ッ ト 値を示し ます。

    0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30

    ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ZP0 ZP1 ZP2 ZP3 ZP4 ZP5 ZP6 ZP7 ZP8 ZP9 ZP10 ZP11 ZP12 ZP13 ZP14 ZP15

    図 1-11 : ZPR

    表 1-17 : ゾーン保護レジス タ (ZPR)

    ビ ッ ト 名前 説明 リ セ ッ ト 値

    0:1

    2:3

    ...

    30:31

    ZP0

    ZP1

    ...

    ZP15

    ゾーン保護

    ユーザー モード (MSR[UM] = 1)

    00 : TLB エン ト リ の V を無効にする。 ページへのア ク セスは許可されません。

    01 : 無効になるエン ト リ な し。 TLB エン ト リ の V、 WR、および EX が使用されます。 10 : 無効になるエン ト リ な し。 TLB エン ト リ の V、 WR、および EX が使用されます。 11 : TLB エン ト リ の WR および EX を無効にする。 書き込みおよび実行可能と し てページにア ク セス し ます。

    特権モード (MSR[UM] = 0)

    00 : 無効になるエン ト リ な し。 TLB エン ト リ の V、 WR、および EX が使用されます。 01 : 無効になるエン ト リ な し。 TLB エン ト リ の V、 WR、および EX が使用されます。 10 : TLB エン ト リ の WR および EX を無効にする。 書き込みおよび実行可能と し てページにア ク セス し ます。

    11 : TLB エン ト リ の WR および EX を無効にする。 書き込みおよび実行可能と し てページにア ク セス し ます。

    読み出し /書き込み

    0x00000000

    38 japan.xilinx.com MicroBlaze プロセ ッサ リ フ ァ ン レンス ガイ ドUG081 (v10.3)

    http://www.xilinx.com

  • レジス タ

    変換ルッ クアサイ ド バッ フ ァ Low レジス タ (TLBLO)

    MMU の UTLB (Unified Translation Look-Aside Buffer) エント リ へのアク セス に使用し ま す。 MicroBlaze では、C_USE_MMU コ ンフィ ギュ レ ーショ ン オプショ ンで制御し ま す。 C_USE_MMU が 1 よ り 大き く 、 C_AREA_OPTIMIZED が 0 に設定されている場合にのみイ ンプ リ メ ン ト されま す。 MFS および MTS 命令で TLBLO にア ク セスする場合、Sa = 0x1003 で指定し ます。 TLBLO の 読み出し または書き込みでは、TLBX レジス タでイ ンデッ ク ス を付け られた UTLB エン ト リ がア ク セス されます。 このレジス タの読み出しは、 メ モ リ 管理用の特殊なレジス タのパラ メータ、 C_MMU_TLB_ACCESS の設定に従います。

    UTLB は、 ビ ッ ト ス ト リ ームがダウ ン ロード される と リ セ ッ ト されます。 リ セ ッ ト 値はすべての TLBLO エン ト リ で 0x00000000 です。

    メ モ : UTLB は、 外部 リ セ ッ ト 入力 Reset および Debug_Rst では リ セ ッ ト されません。

    図 1-12 に TLBLO レジス タ を、 表 1-18 にビ ッ ト の説明および リ セ ッ ト 値を示し ます。

    0 22 23 24 28 29 30 31

    ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑RPN EX WR ZSEL W I M G

    図 1-12 : TLBLO

    表 1-18 : 変換ルッ クアサイ ド バッ フ ァ Low レジス タ (TLBLO)

    ビ ッ ト 名前 説明 リ セ ッ ト 値

    0:21 RPN 実 (物理) ページ番号

    TLB ヒ ッ ト が発生する と、 このフ ィ ール ド が TLB エント リ から読み出され、 物理ア ド レ スの作成に使用されま

    す。 SIZE フ ィ ール ド の値によ っては RPN ビ ッ ト の一部は物理ア ド レ スには使用されないため、 ソ フ ト ウ ェアで

    こ のフ ィ ール ド の未使用ビ ッ ト を 0 にする必要があ り ます。

    C_USE_MMU=3 の場合のみ

    読み出し /書き込み

    0x000000

    22 EX 実行フ ァ イル

    1 に設定する とページに実行コード が含まれ、 命令はページよ り フ ェ ッ チでき ます。 0 の場合は、 命令はページから フ ェ ッ チでき ません。 EX ビ ッ ト が 0 のページから命令をフ ェ ッ チする と、 命令格納例外が発生し ます。

    読み出し /書き込み

    0

    MicroBlaze プロセ ッサ リ フ ァ ンレンス ガイ ド japan.xilinx.com 39UG081 (v10.3)

    http://japan.xilinx.com

  • 第 1 章 : MicroBlaze アーキテ クチャ

    23 WR 書き込み可能

    1 に設定する とページは書き込み可能で、 格納命令を使用し てページ内のア ド レ スににデータ を格納でき ます。

    0 の場合は、 ページは読み出しのみで、 書き込みでき ません。 WR ビ ッ ト が 0 のページにデータ を格納する と、データ格納例外が発生し ます。

    読み出し /書き込み

    0

    24:27 ZSEL ゾーン選択

    ゾーン保護レジス タ (ZPR) の 16 個のゾーン フ ィ ール ド (Z0 ~ Z15) から 1 個を選択し ます。 ZSEL が 0x5 の場合は、 ゾーン フ ィ ール ド Z5 が選択されます。 選択された ZPR フ ィ ール ド は、TLB エン ト リ の EX フ ィ ール ドおよび WR フ ィ ール ド で指定されたア クセス保護の変更に使用されます。 また、 TLB エン ト リ の V (有効) フ ィ ール ド を無効にし、 ページがア ク セス されないよ う にし ます。

    読み出し /書き込み

    0x0

    28 W ラ イ ト スルー

    パラ メ ータC_DCACHE_USE_WRITEBACK が 1 に設定されている場合、 こ のビ ッ ト はキ ャ ッ シュ ポ リ シーを制御します。 ラ イ ト スルーは 1 に設定されている場合に選択され、 それ以外の場合はラ イ ト バッ クが選択されます。

    C_DCACHE_USE_WRITEBACK が 0 にク リ ア されない限り 、 こ のビ ッ ト は 1 に固定されていて、 ラ イ ト スルーが常に使用されます。

    読み出し /書き込み

    1

    29 I キ ャ ッ シュの抑止

    1 に設定される と、 ページへのア ク セスはキ ャ ッ シュ されません。

    0 の場合は、 ページへのア ク セスはキ ャ ッ シュ可能です。

    読み出し /書き込み

    0

    表 1-18 : 変換ルッ クアサイ ド バッ フ ァ Low レジス タ (TLBLO) (続き)

    ビ ッ ト 名前 説明 リ セ ッ ト 値

    40 japan.xilinx.com MicroBlaze プロセ ッサ リ フ ァ ン レンス ガイ ドUG081 (v10.3)