一种基于FPGA的PCIe与SRIO双向事务调度系统及方法

摘要: 本发明涉及通信,尤其涉及一种基于fpga的pcie与srio双向事务调度系统及方法。背景技术:1、在多dsp、多fpga架构的航电处理平台、雷达信号处理与高速采...
一种基于FPGA的PCIe与SRIO双向事务调度系统及方法

本发明涉及通信,尤其涉及一种基于fpga的pcie与srio双向事务调度系统及方法。

背景技术:

1、在多dsp、多fpga架构的航电处理平台、雷达信号处理与高速采集系统中,pcie总线多用于主机、板载处理器对外设进行数据访问,srio总线凭借低时延、传输确定性优势,广泛承担芯片间、板间高速互连任务,现有pcie转srio接口卡普遍采用fpga实现协议转换,在fpga内部例化pcie端点、srio端点、dma控制器与配置寄存器完成跨总线互通。

2、但是现有pcie-srio协议桥接方案仍存在显著工程短板,难以适配高实时、高可靠航电与雷达信号处理场景:其一,各类传输事务控制逻辑分散分布于大量独立寄存器与上层软件流程,pcie地址、srio地址、地址偏移量、事务类型、应答处理策略、异常状态信息无法通过统一描述符进行关联绑定,大幅提升软件开发复杂度,同时引入额外处理开销,造成系统实时性能恶化;其二,写事务和读事务易被单个通道的fifo满、链路忙或响应等待状态阻塞,导致其它可执行通道不能及时推进。

技术实现思路

1、本发明实施例提供了一种基于fpga的pcie与srio双向事务调度系统和方法,通过统一事务描述符,把pcie和srio的事务组成可调度、可响应、可观测的闭环,由fpga硬件完全实现和执行,能够满足高实时高可靠系统要求。

2、第一方面,本发明实施例提供一种基于fpga的pcie与srio双向事务调度系统,包括fpga硬件平台、pcie金手指、srio光纤接口;所述fpga硬件平台内部集成事务建模模块、多虚拟通道模块与硬件调度模块;

3、其中,所述事务建模模块用于对pcie总线与srio总线的各类事务进行信息提取,生成承载事务相关信息的事务描述符;

4、所述多虚拟通道模块配置有多组相互独立的读写事务虚拟通道,用于将携带有事务描述符的不同类型事务分发至对应的虚拟通道队列进行缓存;

5、所述硬件调度模块用于读取各虚拟通道的实时硬件状态,基于所述实时硬件状态和所述事务描述符进行事务调度,并在单个事务执行完成后将事务执行状态回写至所述事务建模模块的事务描述符中。

6、进一步地,所述各类事务包括pcie至srio读事务、pcie至srio写事务、srio至pcie读事务、srio至pcie写事务、门铃事务以及维护事务。

7、进一步地,所述事务描述符的关键字段包括但不限于:pcie基地址、srio基地址、地址偏移、事务类型、通道使能位、fifo水位阈值、超时阈值、响应策略以及状态回写字段。

8、进一步地,所述事务建模模块按照功能分区划分为全局控制区、srio至pcie读事务区、srio至pcie写事务区、pcie至srio读事务区、pcie至srio写事务区、门铃控制区以及维护事务控制区。

9、进一步地,所述基于所述实时硬件状态和所述事务描述符进行事务调度,包括:

10、采集各虚拟通道的通道使能状态、fifo水位、链路忙闲状态、事务超时状态,并读取事务描述符中的事务类型与优先级信息;

11、综合通道拥堵程度、事务等待时长、链路空闲状态以及事务超时状态完成多通道事务仲裁。

12、进一步地,还包括自动响应模块,所述自动响应模块用于对srio侧的请求进行应答处理,包括请求分类单元、响应策略单元、响应数据准备单元以及响应包生成单元;

13、所述请求分类单元用于识别srio侧输入报文的事务类型,区分nread读请求、doorbell门铃消息、nwrite_r带响应写请求;

14、所述响应策略单元用于根据预设条件判定是否执行硬件自动响应;

15、当判定执行自动响应时,所述响应数据准备单元获取响应载荷数据;

16、所述响应包生成单元按照srio协议规范组装响应报文,并根据srio传输时序向外发送响应包。

17、进一步地,还包括门铃闭环模块;

18、所述门铃闭环模块用于监测系统内各类业务事件,在事务完成、传输异常、响应报文接收、维护配置生效时,根据配置参数选择性生成pcie中断消息或srio门铃消息,以分别向上层pcie主机或远端srio设备推送事件状态。

19、进一步地,还包括维护事务模块;

20、所述维护事务模块配置维护写地址寄存器、维护写数据寄存器、维护写有效寄存器、维护读地址寄存器、维护读数据寄存器、维护读有效寄存器,用于发起srio维护事务,生成srio维护报文,并通过独立传输通路发送至远端srio设备。

21、进一步地,还包括监测电路模块;

22、所述监测电路模块用于实时采集fpga温度、供电电压、bram运行状态采样信息,并将采样信息输出至硬件调度模块,以供硬件调度模块调整事务调度策略。

23、第二方面,本发明实施例提供一种基于fpga的pcie与srio双向事务调度方法,应用于上述第一方面任一项所述系统,包括:

24、fpga分别接收pcie总线与srio总线的各类双向事务,对所有事务进行信息提取与标准化建模,生成承载事务相关信息的事务描述符;

25、将携带有事务描述符的不同类型事务分发至多虚拟通道模块中相互独立的虚拟通道队列进行缓存;

26、实时采集各虚拟通道的实时硬件状态,基于所述实时硬件状态和所述事务描述符进行事务调度,并在单个事务执行完成后将事务执行状态回写至所述事务描述符中。

27、与现有技术相比,本发明实施例提供的一种基于fpga的pcie与srio双向事务调度系统,其有益效果在于:在fpga内部通过事务建模模块标准化生成事务描述符,依托多虚拟通道模块实现事务分流隔离,再由硬件调度模块统一完成跨总线事务仲裁调度,整套协议转换与调度逻辑全部在fpga硬件内部实现,不依赖嵌入式处理器参与事务处理,本架构能够支持多路事务并发传输,具备低传输时延、高吞吐量优势,同时事务执行状态闭环回写机制,保障全流程事务可监控、可追溯,有效解决传统桥接方案软件参与度高、调度实时性差、多业务互相抢占资源的问题,适用于高速嵌入式异构总线双向数据交互场景。

1.一种基于fpga的pcie与srio双向事务调度系统,其特征在于,包括fpga硬件平台、pcie金手指、srio光纤接口;所述fpga硬件平台内部集成事务建模模块、多虚拟通道模块与硬件调度模块;

2.如权利要求1所述的双向事务调度系统,其特征在于,所述各类事务包括pcie至srio读事务、pcie至srio写事务、srio至pcie读事务、srio至pcie写事务、门铃事务以及维护事务。

3.如权利要求1所述的双向事务调度系统,其特征在于,所述事务描述符的关键字段包括但不限于:pcie基地址、srio基地址、地址偏移、事务类型、通道使能位、fifo水位阈值、超时阈值、响应策略以及状态回写字段。

4.如权利要求1所述的双向事务调度系统,其特征在于,所述事务建模模块按照功能分区划分为全局控制区、srio至pcie读事务区、srio至pcie写事务区、pcie至srio读事务区、pcie至srio写事务区、门铃控制区以及维护事务控制区。

5.如权利要求1所述的双向事务调度系统,其特征在于,所述基于所述实时硬件状态和所述事务描述符进行事务调度,包括:

6.如权利要求1所述的双向事务调度系统,其特征在于,还包括自动响应模块,所述自动响应模块用于对srio侧的请求进行应答处理,包括请求分类单元、响应策略单元、响应数据准备单元以及响应包生成单元;

7.如权利要求1所述的双向事务调度系统,其特征在于,还包括门铃闭环模块;

8.如权利要求1所述的双向事务调度系统,其特征在于,还包括维护事务模块;

9.如权利要求1所述的双向事务调度系统,其特征在于,还包括监测电路模块;

10.一种基于fpga的pcie与srio双向事务调度方法,应用于权利要求1至9中任一项所述系统,其特征在于,包括: