モトローラ 68881

モトローラ 68881 FPU

Motorola 68881Motorola 68882は、Motorolaの32ビット68020または68030マイクロプロセッサと組み合わせて一部のコンピュータシステムで使用される浮動小数点ユニット(FPU)です。これらのコプロセッサは外付けチップであり、浮動小数点演算がCPUで標準となる前に設計されました。Motorola 68881は1984年に発売されました。 [ 1 ] 68882は後に製造された高性能版です。

概要

モトローラ 68882 FPU

68020および68030 CPUは、独立した68881チップを念頭に置いて設計されました。これらの命令セットは「Fライン」命令を予約していました。つまり、16進数「F」で始まるすべてのオペコードは、外部コプロセッサに転送するか、「トラップ」として使用して例外をスローし、コンピュータのオペレーティングシステムに制御を渡すことができました。システムにFPUが存在しない場合、OSはFPUエミュレータを呼び出して68020の整数ベースのソフトウェアコードを使用して命令に相当する命令を実行するか、プログラムにエラーを返すか、プログラムを終了するか、クラッシュして再起動を要求するかのいずれかになります。

建築

モトローラ 68881/68882 シリーズレジスタ
7 9... 6 3... 0 0(ビット位置)
浮動小数点レジスタ
± 指数 仮数 FP0
± 指数 仮数 FP1
± 指数 仮数 FP2
± 指数 仮数 FP3
± 指数 仮数 FP4
± 指数 仮数 FP5
± 指数 仮数 FP6
± 指数 仮数 FP7
  3 1... 2 3... 1 5... 0 7... 0 0(ビット位置)
制御レジスタ
  0 0 例外を有効にする モード制御 FPCR
ステータスレジスタ
  状態 例外ステータス 累積例外 FPSR
命令アドレスレジスタ
  32ビットアドレス FPIAR

68881には8つの80ビットデータレジスタ(64ビットの仮数部と符号ビット、15ビットの符号付き指数部)がある。[ 2 ]単精度浮動小数点、倍精度浮動小数点、拡張精度浮動小数点、8ビット、16ビット、32ビットの整数、浮動小数点バイナリコード化10進数形式など、7つの異なる数値表現モードが可能である。バイナリ浮動小数点形式はIEEE 754浮動小数点規格で定義されている。68881は浮動小数点演算に特化して設計されたもので、汎用CPUではない。例えば、命令がアドレス計算を必要とする場合、68881が制御を引き継ぐ前にメインCPUがそれを処理します。

CPU/FPUペアは、両方が同時に実行できるように設計されています。CPUが68881命令に遭遇すると、その命令に必要なすべてのオペランドをFPUに渡し、FPUはCPUに次の命令の実行を任せます。

68882

モトローラ68882のダイ

68882は68881の改良版であり、パイプラインが改善され、最終的にはより高いクロック速度で提供される予定です。[ 3 ] [ 4 ]命令セットは全く同じです。モトローラはいくつかのマーケティング資料で、一部の命令の実行速度が68881と同じクロック速度で40%高速であると主張していましたが、全体的なパフォーマンスの向上はより控えめです。

68882は68881とピン互換があり、ほとんどのシステムで直接代替品として使用できます。最も重要なソフトウェア上の非互換性は、68882がより大きなFSAVE状態フレームを使用していることです。これはUNIXやその他のプリエンプティブ・マルチタスクOSに影響し、より多くのFSAVE領域を割り当てるために修正が必要になりました。

使用法

68881または68882は、サン・マイクロシステムズのSun-3ワークステーション、IBM RT PCワークステーション、Macintosh IIファミリー、NeXT ComputerX68000Amiga 3000Convergent Technologies MightyFrame、Atari Mega STETTFalconで使用されました。CMI PAMC-500を含む一部のサードパーティ製AmigaおよびAtari製品[ 5 ]は、 68881または68882を68000のメモリマップド周辺機器として使用していました。

バージョン

68881

  • オンチップトランジスタ155,000個
  • 12 MHzバージョン
  • 16 MHz版は160 k FLOPSで動作した
  • 20 MHz版は192 kFLOPSで動作した
  • 25 MHz版は240 kFLOPSで動作した

68882

  • オンチップトランジスタ176,000個
  • 25 MHz版は264 kFLOPSで動作した
  • 33 MHz版は352 kFLOPSで動作した
  • 40 MHz版は422 kFLOPSで動作した
  • 50 MHz版は528 kFLOPSで動作した

これらの統計はcomp.sys.m68k FAQから得たものです。[ 3 ] 16MHzと20MHzの68882チップは実際に製造されましたが、統計は記載されていません。

遺産

Motorola 68040以降、浮動小数点サポートは CPU 自体に組み込まれました。

参考文献

  1. ^スターリング、トーマス、アンダーソン、マシュー、ブロドヴィッツ、マチェイ (2017). 『ハイパフォーマンスコンピューティング:最新システムと実践』 モーガン・カウフマン. p. 459. ISBN 978-0-12-420158-3
  2. ^ MC68881 HCMOS浮動小数点コプロセッサ技術概要(PDF)、MC68000 ファミリリファレンスマニュアル、Motorola
  3. ^ a b Boys, Robert (1996年1月6日). 「よくある質問(FAQ)comp.sys.m68k」 . faqs.org . 2023年6月23日閲覧
  4. ^ MC68882 技術概要 HCMOS 浮動小数点コプロセッサ(PDF)、MC68000 ファミリ リファレンス マニュアル、Motorola
  5. ^ 「プロセッサアクセラレータ(PAMC-500)」 Amigaハードウェアデータベース。 2025年12月30日閲覧
注記