首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于QDR-IV SRAM实现高性能网络系统设计

基于QDR-IV SRAM实现高性能网络系统设计

在过去40年里,随着制造工艺的进步,各种专用存储设备不断推向市场,满足着不同系统的存储需求。众多的选择,意味着系统架构师和设计者可以同时考虑多种方案,根据应用选择合适的存储子系统。尤其是在网络应用方面,架构师面临着不断增加的网络流量所带来的挑战。

据估计,2015年到2020年期间,网络流量的年均复合增长率(CAGR)将达到22%,这一增长主要来自于无线设备的爆炸式增长以及不断增加的视频用量。由于数据包处理的随机性,网络传输的关键—路由器和交换机的性能将和所使用的存储子系统的随机存取性能(以随机存取速率(RTR)衡量)直接相关。本文将会介绍四倍数据传输率(QDR—IV)静态随机存储器如何用于解决网络设计中的性能瓶颈,还介绍了在使用200~400Gbps速率下以太网线卡的统计计数器和转发表进行查找时,如何充分发挥QDR-IV SRAM的性能优势来优化设计。

交换机线卡中的存储子系统
图1为一个典型400Gbps数据层线卡的功能模块、芯片组和存储子系统。

图1:交换机/路由器的数据层线卡

媒介接入控制器(MAC):在共享媒介网络(如以太网)中,媒介接入控制器具有提供寻址和控制信道访问的作用,从而可以使网络节点之间进行联系。MAC连接着 过载缓冲器(OS buffer),使系统设计者能超载与线卡带宽有关的前端(如:100G线卡上的120G前端)。过载缓冲可在一段特定的时间内储存“超额”的数据。该缓冲器需要有在几毫秒时间内转存几个G数据的能力,因此,单位比特成本是最主要的决定标准,也是SDRAM(同步动态随机存储器)最为适合的原因。
网络处理器(NPU)具有多种功能,包括解析数据以确认协议、验证数据包的完整性、基于目标地址查找下一跳地址等。此外,网络处理器收集数据流中数据包的统计信息,用于计费和网络管理等。以下是连接到NPU的存储子系统:
        分类查找——检查传入包的特点,确定是否接收该传入数据包。此查找功能用于源端口、目标端口、源地址、目标地址和所用的协议。对每个数据包均进行查找(基于一个长字符串)。此查找功能的首选存储器是TCAM(三态内容寻址存储器)。通过TCAM可使用二进位和“无关”状态进行搜索,这使得它能基于模式匹配来进行更广泛的搜索。

        转发查找——FIB(转发信息库)表保存了路由中下一跳可能的目标地址。此查找是一个迭代过程,因此会对存储器进行多次访问。每个数据包需要2~8次随机存储器访问,转换为高随机存取速率。QDR-IV SRAM是高随机存取速率的理想选择。

统计&流量状态——路由器对每个数据包和数据流(相关数据包组成的流)进行统计。此统计通过计数器的形式实现。每个应用会有很多这类计数器。计数器用来保存前缀、流和数据包分类。因此,刷新计数器需要高性能的存储器才能满足多重的读—修改—写操作。线卡中的统计和流量状态可共用一个存储器。考虑到对高随机存取速率的需要,QDR-IV SRAM在这方面也是最佳选择。

流量管理器(TM)——流量管理器以数据包的粒度为基础判断是否允许使用共享介质带宽,并在带宽过载时处理拥塞。服务质量(QoS)由流量管理器负责,因此数据包根据层次体系分成不同的等级。这方面关键的存储子系统为:

        数据包缓存——数据包缓存保存将传至交换机结构的数据包。缓存的密度取决于线卡速率和往返时延(RTT)(最高可达250ms)。数据包缓存的选择更多地取决于密度和成本,而非性能。这方面适合选择SDRAM。不过,为了克服DRAM(动态随机存取存储器)本身的限制,客户可采用一种由SRAM和DRAM组成的层次结构,其中快速的SRAM用来作为头/尾高速缓存,弥补速度较慢但容量较大的DRAM的不足。QDR(四倍数据速率)可作为一种高效的头/尾高速缓存用于这种结构中。

        调度器数据库——调度指决定何时将数据包发送到交换机结构的过程,此决定基于数据包的目的和所需的服务质量(QoS)或服务等级(CoS)。数据包被分为几种等级,分别与不同层次的服务相关(服务提供商的收益部分)。通常来说,调度程序需要对每个数据包进行一次读加写操作。虽然调度器对时延周期不敏感,以纳秒(nanosecond)为单位的绝对时延期仍然非常重要。调度器需要在一个最小尺寸数据包的到达时间内完成一个队列/出队列(读/写)动作。因此,读/写潜伏期较长的存储器无疑不适合此应用。

SDRAM用于大的数据包缓存,而SRAM则用于头—尾高速缓存。传送至线卡的数据包保存在一个尾高速缓存中,然后转移到较慢但容量大的DRAM中。同样,准备确定发送时间的数据包,也成块地从DRAM中转移到SRAM头高速缓存中。

通过QDR SRAM可对头 — 尾高速缓存的调度器数据库进行高效寻址。 表1显示了一个路由器中不同存储子系统的随机存取速率要求,单位为百万次存取/秒(MT/s)。R是数据包速率,单位为百万数据包/秒(Mpps)。

表1:路由器不同功能所需的存储器RTR要求

QDR-IV SRAM概述
QDR-IV SRAM配备了一个同步接口,可在一个时钟周期内完成两次写操作或两次读操作,或一次读写结合的操作。QDR—IV有两个双向数据端口A和B,每个均可以用于读或写操作。这一特点带来了额外的灵活性,架构师可将之用于读/写并不一定平衡的应用中。每个端口在两个时钟沿均可进行数据传输(DDR(双倍数据速率)操作),工作模式为突发式,每个时钟周期的突发长度为两个字(每个字为X18或X36)。地址总线为通用型,同样支持双倍数据速率,其上升沿和下降沿能分别为端口A和端口B提供地址。QDR—IV支持嵌入式ECC(错误检查和纠正),可从根本上消除软错误,提高存储器陈列的稳定性。

QDR-IV SRAM有两种规格,即QDR-IV HP和 QDR-IV XP。HP的频率最高可运行在667 MHz,而XP存储器则可高达1066 MHz。下表列出了两种QDR—IV的关键结构特点。两种存储器均有72和144 Mbs两种密度可选,并且支持密度或性能的宽度和深度扩展。

表2:QDR-IV SRAM的主要功能

QDR-IV HP 和XP的主要区别是内存条(bank)的使用。QDR-IV XP可通过将存储器空间分成8个内存条来增加性能,用3个地址的最低有效位(LSB)表示。要求的存储方案是在同一周期内存取不同的内存条。从一个周期到另一周期,所有的内存条均可存取,系统设计师可通过规划系统架构来相应地分配记忆库地址,充分发挥极速存储器的RTR性能。

以下例子展示了两种应用,一种使用QDR-IV HP来进行转发表查找,而另一种将QDR-IV XP用于统计计数器,线路速率均为400Gbps。

400Gbps线速下的转发表查找
如前所述,转发表查找需要任何地方均为2R到8R的存取,此处R为包速率,单位为百万数据包/秒(Mpps)。在400Gbps的线速下,R=600,要求RTR为1200到4800MT/s。以符合以下转发表要求的400Gbps二层交换机为例:

1M x 144位条目
每个数据包查找1个目标地址(DA)(读取)
每个数据包查找1个源地址(SA)(读取)
1次源地址登记(写)或60 Mpps下的CPU访问
基于以上:
密度要求:1M x 144位 => 144 Mb
读访问速度(目标地址+源地址) = 600 +600 = 1200 Mpps
写入更新速率 = 60Mpps

由于数据总线为读写共用,当读操作后续为写操作时,总线需要调转方向。因此,QDR—IV高性能SRAM每次从读到写的切换需要4个周期。因时延的缘故,从写到读不会出现这种情况,读取有5个时延周期,而写入仅有3个时延周期。因总线转向而导致的带宽损失可通过在写入查找表前,最多4次刷新先进先出(FIFO)队列来尽可能地减少。因此需要FIFO中带有一个最新条目的4排高速缓存,如果地址匹配的话此缓存可提供源地址或目标地址查找。每次写入更新的内部整理自检为:
= 4个写入周期 + 4个总线转向周期/4个周期
= 2
用于写入更新的RTR = 写入的内部整理自检* 写入的更新率
= 2 * 60  = 120Mpps速率。
整体RTR要求 = 600+600+120 = 1320MT/s
返回列表