Apple Rosettaってなに?すでに存在していたAppleのCPU変更ノウハウ
Appleが各国で「Apple Rosetta」という商標を出願したとニュースになっています。じつは以前、MacにはRosetta(ロゼッタ)という機能がありましたが、それはどんなものだったのでしょうか。それはAppleのCPU遍歴に関係があります。今回はRosettaとMacのCPU、そしてソフトウェアについて解説します。
Rosettaの前に、MacのCPU遍歴をおらさい
Macには以前、「Rosetta(ロゼッタ)」という機能がありました。Mac OS X v10.4 Tigerで初めて搭載されたこの機能は、Macに搭載されるCPUと大きな関係があります。Mac OS X Tigerが登場するちょうどその時、Appleは「Intel(インテル)製CPU」を搭載するようになったのです。
それまでのMacには「PowerPC」というCPUが搭載されていましたが、2005年に開催されたWWDCにて「同じ消費電力の大きさであれば、1年後以降の性能向上が著しい」という理由で、MacのCPUをPowerPCからIntel製x86系に切り替えると発表されました。実際にIntel CPUが登場したのは翌2006年に登場したiMacとMacBook Proで、そのときのCPUはIntel Core Duoでした。このとき、これまでのMacと区別するため「Intel Mac」という通称もよく使われていました。
Macに搭載されていた機能「Rosetta」とは
コンピュータ上で動作するソフトウェアは、基本的にCPUの種類ごとに作られていて、同じソフトウェアを違う種類のCPUで動作させることはできません。Macも例外ではなく、2006年に行われたCPUの変更にともない、これまで利用していたPowerPC用のソフトウェアはIntel Macで利用できなくなったのです。しかし、いきなり全てのソフトウェア会社に新しいCPU向けに作り直してもらうのは現実的でないうえ、全Macユーザがソフトウェアを書い直すことも難しいのが現実。これを解決するためにAppleがMac OS X v10.4 Tigerに搭載した機能が「Rosetta」でした。※画像はApple公式サイトRosettaより
Rosettaはダイナミックリコンパイルソフトウェアというもので、動作を簡単に説明すると、「PowerPC向けのソフトウェアをもう一度Intel CPU向けにコンパイルする」機能を担っていました。これを使うことにより、PowerPC向けのソフトウェアをIntel Macで利用でき、既存のMacユーザがIntel Macに乗り換えたとしても、これまでのソフトウェア資産が無駄にならずにすむ、というわけです。なお、全てのPowerPC向けのソフトウェアがRosettaにより完全に動作したわけではなく、その動作速度もPowerPC上での動作よりも遅いものでした。
Rosettaの廃止とRosettaの復活
この頃登場したMac向けのソフトウェアは「Universal Binary(ユニバーサルバイナリ)」と呼ばれるPowerPC、Intel CPU両方のコードを組み込み、画像や音声などを共通化したソフトウェアが販売されました。まだまだ現役のPowerPC版MacとIntel Mac双方にメリットがあったのです。このようにAppleではCPUを変更する過渡期に、RosettaとUniversal Binaryを使って、ユーザのCPU移行を容易にする工夫をしてきたのですが、ついに2009年に登場したMac OS X v10.6 Snow Leopardを最後に、Rosettaは廃止されました。なお、このSnow Leopardが初めてのIntel Mac専用となったOS Xで、ついに最新OSがPowerPCで動作しなくなりました。
Rosettaの廃止はAdobeをはじめとする多くのソフトウェアがIntel Macに対応した時期でもあったため必然ともいえるものでしたが、PowerPC以来利用してきた、アップデートされないソフトウェアのファンには悲報とも言えます。(余談ですが、Snow LeopardのRosettaをLion以降のMacで動作させることも…。)
そして2020年6月23日午前2時(日本時間)、WWDC 2020がスタート。その中で「Rosetta 2」が発表されたのです。
なおRosetta 2のアイコンは石版です。この石版はヒエログラフ解読に役立ったもので、発見された地名「ロゼッタ」から「ロゼッタ・ストーン」と呼ばれています。そう、この石版こそが「Rosetta」という名前の由来なのです。
「Apple Silicon」と「Rosetta 2」と「Universal 2」
WWDC 2020で発表された大きなMacの変化、それがCPUの変更で、MacにAppleの自社開発CPUである「Apple Silicon(アップルシリコン)」を搭載するというものでした。Apple Siliconは、ARMアーキテクチャを採用したCPUで、Intelのx86アーキテクチャとは当然互換性がありません。そう、PowerPCからIntel CPUに変わったときと全く同じ状況なのです。
ちなみにApple Siliconは、唐突に現れた全く新しいCPUではなく、その始まりは2010年の第一世代iPadに搭載されたApple製CPU「Apple A4」まで遡ります。そこから10年あまり、Aシリーズの最新CPUはiPhone 11などに搭載される「Apple A13 Bionic」で、今回発表された「Apple Silicon」こそ、満を持してAppleがMacに搭載する自社製CPUなのです。さらに、MacとiOSデバイスのCPUが共通のアーキテクチャとなることで、共通のソフトウェア開発は容易になり開発コストの削減も期待できます。
話をRosettaに戻すと、今回のCPU変更でIntel CPU向けに作られたソフトウェアは動かなくなるのですが、そこに登場したのが「Rosetta 2」だったというわけです。会場で行われたRosetta 2のデモでは高速な動作を披露しています。また、一方でAppleの開発ツール「Xcode」には、「Universal 2」と呼ばれる機能が追加されます。これはApple Silicon向けとIntel CPU向けそれぞれのソフトウェアを開発者が特別な意識をすることなく同梱できる機能で、かつての「Universal Binary」とまったく同じ考え方となっています。
CPUの変更という障壁の多い、かつ大きなことをAppleが行えた理由は、こうしたノウハウがすでにあったからと言えます。なお、MacのCPUはPowerPCが最初ではありません。1984年に登場したMacintosh 128Kでは680x0(68000CPU)を搭載していましたが、その後Apple、モトローラ、IBMの3社で開発したPowerPCをMacに搭載したのです。そう、今回のMacのCPU変更は68000CPU→PowerPC→Intel→Apple Siliconと3回目だったのです。
まとめ
MacのCPUが「Apple Silicon」へ変更することにともない、Intel CPU向けのソフトウェアとの互換性を保つため「Rosetta 2」が登場しました。ソフトウェア開発者もXcode 12によって特に意識することなく、Intel CPU向けとApple Silicon向けコードを同梱したソフトウェア「Universal 2」を作れるようになります。MacのCPUがiPhoneやiPadと共通化されることで、複数のハードへ共通のアプリを提供することも容易になりますから、今後の展開にさまざまな期待が膨らみます。
※画像はApple WWDC 2020より引用、Rosettaのみ、Apple公式サイトRosettaより引用 https://www.apple.com/rosetta/index.html