DPDP核心技术-并行计算机制

DPDK 技术利用通用服务器平台的多核处理器来对网络数据包进行处理,并行计算机制主要包含两种方式,一种是提高处理器的指令并发度,另一种是多核并行处理网络数据包。

指令并发是指一个处理器时钟周期内执行更多的指令,DPDK 技术通过软件调优的方式对 POSIX 接口进行优化,影响了处理器运行时指令的派发和执行。

多核并行处理网络数据包是DPDK 程序设计的基本思想。如图1 所示,每个物理核心都可以独立创建一个任务线程,各个核心之间的通信通过芯片内部总线来完成,它们拥有独立的一级缓存和二级缓存,并共享第三级缓存和内存。DPDK 将处理网络数据包的任务从水平方向进行扩展,按照指定逻辑划分成若干子任务,然后绑定到特定的核 上( 如 core1,core2,……,core
n) ,使任务尽量长时间地在单一核上进行处理,避免多个核共同处理任务。这样提高了 CPU 缓存的命中率和处理器性能、减少内存访问开销和每个核心需要处理的网络负载。

多核并行处理会带来 Cache 一致性的问题,当多个核对同一个内存块进行读写操作时,因为直写和回写不同的 Cache 策略,导致一个内存块在不同核心的不同 Cache 中可能有多个备份。为了避免多个核心同时访问同一个内存地址或者数据结构,DPDK 将内存分割,每个核都有属于自己的内存,并且管理自己的数据结构,让数据尽可能本地化和无锁化。对于网络端口的访问,DPDK 也为每个核提供了单独的接收/发送队列,这样解决了 Cache 一致性问题,也避免了网络负载的竞争。

 

おすすめ

転載: blog.csdn.net/hdsHDS6/article/details/117551327