一种通道与业务动态匹配的DMA传输控制方法与流程

文档序号:23418255发布日期:2020-12-25 11:38阅读:107来源:国知局
一种通道与业务动态匹配的DMA传输控制方法与流程

本发明属于dma技术领域,特别涉及一种fpga逻辑实现的pcie接口dma传输控制方法。



背景技术:

随着大数据时代的到来,越来越多的关键业务被移植到fpga上,以提升系统的整体性能。为了适应海量业务的传输处理需求,很多系统使用包含fpga的pcie加速设备对业务数据进行传输处理加速。pcie加速设备通常固化有限传输通道,为不同种类、不同优先级的业务提供具有针对性的传输控制服务。

在通常应用场景中,pcie加速设备用于单一或很少种类的业务加速。此时,将一个或多个dma传输通道与业务逻辑绑定,实现对业务数据的传输处理加速。

在特定应用场景中,待加速业务种类较多,无法进行dma传输通道与业务逻辑的多对一或一对一绑定;各业务的使用频率不同,使得传输通道不能保持均衡的传输负载;同时,由于dma传输通道与业务逻辑的高耦合,在业务逻辑变化时,不可避免地会导致相应dma传输通道的更改;在输出与输入相关联的业务中,输入、处理与输出只能串行执行,影响系统整体性能。



技术实现要素:

本发明是一种fpga逻辑实现的,传输通道与业务逻辑多对多动态匹配的,适用于pcie接口的dma传输控制方法。

本发明一种通道与业务动态匹配的dma传输控制方法,其中,包括:pcie接口控制、传输通道控制以及业务逻辑;其中,pcie接口控制进行pcie接口的接收与发送控制,接收数据时与接收通道的动态匹配,发送数据时与发送通道的动态匹配,以及空闲接收缓存与可用发送缓存不足时,进行流量控制;传输通道控制包括接收通道与发送通道控制,进行各路dma传输通道数据传输过程的传输控制,控制当前通道数据的传输过程,并向pcie接口控制与业务逻辑提供当前传输通道的传输状态,完成pcie接口控制与传输通道以及业务逻辑与传输通道的动态匹配;业务逻辑完成各个业务逻辑,以及进行动态匹配包含相应业务数据的接收通道以及动态匹配当前可用的空闲发送通道;pcie接口控制包括:pcieip核、pcie接收控制模块、pcie发送控制模块、dma相关寄存器与通用寄存器;pcieip核进行pcie接口物理层与链路层的协议控制、数据缓存、中断控制以及配置空间的维护;pcie接收控制模块进行事务层包的解析和处理、数据包的乱序处理、差错控制以及与接收通道的动态匹配;pcie发送控制模块进行可用dma发送通道的动态匹配、事务层包的封装以及根据配置自动裁剪事务层包;dma相关寄存器,随数据一起通过dma传输通道传输至业务逻辑与发送逻辑;pcie接口数据接收、业务逻辑处理与pcie接口数据发送同步进行,根据接口传输速率与业务处理速率的差异情况,调整传输通道与业务逻辑数量。

根据本发明的通道与业务动态匹配的dma传输控制方法的一实施例,其中,pcie接收控制模块收到宿主机的dma传输请求;获取可用的dma接收通道,若无可用通道,则向宿主机发送流量控制信息;根据最大读请求长度与最大负载长度,计算传输请求所需的pcie读请求事务包数量,并发送相应数量的包给宿主机;接收并解析事务层包;判断当前包的合法性,若不合法,则丢弃处理,并报错;若当前包是合法的完成事务包,则处理接收顺序,转发完成事务包的数据到接收通道;判断接收是否完成,否则继续等待接收解析事务层包。

根据本发明的通道与业务动态匹配的dma传输控制方法的一实施例,其中,pcie接收控制模块,根据各接收通道的状态判断是否存在空闲的接收通道,从上次查找命中位置后面开始,找到匹配的空闲接收通道,使得满足条件的接收通道都有相同的机会被匹配,平衡了接收通道负载。

根据本发明的通道与业务动态匹配的dma传输控制方法的一实施例,其中,pcie发送控制模块收到宿主机的dma接收请求;获取可用的发送通道;根据最大负载长度判断数据是否需要分片,并将各数据片依次封包发送;在收到宿主机的流量控制请求时,协助完成流量控制。

根据本发明的通道与业务动态匹配的dma传输控制方法的一实施例,其中,pcie接口控制获取可用的dma发送通道,动态匹配发送通道,pcie发送控制模块根据各接收通道的状态判断是否存在可用的发送通道;从上次查找命中位置后面开始,找到可用的发送通道,满足条件的发送通道都有相同的机会被匹配,平衡发送通道负载。

根据本发明的通道与业务动态匹配的dma传输控制方法的一实施例,其中,传输通道控制包括多个接收通道寄存器、多个发送通道寄存器以及缓存与控制模块;接收通道寄存器的值由pcie接口控制部分确定,包含当前至业务逻辑的传输控制信息;发送通道寄存器的值由业务逻辑部分确定,包含当前至pcie接口控制部分的传输控制信息。

根据本发明的通道与业务动态匹配的dma传输控制方法的一实施例,其中,上电以及复位与初始化后,接收通道处于空闲状态;接收通道接收pcie接口数据时,进入接收数据状态,相应的接收计数器与接收通道长度寄存器相等时,指示接收通道接收pcie数据完毕,通道进入接收数据完毕状态,接收通道开始向业务逻辑转发数据;接收通道接收到业务逻辑的数据发送请求时,进入发送数据状态,相应的发送计数器与接收通道长度寄存器相等时,指示接收通道完成业务数据的转发,接收通道重新进入空闲状态,可被选中用于新的pcie数据接收。

根据本发明的通道与业务动态匹配的dma传输控制方法的一实施例,其中,上电、复位与初始化后,发送通道处于空闲状态;发送通道接收到业务逻辑的数据发送请求时,进入接收数据状态,接收计数器与发送通道长度寄存器相等时,指示发送通道接收业务逻辑数据完毕,通道进入接收数据完毕状态,发送通道开始向pcie接口转发数据;发送通道接收到发送接口的数据发送请求时,进入发送数据状态,发送计数器与发送通道长度寄存器相等时,指示发送通道完成业务数据的转发,发送通道重新进入空闲状态,可被选中用于业务数据接收。

根据本发明的通道与业务动态匹配的dma传输控制方法的一实施例,其中,业务逻辑部分包括业务数据传输控制模块与多个业务逻辑模块;业务数据传输控制模块用于传输通道与业务逻辑的动态匹配,在接收通道向业务逻辑转发数据时,业务数据传输控制模块首先判断是否存在接收数据完毕且未被占用的接收通道,同时判断接收通道接收到的数据业务类型对应的业务逻辑是否空闲;当接收通道对应的数据类型对应多个业务逻辑时,按既定优先级或遍历算法确定业务逻辑的选用,在业务逻辑向发送通道转发数据时,业务数据传输控制模块需要判断是否存在空闲的发送通道,或存在通道优先级时,不高于业务优先级的且最高优先级的空闲发送通道。

根据本发明的通道与业务动态匹配的dma传输控制方法的一实施例,其中,dma相关寄存器包括起始地址寄存器、长度寄存器以及业务类型寄存器。

本发明提供一种通道与业务动态匹配的dma传输控制方法,将dma传输通道与业务分离,业务逻辑根据dma传输通道的传输状态,使用特定算法动态匹配传输通道;在传输数据的同时传输数据状态,使得pcie接口收发、dma传输与业务处理可同步进行,提升系统的整体性能。

附图说明

图1是本发明的系统框图;

图2是pcie接收控制模块的主要控制流程;

图3是pcie发送控制模块的主要控制流程;

图4是pcie接口控制部分主要的dma相关寄存器与通用寄存器类型;

图5是接收通道的状态迁移图;

图6是发送通道的状态迁移图。

具体实施方式

为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。

图1是本发明的系统框图,如图1所示,本发明主要由pcie接口控制,传输通道控制,以及业务逻辑三部分构成。

其中,pcie接口控制部分主要完成pcie接口的接收与发送控制,接收数据时与接收通道的动态匹配,发送数据时与发送通道的动态匹配,以及空闲接收缓存与可用发送缓存不足时的流量控制等;传输通道控制部分主要完成各路dma传输通道数据传输过程的传输控制,以及传输状态的维护;业务逻辑部分除完成各个业务逻辑外,还要负责动态匹配包含相应业务数据的接收通道,以及动态匹配当前可用的空闲发送通道。

在设备正常工作时,pcie接口数据接收、业务逻辑处理与pcie接口数据发送可以同步进行。在理想情况下,设备可以连续接收、处理与发送数据。在实际工作中,根据接口传输速率与业务处理速率的差异情况,调整传输通道与业务逻辑数量,以提升系统整体性能。

如图1所示,(1)pcie接口控制部分

pcie接口控制部分由pcieip核、pcie接收控制模块、pcie发送控制模块、dma相关寄存器与通用寄存器构成。其中,pcieip核由fpga提供,主要实现pcie接口物理层与链路层的协议控制,数据缓存,中断控制,以及配置空间的维护等功能;pcie接收控制模块主要完成事务层包的解析和处理,数据包的乱序处理,差错控制,以及与接收通道的动态匹配等功能;pcie发送控制模块主要完成可用dma发送通道的动态匹配,事务层包的封装,以及根据配置自动裁剪事务层包等功能;dma相关寄存器即传输数据状态相关的寄存器,包括起始地址寄存器、长度寄存器、业务类型寄存器等,并随数据一起通过dma传输通道传输至业务逻辑与发送逻辑;通用寄存器包括系统控制、系统状态等寄存器,可被宿主机读写访问控制。

图2是pcie接收控制模块的主要控制流程,如图2所示,pcie接收控制模块收到宿主机的dma传输请求;获取可用的dma接收通道,若无可用通道,则向宿主机发送流量控制信息;根据最大读请求长度与最大负载长度,计算传输请求所需的pcie读请求事务包数量,并发送相应数量的包给宿主机;接收并解析事务层包;判断当前包的合法性,若不合法,则丢弃处理,并报错;若当前包是合法的完成事务包,则首先处理接收乱序问题,然后转发完成事务包的数据到接收通道;判断接收是否完成,否则继续等待接收解析事务层包。

如图2所示,pcie接收控制模块主要控制流程,获取可用的dma接收通道,即pcie接口控制部分动态匹配接收通道的过程。此时,pcie接收控制模块首先根据各接收通道的状态判断是否存在空闲的接收通道;然后从上次查找命中位置后面开始,按一定的算法,如循环按序查看后面的接收通道,或只查找低于本次传输优先级的通道,直到找到匹配的空闲接收通道为止。该过程使得满足条件的接收通道都有相同的机会被匹配,平衡了接收通道负载。同时,该过程使用组合逻辑快速实现,在通道数不是很多时,可在1个时钟周期内完成匹配。

图3是pcie发送控制模块的主要控制流程。如图3所示,pcie发送控制模块收到宿主机的dma接收请求;获取可用的发送通道;根据最大负载长度判断数据是否需要分片,并将各数据片依次封包发送;在收到宿主机的流量控制请求时,协助完成流量控制。

图4是pcie接口控制部分主要的dma相关寄存器与通用寄存器类型,其中,获取可用的dma发送通道,即pcie接口控制部分动态匹配发送通道的过程。此时,pcie发送控制模块首先根据各接收通道的状态判断是否存在可用的发送通道;然后从上次查找命中位置后面开始,找到可用的发送通道。该过程同样使得满足条件的发送通道都有相同的机会被匹配,平衡了发送通道负载。同时,该过程使用组合逻辑快速实现,在发送通道数量不是很多时,可在1个时钟周期内完成匹配。

(2)传输通道控制部分

图5是接收通道的状态迁移图,如图5所示,接收通道控制模块控制传输过程在4种状态之间转换,

传输通道控制部分由若干接收通道寄存器、缓存与控制模块,以及若干发送通道寄存器、缓存与控制模块构成。其中,接收通道寄存器的值由pcie接口控制部分确定,包含当前至业务逻辑的传输控制信息;发送通道寄存器的值由业务逻辑部分确定,包含当前至pcie接口控制部分的传输控制信息;通道控制模块控制当前通道数据的传输过程,并向pcie接口控制部分与业务逻辑部分提供当前传输通道的传输状态,以便完成pcie接口控制部分与传输通道,以及业务逻辑部分与传输通道的动态匹配。

上电、复位与初始化后,接收通道处于空闲状态。接收通道接收pcie接口数据时,进入接收数据状态。接收计数器与接收通道长度寄存器相等时,指示接收通道接收pcie数据完毕,通道进入接收数据完毕状态,此时,接收通道可开始向业务逻辑转发数据。接收通道接收到业务逻辑的数据发送请求时,进入发送数据状态。发送计数器与接收通道长度寄存器相等时,指示接收通道完成业务数据的转发,通道重新进入空闲状态,可被选中用于新的pcie数据接收。

图6是发送通道的状态迁移图,如图6所示,发送通道控制模块控制传输过程在4种状态之间转换。

上电、复位与初始化后,发送通道同样处于空闲状态。发送通道接收到业务逻辑的数据发送请求时,进入接收数据状态。接收计数器与发送通道长度寄存器相等时,指示发送通道接收业务逻辑数据完毕,通道进入接收数据完毕状态,此时,发送通道可开始向pcie接口转发数据。发送通道接收到发送接口的数据发送请求时,进入发送数据状态。发送计数器与发送通道长度寄存器相等时,指示发送通道完成业务数据的转发,通道重新进入空闲状态,可被选中用于业务数据接收。

(3)业务逻辑部分

业务逻辑部分由业务数据传输控制模块与多个业务逻辑模块构成。

业务数据传输控制模块用于传输通道与业务逻辑的动态匹配。在接收通道向业务逻辑转发数据时,业务数据传输控制模块首先判断是否存在接收数据完毕且未被占用的接收通道,同时判断接收通道接收到的数据业务类型对应的业务逻辑是否空闲;当接收通道对应的数据类型对应多个业务逻辑时,按既定优先级或遍历算法确定业务逻辑的选用。在业务逻辑向发送通道转发数据时,业务数据传输控制模块需要判断是否存在空闲的发送通道,或存在通道优先级时,不高于业务优先级的、最高优先级的空闲发送通道。该过程使用组合逻辑快速实现,一般可在1个时钟周期内完成空闲通道的匹配。

本发明传输通道不再对应固定业务逻辑,业务逻辑根据各通道传输状态与数据业务类型,以及匹配算法,灵活匹配传输通道;传输数据的同时,传输数据状态,使得各部分传输处理得以同步进行。

采用本发明的传输控制方法,可以通过自定义策略灵活匹配业务逻辑与传输通道,实现对不同业务逻辑的差异性传输服务,并平衡各传输通道的传输负载,升高传输通道利用率;同时,使得数据传输与业务处理得以同步进行,并可通过调整数据传输通道与业务逻辑数量与比例,优化系统整体性能。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1