見出し画像

Apple Siliconがすごい理由

M1、M1Pro、M1Maxと、2020年末から現在にかけて3つのAppleシリコンが発表され、(少なくとも私の観測範囲内では)大きな話題になっています。特徴としてよく耳にするのは、「早い」「電力効率が良い」といったものです。

かくいう私も、M1 MacBook Proを愛用しており、その速度や発熱の少なさ、バッテリー駆動時間に驚いています。

今回は、そんなAppleシリコンについて、なぜ早くて電力効率が良いのか、IntelやAMD等の老舗CPUメーカーと何が違うのか、偏見や想像を駆使して自分なりにまとめました。

理由1:製造技術がすごい

自社で半導体製造を行うには巨額の投資が必要なため、多くの企業は論理設計のみを行い、半導体ファウンドリにその製造を委託する「ファブレス」と呼ばれるビジネスモデルを採用しています。メーカーが設計図を作成し、半導体ファウンドリはその設計図をもとにチップを製造するという構図です。

ここで重要になるのが、「製造工場の技術によってCPU性能が左右される」という事実です。

設計図が同じなのに性能が変わるというのはおかしな話に聞こえるかもしれませんが、メーカーが行う設計とはあくまで論理設計のことであり、その先の物理設計は製造側に任される(または2社で協力して行われる)ケースがほとんどだそうです。

例えば、配置や配線のレイアウトは、発熱箇所をなるべく分散させ、なおかつより多くのユニットを詰め込むために大変なノウハウが必要です。

さらに重要なのが、製造時の配線のピッチを示すプロセスルール。誤解を恐れずに説明すると、プロセスが小さいほど速度が早くなり、消費電力が低くなり(デナード則)、同じ面積でもたくさんの回路を詰め込めるようになります。(論理的には、配線ピッチが0.7倍になると、全く同一の回路を49%の面積内に実現できる)

現在、プロセスルール縮小のために各チップ製造メーカーがしのぎを削っている状況です。そしてそのトップに君臨するTSMCこそが、Appleシリコンの製造を担っています。当然トップ企業のTSMCともなると、製造ラインの奪い合いが発生するわけですが、AppleはiPhone6から付き合いのある大口顧客。かなりのラインを専有しているとかいないとか。

各社の製造プロセスを比較すると、IntelのAlderLakeが10nm(Intel 7)、AMDのZen3が7nm(TSMC)、AppleのM1シリーズが5nm(TSMC)となっています。製造元が変わるとプロセスルールの単純比較はできず、実際Intelの10nmはTSMCの7nm相当と言われていますが、それでもM1に使われている製造プロセスが1歩進んでいることがわかります。

理由2:過去の遺産に縛られない

CPU開発は、CPUが受け付ける命令の仕様表である「ISA」の策定から始まります。いわゆるCPUが話す言語のようなものです。

策定と言っても、少なくとも現在利用されているISAと互換性がないと過去のソフトウェアを実行できなくなってしまうため、基本は秘伝のタレのように、継ぎ足しで新たな命令を加える方法で進化していきます。

特にIntelやAMDのように、様々なメーカーに採用されるCPUを製造するメーカーは、過去のソフトウェア資産が動く前提の上で次世代の製品を開発する責任があると言えるでしょう。

このような縛りは、時に足かせとなって現れます。古い思想のもとに生まれたアーキテクチャや命令を搭載するために、回路が複雑になったり、無駄が生じることになりかねません。

コンピュータアーキテクチャの学徒は誰しも、次のような疑問を持ったことがあるでしょう。

「古い資産をすべて消し去り、ソフト、ハードともに全く新しい設計をしたらどれほど効率が上がるのだろう」

ある意味M1 Macは、この疑問に対して1つの答えを示したと言えます。

Macの場合、ハードもソフトもすべてAppleが設計しているため、Appleの一存ですべてが決まります。ARMベースのISAや、メモリアーキテクチャとしてUMAを採用したりと、大胆な変更を行うことができるのです。

これまでのx86で書かれた命令を読めなくなってしまった代わりに、AppleはOS側に翻訳機能を用意しました。古いソフトの実行速度は落ちますが、新しいソフトがより早く実行できればそれでよいという判断でしょう。

理由3:オールApple製ゆえの強み

理由2と内容が被っていますが、すべてがApple製というのは大きな強みです。上記のようにハードウェアを大胆に変更できるだけでなく、ソフトウェアに合わせてハードウェアを設計するという手法を取ることができます。

従来、CPUの進化とは「単位時間あたりの命令実行数を増やす」ことでした。これは、以下のどれかを行うことで実現できます。

 1. クロックあたりの命令実行数(IPC)を増やす
 2. クロック周波数を上げる
 3. コア数を増やす

1と2については既に限界が近づいており、ここから大きな飛躍をすることは望めません。3についてもただ増やせば良いというものではなく、コア数が増えたとしても性能向上には限界があります。

そんな中、近年注目されているのが領域特化アーキテクチャ(DSA: Domain Specific Architecture)です。

PCはあらゆる分野のソフトウェアが動作する環境であるため、CPUの汎用コアは様々な命令を卒なく実行できる能力を有します。ここからエネルギー効率を飛躍的に進歩させるために、ある領域の計算のみに特化した専用演算ユニットを追加するというのが、DSAのアプローチです。

では、どのような類の計算を高速化すると体感性能が上がるのか。それは、ソフトウェアエンジニアの領域でしょう。

すべてがApple製であるがゆえ、「画像処理や音声認識の高速化のために、MLに特化したコアがほしい」「高度な演算を行わない時のためにより電力消費の低い小さなコアがほしい」というソフトウェア側の要望に答えられるわけです。(後者は厳密にはARM本来の思想ですが...)

このようにして作られたCPUは、Macだけをより高速に、効率よく動かすことができる、Macユーザーのためのチップになるのです。(言い過ぎかも)

まとめ

このように、過去の遺産を捨て去り、ソフトに合わせたハードをTSMCの最新製造技術で作り上げたのがAppleシリコンなのです。(きっと)

とはいえAppleシリコン伝説は始まったばかり。ワークステーション向けのラインナップはありませんし、まだまだ改善の余地もあることでしょう。

これからのAppleに期待です。

この記事が気に入ったらサポートをしてみませんか?