このページの本文へ

前へ 1 2 3 次へ

ARM TechCon 2011レポート Vol.1

省電力型と性能追求型、2つのコアでスマホを進化させるARM

2011年10月29日 12時00分更新

文● 塩田紳二

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

CPUの負荷に応じて、仮想化された2つのコアを
高速で切り替える「big.LITTLE Task Migration」

 さて、2つのコアを切り替えるbig.LITTLE Task Migrationだが、Cortex-A15/Cortex-A7では、ぞれぞれのブロックで2次キャッシュを共有し、この2次キャッシュ間をCCI-400(Cache Coherent Interconnect)で接続して、「同一性」(コヒーレンシ)を保つようにしてある。

big.LITTLE Processingをする場合のハードウェア構成。SoC(System on Chip)内でCCI-400インターコネクトにより、Cortex-A15とCortex-A7のブロックを接続する

 また、仮想化支援機能では、仮想マシンとして動作しているプロセッサーの内部状態を完全にメインメモリへ保存することができる。big.LITTLE Processingは、この機能を利用する。

 たとえばCortex-A15からCortex-A7に切り替える場合、動作中のCortex-A15がCortex-A7を起動させる。Cortex-A7が起動すると、Cortex-A15はプロセッサー状態を完全に保存する。これをCortex-A7が読み込んで状態を復帰させ、Cortex-A15が実行中だった処理を継続する。

Task Migrationによる切り替え過程。右側が切り替え元のプロセッサー(Outbound Processor)で、左側が切り替え先のプロセッサー(Inbound Processor)。切り替えが開始されると、切り替え先のプロセッサーが起動し、準備ができた段階で、切り替え元がプロセッサー状態をセーブ、これを切り替え先プロセッサーがロードすることで、処理が再開される。切り替え元はキャッシュが同一になるまで待ち、その後電源をオフにする

 このとき両方の2次キャッシュは、同一性が保たれるようにコピーが行なわれる。双方のキャッシュの同一性が保たれたあと、Cortex-A15は、キャッシュをクリアし、自身の電源を切る。逆に、CPU負荷があがり、Cortex-A7では手に負えなくなりそうになると、Cortex-A7が休み、Cortex-A15が動きはじめる。

 この切り替えは、仮想化システムでの「マイグレーション」(動作中の仮想マシンを他のマシンで動かすこと)に似ている。仮想化システムのマイグレーションは、通常システム障害などで行なわれるものだが、big.LITTLE Processingでは、これを負荷状態を条件に切り替え、システムの電力効率を高めるために使っている。

 切り替え(ブラックアウトタイム)は20μs以下とされているがデバイスの状態などにより、一定の値ということではなく、最悪値として20μs程度ということであると推測される。

 このbig.LITTLE Task Migrationでは、仮想化機能でいう「ハイパーバイザー」に相当するものはARM社から供給され、OSやアプリケーション側は、特に対応は必要ないとされている。またbig.LITTLE MPについては、Linuxのスケジューラーに手を入れたものを提供する予定だという。


■関連サイト

前へ 1 2 3 次へ

カテゴリートップへ

注目ニュース

ASCII倶楽部

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

ピックアップ

ASCII.jp RSS2.0 配信中

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