浮動小数点演算装置(2)
浮動小数点演算装置(2)
接続の形式
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ではこの方式は実現しにくい。 モトローラ社のMC68881やMC68882を同社MC68020またはMC68030と組み合わせる場合、専用に用意された制御線を使用して接続すれば、ソフトウェアの変更は必要なく、プログラマからは単純にCPUの機能が拡張されたように扱える。MC68020の場合、厳密にはコプロセッサの存在を示すフラグが立つ。
引用元 : Wikipedia http://ja.wikipedia.org/wiki/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8
接続の形式
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ではこの方式は実現しにくい。 モトローラ社のMC68881やMC68882を同社MC68020またはMC68030と組み合わせる場合、専用に用意された制御線を使用して接続すれば、ソフトウェアの変更は必要なく、プログラマからは単純にCPUの機能が拡張されたように扱える。MC68020の場合、厳密にはコプロセッサの存在を示すフラグが立つ。
引用元 : Wikipedia http://ja.wikipedia.org/wiki/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8
コメント
コメントの投稿
« スタックマシン l Home l 浮動小数点演算装置 »
