このページの本文へ

前へ 1 2 3 4 次へ

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

ARM11から最新CPUまで ARM系プロセッサーの仕組み

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

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

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

 ARM編第1回の前回で、おおまかなロードマップと製品の特徴は説明した。今回はもう少し細かく、アーキテクチャーの特徴などを説明していきたい。

 といっても、ARMプロセッサーは何しろ種類が多い。そこで話をアプリケーションプロセッサーに限り、「ARM11」以降の話をしよう。

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

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

大きな改良とともに登場した ARM11

 ARM11のベースとなる「ARM v6」アーキテクチャーが発表されたのは、2001年10月に開催された半導体業界イベント「Micro Processor Forum(MPF) 2001」でのことだ。当時の発表資料を見ると、ARM v5からの改善事項として以下の項目が挙げられている。

  • キャッシュアーキテクチャーの改善
  • SIMDの搭載
  • 命令セットの改善
  • SoC/マルチプロセッサー向けの改良
    (同期メカニズムの搭載や新メモリーモデルのサポート)

 具体的にはバイエンディアンのサポート※1や、「Unaligned Memory Access」の対応※2、1次キャッシュのサポート(ARM v5までキャッシュは1階層)、「VMSA(Virtual Memory System Architecture) v6」の搭載などの項目が並んでいる。
※1 それまでのARMはリトルエンディアンのみサポートしていたが、ARM v6からLリトルエンディアン/ビッグエンディアンの両方をサポートするようになった。
※2 ARM v5までは、メモリーアクセスは必ず4byte単位だったが、v6から2/1byte単位のアクセスも可能になった。

 もっとも、2001年に発表されたのはあくまでも命令セットであるARM v6のみ。これを実装した最初のARM11コアである「ARM1136J-S」「ARM1136JF-S」の発表は、2002年10月に開催された「MPF2002」となった。

 ARM1136J-Sの内部構造は、図1のようになっている。CPUコアについては後述するが、その両側に命令/データの1次キャッシュと「TCM」がそれぞれ配されている。TCMとは「Tightly Coupled Memory」の略で、簡単に言えばCPUから極めて高速(ほぼ1次キャッシュと同じレイテンシ/バンド幅)でアクセスできるメモリーである。

図1

図1 ARM1136J-Sの内部構造(MPF2002資料より引用)

 「それならキャッシュでいいだろう?」という声が聞こえそうだが、キャッシュの場合、基本的にはハードウェアが勝手にFill/Retireをしてしまう(プリフェッチ命令などを使い、ある程度明示的に制御することも不可能ではないが)。そのため、例えばリアルタイム制御における割り込みハンドラのような、「キャッシュミスを起こすとそれだけで処理がタイムアウトする」ような性能に厳しい処理の場合、キャッシュに頼らずに確実にプログラムのロード(フェッチ)ができる方法が必要になる。

 こうしたケースで役に立つのが、キャッシュ並みに高速なメモリーである。サイズそのものは小さいから(構成によるが、後述の例では16KB)、大きな処理ロジックを載せるには不向きだが、割り込み処理ルーチンくらいなら楽に搭載できる。これはデータ側のTCMも同じだ。例えば周辺機器と高速にデータ入出力を行なう必要がある場合、通常のメモリー経由では余分にレイテンシが掛かってしまう(メモリーから一度キャッシュを経由するため)。しかし、外部からTCMにそのままDMA転送でアクセスすれば、キャッシュを経由しない分少ないレイテンシーでアクセスできるわけだ。

 TCMに類するものは、例えばMIPS系であれば「ScratchPad」と呼ばれるメモリーが利用できる。PowerPC系にはTCM/ScratchPadはないものの、「Cache Stashing」(CPU外部から直接キャッシュの内容を書き換える)という機構を持ったものがあり、これでData TCMの代替が可能である。

 こうした特長は、当時はまだARM11がアプリケーションプロセッサーよりもコントローラー的な用途に使われるケースが多いと、想定されていたことに起因すると考えていいだろう。ほかにも、図1左上には割り込みコントローラ(Interrupt Vector Port)、右上にはコプロセッサー用のインターフェースが用意されている。単にCPUだけではなく、さまざまなコプロセッサーと組み合わせて使うことを当初から想定してあるあたりは、単なるアプリケーションプロセッサーとは大分異なる。

 もっとも、搭載するのはあくまでもキャッシュとTCMだけで、肝心のメモリーやメモリーコントローラーを内蔵しないあたりは、コントローラーというよりもプロセッサー向けの構造といえる。

前へ 1 2 3 4 次へ

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

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

ピックアップ

ASCII.jp RSS2.0 配信中

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