基于图形处理的指令调度方法及装置与流程

文档序号:14995996发布日期:2018-07-24 17:45阅读:154来源:国知局

本发明涉及计算机技术,尤其涉及一种基于图形处理的指令调度方法及装置。



背景技术:

直接帧缓冲渲染(Direct Frame Buffer,简称DirectFB)库是一个轻量级的提供硬件图形加速、输入设备处理和抽象的图形库,它集成了支持半透明的视窗系统以及在Linux帧缓冲(Frame buffer)驱动之上的多层显示。DirectFB是为嵌入式系统设计的,现有的嵌入式图形系统中,利用DirectFB库的硬件加速层一般都使用图形处理器(Graphics Processing Unit,简称GPU)来实现。

目前,DirectFB图形系统中图形绘制过程是串行的,具体地,DirectFB图形系统根据上层应用软件的调用将接收到的图形处理指令转换成相应的加速指令,并根据转换的加速指令调用相应的软件或者硬件加速接口来执行图形绘制任务,等待软件或者硬件执行完相应的单个加速操作后返回到系统后,再进行下一条图像处理指令的操作。

由于,现有技术中,DirectFB图形系统中图形绘制过程是串行的,导致图形处理的性能较低。



技术实现要素:

本发明提供一种基于图形处理的指令调度方法及装置,用于解决现有技术图形处理性能较低的问题。

本发明第一方面提供一种基于图形处理的指令调度方法,包括:

根据上层应用软件调用加速接口的顺序建立加速指令队列,所述加速指令队列中包括多个携带有加速指令类型的第二图形加速指令;

在上层应用软件调用加速接口的过程中,若所述加速指令队列中存在至少两个连续的硬件加速类型的第二图形加速指令,则将所述至少两个连续的硬件加速类型的第二图形加速指令下发给对应的图形处理器GPU进行并行处理。

本发明第二方面提供一种基于图形处理的指令调度装置,包括:

建立模块,用于根据上层应用软件调用加速接口的顺序建立加速指令队列,所述加速指令队列中包括多个携带有加速指令类型的第二图形加速指令;

第一调用模块,用于在上层应用软件调用加速接口的过程中,若所述建立模块建立的加速指令队列中存在至少两个连续的硬件加速类型的第二图形加速指令,则将所述至少两个连续的硬件加速类型的第二图形加速指令下发给对应的图形处理器GPU进行并行处理。

本发明提供的基于图形处理的指令调度方法及装置,根据上层应用软件调用加速接口的顺序建立加速指令队列,在上层应用软件调用加速接口的过程中,若上述加速指令队列中存在至少两个连续的硬件加速类型的第二图形加速指令,则将至少两个连续的硬件加速类型的第二图形加速指令下发给对应的GPU进行并行处理,实现了GPU可以并行处理多个指令,以更好的发挥GPU的优势,并提高了图形处理的效率和性能。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的基于图形处理的指令调度方法的流程示意图;

图2为本发明实施例提供的基于图形处理的指令调度方法中步骤的流程示意图;

图3为本发明实施例提供的基于图形处理的指令调度装置实的结构示意图一;

图4为本发明实施例提供的基于图形处理的指令调度装置的结构示意图二;

图5为本发明实施例提供的基于图形处理的指令调度装置的结构示意图三;

图6为本发明实施例提供的基于图形处理的指令调度装置的结构示意图四。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1为本发明实施例提供的基于图形处理的指令调度方法实施例一的流程示意图,该方法可以由中央处理器(Central Processing Unit,简称CPU)调用DirectFB库执行,如图1所示,该方法包括:

S101、根据上层应用软件调用加速接口的顺序建立加速指令队列。

其中,该加速指令队列中包括多个携带有加速指令类型的第二图形加速指令。

S102、在上层应用软件调用加速接口的过程中,若上述加速指令队列中存在至少两个连续的硬件加速类型的第二图形加速指令,则将至少两个连续的硬件加速类型的第二图形加速指令下发给对应的GPU进行并行处理。

在本实施例中,可以先将至少两个连续的硬件加速类型的第二图形加速指令下发到对应的硬件接口,再由硬件接口转发到对应的GPU。需要说明的是,一般一个CPU下对应唯一一个GPU,但是,在某些具体应用场景中,也存在一个CPU对应多个GPU的情况。

另外,上述将至少两个连续的硬件加速类型的第二图形加速指令发送给GPU进行并行处理,即无需等待GPU当前执行完一个硬件加速类型的第二图形加速指令的返回响应,就可以直接将至少两个连续的硬件加速类型的第二图形加速指令逐个发送给GPU,GPU每处理完一个硬件加速类型的第二图形加速指令后,都可以直接处理已经下发到GPU的下一个硬件加速类型的第二图形指令,直到至少两个连续的硬件加速类型的第二图形加速指令均处理完毕之后再返回响应,进行系统数据同步。

本发明实施例中,根据上层应用软件调用加速接口的顺序建立加速指令队列,在上层应用软件调用加速接口的过程中,若上述加速指令队列中存在至少两个连续的硬件加速类型的第二图形加速指令,则将至少两个连续的硬件加速类型的第二图形加速指令下发给对应的GPU进行并行处理。实现了GPU可以并行处理多个指令,以更好的发挥GPU的优势,并提高了图形处理的效率和性能。

图2为本发明实施例提供的基于图形处理的指令调度方法中步骤的流程示意图,如图2所示,在一实施例中,上述根据上层应用软件调用加速接口的顺序建立加速指令队列,包括:

S201、接收上层应用软件依次下发的图形处理指令。

其中,该图形处理指令用于调用与该图形处理指令对应的加速接口。加速接口的类型包括硬件加速接口和软件加速接口。

S202、根据上述图形处理指令以及DirectFB库生成第一图形加速指令。

S203、封装上述第一图形加速指令以生成上述第二图形加速指令并将上述第二图形加速指令存储到上述加速指令队列中。

即将上述第一图形加速指令封装为加速指令队列可存储的形式,进而存储到上述加速指令队列中。

在本实施例中,第二图形加速指令包括:加速指令类型(软件加速类型或硬件加速类型)、指令加速接口类型、指令参数、指令标识、加速函数接口指针和同步函数接口指针。

其中,不同的加速指令需要的指令参数不同,指令参数可以包括:矩形类型绘制参数、线条类型绘制参数、无拉伸复制类型绘制参数和矢量复制类型绘制参数。

需要说明的是,在上述应用软件调用加速接口的过程中,若调用上述加速指令队列中的软件加速类型的第二图像加速指令,则将该软件加速类型的第二图像加速指令直接下发给软件加速接口。

软件加速接口会把这些软件加速类型的第二图像加速指令转发给CPU来进行处理。

在一实施例中,上述在上层应用软件调用加速接口的过程中,若上述加速指令队列中存在至少两个连续的硬件加速类型的第二图形加速指令,则将至少两个连续的硬件加速类型的第二图形加速指令下发给对应的GPU进行并行处理,可以包括:若当前调用的第二图形加速指令为硬件加速类型,且随后在预设的时间段内调用的第二图形加速指令为硬件加速类型,则将当前调用的第二图形加速指令以及随后在预设的时间段内调用的第二图形加速指令下发给对应的GPU进行并行处理。即将预设时间段内连续的硬件加速类型的第二图形加速指令下发给对应的GPU进行并行处理。

在另一实施例中,上述在上层应用软件调用加速接口的过程中,若上述加速指令队列中存在至少两个连续的硬件加速类型的第二图形加速指令,则将至少两个连续的硬件加速类型的第二图形加速指令下发给对应的GPU进行并行处理,还可以包括:若当前调用的第二图形加速指令为软件加速类型,且在当前调用的第二图形加速指令之前调用了至少两个连续的硬件加速类型的第二图形加速指令,将在当前调用的第二图形加速指令之前调用的至少两个连续的硬件加速类型的第二图形加速指令下发给对应的GPU进行并行处理。即在调用到软件加速类型的第二图形加速指令时,会触发将之前连续调用的硬件加速类型的第二图形加速指令下发给对应的GPU进行并行处理。

值得说明的是,触发将之前连续调用的硬件加速类型的第二图形加速指令下发给对应的GPU进行并行处理的条件包括但不限于上述的两种或者两种的组合。

本发明实施例中,根据上层应用软件调用加速接口的顺序建立加速指令队列,在上层应用软件调用加速接口的过程中,若上述加速指令队列中存在至少两个连续的硬件加速类型的第二图形加速指令,则将至少两个连续的硬件加速类型的第二图形加速指令下发给对应的GPU进行并行处理。实现了GPU可以并行处理多个指令,以更好的发挥GPU的优势,并提高了图形处理的效率和性能。

图3为本发明实施例提供的基于图形处理的指令调度装置的结构示意图一,该装置可以集成在CPU中,具体地,该装置包括:建立模块301和第一调用模块302,其中:

建立模块301,用于根据上层应用软件调用加速接口的顺序建立加速指令队列,所述加速指令队列中包括多个携带有加速指令类型的第二图形加速指令。

第一调用模块302,用于在上层应用软件调用加速接口的过程中,若所述建立模块301建立的加速指令队列中存在至少两个连续的硬件加速类型的第二图形加速指令,则将所述至少两个连续的硬件加速类型的第二图形加速指令下发给对应的图形处理器GPU进行并行处理。

该装置用于执行前述方法实施例,其实现原理类似,在此不再赘述。

图4为本发明实施例提供的基于图形处理的指令调度装置的结构示意图二。

在一实施例中如图4所示,上述建立模块301包括:接收子模块401、生成子模块402和封装子模块403。

其中,上述接收子模块401,用于接收上层应用软件依次下发的图形处理指令,所述图形处理指令用于调用与所述图形处理指令对应的加速接口。

生成子模块402,用于根据所述图形处理指令以及直接帧缓冲渲染库生成第一图形加速指令。

封装子模块403,用于封装所述第一图形加速指令以生成所述第二图形加速指令并将所述第二图形加速指令存储到加速指令队列中。

在一实施例中,所述第二图形加速指令包括加速指令类型、指令加速接口类型、指令参数、指令标识、加速函数接口指针和同步函数接口指针。

图5为本发明实施例提供的基于图形处理的指令调度装置的结构示意图三。

在一实施例中,如图5所示,上述第一调用模块302包括:第一调用子模块501和/或第二调用子模块502,即第一调用子模块501和第二调用子模块502可以根据具体需要只包含其中一个,或两个都包含,其中:

第一调用子模块501,用于若当前调用的第二图形加速指令为硬件加速类型,且随后在预设的时间段内调用的第二图形加速指令为硬件加速类型,则将当前调用的第二图形加速指令以及随后在预设的时间段内调用的第二图形加速指令下发给对应的图形处理器GPU进行并行处理。

第二调用子模块502,用于若当前调用的第二图形加速指令为软件加速类型,且在当前调用的第二图形加速指令之前调用了至少两个连续的硬件加速类型的第二图形加速指令,将在当前调用的第二图形加速指令之前调用的至少两个连续的硬件加速类型的第二图形加速指令下发给对应的图形处理器GPU进行并行处理。

图6为本发明实施例提供的基于图形处理的指令调度装置的结构示意图四。

如图6所示,上述基于图形处理的指令调度装置还包括:第二调用模块601。

第二调用模块601,用于在上层应用软件调用加速接口的过程中,若调用所述加速指令队列中的软件加速类型的第二图像加速指令,则将所述软件加速类型的第二图像加速指令直接下发给软件加速接口。

本发明实施例提供的基于图形处理的指令调度装置,根据上层应用软件调用加速接口的顺序建立加速指令队列,在上层应用软件调用加速接口的过程中,若上述加速指令队列中存在至少两个连续的硬件加速类型的第二图形加速指令,则将至少两个连续的硬件加速类型的第二图形加速指令下发给对应的GPU进行并行处理。实现了GPU可以并行处理多个指令,以更好的发挥GPU的优势,并提高了图形处理的效率和性能。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

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