针对高速缓存行的未命中请求的选择性生成制造技术

技术编号:38829699 阅读:43 留言:0更新日期:2023-09-15 20:09
一种图形流水线[200]包括纹理高速缓存[207],该纹理高速缓存具有被划分成多个子集的高速缓存行[300,305]。该图形流水线还包括一个或多个计算单元[121,122,123],该一个或多个计算单元响应于对与该纹理高速缓存中的高速缓存行的该多个子集中的第一子集相关联的地址的存储器存取请求的高速缓存未命中,而选择性地生成对该高速缓存行的该第一子集的未命中请求。在一些实施方案中,这些高速缓存行被划分成第一扇区和第二扇区。响应于在请求循环期间接收的存储器存取请求的高速缓存未命中在该第一扇区中,这些计算单元生成对该第一扇区的未命中请求,并且绕过生成对该第二扇区的未命中请求。区的未命中请求。区的未命中请求。

【技术实现步骤摘要】
【国外来华专利技术】针对高速缓存行的未命中请求的选择性生成

技术介绍

[0001]图形处理单元(GPU)使用由一系列可编程着色器和固定功能硬件块形成的图形流水线来处理三维(3

D)图形。例如,在帧中可见的对象的3

D模型可由一组三角形、其他多边形或补丁来表示,该组三角形、其他多边形或补丁在图形流水线中处理,以产生用于显示给用户的像素值。三角形、其他多边形或补丁被统称为图元。渲染过程包括将纹理映射到图元,以并入具有比图元的分辨率高的分辨率的视觉细节。GPU包括专用存储器,该专用存储器用于存储纹理值,以使得纹理值可用于映射到正在图形流水线中处理的图元。纹理可以被存储在磁盘上,或者在图形流水线需要纹理时以程序的方式生成这些纹理。通过从磁盘加载纹理或者以程序的方式生成数据来填充存储在专用GPU存储器中的纹理数据。频繁使用的纹理数据被高速缓存在由着色器或固定功能硬件块存取的一个或多个纹理高速缓存中。
附图说明
[0002]通过参考附图,本公开被更好地理解,并且其许多特征和优点对于本领域技术人员是显而易见的。在不同附图中使用相同的附图标记表示类似或相同的项目。
[0003]图1是根据一些实施方案的选择性地生成对高速缓存行的部分的未命中请求的处理系统的框图。
[0004]图2描绘了根据一些实施方案的被配置为处理高阶几何图元以便以预先确定的分辨率生成三维(3D)场景的光栅化图像的图形流水线。
[0005]图3是根据一些实施方案的高速缓存行的框图,该高速缓存行具有在第一读取循环中分布在多个扇区上的请求和在第二读取循环中被限制到单个扇区的请求。
[0006]图4是根据一些实施方案的高速缓存行的框图,该高速缓存行具有在第一读取循环和第二读取循环期间不表现出高度的时间局部性的请求。
[0007]图5是根据一些实施方案的选择性地生成对高速缓存行的部分的未命中请求的方法的流程图。
具体实施方式
[0008]纹理高速缓存中的高速缓存行通常被配置为保持大量数据,例如,纹理高速缓存行的宽度可为大约128字节或1024(1K)位。宽高速缓存行有助于高速缓存作为图形处理特征的大的和/或可变大小的数据块。纹理数据被存储在图块中,诸如具有4
×
4像素覆盖区或8
×
8像素覆盖区的图块。图块的大小还取决于纹理格式,该纹理格式指示用于表示每个像素的位的数量,诸如8位格式、32位格式、128位格式等。因此,根据纹理格式,具有8
×
8像素覆盖区的图块可以由526位、2048位、8192位或其他数量的位来表示。在操作中,纹理高速缓存每循环接收多达N个存储器存取请求(例如,读取请求或写入请求),其中N为向量的大小(例如,向量大小可以为64、32或16),并且每个高速缓存未命中生成从更高级别的高速缓存或存储器检索高速缓存行的请求。给定高速缓存行大小为大,如果所请求的数据跨多个高
速缓存行分散,则高速缓存未命中请求消耗大量的存储器带宽,而不管原始存取请求中的数据量如何。此外,通过停用高速缓存的不需要存储正在由图形流水线使用的数据的部分,针对所有请求循环启用完整高速缓存行限制了功率节省的机会。
[0009]图1至图5公开了用于通过以下方式节省纹理高速缓存与系统存储器(或更高级别的高速缓存)之间的存储器带宽同时可能降低功率消耗的系统和技术:响应于对与纹理高速缓存中的高速缓存行的子集相关联的地址的存储器存取请求的高速缓存未命中,而选择性地生成对高速缓存行的子集的未命中请求。在一些实施方案中,高速缓存行被划分成两个或更多个扇区。响应于例如基于存储器存取请求中的地址映射到高速缓存行中所有扇区的存储器存取请求(诸如读取请求)的高速缓存未命中,生成对完整高速缓存行的未命中请求。如果存储器存取请求映射到高速缓存行的单个扇区,则基于纹理数据的一个或多个启发法或特性的评估而针对完整高速缓存行或高速缓存行的扇区中的一个扇区选择性地生成未命中请求。例如,如果针对纹理数据启用色彩压缩或深度压缩,则针对完整高速缓存行生成未命中请求。如果未针对纹理数据启用压缩,则仅针对由存储器存取请求指示的高速缓存行的扇区生成未命中请求。还基于存储器存取请求的时间局部性针对高速缓存行的子集选择性地生成未命中请求。例如,如果预期存储器存取请求序列存取高速缓存行的不同扇区,则响应于扇区中的一个扇区中的高速缓存未命中而针对完整高速缓存行生成未命中请求。还基于存储器存取请求的空间局部性针对高速缓存行的子集选择性地生成未命中请求。例如,如果预期存储器存取请求序列存取相邻的、接近的或附近的地址,则响应于扇区中的一个扇区中的未命中而针对完整高速缓存行生成未命中请求。相反,如果存储器存取请求的地址被分散并且具有低空间局部性,则仅针对高速缓存行的包括高速缓存未命中的扇区生成未命中请求。
[0010]图1是根据一些实施方案的选择性地生成对高速缓存行的部分的未命中请求的处理系统100的框图。处理系统100包括或可访问使用非暂态计算机可读介质,诸如动态随机存取存储器(DRAM)实现的存储器105或其他存储部件。然而,在一些情况下,存储器105使用其他类型的存储器(包括静态随机存取存储器(SRAM)、非易失性RAM等)来实现。存储器105被称为外部存储器,因为它是在处理系统100中实现的处理单元的外部实现的。处理系统100还包括总线110以支持处理系统100诸如存储器105中实现的实体之间的通信。处理系统100的一些实施方案包括其他总线、桥接件、交换机、路由器等,其在清楚的情况下未在图1中示出。
[0011]在不同的实施方案中,本文中描述的技术用于多种并行处理器(例如,向量处理器、图形处理单元(GPU)、通用GPU(GPGPU)、非标量处理器、高度并行处理器、人工智能(AI)处理器、推理引擎、机器学习处理器、其他多线程处理单元等)中的任一种处理器。图1示出了根据一些实施方案的并行处理器,特别是图形处理单元(GPU)115的示例。图形处理单元(GPU)115渲染用于在显示器120上呈现的图像。例如,GPU 115渲染对象以产生提供给显示器120的像素值,该显示器使用像素值来显示表示所渲染对象的图像。GPU 115实现并发或并行地执行指令的多个计算单元(CU)121、122、123(本文中统称为“计算单元121至123”)。在一些实施方案中,计算单元121至123包括一个或多个单指令多数据(SIMD)单元并且计算单元121至123被聚集到工作组处理器、着色器阵列、着色器引擎等中。在GPU 115中实现的计算单元121至123的数量是设计选择的问题,并且GPU 115的一些实施方案包括比图1所示
更多或更少的计算单元。计算单元121至123可用于实现图形流水线,如本文所讨论的。GPU 115的一些实施方案用于通用计算。GPU 115执行指令,诸如存储在存储器105中的程序代码125,并且GPU 115将信息诸如所执行指令的结果存储在存储器105中。
[0012]处理系统100还包括中央处理单元(CPU)130,其连本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种装置,包括:纹理高速缓存,所述纹理高速缓存包括被划分成多个子集的高速缓存行;和图形流水线中的至少一个计算单元,其中处理器被配置为响应于对与所述纹理高速缓存中的高速缓存行的所述多个子集中的第一子集相关联的地址的存储器存取请求的高速缓存未命中,而选择性地生成对所述高速缓存行的所述第一子集的未命中请求。2.根据权利要求1所述的装置,其中所述至少一个计算单元被配置为确定与存储器存取请求相关联的所述高速缓存未命中是仅映射到所述多个子集中的所述第一子集还是映射到除所述多个子集中的所述第一子集之外或不同于所述第一子集的一个或多个子集。3.根据权利要求2所述的装置,其中所述至少一个计算单元被配置为响应于所述高速缓存未命中映射到除所述多个子集中的所述第一子集之外或不同于所述第一子集的子集而生成对完整高速缓存行的未命中请求。4.根据权利要求3所述的装置,其中所述至少一个计算单元被配置为响应于所述存储器存取请求仅映射到所述第一子集而确定是否针对纹理数据启用色彩压缩和深度压缩中的至少一者。5.根据权利要求4所述的装置,其中所述至少一个计算单元被配置为响应于针对所述纹理数据启用色彩压缩和深度压缩中的所述至少一者而生成对所述完整高速缓存行的未命中请求。6.根据权利要求4或权利要求5所述的装置,其中所述至少一个计算单元被配置为响应于未针对所述纹理数据启用色彩压缩和深度压缩中的所述至少一者而生成对所述高速缓存行的所述第一子集的未命中请求。7.根据任一前述权利要求所述的装置,其中所述至少一个计算单元被配置为基于所述存储器存取请求的时间局部性和空间局部性中的至少一者而选择性地生成对所述第一子集或所述多个子集的所述未命中请求。8.根据权利要求7所述的装置,其中所述至少一个计算单元被配置为响应于预期存取所述多个子集的存储器存取请求序列,响应于所述第一子集中的高速缓存未命中而生成对所述多个子集的未命中请求。9.根据权利要求7或权利要求8所述的装置,其中所述至少一个计算单元被配置为响应于所述第一子集中的高速缓存未命中并且响应于具有高于阈值的空间局部性的存储器存取请求序列而生成对所述多个子集的未命中请求。10.根据权利要求9所述的装置,其中所述至少一个计算单元被配置为响应于具有低于所述阈值的空间局部性的所述存储器存取请求而生成对所述第一子集的未命中请求。11.一种方法,包括:检测对纹理高速缓存中的高速缓存行的未命中请求,所述纹理高速缓存包括被划分成多个子集的高...

【专利技术属性】
技术研发人员:法塔内
申请(专利权)人:三星电子株式会社
类型:发明
国别省市:

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

1