首页> 中国专利> GPU中一种快速读取顶点的实现方法

GPU中一种快速读取顶点的实现方法

摘要

本发明公开了GPU设计中的一种快速读取图元顶点的实现方法。它包括顶点数据的顺序存放,顶点起始地址的配置,绘图命令解析,图元管理,图元顶点数据读取,多余数据的清空等步骤。该实现方法可以充分利用存储器带宽,减轻总线压力,提高GPU芯片的顶点通过率。

著录项

  • 公开/公告号CN102819819A

    专利类型发明专利

  • 公开/公告日2012-12-12

    原文格式PDF

  • 申请/专利权人 长沙景嘉微电子股份有限公司;

    申请/专利号CN201210287997.4

  • 发明设计人 焦永;

    申请日2012-08-14

  • 分类号G06T1/20;

  • 代理机构

  • 代理人

  • 地址 410205 湖南省长沙市高新开发区麓谷麓景路2号

  • 入库时间 2023-12-18 07:36:17

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-09-16

    授权

    授权

  • 2013-08-14

    著录事项变更 IPC(主分类):G06T1/20 变更前: 变更后: 申请日:20120814

    著录事项变更

  • 2013-02-20

    实质审查的生效 IPC(主分类):G06T1/20 申请日:20120814

    实质审查的生效

  • 2012-12-12

    公开

    公开

说明书

技术领域

本发明主要涉及到GPU设计领域,特指GPU中绘图命令解析和图元顶点获取领域。

背景技术

顶点数据的组织和读取是固定流水线实现的GPU中一个重要问题。它的好坏直接影响到绘图的效率。传统的做法是在命令字中指定图元类型、分量个数、顶点个数、各个分量的起始地址及Stride等信息,往往一个绘图命令需要多个(7个或更多)命令字来描述,这样做的缺点是:(1)由于命令字较多,给PCI总线带来很大的压力,在绘制过程中,PCI总线需要一直传送命令,而由于频率的限制,命令的传送速度往往跟不上绘制速度;(2)由于每个分量都需要按照命令字指定的起始地址和Stride等信息向DDR发请求取数据,导致Burst比较小,读取DDR的延迟就比较大,读取一个顶点的数据往往需要发送多次读请求才能获取数据,不能充分利用DDR的带宽。

发明内容

本发明要解决的问题就在于:针对现有技术存在的缺点,本发明提供了一种GPU中快速取顶点的实现结构,该实现结构通过将顶点数据顺序组织,加大Burst值的读取方式,充分利用存储器带宽,大大提高了取顶点的效率,同时采用这种方式还可以减小命令字的个数。

本发明的实现方法需要将顶点数据按照固定的顺序存放,若当期的图元为线段,要求线段的每个顶点的数据都按照X、Y、Z、W、R、G、B、A(均为32位单精度浮点数据,分别对应顶点的横坐标,纵坐标,深度坐标,齐次坐标系数,颜色分量红、绿、蓝、透明度)的顺序连续存放,若当前图元为三角形,要求三角形的每个顶点数据都按照X、Y、Z、W、R、G、B、A、S、T(均为32位单精度浮点数据,分别对应顶点的横坐标,纵坐标,深度坐标,齐次坐标系数,颜色分量红、绿、蓝、透明度,纹理图片横坐标,纹理图片纵坐标)、0、0(补充两个0数据是为了使数据128位对齐,有利于DDR的高位宽)的顺序存放,同时CPU通过PCI总线对图元管理模块配置顶点数据的起始存放地址(通过配置图元管理模块相应的寄存器可以实现,图元管理模块以此地址为起始地址连续从DDR中取顶点数据);然后CPU通过PCI总线向命令解析模块发送命令,命令解析模块通过异步FIFO读取命令字,若当前的命令为有效命令(图元绘制命令或清空FIFO命令),则对命令字的各分量进行译码得到图元类型和顶点个数信息,并将该信息传送给图元管理模块,若在绘制过程中需要修改绘制参数(如:纹理地址切换、变换矩阵切换)或当前帧的绘制命令发送完毕,需要由软件发送一条清空FIFO的命令。图元管理模块在收到软件配置的起始地址后,向读取顶点数据模块发送起始地址,由于所有顶点数据顺序存放,故可以以较大的BurstLength(突发数目,即可以连续返回多个顶点数据)向DDR控制器发送读请求,只要读取顶点的FIFO未满,就可以按照地址递增顺序持续发送读请求,同时将得到的顶点数据发送给图元管理模块,图元管理模块根据命令要求将这些数据组织成对应的图元数据后发送给绘图模块,若当前收到的是清空FIFO的命令,图元管理模块会根据此清空命令将获取DDR数据的FIFO清空,保证下一次发送的命令不会取到错误顶点。

本发明的优点就在于:1、充分利用存储器带宽:本发明提出的快速取顶点的实现结构可以以较大的BurstLength发送读存储器请求,充分利用存储器带宽; 2、减小命令字个数:由于顶点数据按顺序存放,所以传统绘图命令字中的各分量起始地址、Stride等信息可以省略,可以将一条命令的命令字由7~8个减至2个。 

发明内容

图1是本发明实现的GPU中一种快速取顶点的实现结构;

具体实施方式

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

如图1所示,GPU中一种快速读取顶点的实现结构。CPU通过PCI总线配置图元顶点数据的起始存放地址(图元数据均按照固定格式存放,线段顶点格式为X、Y、Z、W、R、G、B、A,三角形顶点格式为X、Y、Z、W、R、G、B、A、S、T、0、0),然后CPU通过PCI总线向命令解析模块发送命令,命令解析模块通过读取异步FIFO获得命令数据,若为合法命令则将命令字中的各分量译码并送入图元管理模块;图元管理模块根据配置的起始地址通过读顶点数据模块向DDR控制器以较大的BurstLength发送请求,在得到DDR的返回数据之后,将其写入FIFO中,只要FIFO中未满就可以持续发送读请求;图元管理模块从FIFO中读取返回数据,然后按照命令字的格式将数据组织好发送给绘图流水线;若当前得到的命令为清空FIFO命令,那么图元管理模块会发送清空信号给FIFO,将FIFO中的数据清空,保证下一次的绘制不会读取到错误顶点。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号