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

技术编号:8079146 阅读:253 留言:0更新日期:2012-12-13 22:06
本发明专利技术公开了GPU设计中的一种快速读取图元顶点的实现方法。它包括顶点数据的顺序存放,顶点起始地址的配置,绘图命令解析,图元管理,图元顶点数据读取,多余数据的清空等步骤。该实现方法可以充分利用存储器带宽,减轻总线压力,提高GPU芯片的顶点通过率。

【技术实现步骤摘要】

本专利技术主要涉及到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位单精度浮点数据,分别对应顶点的横坐标,纵坐标,深度坐标,齐次坐标系数,颜色分量红、绿、蓝、透明度)的顺序连续存放,若当前图元为三角形,要求三角形的每个顶点数据都按照乂、¥、2、胃、1 、6、83、5、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个。
技术实现思路
图I是本专利技术实现的GPU中一种快速取顶点的实现结构;具体实施例方式以下将结合附图和具体实施例对本专利技术做进一步详细说明。如图I所示,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命令,那么图元管理模块会发送清空信号给FIF0,将FIFO中的数据清空,保证下一次的绘制不会读取到错误顶点。权利要求1.GPU中一种快速读取顶点的实现方法,其特征在于将顶点数据按照顺序存放,若为线段则要求每个顶点都按照X、Y、Z、W、R、G、B、A (分别对应顶点的横坐标,纵坐标,深度坐标,齐次坐标系数,颜色分量红、绿、蓝、透明度)的顺序存放,若为三角形则要求每个顶点按照X、Y、Z、W、R、G、B、A、S、T (分别对应顶点的横坐标,纵坐标,深度坐标,齐次坐标系数,颜色分量红、绿、蓝、透明度,纹理图片横坐标,纹理图片纵坐标)、0、0的顺序存放,同时CPU通过PCI总线对图元管理模块配置顶点数据的起始存放地址;CPU通过PCI总线向命令解析模块传送命令,命令解析模块通过异步FIFO读取命令字,若当前命令为有效命令(绘制命令或清空FIFO命令),则对命令字的各分量进行译码得到图元类型、顶点个数信息,并将其传送给图元管理模块,若在绘制过程中需要修改绘制参数(如纹理地址切换、矩阵切换)或当前帧的绘制命令发送完毕,命令解析模块需要发送一条清空FIFO的命令。2.根据权利要求I中PCI总线配置的顶点起始地址,图元管理模块向读取顶点数据模块发送起始地址,由于所有顶点数据顺序存放,故可以以较大的BurstLength(突发数目,SP可以连续返回多个顶点数据)向DDR控制器发送读请求,只要读取顶点的FIFO未满,就可以按照地址递增顺序持续发送读请求,同时将得到的顶点数据发送给图元管理模块,图元管理模块根据命令要求将这些数据组织成对应的图元数据后发送给绘图模块,若当前收到的是清空FIFO的命令,图元管理模块会根据此清空命令将获取DDR数据的FIFO清空,保证下一次发送的命令不会取到错误顶点。全文摘要本专利技术公开了GPU设计中的一种快速读取图元顶点的实现方法。它包括顶点数据的顺序存放,顶点起始地址的配置,绘图命令解析,图元管理,图元顶点数据读取,多余数据的清空等步骤。该实现方法可以充分利用存储器带宽,减轻总线压力,提高GPU芯片的顶点通过率。文档编号G06T1/20GK102819819SQ20121028799公开日2012年12月12日 申请日期2012年8月14日 优先权日2012年8月14日专利技术者焦永 申请人:长沙景嘉微电子股份有限公司本文档来自技高网
...

【技术保护点】
GPU中一种快速读取顶点的实现方法,其特征在于:将顶点数据按照顺序存放,若为线段则要求每个顶点都按照X、Y、Z、W、R、G、B、A(分别对应顶点的横坐标,纵坐标,深度坐标,齐次坐标系数,颜色分量红、绿、蓝、透明度)的顺序存放,若为三角形则要求每个顶点按照X、Y、Z、W、R、G、B、A、S、T(分别对应顶点的横坐标,纵坐标,深度坐标,齐次坐标系数,颜色分量红、绿、蓝、透明度,纹理图片横坐标,纹理图片纵坐标)、0、0的顺序存放,同时CPU通过PCI总线对图元管理模块配置顶点数据的起始存放地址;CPU通过PCI总线向命令解析模块传送命令,命令解析模块通过异步FIFO读取命令字,若当前命令为有效命令(绘制命令或清空FIFO命令),则对命令字的各分量进行译码得到图元类型、顶点个数信息,并将其传送给图元管理模块,若在绘制过程中需要修改绘制参数(如:纹理地址切换、矩阵切换)或当前帧的绘制命令发送完毕,命令解析模块需要发送一条清空FIFO的命令。

【技术特征摘要】

【专利技术属性】
技术研发人员:焦永
申请(专利权)人:长沙景嘉微电子股份有限公司
类型:发明
国别省市:

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

1