つくりはCortex-Aそっくり! リアルタイム用途向けCortex-Rの研究

第1部
第
4章
つくりは Cortex-A そっくり! リアルタイム用途向け Cortex-R の研究
あまり聞かないけど
汎用プロセッサもなくはない
組み込み屋さんが知らないのはマズイ
つくりはCortex-Aそっくり!
リアルタイム用途向けCortex-Rの研究
中森 章
Cortex-Aコア
1サイクルでアクセス可能
Cortex-Rコア
CPUコア
CPUコア
L1命令
命令用マイクロ
キャッシュ TLB
(ITLB)
TLB MMU
L1命令
キャッシュ
データ用マイクロ L1データ・
キャッシュ
TLB
(DTLB)
内部
バス
L2キャッシュ
バス
メモリ・マネジメント・
ユニット.仮想アドレス物理アドレス変換を行う
密結合RAM
TCM
メモリ保護
ユニットMPU
L1データ・
キャッシュ
内部
バス
L2キャッシュ
バス
(a)Cortex-A
リアルタイム性を確
保するためにMMU
は使わず,CPU直結
の高速RAMが使える
ようになっている
(b)Cortex-R
図 1 Cortex-R プロセッサの基本構造…なんと Cortex-A とほぼ同じつくり!
Cortex-R コアからさらに L1 キャッシュを削除すると Cortex-M コア,というイメージ
主な特徴
● なんと! Cortex-A と Cortex-R のアーキテク
チャは基本同じ
Cortex-M シリーズと Cortex-R シリーズのプロセッ
サは組み込み分野をターゲットとしているといわれて
います.これは ARM 社も認めているところです.こ
のため Cortex-R シリーズとアプリケーション分野を
ターゲットとした Cortex-A シリーズに関連があると
思っている人は少ないと思います.
実は,知っている人は知っていて,知らない人は全
く知らないと思いますが,ARMv7-A のアーキテク
チャ・リファレンス・マニュアルは ARMv7-R,すな
わち Cortex-R と共通になっています.
つまり,Cortex-AシリーズのプロセッサとCortex-Rシ
リーズのアーキテクチャは基本的に同じです.Cortex-A
シリーズでいえることは,Cortex-Rシリーズにもいえます.
● Cortex-A と Cortex-R の最大の違いは MMU
の有無
それでは,ARMv7-A と ARMv7-R の違いは何かと
2014 年 7 月号
いうと,それはリアルタイム性にあります.Cortex-R
の「R」は Realtime の R です.このリアルタイム性の
差異を一言でいうと,MMU があるかないかです.
MMU が存在すると,MMU 用のキャッシュ(TLB)
ミスが発生した場合,ページ入れ替えのためのメモ
リ・アクセスが発生します.これにより,プログラム
の処理時間や応答時間が変動してしまいます.
モータ制御などの厳格なリアルタイム性を要求される
応用分野では,プログラムの処理時間の変動が処理の
遅れに直結し,致命的な事態を生じる恐れがあります.
そ の た め に,Cortex-R シ リ ー ズ で は Cortex-A シ
リ ー ズ か ら MMU が 削 除 さ れ, 代 わ り に MPU
(Memory Protection Unit)というメモリ保護機能が
搭載されています.
Cortex-Rシリーズの基本的な構造を図1に,特徴を
表1に示します.
● MMU 以外のリアルタイム処理用機能
ところで,キャッシュ・ミスの場合もキャッシュ・
ラインの入れ替えのために処理時間の変動が発生しま
す.Cortex-R では,処理時間が変動すると困るプロ
グ ラ ム は,TCM(Tightly Coupled Memory)と 呼 ば
57