14/04/05 22:41:46.56 CAO+T7hD0
>>430
みんなすごい誤解していて、ARMの64bitがほかのCPUの64bitと違うって事を全然考えてない。
ARMはともかく32bitの出来がひどい。何がひどいか? RISCなのに汎用レジスタが16本しかない、
その内の3本はプログラム関連で使っちゃうので、汎用に使えるのはたった13本。
これで、ロード/ストアアーキテクチャのハンドリングをしなきゃならない。そうするとコンパイラが効率的なコードを吐けない。ので、コードステップが非常に長くなる。
一方64bitになると汎用レジスタが31本、SIMDメディアレジスタが32本だから、コンパイラがものすごく効率的なコードを吐けるようになる。
そういうひどいことがなくなるのが64bitのARMv8。
だから、コーディングも最適化も楽になるし、コンパイラも速くなるし、全体的に高速化できる。
開発者が最適化のために苦労しなくて良くなる。例えばARM 32bitの場合は、シフト・演算と並べると速くなるとか、変な最適化がいっぱいある。
後は割り算命令使っちゃダメだとか。だってCortex-A9までは割り算演算器がなかったから。何それ!? 一体いつのCPU? って感じでしょ?(笑)。
それから(64bitの恩恵は)セキュリティモデル。ARMのセキュリティ特権階層は、すごく変。
普通はRing0、1、2、3、セキュアバイザー、ハイパーバイザー、OS、アプリとできるけど、ARMの場合、これができない。
一方ARMv8からは4階層で、普通にセキュアなハイパーバイザーを埋め込める。おそらくiPhone 5sはそれを使ってて、指紋データをそこに入れてる。
指紋データをメモリに展開する時、セキュアメモリ空間に移すには、そういう仕組みが必要になる。
だから(よく言われる)アドレス空間(のメリット)は3番目なんですよ。
URLリンク(pc.watch.impress.co.jp)