数据缓冲和排列是太位路由器、多重服务交换平台和无线基站等高性能通信应用领域中普遍存在的挑战。采用FIFO等高速存储器件使这些问题得到了解决,而赖以提供各种服务的IP网络和服务质量(QoS)也会随之发生改变。
由于IP网络负载了越来越多不同类型的数据,如语音、视频、存储,以及传统数据等,服务质量就成为系统和网络设计新的考量因素。直到最近,短期数据缓冲工作??将数据临时储存起来以防不必要的端到端延误??过去一直由FIFO解决。
这些 FIFO主要负责交换机和路由器的输入输出或控制层面的流量控制或时钟区域转换。这些器件被设置在交换机/路由器(入口)输入或输出(出口)处,用于控制系统的线卡状态路径,并控制信息流量以满足系统的需要。
这些FIFO的面积和深度随着数据率的提高而相应提升。然而除了提升的数据率和FIFO深度之外,短期数据缓冲的需求也应运而生,即在单一高速数据流内处理不同种类的数据流量。
10Gbps OC-192数据路径在某些应用中可能是将4个单一OC-48(2.5Gbps)数据流聚集在一起的时分多路转换。为了在操作时达到10Gbps的传输率,短期数据缓冲器需要在不同的FIFO或排列中对分流逐一缓冲。
尽管在逻辑上存在4个独立数据流,实际却只有一个数据路径。每个分流都拥有由系统控制的不同优先级别。从操作角度来看,图1描述了一个FIFO支持4个多重排列优先级别的情况。
正如独立排列或独立关联FIFO一样,该器件发挥了短期数据缓冲器的功能。它将解决我们提到过的系统问题,如共享总线争用、共享微处理器延误、流量爆发或时钟区域转换而引起的本地化流量控制的问题,现在还需要处理数据类别区分的工作。
这个多重排列FIFO被直接安装在数据路径上,它不仅要保持每秒10千兆的传输速度,还必须减少排列交换延迟。“0 死循环”或“100%总线利用率”都是市场对此类器件的要求。
传统的排列方法
上述排列功能一般采用两种执行方式。一种是采用多重独立FIFO,将输入和输出数据总线多路结合起来。
外部分立读/写管脚控制器可以控制和激活单独FIFO,并受到不同“标记”状态管脚的监控。在只需要一些阵列(可能是4个或者更少)且数据总线速度低于133 MHz的情况下这是个好方法,因为输出总线将减缓数据路径的下载速度。然而如果需要更多的阵列(如16或32),这种方法就显得过于笨拙且成本较高。
执行多重排列功能的另一种方法是采用一个控制器和存储器(见图表2)。存储器可以是静态RAM(SRAM)或双端口RAM(DPRAM),可根据是否需要进行时钟区域转换来决定。
这种方法较前一种方法能容纳更多的阵列,这就要求高速传输率(如存储器接口控制器的速度)与数据路径率保持一致。由于控制器/FPGA/ASIC管脚数目增加了且需要采用更为昂贵的高速RAM,这样就会形成一个宽阔的存储器界面。在FPGA上将 RAM模块初始化将会自动提高控制器的成本,因此除非需要将大量无关联逻辑集成到同一个FPGA上,否则将不考虑采用这种方法。
一个新方法
为了开发出能够解决短期不同数据缓冲的精简、高成本效益且高性能的产品,新方法则呼之欲出。该方法将采用一个独立结构,这种结构可以配置成含1个到32个独立FIFO的队列,其中的每个FIFO00都具备单独的深度、部分空白和全满标记指示。
由于控制逻辑可以被集成到高速内部双端口RAM,该集成将保持高数据传输率的同时,提供100%的总线利用率,甚至在排列化的交换过程中也具有这种性能。此外,该方法在性能、成本、底板空间和产品上市时间等方面较以前的方法都有所提高。
FIFO支持多重排列的性能将有助于提升输出排列的服务质量。对服务质量的强制性要求是支持网上语音和音频会议应用的基础。
多重阵列可帮助特殊排列数据取得优先权,并帮助具有更高优先权的信息包占据优势。支持多重排列的器件将得到采用,例如在OC-192线卡输出路径处。该器件在系统需要多重服务质量级别时可执行短期数据FIFO。
信息包头缓冲是多重排列缓冲的另一个方面,对路由器设计大有帮助。它们一旦进入路由器,FIFO便可对信息包头进行存储和缓冲处理。
当接收到信息包时,系统就自动搜索出信息包头标题并将其发送到相应FIFO直至系统CPU处理标题信息,并根据路由表决定信息包目的地。在标题预先放置到相应位置的情况下,系统可利用标题缓冲器在一个信息包进入之后立即搜索出信息包头标题,而不用再等CPU处理信息包的标题信息。整个系统能在较快速率上接收和处理信息包,减少高端通信应用在传输上的瓶颈问题。
林胜义总经理
亚太区销售及市场推广
IDT公司