このページの本文へ

リアルタイム向けのARMv8、「ARMv8-R」が発表

2013年11月02日 19時45分更新

文● 塩田紳二

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

 ARM社は米サンタクララ市で開催した「Tech Conference 2013」において、新アーキテクチャとなるARMv8-Rを発表した。ARMv8-Rは、ARMv7-Rの拡張となるアーキテクチャで、ハードウェアハイパーバイザーを装備したリアルタイム向けプロセッサのアーキテクチャとなる。

ARMv8-AアーキテクチャとARMv8-Rアーキテクチャの比較。ARMv8-Aは64bitモードと32bitモードを持つが、ARMv8-Rアーキテクチャは32bitモードのみを持つ

 ARM社のプロセッサのアーキテクチャ(プログラムから見たプロセッサの仕様)には、現行の32bitプロセッサのARMv7があるが、このアーキテクチャからプロセッサ用途向けに3つのプロファイルが定義されている。

A:アプリケーションプロセッサ R:リアルタイム処理向け M:組み込み向け

 なお、ARMv8-Rなどのアーキテクチャは、命令セットや動作、レジスタなどを定義するだけであって、具体的な製品ではない。ARM社によるプロセッサの設計が現在行われていて、のちに具体的な製品が発表されることになると思われる。

 ARMv8-Rは、リアルタイム処理向けのプロセッサ仕様のバージョン8という意味になる。ARM社は、すでにAプロファイル向けの64bitアーキテクチャであるARMv8-Aを発表しており、具体的なプロセッサとしてCortex-A53、A57が開発中だ。このARMv8-Aには、従来のARMv7互換のAArch32と、64bitプロセッサ仕様のAArch64が含まれている。

 これに対してARMv8-Rには、AArch32のみで、64bit仕様は含まれない。これは、現時点では64bit仕様が必要な利用場面がないからだという。

車載機器などの組み込み用途でも
GUIなどの高い処理性能が求められるように

 リアルタイム処理とは、なんらかのイベントに対して一定時間内に応答することが要求される応用分野で、機械制御など、組み込み系分野の1つだが、比較的高い処理性能が要求される分野でもある。ARMv7-Rは、ARMv7-Aから仮想メモリ機構と仮想マシン支援機能を抜いたものとして定義されていた。これは、システムの応答性を高めるために仮想メモリなどを使った場合の遅延(たとえば、必要なプログラムがメモリ内にないかもしれない)を起こさないためだ。

 ところが、車載機器などでは、リアルタイム性が高い処理が多い一方で、最近ではタッチパネルなどを装備しユーザーインターフェースなどが必要な場面が増えてきた。このとき、アプリケーションプロセッサを別に持つことは、コストやフットプリントという点で不利になる。

 ARMv8-Rはこうした機器の要望に応えるものだ。簡単にいうと、ARMv8-Rのプロセッサは、ハードウェアによるハイパーバイザーを備え、リアルタイム実行環境とARMv7-A互換の実行環境があり、リアルタイムOSと一般的なGUIなどを備えるOSの両方を1つのプロセッサで実行できる。前者は、制御用などに使われ、後者はGUIやネットワーク通信などを担当する。

ARMv8-Rアーキテクチャの最大の特徴は、ハードウェアによるハイパーバイザーを持ち、リアルタイムOSを含むゲストOSを複数動作させることが可能な点。ハードウェアによるハイパーバイザーであるため、仮想マシン環境でもリアルタイム性を確保できる

 ハードウェアによるハイパーバイザーを装備したのは、リアルタイム性を確保するためだと思われる。一般的なソフトウェアによるハイパーバイザーでは、割り込みが発生してから必要なオペレーティングシステムを起動するまでの時間が不定で、リアルタイム性を確保するのが困難になるからだ。

 もう1つの拡張点は、メモリ保護機構が入ったことだ。ハイパーバイザーにより、複数のゲストOSが動作するようになることなどから、お互いの領域を厳密に分離する出てきた。また、仮想マシン環境を使うため、それぞれに仮想的な物理メモリ空間を提供する必要がある。ARMv7-Rでも、メモリ保護機構を持っており、そのアーキテクチャはPMSAv7(Protected Memory System Archtecture Version 7)だったが、ARMv8-Rでは、オペレーティングシステムが直接扱うPMSAv7互換のStage-1 Memory Protection Unit(MPU)と、さらにハイパーバイザーが管理し、各仮想マシン環境(ゲストOS)に仮想的な物理メモリ空間を提供するためのStage-2 MPUを持つ。これをPSMAv8と呼ぶ。

もう1つの特徴は、その仮想マシン環境がARMv7-A互換にできる点。これにより、1つのプロセッサでリアルタイムOSとGUIやネットワーク機能を持つRich OSを動作させることができる

 また従来のARMv7-R準拠のプロセッサでは、割り込みコントローラー(GIC。Generic Interrupt Controler)をCPUコア外にもっていたが、仮想化するためには、この割り込みコントローラーもハイパーバイザーが管理する必要がある。このため、ARMv8-Rには、GICのレジスタも統合される。アーキテクチャの定義というレベルでは、割り込みコントローラーのレジスタが統合されるということに止まるが、実装では、割り込みコントローラーは、コアに組み込みになるはずだ。

ARMv8-Rは、ARMv7-Rを含み、さらにVMSA(仮想メモリ環境)や仮想マシン環境、割り込みコントローラーなどを統合する

ゲストOSには、従来のARMv7と同じメモリ保護ユニット(Stage-1 MPU)が見えているが、実際の物理メモリのアクセスは、ハイパーバイザーが管理するStage-2 MPUが間に入って、実際の物理メモリとの対応を付ける

 ARMv8-Rは、64bitアーキテクチャではないが、リアルタイム性のある応用と、今後の機器が必要とするであろう、GUIやネットワーク機能を持ったオペレーティングシステム(Rich OS)の実行を可能にしたため、たとえば、車載機器などでの応用が考えられる。

カテゴリートップへ

注目ニュース

ASCII倶楽部

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

ピックアップ

ASCII.jp RSS2.0 配信中

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