CN101310259B - 用于共享l2映射高速缓存的对称分配的方法和系统 - Google Patents

用于共享l2映射高速缓存的对称分配的方法和系统 Download PDF

Info

Publication number
CN101310259B
CN101310259B CN2006800427778A CN200680042777A CN101310259B CN 101310259 B CN101310259 B CN 101310259B CN 2006800427778 A CN2006800427778 A CN 2006800427778A CN 200680042777 A CN200680042777 A CN 200680042777A CN 101310259 B CN101310259 B CN 101310259B
Authority
CN
China
Prior art keywords
cache
blocking
read request
tag ram
data
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.)
Expired - Fee Related
Application number
CN2006800427778A
Other languages
English (en)
Other versions
CN101310259A (zh
Inventor
M·A·萨博尔
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN101310259A publication Critical patent/CN101310259A/zh
Application granted granted Critical
Publication of CN101310259B publication Critical patent/CN101310259B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/0877Cache access modes
    • G06F12/0886Variable-length word access
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management

Landscapes

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

Abstract

一种用于从块化存储器读取数据的方法、设备、系统和介质。在一些实施例中,一种方法可以包括:对于一个X块化高速缓存读请求,从块化存储器请求两个高速缓存行而不划分X块化高速缓存读请求,以及返回与两个被请求的高速缓存行相关联的数据。

Description

用于共享L2映射高速缓存的对称分配的方法和系统
背景技术
高速缓冲存储器系统一般可以用于提高计算机或其他电子系统中的存储器访问速度。高速缓存的大小和速度的不断增大会趋于改善系统性能。然而,增大的高速缓存的大小和速度可能成本高和/或受到高速缓存的大小和速度发展的限制。此外,可能希望使总体系统性能增益与整个系统成本取得均衡。
可以在高速缓冲存储器系统中使用不同类型的映射方法,例如直接映射、全相联映射和组相联映射。对于组相联映射系统,将高速缓冲存储器分成若干个“组”,其中每个组含有若干“路”或高速缓存行。在每个组中,搜索地址是全相联的。在每个组中可能有n个存储单元或路。例如,在4路组相联高速缓冲存储器中,取决于可用性,可以将数据源处的地址映射到给定组的4个路0、1、2或3中的任何一个。对于8路组相联高速缓冲存储器,可以将数据源处的地址映射到给定组中的8个路或存储单元中的一个。
存储器管理对于图形处理和操作大量其碰到的数据来说是至关重要的。随着对图形(包括3D(三维)纹理化)的处理要求的提高,已经考虑到对存储器分配和映射的各方面加以改善,以增强图形处理。在一些情况下,可以将用于图形数据的按块(tile)来组织存储器。按块组织的存储器与线性组织的存储器相比可以允许更快地访问图形数据。
在一些情况下,可以将用于按块组织的存储器映射的系统和方法用于优化对“y轴优先(y-major)”或“Y块化(tiled-Y)”读请求操作的处理。在Y块化分块(tiling)方案中,Y方向上的两个连续数据结构在存储器中是连贯的。同样,Y轴优先的分块可能是组织用于图形结构化应用的存储器的有效方法。一些图形引擎和图形系统在Y方向上将结构数据从处理器加载到高速缓冲存储器中。因此,可以配置或优化图形引擎或系统以在Y方向上读取图形数据(例如结构数据)。这种优化可以允许在一个时钟周期中处理Y块化读请求。然而,针对一种操作的优化可能会对其他操作具有不希望有的结果。
附图说明
在下面的附图中以举例的方式例示本发明,附图中相同的附图标记表示相同的元件。以下附图仅出于例示的目的公开了本发明的各个实施例,并非意在限制本发明的范围。
图1为根据本文一些实施例的计算机系统的示图;
图2为根据本文一些实施例的示例性流程图;
图3为根据本文一些实施例的示例性流程图;
图4示出根据本文一些实施例的示例性功能实现;以及
图5为根据本文一些实施例的块化高速缓冲存储器管理的一些方面示例性示图。
具体实施方式
以下详细描述给出了很多具体细节以便对本发明有透彻的理解。然而,本领域的普通技术人员将理解在没有这些具体细节的情况下也可以实施本发明。在其他情况下,没有详细描述公知的方法、过程、协议、部件和电路,以免使本发明难以理解。
可以将本文的实施例实现为硬件或软件或两者的结合。可以将一些实施例实现为在可编程系统上执行的计算机程序,所述可编程系统包括至少一个处理器、数据存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入装置和至少一个输出装置。可以将程序代码应用于输入数据,以执行本文所述的功能并产生输出信息。可以将输出信息应用于一个或多个输出装置。出于本文的目的,处理系统可以包括任何具有处理器的系统,所述处理器例如为数字信号处理器(DSP)、微控制器、专用集成电路(ASIC)或微处理器。
可以将指令和程序存储在通用或专用可编程处理系统可读的存储介质或装置(例如硬盘驱动器、软盘驱动器、只读存储器(ROM)、CD-ROM装置、闪存装置、数字多用盘(DVD)或其他存储装置)上,用于在处理系统读取存储介质或装置以执行本文所述操作时配置和操作处理系统。也可以考虑将一些实施例实现为机器可读存储介质,将其配置成用于处理系统,其中如此配置的存储介质使处理系统按照特定和预定的方式操作,以执行本文所述的功能。
在一些实施例中,图形处理系统可以包括按块组织的存储器。这样的存储器组织可以提供快速高效的存储器访问,因为例如可以有效地将显示屏分成矩形区域或块。分块可以允许图形引擎更快地访问存储器而不会导致在存储器子系统中有过多个页缺失(即改善了命中率)。可以利用若干不同的格式,例如X轴优先分块和Y轴优先分块来对图形存储器进行块化。在X轴优先分块或X块化格式中,X方向上的两个连续数据结构(例如四倍长字)在物理存储器中是连贯的。在Y轴优先分块中,Y方向上的两个连续数据结构(例如四倍长字)在存储器中是连贯的。本领域的技术人员将认识到,图形引擎、处理器、系统或子系统可以对图形纹理的一个正方形区域(即纹理元素(texel))进行操作。
对于X方向上的块化组织的存储器的高速缓存读请求(即X块化格式读请求),一些存储器系统可以将该高速缓存读请求分成两个读请求,因为所请求的数据可能包含存储器中不连续的高速缓存行。例如,对32B(字节)的高速缓存读请求可能对应于高速缓存中的两个高速缓存行,因为仅可以使用整个高速缓存行来访问高速缓存。在高速缓存行为64B的情况下,两个高速缓存行可以是128B。然而,将高速缓存读请求划分成两个读高速缓存请求来读取两个高速缓存行将会引入额外的延迟,这是因为两个读高速缓存请求是被顺序处理的。
在一些环境中,可以以每时钟周期32字节的速度对称地向高速缓冲存储器输送背对背(即连续的)Y块化读请求,而可以将每个背对背X块化读请求分成两(2)个读高速缓存请求。于是可能会将额外的时钟延迟引入到高速缓存用于X块化读请求的流水线(pipeline)。例如,对32B(字节)的高速缓存读请求可以对应于高速缓存中的两个高速缓存行,因为仅可以使用整个高速缓存行来访问高速缓存。在高速缓存行为64B的情况下,两个高速缓存行可以是128B。被分成两个读高速缓存请求的X块化读请求可以导致每2个时钟周期返回32B的数据,而不是如为(未划分的)Y块化读请求所提供的那样每个时钟周期返回32B的数据。可能希望如Y块化读请求那样高效地处理X块化读请求,因为例如图形覆盖和显示使用X块化格式。
本文的实施例可以在不划分高速缓存读请求的情况下,通过针对两个高速缓存行的数据的一个高速缓存读请求来从块化存储器(tiled memory)有选择地读取数据。例如,从存储器请求两个高速缓存行的一个高速缓存读请求可以并行读取两个高速缓存行。通过这种方式,可以同时读取两个高速缓存行。这可以允许降低或消除与高速缓存读请求有关的延迟,因为这样一来,未将一个高速缓存读请求分成两个读请求(对于每个期望的高速缓存行有一个读请求)。这可以减小与向块化存储器做出的高速缓存读请求相关联的延迟。
图1示出示例性计算机系统的实施例100的功能框图,该计算机系统包括图形处理器、系统、子系统,或者总体上说,包括体现了本文一些实施例的图形引擎120。系统100可以大致包括诸如CPU(中央处理单元)105的处理单元、主存储器控制器110、主存储器115、输入/输出控制器135、2级(L2)纹理高速缓存120、3D图形引擎125、2D图形引擎130、显示器145和各种输入装置140。2D图形引擎145可以基于来自CPU 105的输入以及主存储器115和L2纹理高速缓存120中的数据确定将要发送到显示器145的图形信息。CPU 105可以访问存储在盘片、网络或CD-ROM等上的数据、启动时引导的程序以及通过输入装置获得的用户输入。CPU 105可以确定发送到图形引擎120的数据流(例如读请求)。
存储器115可以是动态随机存取存储器(DRAM)器件、静态随机存取存储器(SRAM)器件或其他存储器件。存储器115可以存储由数据信号表示的指令和/或数据,所述数据信号可以由CPU 105、3D图形引擎125、2D图形引擎130或一些其他器件执行。指令和/或数据可以包括用于执行本发明的任何和/或全部技术的代码。存储器115还可以含有软件和/或数据。L2纹理高速缓存12可以用于利用其访问局部性加速3D图形引擎125的存储器访问。本领域的技术人员将认识到,L2高速缓存120可以位于CPU 105或图形引擎125、130的内部或外部。
图1仅用于示例性的目的。例如,可以在集成、分立或其他图形结构中使用本文的方法和系统的各种实施例。
图2是根据本文一些实施例的方法或过程200的示例性流程图。在本文的一些实施例中,高速缓存读请求可以从存储器请求两个高速缓存行。对两个高速缓存行的请求可能由存储器的组织引起。例如,可能的情况是,可以以大小为高速缓存行的单位对存储器进行访问。例如,对于32B的高速缓存读请求可以引起两个64B高速缓存行的读请求,其中高速缓存读请求的期望的16B位于每个高速缓存行中。由于存储器系统使用高速缓存行,因此可以向存储器做出对128B的请求。
在操作205处,对于针对块化高速缓冲存储器的一个高速缓存读请求,从存储器请求两个高速缓存行。要指出的是,根据本文的实施例,没有将一个高速缓存读请求分成两个分立的高速缓存读请求(对于每个高速缓存行请求有一个高速缓存读请求)。
在操作205处,将与两个高速缓存行相关联的数据返回到请求方。请求方可以是CPU或其他处理器或其他器件。
过程200没有将一个针对两个高速缓存行的高速缓存读请求分成两个高速缓存读请求,因此可以用于避免、减少或消除对划分高速缓存读请求的需求。避免对高速缓存读请求的划分不会引入因划分操作而引起的额外延迟,因此可以提高存储器系统的效率和性能。在一些实施例中,高速缓存读请求是指X块化格式读请求。
图3是根据本文一些实施例的方法或过程300的示例性流程图。过程300的操作305和325可以基本上分别类似于图2的操作205和210。因此,通过参考上文中对操作205和210的讨论可以容易地理解操作305和325。
根据本文的一些实施例,过程300的操作310、315和325示出一些有助于从块化存储器读取数据的机制,其中可以用一个高速缓存读请求从存储器请求两个高速缓存行。
在操作310处,可以并行分配与一个高速缓存读请求相对应或相关联的两个高速缓存行。即,可以同时(即并行)针对两个高速缓存行进行如下判断:在与所请求的高速缓存读请求相关联的两个高速缓存行中的任意一个中是命中还是缺失所请求的高速缓存读请求,以及要替换或使用哪个高速缓存行。可以至少部分由于操作310实现效率的提高,因为与串行相反,可以并行分配高速缓存行。
在操作315处,可以并行地维持两个被请求的高速缓存行项(cache lineentry)的一致性。通过这种方式,可以同时(即并行)在两个高速缓存行上达到如下要求:顺序地检查两个高速缓存行项以保护或避免例如由于缺失而导致的对高速缓存行的覆写。例如,判定在高速缓存行项中的任意一个上有缺失可能导致停机,直到完成用于任意一个的匹配的高速缓存项为止。
在操作320处,可以并行读取与两个高速缓存行相关联的数据以完成高速缓存读请求。可以利用多个高速缓存数据存储器器件或为适应从其进行并行读取而组织的高速缓存数据器件完成并行数据读取。
操作310、315和320可以组合,以针对一个高速缓存读请求完成对两个高速缓存行的有效且高效的高速缓存读请求。针对两个高速缓存行的并行分配、一致性维持和数据读取的各方面以及避免对高速缓存读请求的划分可以允许、提供或促成图形系统中延迟的减小。
图4是本文一些实施例的流水线、装置或系统的示例性实施,在总体上由附图标记400标识。可以由系统400接收、提供或获得X块化读请求地址。在以线性存储器地址来提供读请求地址或者未以块化存储器地址来提供读请求地址的情况下,模块405可以提供将源存储器地址转换成X块化格式存储器地址的机制。从功能上讲,模块405可以用于对源存储器地址进行分隔(fence)、划分、分块和执行其他功能,从而获得可以由本文的按块组织的存储器系统进一步处理和映射的X块化存储器地址。
在模块410,并行地针对两个高速缓存标签(cache tag)随机存取存储器(RAM)检查X块化读请求地址,以判断X块化读请求地址是位于高速缓存中还是将要从系统或主存储器中取回。对于所期望的读请求,进行检查以判断存储单元是否位于快速高速缓存(例如2级,L2,高速缓存)中。将X块化读请求地址与可能包含该地址的高速缓存中的所有标签进行比较。由415读取X块化读请求地址的标签,并由标签比较装置425将其与高速缓存标签RAM 435的两个存储体(bank)(存储体0和存储体1)中的每一个进行比较。在存储单元位于标签高速缓存中的情况下,就说发生了高速缓存命中。在高速缓存命中的情况下,处理器可以读取由X块化读请求地址表示的数据。
在存储单元不在标签高速缓存中的情况下,就说发生了高速缓存缺失。在这种情况下,模块410可以为刚刚缺失的存储器地址分配新的标签项(tagentry)。装置430可以用于将标签写到高速缓存标签RAM 435。该分配可以包括用于刚刚缺失的存储器地址的标签以及来自刚刚缺失的存储器地址的数据的拷贝。
在一些实施例中,可以用2比特的命中指示符表示针对高速缓存标签RAM 435,对于X块化读请求地址是发生了命中还是缺失。下面的表1是包括可以通过模块410的比较而提供的各种结果的列表的示例性表格。如图所示,2比特命中指示符足以包括高速缓存标签RAM比较的所有可能结果。
    来自两个标签CAMS的结果     命中[1:0]
    命中两个64字节高速缓存项     11
    仅命中第二个64字节高速缓存项     10
    仅命中第一个64字节高速缓存项     01
    两个64字节高速缓存项都缺失     00
表1
在64B高速缓存标签RAM的两个存储体中的任意一个中有缺失的情况下,将X块化读请求地址写到高速缓存标签RAM 335的所缺失的存储体中的用于给定组的8路之一。这假定高速缓存标签RAM的每一个存储体被组织成8路组相联标签。可以使用高速缓存标签RAM的存储体的其他结构。通过这种方式,对于给定组,高速缓存标签RAM的两个存储体在它们对于该给定组的多路中的一个中具有相同的X块化读请求地址(例如标签)。
在64B高速缓存标签RAM 335的两个存储体中都有缺失的情况下,将X块化读请求地址写到高速缓存标签RAM 335的两个存储体中的用于同一组的8路之一。通过这种方式,在高速缓存标签RAM 335的两个存储体中,高速缓存标签RAM的两个存储体在它们对于该同一组的多路中的同一个中具有相同的X块化读请求地址(例如标签)。
可以使用LRU RAM器件320来选择标签将要被写入高速缓存标签RAM 335的存储体中的组。可以由最近最少使用(LRU)算法控制用于判断将标签写到哪里的替换策略。应当理解,可以使用其他控制替换策略(例如随机等)。
可以利用高速缓存标签RAM 335中的两个存储体并行地执行310的标签RAM比较。即,可以并行检查高速缓存标签RAM中的两个存储体以在此获得提高,包括命中性能的改善。流水线400的这一方面可以对应于图3的过程300的操作310。
流水线400继续将X块化读请求地址转发到正在使用中的检查装置或机构440。可以提供正在使用中的检查装置440以进行保护,防止使用或试图使用当前正由其他过程使用的高速缓存行。
在445处,可以看出可以同时对两个FIFO进行写入。通过这种方式,不必顺序地处理两个被请求的高速缓存行,由此对流水线400增加延迟。针对缺失的X块化高速缓存项请求和相邻项(即两个高速缓存行)检查两个存储器读延迟FIFO 440和445。即,利用延迟FIFO 440和445检查所缺失的X块化高速缓存项(例如64B)请求和第二相邻项(例如64B)。在判定对于两个延迟F1FO 440、445中的任意一个有高速缓存项匹配的情况下,停止所缺失的X块化高速缓存项(即第一高速缓存项),直到完成延迟FIFO440、445中的任意一个中的所匹配的高速缓存项为止。通过这种方式,可以维持数据一致性。停止所缺失的X块化高速缓存项,直到延迟FIFO 440、445中的任意一个中的所匹配的高速缓存项能够完全获得其他所需要的数据为止。流水线400的这一方面可以对应于图3的过程300的操作315。
参考流水线400的MISS路径,在X块化高速缓存读请求对于两个64B高速缓存项都缺失时,由X-块化划分装置或机构450将X块化高速缓存读请求分成两(2)个存储器缺失请求。例如,可以将两个存储器缺失请求中的第二个增加64B。在仅对于64B高速缓存项中的第二个有缺失的情况下,可以将单个缺失请求地址增加64B。
利用两个存储器缺失的高速缓存项请求,模块455进行操作以将缺失高速缓存项请求的虚拟地址转换成映射到系统或主存储器(MM)的物理地址。模块455沿着缺失路径提供了如何划分所缺失的X块化高速缓存项并利用转换后备缓冲器(TLB)及其他地址转换机构将其从物理存储器中取回的示例性实施。可以由模块450利用若干虚拟地址到物理地址转换机构,包括系统主存储器的被缓存的映射的TLB、TLB请求FIFO、TLB数据缓冲器和页面收集FIFO(PGF),完成从虚拟X块化高速缓存项请求地址到主存储器中的物理地址的转换。模块455可以如图所示取回所请求的地址单元、MM请求。
流水线400的模块470提供将由模块455所获得的被请求地址数据从主存储器写到高速缓存数据RAM 475的机构。模块470的MM写入对应于模块455的MM注册(reg.)。组织、划分或以其他方式配置和管理高速缓存数据RAM 475以并行从其读取数据。例如,高速缓存数据RAM 475具有两个RAM存储体,第一存储体0和第二存储体1。高速缓存数据RAM 475的这种配置和管理有助于或提供用于读取将要并行读取的与高速缓存读请求的两个高速缓存行相关联的数据的机构。
因此,读取装置480有效地并行读取与两个读请求高速缓存行相关联的数据。流水线400的这一方面可以与图3的操作320相关。
流水线400继续在485处组装(assemble)所请求的数据并进一步解压缩所请求的读取,以由CPU、显示器或其他装置或请求方使用。
图5为根据本文一些实施例的块化高速缓存管理的一些方面的示例性示图。例如,图5提供了根据本文各方面和实施例的高速缓存读请求的各方面的表500。在列510中示出高速缓存行类型和分配的各方面,在列515中示出来自存储器的高速缓存行请求,在列520中示出示例性高速缓存写入,在列525中示出示例性高速缓存读取。如列510所示,分别对于X块化纹理帧模式和X块化纹理帧模式连续或交替地分配对两个16B(总共32B)的读请求。在列515处,从存储器请求两个高速缓存行1a和1b,每个均为64B。在列520处,示出存储体0和存储体1高速缓存写入的示图。要指出的是,翻转(flip)这些存储体,从而可以并行对存储体0和存储体1进行写入。在一列中,为了示例性的目的给出了示例性高速缓存读取格式。
本领域的技术人员应当理解,表500中使用或引用的各种地址比特的格式仅是出于示例性的目的而提供的。即,在不脱离本文一些实施例的范围的情况下,可以使用不同大小的块、高速缓存行、分配比特、引用的地址比特、翻转比特等。
在一些实施例中,在被机器执行时实施结合本文一些实施例所讨论的方法的指令可以被包含在介质或制品中。所述制品可以包括CD-ROM、固定或可移除的存储机构、随机存取存储器(RAM)、只读存储器(ROM)、闪速存储器及其他数据存储装置和数据传输机构。
已经参考具体示例性实施例描述了上述公开内容。然而,显而易见的是,可以在不脱离所附权利要求书给出的较宽精神和范围的情况下对其做出各种修改和变化。

Claims (15)

1.一种从Y块化存储器读取数据的方法,包括:
对于一个X块化高速缓存读请求,从所述块化存储器请求两个高速缓存行而不划分该X块化高速缓存读请求;以及
返回与两个被请求的高速缓存行相关联的数据。
2.根据权利要求1所述的方法,还包括:
并行地分配所述两个高速缓存行;
并行地维持所述两个高速缓存行的一致性;以及
并行地从数据高速缓存读取与所述两个高速缓存行相关联的数据。
3.根据权利要求2所述的方法,其中所述分配包括:
对于两个高速缓存标签RAM,并行地检查所述X块化读请求的地址,以判断相对于所述两个高速缓存标签RAM中的每一个,所述X块化读请求地址是命中还是缺失;
在所述X块化读请求地址对于所述两个高速缓存标签RAM中的一个为缺失的情况下,在所述两个高速缓存标签RAM中的所缺失的那一个中写入用于所述X块化读请求地址的标签;以及
在所述X块化读请求地址在所述两个高速缓存标签RAM中都是缺失的情况下,在所述两个高速缓存标签RAM中都写入用于所述X块化读请求地址的标签。
4.根据权利要求3所述的方法,其中所述两个高速缓存标签RAM分别包括第一存储体和第二存储体。
5.根据权利要求1所述的方法,还包括:提供关于所述两个被请求的高速缓存行的完全命中、完全缺失以及部分命中的指示。
6.根据权利要求2所述的方法,其中维持一致性包括对未决高速缓存读请求的使用中检查。
7.根据权利要求2所述的方法,其中维持一致性是由两个读取延迟先进先出缓冲器(FIFO)执行的。
8.根据权利要求2所述的方法,其中读取数据包括同时从所述数据高速缓存读取所述两个高速缓存行中的每一个的高速缓存项,其中所述数据高速缓存包括与其相关联的两个存储体。
9.一种用于从Y块化存储器读取数据的设备,包括:
主处理器;
与所述主处理器耦合的图形引擎;以及
耦合到所述图形引擎的Y块化存储器,其中所述图形引擎用于:
对于一个X块化高速缓存读请求,从所述块化存储器请求两个高速缓存行而不划分该X块化高速缓存读请求;以及
返回与两个被请求的高速缓存行相关联的数据。
10.根据权利要求9所述的设备,还包括:
高速缓存标签RAM,其具有第一存储体和第二存储体以并行分配所述两个高速缓存行;
一对先进先出缓冲器(FIFO),其用于并行地维持所述两个高速缓存行的一致性;以及
高速缓存数据RAM,其具有第一存储体和第二存储体以用于并行地从所述两个高速缓存行读取与所述两个高速缓存行相关的数据。
11.根据权利要求9所述的设备,其中提供关于所述两个被请求的高速缓存行的完全命中、完全缺失和部分命中的指示。
12.根据权利要求10所述的设备,其中所述图形引擎用于:
对于所述两个高速缓存标签RAM,并行地检查所述X块化读请求地址,以判断相对于所述两个高速缓存标签RAM中的每一个,所述X块化读请求地址是命中还是缺失;
在所述X块化读请求地址对于所述两个高速缓存标签RAM中的一个为缺失的情况下,在所述两个高速缓存标签RAM中的所缺失的那一个中写入用于所述X块化读请求地址的标签;以及
在所述X块化读请求地址在所述两个高速缓存标签RAM中都是缺失的情况下,在所述两个高速缓存标签RAM中都写入用于所述X块化读请求地址的标签。
13.一种用于从Y块化存储器读取数据的系统,包括:
主处理器;
与所述主处理器耦合的图形引擎;以及
耦合到所述图形引擎的Y块化存储器,其中所述图形引擎用于:
对于一个X块化高速缓存读请求,从所述块化存储器请求两个高速缓存行而不划分该X块化高速缓存读请求;以及
返回与两个被请求的高速缓存行相关联的数据;以及
耦合到所述主处理器的双倍数据速率存储器。
14.根据权利要求13所述的系统,其中所述图形引擎和所述块化存储器共同位于普通的印刷电路板(PCB)上。
15.根据权利要求13所述的系统,其中所述图形引擎用于:
对于两个高速缓存标签RAM,并行地检查所述X块化读请求地址,以判断相对于所述两个高速缓存标签RAM中的每一个,所述X块化读请求地址是命中还是缺失;
在所述X块化读请求地址对于所述两个高速缓存标签RAM中的一个为缺失的情况下,在所述两个高速缓存标签RAM中的所缺失的那一个中写入用于所述X块化读请求地址的标签;以及
在所述X块化读请求地址在所述两个高速缓存标签RAM中都是缺失的情况下,在所述两个高速缓存标签RAM中都写入用于所述X块化读请求地址的标签。
CN2006800427778A 2005-12-30 2006-12-11 用于共享l2映射高速缓存的对称分配的方法和系统 Expired - Fee Related CN101310259B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/322,922 US8593474B2 (en) 2005-12-30 2005-12-30 Method and system for symmetric allocation for a shared L2 mapping cache
US11/322,922 2005-12-30
PCT/US2006/047304 WO2007078703A1 (en) 2005-12-30 2006-12-11 Method and system for symmetric allocation for a shared l2 mapping cache

Publications (2)

Publication Number Publication Date
CN101310259A CN101310259A (zh) 2008-11-19
CN101310259B true CN101310259B (zh) 2011-12-14

Family

ID=37964978

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006800427778A Expired - Fee Related CN101310259B (zh) 2005-12-30 2006-12-11 用于共享l2映射高速缓存的对称分配的方法和系统

Country Status (6)

Country Link
US (1) US8593474B2 (zh)
EP (1) EP1966704A1 (zh)
JP (2) JP2009521766A (zh)
CN (1) CN101310259B (zh)
TW (1) TWI405081B (zh)
WO (1) WO2007078703A1 (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8271734B1 (en) * 2008-12-05 2012-09-18 Nvidia Corporation Method and system for converting data formats using a shared cache coupled between clients and an external memory
US20130027416A1 (en) * 2011-07-25 2013-01-31 Karthikeyan Vaithianathan Gather method and apparatus for media processing accelerators
KR20130057890A (ko) * 2011-11-24 2013-06-03 시게이트 테크놀로지 인터내셔날 하이브리드 드라이브 및 그 데이터 전송 방법
WO2013097137A1 (en) * 2011-12-29 2013-07-04 Intel Corporation Transpose of image data between a linear and a y-tiled storage format
US10380030B2 (en) * 2012-12-05 2019-08-13 Arm Limited Caching of virtual to physical address translations
US20150228106A1 (en) * 2014-02-13 2015-08-13 Vixs Systems Inc. Low latency video texture mapping via tight integration of codec engine with 3d graphics engine
US9558120B2 (en) 2014-03-27 2017-01-31 Intel Corporation Method, apparatus and system to cache sets of tags of an off-die cache memory
KR102366808B1 (ko) * 2014-10-22 2022-02-23 삼성전자주식회사 캐시 메모리 시스템 및 그 동작방법
CN104317361B (zh) * 2014-10-27 2017-08-04 杭州中天微系统有限公司 一种基于指针延迟更新的循环缓冲器
US10719434B2 (en) 2014-12-14 2020-07-21 Via Alliance Semiconductors Co., Ltd. Multi-mode set associative cache memory dynamically configurable to selectively allocate into all or a subset of its ways depending on the mode
WO2016097808A1 (en) 2014-12-14 2016-06-23 Via Alliance Semiconductor Co., Ltd. Dynamic cache replacement way selection based on address tag bits
JP6207765B2 (ja) 2014-12-14 2017-10-04 ヴィア アライアンス セミコンダクター カンパニー リミテッド モードに応じてセットの1つ又は複数を選択的に選択するように動的に構成可能であるマルチモード・セット・アソシエイティブ・キャッシュ・メモリ
US10176096B2 (en) * 2016-02-22 2019-01-08 Qualcomm Incorporated Providing scalable dynamic random access memory (DRAM) cache management using DRAM cache indicator caches
CN113282524B (zh) * 2021-05-08 2022-08-16 重庆大学 一种缓存分片的配置方法、装置以及存储介质
CN116561020B (zh) * 2023-05-15 2024-04-09 合芯科技(苏州)有限公司 一种混合缓存粒度下的请求处理方法、设备及存储介质
CN117130663B (zh) * 2023-09-19 2024-06-11 摩尔线程智能科技(北京)有限责任公司 一种指令读取方法及l2指令缓存、电子设备和存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6104418A (en) * 1998-04-06 2000-08-15 Silicon Magic Corporation Method and system for improved memory interface during image rendering
US6353438B1 (en) * 1999-02-03 2002-03-05 Artx Cache organization—direct mapped cache

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2229059B (en) 1989-03-07 1993-08-04 Sony Corp Obtaining access to a two-dimensional portion of a digital picture signal
DE4227733A1 (de) * 1991-08-30 1993-03-04 Allen Bradley Co Konfigurierbarer cachespeicher und datenverarbeitungssystem mit einem derartigen speicher
JPH06139144A (ja) * 1992-10-26 1994-05-20 Nec Corp キャッシュメモリ回路
US5815168A (en) * 1995-06-23 1998-09-29 Cirrus Logic, Inc. Tiled memory addressing with programmable tile dimensions
US5615167A (en) * 1995-09-08 1997-03-25 Digital Equipment Corporation Method for increasing system bandwidth through an on-chip address lock register
US5736988A (en) * 1995-12-04 1998-04-07 Silicon Graphics, Inc. Apparatus and method for accelerated tiled data retrieval
US5828382A (en) * 1996-08-02 1998-10-27 Cirrus Logic, Inc. Apparatus for dynamic XY tiled texture caching
US5877780A (en) * 1996-08-08 1999-03-02 Lu; Hsuehchung Shelton Semiconductor chip having multiple independent memory sections, at least one of which includes simultaneously accessible arrays
US6507898B1 (en) * 1997-04-30 2003-01-14 Canon Kabushiki Kaisha Reconfigurable data cache controller
US6226707B1 (en) 1997-11-17 2001-05-01 Siemens Aktiengesellschaft System and method for arranging, accessing and distributing data to achieve zero cycle penalty for access crossing a cache line
US6519682B2 (en) * 1998-12-04 2003-02-11 Stmicroelectronics, Inc. Pipelined non-blocking level two cache system with inherent transaction collision-avoidance
KR100283413B1 (ko) * 1998-12-15 2001-04-02 김영환 텍스처 매핑시스템
US6401172B1 (en) * 1998-12-18 2002-06-04 Intel Corp. Recycle mechanism for a processing agent
US6362826B1 (en) * 1999-01-15 2002-03-26 Intel Corporation Method and apparatus for implementing dynamic display memory
US6437789B1 (en) * 1999-02-19 2002-08-20 Evans & Sutherland Computer Corporation Multi-level cache controller
US6499090B1 (en) * 1999-12-28 2002-12-24 Intel Corporation Prioritized bus request scheduling mechanism for processing devices
US6496193B1 (en) * 1999-12-30 2002-12-17 Intel Corporation Method and apparatus for fast loading of texture data into a tiled memory
US6513104B1 (en) * 2000-03-29 2003-01-28 I.P-First, Llc Byte-wise write allocate with retry tracking
US6553473B1 (en) * 2000-03-30 2003-04-22 Ip-First, Llc Byte-wise tracking on write allocate
US6674441B1 (en) * 2000-07-26 2004-01-06 Ati International, Srl Method and apparatus for improving performance of an accelerated graphics port (AGP) device
US6864896B2 (en) * 2001-05-15 2005-03-08 Rambus Inc. Scalable unified memory architecture
US20030093608A1 (en) * 2001-11-09 2003-05-15 Ken Jaramillo Method for increasing peripheral component interconnect (PCI) bus thoughput via a bridge for memory read transfers via dynamic variable prefetch
US6999091B2 (en) * 2001-12-28 2006-02-14 Intel Corporation Dual memory channel interleaving for graphics and video
US7760804B2 (en) * 2004-06-21 2010-07-20 Intel Corporation Efficient use of a render cache
US7219194B2 (en) * 2004-06-23 2007-05-15 Creative Technology Ltd Method and circuit to implement digital delay lines
US20060143384A1 (en) * 2004-12-27 2006-06-29 Hughes Christopher J System and method for non-uniform cache in a multi-core processor
US7877566B2 (en) * 2005-01-25 2011-01-25 Atmel Corporation Simultaneous pipelined read with multiple level cache for improved system performance using flash technology
US8161245B2 (en) * 2005-02-09 2012-04-17 International Business Machines Corporation Method and apparatus for performing data prefetch in a multiprocessor system
US7337350B2 (en) * 2005-02-09 2008-02-26 Hitachi, Ltd. Clustered storage system with external storage systems
JP4275085B2 (ja) * 2005-02-17 2009-06-10 株式会社ソニー・コンピュータエンタテインメント 情報処理装置、情報処理方法、およびデータストリーム生成方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6104418A (en) * 1998-04-06 2000-08-15 Silicon Magic Corporation Method and system for improved memory interface during image rendering
US6353438B1 (en) * 1999-02-03 2002-03-05 Artx Cache organization—direct mapped cache

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
摘要、对比文件1说明书第[0051]-[0055]段、附图7-8.

Also Published As

Publication number Publication date
WO2007078703A1 (en) 2007-07-12
US8593474B2 (en) 2013-11-26
CN101310259A (zh) 2008-11-19
JP2012108930A (ja) 2012-06-07
JP2009521766A (ja) 2009-06-04
TW200745852A (en) 2007-12-16
US20070153014A1 (en) 2007-07-05
TWI405081B (zh) 2013-08-11
EP1966704A1 (en) 2008-09-10

Similar Documents

Publication Publication Date Title
CN101310259B (zh) 用于共享l2映射高速缓存的对称分配的方法和系统
US9946650B2 (en) Technique to share information among different cache coherency domains
CN102985910B (zh) 对无用存储单元收集的系统和方法
CN1135477C (zh) 实现动态显示存储器的方法和装置
US6801203B1 (en) Efficient graphics pipeline with a pixel cache and data pre-fetching
US8244984B1 (en) System and method for cleaning dirty data in an intermediate cache using a data class dependent eviction policy
US20100138614A1 (en) Compression Status Bit Cache And Backing Store
CN1940892A (zh) 逐出高速缓存的行的电路布置、数据处理系统和方法
US20100082930A1 (en) Gpu assisted garbage collection
GB2440617A (en) Page table access by a graphics processor
CN101203838A (zh) 直接存储器存取转换的地址窗口支持
KR20080055681A (ko) 스누프 필터에서의 실효를 감소시키기 위한 라인 스와핑스킴
CN100445965C (zh) 信息处理设备和信息处理设备的数据控制方法
US8341358B1 (en) System and method for cleaning dirty data in a cache via frame buffer logic
CN100543770C (zh) 用于gpu中的页映射的专门机制
US9652560B1 (en) Non-blocking memory management unit
US11321241B2 (en) Techniques to improve translation lookaside buffer reach by leveraging idle resources
US20060026358A1 (en) Method and apparatus of supporting cacheable registers

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20111214

Termination date: 20171211