2008-06-03

ARMでもFirefoxがコンパイル可能だけど

ARMのマーケティング側の人間からはFlashもFirefoxも動くという話はでるが、それは正しい。Mobileで考えてもFlash Lite 3がNokiaのS60 (CPUはARM) でも動いているし (Nokia Web Browser上で、YouTubeを見ることができる)、N800/N810もOSは、LinuxだけどFlash動くし。(日本の携帯電話だって、大多数がARM系なんだしね)。FirefoxもARM Linux (というか、N800/N810に乗っているWebブラウザって、今はFirefox 3ベースのもの)でも動く。

ただ、ARM用の最適化なんてしてないけど。

Intelがしきりに優位性を話すx86のプラットフォームだと、いくつかのレイヤーに対しての最適化が入ってる。

  • Cairo 1.6のpixmanにおけるMMX最適化。SSE2の最適化は次のバージョン
  • SSL等に使われるnss/freebl。mpiのコードは、x86/x86_64はアセンブラで高速化を図っている。GCCプラットフォームだとSSE2も使ってる

Firefoxにおけるx86最適化の部分はこれだけ。後はコンパイラがどういう風にコードを吐けるかがポイント。ほかのブラウザを考えてもその最適化は似たり寄ったりだけどね。ARMとx86のコードにおけるポイントは、コンパイラによるところが大きい。ARMだとatomic系の実装が面倒というのもあるけどさ。

世の中のインターネットデバイスで必要とされているものって、Flashサポートと各コーデック(h264など)くらいだから、どのCPUであってもパワー効率がよければどれ選んだって構わないと思う (Windows Mobileというか、Pocket PCがARMになったのもiPAQがヒットしたおかげで、ARM以外やらねぇって決めただけの話だし)。コーデックに関してはDSP経由でやれば、ARM上だってそこそこ速いんだけど (今のTIのプラットフォームなんてDSP込みみたいなもんだし)、情報がなさすぎだし、ARM上でのプラットフォーム間の互換性の問題にぶち当ってコストに跳ね返る。どっちもどっちだな。。。

0 件のコメント: