Nishiki-Hub

国内外のPC/PCパーツ/スマホ/Appleなどの最新情報を取り上げています

Apple Vision Proに搭載されている「Apple R1」の正体を考察してみる ~ 考え抜かれた空間コンピューティング用チップ

3行まとめ

Apple Vision Proが発売されましたが、Apple R1について若干わかったことがあります。全てではありませんが、少し考察を交えて考えてみましょう。

あっさりまとめ

  • R1は「設計を簡素化する」だけでなく「遅延をなくすための究極のソリューション」
  • システムは完全に分離されていて、visionOSがフリーズしても問題ないのではないか
Point

今回の記事は考察です。かなり予想もあります。

Apple R1

まず、「Apple R1」の概略だけ。

「Apple R1」チップはAppleの空間コンピューティングデバイス「Apple Vision Pro」に搭載されているチップです。メインのプロセッサではなく、どちらかというと別もの。この別ものの意味も追って説明します。

役割は、各センサーの受付が主な任務となっており、Apple M2と合わせて重要な要素となっています。

Apple R2の仕様は「入力から出力の遅延が12ミリ秒」「256GB/sのメモリ帯域」となっています*1

では実際に詳細とより詳しい存在意義を見ていきます。

R1がなぜ必要か

Apple R1はハードウェアアクセラレータの一つと捉えるよりも、どちらかというとディスプレイを含めた「コントローラ」として捉えた方が正しいかもしれません。Vision Proには12基のカメラ、5基のセンサー、6基のマイクが搭載されており、それらの入力を司っているものとなっているためです。

ではなぜ、コントローラを集約しているのかというと、まずはApple Siliconの重要なポイントである1チップになるべく集約することによる設計の簡略化が挙げられます。Intel時代のMacにもコントローラを集約する動きは見られたので、Appleの設計思想的にはチップにまとめられるものはまとめて、設計をシンプルにするというのがあると思います。実際、こうすることによって、メインボード内でも部品数を減らすことができるので、より小型なデバイスを作ることも可能です。

別の理由は「現実世界を限りなく忠実に遅延なく再現するため」。

Vision Proはデバイスの性質上、視覚情報と聴覚情報という五感中2種類の感覚を完全に奪った上で、現実世界を再現します。結果として重要なのが「瞬間的に現実空間を再現する」ということ。数多の入力に対して瞬間的にそれを反映しなければなりません。遅延が体感できれば、それはVR酔いへ繋がります。

通常のプロセスだと、メインプロセッサであるM2 GPUが映像出力を行っているため、コントローラがセンサー情報を受取、M2に送られて、それを基に映像が生成され、そして出力されるというプロセスを踏みます。ただ、M2はリアルタイムのレスポンスに対応できる設計ではありません(実際になぜそうなるのかは次節参照)。

そこで入力を処理するコントローラにあたる部分が、リアルタイムレスポンスに特化した上で、実際に出力まで行うことでこの遅延を12ミリ秒と限りなくなくしているのです。ちなみに、VR酔い対策のためには、入力から出力までにかかる時間は20ミリ秒以下に抑えることが重要であるようです*2

なぜ、R1が必要なのかは

  • 設計の簡素化
  • VR酔い対策のために、入力から出力までの遅延を限りなく小さくするため

であるというお話でした。

では次に、R1ではどの様になっているのかをみていきましょう。

R1の具体的な対策

より具体的な対策を見ていきましょう。

レイヤー化

想定される形

Apple Vision Proはおそらく、背景とアプリケーションがレイヤーとなっている上で、それぞれが別系統で処理されています。

現実世界を再現した背景はR1によって生成されていますし、アプリケーションウィンドウはM2によって生成されているという予想です。そして、最終的なディスプレイへの映像出力を行っているのはR1と予想しています。つまり、M2からの出力(アプリケーション)をR1が受け取って、R1が現実世界の再現にアプリケーションの画面を重ねているということになります。

具体的なたとえでいうと、ゲームキャプチャって、例えばSwitchから映像データを受け取って、パソコンのOBSでコメント欄だとか、メッセージだとか、Webカメラだとかのオーバーレイを統合して、YouTubeに配信できますよね。あれと同じで、このときSwitchにあたるのがM2、パソコンにあたるのがR1で、OBSにあたるのがR1のシステム、オーバーレイにあたるのがVision Proでの背景、そしてYouTubeにあたるのがVision Proのディスプレイとスピーカーとなります。このOBSでは「統合」の処理を行って頭の動きや環境などに合わせて、実際の映像を生成しているということになります。

小さい遅延が重要なのは、現実世界の再現のみです。その上で動くアプリケーションについては、通常のパソコンとおなじ程度の遅延に抑えれれば問題ありません。となれば、アプリケーションのグラフィックスの生成までをM2が行い、低遅延で様々なセンサーからの情報をミックスして表示するR1がM2からのデータもセンサーと同じ様に入力として扱うことによって、Vision Proの表示を実現しているのではないかという予想です。もちろんこれは予想。もしかしたら、M2がディスプレイに出力してる可能性もないわけではないかも。

ただ、背景とアプリケーションをレイヤーとすることで、わざわざこの2つを同期させずとも実現することができると考えます。

別システム

もう一つの対策がシステム自体の分割です。先述の通り、背景とアプリケーションが別のレイヤーとなっていて、R1が最終的にミックスしているとなった場合、基本的にR1はM2からの入力さえそれを背景の上に重ねて表示しているということになります。

極論、ドライバとかの云々は置いといて、WindowsなどのvisionOS以外のOSがウィンドウだけを出力できるような改造を施してR1に転送しても、R1はvisionOSのアプリと同じようにそれを表示することが可能であると考えています(現実的に実現は困難)。

つまり、M2とR1は、ただのコンピュータとディスプレイ・スピーカーの関係であるという予想です。

先程のSwitchの例えで言うと、SwitchとOBSが動くパソコンって全くの別システムですし、SwitchはOBSをディスプレイだと思って出力してますよね。

OBS側から見ても、入力がSwitchからPS5に変わってもオーバーレイをそのままにPS5の画面を表示できます。

この例えでは、互いに別のシステムで動いているためこれが実現可能です。この設計をVision Proで実現しているのではないかという話です。

visionOSの欠点

そもそも、リアルタイムに情報を処理しなければならない場合、macOSなどをベースとしたvisionOSは不向きです。理由は、そのリソースの分配方法にあります。

visionOSやmacOS、それにWindowsやLinuxも含めますが、これらのOSは「タイムシェアリングOS」に分類されます。これらのOSでは、基本的にCPUはOSによって各プロセスに分類されます。シングルコアでマルチタスクができるのは、CPUがごくごく短い時間の間に各プロセスの処理を順番に繰り返しているからです。アニメなどで超高速で反復横跳びする場面を想像してみてください。反復横跳びしている人は1人ですが、3人に分裂しているように見えますよね。CPUもこれとおなじで、高速でプロセス間を移動しているので、一見分裂しているように見えます。

一応、割り込みなどの対策方法はありますが、基本的に新しいプロセスは他のプロセスから順番が回ってくるまでまつ必要があります。更に、このようなOSは、すべての情報をOS経由でやり取りしているため、遅延が増大します。その上、メモリ帯域もすべてのプロセス合わせて100 GB/s強と、十分といえるほどではありません。そのため、入力から出力までの遅延を低減するのは設計上不可能なわけです。

リアルタイムOS

このため、R1にはタイムシェアリングOSと実質的に対をなす「リアルタイムOS」が搭載されているはずです。リアルタイムOSの最大の特徴は「とある処理を決められた時間で完了させることができる(時間制約を保証できる)」ということ。思い切りVision Proの用途に向いていますね。

リアルタイムOSを採用することで、入力出力の12ミリ秒という制約をクリアすることが実現したわけです。

さらなる利点

リアルタイムOSは、殆どの場合、安定性をかなり重視して開発されているはずです。そして、visionOSと別系統であることから、たとえvisionOSがフリーズしようが、背景は動き続けるということになります。先程のたとえでいうと、Switchがフリーズしても、OBSは止まらないよね、ということ。

さらにさらに、オーディオもAirPods Proを使うのであれば、これまた分離されたシステムですので、visionOSの影響を受けません。

おそらく、Appleとしても視覚を乗っ取るという関係上、アプリケーションを動かすvisionOSとディスプレイの映像というのは完全に分離したいはずです。

これらを考慮すれば、今回のこの予想は割と的を得てるんじゃないか?

ちなみに、同じデバイス内で別OSが動くという前例はあり、MacBook Proに搭載されていたTouchBarは、watchOSがベースになっているそうで、動作する主体もメインのプロセッサではなく、T1/T2チップであったそう。なので、TouchBarだけフリーズする的なことがよくあったらしい・・・(M1/M2版はどうだったのかな?)。

否定的な考え

ただ、R1はなぜか、256GB/sのメモリ帯域を持っています。このメモリがどの指すかは分かりませんが、これがもりM2のユニファイドメモリであれば、システムは統合されているに近い状態(CPUとiGPUのような関係)ですが、たぶんそれは無いでしょう(メモリ帯域とメモリ仕様が一致しないため)。

オーディオレイトレーシング

過去の記事でVision Proに搭載されている「オーディオレイトレーシング」から、R1にレイトレーシングのハードウェアアクセラレータが搭載されているのではないかと予想しましたが、この考察を踏まえて、あらためて考察します。

といってもものすごく簡単で、オーディオレイトレーシング自体は環境音のみを対象としたものであるため、R1が処理するのはわかります。なので、本稿の予想が外れていないのであれば、R1にレイトレのアクセラレータが搭載されているという予想は間違っていないはずです。ただ、それは音声だけであって、ビデオを処理する必要がないからiPhone 15 ProやM3 Macのそれよりかなり脆弱であることは明確です。

たぶん合ってる。

とまあ、Apple R1を考察してみました。結構あたってると思うし、面白いチップだなぁと思いました。

Vision Pro、日本ではまだ発売されてませんが、そう遠くない未来に発売される・・・・はず。ぜひ一度つけてみたいものですね。

(以下、参考文献)