在曩昔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
以下是运用两个72Mb, X36 QDR-IV HP的存储子体系(运转频率为667Mhz)。这两个QDR存储组成带宽扩展方式,以便每个时钟周期在端口【A0、A1】和端口【B0、B1】支撑144bits的数据。调度器在方针地址、源地址读取恳求和表写入恳求(一次性4次写入)之间做出判别,并将它们发送到端口【A0、A1】或端口【B0、B1】。有满意的带宽来满意一切的恳求。经过附加QDR-IV HP存储器进行深度和宽度扩展,还能支撑更多的表条目,或支撑每条目更多位数。
图2:运用QDR-IV HP的转宣布查找
400Gbps的计算计数器
如前所述,计算计数器需求任何地方均为2R到16R的存取,此处R为包速率,单位为百万数据包/秒(Mpps)。在400Gbps的线速下,R=600,要求RTR为1200到9600MT/s。以契合以下计算计数器要求的路由器为例:
上行为1百万计数器对
下行为1百万计数器对
每计数器对72bits
每秒8亿次更新
密度要求:2 M x 72 = 144 Mb
要求的RTR = 1600 MT/s(因为读取—修正—写入操作的原因,为2x数据包更新速率)
一个作业在800Mhz的极速X36 QDR—IV存储器即可满意此要求。SRAM的每个存储方位存储两个计数器,每个36 bits,一共200万个计数器。一个典型的计数器对是“总收到的数据包数”和“总字节数”,能很简单地保存在SRAM的地址单元内。端口A用于读取操作,端口B用于写入操作,因而无需总线转向时刻。
因为传入包的随机性,计数器更新拜访的地址也是随机的。QDR-IV XP分为8个内存条,在一个周期内同一源地址不能有两次拜访。因而,为防止呈现拜访内存条的抵触,存储操控器会发送操控流到计算更新逻辑单元。图3显现的是依据FPGA的内存操控器实例。在FPGA中,QDR—IV的每个800 Mhz端口都分红4个通道,每个通道都运转在200 MHz。
图3:依据FPGA的QDR—IV存储操控器
当端口A和B之间呈现拜访内存条的抵触时,存储操控器将宣布“繁忙”(Busy)信号,并将违背的存取操作顺延至下一个时钟周期。如呈现“繁忙”信号,体系将不再呼应更新率恳求。这一问题可经过体系地将计数器分配到它们的存储器阵列地址来处理。QDR—IV有8个内存条,由3个存储地址LSB(最低有用位)表明。关于当时的比如而言,QDR—IV地址的LSB A【0】被映射到上行(入端口)(A【0】=1】)和下行(出端口)(A【0】=0】),以便构成用于调度的奇数和偶数地址。以下图4是假定上行和下午计数器均不超越4亿次更新/秒的状况下,怎么完结用于计算更新功用的存储子体系。
端口B I/F
端口A I/F
图4:依据极速功用QDR—IV的计算计数器处理计划
传入的数据包,以及对应的计数器,主动分为几类。这些计数器类别需求分配不同的内存条,以便防止内存条抵触,并充分发挥QDR-IV XP存储器的功用。依据全体体系架构的不同,分类如下:
1、 依据上行或下行的计数器分类
2、 假如多个NPU(网络处理器)连入同一个计算计数器FPGA,则每个NPU需分配一个不同的内存条
3、 依据以太网衔接的计数器分类和内存条分配
4、 依据虚拟通道(VL)或服务等级(CoS)的计数器分类和存储器阵列库分配
5、 依据流的计数器分类和恰当的内存条分配
6、 用于定制计划的其它数据包/计数器分类法
定论
QDR-IV SRAM的高随机存取速率使其十分合适高功用要求的网络运用。本文介绍了运用QDR-IV HP和QDR-IV XP用于转宣布查找和计算计数器运用实例。体系架构师和规划师能够参照这些比如开端自己的规划,并依据详细的运用需求进行改动。QDR-IV HP和QDR-IV XP均得到了Altera公司和Xilinx公司的存储操控器IP的支撑,使存储子体系支撑100G到400G的线卡。