一种图形处理器中纹理缓存的并行寻址方法技术

技术编号:36776169 阅读:54 留言:0更新日期:2023-03-08 22:01
本发明专利技术适用于图形处理器技术领域,提供一种图形处理器中纹理缓存的并行寻址方法,包括:选择待访问纹理显存地址并提取出纹理显存行地址和行内偏移地址;然后对纹理显存行地址和行内偏移地址进行模4运算;然后计算纹理单元的标记并在标记缓存中查找,使用替换算法得到该标记对应的4x4纹理单元块待替换的纹理缓存基地址及对应的标记,以2x2方格对该4x4纹理单元块遍历计算缓存片选和缓存地址,并行写入纹理缓存中进行替换;最后从纹理缓存中并行读取需要的数据进行后续插值运算后给着色器进行纹理贴图。该方法解决图形处理器大数据量纹理数据访问的大延迟问题,提高纹理缓存读写的并行度,解决图形处理器渲染的瓶颈问题,提高渲染性能。渲染性能。渲染性能。

【技术实现步骤摘要】
一种图形处理器中纹理缓存的并行寻址方法


[0001]本专利技术属于图形处理器
,尤其涉及一种图形处理器中纹理缓存的并行寻址方法。

技术介绍

[0002]在图形处理器中,为了表达图形的纹理细节,需要大量的对纹理数据的访问操作。纹理数据由于数据量大,一般存放在片外存储器中,访问延迟较大。在片内设置合适的纹理缓存有助于减少访问片外存储器的次数和延迟时间,从而提高渲染图形的性能。
[0003]由于实际纹理坐标映射到纹理图案后一般多为小数,因此渲染一个像素点经常需要读取水平和垂直相邻的4个纹理数据并进行插值得到实际纹理元素数据。而着色器中需要纹理渲染的片段数量巨大,而纹理缓存的大小受到硬件开销的限制,因此存在大量的纹理缓存的替换和读取操作。
[0004]在片外显存纹理数据到纹理缓存的映射时,可以通过设计一种寻址方法,有效提高纹理缓存读写的并行度,结合片段着色对纹理数据需求的坐标特点,提高纹理缓存的命中率,且降低纹理数据的访问延时,提高图形处理器的渲染性能。

技术实现思路

[0005]鉴于上述问题,本专利技术的目的在于提供一种图形处理器中纹理缓存的并行寻址方法,旨在解决现有图形处理器中纹理缓存寻址方法延时高的技术问题。
[0006]本专利技术采用如下技术方案:
[0007]所述图形处理器中纹理缓存的并行寻址方法包括下述步骤:
[0008]步骤S1、获取待访问纹理显存地址,取相应的lod层值小、左上角的纹理单元为待访问纹理单元,待访问纹理单元对应的纹理显存地址为待访问纹理显存地址,从中提取纹理显存行地址和行内偏移地址;
[0009]步骤S2、对纹理显存行地址和行内偏移地址进行模4运算,结果记为{m_offset,n_offset},所述待访问纹理单元对应到纹理缓存的访问地址为:所述待访问纹理单元所在4x4纹理单元块的纹理缓存基地址+(n_offset>>1)+(m_offset>>1)*2,其中>>表示右移若干位;
[0010]步骤S3、以{mipmap层序号,(纹理显存行地址>>2),(行内偏移地址>>2)}为待访问标记在标记缓存中查找;
[0011]步骤S4、如果在标记缓存中未命中待访问标记,计算得到待替换的4x4纹理单元块纹理缓存基地址及对应的标记;
[0012]步骤S5、根据待访问纹理单元的纹理显存地址计算4x4纹理单元块对应的16个纹理单元显存地址,以2x2方格遍历纹理单元块从显存中遍历读取纹理数据;
[0013]步骤S6、并行对2x2方格的每个纹理单元的纹理显存行地址和行内偏移地址进行模2运算,根据运算结果片选有效相应的纹理缓存;
[0014]步骤S7、将16个纹理单元并行写入四个纹理缓存中进行替换;
[0015]步骤S8、从纹理缓存中并行读取需要的纹理数据进行插值运算后给着色器进行纹理贴图。
[0016]进一步的,步骤S3中,如果在标记缓存中命中待访问标记,则直接进入步骤S8。
[0017]进一步的,步骤S1中,如果需要纹理贴图的片段坐标转化后得到的纹理图案的纹理坐标为非整数,通过纹理坐标的横纵坐标相邻取整和lod层相邻取整后,共有8个纹理单元,从中取lod层值小、左上角的纹理单元为待访问纹理单元。
[0018]进一步的,步骤S2中,4x4纹理单元块的纹理缓存基地址初始值为0,通过替换算法先将纹理缓存填满。
[0019]进一步的,步骤S5中,从16个纹理单元的显存最小地址开始,以2x2的方格,方格从左到右、从上到下的顺序对4x4纹理单元块从显存中遍历读取纹理数据。
[0020]本专利技术的有益效果是:本专利技术利用纹理数据在显存中的地址分布排列以及片段着色对纹理数据需求的坐标特点,通过将纹理显存请求地址进行计算、排序、寻址映射、并行写入和读出,提高纹理缓存的大量数据访问并行度;具体实现时,通过对小数的纹理坐标相邻取整,优先左上角纹理单元标记查找,按照2x2方格从左到右从上到下顺序替换,再根据该左上角纹理单元与4x4纹理单元块相对位置决定是否需要继续对右上角、左下角、右下角纹理单元标记查找替换,这种地址排序寻址映射避免了大量的访问冲突,提高并行度,减少访问延时。
附图说明
[0021]图1是本专利技术实施例提供的图形处理器中纹理缓存的并行寻址方法的流程图;
[0022]图2是本专利技术实施例提供的待着色片段与纹理单元关系图;
[0023]图3是本专利技术实施例提供的显存纹理地址和纹理缓存寻址关系图。
具体实施方式
[0024]为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。
[0025]为了说明本专利技术所述的技术方案,下面通过具体实施例来进行说明。
[0026]图1示出了本专利技术实施例提供的图形处理器中纹理缓存的并行寻址方法的流程,为了便于说明仅示出了与本专利技术实施例相关的部分。
[0027]如图1所示,本实施例提供的图形处理器中纹理缓存的并行寻址方法包括下述步骤:
[0028]步骤S1、获取待访问纹理显存地址,取相应的lod层值小、左上角的纹理单元为待访问纹理单元,待访问纹理单元对应的纹理显存地址为待访问纹理显存地址,从中提取纹理显存行地址和行内偏移地址。
[0029]对于需要纹理贴图的片段坐标,先进行转换,一般得到相邻2个lod层的mipmap纹理图案中的纹理坐标,分别记为(s0,t0)、(s1,t1)。如果s0、t0、s1、t1为非整数时,如图2所示,表明了待着色片段与纹理单元关系。需要对采样相邻位置的纹理坐标。具体通过纹理坐
标的横纵坐标相邻取整和lod层相邻取整后,共有8个纹理单元。图2中,待着色片段坐标位置为图示实心圆,待着色片段坐标为非整数,取相邻的四个纹理单元,即图示中空心圆。两个相邻的lod层共有8个相邻的纹理单元,纹理坐标分别为(s00,t00)、(s01,t01)、(s02,t02)、(s03,t03)、(s10,t10)、(s11,t11)、(s12,t12)、(s13,s13)。取8个纹理单元中lod值较小,位于左上角的纹理单元为待访问纹理单元。待访问纹理单元对应的纹理显存地址为待访问纹理显存地址。
[0030]当然如果lod值、纹理坐标的横坐标、纵坐标等中有一项或多项为整数,相应取整后可能只有4个、2个或1个相邻的纹理单元。
[0031]待访问纹理单元显存地址可表示为{基地址,纹理行地址,行内偏移地址}。
[0032]步骤S2、对纹理显存行地址和行内偏移地址进行模4运算,结果记为{m_offset,n_offset},所述待访问纹理单元对应到纹理缓存的访问地址为:所述待访问纹理单元所在4x4纹理单元块的纹理缓存基地址+(n_off本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种图形处理器中纹理缓存的并行寻址方法,其特征在于,所述并行寻址方法包括下述步骤:步骤S1、获取待访问纹理显存地址,取相应的lod层值小、左上角的纹理单元为待访问纹理单元,待访问纹理单元对应的纹理显存地址为待访问纹理显存地址,从中提取纹理显存行地址和行内偏移地址;步骤S2、对纹理显存行地址和行内偏移地址进行模4运算,结果记为{m_offset,n_offset},所述待访问纹理单元对应到纹理缓存的访问地址为:所述待访问纹理单元所在4x4纹理单元块的纹理缓存基地址+(n_offset>>1)+(m_offset>>1)*2,其中>>表示右移若干位;步骤S3、以{mipmap层序号,(纹理显存行地址>>2),(行内偏移地址>>2)}为待访问标记在标记缓存中查找;步骤S4、如果在标记缓存中未命中待访问标记,计算得到待替换的4x4纹理单元块纹理缓存基地址及对应的标记;步骤S5、根据待访问纹理单元的纹理显存地址计算4x4纹理单元块对应的16个纹理单元显存地址,以2x2方格遍历纹理单元块从显存中遍历读取纹理数据;步骤S6、并行对2x2方格的每个纹理单元的纹理显存行地址和行内偏移地址进行模2运算,根据运算结果片选有效相应的纹理缓存;步骤S...

【专利技术属性】
技术研发人员:张祥程诚秦信刚熊庭刚
申请(专利权)人:武汉凌久微电子有限公司
类型:发明
国别省市:

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

1