一种基于Zynq平台的资源调度方法
【专利摘要】本发明公开了一种基于Zynq平台的资源调度方法,所述Zynq平台包括FPGA和双核处理器,所述的资源调度方法包括:步骤1,对Zynq平台的FPGA资源进行评估;步骤2,对FPGA资源不足以处理的复杂算法进行分割,得到若干个处理子模块;步骤3,针对每个处理子模块构建一个FIFO模块;步骤4,双核处理器通过对应的FIFO模块接收FPGA下发的处理子模块计算任务,并进行实时处理,处理结果通过对应的FIFO模块反馈至FPGA。本发明提供的基于Zynq平台的资源调度方法,能够解决复杂应用下PL资源不足的情况,并且最大程度上发挥PS和PL的计算性能。
【专利说明】
一种基于Zynq平台的资源调度方法
技术领域
[0001] 本发明涉及可拓展处理平台领域,具体涉及一种基于Zynq平台的资源调度方法。
【背景技术】
[0002] Zynq系列是Xilinx公司推出的可拓展处理平台,在视频监控、汽车驾驶辅助、工厂 自动化等高端嵌入式应用场景下应用广泛。针对特定应用场景下,处理算法性能要求高。 Zynq平台包含的硬件资源非常丰富,但是需要实时处理大数据的时候,由于需要使用大量 的查找表和LUT,可配置逻辑块(CLB)资源往往会显示不足,当算法复杂度提升的时候,处理 需要使用较多的乘法器,也会导致PL(即FPGA)资源不足。在以上的复杂应用场景下,需要解 决PL资源不足的问题,以便很好的提升系统整体的处理性能,充分的发挥zynq平台的优势, 将PS (即双核处理器)和PL更好的结合。
[0003] 针对PL资源不足的情况,传统的做法是从算法角度降低复杂度,减少逻辑处理单 元的使用,但这种方法实际的效果并不明显,因为算法复杂度很难降低。另外的选择是更换 芯片,但是对于实际应用而言,又会存在着能耗、尺寸和功能等多方面的问题。因此,本发明 能够在zynq平台下充分发挥PS的计算优势,解决PL资源不足的问题,具有广阔的应用前景。
【发明内容】
[0004] 本发明提供了一种基于Zynq平台的资源调度方法,能够解决复杂应用下PL资源不 足的情况,并且最大程度上发挥PS和PL的计算性能。
[0005] 一种基于Zynq平台的资源调度方法,所述Zynq平台包括FPGA(即PL)和双核处理器 (即PS),所述的资源调度方法包括:
[0006] 步骤1,对Zynq平台的FPGA资源进行评估;
[0007] 步骤2,对FPGA资源不足以处理的复杂算法进行任务分割,得到若干个处理子模 块;
[0008] 步骤3,针对每个处理子模块构建一个FIFO模块;
[0009]步骤4,双核处理器通过对应的FIFO模块接收FPGA下发的处理子模块计算任务,并 进行实时处理,处理结果通过对应的FIFO模块反馈至FPGA。
[0010] 本发明将复杂算法处理划分成多个处理子模块,通过PS进行实时计算,在进行大 数据处理时,能够显著减少系统对于PL资源需求,提升了系统的处理性能。
[0011] 本发明中所述的复杂算法,是指仅依赖FPGA资源不能够满足处理要求的算法,进 行任务分割时,根据计算复杂度将算法任务划分为若干个处理子模块,且每个处理子模块 包含输入输出模块。
[0012] 利用PS可以实现实时数据的处理,能够对各处理子模块利用FIFO模块输入的数据 进行处理。
[0013] 作为优选,步骤1中,针对FPGA中的可配置逻辑块(CLB)资源、乘法器资源以及DSP 处理单元(DSP slice)资源进行评估。
[0014]作为优选,所述的FIFO模块通过GPI0挂载,FIFO通讯采用AXI总线协议。
[0015]本发明用于连接PS和PL的FIFO模块的传输位宽32bit,深度4096,传输长度为16字 节的整数倍。
[0016] 为了实现PS和PL之间的通讯,本发明采用用户自定义的驱动协议,实现双边可以 收发任意长度的数据。
[0017] 在数据传输前封装头部,由4个16字节的整型数据组成,第一个为规定的特殊字 节,第二为实际字节长度,后两个预留,可以不做处理。
[0018] 数据按照16字节的整数倍发送,不足16字节整数倍的数据,补齐发送。
[0019] 本发明提供的基于Zynq平台的资源调度方法能够充分利用Zynq平台自身的资源, 最大化的发挥PS和PL的计算能力,不需要再通过繁琐的降低算法复杂度来减少PL资源的使 用,具有更广阔的应用前景。
【附图说明】
[0020] 图1为本发明基于Zynq平台的资源调度方法的流程图;
[0021]图2为本发明基于Zynq平台的资源调度方法的结构示意图。
【具体实施方式】
[0022]下面结合附图,对本发明基于Zynq平台的资源调度方法做详细描述。
[0023] 如图1所示,一种基于Zynq平台的资源调度方法,Zynq平台包括FPGA和双核处理 器,资源调度方法包括:
[0024] 步骤1,对Zynq平台的FPGA资源进行评估。
[0025] 对PL资源评估主要是针对FPGA中的可配置逻辑块(CLB)资源、乘法器资源以及DSP 处理单元(DSP slice)资源。
[0026] 步骤2,对FPGA资源不足以处理的复杂算法进行任务分割,得到若干个处理子模 块。
[0027]进行任务分割时,依据计算的复杂度进行,划分得到的每个处理子模块均包含输 入输出模块。
[0028] 步骤3,针对每个处理子模块构建一个FIFO模块。
[0029] 通过FIFO模块将处理子模块和PS相连,FIFO模块通过GPI0挂载,FIFO通讯采用的 是AXI总线协议。
[0030]步骤4,双核处理器通过对应的FIFO模块接收FPGA下发的处理子模块计算任务,并 进行实时处理,处理结果通过对应的FIFO模块反馈至FPGA。
[0031] 双核处理器接收到对应的处理子模块后,对各处理子模块进行并行处理,适用于 大数据的运算。
[0032] PS通过FIFO模块和PL进行数据交互时,采用自定义的驱动协议,实现双边可以收 发任意长度的数据。数据传输协议格式见表1:
[0033]表 1
[0035] FIFO通讯采用封装的驱动协议,数据传输前封装头部,由4个16字节的整型数据, 第一个是规定的特殊字节,第二个是实际长度字节,后两个预留,可以不做处理。数据按照 16字节的倍数发送,不足16字节整数倍的数据,补齐发送。
[0036]本发明中的zynq平台结构如图2所示:
[0037] PL部分根据算法复杂度对逻辑资源进行评估,对复杂度较高的算法处理部分划分 成若干个处理子模块;
[0038]对若干处理子模块对应构建FIFO模块,通过GPI0实现硬件上的连接,采用AXI总线 协议,数据传输使用定义的驱动协议,实现双边的数据任意收发。
[0039] PS部分对应若干进程,根据算法需求,可以实时多进程并行处理,节约了算法处理 过程的时间,同时也解决了 PL部分逻辑资源不足的问题。
[0040] FIFO模块作为数据转接模块,将PS计算数据通过FIFO模块发送给PL模块,PL模块 将计算结果进行综合处理。
[0041]采用本方法能够解决zynq平台资源不足的问题,能够充分利用zynq平台自身的资 源,最大化的发挥PS和PL的计算能力,不需要再通过繁琐的降低算法复杂度来减少PL资源 使用,有利于复杂应用场景下的系统拓展和功能增强。
[0042]以上仅为本发明的一个实施例,并不能以此限制本发明,凡在本发明的思想和方 法范围内,所做的任何修改、改进,均应包含在本发明保护的范围内。
【主权项】
1. 一种基于Zynq平台的资源调度方法,其特征在于,所述Zynq平台包括FPGA和双核处 理器,所述的资源调度方法包括: 步骤1,对Zynq平台的FPGA资源进行评估; 步骤2,对FPGA资源不足以处理的复杂算法进行分割,得到若干个处理子模块; 步骤3,针对每个处理子模块构建一个FIFO模块; 步骤4,双核处理器通过对应的FIFO模块接收FPGA下发的处理子模块计算任务,并进行 实时处理,处理结果通过对应的FIFO模块反馈至FPGA。2. 如权利要求1所述的基于Zynq平台的资源调度方法,其特征在于,步骤1中,针对FPGA 中的可配置逻辑块资源、乘法器资源以及DSP处理单元资源进行评估。3. 如权利要求1所述的基于Zynq平台的资源调度方法,其特征在于,每个处理子模块包 含输入输出模块。4. 如权利要求1所述的基于Zynq平台的资源调度方法,其特征在于,所述的FIFO模块通 过GPIO挂载。5. 如权利要求1所述的基于Zynq平台的资源调度方法,其特征在于,FIFO通讯采用AXI 总线协议。
【文档编号】G06F9/50GK105912400SQ201610218025
【公开日】2016年8月31日
【申请日】2016年4月8日
【发明人】陈耀武, 田翔, 蒋荣欣, 邱晓煜
【申请人】浙江大学