为了账号安全,请及时绑定邮箱和手机立即绑定

关于slow path code 和 fast patch code的理解?

关于slow path code 和 fast patch code的理解?

Smart猫小萌 2018-10-15 16:26:21
作为jser,在性能优化的时候遇到:fast-path code和slow-path code是什么意思?两者之前是什么关系。在网络上搜索了下,并没有得到很好的阐述。现在得到的阐述为: 为了进行某些操作,调用一些C函数来处理。这些C函数被称为slow path 。这个....阐述忒模糊了..
查看完整描述

1 回答

?
动漫人物

TA贡献1815条经验 获得超10个赞

在网络设备里面区分不同的路径是一个很自然的选择,因为网络设备的首要任务是转发网络包,不同的网络包,在设备里面的处理路径不同。fast path就是那些可以依据已有状态转发的路径,在这些路径上,网关,二层地址等都已经准备好了,不需要缓存数据包,而是可以直接转发。slow path是那些需要额外信息的包,比如查找路由,解析MAC地址等。

first path是设备收到流上第一个包所走过的路径,比如tcp里面的syn包,有些实现把三次握手都放到first path里面处理,而有些只需处理syn包,其他包就进入fast path的处理路径。

在NP或者ASIC里面也需要区分slow path和fast path,fast path上的包都放在SRAM里面,而slow path的包放在DRAM里面。不过这也非绝对。决定处理路径的是对于速度的考虑。处理器的速度,内存的速度等。访问内存的速度由速度和带宽两个因素决定。因此,把SRAM放到fast path上,也是很自然的选择。

fast path: Frontend -> simple code generator -> assembler

slow path: Frontend -> IR optimizer (sometimes more than one level of IR) -> code-generator -> assembler


查看完整回答
反对 回复 2018-11-02
  • 1 回答
  • 0 关注
  • 1083 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号