ARMv7アーキテクチャ
まだARMのサイトにあるアーキテクチャを読めていない。とりあえず日本語のニュースサイトからざっと概略を見ている。
ARMv7のマルチプロセッサ拡張
http://pc.watch.impress.co.jp/docs/2007/0530/mpf06.htm
ARMのテクニカルリファレスは以下のものがあるが、登録せずに読めるのはARMv7-Mだけのようだ。
- ARMv7-M
- ARMv7-AR
3つの違いはv7MはThumb2だけしかサポートしていない。A(Application)とR(Realtime)は同じアーキテクチャ。
ARMv7 A/Rで押さえておく必要があるのはマルチコア機能を強化するMP Extensions。これにより仮想化ができ、複数OS同時に実行できる。MP Extensinsがするのは
- キャッシュの一貫性維持
- 通信機能の強化
- プロセッサ情報交換
- マルチコアでの効率的なParavirtualization
とのこと。
CPUコアがキャッシュにアクセスする時、共有キャッシュに対応するメモリアドレスに変更がないかを調べるのをスヌープといい、Cortex-A9ではSCU(Snoop Control Unit)が担当する。
ハードとしてどのようにサポートしているのかというと、メモリアドレスとキャッシュを対応させるタグメモリを持っていて、何がキャッシュされているのかを把握しているのだそうだ。これによりコアからL2キャッシュやメインメモリへのスヌープの回数を減らすことができ速度が上がる。