このページの本文へ

前へ 1 2 3 次へ

ロードマップでわかる!当世プロセッサー事情 第82回

スマートフォンを席巻するARMプロセッサーの歴史

2010年12月20日 12時00分更新

文● 大原雄介(http://www.yusuke-ohara.com/

  • この記事をはてなブックマークに追加
  • 本文印刷
ARMプロセッサーのロードマップ概要

ARMプロセッサーのロードマップ概要

拡張命令を自由に選べる柔軟な構造

 話が前後するが、あらためてロードマップ図の見方を説明しよう。ここまでに何度か書いたとおり、ARMのアーキテクチャーは複数のバージョンが存在する。広く使われるようになったのはARM6/ARM7の「ARM v3」からで、その後「ARM v4/v5/v6」を経て、最新バージョンは「ARM v7」となっている。

 基本的には、バージョンが進むに従って新命令や新しいメカニズムなどが追加されていくが、後方互換性は完全に保たれており、またある程度の新命令は拡張命令という形でオプション扱いされる。最初のオプション命令は、ARM v4で登場したThumb命令で、これは命令フォーマットを縮めることで、16bit命令と同等のサイズで32bit命令が実行できるという「縮小命令」だ。特にプログラムサイズに厳しいマイコン用途で多用されている。

 「DSP命令」はCPUコアにDSP風命令を利用できるようにしたものである(DSPそのものは実装していない)。実はARMは2004年に、「OptimoDE」と呼ばれるVLIWベースのDSPコアの提供を開始していた。だが、2007年あたりからOptimoDEの名前を聞かなくなったことからすると、あまりうまくいかなかったようだ。最近になってCortex-M4コアにDSPを統合しているが、これはOptimoDEとは別で、既存のDSP命令と互換性のある機能の模様だ。

 これに続いて登場したのが「Jazelle」で、これは「Java命令」(Java VM)を高速に実行するための命令拡張である。最後に登場したのは「SIMD命令」で、当初は64bit幅の「SIMD」(インテルのMMXと同レベルのものだが、当然命令に互換性はない)がサポートされ、ついで「NEON」という64/128bitのSIMD演算命令がサポートされた。

 また上述のとおり、このほかにもFPU命令(VFP命令)や「TrustZone命令」といった拡張命令が、オプションで提供される。前者はベクタ型浮動小数点演算、後者はセキュアなアドレス空間を提供するというものである。

 これらの拡張命令は、搭載する/しないを任意に選ぶことができる。例えばARM9Eの場合、ARMのこのページでは「ARM926EJ-S」「ARM946E-S」「ARM968E-S」の3つのコアが掲載されている。数字の後ろの「E」はDSP拡張、「J」はJazelleを示している。つまり、この3つのコアはいずれもDSP拡張命令を搭載しているが、Jazelleが使えるのはARM926EJ-Sのみ、というわけだ。

 どんな拡張命令を搭載するか、内部の機能/キャッシュ容量や、構成/TCM※2の有無/デバッグ機能/etc...を選ぶかは、ARMからプロセッサーライセンスを受けたメーカーが実際にこのコアを使った製品を作るときに、自由に選べるようになっている。
※2 Tightly-Coupled Memory:密結合メモリ。プロセッサー内に置く高速アクセス可能なメモリー。キャッシュとは用法が異なる。

 全部の機能をてんこ盛りにすれば、性能は上がるが消費電力も増えるし、ダイサイズが増えるので原価も上がる。一方で、最小限にすれば消費電力もダイサイズも減り、原価も下がるが性能や使い勝手に難が出る。各社は使い方を睨みながら、自社製品に搭載するARMコアの構成を決めている、というわけだ。

前へ 1 2 3 次へ

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン