CN105550126A - 高速缓冲存储器系统和操作高速缓冲存储器系统的方法 - Google Patents

高速缓冲存储器系统和操作高速缓冲存储器系统的方法 Download PDF

Info

Publication number
CN105550126A
CN105550126A CN201510672739.1A CN201510672739A CN105550126A CN 105550126 A CN105550126 A CN 105550126A CN 201510672739 A CN201510672739 A CN 201510672739A CN 105550126 A CN105550126 A CN 105550126A
Authority
CN
China
Prior art keywords
texture
memory bank
cache memory
subregion
distributed
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
CN201510672739.1A
Other languages
English (en)
Other versions
CN105550126B (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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN105550126A publication Critical patent/CN105550126A/zh
Application granted granted Critical
Publication of CN105550126B publication Critical patent/CN105550126B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0848Partitioned cache, e.g. separate instruction and operand caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/45Caching of specific data in cache memory
    • G06F2212/455Image or video data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/50Control mechanisms for virtual memory, cache or TLB
    • G06F2212/502Control mechanisms for virtual memory, cache or TLB using adaptive policy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/601Reconfiguration of cache memory
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/121Frame memory handling using a cache memory

Landscapes

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

Abstract

提供一种高速缓冲存储器系统和操作高速缓冲存储器系统的方法。一种高速缓冲存储器设备包括:高速缓冲存储器,包括存储体;分区配置单元,被配置为通过将存储体分配给用于渲染的多个纹理中的纹理,将高速缓冲存储器划分为多个分区;控制器,被配置为接收执行渲染的装置所请求的纹理数据的分区ID,确定被请求的纹理数据是否存储在所述多个分区中的与所述分区ID相应的分区中,并基于确定的结果将被请求的纹理数据输出到所述装置。

Description

高速缓冲存储器系统和操作高速缓冲存储器系统的方法
本申请要求于2014年10月22日提交到韩国知识产权局的第10-2014-0143600号韩国专利申请的权益,该申请的公开通过参考合并于此以用于所有目的。
技术领域
说明涉及能够减少高速缓存未命中概率的高速缓冲存储器系统和操作该高速缓冲存储器系统的方法。
背景技术
处理器,诸如中央处理器(CPU)或图形处理器(CPU)从大容量外部存储器获得命令或数据以对命令或数据进行处理。大部分大容量存储器的处理速度相较于处理器的处理速度来说很低,因此,高速缓冲存储器系统被用于提高大容量外部存储器的操作速度。
高速缓冲存储器系统存储最近被访问的数据,如果处理器再次请求相同的数据,则高速缓冲存储器系统允许处理器访问具有高处理速度的高速缓冲存储器而不是访问外部存储器,从而提高了数据传输速度。
如果处理器所请求的数据被存储在高速缓冲存储器系统的数据存储器中(高速缓存命中),则将数据存储器中的数据发送到处理器,而如果处理器所请求的数据不存在(高速缓存未命中),则从外部存储器读取数据。另外,高速缓冲存储器系统移除存储在数据存储器中的多条高速缓存数据之一并用读取的数据来替换该条高速缓存数据,读取的数据被发送到处理器。
可通过使用组相关高速缓冲存储器和直接映射高速缓冲存储器来根据映射方法实现高速缓冲存储器系统,其中,组相关高速缓冲存储器使用组相关映射方法,直接映射高速缓冲存储器使用直接映射方法。组相关高速缓冲存储器包括多个通道,在高速缓存未命中的情况下,根据替换策略用从外部存储器读取的新数据来替换与预定通道相应的高速缓存数据。
发明内容
此发明内容被提供用于以简化形式介绍将在以下的具体实施方式中进一步描述的构思的选择。此发明内容不意图表明要求保护的主题的关键特征或必要特征,也不意图被用于确定要求保护的主题的范围。
根据一方面,一种高速缓冲存储器设备包括:高速缓冲存储器,包括存储体;分区配置单元,被配置为通过将存储体分配给用于渲染的多个纹理中的纹理,将高速缓冲存储器划分为多个分区;控制器,被配置为接收执行渲染的装置所请求的纹理数据的分区ID,确定被请求的纹理数据是否存储在所述多个分区中的与所述分区ID相应的分区中,并基于确定的结果将被请求的纹理数据输出到所述装置。
高速缓冲存储器可将所述多个纹理中的第一纹理所包括的多条纹理数据存储在与第一纹理相应的分区中,并可将所述多个纹理中的第二纹理所包括的多条纹理数据存储在与第二纹理相应的分区中。
控制器可接收被请求的纹理数据的组地址和标签地址,并将与所述分区ID相应的分区中所包括的至少一个组中的由所述组地址指示的组所包括的标签数据与所述标签地址进行比较,以确定被请求的纹理数据是否存储在与所述分区ID相应的分区中。
当作为比较的结果确定标签数据之一与所述标签地址彼此对应时,控制器还可确定已经发生了高速缓存命中,并将与相应的标签数据对应的纹理数据输出到所述装置。
当作为比较的结果确定标签数据与所述标签地址不对应时,控制器还被配置为从纹理存储器的由所述标签地址所指示的区域接收被请求的纹理数据。
分区配置单元还可将所述多个纹理的数量与存储体的数量进行比较,并可基于比较的结果将存储体分配给纹理。
当作为比较的结果确定所述多个纹理的数量小于存储体的数量时,分区配置单元还可将存储体分配给纹理,可额外地将剩余的未分配的存储体分配给所述多个纹理中的另外的纹理,并可将分配给纹理的存储体确定为分区。
分区配置单元还可在所述多个纹理中检测非细化贴图的纹理,并可额外地将剩余的未分配的存储体分配给非细化贴图的纹理。
分区配置单元还可基于先前渲染的结果来分析纹理的访问模式,并可基于分析的结果额外地将剩余的未分配的存储体分配给所述多个纹理中的所述另外的纹理,其中,所述先前渲染使用与在当前渲染中使用的着色器程序相同的着色器程序。
分区配置单元还可在渲染期间实时地监视纹理的访问模式,并可基于监视的结果额外地、动态地将剩余的未分配的存储体分配给所述多个纹理中的所述另外的纹理。
当作为比较的结果确定所述多个纹理的数量大于存储体的数量时,分区配置单元还可将同一存储体分配给所述多个纹理中的第一纹理和第二纹理,并将所述同一存储体确定为分区。
分区配置单元还可在所述多个纹理中检测不共享纹理坐标的第一纹理和第二纹理。
分区配置单元还可在所述多个纹理中检测具有不同纹理维度的第一纹理和第二纹理。
根据一方面,一种操作高速缓冲存储器设备的方法包括:通过将包括在高速缓冲存储器中的存储体分配给在渲染中使用的多个纹理中的纹理,将高速缓冲存储器划分为多个分区;接收执行渲染的装置所请求的纹理数据的分区ID;确定被所述装置请求的纹理数据是否存储在所述多个分区中的与所述分区ID相应的分区中;基于确定的结果将被请求的纹理数据输出到所述装置。
所述方法还可包括:接收被请求的纹理数据的组地址和标签地址,其中,在确定步骤中,将与所述分区ID相应的分区中所包括的至少一个组中的由所述组地址指示的组所包括的标签数据与所述标签地址进行比较,以确定被请求的纹理数据是否存储在与所述分区ID相应的分区中。
基于确定的结果将被请求的纹理数据输出到所述装置的步骤还可包括:响应于作为比较的结果确定标签数据之一与所述标签地址彼此对应,确定已经发生了高速缓存命中,并将与相应的标签数据对应的纹理数据输出到所述装置。
基于确定的结果将被请求的纹理数据输出到所述装置的步骤还可包括:响应于作为比较的结果确定标签数据与所述标签地址不对应,确定已经发生了高速缓存未命中,并从纹理存储器的由所述标签地址所指示的区域接收被请求的纹理数据。
将高速缓冲存储器划分为多个分区的步骤还可包括:将所述多个纹理的数量与存储体的数量进行比较,并基于比较的结果将存储体分配给纹理。
当作为比较的结果确定所述多个纹理的数量小于存储体的数量时,将高速缓冲存储器划分为多个分区的步骤可包括:将存储体分配给纹理;额外地将剩余的未分配的存储体分配给所述多个纹理中的另外的纹理;将分配给纹理的存储体确定为分区。
额外地将剩余的未分配的存储体分配给所述多个纹理中的另外的纹理的步骤可包括:在所述多个纹理中检测非细化贴图的纹理;额外地将剩余的未分配的存储体分配给检测到的非细化贴图的纹理。
额外地将剩余的未分配的存储体分配给所述多个纹理中的另外的纹理的步骤可包括:基于先前渲染的结果来分析纹理的访问模式,其中,所述先前渲染使用与在当前渲染中使用的着色器程序相同的着色器程序;基于分析的结果额外地将剩余的未分配的存储体分配给所述多个纹理中的所述另外的纹理。
额外地将剩余的未分配的存储体分配给所述多个纹理中的另外的纹理的步骤可包括:在渲染期间实时地监视纹理的访问模式;基于监视的结果额外地、动态地将剩余的未分配的存储体分配给所述多个纹理中的所述另外的纹理。
当作为比较的结果确定所述多个纹理的数量大于存储体的数量时,将高速缓冲存储器划分为多个分区的步骤可包括:将同一存储体分配给所述多个纹理中的第一纹理和第二纹理;将所述同一存储体确定为分区。
将高速缓冲存储器划分为多个分区的步骤可还包括:在所述多个纹理中检测不共享纹理坐标的第一纹理和第二纹理。
将高速缓冲存储器划分为多个分区的步骤可还包括:在所述多个纹理中检测具有不同纹理维度的第一纹理和第二纹理。
通过以下详细描述、附图和权利要求,其它特征和方面将会是清楚的。
附图说明
图1是示出三维(3D)图像的渲染操作的示图;
图2是用于解释像素着色处理系统的示例的示图;
图3是示出高速缓冲存储器系统的结构的示例的框图;
图4是用于解释高速缓冲存储器的示例的示图;
图5是用于解释操作高速缓冲存储器系统的方法的示例的参考图;
图6和图7是用于解释在高速缓冲存储器系统中将高速缓冲存储器划分为多个分区的方法的示例的参考图;
图8是操作高速缓冲存储器系统的方法的示例的流程图;
图9和图10是图8的将高速缓冲存储器划分为多个分区的操作的示例的流程图。
在整个附图和具体实施方式中,相同的标号表示相同的元件。附图可不按比例绘制,为了清楚、示意和方便,附图中的元件的相对尺寸、比例和描绘可被夸大。
具体实施方式
提供以下的详细描述来帮助读者获得对本文中描述的方法、设备和/或系统的全面理解。然而,本文中描述的方法、设备和/或系统的各种改变、修改和等同物对于本领域的普通技术人员来说将是很明显的。在本文中描述的操作顺序仅仅是示例,并且不限于在本文中阐述的操作顺序,而是可根据对于本领域的技术人员来说很明显的方式而改变,除非必须以特定顺序发生的操作。另外,为了更加清楚和简洁,将省略对于本领域的普通技术人员公知的功能和结构的描述。
在本文中描述的特征可按照不同形式实施,并且不应被理解为限制于在本文中描述的示例。相反,在文本中描述的示例被提供从而使本公开将是彻底和完整的,并且将本公开的全部范围传达给本领域的普通技术人员。
图1示出三维(3D)图像的渲染操作的示例。
参照图1,根据一个配置,3D图像的渲染操作包括操作S11到S17。另外,图1中的下部的示图示意性地示出了顶点或每个操作中的像素的处理。
在操作S11,产生指示图像的顶点。顶点被产生为用于指示包括在图像中的对象。
在操作S12,对顶点进行着色。顶点着色器通过指定在操作S11中产生的顶点的颜色来对顶点执行着色。
在操作S13,产生图元(primitive)。图元指示由点、线或顶点形成的多边形。例如,图元可指示通过连接顶点而形成的三角形。
在操作S14,对图元进行光栅化(rasterized)。图元的光栅化表示将图元划分为多个片元(fragment)。片元是构成图元的单位并且可以是用于执行图像处理的基本单位。图元包括仅与顶点相关的信息。因此,当在光栅化操作中在顶点之间产生片元时,执行插值。
操作S15表示像素着色。在图1中以像素为单位执行着色的同时,还以片元为单位执行着色。例如,对像素或片元进行着色表示指定像素或片元的颜色。
操作S16表示光栅操作。在光栅操作中,执行颜色混合、深度测试等以基于着色的像素的信息来产生光栅图(像素或样本)。产生的光栅图被输出到帧缓冲器。
操作S17表示显示存储在帧缓冲器中的帧。在操作S11到S16中产生的帧被存储在帧缓冲器中。存储在帧缓冲器中的帧经由显示装置被显示。
图2是用于解释像素着色处理系统的示例的示图。
在一个示例中,像素着色处理系统执行参照图1描述的操作S15的像素着色。为了方便描述,高速缓冲存储器系统应用于图2中的像素着色处理系统。然而,示例不限于此,根据示例的高速缓冲存储器系统可应用于执行在渲染期间需要纹理数据的操作的任何系统。
另外,虽然示出和描述了在像素着色中使用高速缓冲存储器系统的示例,但是示例性实施例不限于此,高速缓冲存储器系统可用于在渲染操作期间的任何着色处理。
参照图2,像素着色处理系统包括图形处理器(GPU)10和纹理存储器200。GPU10包括像素着色器核50和高速缓冲存储器系统100。虽然图2示出在GPU10中包括像素着色器核50和高速缓冲存储器系统100,但是这些组件也可被实施为独立的硬件。因此,图2中示出的GPU10不限于此而且可包括更多或更少的组件。另外,高速缓冲存储器系统100的线和纹理存储器200的线与系统总线60连接。
虽然GPU10包括如图2所示的像素着色器核50和高速缓冲存储器系统100,但是示例不限于此,GPU10还可包括用于执行参照图1描述的每个操作的其它组件。
另外,虽然高速缓冲存储器系统100在图2中与像素着色器核50分离地设置,但是示例不限于此,高速缓冲存储器系统100也可与像素着色器核50包括在单个芯片中。
根据一个配置,像素着色器核50在3D渲染期间执行像素着色以确定像素的颜色值。为了请求在确定像素的颜色值操作中使用的纹理数据,像素着色器核50在访问纹理存储器200之前访问高速缓冲存储器系统100。像素着色器核50向高速缓冲存储器系统100请求不同类型的纹理数据。例如,像素着色器核50执行的着色器程序需要各种类型的纹理数据。
当像素着色器核50所请求的数据或命令(以下,所述数据或命令被称为目标数据)存在于高速缓冲存储器系统100之中,则执行根据高速缓存命中的操作。当存在高速缓存命中时,从高速缓冲存储器系统100输出的高速缓存数据(目标数据)被输出到像素着色器核50。
像素着色器核50在访问纹理存储器200之前访问高速缓冲存储器系统100,这是因为被频繁使用的纹理存储器200的数据(纹理数据)被存储在高速缓冲存储器系统100中的概率很高。因此,通过在访问纹理存储器200之前访问高速缓冲存储器系统100,可提高数据传输速度。
同时,如果目标数据不存在于高速缓冲存储器系统100之中,则执行根据高速缓存未命中的操作。也就是说,在这种情况下,高速缓冲存储器系统100访问纹理存储器200,从纹理存储器200输出的数据通过系统总线60而应用于高速缓冲存储器系统100。这里,高速缓冲存储器系统100移除先前存储的多条纹理数据之一,并将从纹理存储器200输出的数据存储在该条纹理数据的位置。
图3是示出高速缓冲存储器系统100的结构的示例的框图。
参照图3,高速缓冲存储器系统100包括分区配置单元110、高速缓冲存储器120和控制器130。虽然图3示出了在高速缓冲存储器系统100中包括分区配置单元110、高速缓冲存储器120和控制器130,但是这些组件可被实现为独立的硬件。因此,图3中示出的高速缓冲存储器系统100不限于此,而且存储器系统100可包括更多或更少的组件。
根据一个配置,高速缓冲存储器120包括标签存储器和数据存储器。数据存储器存储有纹理存储器200中所存储的多条纹理数据(高速缓存数据)。也就是说,高速缓存数据与存储在纹理存储器200中的多条纹理数据之一相同。标签存储器存储与数据存储器中存储的高速缓存数据分别相应的标签数据。标签数据可指示高速缓存数据被存储在纹理存储器200中的实际地址。以下将参照图4来详细描述标签存储器和数据存储器的结构。
图4是用于解释高速缓冲存储器120的示例的示图。
参照图4,高速缓冲存储器120的标签存储器和数据存储器包括至少一个组123。高速缓冲存储器120可包括多个通道和指示通道的至少一个存储体(bank)125。另外,高速缓冲存储器120的行指示组,高速缓冲存储器120的列指示存储体。
图4示出了具有八个通道的8通道关联高速缓冲存储器的结构。如图4所示,当高速缓冲存储器120由8通道的组相关高速缓冲存储器形成时,高速缓冲存储器120包括八个存储体(存储体0到存储体7)。另外,图4的高速缓冲存储器120包括八个组,并且这八个组根据索引被划分(索引0到索引7)。组123可包括八条高速缓存数据(第一数据到第八数据)和指示八条高速缓存数据各自的地址的八条标签数据(第一标签数据到第八标签数据)。另外,八条标签数据与第一通道到第八通道分别对应。
此外,高速缓冲存储器120可包括多个分区,分区可包括至少一个存储体。另外,多个分区可根据分区ID而被划分。例如,图4的高速缓冲存储器120包括四个分区,分区根据分区ID(例如,分区0、分区1、分区2和分区3)被划分。
控制器130可接收从外部请求的纹理数据的分区ID以确定被请求的纹理数据是否存储在相应的分区中。
参照图4,根据一个配置,控制器130接收从外部(例如,从像素着色器核)请求的纹理数据的分区ID。当分区ID被接收时,控制器130确定被请求的纹理数据是否存储在与分区ID相应的分区中。将参照图5进行详细描述。另外,为了便于描述,与接收到的分区ID相应的分区将被描述为第一分区(分区0)。
图5是用于解释操作高速缓冲存储器系统100的方法的示例的参考图。参照图5,根据一个配置,高速缓冲存储器系统100接收被请求的纹理数据的地址位。如图5所示,地址位包括标签地址“Tagadd”和组地址“Setadd”。组地址Setadd是指示高速缓冲存储器100的行地址的数据。也就是说,组地址Setadd指示高速缓冲存储器120中包括的多个组之一。
控制器130包括标签比较单元135,标签比较单元135将第一分区(分区0)的多个组中的由组地址Setadd指示的组320(索引3)中包括的每条标签数据与每条标签地址进行比较,以确定是否有任何标签数据与任何标签地址相应。
当标签地址Tagadd与多条标签数据之一相应时,控制器130将这种情况确定为高速缓存命中。也就是说,高速缓存命中指示被请求的纹理数据(目标数据)被存储在相应的分区中。当控制器130已经确定了高速缓存命中时,与标签地址Tagadd相应的标签数据所对应的高速缓存数据可被输出到外部(例如,输出到像素着色器核)。控制器130读取存储在高速缓冲存储器120中的高速缓存数据,并将该高速缓存数据输出到外部。
另一方面,如果没有标签数据与标签地址相应,则控制器130将这种情况确定为高速缓存未命中。也就是说,高速缓存未命中指示从外部请求的纹理数据未被存储在相应分区中。当控制器130已经确定了高速缓存未命中时,控制器130将高速缓存未命中信号输出到纹理存储器200,并请求从外部被请求的纹理数据(目标数据)。
控制器130在相应的分区中所包括的多个组中移除由组地址指示的组中所包括的多条高速缓存数据之一,并用从纹理存储器200接收到的纹理数据来替换被移除的高速缓存数据。
此外,分区配置单元130确定多个分区。分区配置单元130对在像素着色中需要的纹理的数量与高速缓冲存储器120中包括的存储体的数量进行比较,基于比较结果将存储体分配给多个纹理,并确定分区。将参照图6和图7进行详细描述。图6和图7是用于解释在高速缓冲存储器系统中将高速缓冲存储器划分为多个分区的方法的示例的参考图。
图6是用于解释当存储体的数量大于需要的纹理的数量时将高速缓冲存储器划分为多个分区的方法的示图。
参照图6,当存储体的数量大于需要的纹理的数量时,分区配置单元110将为多个纹理中的每个纹理分配一个存储体。例如,在像素着色操作中,使用三个纹理(第一纹理410、第二纹理420和第三纹理430),第一纹理410、第二纹理420和第三纹理430存储在纹理存储器200中。另外,高速缓冲存储器120由4通道高速缓冲存储器形成,并且包括第一存储体到第四存储体(存储体0、存储体1、存储体2和存储体3)。分区配置单元110将第一存储体(存储体0)分配给第一纹理410,将第二存储体(存储体1)分配给第二纹理420,并将第三存储体(存储体2)分配给第三纹理430。
另外,分区配置单元110可额外地将剩余的未分配的存储体分配给所述多个纹理之一。例如,未被分配的第四存储体(存储体3)可被额外地分配给第一纹理410、第二纹理420和第三纹理430之一,并且剩余的存储体(第四存储体,未示出)可被额外地分配给多个纹理(第一纹理410、第二纹理420和第三纹理430)中的具有高冲突未命中概率的纹理。在这种情况下,第四存储体(存储体3)被分配给第三纹理430。冲突未命中指示当通道的数量由于多条映射数据存在于高速缓冲存储器的一个组中而出现短缺时发生的未命中。这里,当通道的数量增加时,可减少冲突未命中的概率。
此外,分区配置单元110在第一纹理410、第二纹理420和第三纹理430中检测非细化贴图(non-mipmapped)的纹理,并将第四存储体(存储体3)额外地分配给检测到的纹理。除了原始尺寸的纹理,细化贴图的纹理还可包括尺寸缩小为1/2、1/4和1/8的纹理。当在像素着色中使用细化贴图的纹理时,具有针对将被着色的像素的尺寸的适当尺寸的纹理可被用于提高高速缓存效率(高速缓存命中概率)。然而,与细化贴图的纹理相比,非细化贴图的纹理可具有被映射到相同组的更多条纹理数据并且具有更高的冲突未命中概率。因此,分区配置单元110可将存储体额外地分配给非细化贴图的纹理。
另外,分区配置单元110基于先前像素着色的结果来分析纹理的访问模式,其中,先前像素着色使用与在当前像素着色中使用的着色器程序相同的着色器程序。分区配置单元110基于分析访问模式的结果,将剩余的存储体分配给具有最多的冲突未命中的纹理。例如,如果当访问与第一纹理410、第二纹理420和第三纹理430中的第三纹理430有关的数据时已经发生了最多的冲突未命中,则分区配置单元110将第四存储体(存储体3)分配给第三纹理430。
另外,当执行像素着色时,分区配置单元110实时地监视纹理的访问模式。分区配置单元110基于监视访问模式的结果,将剩余的存储体分配给具有最多的冲突未命中的纹理。例如,当访问第一纹理410、第二纹理420和第三纹理430中的第三纹理430所包括的纹理数据时,如果已经发生了最多的冲突未命中,则分区配置单元110将第四存储体(存储体3)分配给第三纹理430。
当高速缓冲存储器120中包括的所有存储体被分配给多个纹理中的任意一个纹理时,分区配置单元110将分配给纹理的至少一个存储体确定为分区。例如,分区配置单元110可将分配给第一纹理410的第一存储体(存储体0)确定为第一分区(分区0),将分配给第二纹理420的第二存储体(存储体1)确定为第二分区(分区1),将分配给第三纹理430的第三存储体(存储体2)确定为第三分区(分区2)。
图7是用于解释当存储体的数量小于需要的纹理的数量时将高速缓冲存储器划分为多个分区的方法的示例的示图。
参照图7,当需要的纹理的数量大于存储体的数量时,分区配置单元110将同一存储体分配给多个纹理中的至少两个纹理。
分区配置单元110将同一存储体分配给多个纹理中的不共享纹理坐标的纹理。可选择地,分区配置单元110将同一存储体分配给具有不同的纹理维度的纹理。
例如,当执行像素着色时,使用三个纹理(第一纹理510、第二纹理520和第三纹理530)。此外,高速缓冲存储器由2通道高速缓冲存储器形成并且包括第一存储体(存储体0)和第二存储体(存储体1)。在这种情况下,分区配置单元110将同一存储体分配给两个或三个纹理。
参照图7,第一纹理510和第二纹理520共享一部分纹理坐标,第一纹理510和第三纹理530也共享一部分纹理坐标。然而,第二纹理520和第三纹理530不共享纹理坐标。也就是说,第二纹理520和第三纹理不包括相同的坐标。因此,分区配置单元110将第一存储体(存储体0)分配给第一纹理510,将第二存储体(存储体1)分配给第二纹理520和第三纹理530。
分区配置单元110将每个存储体确定为分区。例如,分区配置单元110将分配给第一纹理510的第一存储体(存储体0)确定为第一分区(分区0),并将分配给第二纹理520和第三纹理530的第二存储体(存储体1)确定为第二分区(分区1)。也就是说,第二纹理520和第三纹理530对应于同一个分区。
如上所述,当与纹理相应的分区被确定时,纹理数据被映射到相应的分区上并被存储在高速缓冲存储器中。例如,当与第一纹理相应的分区被确定为第一分区,与第二纹理相应的分区被确定为第二分区时,第一纹理数据被映射到第一分区以被存储在高速缓冲存储器中,第二纹理数据被映射到第二分区以被存储在高速缓冲存储器中。
图8是操作高速缓冲存储器系统100的方法的示例的流程图。
参照图8,在操作S610,高速缓冲存储器系统将高速缓冲存储器划分为多个分区。
例如,高速缓冲存储器系统100将包括在高速缓冲存储器120中的至少一个存储体分配给存储在纹理存储器中的多个纹理中的至少一个纹理,从而将高速缓冲存储器120划分为多个分区。
在像素着色期间,高速缓冲存储器系统100将需要的纹理的数量与包括在高速缓冲存储器120中的存储体的数量进行比较。例如,在一个配置中,由像素着色器核50执行的着色器程序要求各种类型的纹理,并且需要的纹理的类型根据着色器程序而变化。高速缓冲存储器系统100从像素着色器核50接收在着色器程序中使用的纹理的类型或坐标信息。相应地,高速缓冲存储器系统100确定在像素着色中需要的纹理的数量。此外,高速缓冲存储器系统100将需要的纹理的数量与包括在高速缓冲存储器120中的存储体的数量进行比较。
高速缓冲存储器系统100基于比较结果将存储体分配给多个纹理并确定分区。将参照图9和图10来进行详细描述。
再次参照图8,在操作S620,高速缓冲存储器系统100接收被请求的纹理数据的分区ID。
例如,接收的分区ID指示被请求的纹理数据的纹理类型,并且与包括在高速缓冲存储器系统100中的多个分区之一相应。另外,高速缓冲存储器系统100接收被请求的纹理数据的地址位。地址位可包括标签地址和组地址。
在操作S630,高速缓冲存储器系统确定被请求的纹理数据是否存储在相应的分区中。
高速缓冲存储器系统100确定包括在与接收到的分区ID相应的分区中的多个组中的、由组地址指示的组所包括的每条标签数据是否与标签地址相应。当标签地址与多条标签数据之一相应时,高速缓冲存储器系统100确定被请求的纹理数据存储在相应分区中(高速缓存命中)。
另一方面,如果没有标签数据与标签地址相应,则高速缓冲存储器系统100确定被请求的数据未被存储在相应分区中。
在操作S640,高速缓冲存储器系统100基于确定结果将被请求的纹理数据输出到外部。
例如,响应于确定已经发生了高速缓存命中,高速缓冲存储器系统100将与标签地址相应的高速缓存数据发送到外部(例如,发送到像素着色器核)。另一方面,响应于确定发生了高速缓存未命中,高速缓冲存储器系统100将高速缓存未命中信号发送到纹理存储器200,并向纹理存储器200请求从外部被请求的纹理数据(目标数据)。相应地,高速缓冲存储器系统100从纹理存储器200接收新纹理数据,并将接收到的纹理数据输出到外部。另外,高速缓冲存储器系统100移除由包括在相应分区中的多个组之一指示的组中所包括的多条高速缓存数据之一,并用从纹理存储器200接收的纹理数据来替换被移除的高速缓存数据。
图9是图8的操作S610的流程图。具体地,图9是将高速缓冲存储器划分为多个分区的方法的示例的流程图。
参照图9,高速缓冲存储器系统将存储体分配给多个纹理中的每个纹理。
例如,当执行像素着色时,如果三个纹理(第一纹理、第二纹理和第三纹理)被使用,高速缓冲存储器120由4通道高速缓冲存储器形成并且包括第一存储体到第四存储体,则第一存储体被分配给第一纹理,第二存储体被分配给第二纹理,第三存储体被分配给第三纹理。也就是说,在操作S710,存储体被分配给多个纹理中的每个纹理。
在操作S720,高速缓冲存储器系统100将剩余的未分配的存储体额外地分配给多个纹理中的至少一个纹理。
例如,高速缓冲存储器系统100在多个纹理中检测非细化贴图的纹理,并将剩余的未分配的存储体额外地分配给检测到的纹理。
此外,高速缓冲存储器系统100基于执行先前像素着色的结果来分析纹理的访问模式,其中,先前像素着色使用与在当前像素着色中使用的着色器程序相同的着色器程序。高速缓冲存储器系统100基于分析访问模式的结果将剩余的存储体分配给具有最多的冲突未命中的纹理。
另外,高速缓存系统100在执行像素着色时实时地监视纹理的访问模式,并将剩余的存储体分配给具有最多的冲突未命中的纹理。
在操作S730,高速缓冲存储器系统100将分配给纹理的至少一个存储体确定为分区。
图10是根据另一示例的图8的操作S610的流程图。具体地,图10是当需要的纹理的数量大于高速缓冲存储器中所包括的存储体的数量时将高速缓冲存储器划分为多个分区的方法的示例的流程图。
参照图10,在操作S810,高速缓冲存储器系统100将同一存储体分配给多个纹理中的至少两个纹理。
高速缓冲存储器系统100将同一存储体分配给多个纹理中不共享纹理坐标的纹理。可选择地,高速缓冲存储器系统100将同一存储体分配给具有不同纹理维度的纹理。
在操作S820,高速缓冲存储器系统100将每个存储体确定为分区。
如上所述,根据以上的一个或更多个示例,通过有效率地将存储体分配给多个纹理,减少了高速缓存未命中概率。
另外,由于仅在相应分区中执行高速缓存操作,因此减少了功耗。
根据示例的高速缓冲存储器系统和操作该高速缓冲存储器系统的方法不限于以上描述的示例的结构和方法。可以选择性地组合某些示例或全部示例以进行各种修改。
图1和图2中示出的执行在本文中关于图8到图10描述的操作的像素着色器核50、高速缓冲存储器系统100和纹理存储器200以及分区配置单元110、高速缓冲存储器120和控制器130由硬件组件实现。硬件组件的示例包括控制器、传感器、产生器、驱动器以及本领域普通技术人员公知的任何其它组件。在一个示例中,通过一个或更多个处理器或计算机来实现硬件组件。通过一个或更多个处理元件(诸如,逻辑门阵列、控制器和算术逻辑单元、数字信号处理器、微型计算机、可编程逻辑控制器、现场可编程门阵列、可编程逻辑阵列、微处理器或本领域中的普通技术人员公知的能够按照定义的方式对指令进行响应并执行指令以实现期望的结果的任何其它装置或装置的组合)来实现处理器或计算机。在一个示例中,处理器或计算机包括或者被连接到存储由处理器或计算机执行的指令或软件的一个或更多个存储器。由处理器或计算机实现的硬件组件运行指令或软件(诸如,操作系统(OS)和运行在OS上的一个或更多个软件应用)以执行在本文中针对图8至图10描述的操作。硬件组件还响应于指令或软件的运行,访问、操作、处理、创建和存储数据。为了简洁,单数术语“处理器”或“计算机”可在本文描述的示例中被使用,但是在其它示例中,多个处理器或计算机被使用,或者处理器或计算机包括多个处理元件或多种类型的处理元件,或者以上两者。在一个示例中,硬件组件包括多个处理器,而在另一示例中,硬件组件包括处理器和控制器。硬件组件具有不同处理配置的任何一种或多种,其中,不同处理配置的示例包括单个处理器、单独的处理器、并行的处理器、单指令单数据(SISD)多处理、单指令多数据(SIMD)多处理、多指令单数据(MISD)多处理以及多指令多数据(MIMD)多处理。
图8到图10中示出的执行在本文中关于图1和图2描述的操作的方法由如上所述的运行指令或软件的处理器或计算机执行,从而执行在本文中描述的操作。
用于控制处理器或计算机实现硬件组件并执行上述方法的指令或软件被编写为计算机程序、代码段、指令或上述各项的任何组合,以单独地或共同地指导或配置处理器或计算机作为机器或专用计算机进行操作以执行由硬件组件执行的操作和上述方法。在一个示例中,指令或软件包括直接由处理器或计算机运行的机器代码,诸如,由编译器生成的机器代码。在另一示例中,指令或软件包括由处理器或计算机使用解释器运行的高级代码。本领域中的普通编程技术人员可基于附图中示出的框图和流程图以及说明书中的相应描述,容易地编写指令或软件,其中,附图中示出的框图和流程图以及说明书中的相应描述公开了用于执行由硬件组件执行的操作和上述方法的算法。
用于处理器或计算机实现硬件组件并执行上述方法的指令或软件以及任何相关联的数据、数据文件和数据结构被记录、存储或安装在一个或更多个非暂时性计算机可读存储介质中。非暂时性计算机可读存储介质的示例包括只读存储器(ROM)、随机存取存储器(RAM)、闪存、CD-ROM、CD-R、CD+R、CD-RW、CD+RW、DVD-ROM、DVD-R、DVD+R、DVD-RW、DVD+RW、DVD-RAM、BD-ROM、BD-R、BD-RLTH、BD-RE、磁带、软光盘、磁光数据存储装置、光学数据存储装置、硬盘、固态盘以及本领域中的普通技术人员公知的能够以非暂时性方式存储指令或软件以及任何相关联的数据、数据文件和数据结构并将指令或软件以及任何相关联的数据、数据文件和数据结构提供给处理器或计算机从而使得处理器或计算机可运行指令的任何装置。在一个示例中,指令或软件以及任何相关联的数据、数据文件和数据结构被分布在联网的计算机系统上,使得处理器或计算机以分布方式存储、访问和运行指令和软件以及任何相关联的数据、数据文件和数据结构。
尽管本公开包括特定示例,但对于本领域中的普通技术人员将是明显的是:在不脱离权利要求和它们的等同物的精神和范围的情况下可对这些示例进行形式和细节上的各种改变。在本文中描述的示例将仅被视为描述性的意义,而不是为了限制的目的。每个示例中的特征或方面的描述将被视为可应用于其它示例中的相似特征或方面。如果描述的技术按照不同的顺序被执行以及/或者如果在描述的系统、架构、装置或电路中的组件按照不同的方式被组合和/或由其它组件或它们的等同物代替或补充,则也可获得适当的结果。因此,本公开的范围不由详细的描述所限定,而是由权利要求和它们的等同物限定,并且在权利要求和它们的等同物的范围内的所有改变将被解释为包括在本公开中。

Claims (28)

1.一种高速缓冲存储器设备,包括:
高速缓冲存储器,包括存储体;
分区配置单元,被配置为通过将存储体分配给用于渲染的多个纹理中的纹理,将高速缓冲存储器划分为多个分区;
控制器,被配置为接收执行渲染的装置所请求的纹理数据的分区ID,确定被请求的纹理数据是否存储在所述多个分区中的与所述分区ID相应的分区中,并基于确定的结果将被请求的纹理数据输出到所述装置。
2.如权利要求1所述的高速缓冲存储器设备,其中,高速缓冲存储器将所述多个纹理中的第一纹理所包括的多条纹理数据存储在与第一纹理相应的分区中,并将所述多个纹理中的第二纹理所包括的多条纹理数据存储在与第二纹理相应的分区中。
3.如权利要求1所述的高速缓冲存储器设备,其中,控制器还被配置为接收被请求的纹理数据的组地址和标签地址,并将与所述分区ID相应的分区中所包括的至少一个组中的由所述组地址指示的组所包括的标签数据与所述标签地址进行比较,以确定被请求的纹理数据是否存储在与所述分区ID相应的分区中。
4.如权利要求3所述的高速缓冲存储器设备,其中,响应于作为比较的结果确定标签数据之一与所述标签地址彼此对应,控制器还被配置为确定已经发生了高速缓存命中,并将与相应的标签数据对应的纹理数据输出到所述装置。
5.如权利要求3所述的高速缓冲存储器设备,其中,响应于作为比较的结果确定标签数据与所述标签地址不对应,控制器还被配置为从纹理存储器的由所述标签地址所指示的区域接收被请求的纹理数据。
6.如权利要求1所述的高速缓冲存储器设备,其中,分区配置单元还被配置为将所述多个纹理的数量与存储体的数量进行比较,并基于比较的结果将存储体分配给纹理。
7.如权利要求6所述的高速缓冲存储器设备,其中,响应于作为比较的结果确定所述多个纹理的数量小于存储体的数量,分区配置单元还被配置为将存储体分配给纹理,额外地将剩余的未分配的存储体分配给所述多个纹理中的至少一个纹理,并将分配给纹理的存储体确定为分区。
8.如权利要求7所述的高速缓冲存储器设备,其中,分区配置单元还被配置为在所述多个纹理中检测非细化贴图的纹理,并额外地将剩余的未分配的存储体分配给非细化贴图的纹理。
9.如权利要求7所述的高速缓冲存储器设备,其中,分区配置单元还被配置为基于先前渲染的结果来分析纹理的访问模式,并基于分析的结果额外地将剩余的未分配的存储体分配给所述多个纹理中的所述至少一个纹理,其中,所述先前渲染使用与在当前渲染中使用的着色器程序相同的着色器程序。
10.如权利要求7所述的高速缓冲存储器设备,其中,分区配置单元还被配置为在渲染期间实时地监视纹理的访问模式,并基于监视的结果额外地、动态地将剩余的未分配的存储体分配给所述多个纹理中的所述至少一个纹理。
11.如权利要求6所述的高速缓冲存储器设备,其中,响应于作为比较的结果确定所述多个纹理的数量大于存储体的数量,分区配置单元还被配置为将同一存储体分配给所述多个纹理中的第一纹理和第二纹理,并将所述同一存储体确定为分区。
12.如权利要求11所述的高速缓冲存储器设备,其中,分区配置单元还被配置为在所述多个纹理中检测不共享纹理坐标的第一纹理和第二纹理。
13.如权利要求11所述的高速缓冲存储器设备,其中,分区配置单元还被配置为在所述多个纹理中检测具有不同纹理维度的第一纹理和第二纹理。
14.如权利要求1所述的高速缓冲存储器,其中,渲染包括像素着色。
15.一种操作高速缓冲存储器设备的方法,所述方法包括:
通过将包括在高速缓冲存储器中的存储体分配给在渲染中使用的多个纹理中的纹理,将高速缓冲存储器划分为多个分区;
接收执行渲染的装置所请求的纹理数据的分区ID;
确定被请求的纹理数据是否存储在所述多个分区中的与所述分区ID相应的分区中;
基于确定的结果将被请求的纹理数据输出到所述装置。
16.如权利要求15所述的方法,还包括:接收被请求的纹理数据的组地址和标签地址,
其中,在确定步骤中,将与所述分区ID相应的分区中所包括的至少一个组中的由所述组地址指示的组所包括的标签数据与所述标签地址进行比较,以确定被请求的纹理数据是否存储在与所述分区ID相应的分区中。
17.如权利要求16所述的方法,其中,基于确定的结果将被请求的纹理数据输出到所述装置的步骤包括:响应于作为比较的结果确定标签数据之一与所述标签地址彼此对应,确定已经发生了高速缓存命中,并将与相应的标签数据对应的纹理数据输出到所述装置。
18.如权利要求16所述的方法,其中,基于确定的结果将被请求的纹理数据输出到所述装置的步骤包括:响应于作为比较的结果确定标签数据与所述标签地址不对应,确定已经发生了高速缓存未命中,并从纹理存储器的由所述标签地址所指示的区域接收被请求的纹理数据。
19.如权利要求15所述的方法,其中,将高速缓冲存储器划分为多个分区的步骤还包括:将所述多个纹理的数量与存储体的数量进行比较,
其中,在划分操作中,基于比较的结果将存储体分配给纹理。
20.如权利要求19所述的方法,其中,响应于作为比较的结果确定所述多个纹理的数量小于存储体的数量,将高速缓冲存储器划分为多个分区的步骤包括:
将存储体分配给纹理;
额外地将剩余的未分配的存储体分配给所述多个纹理中的至少一个纹理;
将分配给纹理的存储体确定为分区。
21.如权利要求20所述的方法,其中,额外地将剩余的未分配的存储体分配给所述多个纹理中的至少一个纹理的步骤包括:
在所述多个纹理中检测非细化贴图的纹理;
额外地将剩余的未分配的存储体分配给检测到的非细化贴图的纹理。
22.如权利要求20所述的方法,其中,额外地将剩余的未分配的存储体分配给所述多个纹理中的至少一个纹理的步骤包括:
基于先前渲染的结果来分析纹理的访问模式,其中,所述先前渲染使用与在当前渲染中使用的着色器程序相同的着色器程序;
基于分析的结果额外地将剩余的未分配的存储体分配给所述多个纹理中的所述至少一个纹理。
23.如权利要求20所述的方法,其中,额外地将剩余的未分配的存储体分配给所述多个纹理中的至少一个纹理的步骤包括:
在渲染期间实时地监视纹理的访问模式;
基于监视的结果额外地、动态地将剩余的未分配的存储体分配给所述多个纹理中的所述至少一个纹理。
24.如权利要求19所述的方法,其中,当作为比较的结果确定所述多个纹理的数量大于存储体的数量时,将高速缓冲存储器划分为多个分区的步骤包括:
将同一存储体分配给所述多个纹理中的第一纹理和第二纹理;
将所述同一存储体确定为分区。
25.如权利要求24所述的方法,其中,将高速缓冲存储器划分为多个分区的步骤还包括:在所述多个纹理中检测不共享纹理坐标的第一纹理和第二纹理。
26.如权利要求24所述的方法,其中,将高速缓冲存储器划分为多个分区的步骤还包括:在所述多个纹理中检测具有不同纹理维度的第一纹理和第二纹理。
27.如权利要求15所述的方法,其中,渲染包括像素着色。
28.一种存储器设备,包括:
高速缓冲存储器,包括存储体;
分区配置单元,被配置为将高速缓冲存储器划分为多个分区;
控制器,被配置为将存储体的数量与纹理的数量进行比较,当存储体的数量大于纹理的数量时,在一对一的基础上将存储体分配给纹理,并将剩余的存储体分配给具有高冲突未命中概率的纹理,当纹理的数量大于存储体的数量时,将存储体分配给不共享纹理坐标的纹理。
CN201510672739.1A 2014-10-22 2015-10-16 高速缓冲存储器系统和操作高速缓冲存储器系统的方法 Active CN105550126B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020140143600A KR102366808B1 (ko) 2014-10-22 2014-10-22 캐시 메모리 시스템 및 그 동작방법
KR10-2014-0143600 2014-10-22

Publications (2)

Publication Number Publication Date
CN105550126A true CN105550126A (zh) 2016-05-04
CN105550126B CN105550126B (zh) 2020-11-06

Family

ID=53762051

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510672739.1A Active CN105550126B (zh) 2014-10-22 2015-10-16 高速缓冲存储器系统和操作高速缓冲存储器系统的方法

Country Status (5)

Country Link
US (1) US9773476B2 (zh)
EP (1) EP3012741B1 (zh)
JP (1) JP2016085729A (zh)
KR (1) KR102366808B1 (zh)
CN (1) CN105550126B (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106055487A (zh) * 2016-05-31 2016-10-26 上海爱数信息技术股份有限公司 一种分区着色实现存储系统加速的方法及系统
CN110223214A (zh) * 2019-06-10 2019-09-10 西安博图希电子科技有限公司 一种降低纹理单元访问量的方法、装置及计算机存储介质
CN114385240A (zh) * 2020-10-20 2022-04-22 美光科技公司 组织可编程原子单元指令存储器的方法
CN116028388A (zh) * 2023-01-17 2023-04-28 摩尔线程智能科技(北京)有限责任公司 高速缓存方法、装置、电子设备、存储介质和程序产品
US11693690B2 (en) 2020-10-20 2023-07-04 Micron Technology, Inc. Method of completing a programmable atomic transaction by ensuring memory locks are cleared
CN116467227A (zh) * 2023-06-19 2023-07-21 深流微智能科技(深圳)有限公司 Tmu系统和tmu系统的运算优化方法
US11740929B2 (en) 2020-10-20 2023-08-29 Micron Technology, Inc. Registering a custom atomic operation with the operating system
US11829323B2 (en) 2020-10-20 2023-11-28 Micron Technology, Inc. Method of notifying a process or programmable atomic operation traps
US11989556B2 (en) 2020-10-20 2024-05-21 Micron Technology, Inc. Detecting infinite loops in a programmable atomic transaction
US12020062B2 (en) 2020-10-20 2024-06-25 Micron Technology, Inc. Method of executing programmable atomic unit resources within a multi-process system

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12013780B2 (en) 2020-08-19 2024-06-18 Google Llc Multi-partition memory sharing with multiple components

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020060684A1 (en) * 2000-11-20 2002-05-23 Alcorn Byron A. Managing texture mapping data in a computer graphics system
US20040048653A1 (en) * 2002-09-06 2004-03-11 Laurent Lefebvre Pseudo random number generator and method
US6750872B1 (en) * 1999-09-17 2004-06-15 S3 Graphics, Co., Ltd. Dynamic allocation of texture cache memory
US20040189652A1 (en) * 2003-03-31 2004-09-30 Emberling Brian D. Optimized cache structure for multi-texturing
US7050063B1 (en) * 1999-02-11 2006-05-23 Intel Corporation 3-D rendering texture caching scheme
CN1985243A (zh) * 2004-05-31 2007-06-20 索尼计算机娱乐公司 信息处理装置和信息处理方法
US20080079744A1 (en) * 2006-06-20 2008-04-03 Via Technologies, Inc. Systems and Methods for Performing a Bank Swizzle Operation to Reduce Bank Collisions
CN101310259A (zh) * 2005-12-30 2008-11-19 英特尔公司 用于共享l2映射高速缓存的对称分配的方法和系统
CN101714247A (zh) * 2008-09-29 2010-05-26 辉达公司 单通道镶嵌
CN104036537A (zh) * 2013-03-08 2014-09-10 辉达公司 多分辨率一致光栅化
US20150097851A1 (en) * 2013-10-09 2015-04-09 Nvidia Corporation Approach to caching decoded texture data with variable dimensions

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6483516B1 (en) 1998-10-09 2002-11-19 National Semiconductor Corporation Hierarchical texture cache
US6493800B1 (en) 1999-03-31 2002-12-10 International Business Machines Corporation Method and system for dynamically partitioning a shared cache
US6684297B2 (en) 2001-04-11 2004-01-27 Sun Microsystems, Inc. Reverse directory for facilitating accesses involving a lower-level cache
KR100427523B1 (ko) 2002-02-14 2004-04-28 한국과학기술원 3차원 컴퓨터 그래픽 시스템의 텍스쳐 메모리 억세스 장치
US8527713B2 (en) 2006-01-31 2013-09-03 Qualcomm Incorporated Cache locking without interference from normal allocations
KR101862785B1 (ko) 2011-10-17 2018-07-06 삼성전자주식회사 타일 기반 렌더링을 위한 캐쉬 메모리 시스템 및 캐슁 방법

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7050063B1 (en) * 1999-02-11 2006-05-23 Intel Corporation 3-D rendering texture caching scheme
US6750872B1 (en) * 1999-09-17 2004-06-15 S3 Graphics, Co., Ltd. Dynamic allocation of texture cache memory
US20020060684A1 (en) * 2000-11-20 2002-05-23 Alcorn Byron A. Managing texture mapping data in a computer graphics system
US20040048653A1 (en) * 2002-09-06 2004-03-11 Laurent Lefebvre Pseudo random number generator and method
US20040189652A1 (en) * 2003-03-31 2004-09-30 Emberling Brian D. Optimized cache structure for multi-texturing
CN1985243A (zh) * 2004-05-31 2007-06-20 索尼计算机娱乐公司 信息处理装置和信息处理方法
CN101310259A (zh) * 2005-12-30 2008-11-19 英特尔公司 用于共享l2映射高速缓存的对称分配的方法和系统
US20080079744A1 (en) * 2006-06-20 2008-04-03 Via Technologies, Inc. Systems and Methods for Performing a Bank Swizzle Operation to Reduce Bank Collisions
CN101714247A (zh) * 2008-09-29 2010-05-26 辉达公司 单通道镶嵌
CN104036537A (zh) * 2013-03-08 2014-09-10 辉达公司 多分辨率一致光栅化
US20150097851A1 (en) * 2013-10-09 2015-04-09 Nvidia Corporation Approach to caching decoded texture data with variable dimensions

Non-Patent Citations (1)

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

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106055487A (zh) * 2016-05-31 2016-10-26 上海爱数信息技术股份有限公司 一种分区着色实现存储系统加速的方法及系统
CN110223214B (zh) * 2019-06-10 2023-04-11 西安芯瞳半导体技术有限公司 一种降低纹理单元访问量的方法、装置及计算机存储介质
CN110223214A (zh) * 2019-06-10 2019-09-10 西安博图希电子科技有限公司 一种降低纹理单元访问量的方法、装置及计算机存储介质
US11829323B2 (en) 2020-10-20 2023-11-28 Micron Technology, Inc. Method of notifying a process or programmable atomic operation traps
US11693690B2 (en) 2020-10-20 2023-07-04 Micron Technology, Inc. Method of completing a programmable atomic transaction by ensuring memory locks are cleared
US11740929B2 (en) 2020-10-20 2023-08-29 Micron Technology, Inc. Registering a custom atomic operation with the operating system
CN114385240A (zh) * 2020-10-20 2022-04-22 美光科技公司 组织可编程原子单元指令存储器的方法
US11989556B2 (en) 2020-10-20 2024-05-21 Micron Technology, Inc. Detecting infinite loops in a programmable atomic transaction
US12020062B2 (en) 2020-10-20 2024-06-25 Micron Technology, Inc. Method of executing programmable atomic unit resources within a multi-process system
CN116028388A (zh) * 2023-01-17 2023-04-28 摩尔线程智能科技(北京)有限责任公司 高速缓存方法、装置、电子设备、存储介质和程序产品
CN116028388B (zh) * 2023-01-17 2023-12-12 摩尔线程智能科技(北京)有限责任公司 高速缓存方法、装置、电子设备、存储介质和程序产品
CN116467227A (zh) * 2023-06-19 2023-07-21 深流微智能科技(深圳)有限公司 Tmu系统和tmu系统的运算优化方法
CN116467227B (zh) * 2023-06-19 2023-08-25 深流微智能科技(深圳)有限公司 Tmu系统和tmu系统的运算优化方法

Also Published As

Publication number Publication date
JP2016085729A (ja) 2016-05-19
US20160118024A1 (en) 2016-04-28
EP3012741B1 (en) 2018-03-07
KR20160047315A (ko) 2016-05-02
US9773476B2 (en) 2017-09-26
EP3012741A1 (en) 2016-04-27
KR102366808B1 (ko) 2022-02-23
CN105550126B (zh) 2020-11-06

Similar Documents

Publication Publication Date Title
CN105550126A (zh) 高速缓冲存储器系统和操作高速缓冲存储器系统的方法
CN103370728B (zh) 用于图形处理的数据存储地址指派的方法和设备
US7050063B1 (en) 3-D rendering texture caching scheme
US9256536B2 (en) Method and apparatus for providing shared caches
CN103793893A (zh) 采用限缓冲区处理的世界和屏幕空间管线间基元重新排序
US6750872B1 (en) Dynamic allocation of texture cache memory
US9013479B2 (en) Apparatus and method for tile-based rendering
US10229524B2 (en) Apparatus, method and non-transitory computer-readable medium for image processing based on transparency information of a previous frame
JP5808407B2 (ja) アンチエイリアシングされたサンプルの分割ストレージ
JP2014089773A (ja) レイトレース・レンダリングのための並列化された交差テストおよびシェーディングのアーキテクチャ
US20130155103A1 (en) Intermediate value storage within a graphics processing apparatus
CN103365631A (zh) 用于存储器访问的动态库模式寻址
CN104350523B (zh) 用于多通道存储器的填补
CN106960412B (zh) 包括多个缓冲区的存储器设备和驱动存储器的方法
CN107016716B (zh) 确定细节级别的图形处理设备和方法
JP4005083B2 (ja) キャッシュメモリへのプリフェッチを制御するための方法ならびに装置
US20160117855A1 (en) Rendering apparatus and method
CN107250980A (zh) 具有图形和系统存储器冲突检查的计算方法和设备
GB2364873A (en) Graphics data storage in a linearly allocated multi-banked memory
US10019349B2 (en) Cache memory and method of managing the same
CN103620667B (zh) 用于使用色场顺序显示器生成图像的方法和设备
US20040119719A1 (en) Method and apparatus for reading texture data from a cache
US20220083464A1 (en) Memory pool management
KR20170075440A (ko) 텍스쳐의 배치를 결정하는 방법 및 장치.
JP5845910B2 (ja) 画像描画装置、画像描画プログラム、及び、画像描画方法

Legal Events

Date Code Title Description
C06 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