当前位置: 首页 > 专利查询>浙江大学专利>正文

基于处理器和FPGA混合架构的硬件线程执行方法技术

技术编号:4246439 阅读:178 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种基于处理器和FPGA混合架构的硬件线程执行方法,该方法是在可执行文件中增加硬件段,以硬件线程的方式运行硬件功能,创建硬件线程来执行程序中计算密集的部分。本发明专利技术为软件硬件线程提供统一的线程控制块,统一了软硬件线程控制接口,简化了软硬件线程的控制和管理,并能够有效提高系统的计算性能。

【技术实现步骤摘要】

本专利技术涉及可重构计算
、操作系统设计领域、线程
的一 种为FPGA提供系统软件支持的技术方法。
技术介绍
近年来,随着微电子技术的快速发展,微处理器领域不断的朝着提高架构 执行效率、多核设计、灵活弹性的扩展和深层次功能整合方向发展,并取得了 很大进步。尤其是近几年处理器/FPGA可重构混合体系架构的发展,使得微处 理器领域达到了一个崭新的发展阶段。可重构计算迎合了未来计算领域的需求,能够更方便快捷地提供更高层次 的并行运算能力,由于使用了硬件的方式执行,那些并行性需求较高的应用程 序的计算性能有了很大的提升,非常适用于高速数字信号处理,多媒体处理, 以及生物信息处理。然而,由于针对可重构计算平台的操作系统支持还很不完 善,要求开发者和用户具备硬件设计的经验,并且开发周期较长、成本过高, 因此可重构计算依然没有得到很广泛的应用。为了简单高效地管理和使用计算机中的可重构资源, 一些方法分别从软 件、硬件和软硬件协同的角度出发进行解决。B0RPH操作系统针对基于FPGA 可重配置计算机,将可重构资源像CPU运算时间和内存一样封装在操作系统服 务中,开发者只需关注高层程序设计,简化了可重构资源的使用。Warp处理 器从硬件设计方面简化开发者使用可重配置资源的难度,该处理器能够动态地 将一个程序的耗时区域自动转为可重构硬件实现的电路来执行,从而减少执行 时间和能源消耗。HWTI (Hardware Thread Interface,硬件线程接口)通过硬件 线程接口实现混合架构软硬件多线程。B0RPH操作系统对可重配置的支持以及Warp处理器硬件上对可重配置的 支持这两种方案在利用可重配置资源上能够达到较好的效率,但是B0Rra操作 系统的设计上对Linux有很大的改动,而所实现的功能还相当的简单,而Warp 处理器中嵌入性能分析器和动态软硬件划分模块所涉及的硬件方面的实现过 于复杂,因此修改和改进比较困难。而HWTI硬件线程接口则需要硬件化的操作系统服务支持,通用计算机上很难满足这些条件。
技术实现思路
为了简单高效地管理和使用处理器/FPGA混合架构中的FPGA资源,提供 统一的软硬件线程接口,提高应用程序的执行性能,本专利技术的目的在于提供一 种基于处理器和FPGA混合架构的硬件线程执行方法。本专利技术解决技术问题所采用的技术方案是一种基于处理器和FPGA混合架构的硬件线程执行方法,其特征在于包括1) 可执行文件生成过程 程序生成可执行文件时,实现步骤① 在可执行文件中增加硬件节和硬件段,每一个硬件节由节头和节内容构 成,节头定义了硬件节的类型、名称、起始地址、内容长度和节的目标FPGA 型号;节内容保存指定FPGA型号的配置数据;每个硬件段包含一个单独的硬 件节;② 分别对程序的硬件代码进行综合,生成指定FPGA型号上的实现对应功 能配置数据,并按①的格式组织为硬件节/段;③ 将程序的软件节/段和硬件节/段链接为一个可执行文件;可执行文件的 头描述了各个程序段的类型、从文件头开始的偏移地址、程序空间中的首地址 和大小;2) 程序执行过程① 可执行文件装载可执行文件包含有代码段、硬件段和数据段;可执行文件的装载实现步骤 如下I 在系统内存中分配空间,数据段、代码段和硬件段装载到分配的内存 空间中;II根据程序的执行流程,将最先执行到的硬件段预先配置到指定的FPGA 设备上;② 线程创建执行 运行时线程的创建步骤如下I根据加载的程序段的类型,判断所要创建的线程类型,然后生成相应 的线程控制块,即软件线程控制块或硬件线程控制块;II如果要创建硬件线程,并且该硬件段己经配置到FPGA上,那么只需要构建该硬件段到对应硬件线程控制块的映射;III 如果要创建硬件线程,但是该硬件段尚未配置到FPGA上,那么需要首先将该硬件段配置到指定类型的FPGA上,然后构建该硬件段到对于硬件线程控制块的映射;③线程结束I 硬件线程执行完自身的任务后进入结束状态;II如果执行完的是独立的硬件线程,那么该硬件线程状态设置成完成状态,此时该硬件线程的FPGA运算资源以及硬件线程控制块都被回收;III如果执行完的非独立的硬件线程,也就是有其他线程在等待该硬件线程的执行结果,那么该硬件线程将保留执行结果,直到等待中的其他线程获取了该硬件线程的执行结果之后,该硬件线程的FPGA运算资源以及硬件线程控制块才被回收。本专利技术具有的有益效果是首先,在可执行文件中增加硬件段,将软硬件可执行程序段统一组织,简化了软硬件可执行程序的管理;其次,以硬件线程的方式运行硬件功能,提供统一的软硬件线程管理,简化了软硬件线程的控制和管理;再次,根据程序执行流程,预先配置最早执行的硬件段到FPGA上,并将其他硬件段加载缓存到系统内存中,能有效减少FPGA配置数据的传输时间,降低FPGA配置的代价;最后,通过创建硬件线程来执行程序中计算密集的部分,能够有效提高系统的计算性能。附图说明图1是本专利技术一种基于处理器和FPGA混合架构的硬件线程执行方法实施例的总体流程图。具体实施例方式本专利技术的基于处理器和FPGA混合架构的硬件线程执行方法的具体实现流程如下1)可执行文件生成过程程序生成可执行文件时,实现步骤①在可执行文件中增加硬件节和硬件段通过改进ELF文件格式,在ELF可执行文件中增加硬件节和硬件段,节由节头和节内容组成,节头定义结构如下typedef struct {Elf32—Word sh—name;Elf32—Word sh—type;Elf32—Word sh一flags;Elf32一Addr sh一addr;Elf32—Off sh—offset;Elf32—Word sh一size;Elf32—Word sh—link;Elf32—Word sh—info;Elf32一W。rd sh—addralign;Elf32—Word sh—entsize;}Elf32—Shdr;当定义一个硬件节时,其sh_type为SHT—HW。sh—name字段定义了节名称,本方法中为.hardware。从sh—addr字段的数值开始到sh—addr+sh—size结束为节在内存中的位置。该节中存储了指定FPGA型号的配置数据。sl^flags字段定义了节区中包含的内容是否可以修改,是否可以被执行的等标识,sh—flags字段的取值范围为SHF—WRITE, SHF—ALLOC , SHF_EXECINSTR ,SHF—HARDWARE和SHF—MASKPROC。 . hardware类型的节区sh—flags字段的取值为SHF—HARDWARE。 sh—offset为节内容开始位置与可执行文件头之间的偏移量。其他字段未被使用,设置成默认值。每一个硬件节一个单独的硬件段。② 分别对程序的硬件代码进行综合,生成指定FPGA型号上的实现对应功能配置数据,并按①的格式组织为硬件节/段;③ 将程序的软件节/段和硬件节/段链接为一个可执行文件;可执行文件的头描述了各个程序段的类型、从文件头开始的偏移地址、程序空间中的首地址和大小等信息;具体的文件头结构如下typedef struct {Elf32—Word p一type;Elf32一0ff p一offset;Elf32—Add本文档来自技高网
...

【技术保护点】
一种基于处理器和FPGA混合架构的硬件线程执行方法,其特征在于包括: 1)可执行文件生成过程 程序生成可执行文件时,实现步骤: ①在可执行文件中增加硬件节和硬件段,每一个硬件节由节头和节内容构成,节头定义了硬件节的类型、名 称、起始地址、内容长度和节的目标FPGA型号,节内容保存指定FPGA型号的配置数据,每个硬件段包含一个单独的硬件节; ②分别对程序的硬件代码进行综合,生成指定FPGA型号上的实现对应功能配置数据,并按①的格式组织为硬件节/段;  ③将程序的软件节/段和硬件节/段链接为一个可执行文件;可执行文件的头描述了各个程序段的类型、从文件头开始的偏移地址、程序空间中的首地址和大小; 2)程序执行过程 ①可执行文件装载 可执行文件包含有代码段、硬件段和数据段;可 执行文件的装载实现步骤如下: Ⅰ在系统内存中分配空间,数据段、代码段和硬件段装载到分配的内存空间中; Ⅱ根据程序的执行流程,将最先执行到的硬件段预先配置到指定的FPGA设备上; ②线程创建执行 运行时线程的创建步骤如下: Ⅰ根 据加载的程序段的类型,判断所要创建的线程类型,然后生成相应的线程控制块,即软件线程控制块或硬件线程控制块; Ⅱ如果要创建硬件线程,并且该硬件段已经配置到FPGA上,那么只需要构建该硬件段到对应硬件线程控制块的映射; Ⅲ如果要创建硬件线程 ,但是该硬件段尚未配置到FPGA上,那么需要首先将该硬件段配置到指定类型的FPGA上,然后构建该硬件段到对于硬件线程控制块的映射; ③线程结束 Ⅰ硬件线程执行完自身的任务后进入结束状态; Ⅱ如果执行完的是独立的硬件线程,那么该硬件线程 状态设置成完成状态,此时该硬件线程的FPGA运算资源以及硬件线程控制块都被回收; Ⅲ如果执行完的非独立的硬件线程,也就是有其他线程在等待该硬件线程的执行结果,那么该硬件线程将保留执行结果,直到等待中的其他线程获取了该硬件线程的执行结果之后 ,该硬件线程的FPGA运算资源以及硬件线程控制块才被回收。...

【技术特征摘要】
1、一种基于处理器和FPGA混合架构的硬件线程执行方法,其特征在于包括1)可执行文件生成过程程序生成可执行文件时,实现步骤①在可执行文件中增加硬件节和硬件段,每一个硬件节由节头和节内容构成,节头定义了硬件节的类型、名称、起始地址、内容长度和节的目标FPGA型号,节内容保存指定FPGA型号的配置数据,每个硬件段包含一个单独的硬件节;②分别对程序的硬件代码进行综合,生成指定FPGA型号上的实现对应功能配置数据,并按①的格式组织为硬件节/段;③将程序的软件节/段和硬件节/段链接为一个可执行文件;可执行文件的头描述了各个程序段的类型、从文件头开始的偏移地址、程序空间中的首地址和大小;2)程序执行过程①可执行文件装载可执行文件包含有代码段、硬件段和数据段;可执行文件的装载实现步骤如下I在系统内存中分配空间,数据段、代码段和硬件段装载到分配的内存空间中;II根据程序的执行流程,将最先执行到的硬件段预先配置到指定的FPG...

【专利技术属性】
技术研发人员:陈度陈天洲冯德贵王罡吴斌斌严力科
申请(专利权)人:浙江大学
类型:发明
国别省市:86[中国|杭州]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1