CN103279426B - 在不同高速缓存一致性域之间共享信息的技术 - Google Patents
在不同高速缓存一致性域之间共享信息的技术 Download PDFInfo
- Publication number
- CN103279426B CN103279426B CN201210576427.7A CN201210576427A CN103279426B CN 103279426 B CN103279426 B CN 103279426B CN 201210576427 A CN201210576427 A CN 201210576427A CN 103279426 B CN103279426 B CN 103279426B
- Authority
- CN
- China
- Prior art keywords
- cpu
- cache
- processor
- unit
- information
- 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
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
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
- G06F12/0822—Copy directories
-
- 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/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
-
- 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/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/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
- G06F12/0828—Cache consistency protocols using directory methods with concurrent directory accessing, i.e. handling multiple concurrent coherency transactions
-
- 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/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
- G06F12/0835—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means for main memory peripheral accesses (e.g. I/O or DMA)
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1072—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories
-
- 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/28—Using a specific disk cache architecture
- G06F2212/283—Plural cache memories
-
- 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/60—Details of cache memory
-
- 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/62—Details of cache specific to multiprocessor cache arrangements
- G06F2212/621—Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
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)
- Multi Processors (AREA)
- Microcomputers (AREA)
Abstract
一种在不同高速缓存一致性域中的代理间实现信息共享的技术。在一个实施例中,图形设备可使用由一个或多个处理核所使用的一个或多个高速缓存来存储或读取信息,该信息可以被一个或多个处理器核以不影响属于图形设备的程序设计和一致性规则的方式访问。
Description
本申请是PCT国际申请号为PCT/US2009/038627、国际申请日为2009年3月27日、中国国家申请号为200980110677.8、题为“在不同高速缓存一致性域之间共享信息的技术”的分案申请。
发明领域
本发明的实施例一般涉及信息处理领域。更具体而言,本发明的实施例涉及在工作于至少两个不同高速缓存一致性域中的各代理之间实现高速缓存一致性的技术。
背景技术
随着越来越多的功能被集成到计算平台和微处理器中,不同功能单元之间的信息共享趋向于增长。例如,将图形或其它输入输出逻辑与一个或多个主中央处理单元(CPU)或“核”集成到同一计算平台、封装或集成电路中可使得需要在该一个或多个核与该图形逻辑之间共享信息。在一些现有技术实例中,不同功能单元被集成到同一系统、封装、或管芯中,一个或多个核所访问(存储或读取)的信息被保持在对应的高速缓存层级(例如一级、中级、二级高速缓存)中,该高速缓存层级与诸如图形逻辑的其他功能单元的高速缓存层级位于不同的一致性域中。
在不同高速缓存地址之间或根据不同高速缓存一致性域在不同一致性域中保持数据可能需要使用较多高速缓存存储器,这会增加系统成本和功耗。此外,在其中不同功能单元之间共享信息的情况下,维护不同的对应高速缓存层级域会使得每个功能单元不得不访问诸如DRAM的主存储器源,以在不同功能单元间共享信息。诸如DRAM的主存储器源在访问速度方面通常比诸如高速缓存的其它存储器结构慢。因此,采取主存储器在不同功能单元间共享信息会降低功能单元和/或系统的性能。
附图简述
本发明的实施例在各附图中是作为示例而非作为限制示出的,在附图中相同的附图标记指代相同的元素,并且其中:
图1示出其中可以使用本发明的至少一个实施例的系统的框图;
图2示出其中可以使用本发明的至少一个实施例的处理器。
图3示出其中可以使用本发明的至少一个实施例的共享总线计算机系统的框图;
图4示出其中可以使用本发明的至少一个实施例的点对点互连计算机系统的框图;
图5是示出可在一个实施例中使用的操作的流程图。
详细描述
本发明的实施例涉及计算机系统和信息处理。更具体而言,本发明的实施例涉及允许至少一个中央处理单元(CPU)获得由另一处理逻辑(例如,图形处理逻辑)访问或产生的信息的可视性,从而获得与该信息的某种程度的一致性的技术,该另一处理逻辑可能在与该至少一个CPU不同的一致性域中操作。在一些实施例中,一个或多个CPU与一个或多个处理逻辑(例如图形逻辑)共享一缓存等级,诸如“末级高速缓存”(LLC)或“二级”(L2)高速缓存,这一个或多个处理逻辑可与这一个或多个CPU实现不同的一致性协议或者工作在不同的一致性域中。在一个实施例中,CPU和图形逻辑被集成在相同的管芯、封装或系统中,并且该CPU可以访问图形逻辑的高速缓存一致性层级中的至少一个高速缓存等级以及该图形逻辑也可访问的LLC,由此允许在CPU与图形逻辑间共享信息,而不用访问诸如DRAM的主存储器源。
图1示出其中可以使用至少一个实施例的系统。在图1中,至少一个CPU 101和至少一个图形逻辑105被集成到同一管芯、封装或系统中。此外,在一个实施例中,该CPU和图形逻辑与各自的高速缓存层级通信,该高速缓存层级可包括第一级高速缓存或“一级”(L1)高速缓存103、104,中级高速缓存107、108,以及末级高速缓存(LLC)或“二级”(L2)高速缓存110。在一个实施例中,各个L1和中级高速缓存是不同的逻辑结构,而LLC是构造成可存储相同信息的一个高速缓存,因此包括存储在CPU的L1和MLC以及图形逻辑的MLC中的每一个中的信息。在一个实施例中,通过图形逻辑将它的L1高速缓存104的内容移动或复制到它的MLC 108——MLC 108关于CPU一致性控制操作保持与LLC的一致性,LLC就可包括图形逻辑的L1高速缓存。通过复制或移动图形L1高速缓存104(在图形一致性域111中)和图形MLC(在CPU一致性域109中)的信息,可在CPU一致性域109(在一个实施例中,包括CPU 101、L1高速缓存103、MLC 107以及LLC 110)和图形一致性域111(在一个实施例中,包括图形逻辑105和图形L1高速缓存104)之间共享信息。在一些实施例中,响应于与渲染图形图像相关联的多个事件的发生,可由图形逻辑虚拟寻址的图形L1高速缓存104中所存储的信息被移动或复制到图形MLC 108。在一个实施例中,由图形驱动或一些其它逻辑或软件程序来管理和执行从图形L1高速缓存104向MLC 108移动/复制信息。在导致图形L1高速缓存104中的信息被移动或复制到MLC 108的事件之后,该信息于是存在于CPU一致性域中,并且在一个实施例中可以由CPU使用物理地址或通过CPU使用的其它寻址方案(例如,虚拟地址)来寻址和访问。
除CPU和图形一致性域之外,图1的系统也包括可能在其自身的一致性域113中的显示设备(例如,监视器)115,该一致性域113与CPU和图形一致性域不一致。在一个实施例中,显示设备115可与主系统存储器120通信,而不是直接与CPU或图形逻辑的高速缓存层级中的高速缓存通信。
在一个实施例中,图形逻辑105可通过访问由CPU存储在LLC 110中的信息并监听CPU的L1(103)和CPU的MLC(107)中的信息来访问CPU可用或可修改的信息,而无需借助系统存储器120。此外,在一个实施例中,CPU可访问或“监听”存储在图形逻辑的中级高速缓存107中的信息,而无需借助LLC 110或系统存储器120。在一个实施例中,可在CPU一致性域和图形逻辑一致性域间共享信息,而无需CPU或图形设备访问主系统存储器,访问主系统存储器相对于访问高速缓存层级而言花费大量时间。此外,在一个实施例中,可以在CPU和图形逻辑一致性域之间共享信息,而无需显著改变或影响相应的CPU或图形高速缓存一致性协议。
在一个实施例中,图形逻辑生成虚拟地址以访问其高速缓存一致性域(111)中的数据。然而,图形一致性域中的一些高速缓存,诸如图形逻辑只读或以其他方式“拥有”的那些高速缓存(“R/O高速缓存”)可能仅使用虚拟标签,而图形一致性域中的其它高速缓存,诸如那些可由图形逻辑读写的高速缓存("R//W高速缓存")可使用虚拟和物理标签二者以既支持虚拟寻址又支持物理地址。在一个实施例中,如果有高速缓存未命中,则对高速缓存层级的图形逻辑访问将从虚拟地址被转换成物理地址,以便能生成系统存储器中正确的物理地址。
在CPU一致性域中,至少两个规则可适用。第一,高速缓存一致性规则可要求基于每个位置的访问排序彼此在顺序上相一致。顺序一致访问需要对于访问高速缓存位置的所有操作的按顺序的全局可视性。第二,CPU排序规则通常需要单个处理器的写入被所有处理器观测到是一样的,但不同处理器的写入可以不同顺序被观测。然而,处理器必须按执行顺序观测到自己的写入。
图形高速缓存一致性域可以多种方式不同于主控CPU的高速缓存一致性域。举例来说,在图形高速缓存域中,可能仅在图像渲染过程中的某些点处保证一致性,而典型CPU高速缓存域中的一致性被持续保持。此外,由于图形一致性域高速缓存通常被虚拟寻址并且不被监听,所以不保证LLC中包括存储在L1或中级高速缓存(MLC)中的信息。因此,当从LLC被收回一行时,较低层级高速缓存可能不被更新。为了补偿,对于整行收回,图形逻辑可使用修改无效(“ItoM”)交易来执行这些收回回写交易,而对于部分行收回,使用读取所有权(RFO)交易。最后,图形设备通常是连接到无序非核(un-core)构造的非推理性无序机。由于图形逻辑在将访问发送给高速缓存层级或存储器后通常不能重新排序这些访问,所以相关访问必须确保它们被发出前它们之前的访问已被全局观察到。
本发明的实施例考虑到图形与CPU高速缓存一致性域之间的不同,同时允许在这些域之间共享数据而无需借助访问主系统存储器。在一个实施例中,CPU高速缓存一致性规则适用于任何物理寻址结构,包括图形逻辑的中级高速缓存、LLC以及主存储器。对于CPU与图形域的跨一致性边界访问,CPU可监听图形MLC,这将与CPU一致性域中的行为相同。此外,本发明实施例允许在LLC中包括图形L1和MLC中存储的数据,以便图形逻辑可使用LLC而不借助主系统存储器。在一个实施例中,通过图形设备响应于渲染事件将L1数据复制或移动到它的MLC中,由此将图形L1数据置于CPU一致性域中并保证它被包含在LLC中,可使来自图形L1的数据被包含在LLC中。如果不能在图形L1或MLC中找到该信息,则图形逻辑可以稍后从LLC上访问该信息。
图2示出其中可以使用本发明的至少一个实施例的处理器。具体而言,图2示出处理器200,该处理器200具有一个或多个中央处理单元(CPU)205和210以及相应的至少一个非CPU功能单元207和213。图2还示出了至少另一个非CPU功能单元215,该单元215可执行功能单元207和213不执行的其他操作。在一个实施例中,功能单元207、213和215可包括诸如图形处理、存储器控制和外围设备控制的功能,诸如音频、视频、磁盘控制、数字信号处理等。在一些实施例中,处理器200也可包括图2中未示出的其它逻辑,诸如I/O控制。在一个实施例中,多处理器系统中的每个处理器或多核处理器中的每个处理器核可包括或以其他方式与逻辑219相关联,以在一个或多个CPU与一个或多个图形逻辑之间实现信息共享。
在一些实施例中,处理器200可以是通用CPU。在其它实施例中,处理器可以是能在可包括通用CPU集成电路和图形专属硬件或其它并行计算硬件的系统中执行图形专属功能的通用CPU或硬件。随着通用计算变得与诸如图形引擎、纹理样本等并行计算硬件更集成,逻辑219变得更通用和位置无关。因此,逻辑219可包括硬件/软件或两者的任何组合,并且定位或集成在处理器200的任何部分内部或外部。
在一个实施例中,逻辑219包括用于使CPU能在不显著修改CPU或图形逻辑的高速缓存一致性规则的情况下监听图形MLC的逻辑。此外,逻辑219可包括允许图形设备在无需首先借助于主存储器的情况下访问LLC中的信息的逻辑。此外,当存储在图形L1高速缓存中的信息目前存在于图形MLC中时,逻辑219可帮助告知CPU,以便CPU可以侦听该信息。
图3示出其中可使用本发明的一个实施例的共享总线计算机系统。微处理器301-315可包含多种功能单元,诸如一个或多个CPU(323,327,333,337,343,347,353,357)、图形设备(307,317,327,337)、存储器控制器(325,335,345,355)、I/O控制或诸如PCI或PCIe控制器(320,330,340,350)的其它功能单元。图3的系统也可包括将微处理器对接到外设控制设备360的I/O控制器365。
在一个实施例中,该系统包括用于使CPU能在不显著修改CPU或图形逻辑的高速缓存一致性规则的情况下监听图形MLC的逻辑319。此外,逻辑319可包括用于允许图形设备在无需首先借助主存储器的情况下访问LLC里的信息的逻辑。此外,当存储在图形L1高速缓存中的信息目前存在于图形MLC中时,逻辑219可帮助告知CPU,以便CPU可以监听它。
在一些实施例中,图3中示出的一些或所有元件可被包括在微处理器中,且包括其它互连,诸如直接存储器接口(DMI)、PCI高速图形(PEG)互连等。不论配置如何,本发明的实施例可被包括在图3的系统的任何部分中或以其他方式与其相关联。图3的系统也可包括主存储器(未示出),该主存储器可包括多种存储器结构,诸如动态随机存取存储器(DRAM)、硬盘驱动器(HDD)或经由包含多种存储设备和技术的网络接口位于计算机系统远程的存储器源。图3的系统中的高速缓存存储器可位于处理器中或接近处理器,诸如在处理器的本地总线上。
更进一步,高速缓存存储器可包括诸如六晶体管(6T)单元的相对较快的存储器单元,或具有近似相等或更快存取速度的其它存储器单元。
除图3所示的共享总线的计算机系统之外,可以结合本发明的各实施方式使用其它系统配置,包括点对点(P2P)互连系统和环互连系统。图4的P2P系统例如可包括若干处理器,其中作为示例仅示出了两个处理器470、480。处理器470、480可各包括本地存储器控制器中枢(MCH)472、482来与存储器42、44连接。处理器470、480可使用点对点(PtP)接口电路478、488经由PtP接口450来交换数据。处理器470、480均可使用点对点接口电路476、494、486、498经由单独的PtP接口452、454来与芯片组490交换数据。芯片组490还可经由高性能图形接口439来与高性能图形电路438交换数据。本发明的各实施例可位于具有任何数量的处理核的任何处理器中,或位于图4的PtP总线代理的每一个中。
在一个实施例中,图4包括用于使CPU能在不显著修改CPU或图形逻辑的高速缓存一致性规则的情况下监听图形MLC的逻辑。此外,该逻辑可包括用于允许图形设备在无需首先借助主存储器的情况下访问LLC中的信息的逻辑。此外,当存储在图形L1高速缓存中的信息目前存在于图形MLC中时,该逻辑可帮助告知CPU,以便CPU可以监听它。
图5示出可结合本发明的至少一个实施例使用的操作的流程图。在操作501,图形设备使存储在它的L1高速缓存中的信息被复制或移动到CPU一致性域中的MLC,且在操作505,针对CPU所请求的信息从CPU向图形逻辑的MLC发出监听。在操作510中,如果所请求信息不存在于图形逻辑的MLC中,则在操作515中,监听可针对该信息前进到LLC。在操作520,如果该信息不存在于LLC中,则在操作525中,访问前进到主存储器。在一个实施例中,CPU可使用物理地址来监听MLC,因为MLC除图形逻辑使用的虚拟地址以外还包括物理地址标签。此外,在一个实施例中,因为图形逻辑可存储和访问LLC中的信息,所以CPU所请求的信息可能在LLC中而不在MLC中。
至少一个实施例的一个或多个方面可以由存储在机器可读介质上的代表性数据来实现,该数据表示处理器中的各种逻辑,该数据在被机器读取时使得该机器制造用于执行此处所描述的技术的逻辑。被称为“IP核”的这些表示可以被存储在有形的机器可读介质(“带”)上,并被提供给各个顾客或生产设施以加载到实际制造该逻辑或处理器的制造机器中。
因此,描述了用于指导微架构存储器区域访问的方法和装置。应当理解,以上描述旨在是说明性的而非限制性的。在阅读并理解以上描述之后,许多其它实施方式对本领域技术人员而言将是显而易见的。因此,本发明的范围应参考所附权利要求书以及这些权利要求享有权利的等效方案的完全范围来确定。
Claims (7)
1.一种用于信息共享的处理器,包括:
第一中央处理单元(CPU),具有L1高速缓存;
第二中央处理单元;
非CPU功能单元,具有L1高速缓存;以及
互连逻辑单元,耦合到所述第一中央处理单元、第二中央处理单元以及非CPU功能单元;
其中所述互连逻辑单元用于使信息能在所述第一中央处理单元、第二中央处理单元以及非CPU功能单元之间共享,而不需要对主存储器的第一采取,其中所述第一中央处理单元的L1高速缓存位于与所述非CPU功能单元的L1高速缓存不同的一致性域中。
2.如权利要求1所述的处理器,其特征在于,所述非CPU功能单元是图形处理单元。
3.如权利要求2所述的处理器,其特征在于,所述互连逻辑单元包括:
监听逻辑单元,用于使所述图形处理单元能访问与所述第一中央处理单元相关联的高速缓存。
4.如权利要求3所述的处理器,其特征在于,所述监听逻辑单元进一步用于使所述第一中央处理单元能监听与所述图形处理单元相关联的高速缓存。
5.如权利要求3所述的处理器,其特征在于,与所述第一中央处理单元相关联的高速缓存是末级高速缓存。
6.如权利要求5所述的处理器,其特征在于,所述末级高速缓存是L2高速缓存。
7.如权利要求2所述的处理器,其特征在于,还包括:
转换逻辑单元,耦合到所述图形处理单元,用于响应于所述图形处理单元的存储器访问而将虚拟地址转换为物理地址。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/057,601 US9035959B2 (en) | 2008-03-28 | 2008-03-28 | Technique to share information among different cache coherency domains |
US12/057,601 | 2008-03-28 | ||
CN200980110677.8A CN101978359B (zh) | 2008-03-28 | 2009-03-27 | 在不同高速缓存一致性域之间共享信息的技术 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200980110677.8A Division CN101978359B (zh) | 2008-03-28 | 2009-03-27 | 在不同高速缓存一致性域之间共享信息的技术 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103279426A CN103279426A (zh) | 2013-09-04 |
CN103279426B true CN103279426B (zh) | 2017-03-01 |
Family
ID=41114791
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710736398.9A Active CN107506312B (zh) | 2008-03-28 | 2009-03-27 | 在不同高速缓存一致性域之间共享信息的技术 |
CN201410024970.5A Active CN103824251B (zh) | 2008-03-28 | 2009-03-27 | 在不同高速缓存一致性域之间共享信息的技术 |
CN200980110677.8A Active CN101978359B (zh) | 2008-03-28 | 2009-03-27 | 在不同高速缓存一致性域之间共享信息的技术 |
CN201210576427.7A Active CN103279426B (zh) | 2008-03-28 | 2009-03-27 | 在不同高速缓存一致性域之间共享信息的技术 |
Family Applications Before (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710736398.9A Active CN107506312B (zh) | 2008-03-28 | 2009-03-27 | 在不同高速缓存一致性域之间共享信息的技术 |
CN201410024970.5A Active CN103824251B (zh) | 2008-03-28 | 2009-03-27 | 在不同高速缓存一致性域之间共享信息的技术 |
CN200980110677.8A Active CN101978359B (zh) | 2008-03-28 | 2009-03-27 | 在不同高速缓存一致性域之间共享信息的技术 |
Country Status (6)
Country | Link |
---|---|
US (8) | US9035959B2 (zh) |
JP (7) | JP2011515001A (zh) |
CN (4) | CN107506312B (zh) |
DE (2) | DE112009000373T5 (zh) |
GB (6) | GB2493880B (zh) |
WO (1) | WO2009120997A2 (zh) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9035959B2 (en) | 2008-03-28 | 2015-05-19 | Intel Corporation | Technique to share information among different cache coherency domains |
US8615637B2 (en) * | 2009-09-10 | 2013-12-24 | Advanced Micro Devices, Inc. | Systems and methods for processing memory requests in a multi-processor system using a probe engine |
US9128849B2 (en) * | 2010-04-13 | 2015-09-08 | Apple Inc. | Coherent memory scheme for heterogeneous processors |
US8937622B2 (en) * | 2010-09-20 | 2015-01-20 | Qualcomm Incorporated | Inter-processor communication techniques in a multiple-processor computing platform |
GB2491588A (en) * | 2011-06-06 | 2012-12-12 | St Microelectronics Res & Dev | Multiprocessor with different cache coherency protocols between different parts |
US8856456B2 (en) | 2011-06-09 | 2014-10-07 | Apple Inc. | Systems, methods, and devices for cache block coherence |
US20140032854A1 (en) * | 2012-07-30 | 2014-01-30 | Futurewei Technologies, Inc. | Coherence Management Using a Coherent Domain Table |
US9373182B2 (en) * | 2012-08-17 | 2016-06-21 | Intel Corporation | Memory sharing via a unified memory architecture |
US9378572B2 (en) | 2012-08-17 | 2016-06-28 | Intel Corporation | Shared virtual memory |
US9639471B2 (en) | 2012-11-27 | 2017-05-02 | Nvidia Corporation | Prefetching according to attributes of access requests |
US9563562B2 (en) | 2012-11-27 | 2017-02-07 | Nvidia Corporation | Page crossing prefetches |
CN103049422B (zh) * | 2012-12-17 | 2013-11-27 | 浪潮电子信息产业股份有限公司 | 一种具有多cache一致性域的多处理器节点系统构建方法 |
US9824009B2 (en) * | 2012-12-21 | 2017-11-21 | Nvidia Corporation | Information coherency maintenance systems and methods |
US9785604B2 (en) * | 2013-02-15 | 2017-10-10 | Intel Corporation | Preset evaluation to improve input/output performance in high-speed serial interconnects |
US9563561B2 (en) * | 2013-06-25 | 2017-02-07 | Intel Corporation | Initiation of cache flushes and invalidations on graphics processors |
US9436972B2 (en) | 2014-03-27 | 2016-09-06 | Intel Corporation | System coherency in a distributed graphics processor hierarchy |
US9330433B2 (en) | 2014-06-30 | 2016-05-03 | Intel Corporation | Data distribution fabric in scalable GPUs |
US20160210231A1 (en) * | 2015-01-21 | 2016-07-21 | Mediatek Singapore Pte. Ltd. | Heterogeneous system architecture for shared memory |
US20180011792A1 (en) * | 2016-07-06 | 2018-01-11 | Intel Corporation | Method and Apparatus for Shared Virtual Memory to Manage Data Coherency in a Heterogeneous Processing System |
KR101852012B1 (ko) * | 2016-11-24 | 2018-06-11 | 전남대학교 산학협력단 | 캐쉬 우회 기법, 그 기법이 적용된 스트리밍 멀티프로세서 및 임베디드 시스템 |
US11592817B2 (en) | 2017-04-28 | 2023-02-28 | Intel Corporation | Storage management for machine learning at autonomous machines |
US10929330B2 (en) * | 2017-06-30 | 2021-02-23 | Intel Corporation | External resource discovery and coordination in a data center |
KR101946476B1 (ko) * | 2017-11-14 | 2019-05-20 | 전남대학교산학협력단 | 캐쉬 적중률 예측에 기반한 주기적 캐쉬 우회 기법, 그 기법이 적용된 스트리밍 멀티프로세서 및 임베디드 시스템 |
KR101853648B1 (ko) * | 2018-03-13 | 2018-06-08 | 전남대학교 산학협력단 | 캐쉬 우회 기법, 그 기법이 적용된 스트리밍 멀티프로세서 및 임베디드 시스템 |
US11138111B2 (en) | 2018-09-12 | 2021-10-05 | Apple Inc. | Parallel coherence and memory cache processing pipelines |
US10872458B1 (en) * | 2019-09-06 | 2020-12-22 | Apple Inc. | Graphics surface addressing |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004326633A (ja) * | 2003-04-28 | 2004-11-18 | Hitachi Ltd | 階層型メモリシステム |
CN1666182A (zh) * | 2002-05-08 | 2005-09-07 | 英特尔公司 | 用于在主机处理器和图形处理器之间优化存储器共享的方法和系统 |
Family Cites Families (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4991081A (en) | 1984-10-31 | 1991-02-05 | Texas Instruments Incorporated | Cache memory addressable by both physical and virtual addresses |
JPH04328657A (ja) | 1991-04-30 | 1992-11-17 | Toshiba Corp | キャッシュメモリ |
JPH06222990A (ja) | 1992-10-16 | 1994-08-12 | Fujitsu Ltd | データ処理装置 |
US5860109A (en) | 1996-07-01 | 1999-01-12 | Sun Microsystems, Inc. | Methods and apparatus for a coherence transformer for connecting computer system coherence domains |
US5963978A (en) * | 1996-10-07 | 1999-10-05 | International Business Machines Corporation | High level (L2) cache and method for efficiently updating directory entries utilizing an n-position priority queue and priority indicators |
US6237064B1 (en) | 1998-02-23 | 2001-05-22 | Intel Corporation | Cache memory with reduced latency |
US6243791B1 (en) | 1998-08-13 | 2001-06-05 | Hewlett-Packard Company | Method and architecture for data coherency in set-associative caches including heterogeneous cache sets having different characteristics |
US6801207B1 (en) * | 1998-10-09 | 2004-10-05 | Advanced Micro Devices, Inc. | Multimedia processor employing a shared CPU-graphics cache |
US6483516B1 (en) | 1998-10-09 | 2002-11-19 | National Semiconductor Corporation | Hierarchical texture cache |
US6449699B2 (en) | 1999-03-29 | 2002-09-10 | International Business Machines Corporation | Apparatus and method for partitioned memory protection in cache coherent symmetric multiprocessor systems |
JP2002032265A (ja) * | 2000-07-14 | 2002-01-31 | Hitachi Ltd | キャッシュ・アクセス制御方式およびデータ処理システム |
US6801208B2 (en) | 2000-12-27 | 2004-10-05 | Intel Corporation | System and method for cache sharing |
JP2003005841A (ja) | 2001-06-25 | 2003-01-08 | Kenwood Corp | 直流安定化電源装置 |
US7469321B2 (en) | 2003-06-25 | 2008-12-23 | International Business Machines Corporation | Software process migration between coherency regions without cache purges |
US7355601B2 (en) * | 2003-06-30 | 2008-04-08 | International Business Machines Corporation | System and method for transfer of data between processors using a locked set, head and tail pointers |
US6862027B2 (en) | 2003-06-30 | 2005-03-01 | Microsoft Corp. | System and method for parallel execution of data generation tasks |
US7023445B1 (en) | 2004-04-12 | 2006-04-04 | Advanced Micro Devices, Inc. | CPU and graphics unit with shared cache |
JP2005309867A (ja) | 2004-04-22 | 2005-11-04 | Fujitsu Ltd | マルチコア・プロセサ試験方法 |
US7305524B2 (en) * | 2004-10-08 | 2007-12-04 | International Business Machines Corporation | Snoop filter directory mechanism in coherency shared memory system |
EP1815334A1 (en) * | 2004-11-11 | 2007-08-08 | Koninklijke Philips Electronics N.V. | System as well as method for managing memory space |
US20060112226A1 (en) * | 2004-11-19 | 2006-05-25 | Hady Frank T | Heterogeneous processors sharing a common cache |
US7454576B2 (en) * | 2004-12-27 | 2008-11-18 | Intel Corporation | System and method for cache coherency in a cache with different cache location lengths |
GB2422926B (en) * | 2005-02-04 | 2008-10-01 | Advanced Risc Mach Ltd | Data processing apparatus and method for controlling access to memory |
US7478201B2 (en) | 2005-05-24 | 2009-01-13 | International Business Machines Corporation | Data processing system, cache system and method for passively scrubbing a domain indication |
US7725619B2 (en) | 2005-09-15 | 2010-05-25 | International Business Machines Corporation | Data processing system and method that permit pipelining of I/O write operations and multiple operation scopes |
US7958312B2 (en) | 2005-11-15 | 2011-06-07 | Oracle America, Inc. | Small and power-efficient cache that can provide data for background DMA devices while the processor is in a low-power state |
US7543116B2 (en) | 2006-01-30 | 2009-06-02 | International Business Machines Corporation | Data processing system, cache system and method for handling a flush operation in a data processing system having multiple coherency domains |
US7757045B2 (en) | 2006-03-13 | 2010-07-13 | Intel Corporation | Synchronizing recency information in an inclusive cache hierarchy |
US7451277B2 (en) | 2006-03-23 | 2008-11-11 | International Business Machines Corporation | Data processing system, cache system and method for updating an invalid coherency state in response to snooping an operation |
US7814279B2 (en) | 2006-03-23 | 2010-10-12 | International Business Machines Corporation | Low-cost cache coherency for accelerators |
US7484042B2 (en) | 2006-08-18 | 2009-01-27 | International Business Machines Corporation | Data processing system and method for predictively selecting a scope of a prefetch operation |
US8495308B2 (en) | 2006-10-09 | 2013-07-23 | International Business Machines Corporation | Processor, data processing system and method supporting a shared global coherency state |
US8327173B2 (en) * | 2007-12-17 | 2012-12-04 | Nvidia Corporation | Integrated circuit device core power down independent of peripheral device operation |
US9035959B2 (en) | 2008-03-28 | 2015-05-19 | Intel Corporation | Technique to share information among different cache coherency domains |
US8219711B2 (en) | 2008-11-24 | 2012-07-10 | Juniper Networks, Inc. | Dynamic variable rate media delivery system |
-
2008
- 2008-03-28 US US12/057,601 patent/US9035959B2/en active Active
-
2009
- 2009-03-27 GB GB1221421.9A patent/GB2493880B/en active Active
- 2009-03-27 DE DE112009000373T patent/DE112009000373T5/de not_active Ceased
- 2009-03-27 DE DE112009005503T patent/DE112009005503A5/de not_active Ceased
- 2009-03-27 JP JP2010550927A patent/JP2011515001A/ja active Pending
- 2009-03-27 GB GB1214187.5A patent/GB2490821B/en active Active
- 2009-03-27 GB GB1207247.6A patent/GB2487328B/en active Active
- 2009-03-27 CN CN201710736398.9A patent/CN107506312B/zh active Active
- 2009-03-27 CN CN201410024970.5A patent/CN103824251B/zh active Active
- 2009-03-27 CN CN200980110677.8A patent/CN101978359B/zh active Active
- 2009-03-27 CN CN201210576427.7A patent/CN103279426B/zh active Active
- 2009-03-27 WO PCT/US2009/038627 patent/WO2009120997A2/en active Application Filing
- 2009-03-27 GB GB1222945.6A patent/GB2495032B/en active Active
- 2009-03-27 GB GB1015007.6A patent/GB2471786B/en active Active
-
2012
- 2012-04-15 US US13/447,279 patent/US9035960B2/en active Active
- 2012-07-31 GB GBGB1213564.6A patent/GB201213564D0/en not_active Ceased
- 2012-12-20 US US13/722,440 patent/US8643660B2/en active Active
- 2012-12-21 JP JP2012279612A patent/JP2013054789A/ja active Pending
-
2013
- 2013-03-15 US US13/844,214 patent/US9035962B2/en active Active
- 2013-11-22 JP JP2013241853A patent/JP5890378B2/ja active Active
-
2014
- 2014-01-20 US US14/158,865 patent/US9665488B2/en active Active
- 2014-01-21 JP JP2014008392A patent/JP5889928B2/ja active Active
- 2014-06-17 JP JP2014124390A patent/JP5889961B2/ja active Active
-
2016
- 2016-02-18 JP JP2016028904A patent/JP6417344B2/ja active Active
- 2016-12-29 US US15/393,921 patent/US9946650B2/en active Active
- 2016-12-29 US US15/393,907 patent/US10204051B2/en active Active
- 2016-12-29 US US15/393,883 patent/US10078590B2/en active Active
-
2018
- 2018-10-05 JP JP2018190049A patent/JP6707605B2/ja active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1666182A (zh) * | 2002-05-08 | 2005-09-07 | 英特尔公司 | 用于在主机处理器和图形处理器之间优化存储器共享的方法和系统 |
JP2004326633A (ja) * | 2003-04-28 | 2004-11-18 | Hitachi Ltd | 階層型メモリシステム |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103279426B (zh) | 在不同高速缓存一致性域之间共享信息的技术 | |
KR100869189B1 (ko) | 멀티-상태 캐시 코히어런스 방식의 장치, 시스템 및 방법 | |
TWI398771B (zh) | 擷取資料的圖形處理器與方法 | |
KR20080055681A (ko) | 스누프 필터에서의 실효를 감소시키기 위한 라인 스와핑스킴 | |
US8788761B2 (en) | System and method for explicitly managing cache coherence | |
KR20200088391A (ko) | 공통 메모리 페이지로부터 메모리로의 캐시 라인들의 린싱 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210604 Address after: California, USA Patentee after: Facebook, Inc. Address before: California, USA Patentee before: INTEL Corp. |
|
TR01 | Transfer of patent right | ||
CP01 | Change in the name or title of a patent holder |
Address after: California, USA Patentee after: Yuan platform Co. Address before: California, USA Patentee before: Facebook, Inc. |
|
CP01 | Change in the name or title of a patent holder |