コンテンツにスキップ

英文维基 | 中文维基 | 日文维基 | 草榴社区

「MC68881」の版間の差分

出典: フリー百科事典『ウィキペディア(Wikipedia)』
削除された内容 追加された内容
実装例: 68881搭載のコンピュータについて、Sun-3 と Macintosh II があることの出典(Computer Organization and Design: The Hardware/Software Interface)を追加。
Cewbot (会話 | 投稿記録)
18行目: 18行目:


==実装例==
==実装例==
68881ないし68882FPUが搭載されたコンピュータとしては、[[サン・マイクロシステムズ]]の[[Sun-3]]、[[アップル (企業)|アップルコンピュータ]]の[[Macintosh|Macintosh II]]や<ref>{{cite book
68881ないし68882FPUが搭載されたコンピュータとしては、[[サン・マイクロシステムズ]]の[[Sun-3]]、[[Apple|Apple Computer]]の[[Macintosh|Macintosh II]]や<ref>{{cite book
|title=Computer Organization and Design: The Hardware/Software Interface
|title=Computer Organization and Design: The Hardware/Software Interface
|last1=L.Hennessy
|last1=L.Hennessy

2021年5月20日 (木) 10:33時点における版

モトローラ 68881 FPU

MC68881(68881)は68020ないし68030FPUである。コンピュータにこの石を加えることはコンピュータのコストを実質的に押し上げることになるが、これにより浮動小数点数値演算を高速に処理できる。当時、このチップは科学演算、数学演算に対して大きな役割を果たした。

概要

68020と68030は単独の68881チップを使うという前提で設計された。この命令セットは予約済みの"F-line"命令を使った。16進数のFで始まっているすべての命令コードは、形式上は内部割込みを発生する「トラップ命令」である。通常トラップ命令はオペレーティングシステム (OS) を制御するのに用いられている。もし、FPUである68881がシステム上に存在したならば、MPUは内部割込みを発生するのではなく、FPUにより命令を実行する。FPUが無ければMPUは内部割込みを発生し、OSはそれをとらえて、例外処理で整数演算命令で作られたFPUエミュレータ英語版を呼び出すか、プログラムをエラーで中断する。

アーキテクチャ

68881には、8つの96ビット長データレジスタ[注 1]があり、80ビット拡張精度形式など7種類の数値表現、すなわちIEEE浮動小数点標準「ANSI-IEEE 754-1985」として定義される単精度倍精度、そして拡張倍精度などの浮動小数点数を扱う。68881は特に浮動小数点演算に特化しており、汎用CPUとして設計されていない。例えば、命令がアドレス計算を行うときは、68881の制御を行う前にメインCPUが計算する。

CPU/FPUのペアはこのように同時に実行できるように設計されている。CPUが68881の命令を受けると、CPUはFPUにその命令に必要なオペランドをすべて引き渡す。次にFPUはCPUをリリースし、CPUは次の命令を実行する。

MC68882

モトローラ 68882 FPU

MC68882 (68882) は68881の改良バージョンで、パイプラインの改善や高クロック化が行われている。命令セットは68881と同一であり、なおかつピン・コンパチブルとなっている。モトローラは、同じクロック速度で同じ命令を実行すると68881より40%以上速くなるとうたっていたが、[誰によって?] 通常のパフォーマンスにはまったく反映されなかった[要出典]

実装例

68881ないし68882FPUが搭載されたコンピュータとしては、サン・マイクロシステムズSun-3Apple ComputerMacintosh II[1]コモドールAmiga 3000などがある。Amigaのサードパーティーの中には、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 FPU 3.500 MFLOPS
  • 33MHz FPU 4.662 MFLOPS
  • 40MHz FPU 5.600 MFLOPS

これらの表はcomp.sys.m68k FAQから引用したものである。68882の16MHzと20MHzについては製造はされたが、リストにはない。

脚注

  1. ^ L.Hennessy, John; A.Patterson, David (1994). Computer Organization and Design: The Hardware/Software Interface. Morgan Kaufmann Publishers. p. 255-256. ISBN 1-55860-281-X 

注釈

  1. ^ William Ford, William R. Topp (1997-11-07). “15.5 Floating-Point Coprocessor” (英語). Assembly language and systems programming for the M68000 family (2nd. ed.). Jones and Bartlett Publishers. pp. 830. ISBN 9780763703578. http://books.google.com/books?id=JPi9zrjFzMEC&lpg=PA830&ots=K-PZPYUcdL&dq=Packed%20decimal%2096bit&hl=ja&pg=PA830#v=onepage&q&f=false 2011年4月12日閲覧。 96ビットパック10進数実数形式が演算可能である。

参考文献

  • Motorola Inc.『MC68881浮動小数点演算コプロセッサユーザーズ・マニュアル』電波新聞社、1988年6月。ISBN 4885541506 
  • Motorola Inc. (1989) (英語). MC68881/MC68882 floating-point coprocessor user's manual (2nd ed.). Prentice Hall. ISBN 0135670098 

外部リンク