基于分块渲染的GPU中一种资源共享的实现方法与流程

文档序号:15389507发布日期:2018-09-08 00:58阅读:819来源:国知局

本发明主要涉及到gpu芯片设计领域,特指基于分块渲染的gpu实现领域。



背景技术:

从目前国际主流的gpu产品来看,主要存在两种类型的架构:立即渲染和分块渲染,立即渲染是传统gpu采用最多的一种架构,每一个待绘制的图元都需要立即经过所有的绘图流水线,gpu在执行绘图处理时,需要存储所有的颜色、深度、纹理和模板数据在系统存储器中,在深度测试(消隐)阶段需要读取深度缓冲中的内容,与像素深度值进行比较之后再写入深度缓冲区,同样的情况也出现在像素融合阶段,而纹理贴图阶段也需要从系统存储器中读取纹理数据,这些读改写和只读操作对系统存储器的带宽要求非常高,对于复杂场景的渲染而言,存储器的带宽是影响gpu性能的最主要因素,同时由于频繁的访问系统存储器,将会极大地增加功耗。

在分块渲染架构中,光栅化是在每一个块上执行的,这是与传统的立即渲染结构的主要区别,为了实现这一目的,所有待绘制的图元经过几何变换和裁剪之后都需要按其所在的块暂存在系统存储器里,一旦一帧的图元都存储完毕,就可以按照块的顺序逐块进行渲染,而传统的针对颜色缓冲区、深度缓冲区和模板缓冲区的读改写操作都可以在一个小的片上存储器上进行而无需重复的访问系统存储器,当一块内的所有图元渲染完成之后,可以将该块的片上存储器的内容一次性的写入存储器(一般只需要写回颜色缓冲区的内容),这种架构可以大大减小访存次数,在提高绘制效率的同时也降低了功耗。

由上面的分块渲染架构可以看出,在渲染每一帧图像时,都需要先将图元分块并存入存储器,所有的图元都完成这个操作之后才开始绘制,在分块及之前的处理过程中,光栅化和渲染部分的流水线是空闲的;同样,在光栅化和渲染部分流水线工作时,分块及之前的处理空闲的,这样导致运算资源和ram资源得不到充分利用。



技术实现要素:

本发明要解决的问题就在于:针对现有技术存在的缺陷,本发明提供了一种基于分块渲染的gpu中资源共享的实现方法,利用图元分块及之前操作和光栅化操作分时执行的特点,将gpu整个处理分成parta和partb两个部分,将两部分运算器和ram统一放到一个资源共享池中,其中parta和partb相同的部分只保留一份,通过增加帧开始和帧结束信号控制共享资源的分配,实现了资源的共享。

发明内容:

本发明公开了基于分块渲染的gpu中一种资源共享的实现方法,其特征为:将基于分块渲染的gpu分成以下部分:

(1)parta部分:该部分包含了几何变换、光照、雾化、图元装配、裁剪和图元分块模块,这些模块使用运算器和ram均来自共享资源池,若为运算类操作,则模块将操作数发送给共享资源池,由共享资源池返回结果,若为访问ram操作,则模块将读地址或写使能、写地址、写数据发送给共享资源池,由共享资源池返回读数据或将数据写入ram;

(2)partb部分:该部分包含多条光栅化和片段处理流水线,除了保留一条流水线使用流水线内部运算器和ram外,其余流水线使用的运算器和ram均来自于共享资源池,保留一条不共享是为了保证当出现分块数据存满指定存储器空间时,需要先将该块绘制出去,而此时当前帧的图元还没有完成分块操作;

(3)共享资源池:该部分包含了parta全部和partb除不允许共享的一条流水线外的所有运算器和ram,以及一个访问控制模块,将parta和partb允许共享的运算器重复的部分保留一份,不重复部分不受访问控制模块控制;其中的访问控制模块负责处理parta和partb的访问请求,其控制方法为:

1)对绘制的每一帧图形增加帧开始和帧结束的配置信息,当前帧的第一条命令即为帧开始配置,当前帧的最后一条命令为帧结束配置;

2)当共享资源池接收到帧开始命令时,将访问权分给parta,内部的所有资源归parta使用;当共享资源池接收到帧结束命令时,将访问权分给partb,内部所有资源归partb使用;

3)当前帧绘制完毕,下一帧开始时重复1)~2)的操作;

与现有技术相比,本发明的优点就在于:1、节省逻辑资源,进而节省芯片面积:本发明提出资源共享方法可以将分块前和分块后两个部分都会用到的运算器和ram资源减掉一份;2、实现简便:仅增加了帧开始和帧结束的信号控制共享资源的分配。

附图说明

图1是本发明提出的基于分块渲染的gpu中一种资源共享的实现方法结构示意图。

具体实施方式

以下将结合附图和具体实施例对本发明做进一步详细说明。

如图1所示,基于分块渲染的gpu中一种资源共享的实现方法,将基于分块渲染的gpu设计成parta、partb和共享资源池三个部分,基于分块渲染的gpu设计基本思想是先对各个图元进行分块,将分块数据写入存储器,全部图元分块完成后再执行光栅化操作,由于分块及之前操作与光栅化操作分时执行,因此可以实现运算和ram资源的共享,本发明的实现方法是将基于分块渲染的gpu分成以下部分:

(1)parta部分:该部分包含了几何变换、光照、雾化、图元装配、裁剪和图元分块模块,这些模块使用运算器和ram均来自共享资源池,若为运算类操作,则模块将操作数发送给共享资源池,由共享资源池返回结果,若为访问ram操作,则模块将读地址或写使能、写地址、写数据发送给共享资源池,由共享资源池返回读数据或将数据写入ram;

(2)partb部分:该部分包含多条光栅化和片段处理流水线,除了保留一条流水线使用流水线内部运算器和ram外,其余流水线使用的运算器和ram均来自于共享资源池,保留一条不共享是为了保证当出现分块数据存满指定存储器空间时,需要先将该块绘制出去,而此时当前帧的图元还没有完成分块操作;

(3)共享资源池:该部分包含了parta全部和partb除不允许共享的一条流水线外的所有运算器和ram,以及一个访问控制模块,将parta和partb允许共享的运算器重复的部分保留一份,不重复部分不受访问控制模块控制;其中的访问控制模块负责处理parta和partb的访问请求,其控制方法为:

1)对绘制的每一帧图形增加帧开始和帧结束的配置信息,当前帧的第一条命令即为帧开始配置,当前帧的最后一条命令为帧结束配置;

2)当共享资源池接收到帧开始命令时,将访问权分给parta,内部的所有资源归parta使用;当共享资源池接收到帧结束命令时,将访问权分给partb,内部所有资源归partb使用;

3)当前帧绘制完毕,下一帧开始时重复1)~2)的操作。



技术特征:

技术总结
本发明公开了基于分块渲染的GPU中一种资源共享的实现方法,该实现方法将基于分块渲染的GPU分成PART A、PART B和共享资源池三个部分,PART A包含几何变换、光照、雾化、裁剪和图元分块模块,PART B包含多条光栅化和片段处理流水线,共享资源池包含了PART A和PART B所有的运算器和RAM;基于分块渲染的GPU设计基本思想是先对各个图元进行分块,将分块数据写入存储器,全部图元分块完成后再执行光栅化操作,由于分块及之前操作与光栅化操作分时执行,因此采用本发明方法可以实现运算器和RAM资源的共享,减小实现的GPU的面积。

技术研发人员:陈宝民;焦永
受保护的技术使用者:长沙景嘉微电子股份有限公司
技术研发日:2018.03.27
技术公布日:2018.09.07
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1