CPUアーキテクチャ変更の秘密: Intel Macはいつまでサポートされるか

  • 投稿日:
  • 更新日:2020/11/28
  • by
  • カテゴリ:

Appleが新しいMacを発表しました。

ぜんぶApple Silicon (M1)入り。

Intelからの脱却に対する本気度が感じられます。

1024px-Apple_M1.jpg出典: wikipedia

Appleにとってはいつか来た道

ところで、このCPUを変えるという決断、コンピュータにとっては大きな決断ではありますが、Appleがこれを行うのは初めてではありません。

初めてどころか、MacというコンピュータにおいてCPUのアーキテクチャを変更することは、もう3回目になります。

これまで来た道

モトローラ 680x0 1984年

Macは1984年に生まれましたが、その時のCPUはMotorolaのMC68000でした。

16ビットCPUです。

1024px-Apple_Museum_(Prague)_Macintosh_128K_(1984)_-_1.jpg

出典: Benoît Prieur / Wikimedia Commons

当時、16ビットのパーソナルコンピュータは黎明期で、1978年にインテルから8086、1980年にモトローラからMC68000が発売され、パーソナルコンピュータ業界を二分していました。

インテルは8ビットCPU8080の成功から、16ビットCPUの8086を開発する際に互換性を重視しました。この戦略は成功を収め、多くのアプリケーションが8080から再アセンブルだけで8086で実行することが可能で、多くのユーザをつかむことができました。その反面、少ないレジスタ数、トリッキーなメモリ管理(セグメント)などアーキテクチャ面での制約に苦しめられることになります。この制約は32ビットの80386でようやく解消されましたが、すでに存在するソフトウェアの互換性維持のため、いろいろな面でその後も引きずることになってしまいました。

MC68000は当時のインテル8086とは異なるポリシーで開発されました。モトローラは8ビットCPUとして6800というものを発売していましたが、それとの互換性には囚われず、のちの拡張性が重視されました。そのため、16MBのアドレッシング(8086は一度にアドレスできるのは64kBまで)が行え、汎用レジスタも多く、プログラムがしやすいのが特徴でした。

IBM PowerPC 1995年

そんなMC68000でしたが、AppleではMC68040 (MacではQuadraシリーズ)までの採用で、その後はPowerPCに舵を切ることになります。

PowerPCはIBMのPOWERアーキテクチャ元に、IBM、アップル、モトローラの3社の提携で開発されたCPUです。

POWERアーキテクチャはRISC (Riduced Instruction Set Computer)向けのマイクロアーキテクチャで、開発の背景には1990年前後に盛んだったRISC対CISC (Complex Instruction Set Computer)の議論があります。

CISCは8086シリーズや68000シリーズが採用しているもので、各命令が比較的複雑な内容を実行することができるものです。プログラムが書きやすい代わりに、実現するためのプロセッサのハードウェアも複雑化し、高速化の弊害が指摘されていました。

一方、RISCは各命令が非常に単純な動作しか行いません。例として、演算はレジスタ間のみ、メモリアクセスはロード命令とストア命令のみで行う、というものがあります。CISCは「メモリから値を取り出して、演算し、結果をレジスタに入れる」といったことを1命令でできますが、RISCだと「メモリから値を取り出す命令」と「演算する命令」は別々に記述しなければなりません。

その代わり、時間のかかるメモリアクセスを別命令にすることで最適化したり、命令の長さを固定にして命令のデコードにかかる時間を短縮したりすることができ、高速化が容易になります。

なお、CISC型のアーキテクチャが高速化に不利というのはその後も8086〜Pentium系CPUの定説でしたが、複雑な命令をCPU内部でuOps (マイクロオペレーション)というRISC型の命令に変換して実行する機構がPentium Proから取り入れられ、その後のCPUは同様の方法で処理することが普通になっていきました。

さて、そんなPowerPCを採用したMacは1995年に発売されました。

Appleは、PowerPCに移行するにあたり、OSにMC680x0の命令を動的にPowerPC命令に変換する機構を入れました。

今回のApple Siliconでも導入されているコード変換に相当する考え方は、ここで初めて導入されたわけです。

Intel x86 2006年

Appleは2005年に、CPUをx86系に変更することを発表し、実際に2006年より製品を発表・発売しました。

このとき、最初に採用したCPUはIntel Core Duoでした。

PowerPCとの互換性を確保するため、Rosettaというコード変換(動的リコンパイル)機構を導入します。

ただ、このときPowerPC G3/G4のコードはIntel x86上で動作させるとかなり性能が悪化するという制約がありました。また、Power G5の変換はサポートされませんでした。

Apple ARM 2020年

そして、今回CPUアーキテクチャは3度目の変更となります。

年数でいうと、

  • モトローラ 680x0 11年
  • IBM PowerPC 11年
  • Intel x86 14年

ということで、インテルCPUの時代は意外と長かったことがわかりますが、Appleの歴史の中では半分にもなりません。

これから行く道

これまでの移行の際もそうでしたが、アーキテクチャ変更の際は、古いCPUのサポートが問題となります。

これをAppleはRosettaなどのコード変換機構でサポートしてきました。

直近のCPUから移行することから、コード変換を行えば性能に関してかなりのハンデを追うことになります。

それでもCPUアーキテクチャを変えるという決断をし、それを成し遂げてしまうというのが(今回に関しては)ARMアーキテクチャの底力であり、Appleという会社の強みでもあるのでしょう。

Intel Macはいつまでサポートされるか

さて、気になるIntelのサポートがいつまで続くかを、過去の歴史から紐解いてみましょう。

Intel Macが発表されたのは2006年。

PowerPCで動作するMac OSのサポートはMac OS X 10.5 Leopard (2007年リリース)が最後です。その次のMac OS X Snow Leopard (2009年リリース)ではPowerPCはサポートされていません。

すなわち、CPUを移行した翌年に出たOSがサポートの最終バージョン、3年後にはサポートが打ち切られています。

また、Intel MacでPowerPCのアプリを実行できるRosettaのサポートはMac OS X Snow Leopard (2009年リリース)が最後でした。

ただし、セキュリティアップデートはLeopardは2011年、Snow Leopardは2013年まで提供しています。

現時点では、Apple SiliconのMacはメモリ量(16GB)やポート数(2ポート)など、プロセッサに起因する制約が多く、しばらくはIntel Macも安泰だという見方が多くあります。

しかし、この程度の制約はAppleであればそれほど苦労せず解決していくでしょう。

来年くらいに、たとえば64GB、4ポートくらいまでは容易に到達するでしょう。

しかも、直近のレポートを見ると、Rosetta2の性能は凄まじく、Intel向けのバイナリであってもApple Silicon上で十分な速度で動作すると報告されています。

これらのことから、Intelサポートの終焉は意外に早いかもしれません。

こちらもよく読まれています