CN109118422A - 一种嵌入式移动图形处理器的纹理Cache及处理方法 - Google Patents

一种嵌入式移动图形处理器的纹理Cache及处理方法 Download PDF

Info

Publication number
CN109118422A
CN109118422A CN201810753593.7A CN201810753593A CN109118422A CN 109118422 A CN109118422 A CN 109118422A CN 201810753593 A CN201810753593 A CN 201810753593A CN 109118422 A CN109118422 A CN 109118422A
Authority
CN
China
Prior art keywords
hit
cache
texture
address
graphics processor
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.)
Granted
Application number
CN201810753593.7A
Other languages
English (en)
Other versions
CN109118422B (zh
Inventor
蒋林
韩孟桥
杨博文
山蕊
田汝佳
耿玉荣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xian University of Science and Technology
Original Assignee
Xian University of Science and Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xian University of Science and Technology filed Critical Xian University of Science and Technology
Priority to CN201810753593.7A priority Critical patent/CN109118422B/zh
Publication of CN109118422A publication Critical patent/CN109118422A/zh
Application granted granted Critical
Publication of CN109118422B publication Critical patent/CN109118422B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明属于移动图形处理芯片设计技术领域,公开了一种嵌入式移动图形处理器的纹理Cache及处理方法,计算出d值后,在d上下两个层级不同分辨率的纹理中分别提取4个纹理坐标进行双线性滤波,然后再对结果进行加权;嵌入式移动图形处理器的纹理Cache包括:lut查找电路U0,地址判断电路U1,标记位比较电路U2,lru替换电路U3,先进先出(FIFO)控制电路U4,输出电路U5。本发明具体提供一种用于移动图形处理器的、基于查找表的、可用于三线性滤波的电路结构;保证了纹理单元效率、提高命中率有效降低存储功耗。

Description

一种嵌入式移动图形处理器的纹理Cache及处理方法
技术领域
本发明属于移动图形处理芯片设计技术领域,尤其涉及一种嵌入式移动图形处理器的纹理Cache及处理方法。还涉及一种纹理Cache的设计架构,具体涉及一种用于移动图形处理器的、基于查找表的、可用于三线性滤波的电路结构。
背景技术
目前,业内常用的现有技术是这样的:
从商业应用及自主知识产权等角度看移动图形处理器的研究都势在必行,其中纹理处理单元在像素渲染中扮演者至关重要的作用,而纹理Cache架构的设计对于纹理处理单元,乃至于移动图形处理器的整体性能方面都会造成影响。在纹理Cache设计过程中,需要考虑到命中率、吞吐率、功耗带宽等问题。目前有得技术用到了预存模块,提前将外存中的纹素读入纹理Cache内的buffer中,在读不命中的情况下,可以直接从内部buffer中读取纹素,显著提高了存储系统零延迟率;
综上所述,现有技术存在的问题是:
(1)现有技术,移动图形处理器纹理单元的处理效率低,在处理速度与功耗带宽相互制约中,不能提高命中率、不能提供吞吐率符合要求的纹理Cache。
(2)如果外存的请求速率和延迟比所使用的Cache大,预存块过早放入到Cache中的预存ram中会导致冲突,并造成不命中,为了解决此问题,需要将buffer写满再进行Cache的读操作及更新。
解决上述技术问题的难度和意义:
因为起始时buffer里没有任何数据,所以需要按读取顺序先写入部分不命中数据在buffer中。当后续不命中时,可以从data_ram和buffer的第一行(不命中数据依次按顺序向后排列)中直接一拍读取或直接从buffer中一拍读取,相比于之前需要将容量较大的buffer全部先写满,节省了时间。但需要提高标记检测速率,并建立容量小的buffer用于存放读data_ram的地址数据。
发明内容
针对现有技术存在的问题,本发明提供了一种嵌入式移动图形处理器的纹理Cache及处理方法。本发明提供的一种嵌入式移动图形处理器的纹理Cache保证了纹理单元效率、提高命中率有效降低存储功耗,嵌入式移动图形处理器的纹理Cache为一种片上缓冲存储器。
在资源允许的情况下,可以适当增加ram的大小,扩展存储行的容量,可以提高纹理Cache的命中率;可以适当扩大组相联的路数,例如8路组相联,提高tag标记位检测速率,进而加速fifo缓冲区中未命中数据的写入。
本发明是这样实现的,一种嵌入式移动图形处理器的纹理Cache的处理方法,所述嵌入式移动图形处理器的纹理Cache的处理方法包括:
计算出d值后,在d上下两个层级不同分辨率的纹理中分别提取4个纹理坐标进行双线性滤波,然后再对结果进行加权。通过输入的读请求地址得出该纹素所处的层级数,并根据其基地址在地址判断电路该中计算出另外3个纹素的偏移地址,把4个纹素的地址在标记位比较电路中进行命中判断。如果4个纹素全部命中,则1拍或2拍直接从data_ram中输出给着色器;如果有2个纹素命中,2个纹素不命中,在开始工作fifo中还没有数据时,data_ram等待数据写入fifo后一起分别输出2个纹素给着色器,并通过lru替换电路对data_ram进行更新;如果4个纹素都不命中,则直接从fifo中输出4个纹素给着色器。
本发明的另一目的在于提供一种实现所述嵌入式移动图形处理器的纹理Cache的处理方法的信息数据处理终端。
本发明的另一目的在于提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行所述的嵌入式移动图形处理器的纹理Cache的处理方法。
本发明另一目的在于提供一种嵌入式移动图形处理器的纹理Cache包括:
lut查找电路U0,用于负责对着色器输入的读请求地址进行解析;
地址判断电路U1,用于负责计算出双线性滤波中其余纹素在外存中的偏移地址;
标记位比较电路U2,用于负责判断纹理Cache是否命中;
lru替换电路U3,用于负责在读不命中的情况下,判断出需要替换块的地址;
fifo控制电路U4,用于负责在不命中时,选择缓冲区的哪一行进行输出。
输出电路U5,用于负责与外部的数据交互及纹理Cache中data_ram的读入。
进一步,lut查找电路U0对着色器输入的读请求地址进行解析中,包括:
通过d判断出2个相邻不同分辨率纹理所对应的层级数;例着色器支持最大图像分辨率为1024×1024,对应层级数为0;依据金字塔中纹理图像大小需要满足2n×2n,则层级数为1对应的图像大小为512×512,;以此类推,直到图像大小为1×1,层级数为10;并将层级数分别输出给模块地址判断电路U1、标记位比较电路U2、lru替换电路U3、输出电路U4。
进一步,地址判断电路U1计算出双线性滤波中其余纹素在外存中的偏移地址中,读取4个文纹素并进行加权,输入的读请求地址包括层级数的选择和纹素ID,共同决定纹素在外存中的起始地址addr0;通过对分辨率图像对应层级数的选择,判断出另外三个纹素的偏移地址oa1、oa2和oa3,并输出给标记位比较电路U2。
进一步,标记位比较电路U2判断纹理Cache是否命中,包括:由于4路组相联的映射关系,将256行Cache分成64组,其中每组又可以分成4路(行),将其每组第一路组成tag_ram0;每组第二路组成tag_ram1;每组第三路组成tag_ram2;每组第四路组成tag_ram3。根据读地址的检索位得到ram的组号,可以1拍并行判断出是否命中,命中则发送hit给输出电路U4;不命中则发送miss给lru替换电路U3,并发送读外存请求信号。
进一步,lru替换电路U3在读不命中的情况下,判断出需要替换块的地址中,采用4路组相联的映射方式和最近最少使用天换策略;首先根据输入的层级数选择对应的Cache;其次当读命中时,直接把命中行前的计数器置0;读不命中时,先通过读请求地址索引到计数器ram的组号,然后并行比较4路中相应块钱的计数器大小,把计数器值大的块作为替换块输出给标记位比较电路U2和输出电路U4,再将该块的计数器置0。
进一步,先进先出(FIFO)控制电路U4负责控制判断读取fifo缓冲区中的哪一行。提前将需要从外存中读取的纹素写入缓冲区,在读不命中的情况下,输出纹素给着色器。
进一步,输出电路U5负责与外部的数据交互及纹理Cache中data_ram的读入中,包括:将256行Cache分成4个64行的Cache(0~3),根据图像分辨率大小和层级数间的关系,将较小的层级数例:0、1、2、3、4的纹素存储在Cache0、Cache1、Cache2、Cache3中;层级数为5、6、7、8、9、10的纹素存储在Cache3中(因为该层级数范围对应的分辨率纹理图像被压缩的小)。首先根据层级数值选择相应的Cache,接收到读命中,如果4个纹素存储在相同的Cache号中,则从该Cache的data_ram中2拍读出4个纹素输出给着色器;如果4个纹素两两分别存储在不同的Cache号中,则只需1拍即可读出4个纹素,接收到读不命中及读取得外存数据,则把数据直接输出给着色器,并更新data_ram。
本发明的另一目的在于提供一种搭载有所述嵌入式移动图形处理器的纹理Cache的信息数据处理终端。
本发明的嵌入式移动图形处理器的纹理Cache,包括一个lut查找电路U0、一个地址判断电路U1、一个标记位比较电路U2、一个lru替换电路U3、一个输出电路U4;
图1(a)所示为Mipmap金字塔,其核心内容如图1(b)是把不同分辨率的纹理存储在外存中,在映射时,根据纹素与像素的缩放率d,选择合适分的分辨率,对于较小的多边形映射,可以有效降低纹理走样的出现。
综上所述,本发明的优点及积极效果为:
相对于理想型的单端口Cache,本发明的像素产生率提升了3倍多。
本发明具体提供一种用于移动图形处理器的、基于查找表的、可用于三线
性滤波的电路结构。保证了纹理单元效率、提高命中率有效降低存储功耗。
本发明的纹理Cache在移动图形处理器中主要用来减少纹理处理单元与外存的访问次数,因为嵌入式系统主要的功耗来源于与片外存储间的通信。根据嵌入式领域一般选择实现OpenGL ES嵌入式3D图形标准建议的Mipmap三线性滤波,纹理Cache接收来自纹理处理单元的地址,通过对Mipmap层级数的判断,在自身随机存取存储器或片外存储中选择4个纹素值返还给纹理处理单元,用于映射到tile某点像素值的计算。
本发明在Mipmap滤波技术的基础上,又提出了三线性滤波,显著降低了走样现象的产生。计算出d值后,在d上下两个层级不同分辨率的纹理中分别提取4个纹理坐标进行双线性滤波,然后再对结果进行加权。有效降低了锯齿及模糊现象的出现。
附图说明
图1是本发明实施例提供的Mipmapping金字塔和不同层级中的纹理存储分布图。
图2是本发明实施例提供的嵌入式移动图形处理器纹理Cache电路图。
图3是本发明实施例提供的测试平台框架图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例提供的嵌入式移动图形处理器的纹理Cache的处理方法,所述嵌入式移动图形处理器的纹理Cache的处理方法包括:
计算出d值后,在d上下两个层级不同分辨率的纹理中分别提取4个纹理坐标进行双线性滤波,然后再对结果进行加权。
Lance Willams提出一种目前几乎所有图形硬件都会支持的滤波方法,即Mipmap滤波技术。图1(a)所示为Mipmap金字塔,其核心内容如图1(b)是把不同分辨率的纹理存储在外存中,在映射时,根据纹素与像素的缩放率d,选择合适分的分辨率,对于较小的多边形映射,可以有效降低纹理走样的出现。
本发明在Mipmap滤波技术的基础上,又提出了三线性滤波,显著降低了走样现象的产生。计算出d值后,在d上下两个层级不同分辨率的纹理中分别提取4个纹理坐标进行双线性滤波,然后再对结果进行加权。
图2,本发明实施例提供的嵌入式移动图形处理器的纹理Cache,为一种用于移动图形处理器的保证纹理单元效率、提高命中率有效降低存储功耗的片上缓冲存储器,包括一个lut查找电路U0、一个地址判断电路U1、一个标记位比较电路U2、一个lru替换电路U3、一个fifo控制电路U4、一个输出电路U5;
Lance Willams提出一种目前几乎所有图形硬件都会支持的滤波方法,即Mipmap滤波技术。图1所示为Mipmap金字塔,其核心内容如图1(b)是把不同分辨率的纹理存储在外存中,在映射时,根据纹素与像素的缩放率d,选择合适分的分辨率,对于较小的多边形映射,可以有效降低纹理走样的出现。
在Mipmap滤波技术的基础上,又提出了三线性滤波,显著降低了走样现象的产生。计算出d值后,在d上下两个层级不同分辨率的纹理中分别提取4个,纹理坐标进行双线性滤波,然后再对结果进行加权。
lut查找电路U0主要负责对着色器输入的读请求地址进行解析。因为在三线性滤波中,需要通过d判断出2个相邻不同分辨率纹理所对应的层级数。例如该着色器支持最大图像分辨率为512×512,对应层级数为0;依据金字塔中纹理图像大小需要满足2n×2n,则层级数为1对应的图像大小为256×256,;以此类推,直到图像大小为1×1,该层级数为9。即由其低18位判断出对应的层级数,包含三张对于输入地址的查找表,针对Mipamap层级数(0~9)的判断。
//look-up table for mipmap
查找addr低18位中的高2位
如果{a[17],a[16]}中有一位为“1”,则mipmap=0;否则
查找addr低18位中的16、15位
如果{a[15],a[14]}中有一位为“1”,则mipmap=1;否则
查找addr低18位中的14、13位;
如果{a[13],a[12]}中有一位为“1”,则mipmap=2;否则
查找addr低18位中的12、11位
如果{a[11],a[10]}中有一位为“1”,则mipmap=3;否则
查找addr低18位中的10、9位
如果{a[9],a[8]}中有一位为“1”,则mipmap=4;否则
查找addr低18位中的8、7位;
如果{a[7],a[6]}中有一位为“1”,则mipmap=5;否则
查找addr低18位中的6、5位;
如果{a[5],a[4]}中有一位为“1”,则mipmap=6;否则
查找addr低18位中的4、3位;
如果{a[3],a[2]}中有一位为“1”,则mipmap=7;否则
查找addr低18位中的2、1位;
如果{a[1],a[0]}中高位为“1”,则mipmap=8;否则mipmap=9;
U0根据着色器输入的读请求地址查找出对应的层级数值并分别输出给模块U1、U2、U3、U4。
地址判断电路U1负责计算出双线性滤波中其余纹素在外存中的偏移地址。因为在双线性滤波时,需要读取4个文纹素并对其进行加权,输入的读请求地址包括了层级数的选择和纹素ID,共同决定了纹素在外存中的起始地址addr0。通过对该分辨率图像对应层级数的选择,判断出另外三个纹素的偏移地址oa1、oa2和oa3,并将其输出给U2。
addr1=addr+oa1 (2)
addr2=addr+oa2 (3)
addr3=addr+oa3 (4)。
标记位比较电路U2负责判断纹理Cache是否命中。将512行Cache分成4个64行的Cache,根据图像分辨率大小和层级数间的关系,将层级数为0的纹素存储在Cache0中;层级数为1、2的纹素存储在Cache1中,层级数为3、4的纹素存储在Cache2中,层级数为5、6、7、8、9的纹素存储在Cache3中。根据层级数选择相应的Cache与其tag_ram进行比较,并行判断4路是否有命中。如果命中则发送hit给U4,如果不命中则发送miss给U3,并发送读外存请求信号。
lru替换电路U3主要负责在读不命中的情况下,判断出需要替换块的地址。采用4路组相联的映射方式和最近最少使用天换策略。首先根据输入的层级数选择对应的Cache;其次当读命中时,直接用读请求地址索引位得到其相应的组内号,并将该块的计数器置“0”,如果读不命中时,先通过地址索引到该组,然后并行比较4路中相应块的计数器大小,把计数器值大的块作为替换块输出给U2和U4,再将该块的计数器置“0”。
输出电路U4主要负责与外部的数据交互及纹理Cache中data_ram的读入。首先根据层级数值选择相应的Cache。如果接收到读命中,则从相应Cache的data_ram中2拍读出4个纹素输出给着色器,如果接收到读不命中及读取得外存数据,则把数据直接输出给着色器,并更新data_ram。
下面结合具体分析对本发明作进一步描述。
本发明提供的嵌入式移动图形处理器的纹理Cache,包括:
lut查找电路U0,用于负责对着色器输入的读请求地址进行解析;
地址判断电路U1,用于负责计算出双线性滤波中其余纹素在外存中的偏移地址;
标记位比较电路U2,用于负责判断纹理Cache是否命中;
lru替换电路U3,用于负责在读不命中的情况下,判断出需要替换块的地址;
fifo控制电路U4,用于负责在不命中时,选择缓冲区的哪一行进行输出。
输出电路U5,用于负责与外部的数据交互及纹理Cache中data_ram的读入。
lut查找电路U0对着色器输入的读请求地址进行解析中,包括:
通过d判断出2个相邻不同分辨率纹理所对应的层级数;例着色器支持最大图像分辨率为1024×1024,对应层级数为0;依据金字塔中纹理图像大小需要满足2n×2n,则层级数为1对应的图像大小为512×512,;以此类推,直到图像大小为1×1,层级数为10;并将层级数分别输出给模块地址判断电路U1、标记位比较电路U2、lru替换电路U3、输出电路U4。
地址判断电路U1计算出双线性滤波中其余纹素在外存中的偏移地址中,读取4个文纹素并进行加权,输入的读请求地址包括层级数的选择和纹素ID,共同决定纹素在外存中的起始地址addr0;通过对分辨率图像对应层级数的选择,判断出另外三个纹素的偏移地址oa1、oa2和oa3,并输出给标记位比较电路U2。
标记位比较电路U2判断纹理Cache是否命中,包括:由于4路组相联的映射关系,将256行Cache分成64组,其中每组又可以分成4路(行),将其每组第一路组成tag_ram0;每组第二路组成tag_ram1;每组第三路组成tag_ram2;每组第四路组成tag_ram3。根据读地址的检索位得到ram的组号,可以1拍并行判断出是否命中,命中则发送hit给输出电路U4;不命中则发送miss给lru替换电路U3,并发送读外存请求信号。
lru替换电路U3在读不命中的情况下,判断出需要替换块的地址中,采用4路组相联的映射方式和最近最少使用天换策略;首先根据输入的层级数选择对应的Cache;其次当读命中时,直接把命中行前的计数器置0;读不命中时,先通过读请求地址索引到计数器ram的组号,然后并行比较4路中相应块钱的计数器大小,把计数器值大的块作为替换块输出给标记位比较电路U2和输出电路U4,再将该块的计数器置0。
先进先出(FIFO)控制电路U4负责控制判断读取fifo缓冲区中的哪一行。提前将需要从外存中读取的纹素写入缓冲区,在读不命中的情况下,输出纹素给着色器。
输出电路U5负责与外部的数据交互及纹理Cache中data_ram的读入中,包括:将256行Cache分成4个64行的Cache(0~3),根据图像分辨率大小和层级数间的关系,将较小的层级数例:0、1、2、3、4的纹素存储在Cache0、Cache1、Cache2、Cache3中;层级数为5、6、7、8、9、10的纹素存储在Cache3中(因为该层级数范围对应的分辨率纹理图像被压缩的小)。首先根据层级数值选择相应的Cache,接收到读命中,如果4个纹素存储在相同的Cache号中,则从该Cache的data_ram中2拍读出4个纹素输出给着色器;如果4个纹素两两分别存储在不同的Cache号中,则只需1拍即可读出4个纹素,接收到读不命中及读取得外存数据,则把数据直接输出给着色器,并更新data_ram。
下面结合测试平台对本发明作进一步描述。
本发明设计的文理Cache电路,通过使用system verilog搭建的测试平台进行验证,该平台设计框图3。
该平台主要包括:top(实例化模块)、environment(环境配置模块)、generator(激励模块)、driver(驱动模块)、dut(RTL级代码)、reference_model(参考模块)、monitor(监视模块)、scoreboard(比较模板模块)。
验证平台描述:激励模块主要用来模拟产生着色器发送的读地址,给出地址大小区间,并在该区间内随机循环产生地址输出到驱动模块;驱动模块将输入的地址分别输出到dut和参考模块,其中dut是纹理Cache的RTL级代码模块,参考模块通过平台与C参考模型接口,把地址送入模型中计算,并通过接口输出到平台;监视模块监视整个测试过程中的信号;比较模板模块把从参考模块输入的数据和监视模块输入的数据进行比较,相同则表示“success”,并把次数自增加“1”,不同则表示“fail”,并使次数不变。
因为在纹理贴图中,对于分辨率比较小的纹理图像(例如分辨率大小为1×1···8×8等)使用很少,所以把使用次数少且存储量小的纹素均存储在Cache3中,提高了大分辨率纹理图像中纹素的命中率。通过测试场景在平台中的输出结果,其平均命中率为91%。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用全部或部分地以计算机程序产品的形式实现,所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输)。所述计算机可读取存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘SolidState Disk(SSD))等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种嵌入式移动图形处理器的纹理Cache的处理方法,其特征在于,所述嵌入式移动图形处理器的纹理Cache的处理方法中,计算出d值后,在d值上下两个层级不同分辨率的纹理中分别提取4个纹理坐标进行双线性滤波,然后再对结果进行加权;
具体包括:
通过输入的读请求地址得出纹素所处的层级数,把读地址作为基地址,并在d值上下两个层级不同分辨率下计算出另外3个纹素的偏移地址,把4个纹素的地址在标记位比较电路中进行命中判断;如果4个纹素全部命中,则1拍或2拍直接从data_ram中输出给着色器;
有2个纹素命中,2个纹素不命中,在开始工作fifo中还没有数据时,data_ram等待数据写入fifo后一起分别输出2个纹素给着色器,并通过lru替换电路对data_ram进行更新;
4个纹素都不命中,则直接从fifo中输出4个纹素给着色器。
2.一种实现权利要求1所述嵌入式移动图形处理器的纹理Cache的处理方法的信息数据处理终端。
3.一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1所述的嵌入式移动图形处理器的纹理Cache的处理方法。
4.一种如权利要求1所述嵌入式移动图形处理器的纹理Cache的处理方法的嵌入式移动图形处理器的纹理Cache,其特征在于,所述嵌入式移动图形处理器的纹理Cache包括:
lut查找电路U0,用于负责对着色器输入的读请求地址进行解析;
地址判断电路U1,用于负责计算出双线性滤波中其余纹素在外存中的偏移地址;
标记位比较电路U2,用于负责判断纹理Cache是否命中;
lru替换电路U3,用于负责在读不命中的情况下,判断出需要替换块的地址;
fifo控制电路U4,用于负责在不命中时,选择缓冲区的哪一行进行输出。
输出电路U5,用于负责与外部的数据交互及纹理Cache中data_ram的读入。
5.如权利要求4所述的嵌入式移动图形处理器的纹理Cache,其特征在于,
lut查找电路U0对着色器输入的读请求地址进行解析中,包括:
通过d判断出2个相邻不同分辨率纹理所对应的层级数;着色器支持最大图像分辨率为1024×1024,对应层级数为0;依据金字塔中纹理图像大小需要满足2n×2n,则层级数为1对应的图像大小为512×512;以此类推,直到图像大小为1×1,层级数为10;并将层级数分别输出给模块地址判断电路U1、标记位比较电路U2、lru替换电路U3、输出电路U4。
6.如权利要求4所述的嵌入式移动图形处理器的纹理Cache,其特征在于,
地址判断电路U1计算出双线性滤波中其余纹素在外存中的偏移地址中,读取4个文纹素并进行加权,输入的读请求地址包括层级数的选择和纹素ID,共同决定纹素在外存中的起始地址addr0;通过对分辨率图像对应层级数的选择,判断出另外三个纹素的偏移地址oa1、oa2和oa3,并输出给标记位比较电路U2。
7.如权利要求4所述的嵌入式移动图形处理器的纹理Cache,其特征在于,
标记位比较电路U2判断纹理Cache是否命中,包括:由于4路组相联的映射关系,将256行Cache分成64组,其中每组又可以分成4路,将其每组第一路组成tag_ram0;每组第二路组成tag_ram1;每组第三路组成tag_ram2;每组第四路组成tag_ram3;根据读地址的检索位得到ram的组号,1拍并行判断出是否命中,命中则发送hit给输出电路U4;不命中则发送miss给lru替换电路U3,并发送读外存请求信号。
8.如权利要求4所述的嵌入式移动图形处理器的纹理Cache,其特征在于,
lru替换电路U3在读不命中的情况下,判断出需要替换块的地址中,采用4路组相联的映射方式和最近最少使用天换策略;首先根据输入的层级数选择对应的Cache;其次当读命中时,直接把命中行前的计数器置0;读不命中时,先通过读请求地址索引到计数器ram的组号,然后并行比较4路中相应块钱的计数器大小,把计数器值大的块作为替换块输出给标记位比较电路U2和输出电路U4,再将该块的计数器置0。
9.如权利要求4所述的嵌入式移动图形处理器的纹理Cache,其特征在于,
fifo控制电路U4负责控制判断读取fifo缓冲区中的哪一行;提前将需要从外存中读取的纹素写入缓冲区,在读不命中的情况下,输出纹素给着色器;
输出电路U5负责与外部的数据交互及纹理Cache中data_ram的读入中,包括:将256行Cache分成4个64行的Cache,根据图像分辨率大小和层级数间的关系,将较小的层级数例:0、1、2、3、4的纹素存储在Cache0、Cache1、Cache2、Cache3中;层级数为5、6、7、8、9、10的纹素存储在Cache3中;
首先根据层级数值选择相应的Cache,接收到读命中,4个纹素存储在相同的Cache号中,则从Cache的data_ram中2拍读出4个纹素输出给着色器;4个纹素两两分别存储在不同的Cache号中,只需1拍读出4个纹素,接收到读不命中及读取得外存数据,则把数据直接输出给着色器,并更新data_ram。
10.一种搭载有权利要求4~9任意一项所述嵌入式移动图形处理器的纹理Cache的信息数据处理终端。
CN201810753593.7A 2018-07-10 2018-07-10 一种嵌入式移动图形处理器的纹理Cache及处理方法 Active CN109118422B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810753593.7A CN109118422B (zh) 2018-07-10 2018-07-10 一种嵌入式移动图形处理器的纹理Cache及处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810753593.7A CN109118422B (zh) 2018-07-10 2018-07-10 一种嵌入式移动图形处理器的纹理Cache及处理方法

Publications (2)

Publication Number Publication Date
CN109118422A true CN109118422A (zh) 2019-01-01
CN109118422B CN109118422B (zh) 2023-05-05

Family

ID=64862568

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810753593.7A Active CN109118422B (zh) 2018-07-10 2018-07-10 一种嵌入式移动图形处理器的纹理Cache及处理方法

Country Status (1)

Country Link
CN (1) CN109118422B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111028314A (zh) * 2019-11-18 2020-04-17 中国航空工业集团公司西安航空计算技术研究所 一种GPU产生Mipmap多重细节层纹理方法
WO2022116012A1 (zh) * 2020-12-01 2022-06-09 华为技术有限公司 一种纹理处理的方法和装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050268038A1 (en) * 2004-05-28 2005-12-01 Masahiro Yasue Methods and apparatus for providing a software implemented cache memory
US20130278601A1 (en) * 2012-04-20 2013-10-24 Institute For Information Industry Method and Apparatus for Processing Texture Mapping in Computer Graphics by Biasing Level of Detail According to Image Content and Computer Readable Storage Medium Storing the Method
CN106210883A (zh) * 2016-08-11 2016-12-07 浙江大华技术股份有限公司 一种视频渲染的方法、设备
CN106547707A (zh) * 2016-09-21 2017-03-29 西安邮电大学 阵列处理器中簇内存储并行访问局部优先交换电路
CN106683158A (zh) * 2016-12-12 2017-05-17 中国航空工业集团公司西安航空计算技术研究所 一种GPU纹理映射非阻塞存储Cache的建模结构
US20170256025A1 (en) * 2016-03-04 2017-09-07 Samsung Electronics Co., Ltd. Efficient low-power texture cache architecture
CN108022269A (zh) * 2017-11-24 2018-05-11 中国航空工业集团公司西安航空计算技术研究所 一种GPU压缩纹理存储Cache的建模结构

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050268038A1 (en) * 2004-05-28 2005-12-01 Masahiro Yasue Methods and apparatus for providing a software implemented cache memory
US20130278601A1 (en) * 2012-04-20 2013-10-24 Institute For Information Industry Method and Apparatus for Processing Texture Mapping in Computer Graphics by Biasing Level of Detail According to Image Content and Computer Readable Storage Medium Storing the Method
US20170256025A1 (en) * 2016-03-04 2017-09-07 Samsung Electronics Co., Ltd. Efficient low-power texture cache architecture
CN106210883A (zh) * 2016-08-11 2016-12-07 浙江大华技术股份有限公司 一种视频渲染的方法、设备
CN106547707A (zh) * 2016-09-21 2017-03-29 西安邮电大学 阵列处理器中簇内存储并行访问局部优先交换电路
CN106683158A (zh) * 2016-12-12 2017-05-17 中国航空工业集团公司西安航空计算技术研究所 一种GPU纹理映射非阻塞存储Cache的建模结构
CN108022269A (zh) * 2017-11-24 2018-05-11 中国航空工业集团公司西安航空计算技术研究所 一种GPU压缩纹理存储Cache的建模结构

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
赵国宇等: "一种高效纹理映射单元的硬件体系结构设计", 《计算机工程》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111028314A (zh) * 2019-11-18 2020-04-17 中国航空工业集团公司西安航空计算技术研究所 一种GPU产生Mipmap多重细节层纹理方法
CN111028314B (zh) * 2019-11-18 2023-06-13 中国航空工业集团公司西安航空计算技术研究所 一种GPU产生Mipmap多重细节层纹理方法
WO2022116012A1 (zh) * 2020-12-01 2022-06-09 华为技术有限公司 一种纹理处理的方法和装置

Also Published As

Publication number Publication date
CN109118422B (zh) 2023-05-05

Similar Documents

Publication Publication Date Title
RU2412469C2 (ru) Графическая система с конфигурируемыми кэшами
CN106683158B (zh) 一种GPU纹理映射非阻塞存储Cache的建模系统
CN103946789B (zh) 图形处理单元中的再现模式选择
US6426753B1 (en) Cache memory for high latency and out-of-order return of texture data
KR100908779B1 (ko) 프레임 버퍼 병합
Bittner et al. Coherent hierarchical culling: Hardware occlusion queries made useful
CN105659291B (zh) 选择性合并部分覆盖图块以执行分层z剔除
US9214007B2 (en) Graphics processor having unified cache system
US7999819B2 (en) Systems and methods for managing texture descriptors in a shared texture engine
US6204863B1 (en) Method for dynamic XY tiled texture caching
US6545686B1 (en) Cache memory and method for use in generating computer graphics texture
CN103221995B (zh) 显示管中的流翻译
Xie et al. Processing-in-memory enabled graphics processors for 3D rendering
Cox et al. Multi-level texture caching for 3D graphics hardware
CN102890829B (zh) 一种基于gpu的渲染地形的方法
US20110090220A1 (en) Order-preserving distributed rasterizer
US20110080406A1 (en) Calculation of plane equations after determination of z-buffer visibility
CN103380417B (zh) 用于从存储器请求所存储的数据的方法及系统
McCormack et al. Tiled polygon traversal using half-plane edge functions
CN102446365B (zh) 估计在虚拟环境的一点上接收的光量的方法
EP0998709A1 (en) Non-stalled requesting texture cache system and method
JP2005514711A (ja) ゾーン・レンダリングのための効率的なグラフィックス状態管理
US6587113B1 (en) Texture caching with change of update rules at line end
CN105550978B (zh) 一种面向统一染色架构的gpu 3d引擎片上存储层次结构
CN109118422A (zh) 一种嵌入式移动图形处理器的纹理Cache及处理方法

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
GR01 Patent grant
GR01 Patent grant