PSPであそぼう(8)

なんか内容ぶっとばし過ぎで、全然読者がついて来てない気がするけど、そんなことは全然関係ナイ!(`ω´) 何故、hackerは歩き続けるのか?そこに、いばらの道があるからジャイ!(`ω´)


そんなわけで、今日から、FPUとVFPUの話題に入る。


FPUとはFloating Pointer Unit(浮動小数点演算ユニット)のことで、浮動小数演算(floatとかdoubleを使った計算だと思いねぇ)をするためのユニットだ。PSPの場合、32本の64bitレジスタだ。


VFPUとはVector演算を行なうためのFPUだ。Vectorなんて言うぐらいだから、きっと、並列性にすぐれちょるわけだな。とかテキトーに妄想して先に進む。


FPUについて議論する前にPSPのハードについておさらいをしておこう。
http://pc.watch.impress.co.jp/docs/2003/0801/kaigai008.htm


「32bitのMIPS32ベース」でプロセッサ名は「R4000」。MIPS社のチップなわけだ。そいつに、ソニーがVFPU等を独自仕様として追加しているらしい。ところがFPUはMIPS社が(OEMで?)リリースしているR4000に最初から備わっている。どういった政治的な事情があるのかは知らないが、とりあえずMIPS社からデータシートがdownloadできる。

http://www.mips.jp/


MIPS R4000 User's Manual
あと、R4000のアーキテクチャは『Mips R4000 User's Manual』に詳しい。こいつにFPUの命令表やFPUのアーキテクチャも載っている。この本は、以下のところからdownload出来る。(たぶん昔の本だからwebで公開しているのではないかと勝手に推測)

http://cag.csail.mit.edu/raw/documents/R4400_Uman_book_Ed2.pdf


この本の第6章にFPUの詳細がある。明日はFPUを実際に使っていく!(つづく)