このページの本文へ

前へ 1 2 3 4 次へ

ロードマップでわかる!当世プロセッサー事情 第571回

AppleがMacをARMベースの独自チップに移行、モバイル向けでいかにx86に立ち向かうか?

2020年07月13日 12時00分更新

文● 大原雄介(http://www.yusuke-ohara.com/) 編集●北村/ASCII

  • この記事をはてなブックマークに追加
  • 本文印刷

 前回のA64FXに続き、ARMプロセッサーの後編はAppleのMac(Macintosh)向けApple Siliconの話である。が、いきなりここに飛びつく前に、まずは過去の経緯を簡単に振り返っていこう。

何度もアーキテクチャー変更があった
Macのプロセッサー遍歴

 冒頭に書いておくと、Macがプロセッサーアーキテクチャーを変更するのは、公式にはこれで3度目。非公式には4度目になる。

 つまり初代のMacintoshやMacintosh II、Quadraなどに使われてきたMC68Kシリーズ、PowerMacに移行が決まる前に、非公式に移植が進められてきていたMC88K、そしてPowerPC、x86ときて、今回がARM v8-Aである。

 MC88Kがあまり知られていないのは、製品が出ていないのだから当然であるが、68K→88Kのエミュレーターが完成した段階で、MC88KからPowerPCの乗り換えが社内でアナウンスされたそうで、移植担当者が相当なげいたという話を聞いたことがあるが、それはそうであろう。

 初期のPowerPCのプロセッサーバスは俗に601 Busと呼ばれるが、これはMC88100との互換性を持つものだった。理由は、連載500回で述べたが、88K→PowerPCへの移行を容易にするためである。このあたりの話は以前「忘れ去られたCPU黒歴史」のMC88000の章(単行本化の際に加筆した章なのでウェブでは未公開)で触れた話だ。

iPhone/iPad向けSoCはARMコアを採用

 話を戻すと、今度は“Apple製のシリコン”を搭載するというわけで、iPhone/iPadに利用されているARMベースになるのは間違いない。開発キットにはA12Z Bionicが搭載されているほどだから、これでARM以外だったらその方がどうかしている。

 さて、ではAppleのARMとの関わり合いは? ということでiPhone/iPad向けSoCを一覧で示してみたのが下表である。

 初期はSamsungのカスタムSoCを利用しており、これはオーダーをAppleからSamsungに投げ、それをもとにSamsungが組み上げた格好だ。これがAppleの設計に切り替わるのは、Apple A4からである。

 Apple A5以降はiPhone向けのAn(n:5~13)と、iPad向けのAnX(n:5~12)に分かれているが、基本的にiPad向けはエリアサイズと消費電力にゆとりがある(筐体が大きいので、パッケージサイズが大きくても許容されるし、また放熱能力とバッテリー容量にゆとりがあるから、消費電力が上がっても許容される)ので、iPhone向けのAnシリーズのコア数を増やしたり、動作周波数を引き上げたりした派生型と考えればいい。

 さてその基本のAnシリーズだが、A5まではARM提供のIPコアを利用していたが、A6以降は独自設計のコアを利用しており、Swift/Cyclone/Typhoon/Twisterと来て、A10世代からはbig.LITTEに基づくBigコア(Hurricane/Monsoon/Vortex/Lightning)とLittleコア(Zephyr/Mistral/Tempest/Tunder)の両方が利用されるようになっている。

 この独自設計のコアであるが、Appleは2008年にP.A.Semiという会社を買収しており、ここの設計チームがそのままAppleの独自コア開発に携わる、と当時から噂されていた。

 このP.A.Semi(元はPalo Alto Semiconductor)は2005年のFall Processor ForumでPA6TというPowerPCベースのコアと、これを実装したPWRficient 1682MというSoCを発表しているが、この発表者が誰あろうJim Keller氏(当時の肩書はVP Engineering, Architecture Group)である。

Jim Keller氏。腕組みしながら講演というスタイルはこの当時から変わっていない気がする

 最近ではインテルを辞任したことで話題になったKeller氏であるが、そのインテルがKeller氏就任直後に出したのがこちら。

この当時、インテルのPRチームはKeller氏のキャリアがインテルで最後だと思ったのだろうか?

 このスライドで、Keller氏はAppleでA4とA5の開発に携わったとしている。時期的に言って嘘ではないが、実際にはもっと重要な、A6/A7のグランドデザイン(というか移植)にめどがついたことでAppleを離職したのではないかと考えている。

 というのは、表からもわかるようにApple A4/A5はCortex-A8/Cortex-A9をベースとしたシステムで、もちろんこれをベースにSoCを組み上げるためにはPWRficient 1682Mや、さらにその前のSiByteのSB1000での経験と知識が大いに役立ったと思うのだが、Keller氏の本職(?)はCPUアーキテクトであり、CPUコアそのものはいじれないCortex-A8/A9を組み上げるのは、別に氏でなくても足りる。

 しかしこれに続く独自コアのSwift/Cycloneは、CPUアーキテクトなしではどうにもならない。こう考える理由は、PA6Tというコアの先進性にある。

PA6T。フロントエンドは4命令/サイクルでフェッチ(読み出し)し、これを1サイクルあたり3つの内部命令に変換、それぞれ実行する。発行ポートは整数演算、FPU/VMX演算、Load/Storeの3つ

 PA6Tは、命令セットこそPowerPC 2.04準拠ながら以下の重厚な構成である。

  • 32bit/64bit両対応。FPU及びVMX SIMDも実装
  • 4命令フェッチ/3命令同時発行のアウト・オブ・オーダー/スーパースカラー実装
  • MicroOpを利用し、さらにMicroOp Buffer(L0 Cache)まで搭載

 このような構成でありながら、65nmプロセスでの製造で2GHz駆動のコアあたりの消費電力は6.25W(同社の説明は「8コアで50W以下」であった)という高効率性を誇る。

 2GHzにおけるSPECint(おそらくSPEC CPU2000のことと思われる)は1000以上、というのが説明であった。ちなみにSPEC CPU2000で1コアのスコアが1000前後というのは、例えばDellのPowerEdge 1750にあたり、PrestoniaベースのXeon 3.06GHz(533MHz FSB)相当ということになる。

 ここからは筆者の推測だが、Keller氏は「副業として」Apple A4/A5の開発の面倒も見ていたかもしれないが、本職はこのPA6Tのアーキテクチャーをベースに、新規にARMコアを起こす作業を、(買収にともなう)2008年のAppleの入社から、2012年の退社までの間に携わってきたのではないかと考えている。

 もともとのPA6Tは64bit対応のアーキテクチャーなので、本命はARM V8-AのCycloneである。ただ64bit対応のためにはiOSやアプリケーションの移行も同時に必要である。したがって、まずは前段階として32bitのARM V7-Aを移植したSwiftをリリース、次いでこれにARM V8-Aを追加したCycloneを開発したことになるだろう。

 実際には、フロントエンドはPowerPCからARMへの命令セットの変換になるが、バックエンドはアプリケーションにもう少し最適化した形での実行ユニットの強化が行なわれたと思われる。

 特にPA6Tの場合は65nmプロセスを使い、消費電力もコアあたり6W程度がターゲットだったので、複雑なユニットを同時に動かすよりも、シンプルなバックエンドを動作周波数を上げて動かす方が効率的かもしれないが、iPhone向けだとコアあたり1W程度に抑える必要があるため動作周波数が上げにくい。

 その代わりに利用できるトランジスタ数が大幅に増える(Samsungの28nm HKMGプロセスやTSMCの20nmプロセスがターゲット)ので、自ずと構成そのものも見直す必要があるだろうし、実際見直したはずだ。こうした実装の指揮こそ、Keller氏の肩書にふさわしい作業と言える。

 もっとも、Keller氏がAppleを離れたあとも、Appleのプロセッサー開発は当然続く。どこまでKeller氏の影響があったかははっきりしないが、Cycloneどまりか、あっても続くTyphoon/Twisterまであたりでであり、big.LITTLEに対応したHurricane以降はおそらくもうKeller氏の作業はあまり関係なくなっているだろうと想像される。

前へ 1 2 3 4 次へ

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン