MC68881

MC68881とMC68882:68020および68030用の浮動小数点演算ユニット



MC68881(通称68881)およびその後継モデルであるMC68882(68882)は、68020および68030マイクロプロセッサ向けに設計された浮動小数点演算ユニット(FPU)です。このチップをコンピュータに追加することは、全体的なコストを上昇させるものの、浮動小数点数値演算の処理能力を格段に向上させました。この技術は、特に科学的計算や高度な数学演算において重要な役割を果たしました。

概要



68020と68030プロセッサは、68881チップを使用することを前提に設計されています。この設計では、特別に予約された命令セット「F-line」が用意されており、命令コードはすべて16進数のFで始まるトラップ命令として機能します。トラップ命令は通常、オペレーティングシステム(OS)の管理に使用されますが、68881がシステム内に存在する場合、その命令はFPUで処理され、マイクロプロセッサ(MPU)による内部割込みが回避されます。一方、FPUが存在しない場合、MPUは内部割込みを発生させ、OSがそれを検出し、代わりにFPUエミュレータを呼び出すか、プログラムを中断します。

アーキテクチャ



68881は、8つの96ビット長のデータレジスタを搭載しており、IEC規格に基づく多様な浮動小数点数値演算を行います。具体的には、80ビットの拡張精度形式を含む7種類の数値表現(ANSI-IEEE 754-1985標準に準拠)に対応しています。68881は浮動小数点演算に特化し、汎用プロセッサとしての機能には限界があります。例えば、アドレス計算を行う命令は、68881の制御が行われる前にメインCPUによって実行され、CPUとFPUは同時に動作できるように設計されています。

CPUが68881の命令を受け取ると、それに必要なオペランドをFPUに渡し、その後FPUが処理を終えるとCPUは次の命令に進みます。このようにして、高速な浮動小数点演算が実現されます。

MC68882



MC68882(68882)は68881の改良版で、パイプラインの最適化やクロックの速度向上が施されています。命令セットは68881と同じながらも、ピン互換性があり、FSAVE命令による退避情報が大幅に増加しています。このため、例外処理におけるタイミング条件が厳しくなり、FSAVE命令によって退避された情報を扱う際は、特に注意が必要とされます。モトローラは68882が68881よりも40%以上の性能向上を実現すると謳っていましたが、一般的な使用においてその効果はあまり見られなかったようです。

実装例



68881または68882を搭載したコンピュータとして、サン・マイクロシステムズSun-3AppleのMacintosh II、コモドールのAmiga 3000などが挙げられます。さらに、68000プロセッサをベースにした周辺機器で68881や68882を利用した製品も存在します。

また、後に登場したMC68040プロセッサには内蔵FPUが搭載され、多くの68881命令がハードウェアでサポートされています。ただし、一部命令はソフトウェアでエミュレーションが必要でした。

機能表



モデル トランジスタ数 クロック速度 性能
-----------
68881 155,000 16MHz 160 KFLOPS
20MHz 192 KFLOPS
25MHz 240 KFLOPS
68882 176,000 25MHz 264 KFLOPS
33MHz 352 KFLOPS
40MHz 422 KFLOPS
50MHz 528 KFLOPS
68040 - 25MHz 3.500 MFLOPS
33MHz 4.662 MFLOPS
40MHz 5.600 MFLOPS

これらのデータはcomp.sys.m68k FAQからの引用です。68882の16MHzおよび20MHzバージョンも製造されましたが、リストには掲載されていません。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。