|
概述 我们正经历着包括电信、互联网和企业环境在内的数字世界的大融合。这种融合的复杂性决定了在实现通信通用的标准协议或方式之前还有很多事情需要处理。例如,在存储网络方面,各个公司都正在探索新一代的智能存储网络交换机,它把存储区域网络(SAN)和网络附属存储(NAS)的功能和优势结合在一起,同时降低现有IP网络结构和人员的成本以及目前环境的复杂性。它们正朝着网络和存储相结合的中央智能方向发展。同时,各公司将继续在现有和即将出现的技术如Fibre Channel,iSCSI,IP,Infiniband上进行投资。这些投资将继续增加对智能交换机或其他器件的需求,从而促进目前中间存储网络的发展。这些新的交换机本身就能够智能地处理许多现有的协议和技术,还能透明处理新的和正在发展的标准,进行平滑地移植。 功能融合的最大推动因素是要改善网络的可管理性、灵活性、可伸缩性和处理功能,同时根据应用需求维护和增加处理性能。为了有效地把NAS、SAN和其他新兴存储方案统一到单个存储结构中,需要更智能的存储网络交换机,它包括每秒数十吉位的数据通道处理器性能。实现包括业务管理,协议转换和数据管理的数据通道处理功能的性能水平并不是很容易的。可能的方案包括ASIC、处理器和可编程逻辑器件,它们在灵活性,成本、开发时间和易于设计方面,具有不同的权衡和取舍。 硬件评估 专有集成电路(ASIC)能满足存储应用中数据通道处理的性能需求。除了实现高速数字功能外,ASIC也满足I/O传输接口(如Fibre Channel,InfiniBand和iSCSI以及I/O物理芯片接口技术如存储接口和SPI-4)的需求。它们的单位成本更低。但是ASIC的开发时间很长,启动成本高,这包括工具成本,流片(NRE)费用和大批量的保证。而且它们不灵活,不能满足不断改变的需求,所以开发初期就处于很困难和很昂贵的境地。ASIC缺乏灵活性和漫长的开发周期抵消了一些应用的优势,因为无法及时地修改、快速地对可能使用的发展中标准作出响应。 另一种实现数据通道处理的方法是网络处理器。网络处理器的优势在于处理操作非常灵活,因为它们使用现成的满足现有标准需求的部件,因此比ASIC开发周期要短得多。今天网络处理器的不足之处是性能比专用ASIC低,而成本更高,它们支持的I/O接口也不灵活。另外,它们目前需要有个编程器方面详细的体系知识,才能为微引擎生成完全优化和独立的代码。 可编程逻辑器件(PLD)是数据通道处理的另一种选择。虽然它们没有专用ASIC那么快,但是它们在处理能力上的灵活性和网络处理器相当,而在新兴和现有先进接口标准上却更加灵活。PLD的开发时间也比专用ASIC要短许多,它们是现成的,无需流片(NRE)。因为这些原因,高级存储网络产品的开发者越来越看中PLD来实现数据通道处理功能。PLD并不排斥其它硬件方案,能够结合使用这三种方案(ASIC,网络处理器和PLD),但是通常可编程逻辑部件能够满足灵活性的需求。对于采用具有协处理功能的网络处理器,这种情况下网络处理器无法满足产品的性能需求,PLD恰恰是很好的补充。 可编程数据通道处理分析 在今天日益增长的包存储系统中,数据通道处理功能通常由包处理操作组成,包括头检测和分析、包完整性检查、包转发和负荷处理。对包在系统中的控制和业务管理功能很适合由PLD实现。最后,为了能够直接内置于这些应用的数据通道中,这些PLD需要支持高速接口。这种支持包括新兴标准以及I/O技术本身的逻辑需求,如源同步接口的差分信号(LVDS)或串行接口(如Fibre Channel和InfiniBand)的时钟数据恢复(CDR)接口,以及对高速SDRAM和SRAM接口(如DDR-SDRAM和QDR-SRAM)的支持。 收发器和业务管理 如图所示,PLD在存储交换机的背板接口中是非常重要的部件。诸如Mercury器件这样的PLD现在也具有了内建的时钟数据恢复(CDR)和串行/解串器(SERDES),无需执行这些功能的分立部件,减小了部件数量。内建的收发器功能减小了芯片到芯片的延迟,增加了系统的性能。大量的片内RAM可以辅助管理包队列。例如,Altera的Stratix器件具有512KB的MegaRAM块,它很适合这项工作。当然还需要外部存储器,这样PLD必须能够和高速SDRAM和SRAM接口。业务管理PLD执行智能DMA功能,由板内控制器进行管理,如Nios嵌入处理器。 数据完整性在存储应用中非常重要,PLD也能辅助完成这项工作。在Pirus PSX-1000 Storage Utility Switch中,APEX 20KE PLD进行系统每个节点的高速校验,然后附加到每个包的后部。更高层使用这个校验结果,检测“端到端”包的完整性。为了满足更高层的数据完整性,可以修改APEX 20KE PLD设计执行不同的校验算法或专有完整性功能,满足特定终端用户的不同需求。以尽可能快的速度生成和检查这些校验才能确保高的数据吞吐量;系统开发者能够以并行处理方式分配PLD的逻辑资源实现所需的性能,串行操作的处理器则在这种应用中受限。 业务管理PLD开始进行包的预处理,在进入包处理器件之前剥除头信息并存放在高速存储器中。PLD能够很高效地完成这项功能,因为不同的协议头信息的数量是不同的,新兴协议如iSCSI的变化必须对设计进行修改。实际的头处理通常是由处理器执行的,随着集成了处理器和PLD的器件如Altera的Excalibur系列的出现,所有的头处理都能够集中到更少的器件中—这样能够降低成本、功耗和板空间。 包处理 包处理包括头和负荷处理以及包的转发,由PLD结合处理器来完成,或者由PLD结合处理器的硬件实现。头处理通常包括实现OSI 1和2层的功能,如头检查和分析,包的完整性和包的转发。头检查又包括包开始,包结束,包长度,地址识别和流控制。 头检查之后,包被封装成一定的格式并转发。包转发包括插入目的地址,帧构造,转发到相应的输出端口。在PSX-1000中,Pirus采用PLD实现“数据镜像”包转发功能,它允许数据同时写入多个位置。这个功能也就是所谓的“组播”,避免了处理器实现中采用的顺序复制数据的方式。相反,PLD的并行操作会更快,消除了潜在的瓶颈。 把头处理和负荷处理功能集成到单个可编程器件中,简化了设计,消除了芯片到芯片的延迟。在PSX-1000中,Pirus能够把2层的功能和一部分3和4层的功能集成到单个Altera的PLD器件中,包括TCP/IP校验和下一跳地址的确定。Pirus把这些功能从处理器中剥离出来,从而增加了系统的性能满足了速度要求。 可编程性容许“细调” 在开发新一代智能存储交换机中,比起单独采用专用ASIC或处理器,PLD允许开发者能够更充分更细致地调整他们的操作。例如,在没有采用实际硬件的最糟的工作状态下很难确定网络处理器的性能。在开发过程中,如果网络处理器在最糟业务情况下无法满足性能目标,那么采用PLD就能够评估把各种任务从网络处理器移交给PLD处理后的性能。 在业务管理和成形功能中采用PLD还能够充分考查在给定存储资源(片内和片外)情况下不同队列大小能实现的最大吞吐量,这是Pirus开发者在PSX-1000开发中的经验。而且在开发过程中,Pirus多次修改他们的PLD设计,权衡把宽数据流分割成更小、易管理的大小对优化系统性能的影响。Pirus在他们设计的关键部分采用了PLD,单单修改他们的业务管理PLD设计就把吞吐量提升了近20%。 结论 今后,智能存储应用交换需要更高的速度,更大的数据完整性和更大的灵活性来满足不断改变的存储网络市场的不同需求。PLD将能够支持存储工业中这些不断发展的需求,支持高速LVDS(也就是SPI-4 Ph2),改善对CDR接口的支持,如Fibre Channel和InfiniBand。具有嵌入处理器的PLD(如Excalibur系列)结合以往所具备的丰富的I/O功能和高速存储器接口,允许开发者用PLD作为“中心站”控制功能和数据通道处理。下一代智能存储交换机将更多地依靠PLD完成数据通道和控制功能,这样能够获得更高的速度和灵活性。
|