当前位置:网站首页>网络设备硬核技术内幕 路由器篇 19 DPDK(四)
网络设备硬核技术内幕 路由器篇 19 DPDK(四)
2022-07-27 14:05:00 【用户8289326】
在DPDK中,对cache的主要优化,除了利用时间局部性和空间局部性以外,更重要的是,要避免多核对缓存的ping-pong式读写。
昨天提到,如果理发店的tony老师上一次让小姐姐非常满意,那么,下一次小姐姐访问tony老师的概率将大大增加。这就是cache加速指令执行的秘籍。
但是,如果有多个小姐姐同时看上了tony老师,则会导致大家在tony老师身后排队。更加雪上加霜的是,tony老师刚刚为前一个小姐姐做完发型的时候,手是脏的,需要清洗后才可以为下一个小姐姐服务。
是的,我们在说多核同时写入一条高速缓存行的情况。
对于多核同时写入一条高速缓存行的情景,由于缓存一致性的要求,当核A写入高速缓存后,需要确保高速缓存的内容与RAM一致。高速缓存管理单元会将这块RAM在其他处理器核维护的高速缓存行标记为dirty,需要做清洁(flush)才可以让下一个core使用。
这段时间的开销是多少呢?我们知道,cache是用来解决RAM读写延迟和CPU运行速度之间的差异的。对于cache命中的情况,CPU里面的ALU可以立即从cache读取,但未命中则需要从DRAM读取,经历MMU地址转换-DRAM控制器写入行地址-写入列地址-读写的过程。这大约会损失100个CPU指令周期。
为了避免前面提到的小姐姐排队等待tony老师洗手造成的弊端,方法是很好解决的:给每一个小姐姐分配一个喜欢的老师就行了,可以是小P老师,kevin老师,加藤鹰老师,东尼大木老师…
因此,我们可以为不同的core分配不同的缓存。
除了在前面提到的,对于计数器等多个核可能并发访问的数据结构,小姐姐们还喜欢争抢的一位老师是,网卡的收发队列。
一般地,每个网卡的MAC芯片至少有8个队列。
但是,我们知道,对于Intel的至强处理器,每颗CPU的核数可能多达28核,以超线程论则可能达到56个线程。2路的服务器会有112个线程。显然,8个tony老师无法满足112个小姐姐的需求。
怎么办呢?
且听下回分解。
边栏推荐
- Redis
- Nefu117 number of prime numbers [prime number theorem]
- DXGI acquisition process
- [cache series] completely solve the problems of cache avalanche, breakdown and penetration
- 获取Unity打开摄像头第一帧有画面的数据
- Toward Fast, Flexible, and Robust Low-Light Image Enhancement(实现快速、灵活和稳健的弱光图像增强)CVPR2022
- TXT把换行 替换为空格或者取消换行
- @Detailed explanation of repository
- C language layered understanding (C language array)
- Import the virtual machine officially made by Kali Linux into Oracle VirtualBox
猜你喜欢

代码覆盖率统计神器-jacoco工具实战

Annual comprehensive analysis of China's online video market in 2022

Summary of basic knowledge of C language

在Oracle VirtualBox中导入Kali Linux官方制作的虚拟机

Redis

idea打jar包与引入jar包

JS what is declaration in advance? The order of function and variable declaration in advance (the foreshadowing of execution context)
![[intensive reading of papers] grounded language image pre training (glip)](/img/3a/4ad136065acb8627df9e064ed8ef32.png)
[intensive reading of papers] grounded language image pre training (glip)

PROFINET simulator tutorial

Unity3d learning note 10 - texture array
随机推荐
大家最想要的,最全的C语言知识点总结,还不赶紧学习
The database uses PSQL and JDBC to connect remotely and disconnect automatically from time to time
va_ List usage summary
视觉系统设计实例(halcon-winform)-10.PLC通讯
Is the security of online brokerage app account opening guaranteed?
Annual comprehensive analysis of China's online video market in 2022
南山区民政局关于开展2022年度南山区社会组织等级评估工作的通知
图解 SQL,这也太形象了吧
DXGI 方式采集流程
telnet远程登录aaa模式详解【华为eNSP】
< C> C language hash table usage
Redis
如何做好企业系统漏洞评估
如何帮助企业优化Office管理
Toward Fast, Flexible, and Robust Low-Light Image Enhancement(实现快速、灵活和稳健的弱光图像增强)CVPR2022
Forward proxy and reverse proxy
@Bean 与 @Component 用在同一个类上,会发生什么?
Graphical SQL is too vivid
DirectX 入门知识
How to do well in enterprise system vulnerability assessment