迅速增加的数据、语音和视频流量进入城域网(MAN)后,服务于这些应用的路由器必须能将多路的1 Gbps数据流汇聚成高达40 Gbps带宽的数据流.为了保持线速性能,系统必须在出口端提供等于或高于进入传输速率的信息包处理能力,或者对信息包进行备份,这时缓冲就变得至关重要。
这些数据缓存的性能和效率对路由器和网络的性能至关重要。网络性能的主要威胁来自数据的重发。因此,城域边缘的路由器必须能够汇聚多个较低速率的接入线路,并将其转发至高速核心连接而不致欠载。路由器也必须保证从更高速的核心网到边缘网的数据分发操作不会超时。在任何情况下超过了数据缓存的最大能力,发送到 MAN 的任何额外数据都必须重传。
因此,最大限度地降低系统延迟和确保系统最大吞吐量的关键是为具体应用选择合适的数据缓存。如果缓存过大,就会大幅度增加系统成本。如果过小,网络就会溢出缓存并重发数据,导致性能下降。
这种考虑涉及三个主要因素:输入数据的速率(入口线路)、输出数据的速率(出口线路)及内部处理时间需求。只要来自网络的入口数据速率与回到网络的出口数据速率相等,而且具有最小的处理需求,数据缓存即可保持相对较小。因为内部处理只增加很小的延迟,流量也比较稳定,所以几乎不需要存储数据。不过,随着系统执行更高级别的处理,就必须增大缓存来消除处理功能带来的延迟。突发流量对数据缓存的设计也有显著的影响。如果入口数据速率随着时间显著变化并偶尔超过信息包处理器的能力,就必须适当地改变入口缓冲器的尺寸,以解决与这些处理功能相关的延迟问题。
可编程逻辑器件的优势
在为这些应用构建缓冲子系统时,工程师倾向于首先考虑采用FPGA,而不是现成的分立存储器件。由于工程教育机构日益依赖于 FPGA 来教授电路设计的基础知识。因此,大部分工程师都熟悉这种技术。FPGA 有助于设计师随时对他们的设计进行重新配置,提供高度灵活性,并在短期内完成硬件的测试。此外,由于这些工具常常是人们熟悉的,可以迅速转变成最终解决方案。
现在,FPGA 可提供数百万的逻辑门和兆比特级的片上存储器,设计师可将多个 FIFO集成到一个芯片上(见图 1)。然而,在数据缓存需求比较高的城域边缘网领域,设计师必须仔细评估他们所有的设计选择。在某些情况下,设计师会发现可编程逻辑器件在给定性能或成本方面存在固有的局限性,而分立器件可提供更具吸引力的解决方案。
图1 可集成多个FIFO的FPGA |
高性能城域边缘网路由器设计的存储器密度也会影响 FPGA 的性能。为了充分发挥性能,设计师很自然地优先选择内嵌的数据缓冲器。所以,许多设计师选择采用更高密度的 FPGA 来满足大型数据缓冲器的存储需求。
然而,采用这种策略也会产生一些问题。当设计师在 FPGA 中使用大量存储器时,一些存储器将会进一步远离I/O和逻辑门。这种存储资源在芯片内的分散将导致内部写脉冲随线长而变化,并延长建立时间。在一些应用中,FPGA 中大型存储阵列的使用可降低高达40%的芯片内部速度。
解决该问题的一种方法是选择更小和成本更低的 FPGA实现控制逻辑,并采用外部分立存储器来支持。设计师会采用外部SRAM来增强 FPGA 的存储能力。FPGA供应商可提供预定义模块,设计师可将其集成到 FPGA 中,用以进行外部存储器管理。这种方法有助于设计师使用更小和更便宜的 FPGA。
但是,由于FPGA架构固有的 I/O 局限性,这种方法为设计带来了延时。在采用 FPGA 和外部存储器的设计中,数据通过 FPGA 中比较慢的可编程门进入缓冲器,然后子系统必须为控制器分配一个地址,并将数据转移到外部存储器。接下来,系统必须分配一个地址并把数据拖到外部存储器中。这两个操作必须通过 FPGA 中比较慢的可编程 I/O门进行。最后,数据必须从 FPGA 发送到系统中,并再次经过 FPGA 可编程门。假设在 FPGA 和外部存储器中进行大量的存取,该子系统需要 8 个时钟周期来处理每个数据字节。
理想的选择
在这些应用中,一种更为可行的方法是采用现成的分立 FIFO 来设计数据缓冲器(见图 2)。目前,供应商可提供密度高达 18 Mb、运行速度高达 250 MHz 的FIFO器件。这些器件的输入和输出端口可进行独立配置,同时以单倍数据速率(SDR)和双倍数据速率(DDR)运行,并可支持高达 20 Gbps的数据速率。
图2 采用分立FIFO的数据缓冲器 |
分立缓冲器件制造商可以提供多达128个队列以全线速区分并对数据进行优先级排序的FIFO。这些器件可提供高达 10 Mb的存储密度,并利用高达 166 MHz 的 DDR 支持超过 10 Gbps的运行速度。这些产品配置了 x40 位数据总线,可提供13.3 Gbps的高数据吞吐量,并可支持下一代高吞吐量平台的服务质量(QoS)需求。
比较FPGA 和其他替代解决方案,简单对比数据手册已经不能得到满意的答案。FPGA 的易于编程特性有助于模块化数据手册,每段的数据通道部分都需要进行确认、评估和添加,以确定合成电路的时序。为了实现这一点,FPGA 制造商可为 FPGA 的设计和编程提供软件。这种设计软件可鉴别设计并评估电路,提供性能时序参数。供应商丰富的经验和他们各自的软件包可提供非常精确的模型。在评估这些解决方案的过程中,工程师可使用 Xilinx ISE 和 Altera Quartus II 设计软件。他们可以使用这些软件工具对 FPGA 进行配置,以执行 FIFO 存储功能,并利用设计软件提供的合成模型来模拟实际电路。使用 Xilinx 的 LogicCore 和 Altera 的 MegaWizard 可产生 FIFO 单元。这些工具可提供优化性能的设计实现。该实验可在各种尺寸的器件和存储器配置上进行。性能测试结果基于后布局和走线时序。
在决定采用现成的 FIFO 或可编程逻辑器件建立一个数据缓冲器子系统之前,工程师应该考虑到该决定对其设计复杂性的影响。低密度的情况下,把 FIFO 和控制逻辑集成到一个 IC中,可提供一种更为简单的电路板设计。随着缓冲器尺寸超过256K的密度,而且成本促使其采用外部SRAM来补充 FPGA,标准的 FIFO 可提供更为简单的方法。随着设计者对系统的升级转向更高的存储密度,这种方法也具有优势。例如,大多数 FIFO 都是引脚兼容的产品,密度范围在 0.5 Mb~18 Mb 之间。使设计师简单更换一个元件,即可迅速而容易地增强其系统能力。在基于 FPGA 的配置中,设计师通常需要花费时间和精力重新编译器件,或对一个新的、更高密度的 FPGA 进行设计和编程。
异步设计中的时钟同步也是一个应该考虑的问题。在大多数路由器环境中,进入系统的传输线路与主系统时钟会在不同的时钟域中运行。设计师必须连接不同宽度的总线。路由器设计师面临的一个常见的挑战就是如何使用数据缓冲器使这些全异时钟同步,并复用16 位和 32 位或 32 位和 64 位之间的数据,以确保整个系统中数据的完整性。
设计师使用基于FPGA的方法调整他们的逻辑以实现上述目标。然而在一般情况下,该工作需要丰富的电路设计专业知识以及模拟和测试这些电路的时间。相比之下,许多高性能 FIFO 提供的嵌入式总线匹配能力可自动解决这个问题。这些器件可提供多总线宽度和端口可选的总线宽度匹配,有助于出口线路和入口线路之间的无缝连接。这些器件也具备独立的读写时钟,可使设计者实现不同时钟域之间的频率匹配。
面积和成本
在设计缓冲器时,器件成本和板卡空间也是要考虑的因素。通过分析FIFO和FPGA 中存储器相关的单位比特成本,可以看出两种技术中的存储器成本在达到256K之前保持在非常相似的水平(见图3)。然而,FIFO 中的单位比特成本是随着密度的增加而稳定下降的,但是 FPGA 中存储器成本的增速很快。密度为 1 Mb 以上的 FPGA 存储器就变得过于昂贵了。
图3 FPGA和分立FIFO方案的成本对比 |
封装面积和引脚也是需要考虑的重要内容。在低密度情况下,把缓冲器集成到单个 FPGA中可以实现更紧凑的引脚布局。然而,随着 FPGA密度和引脚数量的增加,这种折衷的效果并不明显。用大型的 8 M 门 FPGA 实现数据缓冲器需要设计师在电路板上焊接一个 1152 引脚 的 BGA,另一方面,不论存储器密度如何,采用比较简单的 256 引脚 BGA封装的FIFO即可达到相同的效果。
结语
随着数据速率的持续上升,数据缓冲器设计将在优化网络性能方面扮演重要的角色。通过分析所有的设计选择,并利用现成的分立器件和可编程逻辑器件的独特性能,设计师可以用尽可能低的成本构建高性能的解决方案。
上一篇:光纤通信系统中数字复接芯片的选择及应用
下一篇:实现基于TCP/IP的多串口转换网关
推荐阅读最新更新时间:2024-05-13 18:17
- Allegro MicroSystems 在 2024 年德国慕尼黑电子展上推出先进的磁性和电感式位置感测解决方案
- 左手车钥匙,右手活体检测雷达,UWB上车势在必行!
- 狂飙十年,国产CIS挤上牌桌
- 神盾短刀电池+雷神EM-i超级电混,吉利新能源甩出了两张“王炸”
- 浅谈功能安全之故障(fault),错误(error),失效(failure)
- 智能汽车2.0周期,这几大核心产业链迎来重大机会!
- 美日研发新型电池,宁德时代面临挑战?中国新能源电池产业如何应对?
- Rambus推出业界首款HBM 4控制器IP:背后有哪些技术细节?
- 村田推出高精度汽车用6轴惯性传感器
- 福特获得预充电报警专利 有助于节约成本和应对紧急情况