Fascination N−D−File FPU

戻る


コンピュータグラフィックス


明解 3次元コンピュータグラフィックス


キャラクターをつくろう!CG彩色テクニック (単行本)


キャラクターをつくろう! CG彩色テクニック 2
(キャラクターをつくろう!) (大型本)



キャラクターをつくろう!CG彩色テクニック 3
改訂版 (3) (単行本)



キャラクターをつくろう!CG彩色テクニック 5
(キャラクターをつくろう!) (単行本)



キャラクターCG スキルアップ テクニック (単行本)


ハイビジョンCGで描く驚異の宇宙銀河をかけ抜けろ


ActionScript 3.0 アニメーション (単行本)

FPUFloating Point number processing Unit浮動小数点演算装置)とは、浮動小数点演算を専門に行う処理装置の事。単独では動作せず、主装置であるCPUから利用される為、コプロセッサ(co processor, 副処理装置)と呼ばれる。また、AMDではAm9511をAPU (Arithmetic Processing Unit) と呼んだ。

インテル社のIntel 8087等、一部で実数演算等浮動小数点以外の演算を行えるものもあるため、インテル社ではNDPNumeric data processor, 数値演算コプロセッサ)と呼んでいる。NPXNumeric Processor eXtension)と言う表記もある。

Apple II用などは完全に周辺機器扱いだったが、8087の頃からCPUの拡張装置とでも呼ぶべき存在になった。

インテル社のx86系アーキテクチャではIntel 80387(Intel 80386用)が最後となり、Intel 486からはCPU自身に浮動小数点演算機能が内蔵されている。同様に、モトローラ社のMC68000系でもMC68040以降のCPUには浮動小数点演算機能を内蔵している。

RISCプロセッサはスーパースケーラによりFPUを整数演算と並列に動作させることが出来、現在のプロセッサではFPUはCPUの一ユニットとして扱われる。

接続の形式

I/Oプロセッサ形式

FPUをI/Oポートに接続して、通常の周辺機器と同様にI/Oポートを介してデータのやり取りを行なう形式。FPUは周辺機器として扱われるので、CPUと同じメーカのFPUを使わなくてもよく、8ビットCPUの時代には、コストのかかるAm9511などの代わりに別メーカの電卓用CPUをI/Oポートに接続して使うことがホビーストの間で実験的に行なわれた。 モトローラ社のMC68881(同社MC68020/MC68030用FPU)を同社のMC68000やMC68010に接続する場合や、インテル社の80287(同社Intel 80286用FPU)では、データの入出力をプログラム上で明示的に行わなくてはならない(但し80287を80286と共に用いる場合はその必要はなく、8086+8087と同じバイナリで、CPUが自動的にI/O動作を行う)。FPUに対応した数値演算ライブラリを使用すれば、アプリケーション上では、FPUを使用することを意識する必要は無いが、I/Oポートを介してデータをやり取りするため直接接続されている場合に比べて、大きなオーバヘッドが生ずる。逆に利点としては、主プロセッサと、副プロセッサの動作速度を個別に設定できるなど、自由度が高い点がある。

コプロセッサ方式

CPUとFPUがアドレスバスとデータバスを共有し、協調して動作する方式。ユーザから見るとCPUの命令が拡張されたように見える。

CPUは浮動小数演算命令を検知するとFPUに制御をわたし、自身は動作を停めてFPUからの指示に従ってアドレスバスとデータバスの制御のみを行なうようになる。制御を渡されたFPUはをCPUに指示して後続する命令の一部とデータを読み書きし、浮動小数演算を行なう。演算後CPUに制御を戻し、CPUは浮動小数演算命令の後ろにある次の命令から実行を再開する。特に8087ではデコーダを独立して内蔵しており、真の意味でコプロセッサだったが、80287以降はCPUのデコード結果を専用I/Oポートを介し引き渡す方式を採っていた。  原理からして、パイプライン動作するCPUではこの方式は実現しにくい。 モトローラ社のMC68881MC68882を同社MC68020またはMC68030と組み合わせる場合、専用に用意された制御線を使用して接続すれば、ソフトウェアの変更は必要無く、プログラマからは単純にCPUの機能が拡張されたように扱える。MC68020の場合、厳密にはコプロセッサの存在を示すフラグが立つ。  

乗っ取り形

コプロセッサ方式の発展形。FPUを内蔵するCPUをコプロセサとして用いて、制御を完全にコプロセッサ側に渡してしまい、既存のCPUは停止させてしまう方式。 インテル社のi487(i486用FPU)の場合、i486SXとi487を接続すると、i486SXは動作を停止して、i487自身が浮動小数点機能を持ったCPUとして動作するようになっている。これは後に登場したオーバードライブプロセッサの働きと同様である。


inserted by FC2 system