采用FPGA和兼容PCI Express的SERDES实现可扩展交换接口控制器的设计

网友投稿 278 2022-11-05

采用FPGA和兼容PCI Express的SERDES实现可扩展交换接口控制器的设计

PCI Express和ASI

图2:包含ASI报头、可选的PI0和PI1报头及一个PI2报头的TLP。

FIC架构:

一个SPI4.2到ASI控制器的功能(图1)包括:

1. ASI到SPI4.2的双向桥接,可从2.5Gbps扩展到20Gbps(x1、x4或x8路);

3. 支持1到64,000个连接队列(CQ);

4. 在SPI4.2上支持多达16个通道;

5. 可编程通道映射到SPI4.2;

6. 支持一个可旁路的、三个有序的和一个多播虚拟通道(VC);

8. 链路层基于信用量的流控制;

图3:PI2封装示例。通过去除SPI4.2协议控制字(PCW)并增加ASI报头、可选PI0和PI1报头以及PI2报头,初始SPI4.2突发数据流被转换到ASI TLP之中。

9. CRC生成和误码校验;

10. 处理连续的背靠背数据包结束符(EOP);

12. 状态通道组帧、DIP2生成和校验;

13. 状态同步生成丢失和检测;

14. 训练序列生成和检测;

15. 全同步设计(800Mbps);

17. 与ASI-SIG兼容,ASI核心架构规范修订版1.0。

在SPI4.2到ASI方向,必要时对进入的SPI4.2数据包进行分段,并根据流量类型(单播或多播)和等级映射到VC FIFO缓冲器。用户在SPI4到VC映射表中对缓冲到SPI4.2接口的通道映射信息进行编程,接口上的数据包按照表中所示传输到相应的缓冲器。ASI调度器读取队列并将TLP发送到交换结构。

SPI4.2和每一个VC支持最多16个通道(通道0到15)。下面是从SPI4.2到VC的示范通道分配:

1. SPI4.2通道0到7被映射为8个可旁路虚拟通道(BVC);

2. SPI4.2通道8到11被映射为4个有序虚拟通道(OVC);

3. SPI4.2通道12到15被映射为4个多播虚拟通道(MVC)。

ASI到SPI4.2的输出数据包流

VCS4数据MUX和地址映射模块根据VCS4记录表RAM规定的顺序从VC FIFO通道读数据。SPI4.2源模块在必要时分拆队列并重组数据包,增加SPI4.2有效载荷控制操作,并通过SPI4.2接口将它们发往NPU。SPI4.2源模块也执行信用量管理,并根据从对等的SPI4.2接收器收到的流控制信息进行调度。

ASI提供若干协议接口(PI),它们提供可选功能或使各种协议适配到ASI基础架构。

协议接口描述

PI0封装被用于多播路由。为0的第二个PI表示生成树数据包,非0的第二个PI表示多播路由,多播组寻址通过多播组索引字段实现。

PI1将连接队列识别信息传递到下游对等交换单元或端点。当发生拥塞时,下游对等交换单元可以发送识别上游对等交换单元的违规连接队列的PI5拥塞管理消息。

PI2提供分段和重组(SAR)服务及封装。PI2报头包含有利于数据包描述的包起始(SOP)和包结束(EOP)信息。此外,PI2封装规定了可以在PI2容器内排列有效载荷数据的可选前置块(PPD)和末块(EPD)字节。

对于中间的突发数据,PI2 SAR代码就是“居中的”。注意,由于非EOP SPI4.2突发数据必须是多个16字节,所以中间数据包SPI4.2有效载荷将始终是32位排列,与ASI有效载荷匹配。

图4:在PI2分段的例子中,SPI4.2数据包被分为三个ASI TLP,去掉了SPI4.2协议控制字,对于每一个TLP,ASI报头要加上可选的PI0和PI1报头及PI2报头。

如果SPI4.2突发数据包长度超过ASI TLP有效载荷长度的话,PI2 SAR被用于将SPI4.2数据包分段和重组。接收到的SPI4.2突发数据包在桥接中被分段为ASI接口支持的有效载荷的长度(图4)。

至于封装,三个TLP的PI2 SAR代码被分别设置为代表“初始”、“中间”和“终止”或“末块终接”。对于重组,来自每一个关联域的AS片段被重组成完整的数据包。一旦获得完整的数据包,它就被映射到一个SPI4.2通道并在突发数据包中输出。来自SPI4.2不同通道的突发数据包可以交织在一起。

映射流量类型、等级和目的端口

交换接口必须与数据一起传输若干重要属性。这些属性包括流量类型(单播或多播)、等级、目的端口和拥塞管理。这些参数都在AS中得到支持。然而,在SPI4.2中,该信息被映射在SPI4.2通道编号中或SPI4.2有效载荷内的专有报头。

SPI4.2利用三级拥塞指示(空虚、未满、饱满)进行基于信用量的流控制。通过预置与空虚和未满状态相对应的最大突发数据量(Maxburst1和Maxburst2),发送器会再次装满信用量。

图5:典型单10Gbps端口中的双网络处理器及配备专用FIC的全双工线卡。

ASI具有多个流控制选项:VC,它是一个基于信用量的流控制;用于源速率控制的令牌桶;按照类或者流队列的基于状态的流控制。

桥接内的拥塞管理是桥接架构和缓冲机制的不可缺少的组成部分。桥接可以采用两种基本架构,或者采用具有很少或没有缓冲的直通(flow-through),或者每一个接口采用单级或两级缓冲。

在直通架构中,流控制信息被生成并在外部作用于桥上。该方法简化了桥的设计,但是,增加了源和流控制的目的端口之间的延迟时间,因此可能需要增加缓冲资源。

在有缓冲的架构中,桥接本身遵照流控制信息,因此需要内部缓冲。内部桥接缓冲可以由两个接口共享(单级),或每一个接口配备自己的关联缓冲器,称为两级缓冲处理。

专有FIC参考设计

工作模式

参考设计的主要工作模式接收来自处理器入口端的32位SPI3或16位SPI4.2数据,通过FPGA集成收发器将数据流传输到AdvancedTCA背板,并将背板数据流通过32位SPI3或16位SPI4.2接口传回处理器的出口端。

集成收发器经由处理器的SlowPort出口来配置。参考设计支持若干其它工作模式,包括SPI4.2接口环回、ASI接口环回、流量管理、交换结构数据包生成和监测。

FPGA和结构化ASIC FIC

采用专有的多FPGA和结构化ASIC技术,可以开发可扩展的PCI Express、ASI桥和端点。内建兼容PCI Express收发器的高密度、高性能的FPGA,可以提供:1. 具有可扩展的2.5链路的整体解决方案;2. 对每一个通道运行速率高达1Gbps的接口进行动态相位校正(DPA);3. 多种封装选择和高达40,000逻辑单元的密度选项。

图6:功能模块框图。

可选的FPGA结合独立的兼容PCI Express的SERDES,如PMC-Sierra的PM8358 QuadPHY 10GX器件可用于对成本的关注超过对性能和扩展功能需求的应用,从而提供低成本的1x、2x和4x(路)灵活的解决方案。高密度、高性能FPGA与独立的、兼容PCI Express的SERDES的结合,可被移植到专用的结构化ASIC,以提供所需要的最高密度、最快性能和最大数量的应用。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java BigDecimal类的一般使用、BigDecimal转double方式
下一篇:LVM管理与配额
相关文章

 发表评论

暂时没有评论,来抢沙发吧~