Packet Matching on FPGAs Using HMC Memory: Towards One

PacketMatchingonFPGAsUsingHMCMemory:
TowardsOneMillionRules
DanielRozhko,GeoffreyElliott,DanielLy-Ma,PaulChow,Hans-ArnoJacobsen
Department of Electrical and Computer Engineering
University of Toronto
Motivation
• Packetprocessingisusedtodecidewhattodowith
incomingpacketstoanetworkdevice
• Checkpacketsagainstalistofrules(rulesets)
2
Motivation
• Packetprocessingisusedtodecidewhattodowith
incomingpacketstoanetworkdevice
• Checkpacketsagainstalistofrules(rulesets)
• Certainapplicationsneedverylargerulesets
• On-chipFPGAimplementationssupportalimited
numberofrules(<10K)
• Traditionaloff-chipmemoryistooslow
3
Motivation
• Packetprocessingisusedtodecidewhattodowith
incomingpacketstoanetworkdevice
• Checkpacketsagainstalistofrules(rulesets)
• Certainapplicationsneedverylargerulesets
• On-chipFPGAimplementationssupportalimited
numberofrules(<10K)
• Traditionaloff-chipmemoryistooslow
• EmerginghighperformancememorieslikeHybrid
MemoryCube(HMC)couldbeasolution
• 10Glinerateat1millionrules
4
SystemArchitecture
2x8-Lane
HMCLinks
PCIe
HMC
Memory
PicoFramework
Stream HMCPorts
FromHost
Memory
Prefetcher
TestPacket
Generator
Packet
Stream
Packet
Header
Extractor
Header
Stream
Rule
Stream
Packet
Packet
Packet
Packet
Matching
Matching
Matching
Matching
Engine
Engine
Engine
Engine
StreamToHost
Output
Result
Verifier
Output
Stream
KintexUltrascale060
PicoComputingAC-510
5
SystemArchitecture
2x8-Lane
HMCLinks
PCIe
HMC
Memory
PicoFramework
Stream HMCPorts
FromHost
Memory
Prefetcher
TestPacket
Generator
Packet
Stream
Packet
Header
Extractor
Header
Stream
Rule
Stream
Packet
Packet
Packet
Packet
Matching
Matching
Matching
Matching
Engine
Engine
Engine
Engine
StreamToHost
Output
Result
Verifier
Output
Stream
KintexUltrascale060
PicoComputingAC-510
6
SystemArchitecture
2x8-Lane
HMCLinks
PCIe
HMC
Memory
PicoFramework
Stream HMCPorts
FromHost
Memory
Prefetcher
TestPacket
Generator
Packet
Stream
Packet
Header
Extractor
Header
Stream
Rule
Stream
Packet
Packet
Packet
Packet
Matching
Matching
Matching
Matching
Engine
Engine
Engine
Engine
StreamToHost
Output
Result
Verifier
Output
Stream
KintexUltrascale060
PicoComputingAC-510
7
SystemArchitecture
2x8-Lane
HMCLinks
PCIe
HMC
Memory
PicoFramework
Stream HMCPorts
FromHost
Memory
Prefetcher
TestPacket
Generator
Packet
Stream
Packet
Header
Extractor
Header
Stream
Rule
Stream
Packet
Packet
Packet
Packet
Matching
Matching
Matching
Matching
Engine
Engine
Engine
Engine
StreamToHost
Output
Result
Verifier
Output
Stream
KintexUltrascale060
PicoComputingAC-510
8
SystemArchitecture
2x8-Lane
HMCLinks
PCIe
HMC
Memory
PicoFramework
Stream HMCPorts
FromHost
Memory
Prefetcher
TestPacket
Generator
Packet
Stream
Packet
Header
Extractor
Header
Stream
Rule
Stream
Packet
Packet
Packet
Packet
Matching
Matching
Matching
Matching
Engine
Engine
Engine
Engine
StreamToHost
Output
Result
Verifier
Output
Stream
KintexUltrascale060
PicoComputingAC-510
9
ExperiencewithHLS
2x8-Lane
HMCLinks
PCIe
HMC
Memory
PicoFramework
Stream HMCPorts
FromHost
Memory
Prefetcher
TestPacket
Generator
Packet
Stream
Packet
Header
Extractor
Header
Stream
Rule
Stream
Packet
Packet
Packet
Packet
Matching
Matching
Matching
Matching
Engine
Engine
Engine
Engine
StreamToHost
Output
Result
Verifier
Output
Stream
KintexUltrascale060
PicoComputingAC-510
10
ExperiencewithHLS
2x8-Lane
HMCLinks
PCIe
HMC
Memory
PicoFramework
Stream HMCPorts
FromHost
Memory
Prefetcher
TestPacket
Generator
Packet
Stream
Packet
Header
Extractor
Header
Stream
Rule
Stream
Packet
Packet
Packet
Packet
Matching
Matching
Matching
Matching
Engine
Engine
Engine
Engine
StreamToHost
Output
Result
Verifier
Output
Stream
KintexUltrascale060
PicoComputingAC-510
11
Results- Throughput
10 11
Processing Rate (bps)
10 10
10
9
10
8
10 7
10 6
10 5
4
2
1 PE
100 PEs
160 PEs (Systolic)
10 Gbps
2
6
2
8
2
10
2
12
2
14
2
16
2
18
2
20
Number of Rules
12
Pleasecomevisitour
posterformoredetails!
DanielLy-Ma([email protected])
13