CN112465690B - 用于图形处理的装置、方法和存储介质 - Google Patents
用于图形处理的装置、方法和存储介质 Download PDFInfo
- Publication number
- CN112465690B CN112465690B CN202010923482.3A CN202010923482A CN112465690B CN 112465690 B CN112465690 B CN 112465690B CN 202010923482 A CN202010923482 A CN 202010923482A CN 112465690 B CN112465690 B CN 112465690B
- Authority
- CN
- China
- Prior art keywords
- translation
- space
- graphics
- entries
- address
- 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.)
- Active
Links
- 238000012545 processing Methods 0.000 title claims abstract description 57
- 238000000034 method Methods 0.000 title claims abstract description 30
- 238000003860 storage Methods 0.000 title claims description 19
- 238000013519 translation Methods 0.000 claims abstract description 137
- 230000015654 memory Effects 0.000 claims abstract description 50
- 238000006243 chemical reaction Methods 0.000 claims description 31
- 238000013461 design Methods 0.000 claims description 31
- 238000013507 mapping Methods 0.000 claims description 14
- 230000000694 effects Effects 0.000 claims description 11
- 238000004519 manufacturing process Methods 0.000 claims description 11
- 239000004065 semiconductor Substances 0.000 claims description 7
- 230000014616 translation Effects 0.000 description 86
- 238000010586 diagram Methods 0.000 description 15
- 235000019587 texture Nutrition 0.000 description 13
- 230000000875 corresponding effect Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 239000000463 material Substances 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 239000004744 fabric Substances 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 235000019580 granularity Nutrition 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000000844 transformation Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004091 panning Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1036—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- 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
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/001—Texturing; Colouring; Generation of texture or colour
-
- 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
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/45—Caching of specific data in cache memory
- G06F2212/455—Image or video data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/654—Look-ahead translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/68—Details of translation look-aside buffer [TLB]
- G06F2212/681—Multi-level TLB, e.g. microTLB and main TLB
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Graphics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Image Generation (AREA)
Abstract
本公开涉及图形表面寻址。公开了与图形表面的存储器分配有关的技术。在实施例中,图形处理电路被配置为基于表面空间中的分配给图形表面的地址来访问图形表面。在实施例中,第一转换电路被配置为访问用于表面空间的页面的一组多个转换条目中的一个或多个条目(其中使用虚拟空间中的地址存储转换条目并将表面空间的页面映射到虚拟空间),基于转换条目中的一个或多个条目将表面空间的地址信息转换为虚拟空间中的地址信息。图形处理电路被配置为基于第一转换电路进行的转换提供用于访问图形表面的地址,第二转换电路被配置为将虚拟空间中的地址转换为被配置为存储该图形表面的存储器的物理空间中的地址。所公开技术允许较大图形表面的稀疏分配。
Description
技术领域
本公开总体上涉及存储器分配,并且更具体地涉及图形表面的多层地址转换。
背景技术
图形处理器通常使用表面诸如纹理来确定进行渲染的场景的像素属性。表面通常包括大量的数据(例如,对于高分辨率图像而言),因此在某些场景中为表面分配存储器空间可能负面地影响其他处理。
附图说明
图1是示出根据一些实施方案的被配置为处理表面空间中的地址的示例性多层转换电路的框图。
图2A是示出根据一些实施方案的示例性表面、虚拟和物理空间的图示。
图2B是示出根据一些实施方案的示例性表面空间转换表的图示。
图3是示出根据一些实施方案的转换电路的更详细示例的框图。
图4是示出根据一些实施方案的使用表面空间访问表面的示例性方法的流程图。
图5是示出根据一些实施方案的可包括一个或多个图形处理器的示例性计算设备的框图。
图6是示出根据一些实施方案的一种存储电路设计信息的示例性计算机可读介质的框图。
具体实施方式
本说明书包括对各种实施方案的参考,以指示本公开并非旨在提及一个特定具体实施,而是提及落入包括所附权利要求书的本公开的实质内的一系列实施方案。特定特征、结构或特性可以与本公开一致的任何合适的方式被组合。
在本公开内,不同实体(其可被不同地称为“单元”、“电路”、其他部件等等)可被描述或声称成“被配置为”执行一个或多个任务或操作。此表达方式——被配置为[执行一个或多个任务]的[实体]——在本文中用于指代结构(即,物理的事物,诸如电子电路)。更具体地,此表达方式用于指示此结构被布置成在操作期间执行一个或多个任务。结构可被描述成“被配置为”执行某个任务,即使该结构当前并非正***作亦如此。“被配置为转换地址的转换电路”旨在覆盖例如在操作期间执行此功能的电路,即使所考虑的电路当前并未正在被使用(例如,该电路并未连接到电力)。因此,被描述或表述成“被配置为”执行某个任务的实体是指物理的事物,诸如设备、电路、存储可执行以实施该任务的程序指令的存储器等。该短语在本文中不被用于指代无形的事物。
术语“被配置为”并不旨在表示“可被配置为”。例如,未经编程的FPGA不会被认为是“被配置为”执行某个特定功能,虽然其可能“可被配置为”执行该功能。在适当编程之后,FPGA然后可被配置为执行该功能。
所附权利要求书中的表述结构“被配置为”执行一个或多个任务明确地旨在对该权利要求要素不援引35 U.S.C.§112(±)。于是,所提交的本申请中没有任何权利要求旨在要被解释为具有装置-加-功能要素。如果申请人在申请过程期间想要援引节段112(±),则其将使用“用于”[执行功能]“的装置”结构来表述权利要求要素。
如本文所用,术语“基于”用于描述影响确定的一个或多个因素。此术语不排除可能有附加因素可影响确定。也就是说,确定可仅基于指定的因素或基于所指定的因素及其他未指定的因素。考虑短语“基于B确定A”。此短语指定B是用于确定A的因素或者B影响A的确定。此短语并不排除A的确定也可基于某个其他因素诸如C。这个短语还旨在涵盖A仅基于B来确定的实施方案。如本文所用,短语“基于”与短语“至少部分地基于”是同义的。
此外,如本文所用,术语“第一”、“第二”、“第三”等并不一定暗示元件之间的排序(例如,时间顺序)。例如,对“第一”图形操作和“第二”图形操作的参考并不暗示对图形操作的排序,缺少限制这些操作之间的时间关系的附加语言。简而言之,诸如“第一”、“第二”等的参考用作标记,以便于在说明书和所附权利要求中进行参考。
图形表面诸如纹理通常用于确定渲染的场景的像素属性。例如,图形处理器可将场景坐标映射到纹理坐标,并且使用各种技术或滤波器对那些纹理坐标附近的纹素进行采样以确定像素属性。一些纹理可以包括大量数据,例如对于高分辨率纹理。在公开的实施方案中,***被配置为在不为整个表面分配存储器空间的情况下使用图形表面。需注意,例如,表面可具有三个(或三个以上)维度,例如,当产生多个mipmap以表示纹理的不同细节等级时,如本领域技术人员所熟知的。
在一些实施方案中,具有稀疏分配的表面可以具有其自己的表面空间,而不是直接映射到虚拟空间中。该表面空间对于给定表面可以是唯一的,并且可以将用于不同表面的多个表面空间映射到虚拟空间。在一些实施方案中,使用用于每个稀疏表面的转换表将表面空间映射到稀疏页面颗粒中的虚拟空间。在一些实施方案中,表面空间的页面被映射到虚拟空间中的连续页面,这可以允许使用基地址和偏移进行转换。利用表面空间中的地址的访问可导致多个转换,例如,到虚拟空间的第一转换和到物理空间的第二转换(其中第二转换可以类似于以虚拟空间中的地址开始的其他访问)。示例性表面、虚拟和物理空间将在下面参考图2A和图2B详细讨论。需注意,在各种实施方案中,当稀疏地分配表面时,可以不分配表面空间的某些页面,并且可以检测并适当地处理对那些页面的访问。在各种实施方案中,这些技术可以允许在不为整个表面分配存储器空间的情况下使用较大表面。在一些实施方案中,对稀疏表面的未映射页面的访问可以由第一组转换电路检测并且可以避免对共享数据高速缓存的这些访问的带宽或分配影响。
图1是示出根据一些实施方案的被配置为处理表面空间中的地址的示例多层转换电路的框图。在例示的实施方案中,设备包括处理电路110、第一转换电路120、第二转换电路130和存储器140。在例示的实施方案中,第一转换电路120被配置为在表面空间中的地址与虚拟空间中的地址之间进行转换,而第二转换电路130被配置为在虚拟空间中的地址与物理空间中的地址之间进行转换。
在一些实施方案中,处理电路110被配置为访问存储器140中的稀疏分配的表面。需注意,存储器140可以是高速缓存/存储器分级结构的一部分。如本领域中众所周知的,设备可以实现比存储器140提供的实际物理空间更大的虚拟空间。处理电路110的非限制性示例包括纹理处理单元(TPU)或像素后端(PBE)。在一些实施方案中,稀疏寻址可以仅对包括在设备中的处理电路的一部分可用(例如,该功能可以对TPU和PBE可用,但对其他电路诸如可编程着色器管线不可用)。在例示的实施方案中,处理电路110被配置为当访问稀疏分配的表面时向第一转换电路120提供表面空间的地址信息。该地址信息例如可以包括表面空间的转换表的地址。
在例示的实施方案中,第一转换电路120被配置为接收表面空间的地址信息,并且将虚拟空间中的对应地址信息提供给处理电路110。在一些实施方案中,第一转换电路120被配置为基于存储在存储器140中的表面空间转换表165提供这种转换,该表面空间转换表可以使用虚拟空间中的地址来存储,因此在被访问之前需要转换到物理空间中的地址。在一些实施方案中,该转换表165由正在执行的图形程序填充。在一些实施方案中,第一转换电路120被配置为缓存转换表数据,如下面参考图3进一步详细讨论的。在例示的实施方案中,第一转换电路120被配置为经由第二转换电路130(例如,基于在虚拟空间中的表面空间转换表165中被访问的地址)发出请求并接收与转换信息相关的响应。需注意,如果未映射表面空间中的页面,则第一转换电路120可以向处理电路110指示这种情况,而不是提供地址信息。
在例示的实施方案中,处理电路110从第一转换电路120接收虚拟空间中的地址信息,并且基于该地址信息将虚拟空间中的地址提供给第二转换电路130。例如,如果来自转换电路120的虚拟空间中的地址信息是用于表面空间中的稀疏页面的虚拟空间中的地址,则处理电路110可以基于表面空间内的计算的偏移和稀疏页面的虚拟地址来生成虚拟空间中的访问地址。在其他实施方案中,由第一转换电路120生成的地址信息可以具体地包括待提供给第二转换电路130的虚拟空间中的地址(例如,在其中处理电路110将计算的偏移发送至转换电路120的实施方案中)。
在例示的实施方案中,第二转换电路130被配置为接收虚拟空间中的地址,并且将其转换为物理地址,例如,用于将待访问的数据存储在图形表面部分155(存储在存储器140中)中的物理地址。在一些实施方案中,第二转换电路130包括在存储器管理单元(MMU)中。第二转换电路130可以使用各种适当的转换技术中的任何一种来将虚拟空间中的地址转换为物理空间中的地址。在一些实施方案中,第二转换电路130可以实现传统的分页技术,这可以允许在现有MMU设计中使用第一转换电路120。第二转换电路130可以将页表存储在存储器140中,该页表可以使用物理空间中的地址来初始寻址(与使用虚拟空间中的地址初始寻址的表面空间转换表165不同)。在例示的实施方案中,第二转换电路130将物理地址提供给存储器140,存储器使用物理地址读取或写入数据(在读取的情况下,在所示示例中,第二转换电路130将读取的数据提供给处理电路110,并且可以为写入提供完成信号)。
在一些实施方案中,处理电路110还被配置为访问虚拟空间内的传统分配的表面。可能不会为表面分配其自己的表面空间,而是直接在虚拟空间中分配。例如,控制信息可以指示表面是否被稀疏地分配。当访问未被稀疏地分配的表面时,处理电路110可以在不使用第一转换电路120的情况下将虚拟空间中的地址直接提供给第二转换电路130。
考虑到图形程序可以稀疏地分配表面(例如,仅为表面空间的页面的一部分提供映射),则从处理电路110到第一转换电路120的地址信息可以对应于未被表面空间转换表165映射的页面。在这种情况下,第一转换电路120可以向处理电路110提供指示映射缺乏的信号。其他电路或正在执行的图形程序可基于该指示采取各种动作。例如,如果处理电路110是纹理处理单元,则它可以用恒定颜色过滤未映射的纹素,并且向执行图形程序的可编程着色器发送否定确认(NACK)。着色器然后可采取各种动作,诸如映射所请求的页面(例如,当活动计数指示页面已被访问频率时,如以下详细讨论的)、访问表面的较低分辨率部分(例如,另一mipmap等级)等。在一些实施方案中,像素后端可终止对未映射地址的写入。
需注意,尽管本文公开的各种实施方案涉及对图形表面的分配,但是所公开的技术可以用于各种其他的数据结构,无论是否与图形有关;图形表面是为了说明的目的而包括在内的,但并不旨在限制本公开的范围。此外,除了图形处理器之外或代替图形处理器,所公开的技术可以由其他类型的处理器诸如中央处理单元实现。
图2A是示出根据一些实施方案的示例性地址空间的图示。在例示的实施方案中,***实现虚拟空间210、多个表面空间220A至220N和物理空间230。在一些实施方案中,在虚拟空间210内映射表面空间220可提供虚拟空间的益处(例如,在虚拟到物理映射之外不能访问物理空间),同时允许较不可信的稀疏表面分配。需注意,***可以使用虚拟空间210中的地址存储每个表面空间220的转换表(并且这些地址被转换成物理空间230中的地址以用于实际存储),并且***可以使用物理空间230中的地址存储虚拟空间210的页表。
图2B是示出根据一些实施方案的示例性表面空间转换表的图示。在例示的实施方案中,表165包括多个条目250A至250N和对应的活动计数字段260A至260N。在一些实施方案中,对于表面空间220的每个页面存在条目250。在一些实施方案中,每个条目250提供表面空间页面和虚拟空间页面之间的映射或者不存在用于表面空间页面的映射的指示。需注意,在表面空间和虚拟空间具有不同页面大小的实施方案中,条目可以指示多个表面空间页面和一个虚拟空间页面之间的映射,或者反之亦然。在一些实施方案中,每个条目250包括指示页面是否被映射的字段。转换电路可以基于表面空间220中的所请求的地址(例如,基于表面空间的基地址字段和空间内的所确定的偏移)访问表165的适当条目。
在一些实施方案中,活动计数字段260被配置为存储活动计数,该活动计数指示尝试访问表面空间的对应页面的尝试次数。在一些实施方案中,图形程序可以使用这些计数来做出关于映射或取消映射表面空间的哪些页面的决定。需注意,活动计数可能会基于访问页面的请求而更新,即使该页面未被映射。此外,可以基于各种粒度的访问来维护活动计数。例如,可以保证对阈值数量的字节的访问递增对应的活动计数,但是较小的访问也可以引起递增,例如,基于特定实施方式中的高速缓存行为。
在一些实施方案中,存储在转换表165中的数据例如与表的基地址之后的映射的第一部分的地址、随后是对应活动计数的地址、随后是映射的另一部分的地址等交织。如上所述,表165的基地址可以是虚拟空间21O中的地址。
图3是示出根据一些实施方案的转换电路的更详细示例的框图。需注意,具有与图1中相同编号的元件可以如上文参考图1所讨论的那样配置。在所示的示例中,设备包括处理电路110、其他处理电路322、稀疏级1(L1)高速缓存320、稀疏级2(L2)高速缓存325、L2数据高速缓存380、第二转换电路130和存储器140。
示出其他处理电路322以说明稀疏转换电路可以由多个处理电路共享,例如,纹理处理单元、像素后端等。在各种实施方案中,稀疏转换电路可以被配置为转换各种适当数量的客户端电路中的任何客户端电路的地址。
在例示的实施方案中,被配置为从表面空间中的地址转换到虚拟空间的转换电路包括多个高速缓存等级320和325。在一些实施方案中,稀疏L1高速缓存320和稀疏L2高速缓存325两者被配置为存储来自表面空间转换表365的条目。稀疏L2高速缓存325可以是被配置为比稀疏L1高速缓存320缓存更多转换条目的更大的高速缓存。
在一些实施方案中,表面空间中的地址包括页面基地址、偏移和页面大小。在一些实施方案中,处理电路110将表面空间中的页面地址发送到稀疏L1高速缓存320,以确定该页面是否被映射。在其他实施方案中,处理电路110确定被访问的页面的转换表条目,并且将虚拟空间中的转换表条目的地址发送到稀疏L1高速缓存320。在一些实施方案中,L1高速缓存包括配置为基于页表条目250确定虚拟空间中的地址的控制电路。在一些实施方案中,这包括首先确定对应的页表条目250的虚拟空间地址,确定该条目是否被缓存(例如,使用虚拟空间地址的一部分作为标签),以及如果该条目被缓存,则基于页表条目250的内容确定虚拟空间中的稀疏页的地址。如果页表条目250未被缓存在稀疏L1高速缓存320中,则控制电路可以向稀疏L2高速缓存325发送请求,如果有命中,则稀疏L2高速缓存可以返回条目,或者如果有未命中,则访问表面空间转换表365以尝试检索页表条目。在例示的实施方案中,如果存在映射,高速缓存320返回虚拟空间中的页面地址,处理电路110可以使用该页面地址生成虚拟空间中的地址(例如,基于计算的偏移和接收的地址)。在其他实施方案中,L1高速缓存320可以以其他粒度发送和接收地址信息,例如包括用于处理电路110的请求的特定地址。
在一些实施方案中,例如由于其大小和预取技术,对稀疏L2高速缓存325的访问很少未命中。例如,在请求对应的地址之前,***可将表面的2D范围中的附近页表条目250预取到稀疏L2高速缓存325中。因此,转换电路可以甚至在不访问存储器140中的转换表的情况下在虚拟空间中生成地址,甚至用于首次访问表面空间中的页面。在一些实施方案中,这可以有利地允许具有低延迟的稀疏转换,例如,仅在第一次访问表面的2D范围时未命中。
在例示的实施方案中,***包括基于虚拟空间中的地址进行操作的L2数据高速缓存380。L2数据高速缓存380可以是由多个块共享的高速缓存,例如可编程着色器、纹理处理单元等。稀疏L2高速缓存325可直接经由第二转换电路130或经由L2数据高速缓存380访问表面空间转换表365,如所示示例中所示。一般而言,使用边带稀疏转换电路(例如,高速缓存320和325)映射表面空间中的页面可以避免对用于其他操作的L2数据高速缓存380的干扰。
在例示的实施方案中,稀疏L1高速缓存320中的控制电路还被配置为维护用于所缓存的转换条目的活动计数器310。可以以各种适当的数据粒度中的任何一种来维护活动计数器。在一些实施方案中,对于表面空间中的每个请求,稀疏L1高速缓存320递增一个或多个对应的活动计数器。当***从稀疏L1高速缓存320逐出条目时,***可以在稀疏L2高速缓存325或表面空间转换表365中存储对应的活动计数器。需注意,本文讨论的各种高速缓存可以使用各种高速缓存实施方式,包括使用不同的关联性、使用回写或透写技术、使用不同的替换策略等。
在例示的实施方案中,存储器140还存储页表385,该页表可以在物理空间中被寻址,并且由第二转换电路130用来将虚拟空间中的地址转换为物理空间中的地址。
示例性方法
图4是示出根据一些实施方案的使用表面空间访问表面的示例性方法的流程图。图4所示的方法可以结合本文所公开的计算机电路、***、设备、元件或部件等中的任一者来使用。在各种实施方案中,所示的方法要素中的一些可按与所示次序不同的次序并发执行,或者可被省去。也可根据需要执行附加的方法要素。
在410处,在例示的实施方案中,图形处理电路基于表面空间中的分配给图形表面的地址来访问图形表面。在一些实施方案中,表面空间的部分被映射到虚拟空间,这可以有利地提供虚拟空间的安全性,同时允许表面的稀疏分配。在一些实施方案中,表面空间专用于图形表面,使得其他表面不使用该表面空间。在一些实施方案中,图形表面包括二维以上的元素。例如,表面可以是用于纹理的一组mipmap,该组mipmap表示处于不同细节等级的纹理。在其他情况或实施方案中,表面可以是一维或二维的。
在420处,在例示的实施方案中,第一转换电路访问用于表面空间的页面的一组多个转换条目中的一个或多个条目,其中这些转换条目使用虚拟空间中的地址存储,并且将表面空间的页面映射到虚拟空间。需注意,第一转换电路可以在内部(例如,使用一个或多个专用高速缓存)维护该组条目的全部或部分条目,或者可以在外部(例如,在存储器140或一些其他存储器中)维护这些条目。图2B的页表条目250是转换条目的示例。在一些实施方案中,该组转换条目可由该装置执行的图形指令来配置。例如,图形程序可以分配或修改页表条目250。在一些实施方案中,页表条目包括指示表面空间中的页面未被映射的信息,例如,表面是否被稀疏地分配。
在430处,在例示的实施方案中,第一转换电路基于转换条目中的一个或多个条目将表面空间的地址信息转换为虚拟空间中的地址信息。例如,表面空间的地址信息可以指定:(1)虚拟空间中用于表面空间的转换表的基地址,以及(2)表面空间内的计算的偏移。这可用于在虚拟空间中生成表中的适当转换条目的地址。转换条目可以提供虚拟空间中的稀疏页面的地址,该地址可以与表面空间内的计算的偏移结合使用,以生成用于访问表面的虚拟地址。需注意,在不同的实施方案中,该示例中的计算的不同部分可以在处理电路110和转换电路120之间划分。例如,在一个实施方案中,处理电路110可以发送具有计算的偏移和转换表的虚拟空间中的基地址两者的地址信息,或者在另一个实施方案中,可以计算并发送虚拟空间中的转换条目的地址。
在440处,在例示的实施方案中,图形处理电路基于第一转换电路进行的转换,提供用于访问图形表面的地址。例如,图形处理电路可以向第二转换电路130提供用于在虚拟空间中访问的地址。
在450处,在例示的实施方案中,第二转换电路将虚拟空间中的地址转换为被配置为存储图形表面的存储器的物理空间中的地址。然后,***可以使用物理空间中的地址来访问图形表面的数据。
在一些实施方案中,第一转换电路***被配置为在存储器(例如,实施物理空间的存储器)中维护该组多个转换条目,并且被配置为在高速缓存中缓存该组多个转换条目的至少一部分。在一些实施方案中,第一转换电路使用多个高速缓存等级用于转换条目,例如,第一级高速缓存和第二级高速缓存,其中第二级高速缓存被配置为缓存比第一级高速缓存更大数量的转换条目的数据。在一些实施方案中,该***被配置为在接收对应于一个或多个转换条目的访问请求之前,将用于所述一个或多个转换条目的数据预取到第二级高速缓存中。
在一些实施方案中,图形电路1被配置为访问不使用多层平移的其他图形表面。例如,图形处理电路可以在不使用第一转换电路的情况下使用虚拟空间中的地址来访问存储在存储器中的另一图形表面,并且第二转换电路可以将虚拟空间中的地址转换为物理空间中的地址。
示例性设备
现在参考图5,示出了例示设备500的示例性实施方案的框图。在一些实施方案中,可将设备500的元件包括在片上***内。在一些实施方案中,可将设备500包括在可以是电池供电的移动设备中。因此,设备500的功率消耗可能是重要的设计考虑因素。在例示的实施方案中,设备500包括结构体510、计算复合体520、输入/输出(I/0)桥550、高速缓存/存储器控制器545、图形单元570和显示单元565。在一些实施方案中,除所示的部件之外和/或代替所示的部件,设备500可包括其他部件(未示出),诸如视频处理器编码器和解码器、图像处理或识别元件、计算机视觉元件等。
结构体510可以包括各种互连器、总线、MUX、控制器等,并且可以被配置为促进设备500的各种元件之间的通信。在一些实施方案中,结构体510的各部分可以被配置为实现各种不同的通信协议。在其他实施方案中,结构体510可以实现单个通信协议,并且耦接到结构体510的元件可以在内部从单个通信协议转换为其他通信协议。
在例示的实施方案中,计算复合体520包括总线接口单元(BIU)525、高速缓存530以及内核535和540。在各种实施方案中,计算复合体520可包括各种数量的处理器、处理器内核和/或高速缓存。例如,计算复合体520可包括1个、2个或4个处理器内核,或任何其他合适数量。在一个实施方案中,高速缓存530是组关联L2高速缓存。在一些实施方案中,内核535和/或540可以包括内部指令和/或数据高速缓存。在一些实施方案中,结构体510、高速缓存530或设备500中的其他地方的一致性单元(未示出)可被配置为维持设备500的各个高速缓存之间的一致性。BIU 525可以被配置为管理计算复合体520与设备500的其他元件之间的通信。处理器内核(诸如内核535和540)可被配置为执行可包括操作***指令和用户应用指令的特定指令集架构(ISA)的指令。
高速缓存/存储器控制器545可被配置为管理结构体510与一个或多个高速缓存和/或存储器之间的数据传输。例如,可将高速缓存/存储器控制器545耦接到L3高速缓存,继而可将该L3高速缓存耦接到***存储器。在其他实施方案中,可将高速缓存/存储器控制器545直接耦接到存储器。在一些实施方案中,高速缓存/存储器控制器545可包括一个或多个内部高速缓存。
如本文所用,术语“耦接到”可指示元件之间的一个或多个连接,并且耦接可包括中间元件。例如,在图5中,图形单元570可被描述为通过结构体510和高速缓存/存储器控制器545“耦接到”存储器。相比之下,在图5的例示的实施方案中,图形单元570“直接耦接”到结构体510,因为不存在中间元件。
图形单元570可包括一个或多个处理器和/或一个或多个图形处理单元(GPU)。例如,图形单元570可接收面向图形的指令,诸如Metal或指令。图形单元570可基于所接收的面向图形的指令执行专用GPU指令或执行其他操作。图形单元570通常可被配置为并行处理大块数据,并且可在帧缓冲器中构建图像以输出到显示器。图形单元570可包括在一个或多个图形处理流水线中的变换、照明、三角形和/或渲染引擎。图形单元570可输出用于显示图像的像素信息。在各种实施方案中,可编程着色器575可以包括被配置为执行图形程序的高度并行的执行核,这些图形程序可以包括像素任务、顶点任务和计算任务(其可以是图形相关的或可以不是图形相关的)。
在一些实施方案中,上面参考图1至图4讨论的各种电路被包括在图形单元570中。
显示单元565可被配置为从帧缓冲区读取数据并提供像素值流以用于显示。在一些实施方案中,显示单元565可被配置为显示流水线。另外,显示单元565可被配置为将多个帧混合以产生输出帧。此外,显示单元565可以包括用于耦接到用户显示器(例如,触摸屏或外部显示器)的一个或多个接口(例如,或嵌入式显示端口(eDP))。
I/O桥550可包括被配置为实现:例如,通用串行总线(USB)通信、安全性、音频和/或低功率永远在线功能性的各种元件。例如,I/O桥550还可包括接口,诸如脉冲宽度调制(PWM)、通用输入/输出(GPIO)、串行***接口(SPI)和/或内部集成电路(I2C)。可将各种类型的***设备和设备经由I/O桥550耦接到设备500。
示例性计算机可读介质
本公开已经在上文中详细描述了各种示例性电路。意图在于本公开不仅涵盖包括此类电路***的实施方案,而且还涵盖包括指定此类电路***的设计信息的计算机可读存储介质。因此,本公开旨在支持不仅涵盖包括所公开电路***的装置、而且还涵盖以被配置为生成包括所公开电路***的硬件(例如集成电路)的制造***识别的格式指定电路***的存储介质的权利要求。对此类存储介质的权利要求旨在涵盖例如生成电路设计但本身不制造该设计的实体。
图6是示出根据一些实施方案的存储电路设计信息的示例性非暂态计算机可读存储介质的框图。在例示的实施方案中,半导体制造***620被配置为处理存储在非暂态计算机可读介质610上的设计信息615并基于设计信息615制造集成电路630。
非暂态计算机可读存储介质610可以包括各种适当类型的存储器设备或存储设备中的任何设备。非暂态计算机可读存储介质610可以是安装介质,例如CD-ROM、软盘或磁带设备;计算机***存储器或随机存取存储器诸如DRAM、DDR RAM、SRAM、EDO RAM、Rambus RAM等;非易失性存储器诸如闪存、磁介质,例如,硬盘驱动器或光学存储装置;寄存器,或其他类似类型的存储器元件等。非暂态计算机可读存储介质610还可以包括其他类型的非暂态存储器或它们的组合。非暂态计算机可读存储介质610可以包括可驻留在不同位置例如通过网络连接的不同计算机***中的两个或更多个存储器介质。
设计信息615可利用各种适当的计算机语言中的任何语言来指定,包括硬件描述语言诸如但不限于:VHDL、Verilog、SystemC、SystemVerilog、RHDL、M、MyHDL等。设计信息615可以能被半导体制造***620用来制造集成电路630的至少一部分。设计信息615的格式可以被至少一个半导体制造***620识别。在一些实施方案中,设计信息615还可以包括指定集成电路630的综合和/或布局的一个或多个单元库。在一些实施方案中,设计信息整体或部分地以指定单元库元素及其连接性的网表的形式来指定。单独获取的设计信息615可以包括或可以不包括用于制造对应集成电路的足够信息。例如,设计信息615可以指定要制造的电路元件,但不指定它们的物理布局。在这种情况下,设计信息615可能需要与布局信息组合以实际制造指定的电路。
在各种实施方案中,集成电路630可以包括一个或多个定制宏单元,例如存储器、模拟或混合信号电路等。在这种情况下,设计信息615可以包括与包括的宏单元相关的信息。此类信息可以包括但不限于电路图捕获数据库、掩模设计数据、行为模型以及设备或晶体管级网表。如本文所用,掩模设计数据可以根据图形数据***(GDSII)或任何其他合适的格式来格式化。
半导体制造***620可以包括被配置为制造集成电路的各种适当元件中的任何元件。这可以包括例如用于(例如在可包括掩膜的晶片上)沉积半导体材料、移除材料、改变所沉积材料的形状、(例如通过掺杂材料或利用紫外处理修改介电常数)对材料改性等等的元件。半导体制造***620还可被配置为针对正确操作执行所制造电路的各种测试。
在各种实施方案中,集成电路630被配置为根据设计信息615指定的电路设计来操作,这可包括执行本文所述的功能性中的任何功能性。例如,集成电路630可包括图1、图3和图5中所示的各种元件中的任何元件。另外,集成电路630可以被配置为执行本文结合其他部件所述的各种功能。另外,本文所述的功能性可由多个连接的集成电路来执行。
如本文所用,“指定被配置为...的电路的设计的设计信息”形式的短语不暗示必须制造所考虑的电路以满足要素。相反,该短语表明设计信息描述了一种电路,该电路在被制造时将被配置为执行所指示的动作或者将包括所指定的部件。
***
尽管上文已经描述了具体实施方案,但这些实施方案并非要限制本公开的范围,即使仅相对于特定特征描述单个实施方案的情况下也是如此。本公开中提供的特征示例意在进行例示,而非限制,除非做出不同表述。上述说明书意在涵盖此类替代形式、修改形式和等价形式,这对知晓本公开有效效果的本领域技术人员将是显而易见的。
本公开的范围包括本文(明确或暗示)公开的任意特征或特征的组合或其任意概括,而无论其是否减轻本文解决的任何或所有问题。因此,在本专利申请(或要求享有其优先权的专利申请)进行期间可针对特征的任何此类组合作出新的权利要求。具体地,参考所附权利要求书,可将从属权利要求的特征与独立权利要求的特征进行组合,并可通过任何适当的方式而不是仅通过所附权利要求书中所列举的特定组合来组合来自相应独立权利要求的特征。
Claims (19)
1.一种用于图形处理的装置,包括:
图形处理电路,所述图形处理电路被配置为基于表面空间中的分配给图形表面的地址来访问所述图形表面;
第一转换电路,所述第一转换电路被配置为:
访问用于所述表面空间的页面的一组多个转换条目中的一个或多个条目,其中所述转换条目是使用虚拟空间中的地址存储的并将所述表面空间的页面映射到所述虚拟空间;以及
基于所述转换条目中的一个或多个转换条目将所述表面空间的地址信息转换为所述虚拟空间中的地址信息;
其中所述转换条目能够由所述装置执行的图形程序配置,
其中所述图形程序被配置为初始仅将所述表面空间的一部分映射到所述虚拟空间;并且
其中所述图形处理电路被配置为基于所述第一转换电路进行的转换来提供用于对所述图形表面的所述访问的所述虚拟空间中的地址;和
第二转换电路,所述第二转换电路被配置为将所述虚拟空间中的所述地址转换为被配置为存储所述图形表面的存储器的物理空间中的地址。
2.根据权利要求1所述的装置,其中所述装置被配置为将不同的表面空间分配给不同的图形表面并存储用于所述不同的表面空间的相应组的转换条目。
3.根据权利要求1所述的装置,其中所述第一转换电路被配置为将所述一组多个转换条目中的转换信息的至少一部分缓存在高速缓存中,所述高速缓存专用于缓存表面空间的转换信息。
4.根据权利要求1所述的装置,其中所述第一转换电路被进一步配置为:
使用第一级高速缓存和第二级高速缓存来缓存来自转换条目的数据,其中所述第二级高速缓存被配置为缓存比所述第一级高速缓存更大数量的转换条目的数据;
其中所述第一级高速缓存被配置为基于对应于所述转换条目的访问请求来调整用于所缓存的转换条目的活动计数信息。
5.根据权利要求4所述的装置,其中所述装置被配置为在接收对应于一个或多个转换条目的访问请求之前,将用于所述一个或多个转换条目的数据预取到所述第二级高速缓存中。
6.根据权利要求1所述的装置,其中所述图形处理电路被进一步配置为在不使用所述第一转换电路的情况下使用所述虚拟空间中的地址来访问存储在所述存储器中的另一图形表面。
7.根据权利要求1所述的装置,其中所述装置被配置为基于对所述表面空间的部分的访问来维护活动计数信息;并且
其中所述图形处理电路被配置为执行所述图形程序以基于与所述表面空间的所述页面相关联的活动计数信息将所述表面空间的先前未映射的页面映射到所述虚拟空间。
8.一种用于图形处理的非暂态计算机可读存储介质,其上存储有设计信息,所述设计信息以半导体制造***识别的格式指定硬件集成电路的至少一部分的设计,所述半导体制造***被配置为使用所述设计信息来根据所述设计生产所述电路,其中所述设计信息指定所述电路包括:
图形处理电路,所述图形处理电路被配置为基于表面空间中的分配给图形表面的地址来访问所述图形表面;
第一转换电路,所述第一转换电路被配置为:
访问用于所述表面空间的页面的一组多个转换条目中的一个或多个条目,其中所述转换条目是使用虚拟空间中的地址存储的并将所述表面空间的页面映射到所述虚拟空间;以及
基于所述转换条目中的一个或多个转换条目将所述表面空间的地址信息转换为所述虚拟空间中的地址信息;
其中所述转换条目能够由所述电路执行的图形程序配置,
其中所述图形程序初始仅将所述表面空间的一部分映射到所述虚拟空间;并且
其中所述图形处理电路被配置为基于所述第一转换电路进行的转换,提供用于对所述图形表面的所述访问的所述虚拟空间中的地址;以及
第二转换电路,所述第二转换电路被配置为将所述虚拟空间中的所述地址转换为被配置为存储所述图形表面的存储器的物理空间中的地址。
9.根据权利要求8所述的非暂态计算机可读存储介质,其中所述电路被配置为将不同的表面空间分配给不同的图形表面并存储用于所述不同的表面空间的相应组的转换条目。
10.根据权利要求8所述的非暂态计算机可读存储介质,其中所述第一转换电路被配置为将所述一组多个转换条目中的转换信息的至少一部分缓存在高速缓存中,所述高速缓存专用于缓存表面空间的转换信息。
11.根据权利要求8所述的非暂态计算机可读存储介质,其中所述第一转换电路被进一步配置为:
使用第一级高速缓存和第二级高速缓存来缓存来自转换条目的数据,其中所述第二级高速缓存被配置为缓存比所述第一级高速缓存更大数量的转换条目的数据。
12.根据权利要求11所述的非暂态计算机可读存储介质,其中所述电路被配置为在接收对应于一个或多个转换条目的访问请求之前,将用于所述一个或多个转换条目的数据预取到所述第二级高速缓存中。
13.根据权利要求8所述的非暂态计算机可读存储介质,其中所述图形处理电路被进一步配置为在不使用所述第一转换电路的情况下使用所述虚拟空间中的地址来访问存储在所述存储器中的另一图形表面。
14.一种用于图形处理的方法,包括:
由图形处理电路基于表面空间中的分配给图形表面的地址来访问所述图形表面;
由所述图形处理电路基于图形程序的执行来配置一组多个转换条目,其中所述图形程序被配置为初始仅将所述表面空间的一部分映射到虚拟空间;
由第一转换电路访问用于所述表面空间的页面的所述一组多个转换条目中的一个或多个条目,其中所述转换条目是使用所述虚拟空间中的地址存储的并将所述表面空间的页面映射到所述虚拟空间;
由所述第一转换电路基于所述转换条目中的一个或多个转换条目将所述表面空间的地址信息转换为所述虚拟空间中的地址信息;
由所述图形处理电路基于所述第一转换电路进行的转换,提供用于对所述图形表面的所述访问的所述虚拟空间中的地址;以及
由第二转换电路将所述虚拟空间中的所述地址转换为被配置为存储所述图形表面的存储器的物理空间中的地址。
15.根据权利要求14所述的方法,还包括:
基于所述图形程序的执行,基于与所述表面空间的所述页面相关联的活动计数信息,将所述表面空间的先前未映射的页面映射到所述虚拟空间。
16.根据权利要求14所述的方法,还包括:
由所述第一转换电路维护所述虚拟空间中的所述一组多个转换条目,并且将所述一组多个转换条目的至少一部分的数据缓存在高速缓存中。
17.根据权利要求14所述的方法,还包括:
使用第一级高速缓存和第二级高速缓存来缓存来自转换条目的数据,其中所述第二级高速缓存被配置为缓存比所述第一级高速缓存更大数量的转换条目的数据。
18.根据权利要求17所述的方法,还包括:
在接收对应于一个或多个转换条目的访问请求之前,将用于所述一个或多个转换条目的数据预取到所述第二级高速缓存中。
19.根据权利要求14所述的方法,还包括:
由所述图形处理电路使用所述虚拟空间中的地址访问存储在所述存储器中的另一个图形表面;以及
在不使用所述第一转换电路的情况下,由所述第二转换电路将所述虚拟空间中的所述地址转换为物理存储器中的地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210461213.9A CN114820284A (zh) | 2019-09-06 | 2020-09-04 | 用于图形处理的装置、方法和存储介质 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/563,518 US10872458B1 (en) | 2019-09-06 | 2019-09-06 | Graphics surface addressing |
US16/563,518 | 2019-09-06 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210461213.9A Division CN114820284A (zh) | 2019-09-06 | 2020-09-04 | 用于图形处理的装置、方法和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112465690A CN112465690A (zh) | 2021-03-09 |
CN112465690B true CN112465690B (zh) | 2022-06-07 |
Family
ID=72841257
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010923482.3A Active CN112465690B (zh) | 2019-09-06 | 2020-09-04 | 用于图形处理的装置、方法和存储介质 |
CN202210461213.9A Pending CN114820284A (zh) | 2019-09-06 | 2020-09-04 | 用于图形处理的装置、方法和存储介质 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210461213.9A Pending CN114820284A (zh) | 2019-09-06 | 2020-09-04 | 用于图形处理的装置、方法和存储介质 |
Country Status (7)
Country | Link |
---|---|
US (2) | US10872458B1 (zh) |
JP (2) | JP7037610B2 (zh) |
KR (1) | KR102508987B1 (zh) |
CN (2) | CN112465690B (zh) |
DE (1) | DE102020122831B4 (zh) |
GB (2) | GB2589436B (zh) |
TW (1) | TWI749748B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10872458B1 (en) * | 2019-09-06 | 2020-12-22 | Apple Inc. | Graphics surface addressing |
GB2611542B (en) * | 2021-10-06 | 2023-11-15 | Advanced Risc Mach Ltd | Circuitry and method |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5905509A (en) * | 1997-09-30 | 1999-05-18 | Compaq Computer Corp. | Accelerated Graphics Port two level Gart cache having distributed first level caches |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6859208B1 (en) * | 2000-09-29 | 2005-02-22 | Intel Corporation | Shared translation address caching |
JP2006099191A (ja) * | 2004-09-28 | 2006-04-13 | Dee Corp | 入札管理装置、入札管理方法及び入札管理コンピュータプログラム |
US9058292B2 (en) * | 2004-12-29 | 2015-06-16 | Intel Corporation | System and method for one step address translation of graphics addresses in virtualization |
US7884829B1 (en) * | 2006-10-04 | 2011-02-08 | Nvidia Corporation | Partitioned graphics memory supporting non-power of two number of memory elements |
US7746352B2 (en) * | 2006-11-03 | 2010-06-29 | Nvidia Corporation | Deferred page faulting in virtual memory based sparse texture representations |
US8289333B2 (en) | 2008-03-04 | 2012-10-16 | Apple Inc. | Multi-context graphics processing |
US9035959B2 (en) * | 2008-03-28 | 2015-05-19 | Intel Corporation | Technique to share information among different cache coherency domains |
US8681169B2 (en) * | 2009-12-31 | 2014-03-25 | Nvidia Corporation | Sparse texture systems and methods |
US9390018B2 (en) * | 2012-08-17 | 2016-07-12 | Advanced Micro Devices, Inc. | Data cache prefetch hints |
US9378572B2 (en) * | 2012-08-17 | 2016-06-28 | Intel Corporation | Shared virtual memory |
US10037228B2 (en) | 2012-10-25 | 2018-07-31 | Nvidia Corporation | Efficient memory virtualization in multi-threaded processing units |
KR102093458B1 (ko) | 2013-07-05 | 2020-03-26 | 삼성디스플레이 주식회사 | 커패시터 |
US9355430B2 (en) | 2013-09-20 | 2016-05-31 | Nvidia Corporation | Techniques for interleaving surfaces |
US9595075B2 (en) | 2013-09-26 | 2017-03-14 | Nvidia Corporation | Load/store operations in texture hardware |
US9754561B2 (en) | 2013-10-04 | 2017-09-05 | Nvidia Corporation | Managing memory regions to support sparse mappings |
US9779471B2 (en) * | 2014-10-01 | 2017-10-03 | Qualcomm Incorporated | Transparent pixel format converter |
US9910776B2 (en) * | 2014-11-14 | 2018-03-06 | Cavium, Inc. | Instruction ordering for in-progress operations |
GB2539429B (en) * | 2015-06-16 | 2017-09-06 | Advanced Risc Mach Ltd | Address translation |
US10127627B2 (en) | 2015-09-23 | 2018-11-13 | Intel Corporation | Mapping graphics resources to linear arrays using a paging system |
US10482567B2 (en) | 2015-12-22 | 2019-11-19 | Intel Corporation | Apparatus and method for intelligent resource provisioning for shadow structures |
US9959214B1 (en) * | 2015-12-29 | 2018-05-01 | Amazon Technologies, Inc. | Emulated translation unit using a management processor |
GB2547242B (en) | 2016-02-11 | 2018-05-23 | Advanced Risc Mach Ltd | Graphics processing |
WO2018053829A1 (en) * | 2016-09-26 | 2018-03-29 | Intel Corporation | Apparatus and method for hybrid layer of address mapping for virtualized input/output implementation |
US10599582B2 (en) * | 2016-09-26 | 2020-03-24 | Intel Corporation | Using a virtual to virtual address table for memory compression |
US10783694B2 (en) * | 2017-08-25 | 2020-09-22 | Advanced Micro Devices, Inc. | Texture residency checks using compression metadata |
US10872458B1 (en) * | 2019-09-06 | 2020-12-22 | Apple Inc. | Graphics surface addressing |
-
2019
- 2019-09-06 US US16/563,518 patent/US10872458B1/en active Active
-
2020
- 2020-09-01 JP JP2020147034A patent/JP7037610B2/ja active Active
- 2020-09-01 DE DE102020122831.7A patent/DE102020122831B4/de active Active
- 2020-09-02 KR KR1020200111744A patent/KR102508987B1/ko active IP Right Grant
- 2020-09-03 GB GB2013890.5A patent/GB2589436B/en active Active
- 2020-09-03 TW TW109130165A patent/TWI749748B/zh active
- 2020-09-03 GB GB2115871.2A patent/GB2599807B/en active Active
- 2020-09-04 CN CN202010923482.3A patent/CN112465690B/zh active Active
- 2020-09-04 CN CN202210461213.9A patent/CN114820284A/zh active Pending
- 2020-11-19 US US16/953,021 patent/US11257278B2/en active Active
-
2022
- 2022-03-04 JP JP2022033398A patent/JP7106775B2/ja active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5905509A (en) * | 1997-09-30 | 1999-05-18 | Compaq Computer Corp. | Accelerated Graphics Port two level Gart cache having distributed first level caches |
Also Published As
Publication number | Publication date |
---|---|
GB2599807A (en) | 2022-04-13 |
CN112465690A (zh) | 2021-03-09 |
US11257278B2 (en) | 2022-02-22 |
DE102020122831B4 (de) | 2023-07-06 |
TWI749748B (zh) | 2021-12-11 |
GB202013890D0 (en) | 2020-10-21 |
DE102020122831A1 (de) | 2021-03-11 |
GB2599807B (en) | 2022-10-05 |
JP2022095618A (ja) | 2022-06-28 |
JP2021043966A (ja) | 2021-03-18 |
CN114820284A (zh) | 2022-07-29 |
GB2589436A (en) | 2021-06-02 |
JP7106775B2 (ja) | 2022-07-26 |
KR20210029683A (ko) | 2021-03-16 |
JP7037610B2 (ja) | 2022-03-16 |
KR102508987B1 (ko) | 2023-03-16 |
US20210074053A1 (en) | 2021-03-11 |
US10872458B1 (en) | 2020-12-22 |
TW202111544A (zh) | 2021-03-16 |
GB2589436B (en) | 2021-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10365930B2 (en) | Instructions for managing a parallel cache hierarchy | |
US8341380B2 (en) | Efficient memory translator with variable size cache line coverage | |
US9952977B2 (en) | Cache operations and policies for a multi-threaded client | |
US11829298B2 (en) | On-demand memory allocation | |
US20080276066A1 (en) | Virtual memory translation with pre-fetch prediction | |
JP7106775B2 (ja) | グラフィックス表面アドレス指定 | |
US11488350B2 (en) | Compression techniques and hierarchical caching | |
US11782838B2 (en) | Command processor prefetch techniques | |
US11321241B2 (en) | Techniques to improve translation lookaside buffer reach by leveraging idle resources | |
US11023162B2 (en) | Cache memory with transient storage for cache lines |
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 |