FPGA開発日記

カテゴリ別記事インデックス https://msyksphinz.github.io/github_pages , English Version https://fpgadevdiary.hatenadiary.com/

MIPSアーキテクチャ64bitへの対応を検討する(ISSのデコード回路の追加2)

msyksphinz.hatenablog.com

やっとこさ、全ての命令のデコードテーブルを書き終えた。 全ての命令406種類のテーブルを作成。これにはsingle,doubleの各種タイプも含んでいる。

github.com

ただし、これはMIPS64アーキテクチャリファレンスに載っている命令を全て羅列したので、実際にはMIPS64R6では使えない命令も含まれている。例えば、.ps命令がそうだ。

f:id:msyksphinz:20151221004743p:plain

そもそも.PS命令とは何なのか?

MIPS64r6アーキテクチャリファレンスによれば、以下のような説明がなされている。

.PS subtracts the upper and lower halves of FPR fs and FPR ft independently, and ORs together any generated exceptional conditions.

つまり、64ビットのレジスタを上下32ビットに分け、独立して演算をする命令ということだ。これは、2-way SIMD命令ということか。 ただし、これらの命令はMIPS64r6では全てobsoluteされている。これはやはり、SIMDの専用命令をもっているからかな? (MSA)

MIPS SIMD - イマジネーションテクノロジーズ

というか、そもそもMIPS浮動小数点命令にはいくつかのタイプがあり、それらが"演算種類.タイプ"で分類されているようだ。

(下記はMIPS64アーキテクチャリファレンスより抜粋)

f:id:msyksphinz:20151221005221p:plain

とりあえずはこれでデコードテーブルは完成したため、次は中身の実装に移ろう。

400命令越えか。。。気が思いな。。。