CN116563444A - 一种纹理映射硬件加速的方法及装置 - Google Patents
一种纹理映射硬件加速的方法及装置 Download PDFInfo
- Publication number
- CN116563444A CN116563444A CN202310284037.0A CN202310284037A CN116563444A CN 116563444 A CN116563444 A CN 116563444A CN 202310284037 A CN202310284037 A CN 202310284037A CN 116563444 A CN116563444 A CN 116563444A
- Authority
- CN
- China
- Prior art keywords
- address
- texture
- data
- matching
- matched
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000013507 mapping Methods 0.000 title claims abstract description 68
- 238000000034 method Methods 0.000 title claims abstract description 38
- 230000015654 memory Effects 0.000 claims abstract description 49
- 230000001133 acceleration Effects 0.000 claims abstract description 23
- 239000000872 buffer Substances 0.000 claims description 22
- 238000004364 calculation method Methods 0.000 claims description 6
- 238000013500 data storage Methods 0.000 claims description 5
- 230000006870 function Effects 0.000 claims description 4
- 230000004044 response Effects 0.000 claims description 3
- 230000003139 buffering effect Effects 0.000 claims description 2
- 230000003068 static effect Effects 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000001914 filtration Methods 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 101100129500 Caenorhabditis elegans max-2 gene Proteins 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/28—Indexing scheme for image data processing or generation, in general involving image processing hardware
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Image Generation (AREA)
Abstract
为了进一步提高纹理映射的质量以及解决动态随机存储器带宽消耗较大和数据效率的瓶颈,本发明提供了一种纹理映射硬件加速的方法及装置,对按输出像素纹理映射到纹理像素点的方法进行改进,将双线性插值替换为双立方插值,将静态存储器设计为类多路组相联高速缓冲存储器(cache),既能根据不同的应用场景设置不同的cache层数减少存储器资源的消耗,也能有效地减少冗余带宽。本发明能够按所需纹理映射场景灵活配置纹理高速缓冲存储器层次大小,通过双立方插值来实现对纹理映射的硬件加速,适用于各种不同类型的三维图形系统。
Description
技术领域
本发明涉及计算机图形学领域,尤其涉及一种针对纹理映射使用硬件加速的方法以及实现这种方法的装置。
背景技术
纹理映射是计算机图形学引入的一个概念,目的是为了在某些所需场景中提供高度视觉真实感,在这些场景中,例如只提供视觉上下文的游戏背景,用逼真的效果绘制绘图元素可能是一项不太必要的任务,在这些情况下,可以使用代表元素的图像片段来营造该元素看起来被绘制到场景中的错觉,这种技术的简单性和流行性得到了图像软件开发人员和图形硬件制造商的青睐。
纹理映射定义为一种点与点之间改变表面属性的方法,以便提供实际不存在于表面几何形状中的表面细节外观。纹理映射使用纹理坐标在纹理映射中查找一个或多个纹素(texel)值,通过对纹素值进行插值计算得到映射后的像素值,以作更新片段使用。更新方式由当前的纹理环境模式决定,根据不同的滤波方式,纹理贴图操作消耗的内存空间和计算量不同。在纹理过滤中,查找模式不规则,必须分别计算样本,这将使得重建滤波器异常昂贵,通常使用于纹理映射的滤波器为双线性插值,在许多系统中从纹理数据中获取四个纹素值会存在内存和时间延迟的瓶颈。
发明内容
本发明的目的在于克服上述现有技术的不足,提供一种纹理映射硬件加速的方法及装置,以更好地减少现有纹理映射存在较大冗余带宽的问题
为实现上述目的,本发明的技术方案是:
第一方面,本发明提供一种纹理映射硬件加速的方法,包括:
通过纹理坐标函数依次计算输出坐标每一个点纹理映射到纹理图像的坐标,得到纹理映射后的插值坐标;
纹理映射后的插值坐标均先与纹理高速缓冲存储器的地址标签进行匹配,对匹配有效的坐标,从所匹配的纹理高速缓冲存储器中取出对应数据,对未匹配或匹配无效的坐标,从动态随机存储器中取回对应数据,同时将取回的数据存放到对应更新地址标签的纹理高速缓冲存储器,最后输出十六邻点纹理像素数据计算插值后的像素点。
因而可知,通过二维图像到三维图像的纹理映射关系,将纹理坐标插值所需的纹理像素从随机动态存储器中取出存放在纹理高速缓冲存储器中;若纹理坐标插值点与纹理高速缓冲存储器中存放的地址相匹配,可实现仅在一个周期内访问执行双立方插值所需要的十六个纹理像素,以此实现硬件加速纹理映射。
进一步地,所述匹配分为两级,包括多层组间对齐地址的匹配和组内偏移地址的匹配,外层和组内均设有有效标志位,表示该地址对应的读数据命令已发送至动态随机存储器,邻近点相匹配的条件为两个标志位均有效。
因而可知,采用分级的匹配方式能有效地减少纹理高速缓冲存储器的层数开销,提高了每层存储器的利用率。
进一步地,采用最近最少使用的方式对纹理高速缓冲存储器的地址标签进行更新,为每个地址标签设置一个计数器;
针对不同的匹配情况通过调整计数器的大小,判断存储器的地址标签更新情况。
进一步地,所述针对不同的匹配情况通过调整计数器的大小,判断存储器的地址标签更新情况包括:
对外层和组内地址均匹配且有效的情况,取对应地址标签的计数器值,比该值大的地址标签所对应的计数器值均减一,比该值小的计数器值保持不变,再将该计数器的值设置为最大;
对外层未能匹配或匹配到且无效的情况,取当前计数器为零的地址标签,其余计数器值均减一,将该计数器值设置为最大,再将该地址发送至动态随机存储器,若该命令有效发送,则将该地址标签更新为当前未匹配到的地址,以及对应的外层和组内的标志位置为有效;
对外层地址匹配且有效、组内未匹配的情况,计数器值的调整方法与外层和组内地址均匹配且有效情况一致,此外还需将对应未匹配的地址发送至动态随机存储器,若该命令有效发送,并将对应地址标签的组内标志位置为有效。
因而可知,通过对每层地址标签计数器的更新,能实现每次更新未匹配到的地址标签时均为最近一段时间最不常用的值,有效地提高了纹理高速缓冲存储器的更新效率。
进一步地,当需要将未匹配到的地址发送至动态随机存储器时,需判断是否能正常发送,对应一套数据命令判断条件,用先进先出的数据缓存器存放从动态随机存储器取回的数据,计算命令和数据的实时深度,若小于该缓存器的深度,则正常发送读命令至动态随机存储器。
进一步地,所述匹配情况均由数值比较器进行比较当前各邻点对齐后的地址与纹理高速缓冲存储器的地址标签,地址标签的个数视不同的纹理映射复杂度情况而定。
进一步地,所述纹理高速缓冲存储器均为类多路组相联高速缓冲存储器,其地址映射方式为:组间采用全相联映射,组内采用直接映射方式。
第二方面,本发明提供一种纹理映射硬件加速处理装置,包括:
计算单元,用于计算输出图像坐标点通过纹理映射和双立方插值,得到十六个插值纹理坐标点,并对这些插值邻近点作对齐处理;
匹配单元,用于将对齐处理后的邻近点坐标,同时与纹理高速缓冲存储器内的地址标签进行匹配,分为外层和组内匹配;
更新单元,用于针对不同的匹配情况,更新不同地址标签的计数器的值,在同一个周期处理十六个纹理坐标插值邻点的匹配情况,进行地址标签更新,并按未匹配到的地址信息从动态随机存储器中取回对应的数据,更新至对应地址标签的纹理高速缓冲存储器中;
输出单元,用于输出图像像素点的数据;所述图像像素点的数据通过如下方式计算得到:每个地址标签对应不同的纹理高速缓冲存储器单元,获取邻近点的匹配信息,从对应地址标签的纹理高速缓冲存储器中,得到邻近点的数据,插值计算得到输出图像像素点的数据。
因此可见,匹配单元的地址标签个数与类多路组相联高速缓冲存储器单元的层数相一致,可适配不同复杂度的纹理映射。上述所提及的纹理高速缓冲存储器均为类多路组相联高速缓冲存储器,其地址映射方式为:组间采用全相联映射,组内采用直接映射方式。
进一步地,所述的纹理映射硬件加速处理装置还包括:
匹配情况存储单元,用于记录匹配到或未匹配到更新的地址标签以及偏移地址的信息;
地址命令存储单元,用于缓存总线响应不及时未匹配到的数据请求命令;
未匹配数据存储单元,用于暂存从随机动态存储器取回来的未匹配到的数据;
所述匹配情况存储单元、地址命令存储单元、未匹配数据存储单元均为先进先出的数据缓存器。
进一步地,所述纹理高速缓冲存储器为类多路组相联高速缓冲存储器,其地址映射方式为:组间采用全相联映射,组内采用直接映射方式。
本发明与现有技术相比,其有益效果在于:
为了进一步提高纹理映射的质量以及解决动态随机存储器带宽消耗较大和数据效率的瓶颈,本发明对按输出像素纹理映射到纹理像素点的方法进行改进,将双线性插值替换为双立方插值,将静态存储器设计为类多路组相联高速缓冲存储器(cache),既能根据不同的应用场景设置不同的cache层数减少存储器资源的消耗,也能有效地减少冗余带宽。
附图说明
图1为本发明纹理映射硬件加速的方法实施例提供的流程示意图;
图2为本发明请纹理映射硬件加速的方法实施例提供的十六邻点等效计算方法;
图3为本发明请纹理映射硬件加速的方法实施例提供的LRU更新方法一;
图4为本发明请纹理映射硬件加速的方法实施例提供的LRU更新方法二;
图5为本发明请纹理映射硬件加速的装置实施例提供的结构示意图。
具体实施方式
实施例:
下面结合附图和实施例对本发明的技术方案做进一步的说明。
本实施例提供的纹理映射硬件加速的方法总体概述为:在图像覆盖区域小于纹理像素时,对纹理映射硬件加速处理,首先通过纹理坐标函数(TextureCoordinateFunctions)依次计算输出坐标每一个点纹理映射到纹理图像的坐标,为了提升插值图像的质量,将一般采用的双线性插值替换为双立方插值,纹理映射后的插值坐标均先与类多路组相联高速缓冲存储器的地址标签进行匹配,对匹配有效的坐标,从所匹配的高速缓冲存储器中取出对应数据,对未匹配或匹配无效的坐标,从动态随机存储器中取回对应数据,同时采用最近最少使用算法更新地址标签,将取回的数据存放到对应更新地址标签的高速缓冲存储器中,最后输出十六邻点纹理像素数据计算插值后的像素点。类多路组相联高速缓冲存储器设定为组内有八个cacheline,每个大小为32bytes,本申请所述的纹理高速缓冲存储器均为多路组相联高速缓冲存储器的简称。
具体地,如图1,首先执行步骤S101,按双立方插值计算该纹理矢量坐标对应等效坐标的十六个邻点,并对十六邻点进行对齐操作,横坐标按照32对齐,纵坐标按照4对齐,得到十六个对齐的邻点,优化后得到4个等效邻点值。具体方法如下:取中心点的坐标为(u,v),十六个邻点的坐标如图2a所示,设定横纵坐标位宽为12比特,横坐标32对齐,对于插值的4个横坐标来说u和u+1均会归属于u-1或u+2在32对齐之后的值,如图2b所示,约化为8个横坐标对齐点,再对这些点按照纵坐标4对齐,与横坐标类似,得到图2c的四个等效对齐邻点值,用来与纹理高速缓冲存储器的地址标签进行匹配。
在上述步骤中纹理坐标点的十六个邻点,若横纵坐标有超过图像宽高边界,将其值赋值为最接近未超出边界的值处理,比如中心点为(0,0)且图像宽高均大于2,则坐标点包含(u-1)和(v-1)的值赋为0,其余的值保持正常的运算逻辑。
接下来执行步骤S102,将四个等效对齐点与纹理高速缓冲存储器的外层地址标签进行匹配,步骤S103需要确定匹配情况,若四个点均有与之相匹配的地址且代表该地址存在的比特位为有效状态,则进行步骤S106,若四个点均不匹配或仅有部分匹配cache外层的有效地址,则执行步骤S105,记录未匹配到的外层地址以及组内对应的地址位置。
其中对于cache外层地址的更新,将每一次邻点未能匹配的地址写入cache的外层地址标签,并使用1bit位置表示该地址是否存在,由于cache的层数有限,总会存在需更新未能匹配地址进cache时,cache每层地址均有效,此时需要将某一层的地址更新为当前未匹配到的地址,引入LRU(LeastRecentlyUsed),即最近最少使用方式来更新所需要的地址标签。
执行步骤S106,比较内层offset地址与cache对应层地址组内信息,考虑步骤S107需确定匹配情况,若四个等效点所对应的内层地址均能在对应cache层中有效存在,则进行步骤S110,若四个邻点所对应的内层地址只有部分能在对应的cache层中找到,那么执行步骤S109,记录组内未能匹配到的cache层地址标签。
综合分析S105和S109的信息,对单独某一对齐地址的更新方式分为两类三种情况,一类为外层地址未匹配,另一类为外层地址相匹配下组内地址匹配或未匹配的情况。除去外层地址与组内地址均匹配的情况外,另外两种均需从动态随机存储器中取回对应的数据组块。对外层和组内未能匹配到的地址进行LRU更新。
具体更新方法如下:对外层地址标签均放置一个计数器,初始化寄存器的数值为对应地址标签排序的值,当更新外层地址未匹配的情况时,取计数器为零的地址标签进行更新为未匹配的外层地址值,并将该地址标签所对应的计数器的值设为最大,剩下的计数器数值均减一,且将表示该外层地址值以及对应组内地址有效的比特位置1;当更新外层地址匹配的情况时,先确认匹配到外层地址对应的地址标签的计数器,将比该计数器大的计数器值均减一,比该计数器小的计数器值保持不变,再将该计数器的值置为最大,对组内地址已匹配的情况保持不变,对组内未能匹配的,将组内该地址有效的比特位置1。
进一步对于四个等效点插值,需要同时对四个点进行匹配以及更新,每个点会存在三种匹配情况。情况A:该点与外层地址标签不匹配;情况B:该点与外层地址标签匹配且组内地址不匹配;情况C:该点与外层地址标签匹配且组内地址也匹配。对这四个点的匹配排列组合能得到81(3^4)种可能的匹配情况,显然单纯的排列这81种情况会很大程度地增加硬件电路结构的复杂度,因此现提出两种针对十六邻点插值匹配的更新方法。
如图3,方法一是执行步骤S301调整对齐后四个等效点的排列顺序,按照匹配情况C-B-A进行排序,并记录各点对应原始的排列分布。然后进行步骤S302,首先对情况C进行处理,C出现的个数有0-4五种可能,确定情况C出现的个数和其对应的计数器的大小。遍历所有计数器的值,比较这些计数器的值与所有情况C对应的计数器值的大小,比其大则计数器的值均减一,情况C对应的计数器的值按照C出现的个数赋值为最大值以及最大值递减。简单地如情况C出现的个数为3,那么除去这三种情况C的计数器,遍历所有计数器的值与这三个计数器的值进行比较,若比这三个值都大,那么该计数器的值减三,若比其中两个值大则减2,若只比其中一个大则减1,若均小于这三个计数器则保持不变。对匹配到的三个计数器,按先后顺序赋值为最大值MAX,MAX-1,MAX-2,最大值为对应cache的层数值减一,即MAX为31。然后进行步骤S303对情况B处理,同理B也有五种可能,依次进行计数器的更新,遍历所有寄存器,将比当前情况B对应的计数器值大的计数器值减一,再将情况B对应计数器的值置为最大值,并将未匹配到的组内地址记录发送至总线以及更新地址标签里组内地址有效位为1。最后进行步骤S304处理情况A,取得当前时刻计数器为0的地址标签更新匹配情况A,将该地址标签的内容更新为情况A所对应的外层地址以及将外层地址有效和对应内层地址有效比特位置1,同时发送对应地址至总线。
如图3,方法二为执行步骤S401按照对齐后四个等效点的固定顺序去处理计数器以及地址标签的更新。再进行步骤S402分析匹配情况为外层地址匹配即情况B和C,预先处理这两类对应的计数器,即先处理全部外层地址匹配到且有效的情况,相似地出现该情况的个数一样为0-4五种可能,统计B和C出现的个数以及对应计数器的大小,遍历所有计数器的值,将这些计数器的值与出现B和C情况的计数器值比较大小,比任一B和C情况值大的计数器均需减一,出现B和C情况的寄存器值按照先后顺序赋值为最大值以及最大值递减。举例说明若四等效邻点的匹配情况排列顺序为BACA,则统计到B和C出现情况为两次,记录第一个点B情况和第三个点C情况对应计数器的值,遍历所有计数器与这两个值相比较,均大于这两个值的计数器值减二,仅比其中一个值大的计数器值减一,均小于这两个值的计数器的值保持不变,接着将第一个点B情况对应的计数器赋值为31,将第三个点C情况对应的计数器赋值为30。其次再进行步骤S403按顺序处理需要更新地址标签的匹配情况A和B,判断当前情况是否为匹配情况A,若是,则执行步骤S404,同方法一中步骤S304一致,若当前不是情况A,则执行步骤S405,匹配情况为C则跳过,为B则更新对应的组内地址标签有效值,不再更新计数器的值,进行步骤S404或S405之后均进行步骤S406,判断当前匹配序列是否已经完成,若未完成则继续执行S403判断当前的匹配情况,若完成则结束当前四个等效点的匹配更新。
特别地,由于考虑到双立方插值的十六邻点与纹理高速缓冲存储器的地址标签相匹配,若每一个邻点逐一进行匹配,将会对比较器的个数有很大的消耗,会增加较多的硬件面积,因此在上述方案运用了等效点的处理方法,外层地址匹配均为邻点对齐后的地址匹配,图2c四个等效点中的左上和右上两个点,若横坐标对齐后的值一致,则两个等效坐标点相同,同理左上和左下两个点,若纵坐标对齐后一致,则两个等效坐标点也相同。在上述对四个等效插值点匹配时会出现三种情况,第一种为四个点均不一样,分属于不同的对齐坐标;第二种为两个点分别相同,即横坐标等效点或纵坐标等效点两者有一个相同;第三种为四个点均相同,即四个等效点的横纵坐标均相同。对于等效点相同的情况,在与cache的地址标签进行匹配时可以将相同的值屏蔽,只对不同的等效点进行比较。涉及到组内地址匹配时,需注意到组内有8个cacheline,在等效对齐处理邻点时,记录这些点的offset信息,将外层匹配的等效点对应的offset信息与地址标签组内有效信息进行比较,需要offset包含的所有的点在对应的地址标签组内均有效存在,才能判定为组内地址均匹配,若offset中的点未有效存在,需记录这些点所对应的地址。
图3不同的处理方法对应的电路逻辑复杂度有不同的要求,通过LRU更新方法执行步骤S108,得到更新后的存储块的位置标签S104,去与下一个四邻点执行S103匹配对比,另从匹配情况A和B得到未匹配的地址信息发送到动态随机存储器取回图像信息并存入对应的存储块,对应步骤S111。
进一步地,在发送地址信息至动态随机存储器的过程中,先将发送读数据请求的命令存入地址命令缓存器中,缓存器类型为先进先出缓存器,以减少总线带宽紧张带来的冲击。在读数据接收处设也有一个先进先出的未匹配数据缓存器,暂存从动态随机存储器取回的图像数据,该缓存器的位宽为16byte。读数据命令的发送与否,需考虑未匹配数据缓存器的空满状态,设置一个数据命令深度寄存器,每发送一笔命令到地址命令缓存器中,寄存器值加二,未匹配数据缓存器每写入一笔数据,寄存器的值减一,当该寄存器的值小于未匹配数据缓存器的深度减一时,能正常向地址命令缓存器中写入命令,否则停止当前邻点与cache地址标签的匹配。
在匹配过程中会有记录对应匹配到cache的地址标签和尚未匹配到需从动态随机存储器取回并更新的地址标签,以及对应的等效点的offset信息,将这些信息暂存至先进先出的匹配情况缓存器中。
最后执行步骤S112将等效四邻点的匹配信息与存储块内的地址位置相对应,以及执行步骤S113,通过从匹配情况缓存器中取出外层及组内的地址标签,若当前点有与之匹配的cache line,则从对应的cache中取出,若无则从未匹配数据缓存器中将对应的数据依次取出,并将该数据按照对应的外层及组内的标签存放至相应的cacheline中。
相应地,本实施例还提供了一种纹理映射硬件加速装置,如图5所示,为纹理映射硬件加速方法装置的示意性结构图,所述装置包括计算单元500、匹配单元501、地址命令储存单元502、随机动态存储器503、匹配信息存储单元504、更新单元505、高速缓冲器单元506、未匹配数据存储单元507、输出单元508。
计算单元500,用于计算输出图像坐标通过纹理映射函数得到原图对应的纹理坐标,并按照双立方插值,计算出等效的十六邻点坐标。
匹配单元501和更新单元505,为整个装置的核心组成部分,匹配单元用于匹配等效十六邻点坐标与类多路组相联cache的地址标签,分为外层地址匹配和组内有效地址匹配两部分,需同时对多个邻点进行匹配,对于外层未能匹配和外层匹配组内非有效的地址发送至地址命令存储单元502,更新单元更新未匹配到的外层和组内地址标签,并将更新完的地址标签送至匹配单元进行下一个十六邻点的匹配,同时将已匹配到的地址标签和未匹配需更新的地址标签,以及十六邻点的offset信息存放至匹配信息存储单元504。
地址命令储存单元502,缓存未匹配的地址命令,在地址命令写入该先进先出地址命令缓存器前,需判断数据命令的关系,计算命令和数据的实时深度,只有当该值小于未匹配数据缓存器的深度,才可以将读命令写入地址命令缓冲器。当地址命令缓存器非空状态下,将命令请求发往随机动态存储器503,待总线响应后对应的数据发回未匹配数据存储单元507。
高速缓冲器单元506用于存储类多路组相联高速缓冲存储器的数据,通过匹配信息存储单元读取出来的地址标签信息,将未匹配到的数据从缓存单元中同步到高速缓冲器中。
输出单元508通过匹配信息存储单元,判断当前十六邻点的数据来源,将匹配到的数据从高速缓冲器中取出,并将未匹配到的数据从未匹配数据缓冲器中取出,同步输出至后续处理单元。
本发明中,通过对纹理映射进行硬件加速,用类多路组间相联高速缓冲存储器的存储方式消除冗余数据的方法,可以减少按行存储时对静态存储器资源的消耗以及按块存储时相邻块较为离散时浪费动态随机存储器带宽的情况,且存储器可以针对不同的应用场景,按需灵活配置不同层数和组的大小,可以有效节省硬件电路的面积,通过两种可配的LRU更新方式进行cache存储块的数据更新,相较于常用的先进先出的更新方式,能更好地节省带宽的占用。
上述实施例只是为了说明本发明的技术构思及特点,其目的是在于让本领域内的普通技术人员能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡是根据本发明内容的实质所做出的等效的变化或修饰,都应涵盖在本发明的保护范围内。
Claims (10)
1.一种纹理映射硬件加速的方法,其特征在于,包括:
通过纹理坐标函数依次计算输出坐标每一个点纹理映射到纹理图像的坐标,得到纹理映射后的插值坐标;
纹理映射后的插值坐标均先与纹理高速缓冲存储器的地址标签进行匹配,对匹配有效的坐标,从所匹配的纹理高速缓冲存储器中取出对应数据,对未匹配或匹配无效的坐标,从动态随机存储器中取回对应数据,同时将取回的数据存放到对应更新地址标签的纹理高速缓冲存储器,最后输出十六邻点纹理像素数据计算插值后的像素点。
2.如权利要求1所述的纹理映射硬件加速的方法,其特征在于:
所述匹配分为两级,包括多层组间对齐地址的匹配和组内偏移地址的匹配,外层和组内均设有有效标志位,表示该地址对应的读数据命令已发送至动态随机存储器,邻近点相匹配的条件为两个标志位均有效。
3.如权利要求2所述的纹理映射硬件加速的方法,其特征在于:
采用最近最少使用的方式对纹理高速缓冲存储器的地址标签进行更新,为每个地址标签设置一个计数器;
针对不同的匹配情况通过调整计数器的大小,判断存储器的地址标签更新情况。
4.如权利要求3所述的纹理映射硬件加速的方法,其特征在于:
所述针对不同的匹配情况通过调整计数器的大小,判断存储器的地址标签更新情况包括:
对外层和组内地址均匹配且有效的情况,取对应地址标签的计数器值,比该值大的地址标签所对应的计数器值均减一,比该值小的计数器值保持不变,再将该计数器的值设置为最大;
对外层未能匹配或匹配到且无效的情况,取当前计数器为零的地址标签,其余计数器值均减一,将该计数器值设置为最大,再将该地址发送至动态随机存储器,若该命令有效发送,则将该地址标签更新为当前未匹配到的地址,以及对应的外层和组内的标志位置为有效;
对外层地址匹配且有效、组内未匹配的情况,计数器值的调整方法与外层和组内地址均匹配且有效情况一致,此外还需将对应未匹配的地址发送至动态随机存储器,若该命令有效发送,并将对应地址标签的组内标志位置为有效。
5.如权利要求4所述的纹理映射硬件加速的方法,其特征在于:
当需要将未匹配到的地址发送至动态随机存储器时,需判断是否能正常发送,对应一套数据命令判断条件,用先进先出的数据缓存器存放从动态随机存储器取回的数据,计算命令和数据的实时深度,若小于该缓存器的深度,则正常发送读命令至动态随机存储器。
6.如权利要求1-5任一所述的纹理映射硬件加速的方法,其特征在于:
所述纹理高速缓冲存储器均为类多路组相联高速缓冲存储器,其地址映射方式为:组间采用全相联映射,组内采用直接映射方式。
7.一种纹理映射硬件加速处理装置,其特征在于,包括:
计算单元,用于计算输出图像坐标点通过纹理映射和双立方插值,得到十六个插值纹理坐标点,并对这些插值邻近点作对齐处理;
匹配单元,用于将对齐处理后的邻近点坐标,同时与纹理高速缓冲存储器内的地址标签进行匹配,分为外层和组内匹配;
更新单元,用于针对不同的匹配情况,更新不同地址标签的计数器的值,在同一个周期处理十六个纹理坐标插值邻点的匹配情况,进行地址标签更新,并按未匹配到的地址信息从动态随机存储器中取回对应的数据,更新至对应地址标签的纹理高速缓冲存储器中;
输出单元,用于输出图像像素点的数据;所述图像像素点的数据通过如下方式计算得到:每个地址标签对应不同的纹理高速缓冲存储器单元,获取邻近点的匹配信息,从对应地址标签的纹理高速缓冲存储器中,得到邻近点的数据,插值计算得到输出图像像素点的数据。
8.如权利要求7所述的纹理映射硬件加速处理装置,其特征在于,还包括:
匹配情况存储单元,用于记录匹配到或未匹配到更新的地址标签以及偏移地址的信息;
地址命令存储单元,用于缓存总线响应不及时未匹配到的数据请求命令;
未匹配数据存储单元,用于暂存从随机动态存储器取回来的未匹配到的数据。
9.如权利要求8所述的纹理映射硬件加速处理装置,其特征在于,所述匹配情况存储单元、地址命令存储单元、未匹配数据存储单元均为先进先出的数据缓存器。
10.如权利要求7所述的纹理映射硬件加速处理装置,其特征在于,所述纹理高速缓冲存储器为类多路组相联高速缓冲存储器,其地址映射方式为:组间采用全相联映射,组内采用直接映射方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310284037.0A CN116563444A (zh) | 2023-03-22 | 2023-03-22 | 一种纹理映射硬件加速的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310284037.0A CN116563444A (zh) | 2023-03-22 | 2023-03-22 | 一种纹理映射硬件加速的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116563444A true CN116563444A (zh) | 2023-08-08 |
Family
ID=87486863
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310284037.0A Pending CN116563444A (zh) | 2023-03-22 | 2023-03-22 | 一种纹理映射硬件加速的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116563444A (zh) |
-
2023
- 2023-03-22 CN CN202310284037.0A patent/CN116563444A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10055810B2 (en) | Cache architecture for efficiently accessing texture data using buffers | |
US6630933B1 (en) | Method and apparatus for compression and decompression of Z data | |
US6629188B1 (en) | Circuit and method for prefetching data for a texture cache | |
US8089486B2 (en) | Tiled prefetched and cached depth buffer | |
US6426753B1 (en) | Cache memory for high latency and out-of-order return of texture data | |
US7944441B2 (en) | Compression and decompression of data using plane equations | |
US7999819B2 (en) | Systems and methods for managing texture descriptors in a shared texture engine | |
US7027063B1 (en) | Texture cache addressing | |
US8766995B2 (en) | Graphics system with configurable caches | |
US7737985B2 (en) | Pixel cache for 3D graphics circuitry | |
US8760460B1 (en) | Hardware-managed virtual buffers using a shared memory for load distribution | |
US7315301B1 (en) | Computer graphics processing system, computer memory, and method of use with computer graphics processing system utilizing hierarchical image depth buffer | |
EP2380139A1 (en) | Display list control stream grouping in tile based 3d computer graphics system | |
US7348988B2 (en) | Texture cache control using an adaptive missing data table in a multiple cache computer graphics environment | |
GB2474115A (en) | Controlling the Reading of Arrays of Data from Memory | |
EP2113103B1 (en) | Dynamic configurable texture cache for multi-texturing | |
US6889289B2 (en) | Method of distributed caching | |
EP1721298A2 (en) | Embedded system with 3d graphics core and local pixel buffer | |
CN108377394A (zh) | 视频编码器的图像数据读取方法、计算机装置及计算机可读存储介质 | |
US7053904B1 (en) | Position conflict detection and avoidance in a programmable graphics processor | |
KR20030005253A (ko) | 타일형 그래픽스 아키텍쳐 | |
CN112734897A (zh) | 一种图元光栅化触发的图形处理器深度数据预取方法 | |
CN116563444A (zh) | 一种纹理映射硬件加速的方法及装置 | |
US6448967B1 (en) | Z-Buffer pre-test for 3D graphics performance enhancement | |
KR101022282B1 (ko) | 3차원 그래픽 가속 장치 및 3차원 그래픽 가속 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |