无损以太网的ROCE革命,队列的缓存空间优化分析

**** 

ROCE无损以太网,队列的缓存空间优化

****   

多级缓存架构优化芯片性能:

* 缓存空间细分为芯片级、端口级和队列级,实现精细管理。

* 无损队列引入Headroom缓存空间,确保数据完整性。

   在芯片层面:

静态缓存为端口提供保证的缓存空间,采用独占分配机制。一旦端口分配到缓存资源,即使闲置,也不会被其他端口占用。这确保了端口始终拥有预留的缓存容量。

动态缓存:芯片上 Packet 缓存包含动态和静态部分。动态缓存进一步划分为 Service Pool 和 Headroom Pool。

Service Pool 专用于满足流量需求,而 Headroom Pool 为意外流量高峰提供缓冲。这两个分区独立运作,无法相互使用空闲缓存。

  • Service Pool:服务于端口级的Port Service缓存划分,所有端口级的Port Service缓存共享同一个芯片级Service Pool。例如,如果芯片级Service Pool缓存容量为100KBytes,端口1和端口2的Port Service缓存需求同为80KBytes。当某一时刻端口1已占用70KBytes的Port Service缓存时,端口2理论上最多还能再使用30KBytes的Port Service缓存。
  • Headroom Pool:针对端口级的Port Headroom缓存进行划分,所有端口级的Port Headroom缓存同样共享芯片级的Headroom Pool。假定芯片级Headroom Pool缓存大小设定为50KBytes,端口1和端口2的Port Headroom缓存需求均为40KBytes。在某一时间点,若端口1已占用30KBytes的Port Headroom缓存,那么端口2在此情况下最多还能额外占用20KBytes的Port Headroom缓存空间。

   在端口层面:

  1. Port Guaranteed

Queue Guaranteed的缓存资源遵循独占分配原则,专用于分配给队列级缓存,确保队列资源隔离。这种设计防止队列间缓存共享,确保每个队列拥有独立的缓存空间,最大化资源利用效率。

  1. Port Service

Port Service缓存主要用于分配给队列级的Queue Service缓存。所有队列级的Queue Service缓存共享同一端口级别的Port Service缓存资源。

举例来说,假设端口级别的Port Service缓存容量为80KBytes,队列1和队列2的Queue Service缓存需求量都设置为60KBytes。在某一时间节点,若队列1中的数据包已占用50KBytes的Queue Service缓存空间,那么队列2此时最多还可使用30KBytes的Queue Service缓存空间。

  1. Port Headroom

Port Headroom缓存区段用于分配给队列级的Queue Headroom缓存,所有队列级的Queue Headroom缓存均共享同一端口级别的Port Headroom缓存资源。假如端口级别的Port Headroom缓存总量为40KBytes,而队列1和队列2的Queue Headroom缓存需求均为30KBytes。在某一具体时刻,若队列1中的数据包已占据了25KBytes的Queue Headroom缓存空间,那么队列2此时最多还能再分配到15KBytes的Queue Headroom缓存空间。

   在队列层级:

  1. Queue Guaranteed

Queue Guaranteed 确保队列的基本报文传输能力,即使未获取队列服务缓存,也能转发一定量的报文。它包括两个阶段:

  • 入队列 Queue Guaranteed:报文进入队列前

  • 出队列 Queue Guaranteed:报文离开队列前

  1. Queue Service

Queue Service 应对流量激增,为队列提供临时缓存空间。包含入队列和出队列,当待转发报文大小小于缓存剩余空间时,才能加入并转发。否则,报文将被丢弃。

  1. Queue Headroom

Queue Headroom是网络中宝贵的缓冲空间,它确保即使在暂停帧通知期间,新报文也能被安全接收,避免因缓存不足而丢失数据。它充当保护屏障,防止报文丢失,从而确保网络通信的顺畅和稳定。

避免报文丢失风险:

芯片内部的单一服务池可能导致无损报文丢失,当有损报文流量激增时,它们会占用服务池。

为了防止这种情况,应规划无损报文队列的头部空间,以确保充足的存储空间应对流量激增。

优化缓存分配机制,释放设备转发潜力。先进的无损队列优化功能合理分配缓存空间,确保在不同流量负载下无损队列始终保持零丢包高效转发。

通过缓存空间优化,可划分芯片共享缓存,创建无损和有损队列。无损队列的缓存大小基于Headroom Pool和无损队列自身的Service Pool,确保不丢包转发。自动或手动配置Service Pool和Headroom Pool,优化无损队列的性能。

 

-对此,您有什么看法见解?-

-欢迎在评论区留言探讨和分享。-

相关推荐
小堃学编程5 小时前
计算机网络(十) —— IP协议详解,理解运营商和全球网络
网络·tcp/ip·计算机网络
IPFoxy6668 小时前
探索路由器静态IP的获取方式
网络·智能路由器
menge23338 小时前
VLAN:虚拟局域网
网络·智能路由器
AI完全体8 小时前
【AI知识点】偏差-方差权衡(Bias-Variance Tradeoff)
人工智能·深度学习·神经网络·机器学习·过拟合·模型复杂度·偏差-方差
sp_fyf_20248 小时前
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-02
人工智能·神经网络·算法·计算机视觉·语言模型·自然语言处理·数据挖掘
ZachOn1y9 小时前
计算机网络:计算机网络概述 —— 初识计算机网络
网络·计算机网络·知识点汇总·考研必备
三金121389 小时前
SpringIoC容器的初识
网络·网络协议·rpc
狼头长啸李树身10 小时前
眼儿媚·秋雨绵绵窗暗暗
大数据·网络·服务发现·媒体
SizeTheMoment11 小时前
初识HTTP协议
网络·网络协议·http
哲伦贼稳妥12 小时前
一天认识一个硬件之机房地板
运维·网络·经验分享·其他