CN112540770B - 基于PowerPC和FPGA的异构平台及其加速方法 - Google Patents

基于PowerPC和FPGA的异构平台及其加速方法 Download PDF

Info

Publication number
CN112540770B
CN112540770B CN201910898139.5A CN201910898139A CN112540770B CN 112540770 B CN112540770 B CN 112540770B CN 201910898139 A CN201910898139 A CN 201910898139A CN 112540770 B CN112540770 B CN 112540770B
Authority
CN
China
Prior art keywords
fpga
module
data
platform
powerpc
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910898139.5A
Other languages
English (en)
Other versions
CN112540770A (zh
Inventor
赵冰洁
张华良
王福东
张涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenyang Institute of Automation of CAS
Original Assignee
Shenyang Institute of Automation of CAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenyang Institute of Automation of CAS filed Critical Shenyang Institute of Automation of CAS
Priority to CN201910898139.5A priority Critical patent/CN112540770B/zh
Publication of CN112540770A publication Critical patent/CN112540770A/zh
Application granted granted Critical
Publication of CN112540770B publication Critical patent/CN112540770B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/51Source to source
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/177Initialisation or configuration control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • G06F15/7885Runtime interface, e.g. data exchange, runtime control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • G06F8/4441Reducing the execution time required by the program code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/447Target code generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及基于PowerPC和FPGA的异构平台及其加速方法,PowerPC平台将不需要加速的.c算法代码生成可执行应用程序,将需要加速的算法的C代码转换成FPGA IP核,运行FPGA_IP.tcl脚本文件生成FPGA可执行的.bit文件;管理PowerPC平台和FPGA平台之间的数据交互;FPGA用于加速算法的运行平台,通过RapidIO通信,动态更新算法;在动态配置阶段,连接AXI读写接口和动态配置模块,将AXI读写接口使用权限给动态配置模块,一旦动态配置完成之后,权限归属模块断开与动态配置模块的连接,将AXI读写接口和加速逻辑模块相连,将AXI读写接口使用权限给加速逻辑模块。FPGA算法动态更新功能,只更改加速算法部分,用户不需要关心底层的通信及代码生成部分,提升了更新速度,加快了开发周期,快速的实现算法加速。

Description

基于PowerPC和FPGA的异构平台及其加速方法
技术领域
本发明涉及了异构加速领域,一种基于PowerPC和FPGA的异构加速平台及其加速方法,主要应用于光刻机控制领域。
背景技术
集成电路产业伴随着经济全球化、信息化已经成为影响国家政治、经济和国防安全的战略产业。整个产业链的基础是制造装备。从技术发展历史进程可以看出,其发展瓶颈之一是先进光刻技术。光刻及光刻机是IC制造工艺中的重要技术环节和核心装备之一。目前,浸没式光刻技术是先进光刻技术的主流,为了解决投影物镜成本大幅增长的问题,现在采用步进加扫描方式的同时,采用了浸没式技术。这种方式有效地降低了投影光刻物镜成本,但却对工件台提出了更高的要求。这更高的要求主要体现在,工件台除要求完成超精密步进、定位、调整等动作外,还需要进行动态测量、扫描、曝光,同时要求整个过程在短时间内完成。短时间完成动态测量、扫描、曝光促使双硅片台技术的诞生。双硅片台超精密运动控制系统是光刻机核心关键技术之一,是我国必须自主掌握的核心单元技术,对研制自主产权的高精密扫描光刻机具有重大意义。如果没有良好的运动控制硬件平台,就没有高性能的光刻机和集成电路制造设备。如果没有高性能的集成电路制造装备,我们将失去的庞大的市场和科技发展的主动权,而且会长期受制于人。
我国现在自主研发的双硅片精密运动控制系统采用PowerPC+FPGA异构平台,PowerPC负责所有控制算法、与上位机和FPGA的通信,FPGA负责各路传感信号的采集,不做算法处理,PowerPC和FPGA采用PCI Express通信。这样的架构下,控制周期只能达到5K,不能提高控制周期的限制,对于28nm及以下的光刻机产品已经不能满足要求。
RapidIO作为高速总线,相比PCI Express,有更低的延时,及更高的灵活性,可以实现交换机制,替代PCI Express能获得更快的通信效率及低延时,同时FPGA由于并行度高,延时低等特点、将并行度高的算法开发在FPGA上,可以有效的提高控制周期。利用我们设计的平台,可以分析需要加速算法部分,并生成FPGA可执行文件,动态加载到FPGA中。将大大提高PowerPC+FPGA异构平台的灵活性、易用性。
发明内容
为解决上述技术问题,本发明提供一种基于PowerPC和FPGA的异构加速平台及其加速方法。
本发明的技术方案如下:基于PowerPC和FPGA的异构平台,包括:
PowerPC平台,用于对算法进行分析,将需要加速的算法的C代码转换成FPGA IP核;将不需要加速的算法代码生成PowerPC可执行应用程序;同时运行FPGA_IP.tcl脚本文件生成FPGA可执行的.bit文件;管理PowerPC平台和FPGA平台之间的数据交互;
FPGA平台,用于实现加速算法的运行平台,通过RapidIO通信,动态更新加速算法;在动态配置阶段,连接AXI读写接口和动态配置模块,将AXI读写接口使用权限给动态配置模块,一旦动态配置完成之后,权限归属模块断开与动态配置模块的连接,将AXI读写接口和加速逻辑模块相连,将AXI读写接口使用权限给加速逻辑模块。
所述PowerPC平台包括:
算法分析模块,用于对算法运行时间分析,将需要加速的算法的C代码转换成FPGAIP核;
代码生成模块,用于调用gcc编译器将不需要加速的算法代码生成PowerPC可执行应用程序,调用Vivado tcl工具运行FPGA_IP.tcl脚本文件,将FPGA IP核通过AXI总线挂接到静态逻辑部分,最终生成FPGA可执行的.bit文件;
RapidIO控制器,用于管理PowerPC平台和FPGA平台之间的数据交互。
所述算法分析模块,包括:
用户算法模块,用于存储平台运行的算法;
运行分析模块,包括耗时分析函数库,通过用户算法模块的调用,获取算法运行时间;
IP生成模块,用于将计算时间超过阈值的算法通过HLS将C代码转换成FPGA IP核。
所述RapidIO控制器,包括:
内存管理模块,用于管理PowerPC平台和FPGA平台之间的数据交互;通过mmap到用户态来降低通信延时,通过两块内存作为数据交互缓存内存,用于保证数据稳定性;
RapidIO协议控制模块,用于将内存管理模块的数据按照RapidIO协议的进行包处理,发送至FPGA平台。
所述FPGA平台包括:
FPGA RapidIO IP模块,用于按照应用层协议规范解析和编码协议数据包,同时开辟读写FIFO,通过FIFO与DMA控制模块进行数据交互;
所述的DMA控制模块,用于处理数据流在FPGARapidIO IP模块与FPGA平台的动态配置模块、加速逻辑模块之间的DMA传输;
权限归属模块,用于在动态配置阶段,连接AXI读写接口和动态配置模块,将AXI读写接口使用权限给动态配置模块,一旦动态配置完成之后,权限归属模块断开与动态配置模块的连接,将AXI读写接口和加速逻辑模块相连,将AXI读写接口使用权限给加速逻辑模块;
动态配置模块,通过AXI总线数据信号及控制信号,接收解析的数据包存入到FIFO中;检测到FIFO非空,读取数据,并判断FPGA可执行的.bit文件的包头和包尾,从包头开始,将数据发送给用于FPGA配置的ICAP模块;检测到包尾信号时,发送配置完成信号给权限归属模块,配置结束;
加速逻辑模块,是算法分析模块生成的FPGAIP,在FPGA中运行的模块,可以动态更新的模块。
所述FPGARapidIO IP模块包括:
RapidIO IP模块,是Xilinx RapidIO IP核;
DMA交互模块,用于完成RapidIO总线应用层协议,按照协议规范解析和编码协议数据包,同时开辟读写FIFO,通过FIFO与DMA控制模块进行数据交互;
所述DMA控制模块,包括:
RQC模块,用于实现请求应答功能,与FIFO交互;
H2C通道,用于处理数据流从FPGA RapidIO IP模块到FPGA平台的动态配置模块或加速逻辑模块的DMA传输;
C2H通道,用于处理数据流从FPGA平台的加速逻辑模块到FPGA RapidIO IP模块的DMA传输;
AXI读写接口,设于H2C通道与权限归属模块、以及C2H通道与权限归属模块之间,用于实现RapidIO地址映射成AXI总线地址,并将H2C通道和C2H通道的控制信号、数据信号转换成AXI总线控制信号和数据信号,通过AXI总线,实现链接用户IP。
FPGA平台运行的RapidIO IP模块、DMA控制模块、动态配置模块构成静态逻辑部分,用于为不同的算法IP提供配置功能和与PowerPC的通信功能。
基于PowerPC和FPGA的异构加速方法,包括以下步骤:
1)调用耗时分析函数库,获取算法计算时间,将计算时间超过阈值的算法即加速算法通过HLS将C代码转换成FPGA IP核;
2)利用HLS工具,将加速算法转生成FPGA AXI IP核;
3)将运行在PowerPC平台上的程序转化为可执行程序,运行FPGA_IP.tcl脚本,生成FPGA可执行的.bit文件和动态配置算法IP.bit文件;
4)PowerPC平台开辟写内存作为数据交互缓存内存,PowerPC平台写IP.bit文件数据到写内存中,由FPGA平台通过RapidIO总线将数据包读走;
5)权限归属模块连接AXI读写接口和动态配置模块,将AXI读写接口使用权限给动态配置模块,动态配置模块通过AXI读写接口,接收AXI总线数据及控制信号,接收解析的数据包存入到FIFO中;数据接收后,发送配置完成信号给权限归属模块,配置结束,此时加速算法已经在FPGA平台中运行;
6)权限归属模块断开与动态配置模块的连接,将AXI读写接口和加速逻辑模块相连,将AXI读写接口使用权限给加速逻辑模块;
7)PowerPC平台开辟读写独立的两块内存作为数据交互缓存内存;
8)PowerPC平台发数据给FPGA平台,PowerPC写数据到写内存区中,FPGA RapidIOIP模块周期发起NREAD命令,通过内存管理,数据不冲突时,DMA控制模块通过RQC请求FIFO数据,非空时通过H2C通道将数据发给AXI读写接口,AXI读写接口解析数据发给加速算法模块;加速逻辑模块将需要与PowerPC平台通信的数据发送给AXI读写接口,通过C2H通道,RQC请求存储数据到FPGA平台RapidIO IP模块的FIFO中,RapidIO IP模块检测FIFO非空,将数据通过NWRITE方式发送给PowerPC的读内存区,PowerPC平台将数据读走,完成数据交互。
所述内存管理,通过两块内存作为数据交互缓存,定义读写防冲突机制,用于保证数据稳定性,包括以下步骤:
对于写操作处理:写操作的数据流是PowerPC平台到FPGA平台,PowerPC平台数据到写内存中,为了避免数据冲突,PowerPC平台正在写数据时,将内存的第一个数据写为0xAAAAAAAA,然后将需要交互的数据依次写入内存中,当数据写完后,将内存第一个数据更改为0xBBBBBBBB;FPGA平台发起读命令,检测内存地址的第一个数据,如果检测到0xBBBBBBBB,通过RapidIO总线,将数据包读走,如果检测到0xAAAAAAAA,处于等待状态;
对于读操作的处理:读操作的数据流是FPGA平台到PowerPC平台,FPGA平台主动发起写命令,将数据通过RapidIO总线发送到读内存,并添加数据包尾0xA5A5A5A5,PowerPC平台检测到数据包尾为0xA5A5A5A5时,将数据读走,同时修改数据包尾所在的内存单元为0x00000000,结束读操作。
本发明的有益效果和优点是:
1、该平台用FPGA做部分算法加速,相比之前所有算法在PowerPC上运行,能有效地提高了控制频率。
2、算法分析功能,有效的分析算法需要加速的部分,提高开发效率。
3、FPGA算法动态更新功能,只更改加速算法部分,用户不需要关心底层的通信及代码生成部分,提升了更新速度,加快了开发周期,快速的实现算法加速。
4、基于RapidIO总线通信,降低通信延时,提高系统灵活性。
5、内存管理模块,能避免数据冲突及毛刺发生,降低延时,保证数据稳定交互。
附图说明
图1是本发明的异构加速平台架构图。
图2是本发明中的实施例的工作流程图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实例对本发明进一步详细说明。
基于PowerPC和FPGA的异构加速平台及其加速方法,其中主要涉及PowerPC平台和FPGA平台。如图1所示:
所述的PowerPC平台,主要包括算法分析模块,代码生成模块、RapidIO控制器。
所述的FPGA平台,主要包括RapidIO IP模块,DMA控制模块,权限归属模块,动态配置模块,加速逻辑模块。
所述的异构平台,主要包括PowerPC多核处理器和FPGA处理器,PowerPC处理器和FPGA处理器之间通过RapidIO接口通信。
所述的算法分析模块,包括运行分析模块、用户算法模块、IP生成模块。用户算法模块主要是需要在平台运行的算法。运行分析模块主要包括耗时分析函数库,以头文件和源文件形式,通过用户算法模块调用,来分析算法比较耗时的部分。IP生成模块,主要包括HLS工具,将耗时的算法在HLS平台下进行资源和并行度分析。如果有提高的可能,再适度修改,提高算法加速性能,并利用HLS工具,将加速算法C代码转换成FPGA IP核。
所述的代码生成模块,主要涉及PowerPC平台运行算法代码生成模块和FPGA平台运行算法代码生成模块。PowerPC代码生成模块调用gcc编译器将.c算法代码生成可执行应用程序。FPGA平台运行算法代码生成模块,调用Vivado tcl工具运行FPGA_IP.tcl脚本文件,生成FPGA可执行的.bit文件。
所述的代码生成FPGA_IP.tcl脚本文件,脚本里是vivado下执行的命令行代码,主要完成将上述算法IP通过AXI总线挂接到静态逻辑部分,对完整工程进行代码的综合、布局布线。然后,将算法IP部分标定为动态配置部分,执行.bit生成命令,生成FPGA可执行完整工程.bit文件和动态配置算法IP.bit文件。
所述的静态逻辑部分,主要包括FPGA平台运行的RapidIO IP模块,DMA控制模块,动态配置模块。静态逻辑部分是FPGA固化的逻辑,当进行不同算法的配置时,静态逻辑部分仍然执行其原有功能,不受算法部分逻辑影响。静态逻辑部分为不同的算法IP提供配置功能和与PowerPC的通信功能。
所述的RapidIO控制器,包括RapidIO协议控制模块和内存管理模块。
所述的内存管理模块,是管理PowerPC和FPGA之间数据交互的模块,自PowerPC开辟读写独立的两块内存作为数据交互缓存内存。同时将读写内存mmap到用户态来降低通信延时。自定义内存管理机制来保证数据稳定性。内存管理机制对于写操作处理:写操作的数据流是PowerPC到FPGA,PowerPC数据到内存中,为了避免数据冲突,PowerPC正在写数据时,会将内存的第一个数据写为0xAAAAAAAA,然后将需要交互的数据依次写入内存中,当数据写完后,将内存第一个数据更改为0xBBBBBBBB。FPGA发起读命令,检测内存地址的第一个数据,如果检测到0xBBBBBBBB,通过RapidIO总线,将数据包读走,如果检测到0xAAAAAAAA,处于等待状态。内存管理机制对于读操作的处理:读操作的数据流是FPGA到PowerPC,FPGA主动发起写命令,将数据通过RapidIO总线发送到读内存模块,并添加数据包尾0xA5A5A5A5,PowerPC检测到数据包尾为0xA5A5A5A5时,将数据读走,同时修改数据包尾所在的内存单元为0x00000000,结束读操作。内存管理模块有效地减少延时,避免异构平台的读写冲突。
所述的RapidIO协议控制模块,主要将内存管理模块的数据,利用PowerPC的RapidIO控制器将数据按照RapidIO协议的进行包处理。
所述的FPGA RapidIO IP模块,主要包括Xilinx RapidIO IP核和DMA交互模块。
所述的DMA交互模块,完成RapidIO总线应用层协议,实现SWRITE、NWRITE、NREAD三种基本通信方式,按照协议规范,解析和编码协议数据包,同时开辟读写FIFO,通过FIFO与DMA控制模型进行数据交互。
所述的DMA控制模块,主要包括RQC模块、C2H通道、H2C通道和AXI读写接口。
所述的RQC模块,实现请求应答功能,与上述的FIFO交互。
所述的H2C通道,处理数据流从PowerPC到FPGA的DMA传输。
所述的C2H通道,处理数据流从FPGA到PowerPC的DMA传输。
所述的AXI读写接口,实现RapidIO地址映射成AXI总线地址,并将H2C和C2H通道的控制和数据信号转换成AXI总线控制和数据信号。通过AXI总线,可以方便链接更多的用户IP。
所述的权限归属模块,连接AXI读写接口、动态配置模块和加速逻辑模块。在动态配置阶段,权限归属模块连接AXI读写接口器和动态配置模块,将AXI读写接口使用权限给动态配置模块。一旦动态配置完成之后,权限归属模块断开与动态配置模块的连接,将AXI读写接口和加速逻辑模块相连,将AXI读写接口使用权限给加速逻辑模块。
所述的动态配置模块,包括AXI通信模块和原语模块。AXI通信模块通过AXI总线数据及控制信号,接收解析的数据包存入到FIFO中。动态配置模块内用于FPGA配置的原语模块检测到FIFO非空,读取数据,并判断bitfile文件的包头和包尾,从包头开始,将数据发送给ICAP模块。检测到包尾信号时,发送配置完成信号给权限归属模型,配置结束。
所述的加速逻辑部分是需要在FPGA中执行的加速算法部分。
如图2所示,本发明包括以下步骤:
1)用C语言编写控制算法,通过运行分析模块来分析算法比较耗时的部分。
所述的运行分析模块主要包括耗时分析函数库,以头文件和源文件形式给出,通过用户算法调用来进行算法分析。
2)将耗时的算法部分通过IP生成模块,在HLS工具下进行分析、修改,优化加速算法的并行度,利用HLS工具,将加速算法转生成FPGAAXI IP核。
3)利用代码生成模块将运行在PowerPC上的程序转化为可执行程序,运行FPGA_IP.tcl脚本,生成FPGA可执行完整工程.bit文件和动态配置算法IP.bit文件。
FPGA_IP.tcl脚本,主要完成将算法IP通过AXI挂接到静态逻辑部分,对完整工程进行代码的综合、布局布线,将算法IP部分标定为动态配置部分,运行.bit生成命令,生成FPGA可执行完整工程.bit文件和加速逻辑算法IP.bit文件。脚本就是为了把加速算法,生成FPGA可执行的动态配置的IP.bit。IP.bit文件通过RapidIO总线发送给FPGA运行,成为FPGA中运行的加速逻辑算法部分。
所述的静态逻辑部分,主要包括FPGA平台运行的RapidIO IP模块,DMA控制模块,动态配置模块。静态逻辑部分是FPGA固化的逻辑,当进行不同算法的可重配置时,静态逻辑部分仍然执行其原有功能,不受算法部分逻辑影响。静态逻辑部分为不同的算法IP提供配置功能和与PowerPC的通信功能。
4)PowerPC开辟写内存作为数据交互缓存内存,PowerPC写IP.bit文件数据到写内存中,内存的第一个数据写为0xAAAAAAAA,然后将IP.bit数据依次写入内存中,当数据写完后,将内存第一个数据更改为0xBBBBBBBB。FPGA发起RapidIO NREAD读命令,检测内存地址的第一个数据,如果检测到0xBBBBBBBB,通过RapidIO IP模块,DMA控制模块,将数据包读走。
5)权限归属模块将连接AXI读写接口器和动态配置模块,将AXI读写接口使用权限给动态配置模块,动态配置模块通过AXI通信模块,接收AXI总线数据及控制信号,接收解析的数据包存入到FIFO中。原语模块检测到FIFO非空,读取数据,并判断bitfile文件的包头和包尾,从包头开始,将数据发送给ICAP模块。检测到包尾信号时,发送配置完成信号给权限归属模型,配置结束,此时加速部分算法已经在FPGA中运行。
6)权限归属模块断开与动态配置模块的连接,将AXI读写接口和加速逻辑模块相连,将AXI读写接口使用权限给加速逻辑模块。
7)PowerPC开辟读写独立的两块内存作为数据交互缓存内存。同时将读写内存mmap到用户态来降低通信延时,读写内存区作为PowerPC和FPGA数据交互内存区。
8)PowerPC写数据给FPGA时,PowerPC写数据到写内存区中,RapidIO IP模块周期发起NREAD命令,检测内存地址的第一个数据,如果检测到0xBBBBBBBB,通过RapidIO总线,将数据包读走,如果检测到0xAAAAAAAA,处于等待状态。DMA控制模块通过RQC请求FIFO数据,非空时通过H2C通道将数据发给AXI读写接口,AXI读写接口解析数据发给加速算法模块。FPGA写数据给PowerPC,FPGA加速逻辑模块将数据发送给AXI读写接口,通过C2H通道,RQC请求存储数据到FPGA RapidIO IP的FIFO中,FPGA RapidIO IP模块检测FIFO非空,将数据通过NWRITE方式发送给PowerPC的读内存区,PowerPC检测到读内存区的数据包尾为0xA5A5A5A5时,将数据读走发送用户算法模块,并将数据包尾内存单元改为0x00000000,完成数据交互。
9)如果仅有FPGA算法需要更新,回到步骤2执行。如果PowerPC和FPGA算法都需要更新,回到步骤1执行。
综上所述,本发明基于PowerPC和FPGA的异构加速平台及其加速方法。将FPGA作为加速单元加入到异构平台中,能有效提高控制频率。同时,提出了方法,用户不用关系底层FPGA代码和通信实现,快速的实现异构平台的算法更新,加快开发速度,提升了平台的灵活性。

Claims (10)

1.基于PowerPC和FPGA的异构加速方法,其特征在于,包括以下步骤:
1)调用耗时分析函数库,获取算法计算时间,将计算时间超过阈值的算法即加速算法通过HLS将C代码转换成FPGA IP核;
2)利用HLS工具,将加速算法转生成FPGA AXI IP核;
3)将运行在PowerPC平台上的程序转化为可执行程序,运行FPGA_IP.tcl脚本,生成FPGA可执行的.bit文件和动态配置算法IP. bit文件;
4)PowerPC平台开辟写内存作为数据交互缓存内存,PowerPC平台写IP.bit文件数据到写内存中,由FPGA平台通过RapidIO总线将数据包读走;
5)权限归属模块连接AXI读写接口和动态配置模块,将AXI读写接口使用权限给动态配置模块,动态配置模块通过AXI读写接口,接收AXI总线数据及控制信号,接收解析的数据包存入到FIFO中;数据接收后,发送配置完成信号给权限归属模块,配置结束,此时加速算法已经在FPGA平台中运行;
6)权限归属模块断开与动态配置模块的连接,将AXI读写接口和加速逻辑模块相连,将AXI读写接口使用权限给加速逻辑模块;
7)PowerPC平台开辟读写独立的两块内存作为数据交互缓存内存;
8)PowerPC平台发数据给FPGA平台,PowerPC写数据到写内存区中,FPGA RapidIO IP模块周期发起NREAD命令,通过内存管理,数据不冲突时,DMA控制模块通过RQC请求FIFO数据,非空时通过H2C通道将数据发给AXI读写接口,AXI读写接口解析数据发给加速算法模块;加速逻辑模块将需要与PowerPC平台通信的数据发送给AXI读写接口,通过C2H通道,RQC请求存储数据到FPGA平台 RapidIO IP模块的FIFO中, RapidIO IP模块检测FIFO非空,将数据通过NWRITE方式发送给PowerPC的读内存区,PowerPC平台将数据读走,完成数据交互。
2.根据权利要求1所述的基于PowerPC和FPGA的异构加速方法,其特征在于,
所述内存管理,通过两块内存作为数据交互缓存,定义读写防冲突机制,用于保证数据稳定性,包括以下步骤:
对于写操作处理:写操作的数据流是PowerPC平台到FPGA平台,PowerPC平台数据到写内存中,为了避免数据冲突,PowerPC平台正在写数据时,将内存的第一个数据写为0xAAAAAAAA,然后将需要交互的数据依次写入内存中,当数据写完后,将内存第一个数据更改为0xBBBBBBBB;FPGA平台发起读命令,检测内存地址的第一个数据,如果检测到0xBBBBBBBB,通过RapidIO总线,将数据包读走,如果检测到0xAAAAAAAA,处于等待状态;
对于读操作的处理:读操作的数据流是FPGA平台到PowerPC平台, FPGA平台主动发起写命令,将数据通过RapidIO总线发送到读内存,并添加数据包尾0xA5A5A5A5,PowerPC平台检测到数据包尾为0xA5A5A5A5时,将数据读走,同时修改数据包尾所在的内存单元为0x00000000,结束读操作。
3.基于PowerPC和FPGA的异构平台,用于实现如权利要求1-2任意一项所述的方法,其特征在于,包括:
PowerPC平台,用于对算法进行分析,将需要加速的算法的C代码转换成FPGA IP核;将不需要加速的算法代码生成PowerPC可执行应用程序;同时运行FPGA_IP.tcl脚本文件生成FPGA可执行的.bit文件;管理PowerPC平台和FPGA平台之间的数据交互;
FPGA平台,用于实现加速算法的运行平台,通过RapidIO通信,动态更新加速算法;在动态配置阶段,连接AXI读写接口和动态配置模块,将AXI读写接口使用权限给动态配置模块,一旦动态配置完成之后,权限归属模块断开与动态配置模块的连接,将AXI读写接口和加速逻辑模块相连,将AXI读写接口使用权限给加速逻辑模块。
4.根据权利要求3所述的基于PowerPC和FPGA的异构平台,其特征在于,所述PowerPC平台包括:
算法分析模块,用于对算法运行时间分析,将需要加速的算法的C代码转换成FPGA IP核;
代码生成模块,用于调用gcc编译器将不需要加速的算法代码生成PowerPC可执行应用程序,调用Vivado tcl工具运行FPGA_IP.tcl脚本文件,将FPGA IP核通过AXI总线挂接到静态逻辑部分,最终生成FPGA可执行的.bit文件;
RapidIO控制器,用于管理PowerPC平台和FPGA平台之间的数据交互。
5.根据权利要求4所述的基于PowerPC和FPGA的异构平台,其特征在于,所述算法分析模块,包括:
用户算法模块,用于存储平台运行的算法;
运行分析模块,包括耗时分析函数库,通过用户算法模块的调用,获取算法运行时间;
IP生成模块,用于将计算时间超过阈值的算法通过HLS将C代码转换成FPGA IP核。
6.根据权利要求4所述的基于PowerPC和FPGA的异构平台,其特征在于,所述RapidIO控制器,包括:
内存管理模块,用于管理PowerPC平台和FPGA平台之间的数据交互;通过mmap到用户态来降低通信延时,通过两块内存作为数据交互缓存内存,用于保证数据稳定性;
RapidIO协议控制模块,用于将内存管理模块的数据按照RapidIO协议的进行包处理,发送至FPGA平台。
7.根据权利要求4所述的基于PowerPC和FPGA的异构平台,其特征在于,所述FPGA平台包括:
FPGA RapidIO IP模块,用于按照应用层协议规范解析和编码协议数据包,同时开辟读写FIFO,通过FIFO与DMA控制模块进行数据交互;
所述的DMA控制模块,用于处理数据流在FPGA RapidIO IP模块与FPGA平台的动态配置模块、加速逻辑模块之间的DMA传输;
权限归属模块,用于在动态配置阶段,连接AXI读写接口和动态配置模块,将AXI读写接口使用权限给动态配置模块,一旦动态配置完成之后,权限归属模块断开与动态配置模块的连接,将AXI读写接口和加速逻辑模块相连,将AXI读写接口使用权限给加速逻辑模块;
动态配置模块,通过AXI总线数据信号及控制信号,接收解析的数据包存入到FIFO中;检测到FIFO非空,读取数据,并判断FPGA可执行的.bit文件的包头和包尾,从包头开始,将数据发送给用于FPGA配置的ICAP模块;检测到包尾信号时,发送配置完成信号给权限归属模块,配置结束;
加速逻辑模块,是算法分析模块生成的FPGA IP,在FPGA中运行的模块,可以动态更新的模块。
8.根据权利要求7所述的基于PowerPC和FPGA的异构平台,其特征在于,所述FPGARapidIO IP模块包括:
RapidIO IP模块,是Xilinx RapidIO IP核;
DMA交互模块,用于完成RapidIO总线应用层协议,按照协议规范解析和编码协议数据包,同时开辟读写FIFO,通过FIFO与DMA控制模块进行数据交互。
9.根据权利要求7所述的基于PowerPC和FPGA的异构平台,其特征在于,所述DMA控制模块,包括:
RQC模块,用于实现请求应答功能,与FIFO交互;
H2C通道,用于处理数据流从FPGA RapidIO IP模块到FPGA平台的动态配置模块或加速逻辑模块的DMA传输;
C2H通道,用于处理数据流从FPGA平台的加速逻辑模块到FPGA RapidIO IP模块的DMA传输;
AXI读写接口,设于H2C通道与权限归属模块、以及C2H通道与权限归属模块之间,用于实现RapidIO地址映射成AXI总线地址,并将H2C通道和C2H通道的控制信号、数据信号转换成AXI总线控制信号和数据信号,通过AXI总线,实现链接用户IP。
10.根据权利要求7所述的基于PowerPC和FPGA的异构平台,其特征在于, FPGA平台运行的RapidIO IP模块、DMA控制模块、动态配置模块构成静态逻辑部分,用于为不同的算法IP提供配置功能和与PowerPC的通信功能。
CN201910898139.5A 2019-09-23 2019-09-23 基于PowerPC和FPGA的异构平台及其加速方法 Active CN112540770B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910898139.5A CN112540770B (zh) 2019-09-23 2019-09-23 基于PowerPC和FPGA的异构平台及其加速方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910898139.5A CN112540770B (zh) 2019-09-23 2019-09-23 基于PowerPC和FPGA的异构平台及其加速方法

Publications (2)

Publication Number Publication Date
CN112540770A CN112540770A (zh) 2021-03-23
CN112540770B true CN112540770B (zh) 2022-05-06

Family

ID=75012793

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910898139.5A Active CN112540770B (zh) 2019-09-23 2019-09-23 基于PowerPC和FPGA的异构平台及其加速方法

Country Status (1)

Country Link
CN (1) CN112540770B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114238187B (zh) * 2022-02-24 2022-04-29 苏州浪潮智能科技有限公司 一种基于fpga的全栈网卡任务处理系统
CN114398304B (zh) * 2022-03-01 2024-07-02 山西银河电子设备厂 一种解决srio接口阻塞的方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104142845A (zh) * 2014-07-21 2014-11-12 中国人民解放军信息工程大学 基于OpenCL-To-FPGA的CT图像重建反投影加速方法
CN104834628A (zh) * 2015-04-26 2015-08-12 西北工业大学 多态计算平台及其构造方法
CN107135078A (zh) * 2017-06-05 2017-09-05 浙江大学 Pbkdf2密码算法加速方法及所用装置
CN108255773A (zh) * 2017-12-07 2018-07-06 中国航空工业集团公司西安航空计算技术研究所 一种智能计算异构多核处理方法与平台
CN108958800A (zh) * 2018-06-15 2018-12-07 中国电子科技集团公司第五十二研究所 一种基于fpga硬件加速的ddr管理控制系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7913066B2 (en) * 2008-03-10 2011-03-22 International Business Machines Corporation Early exit processing of iterative refinement algorithm using register dependency disable and programmable early exit condition

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104142845A (zh) * 2014-07-21 2014-11-12 中国人民解放军信息工程大学 基于OpenCL-To-FPGA的CT图像重建反投影加速方法
CN104834628A (zh) * 2015-04-26 2015-08-12 西北工业大学 多态计算平台及其构造方法
CN107135078A (zh) * 2017-06-05 2017-09-05 浙江大学 Pbkdf2密码算法加速方法及所用装置
CN108255773A (zh) * 2017-12-07 2018-07-06 中国航空工业集团公司西安航空计算技术研究所 一种智能计算异构多核处理方法与平台
CN108958800A (zh) * 2018-06-15 2018-12-07 中国电子科技集团公司第五十二研究所 一种基于fpga硬件加速的ddr管理控制系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"基于FPGA的可进化系统的设计与研究";卜海祥;《中国优秀硕士论文电子期刊网》;20110315;全文 *

Also Published As

Publication number Publication date
CN112540770A (zh) 2021-03-23

Similar Documents

Publication Publication Date Title
US20210081258A1 (en) Synthesis Path For Transforming Concurrent Programs Into Hardware Deployable on FPGA-Based Cloud Infrastructures
US11748535B2 (en) System and method to generate a network-on-chip (NoC) description using incremental topology synthesis
EP3842987A1 (en) Physically aware topology synthesis of a network
US10664421B1 (en) Reordering responses in a high performance on-chip network
KR101815173B1 (ko) 코히어런스 프로토콜 테이블
US7814243B2 (en) Shared storage for multi-threaded ordered queues in an interconnect
US7257780B2 (en) Software-to-hardware compiler
CN112540770B (zh) 基于PowerPC和FPGA的异构平台及其加速方法
De Matteis et al. Streaming message interface: High-performance distributed memory programming on reconfigurable hardware
CN108768981B (zh) 一种实现Powerlink工业实时以太网通讯的IP核
CN114356419B (zh) 一种通用接口寄存器系统及快速生成方法
Thoma et al. FPGA-GPU communicating through PCIe
KR20210021202A (ko) 직렬로 연결된 전자 장치들 사이의 레이턴시를 감소시키기 위한 컴퓨팅 시스템
Chelcea et al. Resynthesis and peephole transformations for the optimization of large-scale asynchronous systems
Thoma et al. FPGA 2: An open source framework for FPGA-GPU PCIe communication
US20080040700A1 (en) Behavioral synthesizer, debugger, writing device and computer aided design system and method
CN114385327A (zh) 基于线程的处理器暂停
CN114970409A (zh) 基于多管芯互联的集成电路
CN100492299C (zh) 一种嵌入式软件开发的方法及系统
JP3261766B2 (ja) マルチプロセッサシステム、共有変数更新装置、プロセッサユニット及び共有変数更新方法
US20240353813A1 (en) Process for generating physical implementation guidance during the synthesis of a network-on-chip
JP7287743B2 (ja) コンパイラのためのワークロード指向定数伝播
US20240184552A1 (en) Compilers and compiling methods field
EP4394601A1 (en) Systems, methods, and apparatus for intermediary representations of workflows for computational devices
KR20070063124A (ko) 시스템 버스와 아이피간 인터페이싱 장치와 방법 및 컴퓨터프로그램을 저장하는 컴퓨터로 읽을 수 있는 기록 매체

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant