笠原一輝のユビキタス情報局
IntelからArmへのシームレスな移行を実現する「macOS Big Sur」
2020年6月23日 11:22
Appleは、同社の開発者向け年次イベントWWDCを毎年6月頃開催しているが、今年(2020年)は米国でのCOVID-19の流行を受け、デジタルイベントとして開催している。
米国時間6月22日午前(日本時間6月23日早朝)からは、同社CEOのティム・クック氏などによる基調講演が行なわれた。
このなかでもっとも注目を集めたのは「macOS Big Sur」というmacOSの次世代バージョン。噂されているとおり、同社自社設計のArmベースのApple製SoCのサポートが追加され、今後数年の時間をかけて現在のIntelからArmへの移行を実現する。
そのため、Appleは開発キットとして「Xcode 12」を発表し、「Universal 2」というIntelとArmを1つのバイナリで提供する仕組みを導入する。
また、「Rosetta 2」と呼ばれるIntelバイナリからArmバイナリへと変換する仕組みを提供し、既存のIntelベースのmacOS用アプリをシームレスに動作するようにする。
なぜ、Appleは開発者に対してそうした犠牲を払ってまで、Armへの移行を目指すのだろうか? その背景には、複雑になった開発環境やプラットフォームを統合する意図、そして1つの基本設計からダイバリエーションで複数のプラットフォームをサポートできるという経済的な合理性などの意図が見え隠れする。
IntelからArmへのシームレスな移行を実現する「Universal 2」と「Rosetta 2」
今回AppleがWWDCの基調講演で発表した概要をまとめると以下のようになる。
- (1)新しいmacOSは「macOS Big Sur」
- (2)macOS Big SurではArmアーキテクチャをサポート
- (3)IntelバイナリからArmバイナリへの移行をサポートする開発キット「Xcode 12」をリリース
- (4)macOS Big SurではIntelバイナリをArmにバイナリ変換する「Rosetta 2」を搭載
- (5)仮想化技術に対応し、ArmアーキテクチャのVMを実行可能
- (6)iOSやiPad用のアプリを動かす仕組みを導入
- (7)Apple A12Z Bionicと呼ばれるArm版macOS向けのSoCに基づいた開発キット(DTK)を提供
現在のmacOSは、CPUの命令セットアーキテクチャ(ISA)としてx64(Intel 64)が採用されており、アプリはx64に対応したバイナリとして提供されている。
今回Appleが発表したmacOS Big Surでは、64bit版Arm(いわゆるArmv8-A)のISAを採用したApple SoCへの柔軟な移行を可能にする。そのためmacOS Big Surでは、Intel版とArm版の2つのバージョンを用意する。
問題は、同じmacOS Big Surであっても、Intel版ではIntel向けに作られたバイナリで提供されるアプリしか動かないし、逆にArm版ではArm向けに作られたバイナリで提供されるアプリしか動かない点だ。
これでは、「柔軟な移行」は不可能なので、AppleはmacOS Big Surに向けて2つの「移行手段」を提供する。それが上記で言うところの(3)Xcode 12と、(4)Rosetta 2の提供になる。
「Xcode」はAppleが開発者向けに提供している統合開発環境で、macOS上で動作する。Xcode 12はその最新バージョンとなり、従来Intel向けのアプリ開発に利用してきたコードを利用して、Arm向けのバイナリを作成できる。開発者は、コンパイラでコードをバイナリに変換するのだが、その段階でArmのバイナリも作成できるのが目玉だ。
さらにXcode 12では、「Universal 2」という仕組みも導入される。これは、1つのカプセル化されたバイナリのなかに、Intel版とArm版の両方を包含する仕組みだ。ソフトウェアベンダーにとっては、1つのバイナリに統一できるため、動作検証や配布の手間などを削減できる。
その一方で、ファイルサイズは増えるという弱点はあるが、すでにPCのストレージはSSDでも2TBや4TB搭載モデルが登場しているような状況であり、大きな障害ではないと判断されたのだろう。
もう1つのRosetta 2は、いわゆるバイナリトランスレーションで、Intel向けのアプリをArm向けにリアルタイムに変換しながら動作させる仕組みだ。変換にCPUの性能を消費してしまうため、ネイティブアプリに比べて性能は低下することになる。
AppleはPowerPCからIntelに乗り換えるときもこうした仕組みを導入しており、そのときの名称が「Rosetta」だったので、今回は「Rosetta 2」という名称になったのだろう。
すでに多くのソフトウェアベンダーは、ISAやプラットフォームに依存しないコードへ移行済み
いずれもCPUのISA移行期間としては妥当な機能で、同じような仕組みはMicrosoftがArmベースのWindows 10を導入するときにも取り入れられている。WWDCの基調講演でAppleは、Universal 2に基づいたMicrosoftのWord、Excel、PowerPoint、AdobeのLightroom CC、Photoshop 2020、Apple自身のFinalCut Proが紹介されている。
近代的なアプリのコードは、プラットフォームやISAから独立したかたちで書かれており、そこにプラットフォーム特有の機能として、WindowsならWindows UIへの対応やタッチ操作とペン対応、iPad Pro向けならiOS UIへの対応やApple Pencil対応といった部分を追加し、コンパイルする仕組みになっている。
たとえばAdobeのPhotoshop 2020などがそのわかりやすい例で、1つの基本的なコードから、iOS向け、macOS向け、Windows向けのアプリがコンパイラで作成されている。
このため、MicrosoftもAppleも、動作検証(バリデーション)の議論を別にすれば、新しいプラットフォーム向けのソフトウェアを作るのはそんなにたいへんではないのだ。だからこそArm版のMicrosoft OfficeやAdobe Creative Cloudのデモができている。
ただ、実際にリリースするまでには膨大な項目の動作検証が必要になるので、デモができているレベルだから明日にはリリースできるかと言えば、それは別問題だ。今回はAppleがmacOS Big Surを出すタイミングでのリリースを目指すことになる。
すでにMicrosoftとAdobeがArm版macOS対応アプリを作り動かしている以上、主要なアプリの対応はこの発表の段階で済んでいる。
現実的に生産性を重視するユーザーにとっては、OfficeとAdobe CCという2大アプリは重要であり、どちらもサブスクリプション化されていて、ユーザーはつねに最新版を利用できる環境が整っていることを考えれば、多くのユーザーにとってはIntel版からArm版への移行はスムーズに行なえるはずだ。
しかし、Adobeのアプリでも、今回Universal 2を公開できたのは新しいコードで書かれているPhotoshop 2020やLightroomだけで、古いコードベースのLightroom ClassicやPremiere Proなどは、Armネイティブにするのは難しいらしく、デモしていない。なお、Illustratorは次のバージョンで新しいコードベースになることがすでに昨年(2019年)のAdobe MAXで明らかにされている。
それでもカバーできない古いアプリは、Rosetta 2でバイナリトランスレーションしながら利用できる。もちろん性能は低下するが、最新のバージョンが提供されないような古いアプリであれば性能的には問題ないと考えられる。ただ、デモでは3DモデリングソフトのMayaが想像以上にグリグリと動いていた。
その意味では、Lightroom ClassicやPremiere Proは、Armネイティブ版がすぐには提供できなくても、ある程度はRosetta 2でカバーできるだろう。
Arm版macOS Big Surは年内に登場
DTKはバリエーションと見られる「A12Z Bionic」を採用
AppleはこのArm版macOS Big Surを搭載したシステムの年末リリースを目指していると説明したが、具体的な製品は発表しなかった。
しかし、開発者向けのベータプログラムである「Universal App Quick Start Program」を発表し、Developer Transition Kit(DTK)を提供すると明らかにした。このDTKではMac miniの筐体に「A12Z Bionic」のApple SoC、16GBメモリ、512GBのSSDが組み込まれており、500ドルで提供される。
A12Z Bionicは最新のiPad Proにも搭載されている現時点最強のモバイルSoCだ。2018年に発売したiPad Proでは、この前身となる「A12X Bionic」を搭載していたが、この時点でも「市場にある92%のモバイルノートより高速」と謳っていた。DTKでも、その程度の性能は優に発揮するだろう。
実際、AppleはWWDCのプレゼンのなかで、「従来のCPUでは、デスクトップPC向けは高性能だが消費電力が高く、ノートPC向けはその逆に消費電力は低いが低性能。われわれのSoCは高性能だが低消費電力を実現する」(Apple ハードウェア技術担当 SVP ジョニー・スルージ氏)と説明している。
Arm CPUのIntel CPUに対する明確なアドバンテージはアイドル時の消費電力の低さ。PCのCPUはライフサイクルのほとんどの時間でアイドル状態にある。このため、バッテリ駆動時間に影響をおよぼす平均消費電力を減らす効果があり、Armがx86プロセッサよりも電池が持つと言われている理由はそこにある。
Appleの狙いとしては、この「アイドル時に低消費電力」という特性を活かして、CPUコアを増やすなどして性能を引き上げ、IntelのCPUに性能では負けないが低消費電力というArm CPUを作り、自社製SoCで提供するという思惑があると考えられる。
プラットフォームのフラット化とダイバリエーションによる複数カテゴリへの展開がAppleのメリット
それでは、IntelからArmに乗り換えるAppleの具体的なメリットとはなんだろうか?
1つ目のメリットは、開発環境も含めて、スマートフォン、タブレット、そしてPCという3つのプラットフォームを1つのISAで統一できることだ。
Appleと言えども、ソフトウェアへの投資は膨大なコストがかかっているはずで、現在のようにArm系とIntel系が併存している状況は決して好ましいことではない。
注目したいのは、今回AppleがmacOS Big SurでiOS/iPadOS用のアプリを動かすようにすると発表したことだ。これも長い目で見れば、プラットフォーム統合の第一歩だろう。将来的にはmacOS用のアプリとiOS系のアプリが1つに統合される可能性が出てくるわけで、アプリ開発者にとってもそのメリットは決して小さくない。
2つ目のメリットは、半導体メーカーとしてのAppleの経済効果だ。
macOSのSoCをArmにすると、多くのCPUコアとGPUの実行エンジンを搭載した大規模なSoCをまず作り、そこからCPUコアとGPUのエンジンを減らした中規模のSoCをタブレット用に、そしてCPUとGPUを最小限にした小規模のSoCをスマートフォン用にとダイのバリエーションで3つのプラットフォームに対応できるようになる。
これはAMD/IntelのCPUや、AMD/NVIDIAのGPUの開発で一般的に使われている手法だが、同じ手法でAppleも製品展開が可能になる。元となる設計は1つだから、開発費の観点からもとても都合がよいのは言うまでもない。
IDCの調査では、2019年のスマートフォン市場においてAppleは市場シェア3位で1億9,100万台のデバイスを出荷。別の調査ではタブレットで2019年通年では市場シェア1位となり、4,990万台を出荷している。
さらにもう1つの調査によれば、2019年のPC市場におけるAppleの市場シェアは4位で、出荷台数は1,768万4,000台となっている。
現在のAppleのAシリーズは約2億5,000万台をカバーしているのだが、そこにさらに1,768万台が加わるかたちになる。開発コストの追加がほとんどなくこれを実現できるので、明らかにAppleにとっては“効率がいい”と言えるだろう。
Appleのティム・クックCEOは今後2年間で、IntelからArmへの移行を目指していくと説明。IntelベースのmacOSデバイスや今後のmacOSのIntel版も複数年、複数世代にわたって提供していくと明らかにしている。
したがって、現在IntelベースのmacOSデバイスを使っているユーザーも、今後数年はそのアップデートも含めて使い続けることができるし、必要に応じてArmベースのmacOSデバイスに乗り換えることが可能になる。
顧客への影響を最小限にするという観点からは、Appleのこのやり方は理に適っており、Universal 2に対応したアプリが増えていけば、多くのユーザーは問題なく乗り換えることができるし、Microsoft 365やCreative Cloudの契約ユーザーであれば、Arm版macOSデバイスが登場する初日からそれらのArmネイティブ版アプリを利用できる可能性が高い。
このことを考えれば、多くのユーザーにとって乗り換えのハードルは高くない。