CN103279426B - 在不同高速缓存一致性域之间共享信息的技术 - Google Patents

在不同高速缓存一致性域之间共享信息的技术 Download PDF

Info

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
Application number
CN201210576427.7A
Other languages
English (en)
Other versions
CN103279426A (zh
Inventor
Z·奥芬
A·伯克威茨
T·A·皮萨
R·L·法瑞尔
A·考克
O·卡恩
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.)
Meta Platforms Inc
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 CN103279426A publication Critical patent/CN103279426A/zh
Application granted granted Critical
Publication of CN103279426B publication Critical patent/CN103279426B/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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • G06F12/0822Copy directories
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • G06F12/0828Cache consistency protocols using directory methods with concurrent directory accessing, i.e. handling multiple concurrent coherency transactions
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0835Cache 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)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1072Input/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/283Plural cache memories
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • G06F2212/621Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI 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所述的处理器,其特征在于,还包括:
转换逻辑单元,耦合到所述图形处理单元,用于响应于所述图形处理单元的存储器访问而将虚拟地址转换为物理地址。
CN201210576427.7A 2008-03-28 2009-03-27 在不同高速缓存一致性域之间共享信息的技术 Active CN103279426B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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

Publication number Publication date
GB2493880A (en) 2013-02-20
CN101978359A (zh) 2011-02-16
GB2490821A (en) 2012-11-14
JP5890378B2 (ja) 2016-03-22
GB201222945D0 (en) 2013-01-30
CN107506312A (zh) 2017-12-22
CN107506312B (zh) 2021-09-28
US20140136797A1 (en) 2014-05-15
GB2495032A (en) 2013-03-27
US10078590B2 (en) 2018-09-18
US10204051B2 (en) 2019-02-12
GB2490821B (en) 2013-01-30
CN103824251A (zh) 2014-05-28
US20170109280A1 (en) 2017-04-20
DE112009000373T5 (de) 2011-01-27
GB2471786A (en) 2011-01-12
JP2011515001A (ja) 2011-05-12
US9665488B2 (en) 2017-05-30
GB201221421D0 (en) 2013-01-09
GB2487328A (en) 2012-07-18
JP6417344B2 (ja) 2018-11-07
JP6707605B2 (ja) 2020-06-10
US9035959B2 (en) 2015-05-19
US20090248983A1 (en) 2009-10-01
GB201015007D0 (en) 2010-10-20
DE112009005503A5 (de) 2013-07-11
WO2009120997A3 (en) 2009-12-30
JP5889928B2 (ja) 2016-03-22
US20170109304A1 (en) 2017-04-20
JP2014167831A (ja) 2014-09-11
US20120200585A1 (en) 2012-08-09
US20130207987A1 (en) 2013-08-15
JP2014096176A (ja) 2014-05-22
GB2495032B (en) 2013-05-08
CN101978359B (zh) 2015-04-01
JP2014032708A (ja) 2014-02-20
GB201213564D0 (en) 2012-09-12
JP5889961B2 (ja) 2016-03-22
GB201207247D0 (en) 2012-06-06
JP2013054789A (ja) 2013-03-21
CN103824251B (zh) 2017-09-26
US20130117509A1 (en) 2013-05-09
US9035962B2 (en) 2015-05-19
GB2493880B (en) 2013-03-27
US9035960B2 (en) 2015-05-19
US8643660B2 (en) 2014-02-04
US9946650B2 (en) 2018-04-17
GB2487328B (en) 2012-10-03
CN103279426A (zh) 2013-09-04
US20170109287A1 (en) 2017-04-20
WO2009120997A2 (en) 2009-10-01
GB2471786B (en) 2012-09-05
GB201214187D0 (en) 2012-09-19
JP2019012563A (ja) 2019-01-24
JP2016085766A (ja) 2016-05-19

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