[发明专利]一种GPU压缩纹理存储Cache的建模系统有效
申请号: | 201711202135.6 | 申请日: | 2017-11-24 |
公开(公告)号: | CN108022269B | 公开(公告)日: | 2021-09-14 |
发明(设计)人: | 魏美荣;吴晓成;刘航;何嘉文;郑新建 | 申请(专利权)人: | 中国航空工业集团公司西安航空计算技术研究所 |
主分类号: | G06T9/00 | 分类号: | G06T9/00;G06T1/20;G06F12/0893 |
代理公司: | 中国航空专利中心 11008 | 代理人: | 王中兴 |
地址: | 710000 *** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明属于计算机图形领域,提供一种GPU压缩纹理存储Cache的建模系统,包括:纹理存储状态与控制寄存器(1)、纹理请求非阻塞存储L1单元(2)、纹理解压缩单元(3)和纹理压缩存储L2单元(4)。本发明基于SystemC对纹理存储访问过程进行功能建模,采用基于4*4纹素块Tile的S3TC解压缩算法,压缩后纹理图像的数据为128bit存储,存储大小为原始4/3倍。根据纹理内部图象不同格式(intFormat),在DDR中压缩纹理采用32bit紧凑格式存储,压缩纹理单元内部支持8bit,16bit,32bit格式的纹理存储访问,提高了存储资源占用率。 | ||
搜索关键词: | 一种 gpu 压缩 纹理 存储 cache 建模 系统 | ||
【主权项】:
1.一种GPU压缩纹理存储Cache的建模结构,其特征在于,所述建模结构包括:纹理存储状态与控制寄存器(1)、纹理请求非阻塞存储L1单元(2)、纹理解压缩单元(3)和纹理压缩存储L2单元(4);其中:所述纹理存储状态与控制寄存器(1),用于为纹理请求非阻塞存储L1单元(2)提供控制与状态信息,通过纹理参数存储单元的接口服务函数访问外部纹理存储参数,包括绑定纹理对象编号、绑定对象分级细化mipmap的level层号、DDR中纹理内部存储格式、DDR内部纹素存储的基地址、DDR内部纹理数据存储大小,通过纹理请求非阻塞存储L1单元(2)的接口服务函数获取该控制信息;所述纹理请求非阻塞存储L1单元(2),用于接收、存储并处理外部纹理映射单元发起的多个纹素请求;首先,在每个时钟上升沿,循环检测外部纹理映射单元发起的纹素请求,当请求使能有效时,采用寄存器保存请求编号、请求数据过滤模式、映射类型、纹素坐标地址描述信息;其次,读取当前多请求纹素坐标地址,根据访问地址进行请求合并与冲突检测,将请求地址相同的进行合并后产生m个地址并送往该单元内部m个端口的非压缩Cache,如果多个请求无法合并为m个请求,其中m为最大的端口访问数,则分多次访问纹理请求非阻塞存储L1单元(2),如果请求命中,则将访问结果的纹素值结果存储至寄存器中,根据请求数据过滤模式和映射类型,当循环检测到纹理请求对应的所有纹素值结果都准备好,则设置Ready就绪标志,根据纹理存储状态与控制寄存器(1)中的控制信息,通知外部纹理映射单元读取纹素值,如果请求不命中,则将该请求信息打包处理并且暂存,并向纹素压缩单元(3)发起缺失请求,纹理请求非阻塞存储L1单元(2)在完成当前缺失请求信息暂存后继续开始下一次的请求;纹理请求非阻塞存储L1单元(2)更新访问过程不会影响其后续请求访问命中流水线,只有当纹理压缩存储L2单元(4)将需要更新的block块经过纹理解压缩单元(3)解压缩之后存储至待更新的fillbuffer缓存时,一方面,纹理请求非阻塞存储L1单元(2)查询fillbuffer暂存的请求后否有命中,另一方面,纹理请求非阻塞存储L1单元(2)将该block块数据更新到其DataRam中;所述纹理解压缩单元(3),一方面用于处理纹理请求非阻塞存储L1单元(2)发起的纹素地址缺失请求,另一方面用于采用S3TC解压算法处理纹理压缩存储L2单元(4)返回的纹理数据;首先,当通过纹理请求非阻塞存储L1单元(2)接口的服务函数检测到纹理请求非阻塞存储L1单元(2)发起的缺失请求时,读取请求中纹素坐标地址,进行压缩地址转换;然后,根据压缩后的纹素请求地址向纹理压缩存储L2单元(4)发起缺失请求,并进行时钟周期等待,直到纹理压缩存储L2单元(4)返回需要的block块数据,该单元需要根据请求中携带的纹理存储内部格式进行数据判断,如果是压缩格式类型的,则根据S3TC算法进行解压缩处理,否则,如果是8bit、16bit或32bit的数据格式,则根据紧凑型的存储方式进行解压缩处理,并将解压缩结果返回给L1Cache单元(2)进行更新;所述纹理压缩存储L2单元(4),用于接收、处理解压缩单元(3)发起的缺失请求;纹理压缩存储L2单元(4)内部数据是按二维方式存储纹素的,即保持DDR中相同的纹素存储方式,L2Cache内部block大小为8192bit,分32组,可以实现16*16的二维方式存储,采用单端口单bank的Cache设计,映射方式为4路组相联方式,首先,当纹理压缩存储L2单元(4)接口服务函数检测到S3TC单元的缺失访问请求时,先锁存缺失请求信息,读取该请求携带的压缩纹素地址分量,与纹理压缩存储L2单元(4)内部Cache的Bank的标示索引TagIndex进行地址命中比较,如果地址命中,则将命中流水线的数据进行组合返回给纹理解压缩单元(3),若请求地址不命中,L2Cache的更新会阻塞后续访问请求,将缺失的二维纹素地址进行线性地址转化成满足AXI总线访问DDR存储区的线性地址,向外部AXI总线发起访问DDR纹理存储区的请求,并循环检测AXI总线的应答请求,直到收到AXI总线的应答后,将请求结果通过与纹理解压缩单元(3)的接口服务函数返回给纹理解压缩单元(3)进行解压缩处理。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国航空工业集团公司西安航空计算技术研究所,未经中国航空工业集团公司西安航空计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201711202135.6/,转载请声明来源钻瓜专利网。