Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
排他動作する⾮均質マルチコアプロセッサとそのリアルタイムOSの実装
⾼瀬 英希 李 景洙 ⽯原 亨(京都⼤学)
1
Agenda• はじめに• 諸準備
− 動的電圧・周波数制御− 排他動作する⾮均質マルチコアプロセッサ
• マルチパフォーマンスプロセッサの設計• 電⼒管理機能を持つリアルタイムOSの実装• 実チップによる実機評価• おわりに
2
Agenda• はじめに• 諸準備
− 動的電圧・周波数制御− 排他動作する⾮均質マルチコアプロセッサ
• マルチパフォーマンスプロセッサの設計• 電⼒管理機能を持つリアルタイムOSの実装• 実チップによる実機評価• おわりに
3
研究背景• 組込みシステムにおける消費エネルギー最適化の必要性
− IT器機の総消費電⼒量の爆発的増加への対応
4出典:経済産業省 グリーンIT推進協議会
消費エネルギー最適化のアプローチ
5
動的電圧・周波数制御 ⾮均質マルチコアプロセッサ
• 電源電圧と動作周波数を動的に変更する− 汎⽤PC向けでは普及
• 設計コストや切替のオーバヘッドが⼤きい
• リアルタイム性の保証が困難
• ⾼性能コアと省電⼒コアを排他的に動作させる− ここ1〜2年の提案技術
• ⾼いエネルギー効率を達成
組込みリアルタイムシステムには不向き
効率的な制御⼿法は確⽴されていない
研究⽬的・内容• 研究⽬的
− 排他動作する⾮均質マルチコアプロセッサの実チップへの設計− 組込みリアルタイムシステム向けの効率的な制御⼿法の確⽴
• 研究内容− マルチパフォーマンスプロセッサの設計動作CPUコアと命令キャッシュのウェイ数を切替可能商⽤65nm CMOSプロセスによりチップ試作
− ⾮均質マルチコアプロセッサ向けの電⼒管理機能の実装リアルタイムOSの機能拡張により実現
− 実チップによる有効性の評価
6
Agenda• はじめに• 諸準備
− 動的電圧・周波数制御− 排他動作する⾮均質マルチコアプロセッサ
• マルチパフォーマンスプロセッサの設計• 電⼒管理機能を持つリアルタイムOSの実装• 実チップによる実機評価• おわりに
7
• DVFS: Dynamic Voltage and Frequency Scaling• ⻑所:電圧の2乗に⽐例したエネルギー削減効果• 短所:
− DC-DCコンバータのオーバーヘッドが⼤きい− 広範囲の電圧条件でのテストが必要でタイミング保証が困難− 低電圧動作時のエネルギー効率が低い
動的電圧・周波数制御
8出典:[7]
||221 DDDD
MAXTRAN VV
ICt
||)1( 22
21 DDDDTRAN VVCE
C=100μF、IMAX=1A VDD1=1.0、VDD2=0.68 tTRAN=64μs, ETRAN =4.6μJ
典型的には0.9程度
[7] Burd, T. and Brodersen, R. W., ISLPED, 2000.
商⽤のDVFSプロセッサ
9
Processor 電源電圧(V) 電圧切替時間Transmeta Crusoe 1.1V – 1.65V 300μs
AMD Mobile K6 0.9V – 2.0V 200μs
Intel PXA250 0.85V – 1.3V 500μs
Compaq Itsy 1.1V – 1.6V 189μs
TI TMS320C55x 1.1V – 1.6V 3.2ms (1.6V → 1.1V)300μs (1.1V → 1.6V)
UCB[7] 1.2V – 3.8V 520μs
⾮常に⼤きな電圧切替時間がリアルタイム制御を困難に[6]
[6] Shin, D. and Kim, J., IEEE Trans. on CAD, 2005.[7] Burd, T. and Brodersen, R. W., ISLPED, 2000.
DVFSプロセッサの課題• 動作電圧に依存してクリティカルパスが変わる
− 1.2Vで最適化した回路は0.7Vでは最適とは限らない
10
05101520253035404550
1.2 1.0 0.8 0.6
nor4Inverter
動作電圧
Norm
aliz
ed P
ropa
gatio
n De
lay
0.68Vでキャラクタライズしたライブラリで合成
0.52Vでキャラクタライズしたライブラリで合成
1.0Vで設計した回路のパス遅延特性
30%
34%
⾮均質マルチコアプロセッサ• 命令セットの同じ⾼性能コアと省電⼒コアを状況に応じて排他的に動作させる− ピーク時の性能を保証しつつ平均消費電⼒を削減− 各CPUコアの設計を⽬標性能に合わせて最適化可能
• 実製品における例− NVIDIA社 Variable SMP− KnightShift− ARM社 big.LITTLE Samsung社 Exynos 5 Octa
11
⾮均質マルチコアプロセッサ• NVIDIA社 Variable SMP[2] • KnightShift[5]
12[2] NVIDIA Corp., White Paper, 2012.[5] Wong, D. and Annavaram, M., MICRO-45, 2012.
⾮均質マルチコアプロセッサ• ARM社 big.LITTLE[3]
• Samsung社 Exynos 5 Octa[4]
− ODROID-XU− Arndale Octa Board
13[3] Jeff, B., White Paper, 2012.[4] Shin, Y. et al., ISSCC, 2013.
• アーキテクチャ上の問題点− 両コア間のタスクマイグレーションはオーバヘッド⼤− L1キャッシュまたはローカルメモリはコアごとに搭載キャッシュのミスヒットにより性能が悪化する可能性がある
⾮均質マルチコアプロセッサ
14
CPU-core1cache SPM
CPU core 1 CPU core 2
タスク移動
エネルギーと遅延のオーバ
ヘッド⾼性能・⾼電⼒ 低性能・低電⼒
CPU-core2cache SPM
task1 task2 task3
Agenda• はじめに• 諸準備
− 動的電圧・周波数制御− 排他動作する⾮均質マルチコアプロセッサ
• マルチパフォーマンスプロセッサの設計• 電⼒管理機能を持つリアルタイムOSの実装• 実チップによる実機評価• おわりに
15
マルチパフォーマンスプロセッサ[1]
• MPP: Multi-Performance Processor• 命令セットアーキテクチャが同じ複数のCPUコアを搭載
− 同時には1つのCPUコアのみを稼働• 各CPUコアを特定の電源電圧に最適化• キャッシュサイズを動的に変更可能(1-way〜4-way)• ⾯積オーバーヘッドは⼤きい
16[1] Oyama, Y. et al., COOL Chips X, 2007.
L1-cache
CPU core
CPU core
L2 cache
Processor cores L1キャッシュはCPUコア間で共有
1.2V
0.7V
MPPの設計• 東芝のMePに基づき商⽤の65nmプロセスで設計• 1.2V条件と0.7V条件でライブラリをキャラクタライズ• 上記ライブラリで各コアを200MHzと100MHzに最適化
17
GBIDMAC
Glob
al B
us
8KB
4KB
D-SPM
I-SPM
I-cache4-way
50MHz
Tag2KB2KB2KB2KB
4KB
200MHzCPUcore
8KB
0.7V
(bas
ed o
n AH
B) 1.2V
1.2V
PLL
100MHzCPUcoreGBI
DMAC
Level Shifter
1.2V レイアウト図
MPPの消費電⼒
18
# cacheways
200MHzモード 100MHzモード
DCT実⾏時の消費電⼒Po
wer
Con
sum
ptio
n [m
W]
4-way 1-way4-way 1-way
電圧切替オーバーヘッド
19
• 32本の専⽤レジスタの値は専⽤バス経由で転送− 遅延は1サイクルのみ
• 28本のレジスタの値はスタック経由で転送− 汎⽤レジスタ15本− 制御バスレジスタ13本(タイマ,割込み関連)
• その他のレジスタはコア切替後にフラッシュ
100MHz0.7V
CPU core
200MHz1.2V
CPU core
Dedi
cate
d Bu
s
切替時間 約1.5μsSt
ack
(scra
tchpa
d me
mory) 切替エネルギー 約10nJ
Leve
lsh
ifter
Leve
lsh
ifter
MPP
極⼩オーバヘッドで切替細粒度のタスク内切替に適⽤可能
Agenda• はじめに• 諸準備
− 動的電圧・周波数制御− 排他動作する⾮均質マルチコアプロセッサ
• マルチパフォーマンスプロセッサの設計• 電⼒管理機能を持つリアルタイムOSの実装• 実チップによる実機評価• おわりに
20
既存の制御⼿法• OSまたはそれより下位のドライバによる電⼒管理
− 負荷分散型のタスクスケジューリング⽅式:割付プロセッサを切替え− プロセッサの負荷変動に応じてCPUコアも切替えあるタスクがどのCPUコアで実⾏されているかは不定
21
Pro: アプリケーションの設計負荷が⼩さくなるCon: 実⾏時間の解析が困難になる
core11
task1 task2 task3
⾼性能・⾼電⼒ 低性能・低電⼒
core12
core13
core21
core22
core23
OS/driver
core23
core11
core13
core21
task2
要件と実装⽅針• 組込みリアルタイムシステムに適したMPPの電⼒管理⽅法
− 機能分散型のシステムに対応できること− リアルタイム性の確保が容易であることタスクの実⾏時間の解析がしやすいこと CPU切替・マイグレーションに伴う性能の悪化を抑⽌できる
22
タスクと動作構成の情報の対応付け実⾏されるタスクに応じて
プロセッサの動作構成を切り替える設計者がタスクと動作構成の
対応を明⽰的に指定する
実装⽅針• MPPにおけるプロセッサの動作構成
− 稼働させるCPUコア:High-speed CPU / Low-power CPU− 命令キャッシュの容量(稼働させるウェイ):way-1,2,3,4データSPMの特定アドレス上で現在の動作構成値を管理
• TOPPERS新世代カーネルの機能拡張による実装− タスク管理情報の拡張− 電⼒管理APIの提供
23
リアルタイム性の向上
タスク管理情報の拡張• タスク管理ブロック(TCB)の拡張
− config− p_tinib->iconfig型はCFG(符号付き整数)
• CRE_TSKの仕様変更
• ディスパッチャの機能変更− タスクのディスパッチ直前に対象タスクの p_tcb->config を参照− 現在の設定値と異なっていれば,プロセッサの動作構成を切替え
24
・・・・
TCB*p_tinib
config・・・・
TINIB
iconfig
CRE_TSK(ID tskid, { ATR tskatr, intptr_t exinf, TASK task, PRI itskpri, SIZE stksz, STK_T *stk, CFG iconfg })
電⼒管理API
25
※set_cor(), set_ica()も実装
set_cfg タスクの動作構成の変更
【C 言語API】ER ercd = set_cfg(ID tskid, CFG config)
【パラメータ】
ID tskid 対象タスクのID番号
CFG config プロセッサの設定値
【リターンパラメータ】
ER ercd 正常終了(E_OK)またはエラーコード
【エラーコード】
E_CTX CPUロック状態からの呼出し
E_ID 不正ID番号(tskid が不正)
E_PAR パラメータエラー(config が不正)
電⼒管理API
26
get_cfg タスクの動作構成の参照
【C 言語API】ER ercd = get_cfg(ID tskid, CFG *p_tskconfig)
【パラメータ】
ID tskid 対象タスクのID番号
CFG *p_tskconfig 動作構成の設定値を入れる
メモリ領域へのポインタ
【リターンパラメータ】
ER ercd 正常終了(E_OK)またはエラーコード
【エラーコード】
E_CTX CPUロック状態からの呼出し
E_ID 不正ID番号(tskid が不正)
Agenda• はじめに• 諸準備
− 動的電圧・周波数制御− 排他動作する⾮均質マルチコアプロセッサ
• マルチパフォーマンスプロセッサの設計• 電⼒管理機能を持つリアルタイムOSの実装• 実チップによる実機評価• おわりに
27
評価環境• 評価⽅法
− 実⾏時間:MPP全体のRTLシミュレーション− 消費電⼒:アジレント社U2722Aにより消費電流・電圧を採取サンプリングレート 60Hz
− 電⼒管理機能の実装対象:TOPPERS/ASPカーネル(Release 1.4.0)
• 評価指標− MPPのプロセッサ構成の切替に掛かるオーバヘッド− リアルタイムOSの電⼒管理に掛かるオーバヘッド− アプリケーションの平均消費電⼒
28
MPP切替のオーバヘッド• CPUコアの切替
− High-speed CPU → Low-power CPU:1.65μs− Low-power CPU → High-speed CPU:1.48μsレジスタの保存と復帰も含む big.LITTLEアーキテクチャでは最⼩でも20μs
• キャッシュウェイの切替− High-speed CPU時:25ns− Low-power CPU時:50ns 5クロックサイクル分
29
⾮常に⼩さいオーバヘッドで動作構成を切替可能
CPUコアの切替に起因したキャッシュのミスヒットは
発⽣しない
リアルタイムOSのオーバヘッド• TOPPERS sample1でメモリ量を測定
− タスク数5(MAINTASK, TASK1,2,3, LOGTASK)− サービスコールの基本的な動作を確認するプログラム
30
管理機能 text data bss Total
無し 23,736 7,204 12,368 43,308
有り 29,640 3,128 12,368 45,1364.5%
⼩メモリ量で実装可能→ 組込みシステムに適している
アプリケーションの平均消費電⼒• 評価アプリケーション
− それぞれに異なる周期で実⾏されるDCTタスク×3− レイトモノトニック・スケジューリング⽅式
• 電⼒管理⽅針− Nonmanage: 動作構成を設定しない− Static: 動作構成を静的に設定する− Dynamic: 動作構成を動的に設定する実⾏可能状態にあるタスク数
31
Our MPP chip
Task3 switches correctly
Task1 switches correctly
LEDs show the correctVDD and fclk transitionand cache resizing
アプリケーションの平均消費電⼒
32
Nonmanage Static Dynamic
アプリケーションの平均消費電⼒• 評価結果 [mW]
33
Policy 0.7V CPU 1.2V CPU 3.3V I/O Total
Nonmanage 0.38 11.80 8.26 20.45
Static 0.58 9.50 5.80 15.88
Dynamic 0.73 7.47 2.66 10.87 31.6%
23.3%
リアルタイムOSによる電⼒管理機能の有効性を⽴証
set_cfgを利⽤
Agenda• はじめに• 諸準備
− 動的電圧・周波数制御− 排他動作する⾮均質マルチコアプロセッサ
• マルチパフォーマンスプロセッサの設計• 電⼒管理機能を持つリアルタイムOSの実装• 実チップによる実機評価• おわりに
34
おわりに• まとめ
− マルチパフォーマンスプロセッサの設計・実チップ試作⾮均質なCPUコアを排他的かつ動的に切り替えて
⾼いエネルギー効率を実現プロセッサ構成を低オーバヘッドで切替可能
− 電⼒管理機能を持つリアルタイムOSの実装タスクと動作構成の情報の対応付け TOPPERS新世代カーネルの機能拡張により実装実チップ上で電⼒管理機能の有効性を⽴証
• 今後の⽅針− 電⼒管理機能を活⽤した消費エネルギー最適化⼿法− マルチプロセッサへの対応
35