UWB/MAC処理用省電力マルチコア SoCアーキテクチャ構築 一色 剛

UWB/MAC処理用省電力マルチコア
SoCアーキテクチャ構築
一色 剛
東京工業大学通信情報工学専攻
SystemC Japan 2014
June. 20th, 2014
講演概要
本講演は株式会社リコーとの共同研究成果に基づいてます
• UWB (Ultra‐wide Band)近距離高速無線通信
– MACプロトコル、処理タイミング要件
– SW/HWアーキテクチャ(シングルコアシステム)
• マルチコアSoC開発アプローチ
– 各タスク個別のコア割当てRTOSオーバーヘッド軽減
– SW再利用性を考慮したマルチコアへのSW移植方法論
– コア間通信・同期機構内蔵プロセッサ開発
• マルチコアSoC性能評価
– 処理サイクル削減、電力削減
2
UWB Technology
Wireless personal area networking (WPAN) • High‐speed : 480Mbps (ver1.1) ~ 1Gbps (ver1.2)
 Main target : high‐speed video streaming
UWB
• Cost effective : router‐less connectivity
Short 480Mbps @ 2m
Distance 200Mbps @ 4m • Low emission power : targeted for short distance
Data Rate (Mbps)
1000
Fast download
UWB
100
110Mbps @ 10m
Room‐range
High‐definition
Quality of service, streaming
10
802.11a/b/g/n
100Mbps @ 100m
(802.11n)
Data Networking
Bluetooth
1
1
10
Range (m)
100
Source: Texas Instruments
3
3
WiMedia UWB MAC Protocol
• TDMA (time‐division multiple access) : Priority‐based and reservation‐based QoS guarantee
• Fully distributed (router‐less) network: all UWB terminals exchange network status information during “Beacon Period” to negotiate bandwidth demands
 Very tight timing budget (finely controlled by RTOS)
4
UWB MAC SW/HW Architecture
Application
Beacon
TX
RX
Real Time Operating System
MAC SW
MAC HW
(encrypt, packetize, PHY‐IF)
MAC HW
PHY
Config.
Register
Multi‐tasked SW modules
•Main (Appl): payload processing
•Beacon: network scheduling
•TX: payload transmit
•RX: payload receive
RTOS services
•Task switching/scheduling
•Inter‐task messaging/sync.
•HW Interrupt handlers
MAC HW:
•Encrypt/decrypt
•Payload packetize/de‐packetize
•PHY‐IF: payload FIFO interface
5
Single‐Core SW/HW Architecture
Application
Beacon
I-TCM
D-TCM
TX
RX
Real Time Operating System
MAC SW
ARM946
Display I/F
Memory
AHB Bus
Slave
TX/RX path
AHB/APB
RAM Wrapper
Payload RAM
IRC
UART
6
研究目的
• MAC処理性能向上のためのアーキテクチャ探求
– マルチコア化:タスク分散、RTOSオーバーヘッド軽減
– 省電力・通信機能付きコア搭載
• SW/HW設計手法構築
– 複雑なSW/HWアーキのマルチコア化までの設計道筋
Message-passing Sub-domain
Processor Inter-connection
D-TCM
Comm.
Comm.
AHB Bus
Comm.
RX
Core
Sync.
Controller
AHB/APB
RAM Wrapper
Slave
IRC
APB
Payload RAM
UART
MAC
HW
PHY
Layer
AHBLite Bus
AHB Bus
Master
Master
PHY
Layer
AHBLite Bus
Slave
MAC
HW
TX
Core
Mem.
Beacon
Core
Mem.
Display I/F
Memory
Comm.
Mem.
Mem.
ARM946
Main
Core
RAM Wrapper
Shared Memory
Payload RAM
Section_0
HW
Mutex_0
HW
Mutex_0
(by mutex_0)
UWB MAC
MPSoC
AHB/APB
APB
I-TCM
Display
I/F
IRC
UART
WiMedia MAC MPSoC
7
第1フェーズ開発指針
• MAC firmware動作解析
– MAC SW処理フロー、データ構造、API、RTOS、割込み
– ワークロード計測(特にRTOSオーバーヘッド)
• マルチコア化に向けたSW分割指針
– 各タスク個別のコア割当てSW分散処理
– SW再利用性の担保APIの再定義のみ、上位SWの書換え
を最小限に抑える
– インクリメンタルな設計変更常に「正常動作モデル」を維持
• シングルコアSWリファレンス:出発点
• 1タスクコア追加SW切り出しコア間同期通信実装検証
マルチコアSWモデルの早急な立上げ(最適化は後回し)
検証可能なモデルがあればこそ、有用な課題抽出が可能
次段階の開発指針の有用なデータを取得することが目的
8
MAC‐Firmware動作解析環境
 TLMモデルによる2端末対向通信
シナリオ動作解析
– 送信側・受信側でアプリシナリオを
設定可能(例:画像データを受信し
てディスプレイデバイスに転送)
– UWBパケット生成後のPHY挙動モデ
ルは大幅に抽象化
対向通信動作検証用
TLMモデル
リコーにて開発
 動作解析項目
– 初期化:データ構造、タスク生成、割
込み設定
– 各タスクの処理フロー
– タスク間通信・同期フロー
9
MAC‐Firmware動作解析
Device A
Appl.
MAC
Device B
MAC
Appl.
タスク内関数呼出フロー
 通信処理イベント追跡
 グローバル変数のタスク間依
対向通信処理における関数呼出解析
存関係
 コールバック関数
 割込み・タスク起動フロー
10
MAC‐Firmwareアーキテクチャ
Application
Test_app(upper‐layer SW)
or applications
Callback Func
DMA pools MGR
variable
Beacon Task
BEACON
MLME SAP IF
variable
Interrupt Msg is the
only input
Msg
タスク起動
Message
Block pools MGR
Global variable
variable
TX
RX
Management Task
Msg
タスク起動
Message
MAC SAP IF
Reception Task
Msg
タスク起動
Message
ISR/DSR
INTR Handler
Virtual Kernel Interface and HAL
HW
MAC‐HW (Payload packet handling, PHY‐IF)
11
MAC‐Firmware分割
MAIN
CORE
Application (upper‐layer SW)
Test_app or applications
Callback Func
DMA pools MGR
BEACON CORE
Beacon Task
BEACON
variable
variable
Interrupt Msg is the
only input
Msg
タスク起動
Message
MAIN
CORE
MLME SAP IF
Block pools MGR
TX
Global variable
CORE
variable
TX
RX
CORE
RX
Management Task
Msg
タスク起動
Message
MAC SAP IF
Reception Task
Msg
タスク起動
Message
MAINコアの割込みハンドラ
からの「起動メッセージ」によ
Virtual Kernel Interface and HAL
り各タスクコアが起動
ISR/DSR
INTR Handler
HW
MAC‐HW (Payload packet handling, PHY‐IF)
12
MAC‐Firmware機能分散設計
“task cores”
ARM
(MAIN)
ARM
(Beacon)
MAC‐
HW
ARM
(TX)
Shared MEM
• マルチARM構成:SW再利
用性を最優先(特にプロ
ARM
セッサ依存RTOSカーネル
(RX)
部分)
• タスク間通信同期処理用
の専用HW実装(SystemCモ
AHB
デル)
Bridge
APB
IRC
CBC
Mbox
callback request
Mutex
Semaphor
e
–
–
–
–
リソース管理(Mutex)
タスク同期(Semaphore)
プロセッサ間通信(Mbox)
コールバック制御
• 「タスクコア」:
Mbox/Mutex/Semaphore
各HWモデルをポーリング
し、中断・実行状態を制御
13
通信処理中の処理サイクル計測
Interrupt
79
80
81
82
83
84
Single-ARM
main
BCN
RX
3066
7044
3066
115
3066
26418
3397
11518
3397
11518
3397
11518
Device 1 (receiver)
Multi-ARM
main
BCN
1145
4979
1145
119
1145
19179
1476
RX
Interrupt event
BP_START
TXBCN_COMPLETE
RXBCN_LAST
6358
RXQ_COMPLETE
6358
RXQ_COMPLETE
6358
RXQ_COMPLETE
1476
1476
• サイクル計測用SystemCモデル:複数のタイマー制御(レジスタIF)
• 計測対象SWコードへの計測用命令の埋込み
14
通信処理サイクル数比較
Device 1
Single-ARM
Multi-ARM
Receiver
main
BCN
RX
main
BCN
RX
Beacon frame
9198
33577
0
3435
24277
0
Data frame
27176
0
92140
11808
0
50864
36374
33577
92140
15243
(41.9%)
24277
(72.3%)
50864
(55.2%)
TOTAL
Device 2
162091
90384 (55.76%)
Single-ARM
Multi-ARM
Transmitter
main
BCN
TX
main
BCN
TX
Beacon frame
9198
34472
0
3435
25172
0
Data frame
27176
0
51652
11816
0
37092
36382
34472
51652
15251
(41.9%)
25172
(73.0%)
37092
(71.8%)
TOTAL
122506
77515 (63.27%)
• RTOS(スケジューリング、タスク切替)オーバーヘッド
– 送信側:36.73%
 タスクのマルチコア化の効果を確認
– 受信側:44.34%
15
第2フェーズ開発指針
• Step 1 : プロセッサコアの置き換え
– 東工大開発TCT Processor(メッセージ通信機能搭載)
• Synopsys Processor Designer(LISA記述)モデル構築済み
• コアのカスタマイズ(ASIP化)によるシステム最適化の探求
– SW・HWアーキテクチャ:マルチARM版を踏襲
SWポーティング・SWビルド環境構築・バグ出しに注力
• Step 2 : コア間同期通信方式の改良
– ポーリング方式:共有メモリアクセスによるBusy‐Wait
• 少ない設計変更で実装可能マルチARM版で最初に構築
• バス帯域を浪費、コアも走り続ける
– 割込み方式:HW割込み/メッセージ受信によるタスク起動
• TCT Processorのメッセージ通信機能の改良
• メモリバスと独立したメッセージ専用コア間インターコネクト
16
TCT Processor (LISA記述)
• アーキテクチャ:4段パイプラインRISC(命令・データ:32ビット)
• レジスタファイル:汎用レジスタ26個+特殊レジスタ6個
• ALU:加減算、論理演算、比較演算、バレルシフタ、乗算、剰余算(マル
チサイクル)
• コア間メッセージ通信モジュール:任意長バースト転送、バッファ管理
– ハンドシェークプロトコル(REQACKTX):2〜6サイクルセットアップ
• TCT(Tightly‐Coupled Thread)機能並列コンパイラ:パイプライン処理
srcA OP
FW2
ALU-REG
FW1, FW2
INST
INST-DEC
PMEM
PC
JMP_ADDR
TCT Processorの特徴:
REG-FILE
srcB
LNK
R0 – R25 : general-purpose
LNK(R26), SP(R28), BOS(R29), BRP1(R30), BRP2(R31)
FW1
ALU
設計課題:
DC
addr
din
COM-MODULE
(multi-cycle)
EX
DMEM
COM-DEC
FE
STR
+4
HZ
(stall pipe)
• 分散型メモリアドレス空間非
共有
dout
WB
• 共有アドレス空間の導入
• バスインターフェース
• コア間通信機能の最適化
17
(Step 1) ポーリング同期式
Shared‐BusマルチTCTアーキテクチャ
• ARMコアTCTコアの置き換え
– コア以外のSW/HWモデルはマルチARM版を踏襲
– TCTコアのAHB拡張設計・SW移植のバグ出しを最優先
TCTコア
置き換え
UWB MAC
MPSoC
18
TCT Processor 改良設計
Step 1:
• バスアドレス空間・ローカルメ
モリ空間の切替機能(アドレ
スデコーダ)
• AHBインタフェース追加
• パイプライン構造改良
 この段階では、TCT通信機能は
利用せず、AHBベースのSWモデ
ルを踏襲
Step 2:(次ページアーキテクチャ用)
バスインターフェース
用サブパイプライン
• 通信機能簡略化(タスク通信同期機能に限定)
• タスク通信同期用専用命令追加
19
(Step 2) 割込み同期式
Hybrid‐BusマルチTCTアーキテクチャ
• タスク間同期:TCT通信機構による割込み通信で実装
–
–
TCT通信機構:プロセッサ間インターコネクト(クロスバー)で実装
TCT割込み制御:タスク間排他・同期制御、コールバック制御
コア通信
インターコネクト
(クロスバー)
Message-passing Sub-domain
Processor Inter-connection
Comm.
TX
Core
Comm.
Mem.
Beacon
Core
Comm.
Mem.
Mem.
Mem.
Main
Core
Comm.
RX
Core
Sync.
Controller
排他制御・
同期制御
モジュール
PHY
Layer
Master
MAC
HW
RAM Wrapper
Shared Memory
Payload RAM
Section_0
HW
Mutex_0
HW
Mutex_0
(by mutex_0)
AHB/APB
APB
Slave
AHBLite Bus
AHB Bus
UWB MAC
WiMedia
MAC MPSoC
MPSoC
Display
I/F
IRC
UART
HW割込み制御
モジュール
(全コア直結)
20
Inter‐Core Synchronizer
排他制御(LOCK)
同期制御(BARRIER)
• コア側:専用通信命令でLOCK(取得・解除)/BARRIER(Semaphore)実装
• Synchronizer HW側:各コアからのメッセージによってLOCK/BARRIERを制御
21
Inter‐Core Message Transfer
M_SEND
M_RECV
• TCT Processor本来の通信機能を
ベースに実装
• 非同期通信方式:データ転送は(
バッファFullでない限り)受信側の
状態に関わらず完了する
• 受信側RECV命令:バッファに受信
データがなければ待機
 受信完了とともに復帰
22
UWB通信動作検証シナリオ:画像転送
• 送信用画像データはメモリ上に展開(シミュレーションモデル
コンパイル時に画像ファイルから自動展開)
• 受信側にLCDモジュールを搭載し,受信画面を表示
対向通信TLMモデル
画像表示モジュール
23
UWB MACアーキテクチャ処理時間評価
•
UWB MAC‐Firmware処理時間
–
–
–
–
1024 Byteペイロード送受信時の各タスクの処理時間を計測
比較対象:Single‐ARM (キャッシュあり・なし),Multi‐ARM(キャッシュ
なし),Multi‐TCT (キャッシュなし)
MAC処理コア部分とタスク切替・割込み等の”Overhead”を分離計測
Non‐backdoor mode(バスサイクル精度)でのシミュレーション結果
Multi‐ARM vs Multi‐TCT : ほぼ同等の処理時間
Single‐ARM(no cache) vs Multi‐TCT :全体で46.3%処理時間削減
24
UWB MACアーキテクチャ処理時間評価
処理オーバーヘッド内訳
3000
2000
1000
6.0E+06
4.0E+06
2.0E+06
0.0E+00
A
AR AR
M
M
ca
ch
m
u l ed
ti A
m RM
ul
tiTC
T
AR AR
M
M
ca
ch
m
u l ed
ti A
m RM
ul
tiTC
T
AR AR
M
M
ca
ch
m
u l ed
ti A
m RM
ul
tiTC
T
0
8.0E+06
処理オーバーヘッド内訳
RM
Ca
ch
ed
m
ul
tiA
RM
m
ul
tiTC
T
4000
1.0E+07
A
5000
RM
6000
Overhead
1.2E+07
A
7000
MAC SW
1.4E+07
RM
Ca
ch
ed
m
ul
tiA
RM
m
ul
tiTC
T
8000
1.6E+07
A
Synch.
RM
Mailbox
A
Interrupt
RM
Ca
ch
ed
m
ul
tiA
RM
m
ul
tiTC
T
9000
Workload Breakdown (#cycle)
10000
AR AR
M
M
ca
ch
m
u l ed
ti A
m RM
ul
tiTC
T
Overhead Breakdown (#cycle)
–
–
タスク間通信 (Mailbox):マルチコア構成(マルチARM,マルチTCT)に
よってほぼ0まで削減
排他制御(Synch):マルチコア構成によって大幅に削減
割込み(Interrupt):マルチコア構成ではスケジューラが起動しない分
だけ削減
A
–
RM
•
全体処理時間内訳
25
UWB MACアーキテクチャ面積評価
• 面積見積り手法
–
–
–
ARM946E-S : キヤッシュ以外のプロセッサコアはARM公開データ参照
TCT:TSMC90nmライブラリによるRTL合成の面積見積り
メモリ:CACTI v6.5 (90nm)ツールでの面積見積り
•
マルチコアのメモリ容量:各プロセッサ毎に算出し,メモリ面積は合算値
 プロセッサコア部比較:ARMx1とTCTx4はほぼ同面積(0.303 vs. 0.336)
 メモリ含めた全面積:メモリ容量が少ない分multi-TCTの方がARMx1より小
さい
Technology
PE Area (mm2)
HW Area (mm2)
Area w/o Memory (mm2)
Data Memory Size (KB)
Inst. Memory Size (KB)
Memory Area (mm2)
Total Area (mm2)
Single-ARM
90 nm
0.303
0
0.303
78
230
3.291
3.594
Multi-ARM
90 nm
0.303 * 4
0.089
1.301
20/4/4/4/
72/82/42/8
2.614
3.915
Multi-TCT
90 nm
0.084 * 4
0.089
0.425
20/4/4/4/
72/82/42/8
2.614
3.040
26
消費電力評価(メモリ除く)
•
Single‐ARM (no cache) vs. Multi‐TCT消費電力比
–
–
–
–
2.737 : 1 @ 31.8 Mbps
3.488 : 1 @ 95.3 Mbps
3.703 : 1 @ 158.8 Mbps
3.893 : 1 @ 222.3 Mbps
Single‐ARM vs Multi‐ARM : 処理時間削減分に比例した省電力化
Multi‐ARM vs Multi‐TCT: Logic面積に比例した省電力化
20
50
18
Power Breakdown (mW)
Power Consumption(mW)
45
40
35
30
25
20
15
10
5
0
31.8
63.5
95.3
127.0
158.8
190.5
222.3
254.0
Single-ARM
5.2
9.8
14.3
18.9
23.5
28.1
32.7
37.3
Single-ARM Cached
6.5
11.9
17.3
22.7
28.0
33.4
38.8
44.2
Multi-ARM
4.9
7.5
10.1
12.7
15.4
18.0
20.6
23.2
Multi-TCT
1.9
3.0
4.1
5.3
6.4
7.5
8.6
9.8
Static Power
MAC SW
Overhead
16
14
12
10
@63.5Mbps
@31.8Mbps
@95.3Mbps
8
6
4
2
sin
gl
egl
AR
eAR
M
M
Ca
ch
ed
m
ul
ti A
RM
m
ul
ti TC
T
sin
sin
gl
egl
AR
eAR
M
M
Ca
ch
ed
m
ul
ti A
RM
m
ul
ti TC
T
sin
sin
sin
gl
egl
AR
eAR
M
M
Ca
ch
ed
m
ul
ti A
RM
m
ul
ti TC
T
0
Throughput (Mbps)
27
消費電力評価(メモリ含む)
• Single-ARM (no cache) vs. Multi-TCT消費電力比
6.486
7.489
7.793
7.889
1
1
1
1
@
@
@
@
31.8 Mbps
95.3 Mbps
158.8 Mbps
222.3 Mbps
Single‐ARM (no cache) : 大容量TCMメ
モリアクセス消費エネルギー(大)
Single‐ARM (cache) : キャッシュメモリ
アクセス消費エネルギー(大)
Multi‐ARM & Multi‐TCT: 小容量TCMメ
モリアクセス消費エネルギー(小)
80
70
MAC SW
Overhead
60
50
@31.8Mbps
@63.5Mbps
@95.3Mbps
40
30
31.8
63.5
95.3
127.0
158.8
190.5
222.3
254.0
Single-ARM
24.0
47.2
70.4
93.6
116.9
140.1
163.3
186.5
10
Single-ARM Cached
25.4
49.4
73.4
97.4
121.4
145.4
169.4
193.4
0
Multi-ARM
6.7
11.1
15.4
19.8
24.2
28.5
32.9
37.3
Multi-TCT
3.7
6.5
9.4
12.2
15.0
17.9
20.7
23.5
si
ng
si
le
ng
-A
le
R
-A
M
R
M
C
ac
he
d
m
ul
tiA
RM
m
ul
tiTC
T
20
si
ng
si
le
ng
-A
le
R
-A
M
R
M
C
ac
he
d
m
ul
tiA
RM
m
ul
tiTC
T
Throughput (Mbps)
Static Power
si
ng
si
le
ng
-A
le
R
-A
M
R
M
C
ac
he
d
m
ul
tiA
RM
m
ul
tiTC
T
Power Consumption(mW)
220
200
180
160
140
120
100
80
60
40
20
0
:
:
:
:
Power Breakdown (mW)
–
–
–
–
28
消費電力評価(ポーリングvs割込み)
• 割込み同期式:ポーリング同期式に対し11.1%〜12.8%
の電力削減
16
14
12
10
8
Multi‐TCT(Poll)
6
Multi‐TCT(INTR)
4
2
0
31.75
Mbps
63.5
Mbps
95.25
Mbps
127
Mbps
158.75
Mbps
190.5
Mbps
222.25
Mbps
254
Mbps
29
まとめ
• UWB MAC 処理のマルチコア化の利点
– シングルコアの厳しいタイミング制約:マルチタスク+RTOS
– マルチコア化によるRTOSオーバーヘッド軽減  処理サイクル
数削減
– 省面積・通信機能付きコアの搭載  省電力化
• SW/HWアーキテクチャのマルチコア化設計アプローチ
– SW再利用性の重視、検証可能リファレンス動作モデルの維持
– インクリメンタルなSW/HW設計変更(早期のバグ修正)
– ESLモデリング(SystemC‐TLM, Processor Designer)活用による
実用的アプリケーションシナリオでのシステム性能評価
30
UWB MACマルチコアアーキテクチャの展望
TCT Interconnect
RX
TX
Beacon
Main
Comm
Comm
Comm
Comm
Sync
Comm
Comm
Comm
Comm
Comm
PHY‐ASIP
DMA‐ASIP
RAM0
RAM1
UART
Payload desc.
Header Param
Shared
variables
RF
•
インターコネクト:クロスバー/NoCへの切替
–
–
•
メッセージ通信プロトコル対応メモリモデル:開発済み
他のHW‐IPのメッセージ通信プロトコル化:デバドラ負荷低減
MAC‐HW/PHYのASIP化「SW Defined Radio」へ
–
–
HW実装DMA機能のASIP化:基本設計完了
PHY‐ASIP化:構想段階
31
ご静聴ありがとうございます。
32