M1 Macのすごさ

2021/05/05

Gadget

t f B! P L


 

M1 Macについて。

何を今さら、と思う方も多いかと思いますが、この内容についてはずっと語りたかったので、語ります。

M1そのものはもちろん技術的にすごいですが、私は半導体製造の専門家でもないですし、そこに強い興味があるわけでもありません。

今回お話したいのは、M1そのものというよりも、コンピューターメーカー(MacはMacとしか呼んではいけないのかもしれないが)としてのAppleがARMベースのプロセッサへの移行を果たした、というところの「すごさ」についてです。

パーソナルコンピューターとIntel CPUの歴史

Intel 8086

ちょっとオジサン臭い話題になってしまいますが、Intelを中心とするPCのCPUの歴史からまずは紐解きたいと思います。

時は1978年、今から40年以上前ですが、Intel 8086というプロセッサが発表されました。これは16ビットのCPUで、その後NEC等の日本のメーカー含め、様々なパーソナルコンピューターに広く採用されたものになります。

実はこのCPUは、1974年に発表されたIntel 8080の流れを汲むCPUで、8080とのバイナリレベルの互換性はないものの、再アセンブルすることで8086バイナリを生成することができる代物でした。

この頃から既に、過去のSW資産の活用が重要視されたということを知ることができます。そしてその流れが、現在まで至るIntel CPUの系譜に呪いのようにつきまとうことになります。

8086登場後しばらく、Intelからはこの8086互換のCPUが発表されていくことになります。80186、80286といったCPU達で、IBMのPC/ATとその互換機(PC/AT互換機)と呼ばれるパソコンで幅広く使われていくことになります。

これらの互換性をもったCPUの命令セットアーキテクチャ(ISA)はx86と呼ばれるようになります。その理由は、CPUの名称を見れば明らかです。

Intel 80386 (IA-32)とx86

1985年に、それまでのIntelのx86 16ビットCPUに対して互換性を持ちつつ、32ビット拡張が行われた命令セットを持つCPUであるIntel 80386が発表されました。これはi386とも呼ばれます。

ここでも16ビット時代のSW資産の活用が重要視され、過去の命令セットを引き継いだものとして開発されました。

結果としてウィンテル連合としてWindowsと共に爆発的に普及していくため、この選択が間違いだったとは思えません。しかしながら、過去の資産の呪縛から逃れられず、よく言うイノベーションのジレンマに近い状態と言うこともできると思います。

このISAは後にIA-32と呼ばれることになります。

IA-64

x86がPCを牛耳る時代の流れと共に、CPUはムーアの法則に従い凄まじい勢いで性能が向上していき、それと共に64ビットへの対応も求められることになっていきます。

ここでIntelは劇的な選択をすることになります。

1994年にIntelから発表された64ビット対応の命令セットはIA-64(Intel Architecture 64)と呼ばれ、過去のx86との互換性を持たないものでした。Intelは自ら過去の呪縛と決別し、ジレンマから脱することを選んだのです。

互換性を維持することでSW資産を維持し、それと共に発展してきたWindows-Intel連合でしたが、Intelのこの大きな決断は偉大なものでした。

また、IA-64を採用したItaniumと呼ばれるCPUでは、x86のエミュレーションモードを持ち、それによって過去との互換性を確保し、新ISAの普及を狙ったものと考えられます。

しかしながら、市場はそれを選択しませんでした。Itaniumの開発の遅れや性能の低さ、x86エミュレーションの遅さなども加わり、普及スピードは遅いものでした。

ここでM1 Macの素晴らしさに気づくことができます。新しいISAへ乗り移る際に、新しいCPUとしての性能や、エミュレーション機能の品質の高さ、そしてタイミングが重要ということがわかります。これについては後程、再度触れることになります。

AMDによるAMD64の登場とx64としての普及

IA-64の苦戦に呼応するように、現在でもIntelのライバルとされるAMD(Advanced Micro Devices)から64ビット対応のISAが発表されました。AMD64と呼ばれるこのISAは、Intelとは対照的にx86との互換性を持ったものでした。

市場は64ビットCPUとしてAMDの方針を選択し、AMD64は広く支持されるようになります。その結果、IntelはIntel 64と呼ばれるAMD64と互換のISAを発表することとなり、IA-64の衰退に拍車をかけることとなります。

一度、過去のISAから決別しようとしたIntelでしたが、この一連の流れで再度x86の呪縛から逃れられない状態となっていきます。

これらのx86と互換性を持った64ビット対応のISAはx64と呼ばれるようになります。このISAを採用したCPUは世界中のパソコンに採用されていくことになります。現状のパソコンに使われているIntelやAMDのCPUは、このx64 ISAに基づいたものです。

そしてそのCPUたちは、恐ろしいことに(そして素晴らしいことに)40年以上前のISAと互換性を持つものとして今なお君臨していることになります。

IntelとMicrosoftは未だにこの呪縛から逃れることができていないのです。

MacにおけるCPUの歴史とM1対応について

さて、Intelを中心とした過去の呪縛から逃れられないパソコンのCPUの歴史について紹介させていただきましたが、Appleはどのような歴史を経てきたのでしょうか。

Mac(Macintosh)も長い歴史を持ちますが、少し割愛しながらMacのCPUの歴史を紹介していきたいと思います。

もともとはモトローラの68000系のCPUを使用していたMacですが、1991年にIBMとモトローラと提携し、PowerPCと呼ばれるCPUを開発し、それをMacへ採用していくことになります。以降10年以上、MacはPowerPCを使い続けることになります。

この辺も語りだすと面白いですが、長くなるのでまた別の機会にしたいと思います。

PowerPCからIntelへの移行

2005年、Appleが劇的な発表をWWDCにて行いました。

それは、MacにおいてPowerPCの採用を辞め、Intelによるx86 CPUへ順次切り替えていく、というものでした。

これは純粋にCPUとしての性能を重視した点もありますが、WindowsをMac上で動かすことも可能にしたという効果もありました。それにより、MicrosoftとIntelが作り上げてきたSW資産をMacへ一気に取り込むことを可能としました。

また、PowerPCでの資産を継続して利用するために、Rosettaと呼ばれるダイナミックリコンパイル技術も導入されました。これにより、PowerPC用バイナリも動的にリコンパイルしながら動作させることが可能となりました。

この判断は、Intel/Windowsの強力な普及レベルや技術的な優位性をベースとして、比較的好意的に捉えられていたと記憶しています。

この移行がうまくいった背景には、Rosetta等による技術的な先進性や、Intel CPUの性能的な優位性、Macが比較的閉じたプラットフォームであった点など、様々な要素が絡み合っていると思いますが、それらを総合して、移行を成し遂げたことはAppleの偉大な功績であると思います。

そしてこの成功体験が、M1 Macへの移行へと続いていくことになります。

IntelからM1(ARM)への移行

さて、そしてM1 Macです。

パソコンにおいてはIntel CPUが支配している中、世の中はスマホやタブレット等のARMベースのCPUを用いたデバイスが凄まじい勢いで広がっていきました。

ARMベースのCPUは、需要が増えると同時に製造技術・性能もどんどん向上し、小型デバイスにおいてはその地位を盤石なものとしていきました。

ちなみにARMのISAは、64ビット移行の際に32ビット互換を捨てています。ここはIntelの歴史と違うところで、こちらも語りだすと面白い気がしますが、今回は割愛します。

AppleはiPhoneやiPadの開発の中で、ARMベースの独自のCPU開発技術を蓄え続けていきました。そして発表されたのが、MacのARMベースのApple Silicon(M1チップ)への移行です。

性能や消費電力の面で、既存のIntel Macに勝るものとの宣伝文句でしたが、当初、多くのエンジニアは懐疑的だったと思います。そして、実際にモノを手に入れた後に、その性能に驚愕することになります。

パソコンのCPUとスマートフォンのSoCの性能を直接比較することはなかなか難しく、気がついた時にはその技術力が逆転していたように感じます。というか、M1 Macがそのことを世界に知らしめた、という印象です。

そして、SW資産という面でもAppleは万全でした。Rosetta2と呼ばれるダイナミックリコンパイル技術を導入し、多くのIntel MacでのSWが使える状態でした。このあたりはPowerPCからIntelへの移行で成功を収めた際と同様の作戦であり、技術的にもその頃の蓄積があるのかもしれません。

また、iPhoneやiPadで培ったApp Storeでの資産をそのまま活用できるという点でも、非常に優れた計画でした。言うなれば、ISAを刷新するにも関わらず、利用できるSW資産が急増したとも言える状態を実現したのです。

なぜIntelは失敗しAppleは成功したか

上記の歴史を振り返ればわかる通り、Intelは過去の資産との決別に失敗し、Appleは成功したという事実が見てとれます。

ですが、その理由は一言ではとても語ることはできませんし、必ずしも明確とは言えないと思います。そして個人的に興味もありません。

イノベーションを起こし続けてきたAppleと、ジレンマに苦しめられたIntelという対照的な企業にも見えますが、過去を振り返ればその優劣は逆転して見えたものです。そしてまたいつ逆転するかもわかりません。

私が今回のApple Siliconで感じたのは、単純にAppleの「すごさ」です。

世界最大の時価総額を持つTech企業であるAppleが、長い歴史の中で失敗もみられるCPUアーキテクチャの切り替えという大きな変化を、長年の計画を経て自ら引き起こしたという事実そのものと、それが想像以上に高いレベル(完成度)で実現されているということに対して、一人のエンジニアとして敬服せざるを得ない、といった感情です。

私自身は宗教的にApple製品はあまり好んでは使っていないのですが、Jobsの遺産を食い潰しているだけの企業、デザインや使い勝手がいい製品を上手なブランディングと共に生み出しているだけの企業、といったことは全くなく、技術的なレベルの高さやその戦略の奥深さは紛れもなく世界一だと感じました。