この分野でも混乱が多いので、「64ビット」が言及していないことを指摘することも重要です。特に「64ビット」 含まれていません :
- 物理RAMアドレスサイズ実際にRAMと通信するために使用されるビット数(したがってハードウェアがサポートできるRAMの量)は、CPUのビット数の問題から切り離されています。 ARM CPUは26ビットから40ビットの範囲であり、これは他の部分とは無関係に変更できます。
- データバスサイズRAMまたはキャッシュからフェッチされるデータ量も同様に分離されています。個々のCPU命令は一定量のデータを要求することがありますが、実際にフェッチされるデータ量は、フェッチをより小さな部分に分割することによって、または必要以上にフェッチすることによって、独立している可能性があります。 iPhone 5はすでに64ビットのチャンクでメモリからデータを取得しており、PCの世界では最大192ビットのチャンクサイズが存在します。
- 浮動小数点に関連するものすべて。 FPUレジスタサイズと内部設計は独立しており、ARM CPUはARM64よりかなり前から64ビットのFPUレジスタを持っていました。
「64ビット」のA7は単なるマーケティングのギミックではありませんが、新しいクラスのアプリケーションを可能にする画期的な製品でもありません。真実は、しばしば起こるように、その間にあります。
64ビットに移行するという単純な事実はほとんど役に立ちません。場合によってはやや速い計算、ほとんどのプログラムではやや高いメモリ使用量、そして特定のプログラミング手法の実行可能性を高めます。全体として、それほど大きな意味はありません。
ARMアーキテクチャは、64ビットへの移行において他の多くの要素を変更しました。レジスタ数の増加と合理化された命令セットの改訂により、32ビットARMよりもパフォーマンスが大幅に向上しました。
Appleはこの移行を利用して独自の変更を加えました。最大の変更はインライン保持カウントです。これにより、一般的なケースで保持および解放操作のためにコストのかかるハッシュテーブル検索を実行する必要がなくなります。これらの操作はほとんどのObjective-Cコードで非常に一般的なので、これは大きな勝利です。オブジェクト単位のリソースクリーンアップフラグを使用すると、特定の場合にオブジェクトの割り当て解除がかなり速くなります。全体として、オブジェクトを作成および破棄するためのコストは、おおよそ半分になります。タグ付きポインタは、メモリ使用量の削減と同様に、パフォーマンスの向上にも役立ちます。