このページの本文へ

前へ 1 2 次へ

Apple Geeks 第128回

「iPhone 5s」の64bit CPU採用が意味するもの

2013年09月13日 11時00分更新

文● 海上忍(@u_shinobu

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

64bit化でiPhoneはこう変わる(?)

 ハードウェアとしての64bit環境は、肝心の本体を入手しなければ検証しようがないが、アプリ実行環境は経験則である程度推測できる。システムおよびアプリの64bit化がどのような変化をiPhoneにもたらすか、ざっくりまとめてみよう。

 まずは互換性の問題だが、これは心配無用だろう。OS Xのバイナリフォーマット「Mach-O」(マーク・オー)は、単一ファイルに異なるアーキテクチャの命令を収録でき、実行環境に応じて使い分けられる(ユニバーサルバイナリ)。LeopardやSnow Leopardのときは、PowerPCからIntelアーキテクチャへの移行期と重なったため、PowerPCのサポートを継続しつつ64bit化を推進する(計4アーキテクチャ)という離れ業をやってのけたが、ユニバーサルバイナリなのでユーザーの目には単一のファイル/アプリにしか映らなかった。Apple A7は32bitバイナリーをそのまま実行できるため、大半のアプリはユニバーサルバイナリの体裁をとる必要はなさそうだが、パフォーマンスを落とさず互換性を維持できる心強い機構がiOSにはあるのだ。

OS Xでシステムフレームワークを調べると、その多くが32bitと64bitのユニバーサルバイナリであることを確認できる

 システムメンテナンスも、おそらく従来どおりだ。OS Xが32bit環境から64bit環境へ移行するときには、ドライバ類(KEXT)とシステムフレームワーク(ライブラリ)をユニバーサルバイナリ化することから始まった。カーネルもユニバーサルバイナリ化されていたが、システムの安定性を重視するAppleは、ドライバ類の64bit対応が落ち着くまで32bitモードをデフォルトとしていた。しかし、iOSではすべての開発リソースをAppleが抑えているわけだから、そのような移行期間は必要ないうえ、端末ごとに専用のインストールイメージを用意することも可能だ。おそらくiPhone 5sでは、最初から64bitモードのカーネルが動作するのだろう。32bitアプリの実行に備えフレームワークはユニバーサルバイナリだろうが、ドライバや標準装備のアプリは64bitバイナリのみと考えられる。

 App Storeで配布されるアプリだが、パフォーマンスを重視するアプリはApp Store内部に32bit版と64bit版を用意しておく方法も考えられる。しかし、アプリ容量におけるバイナリファイルの占める割合の低さ(大半は画像などのリソースファイルだ)からすると、そのようなアプリはユニバーサルバイナリで対処するはず。実際のところ、Appleがどのような形式を採用するかはわからないが、ユーザが32bitアプリか64bitアプリかを意識する場面は少ないのではないだろうか。



前へ 1 2 次へ

カテゴリートップへ

この連載の記事

ASCII.jp RSS2.0 配信中