一种面向OpenGLAPI的图形处理器的制造方法

文档序号:6637999阅读:279来源:国知局
一种面向OpenGL API的图形处理器的制造方法
【专利摘要】一种面向OpenGL API的图形处理器是一款多功能、通用化、小型化的GPU芯片,内部集成硬件3D图形加速引擎,兼容OpenGL 3D图形处理API,提供构建3D图形的加速处理能力;本发明在片上实现了面向3D图形加速处理的存储子系统,包括像素Cache、存储控制与管理单元,以及高速双通道DDR2控制器。另外,图形处理器集成了显示控制模块,其中包括为实现叠加功能提供视频源的视频输入模块(VIP),以及两路独立的显示控制器,提供数字显示输出接口。图形处理器还集成了符合PCI2.2标准的总线接口模块,GPIO单元和I2C总线接口,能够为提供PCI主机接口的计算机系统提供图形加速处理功能。
【专利说明】 一种面向OpenGL API的图形处理器

【技术领域】
[0001]本发明涉及计算机硬件【技术领域】,尤其涉及一种面向OpenGL API的图形处理器。

【背景技术】
[0002]随着图形化应用的不断增加,早期单靠CPU进行图形绘制的解决方案已经难以满足成绩和技术增长的图形处理需求,图形处理器(Graphic Processing Unit,GPU)应运而生。从1999年Nvidia发布第一款GPU产品至今,GPU技术的发展主要经历了固定功能流水线阶段、分离染色器架构阶段、统一染色器架构阶段,其图形处理能力不断提升,应用领域也从最初的图形绘制逐步扩展到通用计算领域。GPU流水线高速、并行的特征和灵活的可编程能力,为图形处理和通用并行计算提供了良好的运行平台。
[0003]目前,我国GPU研制能力薄弱,各领域显示控制系统中大量采用国外进口的商用GPU芯片。尤其是在军用领域中,国外进口商用GPU芯片存在安全性、可靠性、保障性等方面的隐患,无法满足军用环境的需求;而且,出于政治、军事、经济等原因,国外对我国实行技术“封锁”和产品“垄断”,难以获得GPU芯片的底层技术资料,如寄存器资料、详细内部微架构、核心软件源码等,导致GPU功能、性能无法充分发挥,且移植性较差;上述问题严重制约了我国显示系统的独立研制和自主发展,突破图形处理器关键技术、研制图形处理器芯片迫在眉睫。


【发明内容】

[0004]本发明的目的是提供一种面向OpenGL API的图形处理器,从而能够实现对基于OpenGL API的图形处理加速。
[0005]本发明的技术解决方案是:
[0006]一种面向OpenGL API的图形处理器,其特殊之处在于:包括主机接口模块、3D引擎模块、存储控制与管理模块、显示控制模块;
[0007]所述主机接口模块与主机进行OpenGL图形命令和数据传输,其包括PCI总线接口、命令处理器、DMA控制器、通用输入输出模块、两路I2C总线控制器
[0008]所述PCI总线接口用于接收PCI主设备发送的OpenGL图形命令和数据;
[0009]所述命令处理器用于接收PCI总线接口 OpenGL图形命令和数据并对其进行解释和预处理,将预处理产生的图形处理命令发送给3D引擎模块;向DMA控制器发送启动命令;
[0010]所述DMA控制器用于根据来自命令处理器的启动命令,实现PCI主设备与GPU芯片内部其它模块的数据传输;
[0011]所述通用输入输出模块与PCI总线接口相连,实现与GPU芯片相连的外部设备的访问和控制;
[0012]所述两路I2C总线控制器与PCI总线接口相连,实现与GPU芯片相连的外部A/D芯片和D/A芯片的配置;
[0013]所述3D引擎模块根据接收到的图形处理命令进行3D图形处理并将处理结果发送给存储控制与管理模块;3D引擎模块包括十级功能流水线;所述十级功能流水线按照从前到后的顺序包括顶点染色器模块、图元装配模块、背面消隐模块、平面剪裁模块、投影变换模块、三维剪裁模块、齐次坐标变换模块、视窗变换模块、像素染色器模块和片段处理模块;
[0014]所述片段处理模块包括Z-buffer Cache模块;
[0015]所述存储控制与管理模块用于显示存储器访问控制,其包括两路独立的第一访存仲裁与存储保护单元I和第二访存仲裁与存储保护单元2、独立的第一 DDR2控制器I和第二 DDR2控制器2、像素Cache模块;
[0016]所述第一访存仲裁与存储保护单元I负责3D引擎模块在图形处理过程中需要存取的图形命令和图像数据的传输,同时将最终处理结果通过像素Cache模块发送到对应的第一 DDR2控制器I中;
[0017]所述第二访存仲裁与存储保护单元2负责接收来自显示控制模块的外部图像数据,并发送给对应的第二 DDR2控制器2 ;
[0018]第一 DDR2控制器连接在第一访问仲裁与存储保护单元和第一外部DDR2存储器芯片之间,用于实现第一访问仲裁与存储保护单元对第一外部DDR2存储器芯片的访问和控制;
[0019]第二 DDR2控制器连接在第二访问仲裁与存储保护单元和第二外部DDR2存储器芯片之间,用于实现第二访问仲裁与存储保护单元对第二外部DDR2存储器芯片的访问和控制;
[0020]所述像素Cache模块用来缓冲来自3D引擎模块的最终处理结果的颜色数据,为3D引擎模块的颜色缓冲区访问提供颜色数据,所述Z-buffer Cache模块用来缓冲3D引擎模块的最终处理结果的深度数据,为3D引擎模块的深度测试操作提供深度数据;
[0021]所述显示控制模块包括数字视频输入接口、至少一个显示控制单元和图像数据控制单元,
[0022]所述数字视频输入接口用于接收两路外部视频信号,并将该两路视频信号发送给第二访存仲裁与存储保护单元2 ;
[0023]所述图像数据控制单元用于从第一访存仲裁与存储保护单元I和第二访存仲裁与存储保护单元2读取图像数据,根据用户配置分发给对应的显示控制单元;
[0024]根据用户配置显示控制单元对来自图像数据控制单元的图像数据进行处理,并将处理结果输出外部显示设备;
[0025]所述3D引擎模块的顶点染色器模块和片段处理模块分别与主机接口模块中的命令处理器相连,所述3D引擎模块的片段处理模块与存储控制与管理模块中的像素Cache模块相连;
[0026]所述存储控制与管理模块的两路访问仲裁与存储保护单元均与主机接口模块的命令处理器和DMA控制器相连。
[0027]上述顶点染色器模块按照从前到后的顺序包括接口和任务分配器、顶点染色器、参数存储与管理单元、第一 DDR2存储访问控制单元I ;所述第一 DDR2存储访问控制单元与第一访存仲裁与存储保护单元I相连。
[0028]上述像素染色器模块按照从前到后的顺序包括接口和任务分配器、多路平行的扫描转换和反走样单元、片元参数存储与管理单元、多路RISC处理器、第二 DDR2存储访问控制单元2 ;所述像素染色器模块还包括图像处理子集,所述图像处理子集分别与接口和任务分配器、片元参数存储与管理单元、第二 DDR2存储访问控制单元2相连,所述第二 DDR2存储访问控制单元2与第一访存仲裁与存储保护单元I相连。
[0029]上述图形处理器还包括用于实现芯片内部时钟和复位控制的时钟复位控制模块。
[0030]本发明的技术效果是:
[0031]1、本发明提供的图形处理器体系架构,内部集成专门3D图形处理引擎,提供快速3D图形构建能力,能够实现基于OpenGL API的图形处理加速,包括对各种图元绘制、纹理贴图功能的加速。另外,图形处理器体系架构具备可编程能力,3D引擎中集成的顶点染色器模块和像素染色器模块为可编程结构,内部集成RISC处理器,可以根据实际应用需要,通过对内嵌固件程序的重新编程实现对具体顶点染色和像素染色方式的改变,从而实现不同的图形渲染效果。
[0032]2、图形处理器基于128Bits高速双通道显示存储器实现了面向3D图形处理和显示控制的存储系统,满足了图形处理和显示控制功能对数据存储和缓冲的要求。
[0033]3、图形处理器集成了显示控制模块,其中包括为实现叠加功能提供视频源的视频输入模块(VIP),以及双路显示控制器,提供两路独立的数字显示输出接口。
[0034]4、图形处理器实现了基于PCI2.2标准的主机接口,能够为提供PCI主机接口的计算机系统提供图形加速处理功能。

【专利附图】

【附图说明】
[0035]图1是本发明图形处理器的体系结构框图;
[0036]图2是本发明图形处理器中3D引擎模块的结构框图。

【具体实施方式】
[0037]下面结合附图和具体实施例,对本发明的技术方案进行清楚、完整地表述。显然,所表述的实施例仅是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提所获得的所有其他实施例,都属于本发明的保护范围。
[0038]如图1所示,一种面向OpenGL API的图形处理器,包括与主机进行图形命令和数据传输的主机接口模块;集成了用于3D图形处理硬件加速的3D引擎模块;集成了用于实现芯片内部时钟和复位控制的时钟复位控制模块;集成了用于进行显示存储器访问控制的存储控制与管理模块,以及用于实现显示控制功能的显示控制模块。
[0039]下面分别详细介绍各模块的具体结构及功能:
[0040]1、主机接口模块的主要功能是实现客户端与图形处理器间的OpenGL命令传输,以及模板、纹理等图形数据的传输。另外,客户端主机通过主机接口模块对图形处理器内部体系结构寄存器进行配置,从而控制图形处理器具体实现的图形处理功能。主机接口模块包括以下几个子功能模块:
[0041]1.1PCI总线接口:实现OpenGL命令和图形数据的传输。实现PCI主机对图形处理器内部体系结构寄存器的配置。
[0042]1.2命令处理器:对PCI主机发送进图形处理器的OpenGL命令进行解析,将OpenGL命令分发至3D图形处理模块。通过内嵌RISC处理器实现部分图形数据存取相关的OpenGL 命令。
[0043]1.3DMA控制器:响应来自命令处理器、3D模块的DMA数据传输请求,实现模板、纹理、图像等数据在主机和图形处理器内部存储器间的DMA传输。
[0044]1.4通用输入输出模块(GP1):根据应用需求,支持在外部连接I/O设备。
[0045]1.5I2C:支持主从模式,实现对外部AD/DA芯片的配置。
[0046]1.6R0M控制器:支持从外部EEPROM加载命令处理器固件、顶点染色器固件和像素染色器固件,并支持CRC校验和固件解密功能。
[0047]2,3D引擎模块是图形处理器的核心,基于OpenGL 3D图形API,实现了 3D图形处理的硬件加速功能,其中包括3D图形的建立、变换、染色、剪裁、纹理贴图、深度缓冲、消隐,以及模板、雾化、Alpha混合、抗锯齿等操作的硬件加速。主要包括以下功能单元:
[0048]2.1顶点染色模块:完成顶点、纹理坐标、光栅位置、法向量、光源位置和聚光灯方向向量的旋转、平移和缩放操作;完成顶点坐标的光照计算,最多支持8盏灯的光照计算,同时支持单面和双面光照计算;完成模型视图矩阵和纹理矩阵的乘法和逆矩阵变换等基本操作;支持深度为32的模型视图矩阵堆栈,支持深度为16的纹理矩阵堆栈,支持深度为8的属性堆栈;
[0049]2.2图元装配模块:根据输入的顶点属性信息(包括坐标、颜色、纹理、法向量等信息)和客户端传送的mode参数,按照图元装配算法进行装配,得到点、线和三角形组成的各种图形,并将所装配的图形输出给下级进行裁剪等一系列的处理。
[0050]2.3平面剪裁模块:所述图形处理器支持使用6个用户自定义剪裁面对空间中的3D图形进行剪裁。平面裁剪模块使用客户指定的剪裁平面对世界空间中的三维物体进行剪裁,不但能够实现用户想要的特殊效果,还能够减少计算量。该模块首先对图元在平面的内外进行判别,如需剪裁还要运用线性插值和SH算法求出图元与裁剪面的交点,从而生成新的三维物体。
[0051]2.4投影变换模块:投影变换模块根据客户端定义的视景体(正视视景体矩阵或透视视景体矩阵),对空间中的三维物体进行变换,从而实现了空间中三维物体到屏幕上的两种映射方式(即通过透视投影还是正投影)。其次,通过对具体视景体的定义,该模块还实现了对视野中哪些三维物体可见的定义,物体处于视景体外的部分最终将在三维剪裁模块中被视景体的六个面剪裁。
[0052]2.5三维剪裁模块:三维剪裁模块的功能与平面剪裁类似,差别在与平面剪裁的剪裁面由用户自定义,而三维剪裁的剪裁面就是投影变换单元所定义视景体的6个面。三维裁剪模块将位于视景体之外的所有图元进行裁剪。如果裁剪没有产生新的顶点,就把输入顶点的全部信息输出;如果剪裁产生新的顶点,那么就用CS算法或SH算法计算出新顶点的位置,再经过插值算法求出新点的属性信息,最终将顶点重新装配后的信息传给下一级。
[0053]2.6齐次坐标变换和视窗变换模块:本模块将视景体内的物体显示在二维的视口中。根据客户端定义的视口矩阵将三类点(位置性光源的坐标、光栅位置坐标、图元顶点坐标)进行齐次坐标变换后,再将所得的坐标与视窗变换矩阵相乘,将其窗口中的图形信息送到视口中,完成视窗变换。
[0054]2.7背面消隐处理模块:在三维空间中,一个多边形虽然有两个面,但我们无法看见多边形的背面。如果将无法看见的多边形和可见的多边形同等对待,将降低图形处理效率。本模块可以实现将不可见面剔除的功能。背面消隐模块主要实现的功能包括设置三角形的正面和反面,以及消除设置的面,或者正反面均消除。
[0055]2.8像素染色模块:本模块主要根据直线和多边形点画模式、直线宽度、点的大小、着色模型以及用于支持抗锯齿处理的覆盖率计算,把顶点连接起来形成直线或者计算填充多边形的内部像素,从而完成三维图形的光栅化。能够实现基于像素操作的图像处理,包括对来自帧缓存或主机内存的图像像素数据进行的放缩、偏移、截断、以及整幅图像反转等操作。另外,还完成像素的光照计算、纹理贴图以及雾处理操作。
[0056]2.9段处理模块:段操作是片段在写入帧缓存之前所要进行的最后的操作,用来选择要写入帧缓存中的片段,以及根据条件改变帧缓存中的值。这些操作主要包括片段测试、混合、逻辑操作、累积缓冲区以及帧缓存清除和屏蔽等。另外,段处理模块还实现了空间中三维图形的深度值缓存。
[0057]3存储管理模块,该模块由以下子模块构成:
[0058]3.12路独立的访存仲裁与存储保护单元:其中一路负责图形处理过程中需要存取的数据和图像,以及从像素Cache写入的图形数据的对帧缓冲区访问的管理;另外一路负责完成数字视频分量输入模块、显示控制模块对帧缓存访问的管理。实现图形处理和显示控制对存储器访问的分离。
[0059]2.2像素Cache模块:该模块实现缓存像素数据的功能。像素cache里面存放了经常访问的数据,当需要频繁读相同数据的时候能够提高读速度;如果是写像素数据,只有接收到绘图完成信号或者接收到大块像素数据传送信号时,像素cache才会把所有改写过的数据写回到帧缓冲区中,不需要每次读写数据时启动帧缓冲区,减少了片外存储器的访问次数,提升了显存的有效带宽。
[0060]2.32路独立的存储器控制器模块:根据2路存储管理单元的存储器访问仲裁结果,2路独立的存储器控制器分别接收访存请求,并按照配置寄存器中所对应的工作模式访问片外显示存储器。
[0061]4、显示控制模块
[0062]4.1图形数据控制单元:实现从显示存储器中读图像数据,并根据寄存器配置将图像数据分别送入两路独立的显示控制单元中的功能;
[0063]4.2显示控制单元:对图像数据进行颜色索引、格式转换、缩放、抖动、叠加等处理,最后形成显示需要的数字RGB888格式,并通过显示输出单元输出。同时,该模块还实现硬件光标的功能;
[0064]4.3数字视频分量输入接口:接收外部视频源数据,并将接收的视频数据放入显示存储器中。
[0065]5、时钟复位控制模块
[0066]时钟复位控制模块接收来自片外晶振的时钟信号,并通过片内集成的PLL进行倍频或者分配,输出片内不同功能模块正常工作需要的时钟信号。另外,还能够接收来自硬件或者软件的复位信号,复位片内部分硬件逻辑或者整个芯片。
[0067] 最后应说明的是,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
【权利要求】
1.一种面向OpenGL API的图形处理器,其特征在于:包括主机接口模块、 3D引擎模块、存储控制与管理模块、显示控制模块; 所述主机接口模块与主机进行OpenGL图形命令和数据传输,其包括PCI总线接口、命令处理器、DMA控制器、通用输入输出模块、两路I2C总线控制器 所述PCI总线接口用于接收PCI主设备发送的OpenGL图形命令和数据; 所述命令处理器用于接收PCI总线接口 OpenGL图形命令和数据并对其进行解释和预处理,将预处理产生的图形处理命令发送给3D引擎模块;向DMA控制器发送启动命令;所述DMA控制器用于根据来自命令处理器的启动命令,实现PCI主设备与GPU芯片内部其它模块的数据传输; 所述通用输入输出模块与PCI总线接口相连,实现与GPU芯片相连的外部设备的访问和控制; 所述两路I2C总线控制器与PCI总线接口相连,实现与GPU芯片相连的外部A/D芯片和D/A芯片的配置; 所述3D引擎模块根据接收到的图形处理命令进行3D图形处理并将处理结果发送给存储控制与管理模块;3D引擎模块包括十级功能流水线;所述十级功能流水线按照从前到后的顺序包括顶点染色器模块、图元装配模块、背面消隐模块、平面剪裁模块、投影变换模块、三维剪裁模块、齐次坐标变换模块、视窗变换模块、像素染色器模块和片段处理模块; 所述片段处理模块包括Z-buffer Cache模块; 所述存储控制与管理模块用于显示存储器访问控制,其包括两路独立的第一访存仲裁与存储保护单元和第二访存仲裁与存储保护单元、独立的第一 DDR2控制器和第二 DDR2控制器、像素Cache模块; 所述第一访存仲裁与存储保护单元负责3D引擎模块在图形处理过程中需要存取的图形命令和图像数据的传输,同时将最终处理结果通过像素Cache模块发送到对应的第一DDR2控制器中; 所述第二访存仲裁与存储保护单元负责接收来自显示控制模块的外部图像数据,并发送给对应的第二 DDR2控制器; 第一 DDR2控制器连接在第一访问仲裁与存储保护单元和第一外部DDR2存储器芯片之间,用于实现第一访问仲裁与存储保护单元对第一外部DDR2存储器芯片的访问和控制;第二 DDR2控制器连接在第二访问仲裁与存储保护单元和第二外部DDR2存储器芯片之间,用于实现第二访问仲裁与存储保护单元对第二外部DDR2存储器芯片的访问和控制; 所述像素Cache模块用来缓冲来自3D引擎模块的最终处理结果的颜色数据,为3D引擎模块的颜色缓冲区访问提供颜色数据,所述Z-buffer Cache模块用来缓冲3D引擎模块的最终处理结果的深度数据,为3D引擎模块的深度测试操作提供深度数据; 所述显示控制模块包括数字视频输入接口、至少一个显示控制单元和图像数据控制单元, 所述数字视频输入接口用于接收两路外部视频信号,并将该两路视频信号发送给第二访存仲裁与存储保护单元; 所述图像数据控制单元用于从第一访存仲裁与存储保护单元和第二访存仲裁与存储保护单元读取图像数据,根据用户配置分发给对应的显示控制单元; 根据用户配置显示控制单元对来自图像数据控制单元的图像数据进行处理,并将处理结果输出外部显示设备; 所述3D引擎模块的顶点染色器模块和片段处理模块分别与主机接口模块中的命令处理器相连,所述3D引擎模块的片段处理模块与存储控制与管理模块中的像素Cache模块相连; 所述存储控制与管理模块的两路访问仲裁与存储保护单元均与主机接口模块的命令处理器和DMA控制器相连。
2.根据权利要求1所述的面向OpenGLAPI的图形处理器,其特征在于: 所述顶点染色器模块按照从前到后的顺序包括接口和任务分配器、顶点染色器、参数存储与管理单元、第一DDR2存储访问控制单元;所述第一DDR2存储访问控制单元与第一访存仲裁与存储保护单元相连。
3.根据权利要求2所述的面向OpenGLAPI的图形处理器,其特征在于: 所述像素染色器模块按照从前到后的顺序包括接口和任务分配器、多路平行的扫描转换和反走样单元、片元参数存储与管理单元、多路RISC处理器、第二 DDR2存储访问控制单元;所述像素染色器模块还包括图像处理子集,所述图像处理子集分别与接口和任务分配器、片元参数存储与管理单元、第二 DDR2存储访问控制单元相连,所述第二 DDR2存储访问控制单元与第一访存仲裁与存储保护单元相连。
4.根据权利要求1至3之任一权利要求所述的面向OpenGLAPI的图形处理器,其特征在于: 所述图形处理器还包括用于实现芯片内部时钟和复位控制的时钟复位控制模块。
【文档编号】G06F13/28GK104503950SQ201410752098
【公开日】2015年4月8日 申请日期:2014年12月9日 优先权日:2014年12月9日
【发明者】田泽, 张骏, 许宏杰, 黎小玉, 颜哲, 马城城 申请人:中国航空工业集团公司第六三一研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1