Motorola 68040(「シックスティエイトオーフォーティ」)は、Motorola 68000 シリーズの32 ビット マイクロプロセッサで、1989 年 4 月にプレビューされ[ 2 ] 、 1990 年 1 月に発表されました[ 3 ]が、1990 年後半から限定数量でのみ入手可能でした[ 4 ] 。これは68030の後継機種であり、 68050を飛ばして 68060が続きます。一般的な Motorola の命名規則に従って、68040 は単に「040」(オーフォーオーまたはオーフォーティと発音)と呼ばれることがよくあります。
68040は、オンチップ浮動小数点演算ユニット(FPU)を搭載した最初の680x0ファミリーメンバーでした。そのため、以前は外部チップが必要だったすべての機能、つまり68030で追加されたFPUとメモリ管理ユニット(MMU)が含まれていました。また、それぞれ4キロバイトの分割命令キャッシュとデータキャッシュを備えていました。6ステージの完全なパイプラインでした。 [ 5 ]
68040には、特定の市場セグメント向けにいくつかのバージョンが開発されました。例えば、FPUを取り除いた68LC040や、FPUとMMUの両方を取り除いた68EC040などです。モトローラはECバージョンを組み込み用途向けに設計していましたが、68040の時代における組み込みプロセッサは68040ほどの性能を必要としなかったため、68020と68030のECバージョンが引き続き設計で広く使用されました。
モトローラは複数の速度グレードを製造した。16 MHz および 20 MHz の部品は認定されず (XC 指定)、試作サンプルとして使用された。25 MHz および 33 MHz グレードは全製品ラインで使用されたが、2000 年頃までは 40 MHz グレードは「フル」の 68040 のみに使用されていた。計画されていた 50 MHz グレードは、熱設計範囲 を超えたため中止された。
1990 年初頭の発売発表時には、単価が795 米ドル(2025 年換算で約 2,000 ドル)と報告された。[ 3 ] 1990 年後半の量産時には、この価格は595 ドルに下がった。 [ 4 ] 1992 年後半には、25 MHz 版の価格は337 ドルに下がり、[ 6 ] Intel の 33 MHz 80486DXの328 ドルという価格に匹敵するようになった。[ 7 ]
Apple Macintoshコンピュータでは、68040 はMacintosh Quadraで初めて採用され、その名称はチップに由来しています。最速の 68040 プロセッサは 40 MHz で動作し、 Quadra 840AV のみに使用されました。短命に終わったMacintosh Centrisシリーズの高価格帯モデルにも 68040 が採用され、より安価な Quadra、Centris、Performa、および一部の後期型LCには68LC040が使用されました。
68040は、Amiga 4000やAmiga 4000Tなどの他のパーソナルコンピュータ、多数のワークステーション、Alpha Microsystemsのサーバー、HP 9000 /400シリーズ、NCR CorporationのTOWER 32/750、32/825、32/850、[ 8 ] Apollo ComputerのDN5500、[ 9 ] 、 NeXTコンピュータの後のバージョンにも使用されました。
68040プロセッサは、次世代およびMAXモデルを含む多くのボーイング737航空機のフライトマネジメントコンピュータ(FMC)[ 10 ]、およびサーブJAS 39グリペンのフライトコントロールシステム[ 11 ]で使用されています。
68040は設計の初期段階でトランジスタ数の制限に直面した。MMUは多くのトランジスタを必要とせず、実際、CPUと同じダイ上に配置することでトランジスタ数を節約できたが、FPUは確かに多くのトランジスタを必要とした。モトローラの68882外部FPUは非常に高性能なユニットとして知られており、モトローラはインテグレーターがより収益性の高いフルバージョンの「RC」ユニットではなく、68882を搭載した「LC」バージョンを使用するリスクを冒したくなかった。(680x0シリーズにおけるモトローラのマルチプロセッシングモデルについては、Motorola 68020を参照。)68040のFPUはIEEE超越関数に対応していなかった。IEEE超越関数は68881と68882の両方でサポートされており、当時人気のあったフラクタル生成ソフトウェアなどでのみ使用されていた。モトローラの浮動小数点サポートパッケージ(FPSP)は、割り込み処理でソフトウェアによりこれらの命令をエミュレートした。これは例外処理であったため、超越関数を多用すると深刻なパフォーマンス低下を引き起こした。
68040は、そのライフサイクルを通して常に発熱が問題となっていた。クロックあたりの性能は68020や68030の4倍以上だったものの、チップの複雑さと消費電力は、大型ダイと大容量キャッシュに起因していた。このことがプロセッサのスケーリングに影響を与え、40MHzを超えるクロックレートで動作させることはできなかった 。50MHz 版も計画されたが、中止された。オーバークロック愛好家たちは、80MHzの部品の代わりに 100MHzの発振器を使用し、当時としては斬新な大型ヒートシンクとファンを追加する手法を用いることで、 50MHzに到達できたと報告している。
68040 は 80486 と同じ機能を提供していましたが、クロック 1 クロックあたりでは、Motorola 独自のベンチマーク結果によると、整数および浮動小数点命令で Intel チップを大幅に上回ることができました。[ 3 ] [ 12 ] [ 13 ] [ 14 ]ワークステーション システムでのプロセッサの浮動小数点パフォーマンスの独立した測定では、Motorola が選択したLINPACKベンチマークで 80486 および SPARC に対して、主に倍精度演算に限定された、かなり控えめな向上を示唆しており、[ 15 ]また、 NeXTstation Color および Turbo Color モデルを説明するベンダーの資料では、Motorola 独自の資料よりもやや低い評価が宣伝されていました。[ 16 ] [注 1 ]
しかし、80486は過熱の問題に悩まされることなく大幅に高速にクロックできる能力があり、すぐにノートパソコン向けのモバイル派生版も生まれました。1992年に新世代の80486ベースのPCノートパソコンが発表され、その結果、100シリーズのPowerBookはもはや競争力のない古い68030に留まることになり、Appleは1994年のPowerBook Duo 280およびPowerBook 500シリーズまで68040を搭載したPowerBookを出荷することができませんでした。 [ 17 ] [ 18 ]
68EC040は、組み込みコントローラ(EC)向けに設計されたMotorola 68040マイクロプロセッサのバージョンです。68040との違いは、FPUもMMUも搭載していない点です。そのため、コストが抑えられ、消費電力も少なくなっています。68EC040は、CiscoスイッチのSupervisor Engine Iに採用されており、2900、2948G、2980G、4000、4500、5000、5500、6000、6500、7600モデルの中核を成しています。

68LC040は、 FPUを搭載していないMotorola 68040マイクロプロセッサの低価格版です。これにより、価格が抑えられ、消費電力も低減されています。CPUの仕様はMotorola 68030に近いものとなっていますが、68040のキャッシュとパイプラインは引き続き搭載されているため、68030よりも大幅に高速です。
68LC040 の一部のマスク改訂版には、ソフトウェア FPUエミュレータを使用するとチップが正しく動作しなくなるバグが含まれていました。Motorola の正誤表によると、 [ 19 ]マスク セット 2E71M 以降のチップにはこのバグは含まれていません。この新しいマスクは 1995 年半ばに導入され、68LC040 チップを MC ステータスに変換しました。[ 20 ]
バグのあるリビジョンは、通常、68LC040 ベースのApple Macintoshコンピュータで見られます。マスク セット 2E23G (LC 475 で使用されているもの) のチップに欠陥があることが確認されています。この欠陥は、F ライン例外がトリガーされたときに保留中の書き込みが失われることに関連しています。[ 21 ] 68040 は、最新の x86 チップのようにマイクロ コードを更新することはできません。つまり、浮動小数点機能を必要とするソフトウェアを使用する唯一の方法は、バグのある 68LC040 を後のリビジョンまたは完全な 68040 に交換することです。