CN110741355A - 低功率多核相干性 - Google Patents
低功率多核相干性 Download PDFInfo
- Publication number
- CN110741355A CN110741355A CN201880039910.7A CN201880039910A CN110741355A CN 110741355 A CN110741355 A CN 110741355A CN 201880039910 A CN201880039910 A CN 201880039910A CN 110741355 A CN110741355 A CN 110741355A
- Authority
- CN
- China
- Prior art keywords
- memory
- coherent
- level cache
- sent
- transaction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
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
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0808—Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating 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/0815—Cache consistency protocols
-
- 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/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
特殊的一类加载和存储类访问其中相干性和存储器顺序仅在相干点处被强制实施的用户定义的存储器区域。局限于用户定义的存储器区域的相干性存储器请求被分派到公共存储器顺序缓冲器。非相干存储器请求(例如,所有其他存储器请求)可以经由非相干低级高速缓存而被路由到共享末级高速缓存。通过为每个处理器核分配私有的不重叠的地址空间,低级高速缓存无需实现维持高速缓存相干性所需要的逻辑。这样可以减少功耗和集成电路管芯面积。对于主要具有非相干存储器访问的应用,这还可以提高存储器带宽和性能,同时仍然为需要它的特定(多个)存储器范围/应用提供存储器相干性。
Description
背景技术
集成电路和片上系统(SoC)可以包括读取和执行指令的两个或更多个独立处理单元(也称为“核”)。这些多核处理芯片可以合作以实现多处理。这些芯片的设计者可以选择各种技术来耦合设备中的核以便它们可以共享指令和/或数据。
发明内容
本文中讨论的示例涉及一种集成电路,其包括多个处理器核和共享存储器顺序缓冲器,其中多个处理器核共享公共末级高速缓存。多个处理器核各种包括非相干存储器顺序缓冲器。第一处理器核是多个处理器核中的一个处理器核。共享存储器顺序缓冲器接收由多个处理器核发送的相干存储事务。公共末级高速缓存接收由多个处理器核的非相干存储器顺序缓冲器发送的存储事务。公共末级高速缓存还从共享存储器顺序缓冲器接收与由多个处理器核发送的相干存储事务相对应的存储事务。
在另一示例中,一种操作处理系统的方法包括:在公共末级高速缓存处从多个处理器核接收多个非相干存储事务。第一处理器核是多个处理器核中的一个处理器核。该方法还包括在存储器顺序缓冲器处从多个处理器核接收多个相干存储事务。该方法还包括由第一处理器核直接向存储器顺序缓冲器发出至少第一相干存储事务。第一相干存储事务在被发送到末级高速缓存之前将由存储器顺序缓冲器处理。该方法还包括由第一处理器核发出至少第一非相干存储事务。第一非相干存储事务在被发送到末级高速缓存之前将由至少一个低级高速缓存处理。该方法还包括在末级高速缓存处接收非相干存储事务和由相干存储事务存储的数据。
在另一示例中,一种处理系统包括多个处理核、末级高速缓存和存储器顺序缓冲器。多个处理核各自被耦合到至少第一级高速缓存。末级高速缓存与第一级高速缓存分开。末级高速缓存从第一级高速缓存接收非相干存储数据块。存储器顺序缓冲器被耦合到末级高速缓存。存储器顺序缓冲器从多个处理核中的第一处理核接收相干存储数据块,该相干存储数据块没有被第一级高速缓存处理。
提供本“发明内容”以便以简化的形式介绍一些概念,这些概念将在下面的“具体实施方式”中进一步描述。本“发明内容”既不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。此外,所要求保护的主题不限于解决在本公开的任何部分中指出的任何或所有缺点的实现。
附图说明
为了描述获取上述及其他优点和特征的方式,提出了更具体的描述,并且将通过参考其在附图中示出的特定示例来进行描述。应当理解,这些附图仅描绘典型示例,因此不应当被认为是对其范围的限制,将通过使用附图以附加的特异性和细节来描述和解释实现。
图1A是示出处理系统的框图。
图1B是示出具有附加高速缓存级别的处理系统的框图。
图2是示出操作处理系统的方法的流程图。
图3是示出耦合到多个处理器的存储器顺序缓冲器和末级高速缓存管线的图。
图4是示出处理相干和不相干存储事务的方法的流程图。
图5是计算机系统的框图。
具体实施方式
下面详细讨论示例。尽管讨论了具体实现,但是应当理解,这样做仅是出于说明的目的。相关领域的技术人员将认识到,在不脱离本公开的主题的精神和范围的情况下,可以使用其他组件和配置。这些实现可以是机器实现的方法、计算设备或集成电路。
在使用写入无效协议的系统中,写入驻留在末级高速缓存(例如,具有三级高速缓存的系统中的第3级高速缓存)中的行会使该高速缓存行在其他高速缓存级别的其他副本无效。例如,对驻留在第3级(L3)高速缓存中的行的写入操作会使正驻留在核和/或核集群的L1和/或L2高速缓存中的该高速缓存行的其他副本无效(已经存在于请求核中的高速缓存上的副本除外)。因为需要将消息发送到每个高速缓存级别的每个高速缓存(例如,侦听事务)以及从每个高速缓存级别的每个高速缓存接收消息(例如,侦听响应),这使得与较低高速缓存级别共享的高速缓存行的存储既耗时又资源昂贵。
在一个实施例中,特殊的一类加载和存储访问用户定义的存储器区域,在该存储器区域中相干性和存储器顺序仅在相干点处被实施。局限于用户定义的存储器区域的相干性存储器请求被分派到公共存储器顺序缓冲器。非相干存储器请求(例如,所有其他存储器请求)可以经由非相干低级高速缓存而被路由到共享末级高速缓存。通过为每个处理器核分配私有的不重叠的地址空间,低级高速缓存无需实现维持高速缓存相干性所需要的逻辑。这样可以减少功耗和集成电路管芯面积。
如本文中使用的,术语“处理器”包括执行操作指令以执行一系列任务的数字逻辑。这些指令可以被存储在固件或软件中,并且可以表示从非常有限的指令集到非常通用的指令集的任何位置。处理器可以是与其他处理器并置在同一管芯或集成电路(IC)上的若干“核”之一。在多处理器(“多处理器”)系统中,个体处理器可以与其他处理器相同或不同,具有可能不同的性能特征(例如,运行速度、散热、高速缓存大小、引脚分配、功能等)。一组“非对称”处理器是指一组两个或更多个处理器,其中该组中的至少两个处理器具有不同的性能(或基准数据)。如在下面的权利要求书中以及在本公开的其他部分中使用的,术语“处理器”和“处理器核”通常将可互换地使用。
图1A是示出处理系统的框图。在图1中,处理系统100包括处理器(CPU)111、非相干存储器顺序缓冲器(NC-MOB)111a、第1级(L1)高速缓存111b、处理器112、非相干存储器顺序缓冲器112a、L1高速缓存112b、处理器113、非相干存储器顺序缓冲器113a、L1高速缓存113b、处理器114、非相干存储器顺序缓冲器114a、L1高速缓存114b、末级高速缓存140和公共存储器顺序缓冲器(MOB)150。公共存储器顺序缓冲器150包括冲突队列151。公共存储器顺序缓冲器150被可操作地耦合到末级高速缓存140。
CPU 111包括非相干存储器顺序缓冲器111a。非相干存储器顺序缓冲器111a被可操作地耦合到L1高速缓存111b。L1高速缓存111b被可操作地耦合到末级高速缓存140。CPU11也被可操作地耦合到存储器顺序缓冲器150。CPU 112包括非相干存储器顺序缓冲器112a。非相干存储器顺序缓冲器112a被可操作地耦合到L1高速缓存112b。L1高速缓存112b被可操作地耦合到末级高速缓存140。CPU 11也被可操作地耦合到存储器顺序缓冲器150。CPU 113包括非相干存储器顺序缓冲器113a。非相干存储器顺序缓冲器113a被可操作地耦合到L1高速缓存113b。L1高速缓存113b被可操作地耦合到末级高速缓存140。CPU 11也被可操作地耦合到存储器顺序缓冲器150。CPU 114包括非相干存储器顺序缓冲器114a。非相干存储器顺序缓冲器114a被可操作地耦合到L1高速缓存114b。L1高速缓存114b被可操作地耦合到末级高速缓存140。CPU 11也被可操作地耦合到存储器顺序缓冲器150。处理系统100可以包括附加的处理器、接口、高速缓存、链接和/或输入/输出(IO)处理器(图1中未示出)。
在一个实施例中,相应处理器111-114的非相干存储器访问由对应的非相干存储器顺序缓冲器111a-114a来处理。因为非相干存储器顺序缓冲器111a-114a仅处理非相干存储器访问,所以与需要支持监听和/或其他高速缓存相干性操作的存储器顺序缓冲器相比,非相干存储器顺序缓冲器111a-114a可以具有更低的功耗并且面积较小。
相应处理器111-114的相干存储器访问被发送到公共存储器顺序缓冲器150。相应处理器111-114的相干存储器访问被发送到公共存储器顺序缓冲器150,而没有被相应的L1高速缓存111b-114b(或非相干存储器顺序缓冲器111a-114a)处理。处理器111-114之间的存储器排序和数据转发由公共存储器顺序缓冲器150执行。
末级高速缓存140从处理器111-114接收存储事务。这些存储事务中的至少一些可以被指示(例如,通过事务本身的内容或某种其他技术)以被直接写入末级高速缓存140。在这种情况下,处理系统100(特别是末级高速缓存140)不查询(即,“监听”)低级高速缓存(例如,处理器111-114中的任何一个处理器的L1高速缓存)以确定这些低级高速缓存中的任何一个是否具有受影响的高速缓存行的副本。
相干存储事务由公共存储器顺序缓冲器150处理。在这种情况下,由于相干事务/数据被引导到公共存储器顺序缓冲器150以用于处理,而不通过低级高速缓存(例如,处理器111-114中的任何一个处理器的L1高速缓存)进行发送,所以公共存储器顺序缓冲器150可以执行存储器排序和数据转发,而无需查询(即,“监听”)L1高速缓存111b-114b。
在一个实施例中,可以基于由发出事务的处理器111-114正在执行的存储指令的类型来指示存储事务是相干的。换言之,在处理器111-114上运行的程序可以通过使用指示存储数据符合相干性限制和/或处理的第一类型的存储指令来选择使特定存储操作直接去往公共存储器顺序缓冲器150。同样,在处理器111-114上运行的程序可以通过使用指示存储数据应当通过低级高速缓存的第二类型的存储指令来选择由低级高速缓存(例如,L1高速缓存111b-114b)非相干地处理(例如,高速缓存)特定存储操作。
在一个实施例中,可以基于存储事务作为目标的地址在经配置的寻址范围内,指示存储事务被直接写入公共存储器顺序缓冲器150。换言之,被寻址到经配置的地址范围的存储操作由处理系统100的处理器111-114直接发送到公共存储器顺序缓冲器150。同样地,被寻址到不同地址范围的存储操作可以由低级高速缓存处理。例如,可以通过存储在处理系统100(特别是处理器111-114)中的存储器和/或寄存器中的值来配置这些地址范围中的一者或两者。这些寄存器和/或存储器可以由一个或多个处理器111-114可写入。
在一个实施例中,如下地址范围可以对应于一个或多个物理或虚拟存储器页面,这些地址范围确定存储操作是否将被直接发送到公共存储器顺序缓冲器150。在这种情况下,页面表条目可以存储一个或多个指示符,这些指示符确定指向对应存储器页面的存储是否将被直接发送到公共存储器顺序缓冲器150。
因此,应当理解,处理系统100实现了一种将数据存储到可以用于频繁共享的数据的高速缓冲存储器中的方式。对于频繁共享的数据,与该数据关联的存储操作被指示为被直接存储到相干点(位于公共存储器顺序缓冲器150中)。这种技术消除了对低级高速缓存的监听,从而降低了功耗。由于对相关(即,相干)物理地址的所有高速缓存行访问都被映射到同一相干点(即,MOB 150),因此这种技术允许MOB 150进行存储到加载(store-to-load)转发。MOB 150还可以以与处理器111-114中的一个或多个处理器的指令集架构(ISA)相符的方式来强制执行写入顺序。
在一个实施例中,处理器核111-114共享末级高速缓存140。处理器核111-114中的每个处理器核包括相应非相干存储器顺序缓冲器111a-114a。共享存储器顺序缓冲器150接收由处理器核111-114发送的相干存储事务。末级高速缓存140接收由非相干存储器顺序缓冲器111a-114a发送的存储事务。末级高速缓存140还从存储器顺序缓冲器150接收与由处理器111-114的非相干存储器顺序缓冲器111a-114a发送的相干存储事务相对应的存储事务。
由非相干存储器顺序缓冲器111a-114a发送的存储事务包括在被发送到末级高速缓存140之前已经由至少一个低级高速缓存处理的存储事务。换言之,由非相干存储器顺序缓冲器111a-114a发送到末级高速缓存140的存储事务可以在最终被发送到末级高速缓存140之前由相应L1高速缓存111b-114b处理(和存储)。至少部分地基于由非相干存储器顺序缓冲器111a-114a发送的存储事务作为目标的地址在经配置的地址范围内,由非相干存储器顺序缓冲器111a-114a发送的存储事务在被发送到末级高速缓存140之前可以由L1高速缓存11b-114b处理。该经配置的地址范围可以被硬连线到系统100中。该经配置的地址范围可以是用户、程序和/或操作系统可选的。例如,至少部分地基于存储事务作为目标的地址在由处理器111-114中的一个或多个处理器可写入的至少一个寄存器指定的地址范围内,由处理器核111-114发送的非相干存储事务可以通过低级高速缓存(例如,L1高速缓存111b-114b)被发送到末级高速缓存140。在另一示例中,经配置的地址范围可以对应于至少一个存储器页面。
由处理器核111-114发送的相干存储事务被直接发送到存储器顺序缓冲器150。至少部分地基于相干存储事务作为目标的地址在配置的地址范围内,由处理器核111-114发送的相干存储事务可以被直接发送到存储器顺序缓冲器150。该经配置的地址范围可以被硬连线到系统100中。该经配置的地址范围可以是用户、程序和/或操作系统可选的。例如,至少部分地基于相干存储事务作为目标的地址在由处理器111-114中的一个或多个处理器可写入的至少一个寄存器指定的地址范围内,由处理器核111-114发送的相干存储事务可以被直接发送到存储器顺序缓冲器150。在另一示例中,经配置的地址范围可以对应于至少一个存储器页面。
在一个实施例中,末级高速缓存140从处理器核111-114接收非相干存储事务。这些非相干存储事务可以已经通过低级高速缓存(例如,L1高速缓存111b-114b)发送、处理和/或存储。存储器顺序缓冲器150从处理器核111-114接收相干存储事务。这些相干存储事务没有通过低级高速缓存(例如,L1高速缓存111b-114b)发送、处理和/或存储。
处理器核111-114(例如,处理器核111)可以直接向存储器顺序缓冲器150发出至少第一相干存储事务。该第一相干存储事务在被发送到末级高速缓存140之前由存储器顺序缓冲器150处理。处理器核111-114还可以发出至少第一非相干存储事务。在被发送到末级高速缓存140之前,该第一非相干存储事务被发送到至少一个低级高速缓存(例如,L1高速缓存111b-114b之一)并且由其处理。末级高速缓存140接收由非相干存储事务(例如,来自L1高速缓存111b)和由非相干存储事务(例如,来自存储器顺序缓冲器150)存储的数据。
处理器核111-114可以基于与由处理器核111-114执行的存储指令的目标相对应的地址落入经配置的地址范围内来发出第一相干存储事务。该地址范围可以对应于至少一个存储器页面。与至少一个存储器页面相关联的页面表条目可以包括关于处理器核111-114将要向地址范围(即,存储器页面)发出事务作为相干存储事务的指示符。在一个实施例中,处理器111-114可以从由处理器111-114中的一个处理器写入的寄存器接收与经配置的地址范围的至少一个极限相对应的指示符。
处理器核111-114可以基于与由处理器核111-114执行的存储指令的目标相对应的地址落入经配置的地址范围内来发出第一非相干存储事务。该地址范围可以对应于至少一个存储器页面。与至少一个存储器页面相关联的页面表条目可以包括关于处理器核111-114将要向地址范围(即,存储器页面)发出事务作为非相干存储事务的指示符。在一个实施例中,处理器111-114可以从由处理器111-114中的一个处理器写入的寄存器接收与经配置的地址范围的至少一个极限相对应的指示符。
在一个实施例中,处理器核111-114各种被耦合到至少第一级L1高速缓存111b-114b。末级高速缓存140与第一级L1高速缓存111b-114b分离。末级高速缓存140可以从L1高速缓存111b-114b接收非相干存储数据块。存储器顺序缓冲器150耦合到末级高速缓存140。存储器顺序缓冲器150从处理器核111-114接收相干存储数据块。存储器顺序缓冲器150从处理器核111-114接收相干存储数据块,而这些相干存储数据块没有被L1高速缓存111b-114b处理。换言之,相干存储数据被处理器111-114发送到存储器顺序缓冲器150(其可以与末级高速缓存140位于同一位置),而无需首先通过L1高速缓存111b-114b。通过绕过用于相干事务的L1高速缓存111b-114b,L1高速缓存111b-114b可以使用简单的设计,并且与实现处理相干事务所需要的电路的L1高速缓存相比消耗更少的功率(例如,存储、监听等)。
在各个实施例中,地址范围可以确定相干存储数据块是否将被发送到存储器顺序缓冲器150而没有被第一级高速缓存111b-114b处理。页面表条目中的指示符可以确定相干存储数据块是否将被发送到存储器顺序缓冲器150,而没有由第一级高速缓存111b-114b处理。类似地,页面表条目中的指示符可以确定非相干存储数据块是否将被发送到末级高速缓存140,而没有由存储器顺序缓冲器150处理。
如本文中论述,存储器顺序缓冲器150可以从处理器核111-114接收相干存储数据块,而这些相干存储数据块没有被低级高速缓存处理。末级高速缓存140可以接收已经由低级高速缓存处理的非相干数据。图1A示出了在非相干存储器顺序缓冲器111a-114a与末级高速缓存140之间具有单级高速缓存(即,L1高速缓存111b-114b)的系统。图1B是示出具有附加高速缓存级别的处理系统的框图。具体地,图1B中的系统101包括设置在L1高速缓存111b-114b与末级高速缓存140之间的第二级高速缓存(L2高速缓存111c-114c)。系统101可以如本文中参考附图所述来配置和操作。
图2是示出操作处理系统的方法的流程图。图2所示的步骤可以由处理系统100、系统101和/或其组件的一个或多个元件来执行。在公共末级高速缓存处从多个处理器核接收多个非相干存储事务(202)。例如,末级高速缓存140可以从处理器111-114接收存储事务(例如,经由非相干存储器顺序缓冲器111a-114a和L1高速缓存111b-114b和/或L2高速缓存111c-114c)。
在存储器顺序缓冲器处从多个处理器核接收多个相干存储事务(204)。例如,存储器顺序缓冲器150可以直接从处理器111-114接收存储事务(例如,通过绕过非相干存储器顺序缓冲器111a-114a和L1高速缓存111b-114b和/或L2高速缓存111c-114c)。
由多个处理器核中的处理器核发出被指示为要直接写入存储器顺序缓冲器的相干存储事务(206)。例如,处理器111可以发出存储事务。该存储事务可以被指示为将被直接发送到存储器顺序缓冲器150的相干存储事务。例如,基于由处理器111执行的存储指令的类型,该存储事务可以被指示为要被直接发送到存储器顺序缓冲器150。在另一示例中,基于存储事务作为目标的地址在经配置的寻址范围内,该存储事务可以被指示为要被直接发送到存储器顺序缓冲器150。(多个)地址范围可以例如由存储在处理系统100(具体地,处理器111)中的存储器和/或寄存器中的值来配置。这些寄存器和/或存储器可以由处理器111可写入。在另一示例中,确定该存储操作是否将被直接发送以直接发送到存储器顺序缓冲器150的(多个)地址范围可以对应于一个或多个物理或虚拟存储器页面。例如,页面表条目可以存储一个或多个指示符,其确定指向对应存储器页面的存储操作是否将被直接发送以直接发送到存储器顺序缓冲器150。
由处理器核发出被指示为在被发送到末级高速缓存之前要由低级高速缓存处理的非相干存储事务(208)。例如,处理器111可以发出将由处理器111的L1高速缓存和任何中间高速缓存(例如,L2高速缓存111c)处理的存储事务。例如,基于由处理器111执行的存储指令的类型,该存储事务可以被指示为要由低级高速缓存来处理(例如,高速缓存)。在另一示例中,基于存储事务作为目标的地址在配置的地址范围内,该存储事务可以被指示为要由低级高速缓存处理。(多个)地址范围可以例如由存储在处理系统100(具体地,处理器111)中的存储器和/或寄存器中的值来配置。这些寄存器和/或存储器可以由处理器111可写入。例如,确定该存储操作是否将由低级高速缓存处理的(多个)地址范围可以对应于一个或多个物理或虚拟存储器页。例如,页面表条目可以存储一个或多个指示符,其确定指向对应存储器页面的存储操作是否将由低级高速缓存处理。
通过末级高速缓存接收非相干存储事务(210)。例如,末级高速缓存140可以从L1高速缓存111b接收非相干存储事务。末级高速缓存140还可以接收已经由其他低级高速缓存(例如,L2高速缓存111c)处理的数据。
由末级高速缓存接收由相干存储事务存储的数据(212)。例如,MOB 150可以直接从处理器111接收相干存储事务。MOB 150可以处理存储事务以便例如解决冲突和/或解除推测性存储。在处理之后,MOB 150可以将相干存储数据提供给末级高速缓存140。末级高速缓存140可以最终将相干(和非相干)存储数据逐出到主存储器。
图3是示出耦合到多个处理器的存储器顺序缓冲器和末级高速缓存管线的图。在图3中,处理系统300包括处理器311、处理器312、高速缓存和互连结构315、存储器顺序缓冲器(MOB)350、存储器顺序缓冲器冲突队列(MOB CQ)351、末级高速缓存阵列341、高速缓存未命中地址文件(CMAF)342、高速缓存冲突队列(CCQ)343和下一状态逻辑(NSL)355。处理器311包括低级高速缓存L1。处理器312包括低级高速缓存L1。处理器311-312对应于处理器111-114,并且被配置为如本文中关于处理器111-114所描述一样操作。图3中还示出了事务361和事务362。
处理器311和处理器312被可操作地耦合到结构315。结构315将事务361提供给末级高速缓存340。末级高速缓存340将事务362提供给结构(fabric)315。结构315可以将事务362(例如,包含读取数据的一个或多个事务)发送到处理器311和312中的一个或多个。
事务361来自处理器311和312中的一个或多个。事务361可以包括直接从处理器311或312发送到MOB 350而没有被低级高速缓存(例如,处理器311的L1高速缓存或结构315的高速缓存级别(如果有))处理的存储事务。事务361可以包括从低级高速缓存(例如,处理器311的L1高速缓存或结构315的高速缓存级别(如果有))发送的存储事务。事务361可以包括关于直接访问最近发送到末级高速缓存340的数据的加载事务。
处理器361-312将事务361分发到MOB 350、CMAF 342和高速缓存阵列341。MOB 350保持相干存储事务361,直到这些存储事务被写入末级高速缓存阵列341。对应于MOB 350中的相干存储事务的加载事务361速度MOB 350将来自存储事务的数据直接提供给下一状态逻辑355,从而绕过CMAF 342和高速缓存阵列341。NSL 355将事务362输出到结构315。因此,应当理解,系统300可以实现存储到加载转发。转发的数据可以包括直接从处理器311或312发送到MOB 350而没有被低级高速缓存处理的数据。转发的数据可以包括在被存储在一个或多个低级高速缓存(例如,处理器311的L1高速缓存或结构315的高速缓存级别(如果有))中之后被发送到末级高速缓存阵列341的数据。
图4是示出处理相干和不相干存储事务的方法的流程图。图4所示的步骤可以由系统100、系统101、系统300和/或其组件的一个或多个元件执行。在末级高速缓存处从第一级高速缓存接收一行非相干数据(402)。例如,末级高速缓存140可以从L1高速缓存111b接收一行非相干存储数据。
可以在存储器顺序缓冲器处从与第一级高速缓存相关联的处理器核接收一行相干存储数据(404)。例如,存储器顺序缓冲器150(可以与末级高速缓存140位于同一位置和/或作为末级高速缓存140的一部分)可以直接从处理器111接收一行相干存储数据。在末级高速缓存处从存储器顺序缓冲器接收一行相干存储数据(406)。例如,MOB 150可以处理一行相干的存储数据,以便例如解决冲突和/或解除推测性存储。在处理之后,MOB 150可以将一行相干存储数据提供给末级高速缓存140。末级高速缓存140可以最终将相干行逐出到主存储器。
本文中描述的方法、系统和设备可以在计算机系统中实现,或者由计算机系统存储。上述方法也可以被存储在非暂态计算机可读介质上。本文中描述的设备、电路和系统可以使用本领域可用的计算机辅助设计工具来实现,并且可以通过包含这样的电路的软件描述的计算机可读文件来体现。这包括但不限于系统100、系统101、系统300和/或其组件的一个或多个元件。这些软件描述可以是:行为、寄存器传输、逻辑组件、晶体管和布局几何级别描述。
其中可以实现这样的描述的数据格式被存储在非暂态计算机可读介质上,包括但不限于:支持诸如C等行为语言的格式、支持诸如Verilog和VHDL等寄存器传输级别(RTL)语言的格式、支持几何描述语言(诸如GDSII、GDSIII、GDSIV、CIF和MEBES)的格式、以及其他合适的格式和语言。物理文件可以在非暂态机器可读介质上实现,诸如:4mm磁带、8mm磁带、3-1/2英寸软盘介质、CD、DVD、硬盘驱动器、固态磁盘驱动器、固态存储器、闪存驱动器等。
替代地或另外地,本文中描述的功能可以至少部分由一个或多个硬件逻辑组件执行。例如而非限制,可以使用的说明性类型的硬件逻辑组件包括现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、系统级芯片系统(SOC)、复杂可编程逻辑设备(CPLD)、多核处理器、图形处理单元(GPU)等。
图5示出了示例计算机系统的框图。在一个实施例中,计算机系统500和/或其组件包括实现或用于实现附图中图示的方法、系统和/或设备、附图的相应讨论、和/或本文中另外教导的电路、软件和/或数据。
计算机系统500包括通信接口520、处理系统530、存储系统540和用户接口560。处理系统530可操作地耦合到存储系统540。存储系统540存储软件550和数据570。处理系统530被可操作地耦合到通信接口520和用户接口560。处理系统530可以是系统100、系统101、系统300和/或其组件中的一个或多个的示例。
计算机系统500可以包括编程的通用计算机。计算机系统500可以包括微处理器。计算机系统500可以包括可编程或专用电路。计算机系统500可以分布在一起包括元件520-570的多个设备、处理器、存储器和/或接口之间。
通信接口520可以包括网络接口、调制解调器、端口、总线、链路、收发器或其他通信设备。通信接口520可以分布在多个通信设备之间。处理系统530可以包括微处理器、微控制器、逻辑电路或其他处理设备。处理系统530可以分布在多个处理设备之间。用户接口560可以包括键盘、鼠标、语音识别界面、麦克风和扬声器、图形显示器、触摸屏或其他类型的用户接口设备。用户接口560可以分布在多个接口设备之间。存储系统540可以包括磁盘、磁带、集成电路、RAM、ROM、EEPROM、闪存、网络存储器、服务器或其他存储器功能。存储系统540可以包括计算机可读介质。存储系统540可以分布在多个存储设备之间。
处理系统530从存储系统540取回和执行软件550。处理系统530可以取回和存储数据570。处理系统530也可以经由通信接口520取回和存储数据。处理系统550可以创建或修改软件550或数据570以实现有形结果。处理系统可以控制通信接口520或用户接口560以实现有形结果。处理系统530可以经由通信接口520检索和执行远程存储的软件。
软件550和远程存储的软件可以包括操作系统、实用程序、驱动程序、网络软件以及通常由计算机系统执行的其他软件。软件550可以包括应用程序、小程序、固件或通常由计算机系统执行的其他形式的机器可读处理指令。当由处理系统530执行时,软件550或远程存储的软件可以指示计算机系统500如本文所述进行操作。
本文中讨论的实现方式包括但不限于以下示例:
示例1:一种集成电路,包括:共享公共末级高速缓存的多个处理器核,所述多个处理器核各自包括非相干存储器顺序缓冲器,第一处理器核是所述多个处理器核中的一个处理器核;以及共享存储器顺序缓冲器,用以接收由所述多个处理器核发送的相干存储事务;所述公共末级高速缓存,用以接收由所述多个处理器核的非相干存储器顺序缓冲器发送的存储事务,所述公共末级高速缓存还用以从所述共享存储器顺序缓冲器接收与由所述多个处理器核发送的所述相干存储事务相对应的存储事务。
示例2:根据示例1所述的集成电路,其中由所述多个处理器核的所述非相干存储器顺序缓冲器发送的存储事务包括在被发送到所述末级高速缓存之前已经由至少一个低级高速缓存处理的存储事务。
示例3:根据示例1所述的集成电路,其中至少部分地基于所述相干存储事务作为目标的地址在经配置的地址范围内,由所述多个处理器核发送的所述相干存储事务将被直接发送到共享存储器顺序缓冲器。
示例4:根据示例1所述的集成电路,其中至少部分地基于由所述非相干存储器顺序缓冲器发送的所述存储事务作为目标的地址在经配置的地址范围内,由所述非相干存储器顺序缓冲器发送的所述存储事务在被发送到所述末级高速缓存之前将由低级高速缓存处理。
示例5:根据示例1所述的集成电路,其中至少部分地基于由所述存储事务作为目标的地址在由所述第一处理器核可写入的至少一个寄存器规定的地址范围内,由所述多个处理器核发送的存储事务将被直接发送到共享存储器顺序缓冲器。
示例6:根据示例3所述的集成电路,其中所述经配置的地址范围对应于至少一个存储器页面。
示例7:根据示例4所述的集成电路,其中所述经配置的地址范围对应于至少一个存储器页面。
示例8:一种操作处理系统的方法,包括:在公共末级高速缓存处从多个处理器核接收多个非相干存储事务,第一处理器核是所述多个处理器核中的一个处理器核;在存储器顺序缓冲器处从所述多个处理器核接收多个相干存储事务;由所述第一处理器核直接向所述存储器顺序缓冲器发出至少第一相干存储事务,所述第一相干存储事务在被发送到所述末级高速缓存之前将由所述存储器顺序缓冲器处理;由所述第一处理器核发出至少第一非相干存储事务,所述第一非相干存储事务在被发送到所述末级高速缓存之前将由至少一个低级高速缓存处理;以及在所述末级高速缓存处接收所述非相干存储事务和由所述相干存储事务存储的数据。
示例9:根据示例8所述的方法,其中所述第一处理器核基于与由所述第一处理器核执行的存储指令的目标相对应的地址在经配置的地址范围内来发出所述第一相干存储事务。
示例10:根据示例9所述的方法,其中所述配置的地址范围对应于至少一个存储器页面。
示例11:根据示例10所述的方法,其中与所述至少一个存储器页面相关联的页面表条目包括所述第一处理器核将要发出所述第一相干存储事务的指示符。
示例12:根据示例9所述的方法,还包括:从由所述多个处理器中的一个处理器核写入的寄存器接收与经配置的地址范围的至少一个极限相对应的指示符。
示例13:根据示例8所述的方法,其中所述第一处理器核基于与由所述第一处理器核执行的存储指令的目标相对应的地址落入经配置的地址范围内来发出所述第一非相干存储事务。
示例14:根据示例13所述的方法,其中所述经配置的地址范围对应于至少一个存储器页面。
示例15:根据示例14所述的方法,其中与所述至少一个存储器页面相关联的页面表条目包括所述第一处理器核将要发出所述第一非相干存储事务的指示符。
示例16:根据示例11所述的方法,还包括:从由所述多个处理器中的一个处理器核写入的寄存器接收与所述经配置的地址范围的至少一个极限相对应的指示符。
示例17:一种处理系统,包括:多个处理核,多个处理核各自被耦合到至少第一级高速缓存;与所述第一级高速缓存分开的末级高速缓存,用以从所述第一级高速缓存接收非相干存储数据块;耦合到所述末级高速缓存的存储器顺序缓冲器,用以从所述多个处理核中的第一处理核接收相干存储数据块,所述相干存储数据块没有被所述第一级高速缓存处理。
示例18:根据示例17所述的处理系统,其中地址范围确定所述相干存储数据块是否将被发送到所述存储器顺序缓冲器而没有被所述第一级高速缓存处理。
示例19:根据示例17所述的处理系统,其中页面表条目中的指示符确定所述相干存储数据块是否将被发送到所述存储器顺序缓冲器而没有被所述第一级高速缓存处理。
示例20:根据示例17所述的处理系统,页面表条目中的指示符确定所述非相干存储数据块是否将被发送到所述末级高速缓存而没有被所述存储器顺序缓冲器处理。
为了说明和描述的目的,已经给出了所公开的实施例的前述描述。它们并不旨在是详尽的或将所要求保护的主题的范围限制为所公开的(多种)精确形式,并且根据以上教导,其他修改和变型是可能的。选择和描述实施例是为了最好地解释所公开的实施例的原理及其实际应用,从而使得本领域的其他技术人员能够最佳地利用适合于预期的特定用途的各种实施例和各种修改。意图在于,所附权利要求应当被解释为包括其他替代实施例,除非现有技术所限制。
Claims (15)
1.一种集成电路,包括:
多个处理器核,所述多个处理器核共享公共末级高速缓存,所述多个处理器核各自包括非相干存储器顺序缓冲器,第一处理器核是所述多个处理器核中的一个处理器核;以及
共享存储器顺序缓冲器,用以接收由所述多个处理器核发送的相干存储事务;
所述公共末级高速缓存,用以接收由所述多个处理器核的所述非相干存储器顺序缓冲器发送的存储事务,所述公共末级高速缓存还用以从所述共享存储器顺序缓冲器接收与由所述多个处理器核发送的所述相干存储事务相对应的存储事务。
2.根据权利要求1所述的集成电路,其中由所述多个处理器核的所述非相干存储器顺序缓冲器发送的所述存储事务包括在被发送到所述末级高速缓存之前已经由至少一个低级高速缓存处理的存储事务。
3.根据权利要求1所述的集成电路,其中至少部分地基于所述相干存储事务作为目标的地址在经配置的地址范围内,由所述多个处理器核发送的所述相干存储事务将被直接发送到共享存储器顺序缓冲器。
4.根据权利要求1所述的集成电路,其中至少部分地基于由所述非相干存储器顺序缓冲器发送的所述存储事务作为目标的地址在经配置的地址范围内,由所述非相干存储器顺序缓冲器发送的所述存储事务在被发送到所述末级高速缓存之前将由低级高速缓存处理。
5.根据权利要求1所述的集成电路,其中至少部分地基于所述存储事务作为目标的地址在由所述第一处理器核可写入的至少一个寄存器规定的地址范围内,由所述多个处理器核发送的所述存储事务将被直接发送到共享存储器顺序缓冲器。
6.一种操作处理系统的方法,包括:
在公共末级高速缓存处从多个处理器核接收多个非相干存储事务,第一处理器核是所述多个处理器核中的一个处理器核;
在存储器顺序缓冲器处从所述多个处理器核接收多个相干存储事务;
由所述第一处理器核直接向所述存储器顺序缓冲器发出至少第一相干存储事务,所述第一相干存储事务在被发送到所述末级高速缓存之前将由所述存储器顺序缓冲器处理;
由所述第一处理器核发出至少第一非相干存储事务,所述第一非相干存储事务在被发送到所述末级高速缓存之前将由至少一个低级高速缓存处理;以及
在所述末级高速缓存处接收所述非相干存储事务和由所述相干存储事务存储的数据。
7.根据权利要求6所述的方法,其中所述第一处理器核基于与由所述第一处理器核执行的存储指令的目标相对应的地址落入经配置的地址范围内来发出所述第一相干存储事务。
8.根据权利要求6所述的方法,其中与至少一个存储器页面相关联的页面表条目包括所述第一处理器核将要发出所述第一相干存储事务的指示符。
9.根据权利要求7所述的方法,还包括:
从由所述多个处理器中的一个处理器写入的寄存器接收与所述经配置的地址范围的至少一个极限相对应的指示符。
10.根据权利要求6所述的方法,其中所述第一处理器核基于与由所述第一处理器核执行的存储指令的目标相对应的地址落入经配置的地址范围内来发出所述第一非相干存储事务。
11.根据权利要求10所述的方法,其中所述经配置的地址范围对应于至少一个存储器页面,并且与所述至少一个存储器页面相关联的页面表条目包括所述第一处理器核将要发出所述第一非相干存储事务的指示符。
12.一种处理系统,包括:
多个处理核,所述多个处理核各自被耦合到至少第一级高速缓存;
末级高速缓存,所述末级高速缓存与所述第一级高速缓存分离,所述末级高速缓存用以从所述第一级高速缓存接收非相干存储数据块;
存储器顺序缓冲器,所述存储器顺序缓冲器被耦合到所述末级高速缓存,所述存储器顺序缓冲器用以从所述多个处理核中的第一处理核接收相干存储数据块,所述相干存储数据块没有被所述第一级高速缓存处理。
13.根据权利要求12所述的处理系统,其中地址范围确定所述相干存储数据块是否将被发送到所述存储器顺序缓冲器而没有被所述第一级高速缓存处理。
14.根据权利要求12所述的处理系统,其中页面表条目中的指示符确定所述相干存储数据块是否将被发送到所述存储器顺序缓冲器而没有被所述第一级高速缓存处理。
15.根据权利要求12所述的处理系统,页面表条目中的指示符确定所述非相干存储数据块是否将被发送到所述末级高速缓存而没有被所述存储器顺序缓冲器处理。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/621,870 US10303603B2 (en) | 2017-06-13 | 2017-06-13 | Low power multi-core coherency |
US15/621,870 | 2017-06-13 | ||
PCT/US2018/034029 WO2018231453A1 (en) | 2017-06-13 | 2018-05-23 | Low power multi-core coherency |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110741355A true CN110741355A (zh) | 2020-01-31 |
CN110741355B CN110741355B (zh) | 2023-06-13 |
Family
ID=62621019
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880039910.7A Active CN110741355B (zh) | 2017-06-13 | 2018-05-23 | 低功率多核相干性 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10303603B2 (zh) |
EP (1) | EP3639146B1 (zh) |
CN (1) | CN110741355B (zh) |
WO (1) | WO2018231453A1 (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018183542A1 (en) | 2017-03-29 | 2018-10-04 | Fungible, Inc. | Non-blocking any-to-any data center network with packet spraying over multiple alternate data paths |
US10637685B2 (en) | 2017-03-29 | 2020-04-28 | Fungible, Inc. | Non-blocking any-to-any data center network having multiplexed packet spraying within access node groups |
WO2018183526A1 (en) | 2017-03-29 | 2018-10-04 | Fungible, Inc. | Non-blocking, full-mesh data center network having optical permutors |
CN110741356B (zh) | 2017-04-10 | 2024-03-15 | 微软技术许可有限责任公司 | 多处理器系统中的中继一致存储器管理 |
US10725825B2 (en) | 2017-07-10 | 2020-07-28 | Fungible, Inc. | Data processing unit for stream processing |
US10659254B2 (en) | 2017-07-10 | 2020-05-19 | Fungible, Inc. | Access node integrated circuit for data centers which includes a networking unit, a plurality of host units, processing clusters, a data network fabric, and a control network fabric |
WO2019068010A1 (en) | 2017-09-29 | 2019-04-04 | Fungible, Inc. | VIRTUAL MATRIX OF NETWORK ACCESS NODES CONFIGURED DYNAMICALLY ON AN UNDERLYING NETWORK |
WO2019068017A1 (en) | 2017-09-29 | 2019-04-04 | Fungible, Inc. | RESILIENT NETWORK COMMUNICATION USING SELECTIVE PULVER FLOW SPRAY BY MULTIPATH PATH |
WO2019104090A1 (en) | 2017-11-21 | 2019-05-31 | Fungible, Inc. | Work unit stack data structures in multiple core processor system for stream data processing |
WO2019152063A1 (en) | 2018-02-02 | 2019-08-08 | Fungible, Inc. | Efficient work unit processing in a multicore system |
US10929175B2 (en) | 2018-11-21 | 2021-02-23 | Fungible, Inc. | Service chaining hardware accelerators within a data stream processing integrated circuit |
US11513973B2 (en) * | 2019-12-20 | 2022-11-29 | Advanced Micro Devices, Inc. | Arbitration scheme for coherent and non-coherent memory requests |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1268704A (zh) * | 1999-03-29 | 2000-10-04 | 国际商业机器公司 | 一种用于高速缓存相干对称多处理器系统内的分区存储器保护的装置和方法 |
CN102483840A (zh) * | 2009-08-21 | 2012-05-30 | 英派尔科技开发有限公司 | 向处理器核分配高速缓冲存储器关联性 |
Family Cites Families (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5530933A (en) | 1994-02-24 | 1996-06-25 | Hewlett-Packard Company | Multiprocessor system for maintaining cache coherency by checking the coherency in the order of the transactions being issued on the bus |
US5897656A (en) | 1996-09-16 | 1999-04-27 | Corollary, Inc. | System and method for maintaining memory coherency in a computer system having multiple system buses |
KR100567099B1 (ko) | 2001-06-26 | 2006-03-31 | 썬 마이크로시스템즈, 인코포레이티드 | L2 디렉토리를 이용한 멀티프로세서 시스템의 가-저장촉진 방법 및 장치 |
US6934806B2 (en) | 2002-09-23 | 2005-08-23 | International Business Machines Corporation | Method and system for improving input/output performance by proactively flushing and locking an entire page out of caches of a multiprocessor system |
US7321964B2 (en) | 2003-07-08 | 2008-01-22 | Advanced Micro Devices, Inc. | Store-to-load forwarding buffer using indexed lookup |
US7409500B2 (en) | 2004-01-13 | 2008-08-05 | Hewlett-Packard Development Company, L.P. | Systems and methods for employing speculative fills |
US7263586B1 (en) | 2004-02-17 | 2007-08-28 | Sun Microsystems, Inc. | Cache coherency for multiple independent cache of a domain |
US8230422B2 (en) | 2005-01-13 | 2012-07-24 | International Business Machines Corporation | Assist thread for injecting cache memory in a microprocessor |
US7376793B2 (en) | 2005-07-21 | 2008-05-20 | Sun Microsystems, Inc. | Cache coherence protocol with speculative writestream |
US7653789B2 (en) | 2006-02-01 | 2010-01-26 | Sun Microsystems, Inc. | Multiprocessor system that supports both coherent and non-coherent memory accesses |
US7523266B2 (en) | 2006-02-06 | 2009-04-21 | Sun Microsystems, Inc. | Method and apparatus for enforcing memory reference ordering requirements at the L1 cache level |
DE112006003917T5 (de) | 2006-05-30 | 2009-06-04 | Intel Corporation, Santa Clara | Verfahren, Gerät und System angewendet in einem Cachespeicher-Kohärenzprotokoll |
US7516310B2 (en) | 2006-06-08 | 2009-04-07 | International Business Machines Corporation | Method to reduce the number of times in-flight loads are searched by store instructions in a multi-threaded processor |
US7853752B1 (en) | 2006-09-29 | 2010-12-14 | Tilera Corporation | Caching in multicore and multiprocessor architectures |
US7734857B2 (en) | 2007-07-31 | 2010-06-08 | Intel Corporation | Cache coherent switch device |
US7925836B2 (en) * | 2008-01-25 | 2011-04-12 | Arm Limited | Selective coherency control |
US8108617B2 (en) * | 2008-02-08 | 2012-01-31 | International Business Machines Corporation | Method to bypass cache levels in a cache coherent system |
US8185695B2 (en) | 2008-06-30 | 2012-05-22 | Advanced Micro Devices, Inc. | Snoop filtering mechanism |
US8631208B2 (en) * | 2009-01-27 | 2014-01-14 | Intel Corporation | Providing address range coherency capability to a device |
US8560803B2 (en) | 2010-06-23 | 2013-10-15 | International Business Machines Corporation | Dynamic cache queue allocation based on destination availability |
US8738860B1 (en) | 2010-10-25 | 2014-05-27 | Tilera Corporation | Computing in parallel processing environments |
US8412888B2 (en) | 2011-01-06 | 2013-04-02 | International Business Machines Corporation | Cache-based speculation of stores following synchronizing operations |
US8868833B1 (en) * | 2011-08-02 | 2014-10-21 | Ionu Security, Inc. | Processor and cache arrangement with selective caching between first-level and second-level caches |
US9158693B2 (en) | 2011-10-31 | 2015-10-13 | Intel Corporation | Dynamically controlling cache size to maximize energy efficiency |
US9208110B2 (en) | 2011-11-29 | 2015-12-08 | Intel Corporation | Raw memory transaction support |
CN103403673A (zh) | 2011-12-29 | 2013-11-20 | 英特尔公司 | 支持无数据情况下推测性所有权 |
US9009541B2 (en) | 2012-08-20 | 2015-04-14 | Apple Inc. | Efficient trace capture buffer management |
US20140089600A1 (en) | 2012-09-27 | 2014-03-27 | Apple Inc. | System cache with data pending state |
US9317102B2 (en) | 2013-01-03 | 2016-04-19 | Apple Inc. | Power control for cache structures |
WO2014142939A1 (en) | 2013-03-15 | 2014-09-18 | Intel Corporation | Providing snoop filtering associated with a data buffer |
US9875108B2 (en) | 2013-03-16 | 2018-01-23 | Intel Corporation | Shared memory interleavings for instruction atomicity violations |
US9176879B2 (en) | 2013-07-19 | 2015-11-03 | Apple Inc. | Least recently used mechanism for cache line eviction from a cache memory |
US9329890B2 (en) | 2013-09-26 | 2016-05-03 | Globalfoundries Inc. | Managing high-coherence-miss cache lines in multi-processor computing environments |
US9229866B2 (en) | 2013-11-25 | 2016-01-05 | Apple Inc. | Delaying cache data array updates |
US9367461B2 (en) * | 2014-01-31 | 2016-06-14 | The Regents Of The University Of Michigan | Ordering constraint management within coherent memory systems |
US10019368B2 (en) | 2014-05-29 | 2018-07-10 | Samsung Electronics Co., Ltd. | Placement policy for memory hierarchies |
US10409763B2 (en) | 2014-06-30 | 2019-09-10 | Intel Corporation | Apparatus and method for efficiently implementing a processor pipeline |
US9448937B1 (en) * | 2014-08-18 | 2016-09-20 | Xilinx, Inc. | Cache coherency |
US10489158B2 (en) * | 2014-09-26 | 2019-11-26 | Intel Corporation | Processors, methods, systems, and instructions to selectively fence only persistent storage of given data relative to subsequent stores |
US9760498B2 (en) * | 2014-09-26 | 2017-09-12 | Qualcomm Incorporated | Hybrid cache comprising coherent and non-coherent lines |
US10802968B2 (en) | 2015-05-06 | 2020-10-13 | Apple Inc. | Processor to memory with coherency bypass |
US9858189B2 (en) | 2015-06-24 | 2018-01-02 | International Business Machines Corporation | Hybrid tracking of transaction read and write sets |
US20180004660A1 (en) | 2016-06-30 | 2018-01-04 | Microsoft Technology Licensing, Llc | Direct store to coherence point |
-
2017
- 2017-06-13 US US15/621,870 patent/US10303603B2/en active Active
-
2018
- 2018-05-23 EP EP18731646.8A patent/EP3639146B1/en active Active
- 2018-05-23 CN CN201880039910.7A patent/CN110741355B/zh active Active
- 2018-05-23 WO PCT/US2018/034029 patent/WO2018231453A1/en unknown
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1268704A (zh) * | 1999-03-29 | 2000-10-04 | 国际商业机器公司 | 一种用于高速缓存相干对称多处理器系统内的分区存储器保护的装置和方法 |
CN102483840A (zh) * | 2009-08-21 | 2012-05-30 | 英派尔科技开发有限公司 | 向处理器核分配高速缓冲存储器关联性 |
Also Published As
Publication number | Publication date |
---|---|
WO2018231453A1 (en) | 2018-12-20 |
US10303603B2 (en) | 2019-05-28 |
CN110741355B (zh) | 2023-06-13 |
EP3639146A1 (en) | 2020-04-22 |
US20180357169A1 (en) | 2018-12-13 |
EP3639146B1 (en) | 2022-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110741355B (zh) | 低功率多核相干性 | |
CN110209601B (zh) | 存储器接口 | |
TWI651620B (zh) | 用於處理多個交易之資料處理系統及方法 | |
CN110209610B (zh) | 存储器接口 | |
US8180981B2 (en) | Cache coherent support for flash in a memory hierarchy | |
US6425060B1 (en) | Circuit arrangement and method with state-based transaction scheduling | |
CN103198025B (zh) | 用于近邻数据高速缓存共享的方法和系统 | |
US10282298B2 (en) | Store buffer supporting direct stores to a coherence point | |
US11914514B2 (en) | Data coherency manager with mapping between physical and virtual address spaces | |
US10761986B2 (en) | Redirecting data to improve page locality in a scalable data fabric | |
US9135177B2 (en) | Scheme to escalate requests with address conflicts | |
JP2005539282A (ja) | 単一のコヒーレントなシステム内の分散コンピュータ・ノードにキャッシュ・コヒーレンスを提供するのにグローバル・スヌープを使用する方法および装置 | |
US20070061519A1 (en) | Early return indication for read exclusive requests in shared memory architecture | |
CN107015923B (zh) | 用于管理探听操作的一致性互连和包括其的数据处理装置 | |
US20190155729A1 (en) | Method and apparatus for improving snooping performance in a multi-core multi-processor | |
US20180004660A1 (en) | Direct store to coherence point | |
US7296167B1 (en) | Combined system responses in a chip multiprocessor | |
WO2021064484A1 (en) | Cache-inhibited write operations | |
US10324850B2 (en) | Serial lookup of tag ways | |
US10133671B2 (en) | Proxy cache conditional allocation |
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 |