メディア

先見の明が支えたMotorola「MC68000」 PowerPCの陰でロングセラーにマイクロプロセッサ懐古録(12)(1/4 ページ)

今回はMotorolaの「MC68000」を紹介したい。1990年代に、32bitの組み込み向けプロセッサとして、派生品も含めて圧倒的なシェアを誇っていた製品だ。その生い立ちと衰退までの経緯、そして現状を解説する。

» 2026年01月30日 14時00分 公開
[大原雄介EDN Japan]

⇒「マイクロプロセッサ懐古録」連載バックナンバー一覧


 第7回の「32年ぶりの新製品も 波乱万丈だったMotorola「MC6800」」でMC6800に触れた際、「MC68000」にも多少言及した。ただMC68000は、これはこれで単体で取り上げるべきテーマな製品かと思う。

 1990年代、32bitのEmbedded向けとしてMC68000とその派生型は圧倒的なシェアを持っていた。図1は2002年における話で、ちょうど1998年あたりから急速に32bitのマーケットでARMが勢いを増していった、という議論の中で示されたものだが、それでも1998年に68KはTop Shareだし、その後も微増を続けて2001年には1億ユニットを出荷、競合と目されたMIPSよりも出荷量は多い。累積で言えば間違いなく1990年代のEmbedded向け32bitでは68Kアーキテクチャが勝者だった。

図1:MicroProcessor Forum 2002で行われた"Trends in High-Performance Embedded Processors"というセミナーのスライドから 図1:MicroProcessor Forum 2002で行われた"Trends in High-Performance Embedded Processors"というセミナーのスライドから

1977年ごろに開発がスタート

 MC68000は1977年頃に開発が始まった。第7回でもちょっと触れたが、GMがMC6801をTripMasterというデジタルパネルのために採用した。このTripMasterそのものへの採用は限定的だったらしい(といっても毎日2万5000個のMC6801が出荷されたのだから、ばかにはできなかった)が、TripMasterへの実績が買われ、当時のGMのエンジン制御システムにMotorolaのMCU類が採用されることになった。当時GMは月産50万台の車両を製造し、1台当たり約4つのチップを使ったそうで、つまりGM向けだけで1カ月当たり200万個のチップが売れることになった。結果、Motorolaのマイクロプロセッサのビジネスは1年半ほどで0から2億5000万米ドルの規模に膨れ上がった。これだけの売り上げがあれば、これを維持して伸ばしてゆくための次製品へ開発資金も十分に用意できることになる。

 この当時、MotorolaはIntelを主な競争相手と目していた(これは逆も同じで、Intelは何としてもMotorolaを打ち破ろうとしていた)。MC6809は、8bit CPUとしては十分に高性能でIntelの「8080」よりもずっと優れていたが、Intelは1976年の段階で16bitへの移行が計画されており(実際1978年には「8086」がリリースされた)、これに対抗するためには8bit CPUでは不十分と考えられた。ついでに言えばZilogも「Z8000」を開発中であり、最終的に競合にすらならなかったものの、開発段階ではこちらも有力な競合になると認識していた。こうした競合製品を打ち破るべく次期製品を開発するために、MACSS(Motorola's Advanced Computer System on Silicon)という名前のプロジェクトが1975年からスタートしている。ただ、CHMで収録された"Oral History Panel on the Development and Promotion of the Motorola 68000"によれば、MC6800の開発プロジェクトを指揮したThomas Gunter氏は1969年にMotorolaに入社、一度離職する。ところがMC6800の開発の際にも名前が出てくるBill Lattin氏に呼び戻され、1975年に再入社。MACSSプロジェクトに配属されるものの、その当時MACSSのOperation Managerを務めていたColin Crook氏がGunter氏に新製品の開発メンバー編成を任せたのは1977年の元旦だったとしている。別の資料にも、MACSSは組織こそ早期にできたものの、そこからの歩みは当初かなり遅かったという話があり、どうも実質的に開発がスタートしたのは1977年だった模様だ。

32bitへの拡張を視野に

 この時点でCrook氏が描いていたのは、32/16bit CPUである。これは競合となる8086とかZ8000などが16bit CPUだった事を考えれば妥当だが、先見の明があったと思うのは32bitへの拡張を当初から予定していた事だ。実際MACSSでは、過去(つまりMC6800/6809)との互換性は捨て、ただし今後登場するCPUとの互換性を保つ、という決断をした。この結果がアドレス32bit/データ16bitという構成である。実際にはアドレスは24bitしか使っていないが、レジスタは全て32bitで構成された。ALUも16bit幅構成のものが搭載されており、見かけはともかくとして内部は完全な16bit CPUであり、ただし32bitにスケーラブルに拡張できるというものだった。ちなみに資料の中にはALUが32bitとしているものもあったが、筆者が調べた限りでは16bit ALUが3つ搭載されている。うち1つが通常のALUで、残る2つはアドレス生成用である。アドレス生成の方は、上位16bitと下位16bitに分割してそれぞれ演算を行う仕組みになっており、その意味では1回の演算(さすがにPipeline構造にはなっていないので、1cycleでというわけにはいかない)で32bit演算(といっても最上位8bitは無視されるので実質24bit演算)が可能ではあるのだが、これをもって32bit ALUというにはちょっと無理がある。その辺もあって、例えば1983年の同社の仕様書(図2)は明確に"16-BIT MICROPROCESSOR"と示されている。

図2:1983年4月のUsers Manual(表紙はAdvance Informationになっている)より 図2:1983年4月のUsers Manual(表紙はAdvance Informationになっている)より[クリックで拡大]

 アドレスバスは24bitで、16MBまでのメモリをダイレクトにアクセス可能だった。このあたり、8086が64KB超のメモリアクセスを16bitレジスタで何とかカバーすべくSegmentとOffsetの2つでアドレス表現を行った事の弊害は、恐らくこれを読まれている読者の方々はよくご存じかと思う。

 命令セットも新しく定義され直した。その命令セットであるが、PDP-11の影響を受けた非常に直交性の高いものであったが、PDP-11の命令そのままではなかった。これに関してGunter氏は

"it's only fair to acknowledge that we were heavily influenced by the DEC family of products. Both the PDP-11 and the PDP-11/70 at the time were kind of the definitive minicomputers in the market, in terms of performance and such. But we didn't borrow or plagiarize that exact architecture, but at least we knew what was working and not working for it, and we knew it very well."(DECの製品群から多大な影響を受けたことは認めざるを得ない。当時のPDP-11とPDP-11/70は、性能などの点で市場における決定的なミニコンピュータだった。しかしわれわれはあのアーキテクチャをそのまま借用したり流用したりはしなかった。少なくとも何が機能し、何が機能しないかは熟知していたからだ)

と述べている。まぁ70年代のCISCらしい命令セットに仕上がったとは言えるかと思う。

       1|2|3|4 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

特別協賛PR
スポンサーからのお知らせPR
Pickup ContentsPR
Special SitePR
あなたにおすすめの記事PR

RSSフィード

公式SNS

EDN 海外ネットワーク

All material on this site Copyright © ITmedia, Inc. All Rights Reserved.
This site contains articles under license from AspenCore LLC.