私たちは数年前から、Apple がある時点で Mac 用のプロセッサを ARM アーキテクチャを採用した独自のプロセッサに変更するだろうと聞いてきました。具体的には、2011 年以降、このトピックは一部の専門メディアで話題になり始めました。しかし、ついに昨日、ブルームバーグが爆弾を投下しました (Mark Gurman): Apple は次回の WWDC で Mac の ARM への移行を発表する予定です。
爆弾が投下されると、疑問が生じます。あらゆる種類の質問、それはどういう意味ですか?それはどのように行われるのでしょうか?アプリはどうなるのでしょうか?この記事では、ネットワークやに関する質問に基づいて、できる限り答えていきたいと思います。
質疑応答
どうやってここにたどり着いたのでしょうか?
すべては 2008 年に Apple がプロセッサ設計会社PA Semiを買収したことから始まり、これが Apple の歴史全体の中で最初に設計された CPU、つまり 2010 年に初代 iPad とともに発表された A4 プロセッサの発売につながりました。 iPhone 4 の開発とそこから Apple は技術革新の競争を続け、競合他社に対する明らかな優位性を確立し、 ARM アーキテクチャで市場で最も高速かつ最も効率的なプロセッサを開発しました。
2013 年に Apple が 64 ビット モバイル デバイスの最初のプロセッサである A7 を発売したとき、一般の人々は、 Apple が当時すでに入手可能だった Mac で Intel の CPU の代わりに独自の CPU を使用するという将来の可能性を垣間見始めました。 Apple にとって、熱の問題、納期の遅延、その他の頭痛の種が発生し始めていました。
Apple が新しい CPU アーキテクチャの移行につながる Kalamata プロジェクトを承認したのは、2018 年になって A12X CPU を搭載した Mac のテストが行われてからでした。
噂によると、それ以来、Apple は独自の CPU を使用して macOS をテストし、新しいプロセッサへの移行の可能性をテストしているとのことです。 2018 iPad Pro で使用されている A12X がテストされるまで、その結果は最適ではなく、会社の期待にも応えられませんでした。その時点でApple は新しい移行を承認し、移行につながるプロジェクトのすべてのリソースを投入して作業が開始されました。今年発表され、2021 年に開始される予定の「カラマタ プロジェクト」 。
Intel (x86) CPU と Apple (ARM) CPU の違いは何ですか?
多くの違いがあります。主で最も明確な点は、それらの命令セットが完全に異なることです(非常に基本的な算術演算といくつかの逸話的な例外を除く)。両方の 64 ビット アーキテクチャは異なる命令を備えているため、到達するコードも異なる必要があります。したがって、x86 または ARM で同じプロセスを実行する場合、CPU (最下位レベル) に到達するコードは異なります。
これとは別に、ARM はエネルギー効率に基づいたアーキテクチャですが、x86 はブルート フォースを目指しています。力。これは、Intel CPU はプロセスの実行においてより効率的であるのに対し、ARM CPU は同じプロセスを実行する際のエネルギー消費と発熱が少ないという点でより効率的であることを意味します。エネルギー使用効率は向上しますが、電力は低下します。
詳しい説明は省略しますが、大まかに言うと、ARM CPU にはビット単位ですべて同じサイズの命令が含まれていますが、Intel には異なるサイズの命令があります。したがって、Intel CPU は 1 クロック サイクルでより多くの命令を一度に処理できます。さらに、Intel の命令セットはより大きく、より多様化しています。 ARM では複数の命令が必要な場合でも、1 つの命令で実行できます。
ARM プロセッサと x86 プロセッサを、(Geekbench などのツールを使用して)生の電力だけで比較することはできません。それらは非常に異なっているため、メッセージの一部しか得られません。
これにより、(Geekbench などのツールを使用して) ブルート フォースによって x86 または ARM CPU を比較することは実際には何の意味も持たなくなります。なぜなら、両方のアーキテクチャの動作方法が大きく異なるため、ブルート フォースではメッセージの一部しか得られないからです。
なぜ Apple はこの移行を行うのでしょうか?
MacBook Pro などの Apple ラップトップを 10 年近く使用しているユーザーなら、知っていることが 1 つあります。 Mac は非常に熱くなります。私の 2011 MacBook Pro は高温になり、ボード上の専用 GPU の接続に亀裂が入りました (Apple は 5 年後に無償で交換してくれました)。私の新しい MacBook Pro は、多くのエフェクトを使用したビデオのレンダリングや高度なグラフィック開発などの重いプロセスを実行するように要求すると、非常に熱くなります。
現在、すべての Apple ラップトップは、要求の高いプロセスが必要な場合、例外なく摂氏 90 ~ 100 度の温度に達します。なぜなら?なぜなら、Apple は顧客のために薄く、エレガントで、軽いデザインを望んでいるからです…しかし、Intel は、それらのラップトップのデザインに「適合する」熱設計で都合よく冷却できる CPU を製造する能力がありません。これは Apple だけの問題ではありません。市販されている高出力の Ultrabook はどれも同じ問題に悩まされています。現在の CPU を適切に冷却できるのは、騒音の大きい冷却システムを備えた分厚く重いコンピューターだけです。
しかし、 Apple は、パッシブ冷却 (ファンなし、金属製ヒートシンクのみ) のみを備えた A12x CPU を iPad Pro に搭載し、最新のコンピューターに匹敵する 4K レンダリング速度を達成することができます(エンコーディング コアのおかげで)。これにより、圧縮形式でリアルタイムに Luma Fusion の 4K タイムラインを操作したり、Fortnite を 60fps で問題なくプレイしたりすることができます。
近年、Apple のラップトップでは発熱が主な問題となっています。 Apple だけでなく、市場にあるウルトラポータブル製品はすべてこの問題に悩まされています。薄くて軽い設計では、CPU の過熱に対する良好な放熱がサポートされません。
それが Apple が望んでいることです。パフォーマンスが市場の他の CPU と同等 (または特定のタスクではそれ以上) で、ファンや複雑な熱設計を必要としない、有能な CPU です。 Apple ラップトップが近年悩まされている過剰な熱の問題を引き起こすことなく、CPU が設計上正しく冷却されるコンピューター。また、バッテリー寿命も大幅に長くなります。
同じアプリは動作しますか?
これに関する公式情報はありませんが、Apple がこれまでに実施した、Motorola から PowerPC、PowerPC から Intel へのアーキテクチャの移行を見ると、以前のアーキテクチャのアプリが動作しなくなることは一度もありませんでした。
これについてはまだ確証はありませんが、Apple がこの移行を行うとすれば、すべてのアプリを新しいアーキテクチャで動作させることに成功したためであると考えるのは論理的です。
したがって、Apple は、起動時に現在のバージョン (macOS 10.16) で動作するすべてのアプリが、実行されるアーキテクチャや適応の有無に関係なく動作する方法を考案したと考えるのが論理的です。 。
アプリを適応させる必要があるとはどういう意味ですか?
すでに述べたように、ARM チップの命令は異なるため、アプリは適応する必要があります。システムのアプリやコンポーネントはそのままでは機能しないため、ユーザーにとって最も透過的な方法で別のアーキテクチャで動作するように適応させる必要があります。 ARM 用の低レベル コードを生成し、Intel で動作したコードを ARM で動作できるようにするコンパイラを使用する必要があります。または、コード インタプリタを ARM に変換して、すべてが機能するようにします。
この適応はどのように行われるのでしょうか?
まだわかりません。これは、Apple が次回の WWDC で発表する予定の内容です。開発者は、Apple ARM プロセッサを搭載した Mac で動作するようにアプリをどのように適応させる必要があるかについて説明します。
私の知識から要約すると、Apple のオペレーティング システムのすべての依存関係は ARM に完全に適合することになります。つまり、サードパーティ (Apple 以外) の依存関係を使用しない 100% ネイティブ アプリは、将来の Xcode 12 ではわずかなチェックだけで済むことになります。そして再コンパイルされます。他には何もありません。これにより、それらはいずれかのアーキテクチャ上で独立して機能できるようになります。
そして残りのアプリは?それは、作業に使用するツールまたはライブラリによって異なります。 Java を使用する場合、macOS には ARM 用の Java 仮想マシンがインストールされている必要があります (当然、存在します)。言語として C++ を使用する場合は、(正しく変換するために) ARM 上で動作するようにそのコードをコンパイルする必要があります。 90% の場合、単純なコードのコンパイルについて話していることになります。ただし、ツールを調整する必要があり、各アプリの依存関係も調整する必要があります。
私のアプリが Firebase を使用している場合は役に立ちません。アプリを確認しますが、その前に Google は SDK で同じことをしていなかったので、ARM で動作するライブラリを用意していませんでした (たとえば)。
また、2021 年まで新しい機器が登場しない場合、開発者がどのようにアプリを移行して変更をテストできるのかもわかりません。そのため、Apple が過去に開発者に提供したものと同様の開発キットが提供される可能性があります。最後の移行が検討されています。おそらく、2021 年に ARM を搭載した最初の Mac が登場する前に、アプリのテストと検証を可能にする、Mac mini の値下げ版が登場するでしょう。
ARM に対応していないアプリは何ですか?
もう一度、別の質問です。現在のテクノロジーの現状と、Apple が過去にこの問題をどのように解決したかを調査すると、私の理論は「仮想化」です。
ご存知のとおり、 macOS にはハイパーバイザー層があり、現在システム プロセスとタスクをより効率的に管理するために使用されています。この層は基本的に、アプリ全体の仮想化を可能にするプロセス仮想化層です。それだけでなく、アプリの特定のプロセスを仮想化できるようになります。
前回の移行では、Rosetta は PowerPC バイナリを Intel に動的に変換するソフトウェアでした。エミュレータみたいな。アプリの単一コンポーネントまたは依存関係が Intel に移植されなかった場合でも、完全に適応させる必要があるため、アプリ全体がエミュレートされて動作しました。
しかし、現在のテクノロジーを考慮すると、プロセスベースの仮想化が実現する可能性があります。このようにして、アプリに 20 個の部分があり、そのうちの 3 個が「クリックされておらず」適応されていない場合、適応された 17 個の部分は ARM 上でネイティブに実行され、残りの 3 つはコアに統合されたハイパーバイザーに「リンク」されます。 VirtualBox や VMWare を使用する場合と同様に、プロセスとして仮想化され、ARM 上で実行されます。VirtualBox や VMWare を使用する場合と同様に、システムに統合されます。
これにより、アプリのパフォーマンスが向上し、移行時のスケーラビリティが向上し、まだ適応されていない段階でのアプリの実行効率が向上します。
アプリが適応されると何が起こるでしょうか?
Mac App Store はすべての変化の中心ですが、それだけではありません。 Mac App Store にアップロードされたアプリは、ダウンロード先のマシンのアーキテクチャに応じて、対応するバイナリのみをダウンロードします(iOS ではすでに行われているように)。
Mac App Store からダウンロードされる ARM に適合したアプリは、そのアーキテクチャに対応するバイナリのみをダウンロードします。 iOSが数年前からサポートしている機能。
ソフトウェアが作成者のページからダウンロードされる場合は、両方のプラットフォームの実行可能ファイルを含むユニバーサル バイナリ (過去の PowerPC から Intel への移行時と同様)、またはマシンに対応するバージョンのみをダウンロードします。
Apple はそのシステムを Mac App Store に対してまったく閉鎖するつもりはありませんが、今日では公証人を使用せずにアプリを実行することはできません。公証人は Apple による自動審査であり、開発者は Apple の有料アカウントを持つ必要があります。
そしてブートキャンプ?
Microsoft と Apple がこの問題に協力することは理解していますが、Windows が ARM 上のシステムの安定バージョンをリリースするまでは、これらの新しい Mac では BootCamp がオプションにならないことは明らかです。
ただし、Parallels Desktop または別の仮想化システムを使用することは可能ですが、Windows は現在同じ CPU アーキテクチャ上の Parallels で実行されており、ここでは仮想化する必要があり、システムにとっては重くなるため、パフォーマンスは現在よりも低くなります。システム。 。しかし不可能ではありません。すべては仮想化ソフトウェアが適応するかどうかにかかっています。実際、VirtualBox や VMWare にはすでに ARM 上のバージョンがあります。
それによってアプリのプログラミング方法も変わるでしょうか?
一度もない。コードと各アーキテクチャへのコードの変換は別のものです。すべてのコードの目的 (そして私たちは長年これを行ってきました) は、コードをあらゆるアーキテクチャに変換できることです。 Swift、Objective-C、C++、.NET、Java、Python…、または任意の言語を使用する同じアプリは、ARM 用のコンパイラ/インタープリタを備えている限り、まったく同じように動作します。今すぐ。
その場合、iPad Pro アプリは Mac 上でより簡単に実行できるようになるでしょうか?
いいえ。絶対に違います。同じアーキテクチャを持つということは、同じオペレーティング システムを持つという意味ではありません。 ARM は Android と iOS のアーキテクチャであり、Android アプリを iOS 上で実行できないこと、またその逆も同様であることは誰もが知っています。 Windows と Mac が x86 上で動作するようになり、一方から他方へアプリを実行することはできません。
各オペレーティング システムには依存関係、命令、ライブラリがあり、たとえ低レベルで同じ言語を話しても、相互に互換性はありません。
多くのオペレーティング システムは ARM または x86 上で動作するため、互換性がありません。 iOS と macOS が同じアーキテクチャで動作するという事実は、両者に互換性をまったく持たせません。たとえば、Android は ARM でも動作します。
iPadOS、iOS、macOS、tvOS、または watchOS は、同じアーキテクチャ上で実行されているため、より近くなるわけではありません。それは依存関係とライブラリのみに依存します。
最初に ARM を搭載したコンピューターは何でしょうか?
おそらく、より消費者向けのものでしょう。 1000ドル以下の12インチMacBookが復活する可能性もあるし、(過去にもあったように)わずか600ドルか700ドルで非常に競争力のある価格で新しい消費者グレードのMac miniが復活する可能性もある。Appleが自社チップを製造すれば、価格は下がるはずだこれは、一般消費者が新しい機器に切り替える最大の魅力となります。
民生用コンピューター (最も安価で性能も低い) が最初に ARM に移行することになります。
また、エントリーレベルの iMac 以降、処理の必要性がより高い、よりプロフェッショナルな機器が組み込まれる可能性もあります。明らかではないのは、Mac シリーズ全体が ARM に移行するということです。アーキテクチャの固有の違いを考慮すると、より要求の厳しいコンピュータでは ARM が選択肢にならず、Intel に残る可能性が高いためです。 AMD チップに切り替えるための扉も開かれています。
この移行は、原則として、PowerPC から Intel への以前の移行の動機となった最もプロフェッショナルなユーザーを対象としたものではありません。今度は、知名度の低いユーザーが恩恵を受けることになります。
移行はどれくらい続きますか?
それがいつまで続くのか、あるいは上位の MacBook Pro や、とりわけ iMac Pro や Mac Pro のように Mac シリーズ全体に及ぶのかどうかは不明です。噂に注目すると、次のような話になるでしょう。このハードウェアとソフトウェアの移行が完了するまでに約 4 年かかります。
この移行は、将来的に macOS と iOS が統合されることを意味しますか?
そしてGPUは?それらは何になるのでしょうか?
2018 年の A12 プロセッサ以来、 Apple は独自のグラフィックス チップを設計しています。実際、2018 iPad Pro の A12X またはiPad Pro (2020)の A12Z のグラフィック能力は、Xbox One S または PS4 (非 Pro) と同等です。この比較は Apple 自身によるものです。
Apple の Metal ライブラリを使用した GPU に対するブルート フォース テストに注目すると、 A12X GPU は NVIDIA GeForce GTX 950 (寿命が約 5 年の GPU) よりもわずかに上に位置し、インテル アイリス プラス。
したがって、ARM (統合 GPU) を搭載した新しい Mac のグラフィック能力は、MacBook Air、Mac mini、MacBook Pro 13 などの機器をすでに組み込んでいる最新世代の Intel Iris と同様のパラメータになると想定できます。過去 2 年間の GPU の向上を夢見るなら、それが GTX 1050 のレベルになることを夢見ることができます。
おそらく、新しい ARM MacBook のグラフィックス パフォーマンスは、最新のラップトップまたはデスクトップに現在統合されている Intel チップのグラフィックス パフォーマンスと同等になるでしょう。
eGPUは接続できるのでしょうか?はい、Apple が接続する専用グラフィックス カード用の ARM アーキテクチャドライバーを提供している限り、当然のことながら可能です。
最終結論: ユーザーに対する透明性
Apple の最終目標は、これは非常に明確にしておく必要があることですが、Mac が Intel を使用しているか ARM を使用しているかに何の違いも感じさせないことです。システムは同様に動作し (長年にわたってこのアーキテクチャに適応されてきました)、すべてのアプリも動作します。良いのか悪いのか?まあ、違いに気づかない程度には十分です。
では、それらがより良いか悪いかをどのように測定するのでしょうか?それはできません。機器を使用するだけでわかります。 iPad が Mac よりも優れているかどうかを比較しようとするようなものです。それは何のためのものか、そしてあなたのソフトウェアによって異なります。この場合、ARM を搭載した Mac のパフォーマンスが良くなるか悪くなるかは、アプリが新しいアーキテクチャや実行したいタスクに完全に適応しているかどうか、その他の要因によって決まります。
しかし、もし Apple がその一歩を踏み出すことに決めたとしたら、それは少なくとも、すべてが今と同じようにうまくいくからです。 WWDC が間近に迫っており、IphoneFocus.clickでは壮大な報道を準備しているため、すべてのニュースをお知らせします。直ぐに見つけられます。