292
MicroBlaze プロセッサ リファレンス ガイド この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資料に よっては英語版の更新に対応していないものがあります。日本語版は参考用としてご使用の上、最新情報につきまし ては、必ず最新英語版をご参照ください。 UG984 (v2017.2) 2017 年 6 月 7 日

MicroBlaze プロセッサ リファレンス ガイド ਨUG984) - XilinxMicroBlaze プロセッサ リファレンス ガイド 3 UG984 (v2017.1) 2017 年 4 月 5 日 japan.xilinx.com

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

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

    UG984 (v2017.1) 2017 年 4 月 5 日

    この資料は表記のバージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資料によっては英語版の更新に対応していないものがあります。日本語版は参考用としてご使用の上、最新情報につきましては、必ず最新英語版をご参照ください。

    UG984 (v2017.2) 2017 年 6 月 7 日

  • 改訂履歴

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

    日付 バージ ョ ン 改訂内容

    2013 年 3 月 20 日 2013.1 初版。 UG081 を元に記述。

    2013 年 6 月 19 日 2013.2 Vivado 2013.2 リ リ ース用に更新。

    2013 年 10 月 2 日 2013.3 Vivado 2013.3 リ リ ース用に更新。

    2013 年 12 月 18 日 2013.4 Vivado 2013.4 リ リ ース用に更新。

    2014 年 4 月 2 日 2014.1 Vivado 2014.1 リ リ ース用に更新。

    • PVR の MicroBlaze リ リ ース バージ ョ ン コード に v9.3 を追加。• ス タ ッ ク保護レジス タの使用と動作について明記。• LMB 命令およびデータ バス例外の説明を訂正。• v9.3 の新機能であ る拡張デバッ グ機能の説明を含める (パフ ォーマン ス 監視、 プ

    ロ グ ラ ム ト レース、 非侵入型プロ フ ァ イ リ ング)。• v9.3 の新機能であ る リ セ ッ ト モード信号の定義を含める。• AXI4-Stream TLAST 信号の処理方法を明記。• UltraScale を追加、 2014.1 用にパフ ォーマン スおよび リ ソース使用率をア ッ プデー

    ト 。

    2014 年 10 月 1 日 2014.3 Vivado 2014.3 リ リ ース用に更新。

    • 表 2-1 の PCMPEQ および PCMPNE の説明を訂正。• PVR の MicroBlaze リ リ ース バージ ョ ン コード に v9.4 を追加。• v9.4 の新機能であ る外部プロ グ ラ ム ト レースの説明を含める。

    2015 年 4 月 15 日 2015.1 Vivado 2015.1 リ リ ース用に更新。

    • v9.5 の新機能であ る 16 ワード キ ャ ッ シ ュの説明を含める。• PVR の MicroBlaze リ リ ース バージ ョ ン コード に v9.5 を追加。• サポー ト されるデンデ ィ アンおよびパラ メ ーター C_ENDIANNESS の説明を訂正。• 命令およびデータ キ ャ ッ シ ュの未処理読み出しの説明を訂正。• FPGA コ ンフ ィ ギ ュ レーシ ョ ン メ モ リ 保護についての参照 [参照 10] をア ッ プデー

    ト 。• 表 3-14 のロ ッ ク ステ ッ プ比較のバス イ ンデッ ク ス範囲の定期を訂正。• IDIV 命令で変更される レジス タ を明記。• MFS 命令の PVR アセンブラ ニーモニ ッ ク を訂正。• 2015.1 用にパフ ォーマン スおよび リ ソース使用率をア ッ プデー ト 。• ト レーニング リ ソースに参考資料を追加。

    2016 年 4 月 6 日 2016.1 Vivado 2016.1 リ リ ース用に更新。

    • v9.6 の新機能であ る ア ド レ ス拡張の説明を含める。• v9.6 の新機能であ るパイプラ イ ン一時停止機能の説明を含める。• v9.6 の新機能であ る非セキ ュ ア AXI ア ク セス サポー ト の説明を含める。• v9.6 の新機能であ るハイバーネー ト およびサスペン ド命令の説明を含める。• PVR の MicroBlaze リ リ ース バージ ョ ン コード に v9.6 を追加。• 表 2-45 および表 2-46 への参照を訂正。• XMD (Xilinx Microprocessor Debugger) を XSDB (Xilinx System Debugger) に置き換

    え。• svc_handler および svc_table_handler の C コード関数属性を削除。

    2017/06/07: Vivado® Design Suite 2017.2 リリース。内容の変更なし。

    MicroBlaze プロセ ッサ リ フ ァ レンス ガイ ド 2UG984 (v2017.1) 2017 年 4 月 5 日 japan.xilinx.comUG984 (v2017.2) 2017 年 6 月 7 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Reference_Guide&docId=UG984&Title=MicroBlaze%20%26%2312503%3B%26%2312525%3B%26%2312475%3B%26%2312483%3B%26%2312469%3B%20%26%2312522%3B%26%2312501%3B%26%2312449%3B%26%2312524%3B%26%2312531%3B%26%2312473%3B%20%26%2312460%3B%26%2312452%3B%26%2312489%3B&releaseVersion=2017.2&docPage=2

  • 2016 年 10 月 5 日 2016.3 Vivado 2016.3 リ リ ース用に更新。

    • v10.0 の新機能であ る周波数最適化の 8 段パイプラ イ ンの説明を追加。• v10.0 の新機能であ る ビ ッ ト フ ィ ール ド命令の説明を追加。• v10.0 の新機能であ るパラ レル デバッ グ イ ン ターフ ェ イ スの情報を含める。• PVR の MicroBlaze リ リ ース バージ ョ ン コード に v10.0 を追加。• PVR に Spartan-7 ターゲ ッ ト アーキテ クチャ を含める。• MSR リ セ ッ ト 値の説明をア ッ プデー ト 。• ザイ リ ン ク ス自動車用のアプ リ ケーシ ョ ンの免責条項をア ッ プデー ト 。

    2017 年 4 月 5 日 2017.1 Vivado 2017.1 リ リ ース用に更新。

    • MMU 物理ア ド レ ス拡張 (PAE) の新しいバージ ョ ン 10.0 の記述を追加。• 特権命令 リ ス ト を追加し て、 命令の説明をア ッ プデー ト 。• デバッ グ プロ グ ラ ム ト レースに関する情報をア ッ プデー ト 。• Triple Modular Redundancy (TMR) サブシステムへの参照文書を追加。• BSIFI 命令の説明を修正。• MFSE 命令の説明を PAE 情報を含めてア ッ プデー ト 。• PAE と使用される MTSE 命令の新しいバージ ョ ン 10.0 を追加。• 外部キ ャ ッ シ ュの無効と フ ラ ッ シュ を実行する WDC 命令をア ッ プデー ト 。

    日付 バージ ョ ン 改訂内容

    MicroBlaze プロセ ッサ リ フ ァ レンス ガイ ド 3UG984 (v2017.1) 2017 年 4 月 5 日 japan.xilinx.comUG984 (v2017.2) 2017 年 6 月 7 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Reference_Guide&docId=UG984&Title=MicroBlaze%20%26%2312503%3B%26%2312525%3B%26%2312475%3B%26%2312483%3B%26%2312469%3B%20%26%2312522%3B%26%2312501%3B%26%2312449%3B%26%2312524%3B%26%2312531%3B%26%2312473%3B%20%26%2312460%3B%26%2312452%3B%26%2312489%3B&releaseVersion=2017.2&docPage=3

  • 目次

    第 1 章: 概要内容 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

    第 2 章: MicroBlaze アーキテ クチャ概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7データ タ イプ と エンデ ィ アン設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12レジス タ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23パイプラ イ ン アーキテ クチャ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46メ モ リ アーキテ クチャ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49特権命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50仮想 メ モ リ 管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52リ セ ッ ト 、 割 り 込み、 例外、 およびブレーク . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64命令キ ャ ッ シ ュ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72データ キ ャ ッ シュ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75浮動小数点ユニ ッ ト (FPU) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79ス ト リ ーム リ ン ク イ ン ターフ ェ イ ス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83デバッ グおよび ト レース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84フ ォール ト ト レ ラ ン ス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104ロ ッ ク ステ ッ プ操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111コ ヒ ーレンシ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114データおよび命令のア ド レ ス拡張 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

    第 3 章: MicroBlaze 信号イ ン ターフ ェ イスの説明概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118MicroBlaze の I/O 概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119AXI4 および ACE イ ン ターフ ェ イ スについて . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131ローカル メ モ リ バス (LMB) イ ン ターフ ェ イ スについて . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137ロ ッ ク ステ ッ プ イ ン ターフ ェ イ スについて . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145デバッ グ イ ン ターフ ェ イ スについて . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150ト レース イ ン ターフ ェ イ スについて . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152MicroBlaze コ アのコ ンフ ィ ギュ レーシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155

    第 4 章: MicroBlaze アプ リ ケーシ ョ ン バイナ リ イ ン ターフ ェ イスデータ型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166レジス タの使用規則 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166ス タ ッ ク規則 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169メ モ リ モデル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171割 り 込み、 ブレーク、 例外処理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172

    MicroBlaze プロセ ッサ リ フ ァ レンス ガイ ド 4UG984 (v2017.1) 2017 年 4 月 5 日 japan.xilinx.comUG984 (v2017.2) 2017 年 6 月 7 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Reference_Guide&docId=UG984&Title=MicroBlaze%20%26%2312503%3B%26%2312525%3B%26%2312475%3B%26%2312483%3B%26%2312469%3B%20%26%2312522%3B%26%2312501%3B%26%2312449%3B%26%2312524%3B%26%2312531%3B%26%2312473%3B%20%26%2312460%3B%26%2312452%3B%26%2312489%3B&releaseVersion=2017.2&docPage=4

  • 第 5 章: MicroBlaze 命令セ ッ ト アーキテ クチャ記号の説明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174フ ォーマ ッ ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176

    付録 A: パフ ォーマンスおよびリ ソース使用率パフ ォーマン ス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282リ ソース使用量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283IP 特性化および fMAX マージン システム手法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288

    付録 B: その他のリ ソースおよび法的通知ザイ リ ン ク ス リ ソース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289ソ リ ューシ ョ ン セン ター . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289Documentation Navigator およびデザイ ン ハブ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289参考資料 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290ト レーニング リ ソース . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291お読み く ださ い: 重要な法的通知 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292

    MicroBlaze プロセ ッサ リ フ ァ レンス ガイ ド 5UG984 (v2017.1) 2017 年 4 月 5 日 japan.xilinx.comUG984 (v2017.2) 2017 年 6 月 7 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Reference_Guide&docId=UG984&Title=MicroBlaze%20%26%2312503%3B%26%2312525%3B%26%2312475%3B%26%2312483%3B%26%2312469%3B%20%26%2312522%3B%26%2312501%3B%26%2312449%3B%26%2312524%3B%26%2312531%3B%26%2312473%3B%20%26%2312460%3B%26%2312452%3B%26%2312489%3B&releaseVersion=2017.2&docPage=5

  • MicroBlaze プロセ ッサ リ フ ァ レンス ガイ ド 6UG984 (v2017.1) 2017 年 4 月 5 日 japan.xilinx.com

    第 1 章

    概要これは Vivado® リ リ ースに含まれる 32 ビ ッ ト のソ フ ト プロセ ッ サ、 MicroBlaze™ に関する資料で、 MicroBlaze ハード ウ ェア アーキテ クチャの リ フ ァ レ ン ス ガイ ド です。

    内容

    このガイ ド は、 次の各章で構成されています。

    • 第 2 章 MicroBlaze アーキテ クチャでは、 MicroBlaze の機能の概要をはじめ、 ビ ッ グ エンデ ィ アンおよび リ ト ル エンデ ィ アンのビ ッ ト 反転フ ォーマ ッ ト 、 32 ビ ッ ト の汎用レジス タ、 キ ャ ッ シュ ソ フ ト ウ ェア サポー ト 、 および AXI4-Stream イ ン ターフ ェ イ スなどの機能も説明し ます。

    • 第 3 章 MicroBlaze 信号イ ン ターフ ェ イ スの説明では、 MicroBlaze を接続するために使用可能な信号イ ン ターフ ェ イ スの種類を説明し ます。

    • 第 4 章 MicroBlaze アプ リ ケーシ ョ ン バイナ リ イ ン ターフ ェ イ スでは、 MicroBlaze 用にアセンブ リ 言語でソ フ トウ ェアを開発するのに重要な、 アプ リ ケーシ ョ ン バイナ リ イ ン ターフ ェ イ ス を説明し ます。

    • 第 5 章 MicroBlaze 命令セ ッ ト アーキテ クチャでは、 MicroBlaze の命令セ ッ ト アーキテ クチャ (ISA) のシンボル、フ ォーマ ッ ト 、 および命令について説明し ます。

    • 付録 A パフ ォーマン スおよび リ ソース使用率では、 各コ ンフ ィ ギュ レーシ ョ ンおよびデバイ スの最大周波数および リ ソース使用率を説明し ます。

    • 付録 B その他の リ ソースおよび法的通知には、 さ まざまな資料およびその他の リ ソースへの リ ン クがあ り ます。

    UG984 (v2017.2) 2017 年 6 月 7 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Reference_Guide&docId=UG984&Title=MicroBlaze%20%26%2312503%3B%26%2312525%3B%26%2312475%3B%26%2312483%3B%26%2312469%3B%20%26%2312522%3B%26%2312501%3B%26%2312449%3B%26%2312524%3B%26%2312531%3B%26%2312473%3B%20%26%2312460%3B%26%2312452%3B%26%2312489%3B&releaseVersion=2017.2&docPage=6

  • 第 2 章

    MicroBlaze アーキテ クチャこの章では、 MicroBlaze™ の機能の概要と、 ビ ッ グ エンデ ィ アン または リ ト ル エンデ ィ アンのビ ッ ト 反転フ ォーマ ッ ト 、 32 ビ ッ ト 汎用レジス タ、 仮想 メ モ リ 管理、 キ ャ ッ シュ ソ フ ト ウ ェア サポー ト 、 AXI4-Stream イ ン ターフ ェイ スなど、 このアーキテ クチャの詳細について説明し ます。

    概要

    MicroBlaze エンベデッ ド プロセ ッ サは、 ザイ リ ン ク ス フ ィ ール ド プロ グ ラ マブル ゲー ト アレ イ (FPGA) のイ ンプ リメ ンテーシ ョ ン用に最適化された RISC (Reduced Instruction Set Computer) コ アです。 図 2-1 は、 MicroBlaze コ アの機能ブロ ッ ク デザイ ンです。

    機能

    MicroBlaze ソ フ ト コ ア プロセ ッサは細か く 設定でき る ため、 デザイ ンに必要な特定の機能セ ッ ト を選択でき ます。

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

    データ側命令側

    ILMB

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

    命令バッファー

    プログラムカウンター

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

    ALU

    命令デコード

    バスIF

    バスIF

    I キャ

    ッシ

    D キ

    ャッ

    シュ

    シフト

    バレル シフト

    乗算器

    除算器

    FPU

    特殊用途

    レジスタ

    オプションの MicroBlaze 機能

    M_AXI_IP

    UTLBITLB DTLB

    メモリ管理ユニット (MMU)

    M_AXI_IC M_AXI_DC

    分岐ターゲットキャッシュ

    M0_AXIS..

    S0_AXIS..M15_AXIS

    S15_AXIS

    M_ACE_DCM_ACE_IC

    M_AXI_DP

    DLMB

    MicroBlaze プロセ ッサ リ フ ァ レンス ガイ ド 7UG984 (v2017.1) 2017 年 4 月 5 日 japan.xilinx.comUG984 (v2017.2) 2017 年 6 月 7 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Reference_Guide&docId=UG984&Title=MicroBlaze%20%26%2312503%3B%26%2312525%3B%26%2312475%3B%26%2312483%3B%26%2312469%3B%20%26%2312522%3B%26%2312501%3B%26%2312449%3B%26%2312524%3B%26%2312531%3B%26%2312473%3B%20%26%2312460%3B%26%2312452%3B%26%2312489%3B&releaseVersion=2017.2&docPage=7

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

    プロセ ッ サの固定機能セ ッ ト には、 次のものがあ り ます。

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

    • オペラ ン ド 3 つと ア ド レ ス指定モード 2 つを含む 32 ビ ッ ト 命令ワード

    • デフ ォル ト の 32 ビ ッ ト ア ド レ ス バス (64 ビ ッ ト に拡張可能)

    • 単一発行のパイプラ イ ン

    これらの固定機能のほか、 MicroBlaze プロセ ッ サには追加機能を選択し て有効にでき るパラ メ ーター値があ り ます。古いバージ ョ ン (サポー ト されな く なった もの) の MicroBlaze では、 この資料で説明するオプシ ョ ンの機能の一部のみがサポー ト されます。 最新バージ ョ ンの MicroBlaze (v10.0) では、 すべてのオプシ ョ ンがサポー ト されます。

    新しいデザイ ンには最新バージ ョ ンの MicroBlaze を使用する よ う にし て く ださい。

    8 ページの表 2-1には、 MicroBlaze のバージ ョ ン別に、 コ ンフ ィ ギュ レーシ ョ ン可能な機能がま と められています。

    表 2-1: コ ン フ ィ ギュ レーシ ョ ン可能な機能 (MicroBlaze バージ ョ ン別)

    機能MicroBlaze バージ ョ ン

    v9.2 v9.3 v9.4 v9.5 v9.6 v10.0

    バージ ョ ン ステータ ス サポー ト終了

    サポー ト

    終了

    サポー ト

    終了

    サポー ト

    終了

    サポー ト

    終了

    推奨

    プロセ ッサのパイプラ イ ンの深さ 3/5 3/5 3/5 3/5 3/5 3/5/8

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

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

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

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

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

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

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

    ス ト リ ーム リ ン ク イ ン ターフ ェ イ ス 0-16 AXI 0-16 AXI 0-16 AXI 0-16 AXI 0-16 AXI 0-16 AXI

    マシン ステータ ス セ ッ ト およびク リ ア命令

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

    キ ャ ッ シュ ラ イ ン ワード長 4、 8 4、 8 4、 8 4、 8、 16 4、 8、 16 4、 8、 16

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

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

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

    ハード ウ ェア乗算器のデ ィ スエーブル1 オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン

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

    ○ ○ ○ ○ ○ ○

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

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

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

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

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

    メ モ リ 管理ユニ ッ ト (MMU) オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン

    MicroBlaze プロセ ッサ リ フ ァ レンス ガイ ド 8UG984 (v2017.1) 2017 年 4 月 5 日 japan.xilinx.comUG984 (v2017.2) 2017 年 6 月 7 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Reference_Guide&docId=UG984&Title=MicroBlaze%20%26%2312503%3B%26%2312525%3B%26%2312475%3B%26%2312483%3B%26%2312469%3B%20%26%2312522%3B%26%2312501%3B%26%2312449%3B%26%2312524%3B%26%2312531%3B%26%2312473%3B%20%26%2312460%3B%26%2312452%3B%26%2312489%3B&releaseVersion=2017.2&docPage=8

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

    拡張ス ト リ ーム命令 オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン

    すべての I キ ャ ッ シュ メ モ リ ア ク セスにキ ャ ッ シュ イ ン ターフ ェ イ ス を使用

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

    すべての D キ ャ ッ シ ュ メ モ リ ア ク セスにキ ャ ッ シュ イ ン ターフ ェ イ ス を使用

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

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

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

    分岐先キ ャ ッ シュ (BTC) オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン

    I キ ャ ッ シュ用ス ト リ ーム オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン

    I キ ャ ッ シュ用ビ ク テ ィ ム処理 オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン

    D キ ャ ッ シュ用ビ ク テ ィ ム処理 オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン

    AXI4 (M_AXI_DP) データ側イ ン ターフ ェ イ ス

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

    AXI4 (M_AXI_IP) 命令側イ ン ターフ ェ イス

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

    D キ ャ ッ シュ用 AXI4 (M_AXI_DC) プロト コル

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

    I キ ャ ッ シュ用 AXI4 (M_AXI_IC) プロ トコル

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

    ス ト リ ーム ア ク セス用 AXI4 プロ ト コル オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン

    フ ォール ト ト レ ラ ン ス オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン

    キ ャ ッ シュ タ グ用に分散 RAM を使用 オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン

    コ ンフ ィ ギ ャ ラブル キ ャ ッ シュ データ幅

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

    前ゼロのカ ウ ン ト 命令 オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン

    メ モ リ バ リ ア命令 ○ ○ ○ ○ ○ ○

    ス タ ッ ク オーバーフ ローおよびアンダーフ ローの検出

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

    ユーザー モード のス ト リ ーム命令 オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン

    ロ ッ ク ステ ッ プ サポー ト オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン

    FPGA プ リ ミ テ ィ ブのコ ンフ ィ ギュ レーシ ョ ン設定

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

    低レ イ テンシ割 り 込みモード オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン

    ス ワ ッ プ命令 オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン

    ス リ ープ モードおよびス リ ープ命令 ○ ○ ○ ○ ○ ○

    配置換え可能なベース ベク ター オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン

    D キ ャ ッ シュ用 ACE (M_ACE_DC) プロト コル

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

    I キ ャ ッ シュ用 ACE (M_ACE_IC) プロ トコル

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

    表 2-1: コ ン フ ィ ギュ レーシ ョ ン可能な機能 (MicroBlaze バージ ョ ン別)

    機能MicroBlaze バージ ョ ン

    v9.2 v9.3 v9.4 v9.5 v9.6 v10.0

    MicroBlaze プロセ ッサ リ フ ァ レンス ガイ ド 9UG984 (v2017.1) 2017 年 4 月 5 日 japan.xilinx.comUG984 (v2017.2) 2017 年 6 月 7 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Reference_Guide&docId=UG984&Title=MicroBlaze%20%26%2312503%3B%26%2312525%3B%26%2312475%3B%26%2312483%3B%26%2312469%3B%20%26%2312522%3B%26%2312501%3B%26%2312449%3B%26%2312524%3B%26%2312531%3B%26%2312473%3B%20%26%2312460%3B%26%2312452%3B%26%2312489%3B&releaseVersion=2017.2&docPage=9

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

    拡張デバッ グ: パフ ォーマン ス監視、 プロ グ ラ ム ト レース、 非侵入型プロ フ ァイ リ ング

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

    リ セ ッ ト モード : ス リ ープに入る、 または リ セ ッ ト でデバッ グ停止

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

    拡張デバッ グ: 外部プロ グ ラ ム ト レース オプシ ョ ン オプシ ョ ン オプシ ョ ン オプシ ョ ン

    拡張データ ア ド レ ス指定 オプシ ョ ン オプシ ョ ン

    パイプラ イ ン一時停止機能 ○ ○

    ハイバーネー ト およびサスペン ド命令 ○ ○

    非セキ ュ ア モード ○ ○

    ビ ッ ト フ ィ ール ド命令2 オプシ ョ ン

    パラ レル デバッ グ イ ン ターフ ェ イ ス オプシ ョ ン

    MMU 物理ア ド レ ス拡張 オプシ ョ ン

    1. DSP48E プ リ ミ テ ィ ブを節約する ために使用2. C_USE_BARREL = 1 の と き ビ ッ ト フ ィ ール ド命令は使用可能。

    表 2-1: コ ン フ ィ ギュ レーシ ョ ン可能な機能 (MicroBlaze バージ ョ ン別)

    機能MicroBlaze バージ ョ ン

    v9.2 v9.3 v9.4 v9.5 v9.6 v10.0

    MicroBlaze プロセ ッサ リ フ ァ レンス ガイ ド 10UG984 (v2017.1) 2017 年 4 月 5 日 japan.xilinx.comUG984 (v2017.2) 2017 年 6 月 7 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Reference_Guide&docId=UG984&Title=MicroBlaze%20%26%2312503%3B%26%2312525%3B%26%2312475%3B%26%2312483%3B%26%2312469%3B%20%26%2312522%3B%26%2312501%3B%26%2312449%3B%26%2312524%3B%26%2312531%3B%26%2312473%3B%20%26%2312460%3B%26%2312452%3B%26%2312489%3B&releaseVersion=2017.2&docPage=10

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

    データ タ イプ と エンデ ィ アン設定MicroBlaze では、 設定によ り 、 データ表現にビ ッ グ エンデ ィ アン または リ ト ル エンデ ィ アンが使用されます。 パラメ ーター C_ENDIANNESS はデフ ォル ト で 1 ( リ ト ル エンデ ィ アン) です。

    MicroBlaze の場合、 ハード ウ ェア サポー ト されているデータ タ イプは、 ワード、 ハーフ ワード、 およびバイ ト です。 反転ロードおよび反転ス ト ア命令の LHUR、 LWR、 SHR、 SWR を使用する と、 表のバイ ト 反転順序に示すよ うに、 データ内のバイ ト が反転されます。

    各データ タ イプのビ ッ ト およびバイ ト 構成は次の表にま と められています。

    表 2-2: ワー ド データ タ イプ

    ビ ッ グ エンデ ィ アン バイ ト ア ド レ ス n n+1 n+2 n+3

    ビ ッ グ エンデ ィ アン上位/下位バイ ト 最上位バイ ト

    最下位バ

    イ ト

    ビ ッ グ エンデ ィ アン バイ ト 順序 n n+1 n+2 n+3

    ビ ッ グ エンデ ィ アン バイ ト 反転順序 n+3 n+2 n+1 n

    リ ト ル エンデ ィ アン バイ ト ア ド レ ス n+3 n+2 n+1 n

    リ ト ル エンデ ィ アン上位/下位バイ ト 最上位バイ ト

    最下位バ

    イ ト

    リ ト ル エンデ ィ アン バイ ト 順序 n+3 n+2 n+1 n

    リ ト ル エンデ ィ アン バイ ト 反転順序 n n+1 n+2 n+3

    ビ ッ ト ラベル 0 31

    上位ビ ッ ト /下位ビ ッ ト 最上位ビ ッ ト

    最下位

    ビ ッ ト

    表 2-3: ハーフ ワー ド データ タ イプ

    ビ ッ グ エンデ ィ アン バイ ト ア ド レ ス n n+1

    ビ ッ グ エンデ ィ アン上位/下位バイ ト 最上位バイ ト

    最下位バ

    イ ト

    ビ ッ グ エンデ ィ アン バイ ト 順序 n n+1

    ビ ッ グ エンデ ィ アン バイ ト 反転順序 n+1 n

    リ ト ル エンデ ィ アン バイ ト ア ド レ ス n+1 n

    リ ト ル エンデ ィ アン上位/下位バイ ト 最上位バイ ト

    最下位バ

    イ ト

    リ ト ル エンデ ィ アン バイ ト 順序 n+1 n

    リ ト ル エンデ ィ アン バイ ト 反転順序 n n+1

    ビ ッ ト ラベル 0 15

    上位ビ ッ ト /下位ビ ッ ト 最上位ビ ッ ト

    最下位

    ビ ッ ト

    MicroBlaze プロセ ッサ リ フ ァ レンス ガイ ド 11UG984 (v2017.1) 2017 年 4 月 5 日 japan.xilinx.comUG984 (v2017.2) 2017 年 6 月 7 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Reference_Guide&docId=UG984&Title=MicroBlaze%20%26%2312503%3B%26%2312525%3B%26%2312475%3B%26%2312483%3B%26%2312469%3B%20%26%2312522%3B%26%2312501%3B%26%2312449%3B%26%2312524%3B%26%2312531%3B%26%2312473%3B%20%26%2312460%3B%26%2312452%3B%26%2312489%3B&releaseVersion=2017.2&docPage=11

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

    命令

    命令のま とめ

    MicroBlaze 命令はすべて 32 ビ ッ ト で、 タ イプ A またはタ イプ B と し て定義されています。 タ イプ A 命令には、 ソース レジス タ オペラ ン ド が最高で 2 つ、ソース レジス タ オペラ ン ド が 1 つあ り ます。タ イプ B 命令には 1 つのソース レジス タおよび 16 ビ ッ ト の即値オペラ ン ド があ り ます (即値命令でタ イプ B 命令を先行させて、 32 ビ ッ ト に拡張可能)。 タ イプ B 命令にはシングル デステ ィ ネーシ ョ ン レジス タ オペラ ン ド が 1 つあ り ます。 命令には、 演算、 論理、分岐、 ロード /ス ト ア、 および特殊、 と い う カテゴ リ があ り ます。 表 2-6 には MicroBlaze 命令セ ッ ト が リ ス ト されています。 これらの命令の詳細は、 第 5 章 「MicroBlaze 命令セ ッ ト アーキテ クチャ」 を参照し て く ださい。 表 2-5 には、 各命令のセマンテ ィ ク スで使用される命令セ ッ ト 用語が説明されています。

    表 2-4: バイ ト データ タ イプ

    バイ ト ア ド レ ス n

    ビ ッ ト ラベル 0 7

    上位ビ ッ ト /下位ビ ッ ト 最上位ビ ッ ト

    最下位

    ビ ッ ト

    表 2-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]

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

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

    x[y:z] レジス タ x のビ ッ ト 範囲 y から z

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

    Imm 16 ビ ッ ト の即値

    Immx x ビ ッ ト の即値

    FSLx 4 ビ ッ ト AXI4-Stream ポー ト の指定 (x はポー ト 番号)

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

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

    MicroBlaze プロセ ッサ リ フ ァ レンス ガイ ド 12UG984 (v2017.1) 2017 年 4 月 5 日 japan.xilinx.comUG984 (v2017.2) 2017 年 6 月 7 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Reference_Guide&docId=UG984&Title=MicroBlaze%20%26%2312503%3B%26%2312525%3B%26%2312475%3B%26%2312483%3B%26%2312469%3B%20%26%2312522%3B%26%2312501%3B%26%2312449%3B%26%2312524%3B%26%2312531%3B%26%2312473%3B%20%26%2312460%3B%26%2312452%3B%26%2312489%3B&releaseVersion=2017.2&docPage=12

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

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

    s(x) 符号拡張引数 x を 32 ビ ッ ト 値にする

    *Addr ロ ケーシ ョ ン Addr での メ モ リ 内容 (データサイ ズは揃っている )

    := 割 り 当て演算子

    = 同等比較

    != 不等比較

    > 大な り

    >= それ以上

    < 小な り

    > x x ビ ッ ト 右シフ ト

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

    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

    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

    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)

    BSRL Rd,Ra,Rb 010001 Rd Ra Rb 00000000000 Rd := 0 & (Ra >> Rb)

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

    BSLL Rd,Ra,Rb 010001 Rd Ra Rb 10000000000 Rd := (Ra

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

    FMUL Rd,Ra,Rb 010110 Rd Ra Rb 00100000000 Rd := Rb*Ra, float1

    FDIV Rd,Ra,Rb 010110 Rd Ra Rb 00110000000 Rd := Rb/Ra, float1

    FCMP.UN Rd,Ra,Rb 010110 Rd Ra Rb 01000000000 Rd := 1 if (Rb = NaN or Ra = NaN, float1) else Rd := 0

    FCMP.LT Rd,Ra,Rb 010110 Rd Ra Rb 01000010000 Rd := 1 if (Rb < Ra, float1) else Rd := 0

    FCMP.EQ Rd,Ra,Rb 010110 Rd Ra Rb 01000100000 Rd := 1 if (Rb = Ra, float1) else Rd := 0

    FCMP.LE Rd,Ra,Rb 010110 Rd Ra Rb 01000110000 Rd := 1 if (Rb Ra, float1) else Rd := 0

    FCMP.NE Rd,Ra,Rb 010110 Rd Ra Rb 01001010000 Rd := 1 if (Rb != Ra, float1) else Rd := 0

    FCMP.GE Rd,Ra,Rb 010110 Rd Ra Rb 01001100000 Rd := 1 if (Rb >= 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

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

    MULI Rd,Ra,Imm 011000 Rd Ra Imm Rd := Ra * s(Imm)

    BSRLI Rd,Ra,Imm 011001 Rd Ra 00000000000 & Imm5 Rd : = 0 & (Ra >> Imm5)

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

    BSLLI Rd,Ra,Imm 011001 Rd Ra 00000100000 & Imm5 Rd := (Ra > ImmS)

    BSIFI Rd,Ra, Width,ImmS

    011001 Rd Ra 10000 & ImmW & 0 & ImmS

    M := (0xffffffff

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

    TNCAPUT Ra,FSLx 011011 00000 Ra 1N1TA0000000 & FSLx FSLx := Ra (control write, block if N = 0) MSR[C] := FSLx_M_Full if N = 1

    OR Rd,Ra,Rb 100000 Rd Ra Rb 00000000000 Rd := Ra or 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

    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

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

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

    PCMPNE Rd,Ra,Rb 100011 Rd Ra Rb 10000000000 Rd := 1 if (Rb != 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])

    CLZ Rd, Ra 100100 Rd Ra 0000000011100000 Rd = clz(Ra)

    SWAPB Rd, Ra 100100 Rd Ra 0000000111100000 Rd = (Ra)[24:31, 16:23, 8:15, 0:7]

    SWAPH Rd, Ra 100100 Rd Ra 0000000111100010 Rd = (Ra)[16:31, 0:15]

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

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

    ICache_Line[Ra >> 6].Tag := 0 if (C_ICACHE_LINE_LEN = 16)

    表 2-6: MicroBlaze 命令セ ッ ト のま とめ (続き)

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

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

    MicroBlaze プロセ ッサ リ フ ァ レンス ガイ ド 16UG984 (v2017.1) 2017 年 4 月 5 日 japan.xilinx.comUG984 (v2017.2) 2017 年 6 月 7 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Reference_Guide&docId=UG984&Title=MicroBlaze%20%26%2312503%3B%26%2312525%3B%26%2312475%3B%26%2312483%3B%26%2312469%3B%20%26%2312522%3B%26%2312501%3B%26%2312449%3B%26%2312524%3B%26%2312531%3B%26%2312473%3B%20%26%2312460%3B%26%2312452%3B%26%2312489%3B&releaseVersion=2017.2&docPage=16

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

    WDC Ra,Rb 100100 00000 Ra Rb 00001100100 キ ャ ッ シュ ラ イ ンはク リ ア、 格納されたデータ を破棄。

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

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

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

    WDC.FLUSH Ra,Rb 100100 00000 Ra Rb 00001110100 キ ャ ッ シュ ラ イ ンはフ ラ ッ シュ、 格納されたデータ を メ モ リ に書き込んでから、 ク リ

    ア。 C_DCACHE_USE_WRITEBACK = 1 の とき使用。

    WDC.CLEAR Ra,Rb 100100 00000 Ra Rb 00001100110 一致し たア ド レ スのキ ャ ッ シュ ラ イ ンはクリ ア、 格納されたデータ を破棄。

    C_DCACHE_USE_WRITEBACK = 1 の と き使用。

    WDC.CLEAR.EA Ra,Rb 100100 00000 Ra Rb 00011100110 一致し た拡張ア ド レ ス Ra & Rb のキ ャ ッ シュ ラ イ ンはク リ ア。

    C_DCACHE_USE_WRITEBACK = 1 の と き使用。

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

    · SPR[0x0001] は MSR

    · SPR[0x0007] は FSR

    · SPR[0x0800] は SLR

    · SPR[0x0802] は SHR

    · SPR[0x1000] は PID

    · SPR[0x1001] は ZPR

    · SPR[0x1002] は TLBX

    · SPR[0x1003] is TLBLO[LSH]

    · SPR[0x1004] は TLBHI

    · SPR[0x1005] は TLBSX

    MTSE Sd,Ra 100101 01000 Ra 11 & Sd SPR[Sd} := Ra, where:

    · SPR[0x1003] is TLBLO[MSH]

    表 2-6: MicroBlaze 命令セ ッ ト のま とめ (続き)

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

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

    MicroBlaze プロセ ッサ リ フ ァ レンス ガイ ド 17UG984 (v2017.1) 2017 年 4 月 5 日 japan.xilinx.comUG984 (v2017.2) 2017 年 6 月 7 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Reference_Guide&docId=UG984&Title=MicroBlaze%20%26%2312503%3B%26%2312525%3B%26%2312475%3B%26%2312483%3B%26%2312469%3B%20%26%2312522%3B%26%2312501%3B%26%2312449%3B%26%2312524%3B%26%2312531%3B%26%2312473%3B%20%26%2312460%3B%26%2312452%3B%26%2312489%3B&releaseVersion=2017.2&docPage=17

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

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

    · SPR[0x0000] は PC

    · SPR[0x0001] は MSR

    · SPR[0x0003] is EAR[LSH]

    · SPR[0x0005] は ESR

    · SPR[0x0007] は FSR

    · SPR[0x000B] は BTR

    · SPR[0x000D] は EDR

    · SPR[0x0800] は SLR

    · SPR[0x0802] は SHR

    · SPR[0x1000] は PID

    · SPR[0x1001] は ZPR

    · SPR[0x1002] は TLBX

    · SPR[0x1003] is TLBLO[LSH]

    · SPR[0x1004] は TLBHI

    · SPR[0x2000-200B] is PVR[0-12][LSH]

    MFSE Rd,Sa 100101 Rd 01000 10 & Sa Rd := SPR[Sa][MSH], where:

    · SPR[0x0003] is EAR[MSH]

    · SPR[0x1003] is TLBLO[MSH]

    · SPR[0x2006-2009] is PVR[6-9][MSH]

    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

    表 2-6: MicroBlaze 命令セ ッ ト のま とめ (続き)

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

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

    MicroBlaze プロセ ッサ リ フ ァ レンス ガイ ド 18UG984 (v2017.1) 2017 年 4 月 5 日 japan.xilinx.comUG984 (v2017.2) 2017 年 6 月 7 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Reference_Guide&docId=UG984&Title=MicroBlaze%20%26%2312503%3B%26%2312525%3B%26%2312475%3B%26%2312483%3B%26%2312469%3B%20%26%2312522%3B%26%2312501%3B%26%2312449%3B%26%2312524%3B%26%2312531%3B%26%2312473%3B%20%26%2312460%3B%26%2312452%3B%26%2312489%3B&releaseVersion=2017.2&docPage=18

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

    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

    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)

    MBAR Imm 101110 Imm 00010 0000000000000100 PC := PC + 4、 メ モ リ ア ク セス を待機

    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

    表 2-6: MicroBlaze 命令セ ッ ト のま とめ (続き)

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

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

    MicroBlaze プロセ ッサ リ フ ァ レンス ガイ ド 19UG984 (v2017.1) 2017 年 4 月 5 日 japan.xilinx.comUG984 (v2017.2) 2017 年 6 月 7 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Reference_Guide&docId=UG984&Title=MicroBlaze%20%26%2312503%3B%26%2312525%3B%26%2312475%3B%26%2312483%3B%26%2312469%3B%20%26%2312522%3B%26%2312501%3B%26%2312449%3B%26%2312524%3B%26%2312531%3B%26%2312473%3B%20%26%2312460%3B%26%2312452%3B%26%2312489%3B&releaseVersion=2017.2&docPage=19

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

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

    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

    LBUR Rd,Ra,Rb

    110000 Rd Ra Rb 00000000000

    01000000000

    Addr := Ra + Rb Rd[0:23] := 0 Rd[24:31] := *Addr[0:7]

    LBUEA Rd,Ra,Rb 110000 Rd Ra Rb 00010000000 Addr := Ra & Rb Rd[0:23] := 0 Rd[24:31] := *Addr[0:7]

    LHU Rd,Ra,Rb

    LHUR Rd,Ra,Rb

    110001 Rd Ra Rb 00000000000

    01000000000

    Addr := Ra + Rb Rd[0:15] := 0 Rd[16:31] := *Addr[0:15]

    LHUEA Rd,Ra,Rb 110001 Rd Ra Rb 00010000000 Addr := Ra & Rb Rd[0:15] := 0 Rd[16:31] := *Addr[0:15]

    LW Rd,Ra,Rb LWR Rd,Ra,Rb

    110010 Rd Ra Rb 00000000000 01000000000

    Addr := Ra + Rb Rd := *Addr

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

    LWEA Rd,Ra,Rb 110010 Rd Ra Rb 00010000000 Addr := Ra & Rb Rd := *Addr

    SB Rd,Ra,Rb

    SBR Rd,Ra,Rb

    110100 Rd Ra Rb 00000000000

    01000000000

    Addr := Ra + Rb *Addr[0:8] := Rd[24:31]

    SBEA Rd,Ra,Rb 110100 Rd Ra Rb 00010000000 Addr := Ra & Rb *Addr[0:8] := Rd[24:31]

    SH Rd,Ra,Rb

    SHR Rd,Ra,Rb

    110101 Rd Ra Rb 00000000000

    01000000000

    Addr := Ra + Rb *Addr[0:16] := Rd[16:31]

    SHEA Rd,Ra,Rb 110101 Rd Ra Rb 00010000000 Addr := Ra & Rb *Addr[0:16] := Rd[16:31]

    SW Rd,Ra,Rb SWR Rd,Ra,Rb

    110110 Rd Ra Rb 00000000000 01000000000

    Addr := Ra + Rb *Addr := Rd

    表 2-6: MicroBlaze 命令セ ッ ト のま とめ (続き)

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

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

    MicroBlaze プロセ ッサ リ フ ァ レンス ガイ ド 20UG984 (v2017.1) 2017 年 4 月 5 日 japan.xilinx.comUG984 (v2017.2) 2017 年 6 月 7 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Reference_Guide&docId=UG984&Title=MicroBlaze%20%26%2312503%3B%26%2312525%3B%26%2312475%3B%26%2312483%3B%26%2312469%3B%20%26%2312522%3B%26%2312501%3B%26%2312449%3B%26%2312524%3B%26%2312531%3B%26%2312473%3B%20%26%2312460%3B%26%2312452%3B%26%2312489%3B&releaseVersion=2017.2&docPage=20

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

    セマフ ォ同期化

    LWX および SWX 命令は、 テス ト と セ ッ ト 、 比較と ス ワ ッ プ、 メ モ リ 交換、 フ ェ ッチ と追加など、 共通セマフ ォ操作を イ ンプ リ メ ン ト するために使用されます。 また、 ス ピン ロ ッ ク を イ ンプ リ メ ン ト するのにも使用されます。

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

    ス ト アが問題な く 実行される と、 セマフ ォのロード から セマフ ォのス ト アまで、 順番に命令が、 ほかの命令を差し

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

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

    SWEA Rd,Ra,Rb 110110 Rd Ra Rb 00010000000 Addr := Ra & Rb *Addr := Rd

    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]

    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. 浮動小数点演算には多 く のコーナー ケースが関与し ている ため、 標準動作のみを説明し ています。 こ の動作の詳細は、 第 5 章「MicroBlaze 命令セ ッ ト アーキテ クチャ」 を参照し て く ださ い。

    表 2-6: MicroBlaze 命令セ ッ ト のま とめ (続き)

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

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

    MicroBlaze プロセ ッサ リ フ ァ レンス ガイ ド 21UG984 (v2017.1) 2017 年 4 月 5 日 japan.xilinx.comUG984 (v2017.2) 2017 年 6 月 7 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Reference_Guide&docId=UG984&Title=MicroBlaze%20%26%2312503%3B%26%2312525%3B%26%2312475%3B%26%2312483%3B%26%2312469%3B%20%26%2312522%3B%26%2312501%3B%26%2312449%3B%26%2312524%3B%26%2312531%3B%26%2312473%3B%20%26%2312460%3B%26%2312452%3B%26%2312489%3B&releaseVersion=2017.2&docPage=21

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

    条件付き ス ト アは、 ス ト ア ア ド レ スが、 予約を設定し た ロード ア ド レ スに一致し ていな く て も、 予約が存在し ている と常に実行されます。

    1 回につき、 1 予約のみが維持されます。 予約に関連付け られている ア ド レ スは、 後続の LWX 命令を実行する こ とで、 変更でき ます。 この条件付き ス ト アは、 その前の LWX 命令によ って設定された予約に基づいて、 実行されます。 LWX で設定されたア ド レ スに一致するかど う かにかかわらず、 プロセ ッサで保持されている予約は、 SWX 命令を実行する と常にク リ アにな り ます。

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

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

    • LWX および SWX 命令はペアにし、 同じ ア ド レ ス を使用する よ う にし ます。

    • LWX とペアになっていない SWX 命令で、 任意ア ド レ スに割 り 当て られている ものは、 プロセ ッサで保持されている予約を ク リ アするのに使用し ます。

    • 条件付き シーケン スは LWX 命令から始ま り ます。 その後に、 メ モ リ ア ク セスが続 く か、 またはロード された値に基づいた計算が続き ます。 シーケン スは SWX 命令で終わ り ます。 一般的には、 SWX 命令にエラーがあ ると、 分岐は LWX に戻って、 繰 り 返し命令が実行されます。

    • LWX によ って ロード された値がゼロでなければ、 一部の同期化プ リ ミ テ ィ ブを実行する と き、 その LWX は SWX とペアにし な く て も よい場合があ り ます。 次は、 テス ト アン ド セ ッ ト のイ ンプ リ メ ンテーシ ョ ン例です。

    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 命令でのループを最小限にする こ と で、 改善でき ます。 また、 初期値チェ ッ ク をする普通のロード命令を使用する こ と で、 パフ ォーマン ス を改善する こ と もでき

    ます。 次は、 ス ピン ロ ッ ク のイ ンプ リ メ ンテーシ ョ ン例です。

    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 と の間で、 予約が失われる可能性が高 く な り ます。

    自己変更コー ド

    自己変更コード を使用する場合は、 変更された命令を実行するのにフ ェ ッチする前に、 メ モ リ にその命令が書き込

    まれている こ と を ソ フ ト ウ ェ アで確認する必要があ り ます。 次の点に注意する必要があ り ます。

    • 変更される命令が、 変更前に既に、 次の場所にフ ェ ッチされている可能性があ る。

    ¨ 命令プ リ フ ェ ッチバッ フ ァー

    ¨ 命令キ ャ ッ シュ (イ ネーブルになっている場合)

    MicroBlaze プロセ ッサ リ フ ァ レンス ガイ ド 22UG984 (v2017.1) 2017 年 4 月 5 日 japan.xilinx.comUG984 (v2017.2) 2017 年 6 月 7 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Reference_Guide&docId=UG984&Title=MicroBlaze%20%26%2312503%3B%26%2312525%3B%26%2312475%3B%26%2312483%3B%26%2312469%3B%20%26%2312522%3B%26%2312501%3B%26%2312449%3B%26%2312524%3B%26%2312531%3B%26%2312473%3B%20%26%2312460%3B%26%2312452%3B%26%2312489%3B&releaseVersion=2017.2&docPage=22

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

    ¨ ス ト リ ーム バッ フ ァー (命令キ ャ ッ シュ ス ト リ ーム バッ フ ァーが使用されている場合)

    ¨ 命令キ ャ ッ シュ。 その後、 ビ ク テ ィ ム バッ フ ァーが使用されている場合はそ こ に保存される。

    古い未変更のコード ではな く 、 変更された コード が常に実行されている こ と を確認するには、 ソ フ ト ウ ェ アは

    これらのすべてのケース を処理する必要があ り ます。

    • 変更する命令が 1 つ以上分岐で、 分岐先キ ャ ッ シュが使用されている場合は、 分岐先ア ド レ スがキ ャ ッ シュ されている可能性があ り ます。

    キ ャ ッ シュ された分岐先ア ド レ スの使用を避けるには、 変更されたコード を実行する前に、 分岐先キ ャ ッ シュ

    がク リ アになっている こ と を ソ フ ト ウ ェ アで確認する必要があ り ます。

    • 変更された命令は、 実行前に メ モ リ に書き込まれていない可能性があ り ます。

    ¨ 変更された命令は メ モ リ に書き込まれる手前で、 イ ン ターコネ ク ト または メ モ リ コ ン ト ローラーの一時的なス ト レージにあ る可能性があ り ます。

    ¨ ラ イ ト バッ ク キ ャ ッ シュが使用されている場合は、 変更された命令はデータ キ ャ ッ シュに格納されている可能性があ り ます。

    ¨ ラ イ ト バッ ク キ ャ ッ シュおよびビ ク テ ィ ム バッ フ ァーが使用されている場合は、 変更された命令はビ クテ ィ ム バッ フ ァーに格納されている可能性があ り ます。

    プロセ ッ サがフ ェ ッチする前に、 変更された命令が メ モ リ に書き込まれている こ と を ソ フ ト ウ ェ アで確認する

    必要があ り ます。

    次の注釈付き コード は、 上記の問題のそれぞれがどのよ う に解決されるかを示し ています。 このコード は、 命令

    キ ャ ッ シュおよびラ イ ト バッ ク データ キ ャ ッ シュの両方が使用されている こ と を前提にし ています。 使用されていない場合は、 その部分の命令は省 く こ と ができ ます。

    次のコード例は、 変更された命令を格納し ます。

    swi r5,r6,0 ; r5 = new instruction ; r6 = physical instruction address

    wdc.flush r6,r0 ; flush write-back data cache linembar 1 ; ensure new instruction is written to memorywic r7,r0 ; invalidate line, empty stream & victim buffers

    ; r7 = virtual instruction addressmbar 2 ; empty prefetch buffer, clear branch target cache

    MMU 仮想モード が使用されていない限 り 、 上記の物理および仮想ア ド レ スは同じです。 MMU がイネーブルになっている場合は、 WIC および WDC は特権命令であ るため、 コード シーケン ス を リ アル モード で実行する必要があ ります。 上記のコード シーケン スの後の最初の命令はプ リ フ ェ ッチされている可能性があ る ため、 変更し ないで く ださい。

    レジス タ

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

    MicroBlaze プロセ ッサ リ フ ァ レンス ガイ ド 23UG984 (v2017.1) 2017 年 4 月 5 日 japan.xilinx.comUG984 (v2017.2) 2017 年 6 月 7 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Reference_Guide&docId=UG984&Title=MicroBlaze%20%26%2312503%3B%26%2312525%3B%26%2312475%3B%26%2312483%3B%26%2312469%3B%20%26%2312522%3B%26%2312501%3B%26%2312449%3B%26%2312524%3B%26%2312531%3B%26%2312473%3B%20%26%2312460%3B%26%2312452%3B%26%2312489%3B&releaseVersion=2017.2&docPage=23

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

    汎用レジス タ

    32 個の 32 ビ ッ ト の汎用レジス タには、 R0 から R31 までの番号が付いています。 レジス タ フ ァ イルは、 ビ ッ ト ス トリ ーム ダウ ン ロード で リ セ ッ ト されます ( リ セ ッ ト 値は 0x00000000)。 図 2-2 は汎用レジス タ を表し てお り 、 表 2-7 には、 各レジス タおよびレジス タ リ セ ッ ト 値 (あれば) がま と められています。

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

    汎用レジス タ を使用する場合のソ フ ト ウ ェ アに関し ては、 表 4-2 を参照し て く ださい。

    特殊用途レジス タ

    プログラム カウン ター (PC)プロ グ ラ ム カ ウ ン ター (PC) は実行命令の 32 ビ ッ ト ア ド レ スです。 これは、 MFS 命令で読み出しでき ますが、 MTS 命令で書き込むこ と はでき ません。 MFS 命令で使用される場合は、 PC レジス タは Sa = 0x0000 で指定されます。 PC は図 2-3 で図説され、 表 2-8 には、 その詳細および リ セ ッ ト 値がま と められています。

    0 31

    ↑R0-R31

    図 2-2: R0-R31

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

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

    0:31 R0 常に値はゼロにな り ます。 R0 に書き込まれた値は破棄されます。

    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 まで R18 から R31 までは 32 ビ ッ ト の汎用レジス タです。 -

    MicroBlaze プロセ ッサ リ フ ァ レンス ガイ ド 24UG984 (v2017.1) 2017 年 4 月 5 日 japan.xilinx.comUG984 (v2017.2) 2017 年 6 月 7 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Reference_Guide&docId=UG984&Title=MicroBlaze%20%26%2312503%3B%26%2312525%3B%26%2312475%3B%26%2312483%3B%26%2312469%3B%20%26%2312522%3B%26%2312501%3B%26%2312449%3B%26%2312524%3B%26%2312531%3B%26%2312473%3B%20%26%2312460%3B%26%2312452%3B%26%2312489%3B&releaseVersion=2017.2&docPage=24

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

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

    MSRSET または MSRCLR を使用し て MSR に書き込む場合、 キ ャ リ ー ビ ッ ト はすぐに適用され、 残 り のビ ッ ト は 1 ク ロ ッ ク サイ クル後に使用されます。 MTS を使用し て書き込む場合は、 すべてのビ ッ ト が 1 ク ロ ッ ク サイ クル後に使用でき る よ う にな り ます。 ビ ッ ト 0 に書き込まれた値はすべて破棄されます。

    MTS または MFS 命令で使用される場合は、MSR は Sx = 0x0001 と い う 設定で指定されます。MSR レジス タは 図 2-4 で図説され、 表 2-9 には、 ビ ッ ト の説明および リ セ ッ ト 値がま と められています。

    0 31

    ↑PC

    図 2-3: PC

    表 2-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 VMUMS UM PVR EIP EE DCE DZO ICE FSL BIP C IE

    RES

    図 2-4: MSR

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

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

    0 CC 演算キ ャ リ ー コ ピー

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

    0

    1:16 予約

    17 VMS 仮想保護モード保存

    MMU で設定し た場合にのみ使用可能。 (C_USE_MMU > 1 および C_AREA_OPTIMIZED = 0 または 2 の場合)

    読み出し /書き込み

    0

    MicroBlaze プロセ ッサ リ フ ァ レンス ガイ ド 25UG984 (v2017.1) 2017 年 4 月 5 日 japan.xilinx.comUG984 (v2017.2) 2017 年 6 月 7 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Reference_Guide&docId=UG984&Title=MicroBlaze%20%26%2312503%3B%26%2312525%3B%26%2312475%3B%26%2312483%3B%26%2312469%3B%20%26%2312522%3B%26%2312501%3B%26%2312449%3B%26%2312524%3B%26%2312531%3B%26%2312473%3B%20%26%2312460%3B%26%2312452%3B%26%2312489%3B&releaseVersion=2017.2&docPage=25

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

    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 または 2 の場合)

    読み出し /書き込み

    0

    19 UMS ユーザー モード保存

    MMU で設定し た場合にのみ使用可能。 (C_USE_MMU > 0 および C_AREA_OPTIMIZED = 0 または 2 の場合)

    読み出し /書き込み

    0

    20 UM ユーザー モード

    0 = 特権モード、 すべての命令が使用でき る。

    1 = ユーザー モード、 一部の命令が使用でき ない。

    MMU で設定し た場合にのみ使用可能。 (C_USE_MMU > 0 および C_AREA_OPTIMIZED = 0 または 2 の場合)

    読み出し /書き込み

    0

    21 PVR プロセ ッサ バージ ョ ン レジス タが存在する。

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

    読み出し専用

    パラ メ ーター C_PVR に基

    づ く 。

    22 EIP 処理中例外

    0 = 処理中ハード ウ ェア例外な し 1 = 処理中ハード ウ ェア例外あ り

    例外サポー ト を有効にし て設定し ている場合 (C_*_EXCEPTION または C_USE_MMU > 0) にのみ使用可能

    読み出し /書き込み

    0

    23 EE 例外イ ネーブル

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

    1 = ハード ウ ェア例外を イネーブル

    例外サポー ト を有効にし て設定し ている場合 (C_*_EXCEPTION または C_USE_MMU > 0) にのみ使用可能

    読み出し /書き込み

    0

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

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

    MicroBlaze プロセ ッサ リ フ ァ レンス ガイ ド 26UG984 (v2017.1) 2017 年 4 月 5 日 japan.xilinx.comUG984 (v2017.2) 2017 年 6 月 7 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Reference_Guide&docId=UG984&Title=MicroBlaze%20%26%2312503%3B%26%2312525%3B%26%2312475%3B%26%2312483%3B%26%2312469%3B%20%26%2312522%3B%26%2312501%3B%26%2312449%3B%26%2312524%3B%26%2312531%3B%26%2312473%3B%20%26%2312460%3B%26%2312452%3B%26%2312489%3B&releaseVersion=2017.2&docPage=26

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

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

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

    データ キ ャ ッ シュ を使用する よ う に設定し ている場合 (C_USE_DCACHE = 1) にのみ使用可能

    読み出し /書き込み

    0

    25 DZO ゼロ除算、 または除算オーバーフ ロー2

    0 = ゼロ除算、 または除算オーバーフ ローが発生し ていない 1 = ゼロ除算、 または除算オーバーフ ローが発生

    ハード ウ ェ ア除算器を使用する よ う に設定し ている場合 (C_USE_DIV = 1) にのみ使用可能

    読み出し /書き込み

    0

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

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

    命令キ ャ ッ シュ を使用する よ う に設定し ている場合 (C_USE_ICACHE = 1) にのみ使用可能

    読み出し /書き込み

    0

    27 FSL AXI4-Stream エラー

    0 = get または getd にエラーな し 1 = get または getd の制御タ イプが一致し ない

    こ のビ ッ ト はステ ィ ッ キー ビ ッ ト で、 制御ビ ッ ト が一致し ない場合に get または getd 命令で設定されます。 これを ク リ アにするには、 MTS または MSRCLR 命令を使用する必要があ り ます。

    ス ト リ ーム リ ン ク を使用する よ う に設定し ている場合 (C_FSL_LINKS > 0) にのみ使用可能

    読み出し /書き込み

    0

    28 BIP 処理中ブレーク

    0 = 処理中ブレーク な し 1 = 処理中ブレーク あ り

    ブレーク ソースはソ フ ト ウ ェア ブレーク命令、 または Ext_Brk または Ext_NM_Brk ピンからのハード ウ ェア ブレーク になる。

    読み出し /書き込み

    0

    29 C 演算キ ャ リ ー

    0 = 繰 り 上げな し (繰 り 下げ) 1 = 繰 り 上げあ り (繰 り 下げな し )

    読み出し /書き込み

    0

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

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

    MicroBlaze プロセ ッサ リ フ ァ レンス ガイ ド 27UG984 (v2017.1) 2017 年 4 月 5 日 japan.xilinx.comUG984 (v2017.2) 2017 年 6 月 7 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Reference_Guide&docId=UG984&Title=MicroBlaze%20%26%2312503%3B%26%2312525%3B%26%2312475%3B%26%2312483%3B%26%2312469%3B%20%26%2312522%3B%26%2312501%3B%26%2312449%3B%26%2312524%3B%26%2312531%3B%26%2312473%3B%20%26%2312460%3B%26%2312452%3B%26%2312489%3B&releaseVersion=2017.2&docPage=27

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

    例外ア ド レス レジス タ (EAR)例外ア ド レ ス レジス タは、 次の例外を引き起こすフルのロード /ス ト ア ア ド レ ス を格納し ます。

    • ア ラ イ ン されていないア ク セス データ ア ド レ ス を指定する ア ラ イ ン されていないア ク セス例外

    • エラーの起き ている AXI4 データ ア ク セス ア ド レ ス を指定する M_AXI_DP 例外

    • ア ク セスのあった (仮想) 実効ア ド レ ス を指定するデータ ス ト レージ例外

    • 読み出しのあった (仮想) 実効ア ド レ ス を指定する命令ス ト レージ例外

    • ア ク セスのあった (仮想) 実効ア ド レ ス を指定するデータ TLB ミ ス例外

    • 読み出しのあった (仮想) 実効ア ド レ ス を指定する命令 TLB ミ ス例外

    上記以外の例外に対し ては、 このレジス タの内容は定義されていません。 MFS または MFSE 命令で読み出される場合は、 EAR は Sa = 0x0003 で指定されます。 EAR レジス タは 図 2-5 で図説され、 表 2-10 にはビ ッ ト の説明と リ セ ット 値がま と められています。

    拡張データ ア ド レ ス指定がイネーブルになっている と (C_ADDR_SIZE > 32)、 レジス タの最下位ビ ッ ト 32 ビ ッ ト が MFS 命令で読み出され、 最上位ビ ッ ト が MFSE 命令で読み出されます。

    30 IE 割 り 込みイ ネーブル

    0 = 割 り 込みをデ ィ スエーブル 1 = 割 り 込みを イネーブル

    読み出し /書き込み

    0

    31 - 予約 0

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

    2. このビ ッ ト は、 整数をゼロで割る場合、 または除算オーバーフ ロー シグナ リ ングにのみ使用されます。 FSR には浮動小数点の同等のものがあ り ます。 例外処理ができ る よ う に設定されているかど う かにかかわらず、 DZO ビ ッ ト はゼロ除算、 または除算オーバーフ ロー コ ンデ ィ シ ョ ンをフ ラ グ し ます。

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

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

    0 C_ADDR_SIZE - 1

    ↑EAR

    図 2-5: EAR

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

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

    0:C_ADDR_SIZE-1 EAR 例外ア ド レ ス レジス タ 0

    MicroBlaze プロセ ッサ リ フ ァ レンス ガイ ド 28UG984 (v2017.1) 2017 年 4 月 5 日 japan.xilinx.comUG984 (v2017.2) 2017 年 6 月 7 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Reference_Guide&docId=UG984&Title=MicroBlaze%20%26%2312503%3B%26%2312525%3B%26%2312475%3B%26%2312483%3B%26%2312469%3B%20%26%2312522%3B%26%2312501%3B%26%2312449%3B%26%2312524%3B%26%2312531%3B%26%2312473%3B%20%26%2312460%3B%26%2312452%3B%26%2312489%3B&releaseVersion=2017.2&docPage=28

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

    例外ステータ ス レジス タ (ESR)例外ステータ ス レジス タには、 プロセ ッサのステータ ス ビ ッ ト が含まれています。 MFS 命令で読み出される場合は、 ESR は Sa = 0x0005 で指定されます。 ESR レジス タは図 2-6 で図説され、 表 2-11 にはビ ッ ト の説明および リ セ ット 値が、 表 2-12 には例外別ステータ ス (ESS) がま と められています。

    19 20 26 27 31

    - - ↑ -予約 DS ESS EC

    図 2-6: ESR

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

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

    0:18 予約

    19 DS 遅延ス ロ ッ ト 例外

    0 = 遅延ス ロ ッ ト 命令で引き起こ されていない 1 = 遅延ス ロ ッ ト 命令で引き起こ されている

    読み出し専用

    0

    20:26 ESS 例外別ステータ ス

    表 2-12 を参照

    読み出し専用

    表 2-12 を参照

    27:31 EC 例外原因

    00000 = ス ト リ ーム例外 00001 = ア ラ イ ン されていないデータ ア ク セス例外 00010 = 無効なオペコード例外 00011 = 命令バス エラー例外 00100 = データ バス エラー例外 00101 = 除算例外 00110 = 浮動小数点ユニ ッ ト 例外 00111 = 特権命令例外 00111 = ス タ ッ ク保護違反例外 10000 = データ ス ト レージ例外 10001 = 命令ス ト レージ例外 10010 = データ TLB ミ ス例外 10011 = 命令 TLB ミ ス例外

    読み出し専用

    0

    MicroBlaze プロセ ッサ リ フ ァ レンス ガイ ド 29UG984 (v2017.1) 2017 年 4 月 5 日 japan.xilinx.comUG984 (v2017.2) 2017 年 6 月 7 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Reference_Guide&docId=UG984&Title=MicroBlaze%20%26%2312503%3B%26%2312525%3B%26%2312475%3B%26%2312483%3B%26%2312469%3B%20%26%2312522%3B%26%2312501%3B%26%2312449%3B%26%2312524%3B%26%2312531%3B%26%2312473%3B%20%26%2312460%3B%26%2312452%3B%26%2312489%3B&releaseVersion=2017.2&docPage=29

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

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

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

    ア ラ イ ン し て

    いないデータ ア ク セス

    20 W ワード ア ク セス例外

    0 = ア ラ イ ン し ていないハーフ ワード ア ク セス

    1 = ア ラ イ ン し ていないワード ア ク セス

    0

    21 S ス ト ア ア ク セス例外

    0 = ア ラ イ ン し ていないロード ア ク セス

    1 = ア ラ イ ン し ていないス ト ア ア ク セス

    0

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

    ア ラ イ ン し ていないア ク セスでソース (ス ト ア) またはデステ ィ ネーシ ョ ン (ロード ) と し て使用される汎用レジス タ

    0

    無効な命令 20:26 予約 0

    命令バス エラー

    20 ECC ILMB の訂正可能エラーまたは訂正不可能なエラーによ る例外

    0

    21:26 予約 0

    データ バス エラー

    20 ECC DLMB の訂正可能エラーまたは訂正不可能なエラーによ る例外

    0

    21:26 予約 0

    除算 20 DEC 除算 - 除算エラー原因

    0 = ゼロ除算

    1 = 除算オーバーフ ロー

    0

    21:26 予約 0

    浮動小数点ユ

    ニ ッ ト

    20:26 予約 0

    特権命令 20:26 予約 0

    ス タ ッ ク保護

    違反

    20:26 予約 0

    ス ト リ ーム 20:22 予約 0

    23:26 FSL 例外を引き起こ し た AXI4-Stream イ ンデッ ク ス 0

    データ ス トレージ

    20 DIZ データ ス ト レージ - ゾーン保護

    0 = 発生し なかった 1 = 発生し た

    0

    21 S データ ス ト レージ - ス ト ア命令

    0 = 発生し なかった 1 = 発生し た

    0

    22:26 予約 0

    命令ス ト レー

    20 DIZ 命令ス ト レージ - ゾーン保護

    0 = 発生し なかった 1 = 発生し た

    0

    21:26 予約 0

    MicroBlaze プロセ ッサ リ フ ァ レンス ガイ ド 30UG984 (v2017.1) 2017 年 4 月 5 日 japan.xilinx.comUG984 (v2017.2) 2017 年 6 月 7 日

    https://japan.xilinx.comhttps://japan.xilinx.com/about/feedback.html?docType=Reference_Guide&docId=UG984&Title=MicroBlaze%20%26%2312503%3B%26%2312525%3B%26%2312475%3B%26%2312483%3B%26%2312469%3B%20%26%2312522%3B%26%2312501%3B%26%2312449%3B%26%2312524%3B%26%2312531%3B%26%2312473%3B%20%26%2312460%3B%26%2312452%3B%26%2312489%3B&releaseVersion=2017.2&docPage=30

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

    分岐先レジス タ (BTR)MicroBlaze プロセ ッサが例外を使用する よ う に設定されている場合にのみ、 分岐先レジス タは存在し ます。 このレジス タは、 MSR[EIP] = 0 の と きに実行されたすべての遅延ス ロ ッ ト の分岐命令の分岐先ア ド レ ス を格納し ま