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包括单指令流多数据流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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。