microblaze プロセッサ リファレンス ガイド ਨug984) - xilinxmicroblaze プロセッサ...
TRANSCRIPT
-
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 の と きに実行されたすべての遅延ス ロ ッ ト の分岐命令の分岐先ア ド レ ス を格納し ま