《从世界上运行速度最快的代码中你能学到什么?.pdf》由会员分享,可在线阅读,更多相关《从世界上运行速度最快的代码中你能学到什么?.pdf(99页珍藏版)》请在三个皮匠报告上搜索。
1、100 Gbps10 Mpps100 nsHow fast is fast?100 Gbps10 Mpps100 nsHow fast is fast?100 Gbps100 Gbps10 Mpps100 nsHow fast is fast?100 Gbps10 Mpps100 Gbps10 Mpps100 nsHow fast is fast?100 Gbps10 Mpps100 ns100 Gbps10 Mpps100 nsHow fast is fast?100 Gbps10 Mpps100 ns300 clocks(per core)100 Gbps100 nsAgenda 10 M
2、ppsOptimizationsData StructuresInterleavingLoop unrollingVector InstructionsInliningBenchmarking100 Gbps100 nsIntroductionsAlan ElderMicrosoftAzure for OperatorsRadio NetworkMobile phone5G Packet CoreInternet5G packet processingRadio NetworkMobile phone5G Packet CoreInternet5G packet processingEther
3、netIPUDPGTPIPPayloadMatch sessionRadio NetworkMobile phone5G Packet CoreInternet5G packet processingEthernetIPUDPGTPIPPayloadMatch sessionRadio NetworkMobile phone5G Packet CoreInternetApply Policy5G packet processingEthernetIPUDPGTPIPPayloadMatch sessionRadio NetworkMobile phone5G Packet CoreIntern
4、etApply PolicyIPPayloadEthernetRewrite5G packet processingPacket Processing DeviceHeaderPayloadRewriteMatchHeaderPayloadA simplified exampleAttempt#0Start simpleAttempt#0void process_packet(Packet*packet)/Extract the lookup key from the packet LookupKey lookup_key;extract_lookup_key(packet-data,look
5、up_mask,lookup_key);/Perform lookup Match*match=lookup_map.find(lookup_key)-second;/Apply the Rewrite apply_rewrite(packet,match-rewrite);Attempt#0void process_packet(Packet*packet)/Extract the lookup key from the packet LookupKey lookup_key;extract_lookup_key(packet-data,lookup_mask,lookup_key);/Pe
6、rform lookup Match*match=lookup_map.find(lookup_key)-second;/Apply the Rewrite apply_rewrite(packet,match-rewrite);Attempt#0void process_packet(Packet*packet)/Extract the lookup key from the packet LookupKey lookup_key;extract_lookup_key(packet-data,lookup_mask,lookup_key);/Perform lookup Match*matc