新闻中心

EEPW首页>EDA/PCB>设计应用> 使用赛灵思 FPGA加速包处理

使用赛灵思 FPGA加速包处理

作者: 时间:2012-07-31 来源:网络 收藏

如果只需要修改 MAC 目标地址,FEPP 在接受到包时收到的“任务”将会被使用,例如,流修改表(图 3)中的规则 2。对规则 2 预先配置的内容包括:指定操作码(覆盖)、OpLoc(在包中所处的位置,比如第 2 层)、OpOffset(距离启始位置的偏移)、掩码类型(使用什么字节)以及修改数据(实际覆盖的数据)等。执行的结果是使用预先配置的修改数据覆盖从第 2 层位置开始的 6 个字节。

图 3 – 简单 MAC 目的地地址覆盖修改

另一种覆盖实例是如规则 6 所示的方案,例如我们希望修改某个特定的 TCP 标志,如 ACK、SYN 或者 FIN(参见图 4)。该规则将使用操作码(覆盖)、OpLoc(第 4 层)、OpOffset(从第 4 层开始 0 偏移)、掩码类型(使用字节 14)和位掩码(字节中的那些位需要掩蔽)。我们可以使用掩码类型来包含或是排除特定的字节,从而指定多个字段实现覆盖。


图 4 – TCP 标志的覆盖修改

我们的覆盖功能不仅限于数据流修改规则表中存储的内容,而且还能包括作为关联数据存储在数据流任务表 (Flow Action Table) 中的内容。可以通过指定规则,让传输到 FEPP 的关联数据成为任务的组成部分,从而显著扩展可用于修改的数据的范围。其结果,举例来说,是可以覆盖整个 VLAN 标记范围。

我们的插入/删除功能能够实现甚至更为复杂的包修改。以规则 5(参见图 5)为例,使用我们的插入/删除功能。包括操作码(插入/删除)、OpLoc(第 2 层)、OpOffset(从第 12 个字节开始)、ISize(插入数据大小= 22 个字节)、DSize(删除的字节大小 = 2个字节)和Insert Data(0x8847,MPLS 标签)等与规则5相关的各种任务,将删除现有的 EtherType,并插入新的 EtherType=8847,这说明新的包将是一个 MPLS 单播包,接着是由插入数据所指定的 MPLS 标签组。


图 5 – MPLS 标签插入修改

布局规划与时序收敛

在设计我们独特的包处理器过程中,我们面临的最严峻挑战是设计复杂程度不断增大,路由和使用密度的增加,各种 IP 核的集成,多种硬逻辑对象的使用(如 BRAM、GTP、DSP 以及类似对象),以及在项目最早期阶段的数据流规划不足等。我们发布的 Phase 1 Virtex-5的bit文件建立在较低的使用密度之上,特别是较低的 BRAM 使用密度基础之上,结果导致相对简单的时序收敛。在稍后阶段因为增加了新的重要功能,导致 BRAM 的利用密度接近 97%,我们开始强烈意识到优化布局规划的重要意义,以及产品生命周期初期的决策将对后期造成怎样的影响。

布局规划的主要目标通过减少路由延迟来改进时序。为此,在设计分析过程中非常重要的事情就是将数据流和管脚配置纳入考虑范围。现在已经与 ISE? Y合一起的PlanAheadTM工具作为布局规划和时序分析的单点工具 (point tool),为我们提供了如何在高利用率的使用设计中为了实现时序收敛而需要穿越重重复杂网络的交互分析和可视化功能。PlanAhead 使我们能深入了解我们的设计,即我们需要提供最少数量的约束条件来引导映射、布置以及布线工具充分满足我们的时序要求。我们发现,要做到这一点,往往需要在基于模块的设计区域约束之外优化放置一部分关键的 BRAM。

回想起来,如果我们在项目最初阶段即花更多的时间使用 PlanAhead 来进行假定方案的验证,帮助我们看到最佳的数据流和管脚,我们在设计后期的任务就会轻松许多。

动态自适应包处理

我们的整数流加速子系统能够在最高的灵活程度下以线速检查并和修改包,同时能够动态地与应用层业务进行交互,实现高度自适应的包处理。Virtex-class是重要的实现手段,提供了一个前一代 FPGA 无法实现的片上系统平台,加速基于内容的路由以及实施重要包处理功能。

我们的新一代实施方案不仅能够显著提升性能、进一步加强高速缓冲的能力,同时还能添加新功能。通过在单个Virtex-6 FPGA 中升级我们的 FAST 芯片组,我们不仅能够将新一代 FAST 的功能、接口和性能提升到一个前所未有的水平,同时还能缩小电路板空间并降低功耗要求,从而实现单芯片深度包处理协处理器单元。


上一页 1 2 3 下一页

关键词:FPGA赛灵思

评论


相关推荐

技术专区

关闭