Apple M1チップとは何なのか

Apple M1 Chip - Apple
Apple M1 Chip
Apple M1 Chip

AppleがM1チップを搭載したMacをリリースした。今までのMacは“Intel入ってる”だったが、ついに独自開発のチップ、通称「Apple Silicon」へ移行しようとしている。この移行期間は「約2年」と公言しているので、2022年末までには“Intel入ってる”Macがサポート対象外になるのだろう。

さて、最初のApple Siliconとなった「M1チップ」、一体なにがすごいのか。そもそも、なんでAppleはチップまですべて独自開発したのか。それをちょっと、自分なりにまとめる。

時を戻し2007年、世界に初めてiPhoneを発表したSteve Jobs氏は、パーソナルコンピュータの父としても知られるAlan Kay氏の言葉をプレゼン中に引用し、Appleがいかにソフトウェア=OSづくりに真剣であるかをアピールした。

People who are really serious about software should make their own hardware - Alan Kay
(ソフトウェアに対して真に熱心な人々は独自のハードウェアをつくるべきだ)

これはAppleの哲学として根付いているに違いない。実際、iPhoneやiPad、Apple Watchはそうであったように。AppleはOSのために、そのOSに特化したハードウェアをつくってきた。

その代表格がAシリーズやSシリーズといったApple Siliconチップである。iPhone 4のA4チップから、AppleはAシリーズチップを進化させてきた。より省電力に、より高速に動作するように。iPadではこのAシリーズチップで大きなRetinaディスプレイを駆動できるよう、GPU性能などの向上に力を注いだ。同様に極小かつ低消費電力設計ながら優れたパフォーマンスを発揮してきたSシリーズチップもある。これはApple Watchに採用されているApple Siliconだ。あらゆるコントローラやメモリ類などの部品を一つのパッケージ(チップ)にまとめる=SoC化することで、全体の部品点数を減らし省スペース化を実現、無駄なデータの行き来も抑えることで消費電力を極限まで抑え、処理速度向上も図った。

これらのノウハウを最大限に活かし、Macに最適化するよう設計されたApple Siliconが、この「M1チップ」と言える。iPhone開発で培われた高電力効率かつ高速なAシリーズチップをベースに、iPad開発で培われたGPU性能の向上なども盛り込み、Apple Watch開発で培われた各種部品を一つのチップにまとめる省スペース設計や低消費電力でも高いパフォーマンスを維持できる技術などの集大成と言えよう。

パフォーマンス優先か、低消費電力優先か、その時々に必要な状況を適切に見極め、最小の電力で最大の結果を引き出せるよう設計されたチップ。そのチップの力を最大限に引き出せるOS「macOS Big Sur」。まさにハードウェアとソフトウェアの見事な統合によりMacは、まるで極限まで贅肉が削ぎ落ちたアスリートのようなマシンとなった。電力効率が極めて高いため、発熱もこれまでに比べ遥かに少なくなっている。その証拠に、M1チップを搭載したMacBook Airではファンすら入っていないのでまさに無音で動作する。

ここまで完璧な土台(ハードウェア)を用意されたmacOS。パフォーマンスの向上は言うまでもなく、今まで扱うこと自体が不可能だったような数のポリゴンやピクセル、レイヤーなどを、スムーズに扱えるようになったことに加え、機械学習にも最適化されたハードウェアのおかげで、今まで以上にクリエイティブな制作が素早く行えるようになることだろう。例えば、被写体のみをより正確に切り抜くことができたり、低解像度の画像を高解像度なものに変換したり、映像とCG空間のマッチムーブがより簡単になったりなど…。

さて、開発者やユーザーとして困ることは、CPUがIntel(従来のx86_64)からApple Silicon(新たなarm64)へと全く別のものになるため、今まで使って来たアプリケーション(従来チップ用)がそのままでは使えなくなってしまうことである。ここには以前PowerPCからIntelへの移行を経験したAppleのノウハウが注ぎ込まれている。AppleはWWDC 2020のプレゼンにて、この問題を「Universal 2」、「Rosetta 2」、「Virtualization」と言う三つの技術で解決できると提案した。

Apple Silicon Transition Tools
移行ツールたち

Universal 2」とは一つのバイナリがIntel・Apple Siliconのどちらでも動作するようコンパイルしてくれる技術のことで、最新のXcodeにすでに組み込まれている。特に複雑であったり特殊な設計のアプリケーションでなければソースコードを特段いじる必要なく、最新のXcodeにて改めてコンパイルし直すだけでIntel・Apple Siliconどちらでも動作するバイナリを生成してくれるとのこと。

Rosetta 2」はIntel用のアプリケーション(従来チップ用アプリ)が、M1チップなどのApple Silicon上でも高速に動作するように設計された、ユーザーの目に見えない魔法のような技術である。従来チップ用アプリは自動的にApple Siliconに最適化されるよう変換されたり、インストール時に自動的に実行され同様に最適化されたり、あるいは実行中の変換も可能なのでJITコンパイラやJavaコード類などにも対応するなど、互換性を最大限に確保しているとのこと。驚くことにM1チップの性能が高すぎて、変換しつつ動作しているにも関わらず、従来(Intelチップでの動作)よりも高速に動作するアプリもあるのだとか。

Vertualization」とは文字通り仮想化技術である。これによりLinuxやDockerなどを動作させたいユーザーもカバーしている。ただし、仮想化と聞いてBootCampが気になる方もいるはず。残念ながらこれは廃止される方向にあるようで、実際Apple Silicon上でWindowsを動作させたくば「Parallels Desktop」や「VMWare」のようなサードパーティー製仮想デスクトップツールが必要になるとのこと。Appleもプレゼンでは仮想化について詳しく触れていない。(なお、ここでAppleが言っているVertualization=仮想化とは厳密にはBootCampのような仮想デスクトップツールのことではなく、開発者の利用するフレームワークのことを指している点に注意)。

「Universal 2」により開発者は少ない手間でApple Siliconに対応でき、「Rosetta 2」によりユーザーはその背景を気にすることなく、大半のアプリケーションの恩恵をよりレスポンシブに(反応良く)利用することができ、「Virtualization」によりMacで仮想化技術を実現することもできる。これがAppleの考えるスムーズな移行のための技術たちである。

さて、Aシリーズチップをベースに開発しているので、iOSやiPadOSのアプリもmacOS上でネイティブに動作させることができる。これは「Mac Catalyst」として知られてきた。

Mac Catalyst」により、共通のソースコードによりiPad用のアプリもmacOS用のアプリもどちらもビルトすることができる。事実、Apple謹製アプリである「メッセージ」や「マップ」などもこの技術によりつくられている。開発者視点から見ても、こういった技術のキャッチアップさえしっかり出来れば(これが難しい部分ではあるが…)、Appleエコシステム全体へ自分のアプリケーションを素早く展開することが出来るようになる。

さて、最初の問いに戻り答えを考える。「なんでAppleはチップまですべて独自開発したのか」。その答えはTim Cook氏がWWDC 2020で「We can make much better products」と言っていたまさにそれであろう。一企業として、より良い製品をつくりたいなど、当然と言えば当然の動きではあるのだが、ここまで思い切りよく、その水準を高てしまうAppleは、やはり今も昔も異端児である証拠なのだろう。悪くも良くも、“彼の血”は脈々と受け継がれているように思った。iPhoneが発表されたあの日から、このApple Silicon搭載Macは

357355770058905214 https://www.storange.jp/2020/11/apple-m1.html https://www.storange.jp/2020/11/apple-m1.html Apple M1チップとは何なのか 2020-11-29T21:19:00+09:00 https://www.storange.jp/2020/11/apple-m1.html Hideyuki Tabata 200 200 72 72