SRAM在网络中的应用
扫描二维码
随时随地手机看文章
同步SRAM的传统应用领域是搜索引擎,用于实现算法。在相当长的一段时间里,这都是SRAM在网络中发挥的主要作用。然而,随着新存储技术的出现,系统设计师为SRAM找到了新的用武之地,如:NetFlow(网流)、计数器、统计、包缓冲、队列管理和存储分配器。
如今,人们对所有路由器和交换机的要求都不仅限于FIB(转发信息库)搜索。计数器需要跟踪接受服务的信息包数量,并获取统计数据来解决帐单编制问题。通过统计来连续监视网络(被称为NetFlow),从而完成问题检测和判定。随着每个信息包处理量的增加,需要采用包缓冲器来提升处理能力。除了以上提到的之外,由于系统中存储器资源增多,因而动态存储分配也是必需的。路由器或交换机的所有这些附加功能正在重新定义网络系统设计(见图1)。
图1 具有多种新功能的网络系统
此外,随着IPv6和VRF(虚拟路由器转发)的迅速普及,对更宽、更深、更快和更高效系统的需求愈加迫切。系统设计师必须能够以最低的成本来满足网络系统的所有度量标准。此时,简单的同步SRAM就难以满足要求了。所有这些功能均可借助DDR(双倍数据速率)或QDR(4倍数据速率)SRAM等速度更快、带宽更高的SRAM来实现。本文将分析上述的每一种应用及其目前和未来的要求,还将提出旨在满足这些要求的解决方案和建议。
QDR 与 DDR SRAM
由赛普拉斯、瑞萨、IDT、NEC和三星公司组成的QDR协会开发出了QDR SRAM,旨在通过把性能提升为原先的4倍来满足那些不仅需要标准ZBT(零总线转向时间)或NoBL(无总线延迟)SRAM的低延迟和满周期利用率,而且还需要大幅度提高工作频率的系统对带宽的要求。QDR SRAM具有单独的读和写端口,它们在每个数据引脚上以双倍数据速率彼此独立地工作,从而在一个时钟周期中传输4个数据字,4倍数据速率因此而得名。采用分离的读/写端口完全消除了SRAM与存储控制器之间发生总线争用的可能性,而这却是传统的公用I/O器件需要解决的问题。QDRII SRAM具有被称为回波时钟的源同步时钟,它们与数据输出一道生成。QDR SRAM采用了HSTL(高速收发器逻辑)I/O标准,以便实现高速操作。
QDR SRAM面向那些需要在读和写操作之间进行转换的应用,而DDR SRAM则主要面向需要进行数据流式处理(例如,先进行16项读操作,然后再执行16项写操作)的应用,此时,读和写操作之间的近期平衡为100%的读操作或100%的写操作。在这种情况下,有一根QDR SRAM总线在50%的时间里未被使用。其它的总线可能具有不平衡的近期读/写比例。后面这两种情况是促使人们进行DDR公用I/O SRAM开发的主要原因,在这种器件中,输入和输出数据共用同一根总线。在从读操作向写操作转换的过程中,需要总线转向周期,并减小了可用带宽。然而,对某些系统而言,这将产生优于QDR架构的平均总线利用率。控制信号极少,而且与QDR器件控制信号稍有不同。
网络应用
如引言部分所述,网络系统设计涉及诸多方面。即将采用网络设计来实现的各类应用的数量日趋庞大。这里讨论的是部分最常见的应用。
转发/路由选择
转发信息库(FIB)负责保存用于决定输入信息包的路由选择特性的路由选择信息。代表路由的前缀可被存储于三进制内容可寻址存储器(TCAM)中并进行即时搜索,或存储于SRAM中并利用某种算法对地址的若干位进行增量搜索。不管在哪种应用中,结果索引都具有一些用于指示所采取的措施的关联信息 —— 下一个跳地址、更新统计和另一个端口上的复制等。传统的做法是把该信息存储于SRAM中。
与展开式可扩缩包分类解决方案(在该解决方案中,TCAM正逐渐成为事实标准)相比,人们在FIB算法方面进行了大量的研究工作。但是,有两个发展趋势对面向FIB解决方案的SRAM型算法提出了重大挑战:(1)随着IPv6支持能力的提高,入口的宽度也在增加;(2)由于VRF表和虚拟专用LAN业务(VPLS) 采用率的提高,路由选择表的规模日益庞大起来。就VRF表而言,每个VLAN都存储了相似的路由选择表,而这会增加入口的数量。VPLS是一种新的范例,借助它可实现多层次网络的扁平化,从而获得更多的入口。随着入口宽度的增加,基于SRAM的算法需要构建更深且更宽的多分支树/trie树,使得完成一项搜索所需进行的SRAM存取数量有所增加。于是,越来越多的系统设计师开始采用QDR SRAM来取代传统的SRAM,因为前者提供了更高的带宽,能够实现更宽的树形结构,原因是可在指定的时间期限内完成更多的存取。
NetFlow
Cisco systems公司的NetFlow技术是Cisco IOS软件的主要组成部分,用于在数据进入特定的路由器或交换机接口时对其进行收集和测量。通过分析NetFlow数据,网络工程师能够发现导致拥塞的原因;确定每个用户和应用的服务类型(CoS),并确认通信量的源网络和目标网络。NetFlow实现了极为细致和准确的通信量测量和高级聚合式通信量收集功能。
目前,IETF(因特网工程特别工作组)正在对NetFlow的现有版本(ver9)进行标准化,并将其命名为IPFIX。除了Cisco之外,Enterasys和Juniper等网络供应商都在该标准的制订过程中发挥着作用,并且已经表示出采纳IPFIX的兴趣。当然,在多机种网络中,作为网络应用流相关信息的一致性来源,使得NetFlow/IPFIX的吸引力远远超过了其它方案。
概括起来,NetFlow提供了以下信息:
*信源 IP地址
*目的IP地址
* 源端口
* 目的端口
*第三层协议类型
*服务类型
NetFlow仅负责捕获入站通信量,因此,通常需要在链路的两端均安放仪表。目前,NetFlow是以采用特殊算法的软件来实现的,并把数据存储于QDR SRAM之中。由于NetFlow是一种需要满足一定线路速率的新技术,因此它是采用QDR来实现的。如今,可实现40Gbps"56Gbps数据速率的下一代路由器/交换机的大多数供应商都把目光集中在了具有250MHz"300MHz操作速度的QDR SRAM上。随着数据速率的增加,SRAM的速度指标变得愈发重要。
计数器
在每一种网络应用中,始终需要保持量度(metrics)。计数器是跟踪网络活动所必需的。对于每种网络协议而言,都需要跟踪一种特定的量度。例如:在IP层(第三层),通常设置了用于显示以数据报形式发送的网络通信量的数据报/秒计数器。这些数据报一般都是广播信息包,因此,为了减少广播通信量,了解哪些服务和处理采用了数据报是很有必要的。该信息可通过数据报计数器获得。在TCP(即第4层)中,一个相似的计数器是TCP段/秒计数器,它能够提供网络接收和发送的TCP段的总数。此外,每个网络都保留了误差计数器,用于跟踪检测到的传输误差和冲突的数量。大体而言,每个网络所需的计数器数量的增加将被视作网络缓冲空间不足的表现。
统计
除了NetFlow之外,有些供应商还把帐单编制和诊断作为统计以单独的系统来实现。例如,在服务提供商的网络中,帐单编制形成了一个非常重要的量度。每一个客户的网络使用记录都应加以保存,以获得该客户的记帐信息。统计信息可以按照每个数据流或每个聚合组来存储。在统计缓冲器中,对于存储器的选择来说,延迟和突发操作是重要的决定因素。在包处理过程中,需要对统计数据进行快速存取,因此,低延迟是至关重要的。而且,由于统计数据的位数往往不是很大,应优先选择采用短突发操作或无突发操作的SRAM。
与计数器相似,在大多数客户系统中,统计都是借助类似的数学算法和存储于DDR SRAM中的数据来实现的。对计数器用SRAM的所有速度和存储密度规格的要求也适用于统计SRAM。
包缓冲器
包缓冲存储器通常被用于在包处理过程中对输出端口和交换机结构中的信息包进行缓冲。在标准线卡中,包处理器具有一个包缓冲器,在该缓冲器中,信息包的内容将在执行包信头处理的同时被存储。包缓冲存储器中的决定因素是ASIC/NPU的速度以及线路速率。运行速度较慢的ASIC需要存储密度较大的缓冲存储器。缓冲存储器还取决于线卡所提供的服务类型。如果执行的是较为复杂的服务,则ASIC通常需要更多的时间来处理信息包,因而必须进行更多的缓冲处理。ASIC设计或NPU的选择还决定了包括突发操作和I/O宽度要求在内的其它特性。对于其中的某些应用而言,延迟是至关重要的指标。在这样的场合中,应选择具有较低延迟的包缓冲器。所以,这样的设计通常把QDR或DDR SRAM(而不是DRAM)用于包缓冲。然而,有些应用需要一个较深的包缓冲器,ASIC需要执行更多的操作。此时,最为经济的解决方案是采用DRAM来实现该功能。因此,在实现包缓冲器的过程中,始终需要进行权衡。目前,线卡的设计目标是实现更高的速度并处理更多的信息包。这意味着包缓冲处理器应当兼具深度和速度。针对这种要求,采用QDR SRAM来实现将是理想的解决方案。
队列管理/通信量规整
队列管理器负责确保接收到的信息包是否符合通信契约。队列管理器的工作内容包括在与契约进行比照之后对信息包进行标注。每个线卡接口都拥有一个输入队列(输入信息包将被置于该队列之上,以等待路由选择处理器的处理)和一个输出队列(路由选择处理器把即将在接口上发送的待发信息包置于该队列上)。在某些场合,客户可通过实现计数器来管理这些队列(根据处理能力来管理输入信息包的流动)。由于该应用对速度的需求更甚于对密度的需求,且读/写比例几乎为1,因此,QDR SRAM 将是其理想选择。
动态存储器分配
在线卡上,通常存在几组面向不同应用的存储器。这往往会增加电路板上的存储芯片数量以及同一个设计中所使用的存储器类型。如今,设计师在着手实现存储分配器时采用的是SRAM,以管理可用的存储器组。该存储分配器SRAM负责存储所有存储器组的地址规范,并根据请求向提出请求的应用提供对一组特定存储器的存取。这使得设计师能够在不同的应用之间共用同一组存储芯片,而不会发生请求冲突。该应用要求对SRAM进行快速存取,而且几乎都是读操作较多而写操作较少。因此,对于该场合而言,最合适的选择是DDR SRAM。
结语
新型网络应用为QDR和DDR SRAM赢得设计机会敞开了多扇大门。由于目前这一代具有300MHz(DDR)速度和72Mb数据存储空间的QDRII/DDRII SRAM能够满足下一代40Gbps"56Gbps路由器/交换机的全部要求,因此,大部分网络应用都在缓慢地向采用QDR/DDR SRAM过渡。此外,由于这些路由器/交换机达到了下一个节点(80Gbps线路速率)水平,所以,QDRII+/DDRII+和 QDRIII/DDRIII SRAM可实现更高的速度和存储密度。除了速度和存储密度之外,QDRII+/DDRII+还具有诸多旨在实现简易型PCB和系统设计的特点。