渲染三维图形的方法及装置制造方法及图纸

技术编号:17941001 阅读:44 留言:0更新日期:2018-05-15 21:05
本发明专利技术提供了一种渲染三维图形的方法及装置。所述方法应用于CPU,所述CPU包括SIMD向量运算单元、与所述SIMD向量运算单元对应的专用取指模块、专用译码模块和专用访存模块,所述方法包括:在运行包含三维渲染任务的进程之前,将CPU中的SIMD向量运算单元对CPU进行屏蔽,以使CPU不会调用所述SIMD向量运算单元;根据所述三维渲染任务构建当前帧的向量指令和向量数据,并将所述向量指令和向量数据存储在内存的指定区域;使能所述专用取指模块、所述专用访存模块,以使得所述SIMD向量运算单元、所述专用取指模块、所述专用译码模块和所述专用访存模块,根据所述内存的指定区域中的向量指令和向量数据执行相应的SIMD向量运算,完成当前帧的三维渲染任务。

Method and device for rendering 3D graphics

The invention provides a method and device for rendering three-dimensional graphics. The method is applied to the CPU, which includes a SIMD vector operation unit, a dedicated reference module, a dedicated decoding module, and a dedicated memory access module corresponding to the SIMD vector operation unit, and the method includes: the SIMD vector operation unit in CPU is shielded from the CPU before running a process containing a three-dimensional rendering task. So that the CPU does not call the SIMD vector operation unit; the vector instruction and vector data of the current frame are constructed according to the three dimensional rendering task, and the vector instructions and vector data are stored in the specified area of the memory; the specified reference module and the special memory access module are made to make the SIMD vector operation unit. The special reference module, the special decoding module and the special memory access module are used to perform the corresponding SIMD vector operation according to the vector instructions and vector data in the designated area of the memory, and to complete the three-dimensional rendering task of the current frame.

【技术实现步骤摘要】
渲染三维图形的方法及装置
本专利技术涉及图形运算
,尤其涉及一种渲染三维图形的方法及装置。
技术介绍
目前,三维图形渲染能力在现代桌面系统中已经逐渐成为基本要求,微软从Windows7开始,Linux从Gnome3桌面管理器开始,都转向了以三维图形渲染为基础的桌面图形环境。目前,现有技术中渲染三维图形的方法主要有两种:一种是使用专门的图形处理器(GraphicProcessingUnit,GPU)渲染三维图形。GPU是专门为加速三维图形渲染设计的,其主体是流处理器,流处理器主要负责坐标数据和像素数据的矩阵运算。GPU运算所需的向量数据一般是较大的连续数据,需要连续的从内存中读取,因此对访存延迟不很敏感,访存行为有很强的规律性,数据相关程度很低,控制指令很简单,很少有分支,计算结果后面的运算一般不会使用,可直接写回内存,而不需将其重新填入寄存器,因此GPU需要较大的内存读取写入带宽。在进行三维图形渲染时,由中央处理器(CentralProcessingUnit,CPU)中的进程在内存中为GPU准备加速指令和数据,再拷贝到显存中,准备好后通知GPU开始执行,当执行完成后由GPU通知CPU。CPU如需在内存中使用处理后的数据,则将其从显存拷贝到内存。另一种是直接使用CPU的向量部件渲染三维图形。现代CPU中一般配置有与GPU类似的向量运算单元,但只是其中的一部分,需要共用CPU的取值、译码和访存单元。CPU的译码、取值和访存较为复杂,考虑很多分支跳转和多进程切换的情况,CPU中的操作数一般存储在CPU的寄存器中,数据有较高的相关性,访存的密集度较低,但访存行为一般不规律,而且向量运算单元必须在进程处于执行态时才能被该进程占用,在进程挂起时,CPU的向量运算单元会被释放。在进行三维图形渲染时,用于三维运算的向量运算指令是CPU运行的进程的一部分。三维绘制在执行时,该绘制所在的进程必须在执行态。用于加速的向量指令的代码被放置在不同函数,根据调用来跳转。在实现本专利技术的过程中,专利技术人发现现有技术中至少存在如下技术问题:直接使用CPU的向量部件渲染三维图形,占用了CPU的运行时间以及缓存等资源,而且由于三维绘制是大量的纯数学运算,需要较大的访存,但却极少有跳转等控制指令,CPU的大量功能部件受到限制,CPU占用率较高,渲染三维图形的效率较低;而使用专门的GPU渲染三维图形,在很多场合下GPU的负载很低,GPU利用率不高,增加了系统的成本负担。
技术实现思路
本专利技术提供的渲染三维图形的方法及装置,能够在不需配置GPU的情况下,提升CPU在渲染三维图形时的效率,同时降低CPU的占用率。第一方面,本专利技术提供一种渲染三维图形的方法,应用于CPU,所述CPU包括SIMD向量运算单元、与所述SIMD向量运算单元对应的专用取指模块、专用译码模块和专用访存模块,所述方法包括:在运行包含三维渲染任务的进程之前,将CPU中的SIMD向量运算单元对CPU进行屏蔽,以使CPU不会调用所述SIMD向量运算单元;根据所述三维渲染任务构建当前帧的向量指令和向量数据,并将所述向量指令和向量数据存储在内存的指定区域;使能所述专用取指模块、所述专用访存模块,以使得所述SIMD向量运算单元、所述专用取指模块、所述专用译码模块和所述专用访存模块,根据所述内存的指定区域中的向量指令和向量数据执行相应的SIMD向量运算,完成当前帧的三维渲染任务。第二方面,本专利技术提供一种渲染三维图形的装置,所述装置位于CPU,所述CPU包括SIMD向量运算单元、与所述SIMD向量运算单元对应的专用取指模块、专用译码模块和专用访存模块,所述装置包括:屏蔽控制模块,用于在运行包含三维渲染任务的进程之前,将CPU中的SIMD向量运算单元对CPU进行屏蔽,以使CPU不会调用所述SIMD向量运算单元;构建模块,用于根据所述三维渲染任务构建当前帧的向量指令和向量数据,并将所述向量指令和向量数据存储在内存的指定区域;使能模块,用于使能所述专用取指模块、所述专用访存模块,以使得所述SIMD向量运算单元、所述专用取指模块、所述专用译码模块和所述专用访存模块,根据所述内存的指定区域中的向量指令和向量数据执行相应的SIMD向量运算,完成当前帧的三维渲染任务。本专利技术实施例提供的渲染三维图形的方法及装置,在运行包含三维渲染任务的进程之前,将CPU中的SIMD向量运算单元对CPU进行屏蔽,根据所述三维渲染任务构建相应的向量指令和向量数据,并将所述向量指令和向量数据存储在内存的指定区域,所述SIMD向量运算单元及其对应的专用取指模块、专用译码模块和专用访存模块根据所述内存的指定区域中的向量指令和向量数据执行相应的SIMD向量运算,完成当前帧的三维渲染任务。与现有技术相比,在运行包含三维渲染任务的进程时,CPU不使用SIMD向量运算单元,SIMD向量运算单元与其对应的专用取指模块、专用译码模块和专用访存模块专门用于完成执行三维渲染任务所需的SIMD向量运算,从而能够在不需配置GPU的情况下,提升CPU在渲染三维图形时的效率;而且在执行SIMD向量运算时,CPU的其他部分不进行复用,从而可以降低CPU的占用率。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术渲染三维图形的方法实施例一的流程图;图2为本专利技术渲染三维图形的方法实施例二的流程图;图3为本专利技术渲染三维图形的装置实施例一的结构示意图;图4为本专利技术渲染三维图形的装置实施例二的结构示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术提供一种渲染三维图形的方法,应用于CPU,所述CPU包括单指令流多数据流(SingleInstructionMultipleData,SIMD)向量运算单元、与所述SIMD向量运算单元对应的专用取指模块、专用译码模块和专用访存模块,图1为本专利技术渲染三维图形的方法实施例一的流程图,如图1所示,本实施例的方法包括:S11、在运行包含三维渲染任务的进程之前,将CPU中的SIMD向量运算单元对CPU进行屏蔽,以使CPU不会调用所述SIMD向量运算单元。具体地,可以通过在CPU原有的状态寄存器进行设置,使得在运行包含三维渲染任务的进程之前,CPU不会调用SIMD向量运算单元。其中,在CPU内部增加一个SIMD向量运算单元专用的带有使能端的顺序发射和无需分支预测的专用取指模块和专用译码模块,这些模块只支持SIMD指令的取值和译码;另外,在CPU内部还增加一个专用的支持顺序预取的专用访存模块,用于从内存向SIMD向量运算单元搬运顶点和纹理数据,并将SIMD向量运算结果写回内存。所述SIMD向量运算单元与所述专用取指模块、专用译码模本文档来自技高网
...
渲染三维图形的方法及装置

【技术保护点】
一种渲染三维图形的方法,其特征在于,应用于中央处理器CPU,所述CPU包括单指令流多数据流SIMD向量运算单元、与所述SIMD向量运算单元对应的专用取指模块、专用译码模块和专用访存模块,所述方法包括:在运行包含三维渲染任务的进程之前,将CPU中的SIMD向量运算单元对CPU进行屏蔽,以使CPU不会调用所述SIMD向量运算单元;根据所述三维渲染任务构建当前帧的向量指令和向量数据,并将所述向量指令和向量数据存储在内存的指定区域;使能所述专用取指模块、所述专用访存模块,以使得所述SIMD向量运算单元、所述专用取指模块、所述专用译码模块和所述专用访存模块,根据所述内存的指定区域中的向量指令和向量数据执行相应的SIMD向量运算,完成当前帧的三维渲染任务。

【技术特征摘要】
1.一种渲染三维图形的方法,其特征在于,应用于中央处理器CPU,所述CPU包括单指令流多数据流SIMD向量运算单元、与所述SIMD向量运算单元对应的专用取指模块、专用译码模块和专用访存模块,所述方法包括:在运行包含三维渲染任务的进程之前,将CPU中的SIMD向量运算单元对CPU进行屏蔽,以使CPU不会调用所述SIMD向量运算单元;根据所述三维渲染任务构建当前帧的向量指令和向量数据,并将所述向量指令和向量数据存储在内存的指定区域;使能所述专用取指模块、所述专用访存模块,以使得所述SIMD向量运算单元、所述专用取指模块、所述专用译码模块和所述专用访存模块,根据所述内存的指定区域中的向量指令和向量数据执行相应的SIMD向量运算,完成当前帧的三维渲染任务。2.根据权利要求1所述的方法,其特征在于,所述以使得所述SIMD向量运算单元、所述专用取指模块、所述专用译码模块和所述专用访存模块,根据所述内存的指定区域中的向量指令和向量数据执行相应的SIMD向量运算包括:所述专用取指模块从所述内存的指定区域读取所述向量指令;所述专用译码模块对所述向量指令进行译码,并将译码后的向量指令发送至所述SIMD向量运算单元;所述专用访存模块从所述内存的指定区域读取所述向量数据,并发送给所述SIMD向量运算单元;所述SIMD向量运算单元根据所述译码后的向量指令以及所述向量数据进行SIMD向量运算,并将SIMD向量运算结果返回至所述专用访存模块。3.根据权利要求1或2所述的方法,其特征在于,在所述使能所述专用取指模块、所述专用访存模块之后,还包括:在内存的指定区域接收所述专用访存模块写回的所述SIMD向量运算结果。4.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:在完成当前帧的三维渲染任务过程中,控制所述包含三维渲染任务的进程执行除当前帧的三维渲染任务以外的其他任务,或者将所述包含三维渲染任务的进程挂起。5.根据权利要求3所述的方法,其特征在于,在所述在内存的指定区域接收所述专用访存模块写回的所述SIMD向量运算结果之后,所述方法还包括:恢复所述包含三维渲染任务的进程,从所述内存的指定区域读取所述SIMD向量运算结果。6.根据权利要求1-5任一项所述的方法,其特征在于,所述使能所述专用取指模块、所述专用访存模块包括:在所述专用取指模块对应的配置寄存器中存入待取指地址的首地址以及长度;在所述专用访存模块对应的配置寄存器中存入待读取向量数据的首地址以及长度,待存入向量数据的首地址以及长度;通过专用配置寄存器中设置的使能位对所述专...

【专利技术属性】
技术研发人员:高翔朱琛王洪虎
申请(专利权)人:龙芯中科技术有限公司
类型:发明
国别省市:北京,11

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

1