ダウンロード - Freescale Semiconductor

高性能通信プロセッサQorIQのDPAA
(デ タ パス アクセラレ ション
(データ・パス・アクセラレーション・
アーキテクチャ)の概要
FTF NET F0146
FTF-NET-F0146
Kojij Tsutsui|FAE,
|
, Technology
gy Department
p
Dec.04.2014
TM
External Use
本セッションの目的
•
マルチコア・プラットフォームでのパケット処理を効率よく行う為
のデ タパス アクセラレ ション ア キテクチャ(DPAA)が
のデータパス・アクセラレーション・アーキテクチャ(DPAA)が
QorIQファミリに搭載されております。
•
本セッションでは、DPAAを構成する要素およびCPUコアがどの様
に連携するかを説明します。
•
DPAAを活用することで、マルチコア環境で必要とされるパケット
処理のタスクをオフロードすることができ
処理のタスクをオフロ
ドすることができ、性能向上に貢献します。
性能向上に貢献します。
TM
External Use
1
Agenda
•
DPAAが必要となる理由
•
DPAA構成ブロック
− QMan
− FMan
− BMan
− SEC
− RMan
•
•
パケットの流れ
まとめ
TM
External Use
2
Agenda
•
DPAAが必要となる理由
•
DPAA構成ブロック
− QMan
− FMan
− BMan
− SEC
− RMan
•
•
パケットの流れ
まとめ
TM
External Use
3
シングルコアからマルチコアへ
•
市場要求:
− システム性能のさらなる向上
− 消費電力の制約
•
シングルコアでクロック周波数アップ
− 性能アップに限界
− 消費電力の点で不利
•
マルチコア化
− システム性能の向上および消費電力の点でバランス
TM
External Use
4
データパスをマルチコアで処理する際の課題/要求事項
マルチコアSoCは、シングルコアSoCと比
べ、パケット処理での要求事項がある
− ロードスプレッド/ロードバランス:
 受信パケットを複数コアで分散処理
− パケット順序:
パケ ト順序
 複数コアで並列処理した後、パケット
順序が逆転した場合の対処
順
転
場
処
− パイプライン処理:
 1つのパケットをコア、アクセラレー
タでパイプライン処理
− ネットワークI/Oの共有:
 複数のコア間でネットワ
複数のコア間でネットワークI/Oを共有
クI/Oを共有
− 仮想化
− コア間通信
Hardware
Accelerator
Core
C
Core
Core
Core
Core
Network
I/O
Network
TM
External Use
5
マルチコアでのデータパス処理に必要な機能
•
これらの要求事項を満たす為に;
− ハードウェアによるキュー管理(輻輳制御も含む)
ハ ドウェアによるキュ 管理(輻輳制御も含む)
− ネットワークI/Oは、ハードウェアにて受信フレームの解析、
仕分け 宛先へ転送ができること
仕分け、宛先へ転送ができること
•
高帯域デ タパスを処理する為に;
高帯域データパスを処理する為に;
− 輻輳状態時のフロー制御
Core
− バッファ枯渇時のフロ
バッファ枯渇時のフロー制御
制御
− ハードウェアによるバッファ管理
Core
Core
Queue Manager
Network I/O
Eth Eth Eth
TM
External Use
6
Core
Buffer
Manager
BDリング vs DPAA
DPAAは、従来のBDリ
ング方式を置き換える
もの:
Core
•
Eth
複数コアがロックレス
でキューへ出し入れが
可能
•
キュ を複数コアで共
キューを複数コアで共
有
•
バッファ管理とキュー
管理を分離
Core
Core
Core
Queue Manager
TM
External Use
7
Buffer
Manager
コア(スレッド)毎に
ア(
ッ )毎
キューへのアクセス用イ
ンターフェイスを持つ
他ブロックとの干渉なし
Network I/O
Eth Eth Eth
BDリングはメモリ上
に構築されたデータ
ストラクチャ
コアはBDリングのポ
インタ管理を行う
Core
Agenda
•
DPAAが必要となる理由
•
DPAA構成ブロック
− QMan
− FMan
− BMan
− SEC
− RMan
•
•
パケットの流れ
まとめ
TM
External Use
8
QorIQ DPAAを構成するブロック
Network & Packet I/O
Infrastructure Components
Cores
Hardware Accelerators
RapidIOでの送受信を
DPAAに統合
DPAAの基幹ブロック。
SoC内の各ブロック間とのデー
タ(パケット)の受け渡しを
タ(
ケッ ) 受け渡 を
キューを用いて一元管理
DPAA
RapidIO
p
Messaging
RapidIO
Message
Manager
g
(RMan)
RMan)
and more
Ethernet
Frame
Manager
(FMan
FMan))
複数のイーサネットMAC
ハードウェアによる受信
フレームのヘッダ解析、
仕分け機能を内蔵
Queue
Manager
(QMan
QMan))
Buffer
Manager
(BMan
BMan))
ハードウェアによるバッ
ファ管理(取得/解放)
TM
External Use
9
Security
Engine
((SEC))
暗号、認証
処理のハー
ドウェア・ア
クセラレー
タ・エンジン
Pattern
Matching
Engine
(PME)
ビットストリーム中の特定の
ビットパターンを検出
ウイルス
チェック等で利用
ウイルス・チェック等で利用
QorIQ T4240 DPAA Components
TM
External Use
10
QorIQ
T4240
Agenda
•
DPAAが必要となる理由
•
DPAA構成ブロック
− QMan
− FMan
− BMan
− SEC
− RMan
•
•
パケットの流れ
まとめ
TM
External Use
11
DPAAインフラストラクチャ: QMan
…
Queue Manager (QMan):
• SoC内の各ブロック(コア、アクセラレータ、Network I/F)間のパケットの受け
渡しはキ
渡しはキューを用い、QManが一元管理
を用 、Q
が 元管理
• 各ブロックはQManへアクセスする為のインターフェイスを各々持つ。
− キューはロックレスで共有、リソースの共有化/仮想化が効率的に行える
• コアがデキューする際、コア内キャッシュへStash可能
アがデキ
する際
ア内キ
シ
St h可能
− FD、フレームデータ先頭部、
Queue Manager
(QMan)
コンテキスト情報、他
PME
FQD
Cache
…
…
…
…
Hardwa
are portals
Queuing
Engines
…
QManキューイング管理:
− デキュー・スケジューリング
デキ
スケジ
リング
− パケット順序の制御
− 輻輳制御/回避
…
•
FD
Memory
Software portal
 Frame Descriptor
TM
External Use
12
CoreNet
To Cores

SEC
Frame
Descriptor
FMan
FMan
QorIQ -- Multi Core and Offload architecture
Frame
Queue
Frame
Queue
Frame
Queue
Frame
Queue
Frame
Queue
Frame
Queue
Frame
Queue
Queue
Q
Queue
Q
Dedicated
Channel
Core7
Frame
Queue
Dedicated
D
di t d
Channel
Data Path
Acceleration
Architecture
PCD
Port1
TM
External Use
13
Frame
Queue
Port2
Port3
Frame
Queue
Frame
Queue
Dedicated
D
di t d
Channel
Frame Manager
Port4
Core8
Frame
Queue
Queue
Frame
Queue
Dedicated
Channel
Queue
Q
Pool
Channel
Queue
Q
Pool
Channel
Core3
Core4
Core5
Core6
Queue
Core1
Core2
Pseudo Real Time Traffic
Dedicated
D
di t d
Channel
Frame
Queue
Queue
General Data Plane Traffic
Queue
Control Plane Traffic
Dedicated
D
di t d
Channel
2レベルのキュー
WQ1
FQ FQ
WQ2
FQ FQ
WQ3
FQ FQ
WQ4
FQ FQ
WQ5
FQ FQ
WQ6
FQ FQ
WQ7
FQ FQ
FD
P
Portal
FQ FQ
Cha
annel
WQ0
フレーム・ディスクリプタ(FD)は、フレーム・
キュー(FQ)に入れられる
− FQはFDの順序リスト
− QManでの順序制御は、1FQ内で行われる
•
FQはワーク・キュー (WQ)に入れられる
− WQはFQの順序リスト
− 1WQ内のFQはすべて同プライオリティ
•
チャネル:
− SoC内各ブロック(コア、アクセラレ
SoC内各ブロック(コア アクセラレータ
タ、
Network I/O)は自宛てチャネルを持つ
− 1つのチャネルは8つのWQから成り、各
WQは相対プライオリティを持つ
− デキュー・スケジューリングはチャネル内
WQプライオリティ、スケジューラ・スキー
ムにてデキュー順が決定
•
ポータル:
− 各ブロックがQManへアクセスする為のイ
ンターフェイス
ンタ
フ イ
− ポータルは、 QManとデータの受け渡しを
行う為のQMan内 “データ・ストラクチャ”
FD FQ
順序制御が必要な
フレーム(FD)は1つ
のFQへ入れる
Bufferr
Bufferr
•
User memory
QMan data structures
TM
External Use
14
チャネルとポータルの種類
H/Wブロック
Core n
Core0
ロードバランシング
ロ
ドバランシング
複数コアで負荷分散
via CoreNet
DCP (HW Portal)
SW Portal
SW Portal
Dedicated
Dedicated
via CoreNet
Dedicated
Pool
Channel
WQ7
7
WQ6
6
WQ5
5
WQ4
4
WQ3
3
WQ2
2
WQ1
1
WQ0
0
WQ7
7
WQ6
6
WQ5
5
WQ4
4
WQ3
3
WQ2
2
WQ1
1
WQ0
0
FD
FQ
FD FD
FQ
WQ7
7
WQ6
6
WQ5
5
WQ4
4
WQ3
3
WQ2
2
WQ1
1
WQ0
0
Channel
WQ7
7
WQ6
6
WQ5
5
WQ4
4
WQ3
3
WQ2
2
WQ1
1
WQ0
0
Channel
Channel
QMan
チャネル:
− Dedicated Channel:ある特定ブロック宛てチャネル、ある特定ブロックのみがここからデキューする
− Pool Channel:不特定多数コア宛てチャネル。複数のコアがここからデキューすることができる、
ロード・バランス用途
• ポ
ポータル:
タル:
− ソフトウェア・ポータル:コアがQManへアクセスする際に使用
− ハードウェア・ポータル:ハードウェア(各アクセラレータ、ネットワークI/O)がQManへアクセスす
る際に使用、Direct Connect Portal (DCP)と呼ばれる
• キューへアクセスする為のI/F(ポータル)は各ブロック毎に用意されており、ロックレスでQManへア
クセス可能(他ブロックとの排他制御は不要)
•
TM
External Use
15
ポータルでのエンキュー/デキュー
エンキュー:
送りたい宛先のWQ
(FQ)へFDを入れる
Rx Tx
10GEC
1GE
1GE
…..
PCD
デキュー:
自分宛Channelに届いた
FQからFDを取り出す
SEC
FMan1
Core1
SW Portal0
DCP0
DCP2
SP
SP
Dedicated
Core0
Dedicated
SW Portal1
EQCR
DQRR
EQCR
DQRR
•
••
•
••
•
••
•
••
Dedicated
Dedicated
Pool
Channel
Channel
Channel
WQ7
WQ6
WQ5
WQ4
WQ3
WQ2
WQ1
WQ0
WQ7
WQ6
WQ5
WQ4
WQ3
WQ2
WQ1
WQ0
WQ7
WQ6
WQ5
WQ4
WQ3
WQ2
WQ1
WQ0
WQ7
WQ6
WQ5
WQ4
WQ3
WQ2
WQ1
WQ0
Channel
WQ7
WQ6
WQ5
WQ4
WQ3
WQ2
WQ1
WQ0
Channel
FD
FQ
FD FD
FQ
QMan
TM
External Use
16
L2 Cache
Power Architecture™
Core
I-Cache
パケット順序の制御
D-Cache I-Cache
F0P1
•
コアがフレームをデキューするにあたり;
− Dedicated Channelからのデキュー
 常に、同じコアが1つのフロー(FQ)を処理
常に 同じ
が
( Q)を処理
 コアがパケットを逐次処理している限り、パケット
順序が入れ替わることはない
−
Pool Channelからのデキュー
 複数のコアがデキューする為、各コアでの処理後、
ケット順序が入れ替わる可能性あり
パケット順序が入れ替わる可能性あり
 オーダリングに対処する為のメカニズム:
(1) パケット順序の復元 (Order Restoration)
− デキ
デキュー時に、各フレームにシーケンス番号を割
時に、各フレ ムにシ ケンス番号を割
り当て、コアでの処理後、シーケンス順に並び変
えてからエンキュー
(2) パケット順序の維持 (Order Preservation)
− 1フロー(1FQ)内のフレームを、同一コアがデ
(1FQ)内の レ ムを 同
アがデ
キューすることをアシストするデキュー・モード
を用意
− コアでの
コアでのパケット処理順番そのものを保証
ケット処理順番そのものを保証
F0P2
F1P1
Dedicated Channel
L2 Cache
L2 Cache
Power Architecture™
Core
Power Architecture™
Core
I-Cache
D-Cache I-Cache
D-Cache I-Cache
F0P1
Ordered
packets
processed in
parallel
F0P2
F1P1
P l Channel
Pool
Ch
l
L2 Cache
L2 Cache
Power Architecture™
Core
Power Architecture™
Core
I-Cache
D-Cache I-Cache
D-Cache I-Cache
F0P1
F0P2
F1P1
TM
External Use
17
Pool Channel
Ordered packets
queued
temporally to
single
processing
element
•
•
•
•
•
輻輳制御はFManとQManが連携動作
ロスレス・フロー制御
輻輳制御 :Tail
T il Drop
D
輻輳回避 :RED/WRED (Weighted
Random Early Discard)
Congestion Group(CG):
Disca
ard
Probab
bility
輻輳制御/回避
Aggregate
Q Occupancy
各フレーム・キューをどのCGグループに属させるか
はプログラマブル
− Tail Dropは
Dropは、CGグループまたは各キュー毎
CGグル プまたは各キュ 毎
− RED/WREDは、CG毎
−
−
−
−
−
−
全256のCG
CGグループ全キューの平均キュー長(Time-aware,
Weighted)
3 カラー/WRED カーブはプログラマブル
エンキュー・パケットはWREDポリシーで廃棄
瞬間CGグループキュー長 +/- ヒステリシスより、輻
輳メッセージをエンキュー側へ送信

Pauseフレ ム送信によるロスレス・フロ 制御
Pauseフレーム送信によるロスレス・フロー制御
TM
External Use
18
CG 1
CG 2
p
QMan
p
Congestion state message
p
FMan
10G
QMI
1G
pause
1G
1G
1G
Agenda
•
DPAAが必要となる理由
•
DPAA構成ブロック
− QMan
− FMan
− BMan
− SEC
− RMan
•
•
パケットの流れ
まとめ
TM
External Use
19
ネットワークI/O: FMan
To QMan
CoreNet
Frame Manager (FMan) :
• (P4080) 1x10GE MAC + 4xGE MACs
• (T4xxx) 2x10GE MAC + 6xGE MACs
•
Frame Manager
(FMan)
DMA
QMI
Policer
Keygen
Buffer
Memory
y (Distribution)
Parser
Classifier
To
BMan
BMI
10GE
GE GE GE GE
20
Ingressフレームヘッダを解析しトラフィック判定、
その結果を元に、フレームを適切な宛先キューへ仕
分け
−
PCDルール-Parsing(解析) / Classification(仕分け)/
Distribution(分配)-に従った仕分け

標準L2/L3/L4プロトコルをサポート

ユーザ独自フィールドも定義可

Exact Matchによる特定キューへの仕分け

Hashによる複数フレームキューへ振り分け
Hashによる複数フレ
ムキュ へ振り分け
TCP/UDP Tx チェックサム計算
•
デュアルレート/3カラー・ポリシング
物理ポート単位での送信レート・リミット
BManバッファ・プールから“適正サイズ”のバッファ
を取得
•
External Use
−
•
•
TM
FMan内に”Intelligence”を内蔵
FMan内に
Intelligence を内蔵
Case Study: High Level Mapping to DPAA
CORE
CORE
CORE
portal
portal
portal
Dedicated channel
WQ
Q7
WQ
Q6
Policer
WQ
Q5
FD FD
WQ
Q4
WQ
Q3
WQ
Q2
FQ
FD FD
WQ
Q1
WQ
Q0
WQ
Q7
WQ
Q6
WQ
Q5
WQ
Q4
WQ
Q3
WQ
Q2
WQ
Q1
WQ
Q0
FQ
Pool channel
FQ
FD FD
FQ
Q
FD
FQ
FD
FQ
FD FD
Hash
TOS
SCTP
UDP
(Control)
(Dataplane)
Eth
Prot
L2
TOS
L3-IP
UDP
L4
TM
External Use
n-tuple IP-UDP
21
C bi i exactt match
Combining
t h + Hash
H h
DPAAインフラストラクチャ: BMan
•
バッファ・ポインタの貯蔵領域
− BMan内部RAM(64Pool x 64depth)
− 外部メモリ
Buffer Manager
(BMan)
Internal stockpile
バッファ ポイ
バッファ・ポイ
ンタのプール
List
Engines
Software Portals
•
•
ソフトウェアは初期化時にバッファ・プールを
用意
バッファ枯渇時(空きバッファ数が閾値以下)、
ッ ァ枯渇時(空き ッ ァ数 閾値以下)、
割り込みを生成可、これを契機にソフトはバッ
ファを補充
TM
External Use
22
To Cores
CoreNet
PME
Hardw
ware portals
Buffer Manager (BMan) :
• バッファ・ポインタをハードウェアにて管理
− SoC内のアクセラレータ、ネットワークI/Fは、
BManにリクエストを出してバッファ・ポインタ
を取得/解放
SEC
FMan
FMan
Agenda
•
DPAAが必要となる理由
•
DPAA構成ブロック
− QMan
− FMan
− BMan
− SEC
− RMan
•
•
パケットの流れ
まとめ
TM
External Use
23
ハードウェア・アクセラレータ:SEC5.0
Queue
Interface
DMA
D
Job Ring I/F
Job Queue
Controller
RT
TIC
Descriptor
Controllers
CHAs
Supports protocol processing for the following:
• IPSec
• 802.1ae (MACSEC)
• SSL/TLS/DTLS
• 3GPP RLC
• LTE PDCP
• SRTP
• 802.11i (WiFi)
• 802.16e
802 16e (WiMax)
TM
External Use
24
Public Key Hardware Accelerators (PKHA)
RSA and Diffie-Hellman (to 4096b)
Elliptic curve cryptography (1023b)
Data Encryption Standard Accelerators (DESA)
DES, 3DES (2K, 3K)
ECB, CBC, OFB modes
Advanced Encryption Standard Accelerators (AESA)
Key lengths of 128-, 192-, and 256-bit
ECB, CBC, CTR, CCM, GCM, CMAC,
OFB, CFB, and XTS
ARC Four Hardware Accelerators (AFHA)
Compatible with RC4 algorithm
M
Message
Di
Digest
tH
Hardware
d
A
Accelerators
l t
(MDHA)
SHA-1, SHA-2 256,384,512-bit digests
MD5 128-bit digest
HMAC with all algorithms
Kasumi/F8 Hardware Accelerators (KFHA)
F8 , F9 as required for 3GPP
A5/3 for GSM and EDGE
GEA-3 for GPRS
Snow 3G Hardware Accelerators ((STHA))
Implements Snow 3.0
ZUC Hardware Accelerators (ZHA)
Implements 128-EEA3 & 128-EIA3
CRC Unit
Standard and user defined polynomials
Random Number Generator, random IV generation
CAAM(SEC4.x / SEC5.x)の特徴
Input Frame:
Optional
IP Hdr
従来のSECは、入力パ
ケットそのままの状態で
は、ハンドリングでき
なった。
Payload
Crypto:
Class 1 – such as AES
Payload
padding
Pad
N
Len
Encrypted
Pa load
Payload
padding
Pad
N
Len
Cl
Class
2 such
h as SHA
SHA-1
1
SPISeq#
Opt
IV
Payload
padding
Authenticate
Pad
N Opt ESN
Len
CAAMではProtocol Aware
となり、暗号、認証の一
となり、暗号、認証の
連の処理(ヘッダ/ト
レーラ処理含む)を1コ
マンドで指定できる。
→ CPUからのオフロード
CAAMコマンドのプログラミ
ングにて柔軟な処理が可能
ングにて柔軟な処理が可能。
Output Frame:
Optional
Opt
SPISeq#
IP Hdr
IV
Payload
padding
Esp header
TM
External Use
25
Pad
N ICV
Len
パケットI/O:RapidIO Message Manager (RMan)
RapidIOの送受信をDPAAに統合、SoC内部ではキュー・ベースで転送
26
I$
I$
WQ7
P
PME
L2$ D$
S
SEC
I$
Core
D$
External Use
WQ6
Channel
D$
Segmentation
Unit
Segmentation
Unit
Channel
Frame Manager
1GE 1GE
10GE
1GE 1GE
TM
WQ5
WQ4
WQ3
WQ2
Reassembly
Unit
WQ0
WQ1
WQ2
WQ3
WQ4
WQ5
WQ6
WQ7
Classification
Unit
WQ1
Reassembly
Unit
WQ0
Classification
Unit
Segmentation
Unit
Channel
WQ0
WQ1
WQ2
WQ3
WQ4
WQ5
WQ6
WQ7
Reassembly
Unit
Disassembly
Contexts
RapidIO
O Outbound Trafficc
QMan
Reassembly
Contexts
Inbound Rule
Matching
Classification
Unit
ARB
RapidIO Inbound Traffic
RMan
Agenda
•
DPAAが必要となる理由
•
DPAA構成ブロック
− QMan
− FMan
− BMan
− SEC
− RMan
•
•
パケットの流れ
まとめ
TM
External Use
27
IPSec暗号パケットの復号化
• コアは自ポータルからデキュー
コアは自ポ タルからデキュ
• パケットヘッダを見て、暗号化されている
こと、どのSAトンネルのものかを判断
• コアはFDを作り、SEC宛てにエンキュー
Core 0
(4)
• SECはディスクリプタ内コマンドを実行、パケッ
トを復号化、処理結果をメモリへ書き出し
• 処理結果を示すFDを生成 。次処理の為コア宛てに
エンキュー
• コアは自ポータルからデキュー
• コアはSEC処理ステータスを確認
• OKならば、復号パケットにL2ヘッダを付加、
FDを作成しFMan送信ポート宛てにエン
キュー
・・・
・・・
Core N
(7)
SEC
(6)
• SECは自ポータルからデキュー
• SEC処理に必要なディスクリプタを生成
• SAトンネル情報(暗号/認証方式、鍵、等)は、FQ毎に
SAトンネル情報(暗号/認証方式 鍵 等)は FQ毎に
予め設定
・・・
・・・
・・・
((3))
((5))
QMan
• 適正サイズのバッファを要求
• BManよりバッファ取得後、DMAにて受信フレームを外部メモリへ転送
よりバ
得後
受信
ムを外部
転送
• 受信フレームヘッダ部はFManで解析、宛先キューを決定し、エン
キュー
FMan
PCD
(1)
(8)
(2)
BMan
(9)
• バッファの解放
TM
External Use
28
• フレーム受信
• FManは自ポータルからデキュー
• DMAにてパケットデータを外部メモリから読み出
しポートから送出
まとめ
•
DPAAは、基本的に、パケット処理をコアから完全にオフロードす
る為のものではない
•
DPAAは、“マルチコア”プラットフォームでのパケット処理を”効率
的“に行う為のしくみ
•
シングルコアSoCでは考慮する必要がなかった、マルチコアでパ
グ
ケット処理を行う際の課題をDPAAが解決
− ロード・バランス(複数コアの効率的な利用)
− オーダリング管理
− キャッシュの有効活用、など
TM
External Use
29
TM
www.Freescale.com
© 2014 Freescale Semiconductor, Inc. | External Use