年に一度の開発者会議「WWDC 2020」が開催されました。今年はオンライン開催となりましたが、内容は盛りだくさん。Macに関する発表も……なんと、CPUが変わるのだそう。今回は、その意味と影響、我々エンドユーザの心構えについて、わかりやすく解説します。

CPUが変わることの意味

CPUが変わることは、Macのようなコンピュータシリーズにとっては一大事です。なぜなら、「アプリの互換性」が失われるから。一般論でいえば、現在のMacで動いているアプリは、CPUが変更されたMacでは動かなくなるのです。

通常Mac用アプリは、CPUが直接理解できる命令セット(機械語/ISA)で構成されています。そのISAはCPUの種類によって異なり、現行のMacに採用されているIntel製CPUシリーズ(x86_64)のISAは、x86_64の仕様に沿ったCPUでなければ理解できません。理解できないということは、アプリとして実行できない/動かないことを意味します。

とはいえ、現在のIntel x86_64を搭載したMac(以下、Intel Mac)向けのアプリが世の中から突然消えるわけではありません。すべてのMacユーザがただちにARM Macへ乗り換えるわけではありませんし、当面は新CPUのApple Siliconを搭載したMac(以下、ARM Mac)とも併売される予定です。かつてMacがPowerPCからIntelに移行したときの経験からいうと、Intel Macは"現行のMac"として少なくとも2、3年は存在することでしょう。

一方、次のmacOS、さらにその次のmacOSに投入される最新技術はARM Mac専用のものかもしれません。いずれは、Intel Mac向けmacOSも提供されなくなります(PowerPC→Intelのときは約4年後にPowerPC版macOSの提供が終了されました)。Macを使い続けるなら、ARM Macへの備えは必然です。

  • 独自プロセッサ「Apple Silicon」を開発、新しいMacに搭載すると発表されました

  • Apple Siliconを搭載したMacによるデモも行われました

CPUが変わってもアプリは動く

2020年7月現在、一般向けのARM Macは発表されていませんが、年末から来年初頭にかけての発売が見込まれています。そのMacを入手すれば、「Apple Silicon向けに最適化されたmacOS」で「ARM Mac用アプリ」を使うことになります。

macOSに標準装備のアプリ、NumbersやKeynoteといったAppleが開発するアプリは、いち早くARM Mac用アプリとして提供されるはずです。だからひととおりの活用は可能なはずですが、気になるのはこれまでMacで利用してきたアプリ(Intel Mac用アプリ)です。

Apple Silicon向けに最適化されたmacOS(次バージョンのBig Sur)には、「Rosetta」と呼ばれるISAの変換機構が用意されています。前述したように、一般論でいえば異種CPU向けアプリはそのまま実行できませんが、RosettaはIntel Mac用アプリをARM Macで動作できるようISAを自動変換します。既存のアプリがそのまま動くのですから、ARM Macを購入したものの実行するアプリが少なくて困ることはないでしょう。

ただし、Rosettaは万能ではありません。ISAの変換には若干の時間がかかるため、アプリをインストールした時点で変換を済ませることでアプリの起動速度低下を防ぐ仕様ですが、Intel Macで実行したときほどのパフォーマンスは期待できません。カーネル拡張機能(KEXT)やx86_64コンピュータを対象とした仮想化アプリなど、そもそも動作対象外のものも存在します。

  • 移行期には、Intel/ARMどちらのCPUでも動作する「ユニバーサルアプリ」が投入されます

  • Intel Mac用アプリをARM Mac上で動作させるための「Rosetta」が用意されます

とはいえIntel Macの出番は続く

設計思想が大きく異るため単純比較はできませんが、大まかな傾向としてx86_64 CPUは「消費電力は多いもののパワフル&高速」、Apple SiliconなどARMベースのCPUは「処理速度ではx86_64に譲るが消費電力は少ない」ことが挙げられます。いずれはARM Macへの一本化が見込まれるものの、当面はIntel Macのサポートも継続されますから、パフォーマンス重視でIntel Macを使い続ける選択肢もアリでしょう。

PowerPC→Intel移行期の経験を踏まえていえば、アプリの供給も心配いりません。macOSに採用されているバイナリフォーマット「Mach-O(マーク・オー)」には、複数のバイナリ(ISAで構成されるアプリの実行部分)を1つのファイルに収録できるため、ARM Mac用とIntel Mac用両方でネイティブ動作するアプリ(ユニバーサルアプリ)を提供するのは容易だからです。そのようなアプリをIntel Macで実行しても、Rosettaの機構は必要ありませんから、ARM Mac用と変わらないか、場合によっては同等以上のパフォーマンスを発揮することでしょう。

開発に伴うタイムラグの問題もあります。特に写真加工や映像処理といった可能なかぎり処理性能を引き出そうとするアプリは、CPUの特性を考慮して開発が行われるため、Apple Siliconに最適化されたアプリが登場するまで時間がかかるかもしれません。仕事で欠かせないアプリがある場合、そのアプリのARM Mac最適化版が公開されるまでは、Intel Macを使い続けることになるはずです。

  • デモではユニバーサルアプリの「Microsoft Excel」がサクサク動いていましたが、すべてのアプリがそうとは限りません

iOSアプリがMacで動くように

IntelからApple Siliconへの移行に際しておそらくベストな選択肢は、Macを「買い増す」ことです。外出先へ持ち出す場合には省電力設計が期待できるARM Macで、パフォーマンスが重要かつARM Mac最適化版の登場が待てないアプリは現在のIntel Macで、などと用途に応じて使いわけることができれば、移行期となるこれから先の数年間をうまく過ごせることでしょう。

とはいえ、次第にARM Macを使う時間のほうが長くなるはずです。その理由は、iPhone/iPadと同じARM系のISAで動くARM Macでは、App Storeで公開されているアプリをそのまま使えるから。Rosettaのような変換機構に頼らず実行できるので、キビキビとした動作を期待できます。ARM Mac向けに開発されたアプリだけでなく、RosettaによりIntel Macのアプリが動き、そのうえiOSアプリも利用できる点は、Macの可能性を広げることでしょう。

なお、iPhone/iPadとMacの両方で動くアプリは、WWDC 2020で発表されたソフトウェア技術が必要になるため、現在iPhone/iPadで動いているすべてのアプリがARM Macで動く、という意味ではありません。画面サイズや各デバイスの操作性の違い -- たとえばiPhone/iPadはタッチパネルの、Macはマウス/トラックパッドの利用が前提 -- を考慮し、敢えてMac対応しないiOSアプリもあるはずです。

  • ARM MacではiOSアプリがそのまま動きますが、Macの事情を考慮した設計が必要です