CN105103139B - 用于改善跨越相干总线的信号量管理序列的性能的方法和设备 - Google Patents

用于改善跨越相干总线的信号量管理序列的性能的方法和设备 Download PDF

Info

Publication number
CN105103139B
CN105103139B CN201480020090.9A CN201480020090A CN105103139B CN 105103139 B CN105103139 B CN 105103139B CN 201480020090 A CN201480020090 A CN 201480020090A CN 105103139 B CN105103139 B CN 105103139B
Authority
CN
China
Prior art keywords
cache
exclusive
cache memory
line
processor
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
CN201480020090.9A
Other languages
English (en)
Other versions
CN105103139A (zh
Inventor
托马斯·菲利普·施派尔
埃里克·F·罗宾森
贾亚·普拉喀什·苏布拉马尼亚姆·贾纳桑
托马斯·安德鲁·萨托里乌斯
詹姆斯·诺里斯·迪芬德尔费尔
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN105103139A publication Critical patent/CN105103139A/zh
Application granted granted Critical
Publication of CN105103139B publication Critical patent/CN105103139B/zh
Expired - Fee Related 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/0808Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating 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/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
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明描述用于具有两个或更多个处理器的多处理器的技术,所述多处理器增加了加载排他命令使高速缓冲存储线变成排他状态的机会,这样使得执行存储排他时性能得到提高。新的总线操作读取偏好型排他用作一个暗示,向其它高速缓冲存储器暗示发出请求的主设备很可能存储到所述高速缓冲存储线,并且,如果可能的话,其它高速缓冲存储器应当放弃所述线。在大多数情况下,这将使得其它主设备放弃所述线,而所述发出请求的主设备使所述线变成排他的。在大多数情况下,两个或更多个处理器不在同时执行对于相同地址的信号量管理序列。因此,发出请求的主设备的加载排他能够更多次使高速缓冲存储线变成所述排他状态。

Description

用于改善跨越相干总线的信号量管理序列的性能的方法和 设备
优先权申请
本申请要求2013年7月2日提交的名称为“用于改善跨越相干总线的信号量管理序列的性能的方法和设备(METHODS AND APPARATUS FOR IMPROVING PERFORMANCE OFSEMAPHORE MANAGEMENT SEQUENCES ACROSS A COHERENT BUS)”的序列号为13/933,337的美国专利申请的优先权,该申请进一步要求2013年4月11日提交的名称为“用于改善跨越相干总线的信号量管理序列的性能的方法和设备(METHODS AND APPARATUS FOR IMPROVINGPERFORMANCE OF SEMAPHORE MANAGEMENT SEQUENCES ACROSS A COHERENT BUS)”的序列号为61/810,889的美国临时专利申请的优先权,这两份申请的全文都以引用的方式并入本文中。
技术领域
本发明的实施例大体上涉及信号量管理方面,且更具体来说涉及跨越相干总线的信号量管理。
背景技术
许多便携式产品(例如蜂窝电话、膝上型计算机、个人数据助理(PDA)及类似者)利用执行程序(例如通信和多媒体程序)的处理系统。用于此类产品的处理系统可以包括多个处理器、包括用于存储指令和数据的多层高速缓冲存储器和存储器的复杂存储器系统、控制器、例如通信接口的外围装置和配置(例如)在单芯片上的固定功能逻辑块。
多处理器(MP),例如双核处理器或四核处理器,总体上设计成一种利用多层存储器层级的共享存储器系统。在此共享存储器MP中,数据可以组织成私用数据和共享数据。私用数据进一步组织为由MP中的每一处理器在本机使用。共享数据必需一种机制在处理器当中高效地传送数据,并且在处理器之间高效地维持数据的一致性。在处理器当中高效地传送数据的一种机制是在多层存储器层级内使用相干总线,所述相干总线支持一致性协议以确保共享的数据在处理器中的每一者之间是一贯的。
举例来说,可以在必需共享数据的一致性的高速缓冲存储器级使用总线,例如在共享存储器层级中的第2层高速缓冲存储器位置。在与MP中的每一处理器相关联的每一第2层高速缓冲存储器之间利用相干总线。已经研发了多种协议来维持共享的数据的一致性,例如修改自有排他共享无效(MOESI)协议。在MOESI协议中,每一高速缓冲存储线用某种方式标记,以指示所述高速缓冲存储线是下面哪种情况:高速缓冲存储线仅仅存在于当前高速缓冲存储器中并且是已使用的(修改),高速缓冲存储线仅仅存在于当前高速缓冲存储器中并且是干净的(排他),高速缓冲存储线可以存储在MP中的其它高速缓冲存储器中,并且在当前高速缓冲存储器中是已使用的(自有),高速缓冲存储线可以存储在MP中的其它高速缓冲存储器中,并且在当前高速缓冲存储器中是干净的(共享),高速缓冲存储线在当前高速缓冲存储器中是无效的(无效)。每当写入到高速缓冲存储线时检查MOESI状态以便确定写入对在多个高速缓冲存储器中共享的对应数据的影响。
在多处理器中,每一处理代理使用专门的指令进行信号量管理。信号量管理通常包括一对专门加载和存储指令,以读取存储器位置、设置保留粒度(reservationgranule),并且基于保留粒度的状态来条件性地写入存储器位置。如果两个或更多个处理器正在竞争获得相同信号量,则跨越总线维持高速缓冲存储器一致性的系统有这些信号量管理指令导致活锁或性能不佳的可能。
发明内容
在本发明的几个方面当中,本发明认识到期望提供用于跨越相干总线的信号量管理的更高效的方法和设备。为了这些目的,本发明的一实施例提出一种用于多处理器中的跨越相干总线的信号量管理的方法。响应于从第一处理器发出的加载排他指令确定在所述第一处理器本机的第一高速缓冲存储器在目标地址处未中。在从所述第一高速缓冲存储器到在第二处理器本机的第二高速缓冲存储器的相干总线上发出读取偏好型排他命令。响应于所述读取偏好型排他命令,确定所述第二高速缓冲存储器中的保留粒度处于未标记状态。响应于所述确定针对此地址在所述第二高速缓冲存储器中的所述保留粒度处于所述未标记状态,使所述第二高速缓冲存储器中的所述高速缓冲存储线失效。
另一个实施例提出一种用于多处理系统中的跨越相干总线的信号量管理的设备。第一高速缓冲存储器控制器经配置以响应于第一高速缓冲存储器具有加载排他指令提供的目标地址处的数据未中,在从所述第一高速缓冲存储器到第二高速缓冲存储器的相干总线上发出读取偏好型排他命令,其中所述第一高速缓冲存储器耦合到发出了所述加载排他指令的第一处理代理并且所述第二高速缓冲存储器耦合到第二处理代理。第二高速缓冲存储器控制器经配置以监听所述相干总线,并且响应于监听到的读取偏好型排他命令和所述第二高速缓冲存储器中的保留粒度针对此目标地址经过标记,确保所述第二高速缓冲存储器中的所述线的状态处于有效和共享状态。
另一个实施例提出一种用于多处理器中的跨越相干总线的信号量管理的方法。响应于从第一处理器发出的加载排他指令,确定在所述第一处理器本机的第一高速缓冲存储器在目标地址处命中,其中所述存取的第一高速缓冲存储线处于共享或自有状态。在从所述第一高速缓冲存储器到在第二处理器本机的第二高速缓冲存储器的相干总线上发出升级偏好型排他命令。响应于所述升级偏好型排他命令,确定所述第二高速缓冲存储器在所述目标地址处命中,其中所述存取的第二高速缓冲存储线的保留粒度处于未标记状态。响应于所述第二高速缓冲存储线处于共享状态,将所述第一处理器所请求的所述线升级成排他状态。
另一实施例提出一种编码有计算机可读程序数据和代码的计算机可读非暂时性媒体。响应于从第一处理器发出的加载排他指令确定在所述第一处理器本机的第一高速缓冲存储器在目标地址处未中。在从所述第一高速缓冲存储器到在第二处理器本机的第二高速缓冲存储器的相干总线上发出读取偏好型排他命令。响应于所述第二高速缓冲存储器中针对此地址的保留粒度处于未标记状态,使所述第二高速缓冲存储器中的所述高速缓冲存储线失效。
另一个实施例提出一种用于多处理系统中的跨越相干总线的信号量管理的设备。利用装置响应于第一高速缓冲存储器具有加载排他指令提供的目标地址处的数据未中,在从所述第一高速缓冲存储器到第二高速缓冲存储器的相干总线上发出读取偏好型排他命令,其中所述第一高速缓冲存储器耦合到发出了所述加载排他指令的第一处理代理并且所述第二高速缓冲存储器耦合到第二处理代理。利用装置来监听所述相干总线,并且响应于监听到的读取偏好型排他命令和所述第二高速缓冲存储器中的保留粒度针对此目标地址经过标记,确保所述第二高速缓冲存储器中的所述线的状态处于有效和共享状态。
应理解,所属领域的技术人员从以下详细描述将容易明白本发明的其它实施例,其中借助于说明来示出和描述本发明的各种实施例。将认识到,本发明能够在全部不脱离本发明的精神和范围的情况下具有其它及不同实施例且其若干细节能够在各种其它方面加以修改。因此,附图和详细描述应被视为本质上是说明性的而不是限制性的。
附图说明
在附图中作为实例而非作为限制说明本发明的各种方面,其中:
图1说明双核多处理器(MP)系统;
图2A说明两个处理代理之间的信号量管理的基本实例;
图2B说明跨越相干总线的信号量管理的第一场景;
图2C说明跨越相干总线的信号量管理的第二场景;
图2D说明跨越相干总线的信号量管理的第三场景,其说明活锁的情形;
图3A说明具有对高效活锁避免的支持的信号量管理过程;
图3B说明读取偏好型排他信号量管理过程;
图3C说明升级偏好型排他信号量管理过程;
图4A说明使用读取偏好型排他总线命令的示范性第一信号量管理技术;
图4B说明使用读取偏好型排他总线命令的示范性第二信号量管理技术;
图4C说明使用升级偏好型排他总线命令的示范性第三信号量管理技术;以及
图5说明根据本发明的实施例的利用具有高效活锁避免的示范性信号量管理的便携式装置的特定实施例。
具体实施方式
下文结合附图阐述的详细描述意图作为对本发明的各种示例性实施例的描述,且并不意图表示可以实践本发明的仅有实施例。为了提供对本发明的透彻理解,详细描述包含一些具体细节。然而,所属领域的技术人员将明白,可以在没有这些具体细节的情况下实践本发明。在一些情况下,以框图形式示出众所周知的结构和组件以便避免混淆本发明的概念。
图1说明多处理器(MP)系统100。MP系统100包括双核系统102,双核系统102具有第一处理代理(PX1)104(例如第一核心处理器)、第1层数据高速缓冲存储器-1(L1Dcache-1)105、L2高速缓冲存储器和控制器-1 106、第二处理代理(PX2)108(例如第二核心处理器)、第1层数据高速缓冲存储器-2(L1Dcache-2)109、L2高速缓冲存储器和控制器-2 110、相干总线114和主存储器116。L2高速缓冲存储器和控制器-1 106包含L2高速缓冲存储器1 120、L2控制器-1 121、保留粒度-1(RG-1)122和snoop1单元123。L2高速缓冲存储器和控制器-2110包含L2高速缓冲存储器2 126、L2控制器-2 127、保留粒度-2(RG-2)128和snoop2单元129。还可在使用本文所述的类似技术的存储器层级中的其它级中的高速缓冲存储器之间使用相干总线。应注意,系统100并不限于均质的机器,这是因为异质机器组织中的其它类型的处理代理(例如处理器或硬件加速器)可以执行用于信号量管理的专门的指令。保留粒度(RG),例如RG-1 122和RG-2 128,包括程序可存取的存储位置,其具有有效指示,例如有效位,以及用于存储地址的标记字段。虽然是在相关联的L2高速缓冲存储器控制器中展示RG-1 122和RG-2 128,但是保留粒度的位置不受此限制,并且可以位于双核系统102中的其它地方,例如举例来说存储器层级的不同级的控制器。
在双核MP系统100中,每一处理代理例如PX1 104和PX2 108使用专门的指令来进行信号量管理。信号量管理通常包括一对专门加载和存储指令,以读取存储器位置、设置保留粒度,并且基于保留粒度的状态来条件性地写入存储器位置。这些专门的指令被称作加载排他(LDEX)和存储排他(STEX)的。保留粒度(RG)用于确定在执行LDEX和STEX之间,是否另一处理代理已经改变了为LDEX传回的数据值。换句话说,RG用于允许两个不连续的指令一起表现,就仿佛这两个指令是原子性的一样,即使这两个指令是单个执行的也是如此。还关于图3A-3C和图4A-4C更详细地描述用于高效的信号量管理的专门命令,包含读取偏好型排他命令和升级偏好型排他命令。
MP系统100用于跨越相干总线114的信号量管理。响应于第一高速缓冲存储器具有加载排他指令提供的目标地址处的数据未中,利用装置(例如L2高速缓冲存储器和控制器-1 106)在从第一高速缓冲存储器到第二高速缓冲存储器的相干总线上发出读取偏好型排他命令,其中第一高速缓冲存储器耦合到发出了加载排他指令的第一处理代理并且第二高速缓冲存储器耦合到第二处理代理。利用装置(例如L2高速缓冲存储器和控制器-2 110)来监听相干总线并且对监听到的读取偏好型排他命令作出响应,响应的方法是通过提供数据到目标地址处的第一高速缓冲存储器。响应于针对这个目标地址标记了第二高速缓冲存储器中的保留粒度,第二高速缓冲存储器中的所述线的状态以有效状态结束。
举例来说,与执行加载排他(LDEX)或存储排他(STEX)指令的第一处理代理(PX1)104相关联的L2高速缓冲存储器和控制器-1 106可以配置有解码器,用于识别相干总线114上的命令。L2高速缓冲存储器和控制器-1 106还配置有用于识别存取的高速缓冲存储线的状态的硬件,并且配置有比较器,用于确定当前高速缓冲存储线状态或当前保留粒度(RG)状态是否已经相对于对应先前状态改变。通过单独的机构来确定高速缓冲存储线状态,例如L2高速缓冲存储器1 120中存取的高速缓冲存储线的状态和RG-1 122的状态,所述单独的机构并行地存取所存储的状态值。接着由逻辑装置组合所确定的状态值以识别是否需要发出总线命令。如果需要发出总线命令,则选择适当的总线命令来发出。虽然可以串行地检查高速缓冲存储器状态和RG状态,但是这种方法的效率可能没有并行地检查所述状态那么高。举例来说,例如snoop1 123和snoop2 129的监听器通过对相干总线114上的总线命令进行解码而分开并且并行地操作。所述所检测特定操作及所选择总线命令遵循图3A-3C和4A-4C中展示的操作,其包含改变高速缓冲存储线的状态、改变RG状态,和提供对执行了引起相干总线114上的命令的LDEX或STEX的处理代理的响应。对执行LDEX的处理代理的另一响应可以包含(举例来说)提供数据,例如下文关于图3B的框348、350、356和358所示。
图2A说明两个处理代理PX1 202与PX2 203之间的信号量管理200的基本实例。在第一操作204中,PX1执行LDEX A,LDEX A使得与PX1相关联的保留粒度(RG)被标记上LDEX的存储器地址A。在第二操作205中,PX1不采取动作,并且PX2也执行LDEX A,LDEX A使得与PX2相关联的RG被标记上存储器地址A。在多处理器(MP)环境中,如果一个处理代理的RG被标记上来自另一处理代理的STEX的地址,则来自所述另一处理代理的STEX必需取消那一个处理代理的RG的标记。因此,在第三操作206中,PX1执行STEX A,其完成执行,因为PX1的RG被加上标记,并且发出从PX的RG移除所述标记的总线命令。响应于所述总线命令,取消PX2的RG的标记。在第四操作207中,PX2尝试执行STEX,其执行失败,因为PX2的RG不再被标记。在一个不同的场景中,如果在PX1执行STEX之前PX2更新了PX1的RG寻址的存储器,则PX1的RG中的标记被清除,并且PX1的STEX于是将不更新存储器,因为所述RG不再被标记。标记的清除向PX1指示其LDEX传回的值现在过时了并且不是有效的。
跨越总线维持高速缓冲存储器一致性的系统有这些信号量管理指令导致活锁或性能不佳的可能。当STEX执行时与执行信号量管理指令的处理器相关联的高速缓冲存储器含有处于修改状态或排他状态的高速缓冲存储线时,会出现最佳性能。如果STEX寻址的高速缓冲存储线处于任何其它状态,则在允许STEX完成之前必须作出获得处于修改或排他状态的线的总线请求。
图2B说明跨越相干总线的信号量管理220的第一场景。对此第一场景,处理代理PX1 202和PX2 203不在尝试同时存取相同信号量,并且PX2保留包含地址A处的数据的高速缓冲存储线。并且,PX2的RG未被标记。在第一操作224中,PX1执行LDEX A并且获得共享状态的线。PX1的RG于是被标记上地址A。由于所述线路处于共享状态,所以必须使PX2对所述线的复本失效,以便将PX1的线改变成排他状态。在第二操作225中,PX1发出STEX A,其使得发出总线命令以使PX2的线失效。当PX1正在试图采集信号量时,被发出以使PX2的具有地址A的线失效的命令会导致额外的等待时间。
图2C说明跨越相干总线的信号量管理240的第二场景。对此第二场景,PX1 202、PX2 203和相干总线经配置以在执行LDEX后即刻获得线排他指令。PX2保留包含地址A处的数据的高速缓冲存储线。并且,在发出PX1的LDEX A之前,PX2的RG未被标记。在第一操作244中,PX1执行LDEX A,其使得发出读取排他总线命令,并且获得处于排他状态的线。由于所述线处于排他状态,所以PX2对线的复本失效,并且接着给PX1的RG标记上地址A。在第二操作245中,PX1发出STEX A,STEX A完成执行,因为PX1的RG被标记,并且PX1不需要发出总线命令,因为PX1的LDEX已经获得了处于排他状态的线A。虽然因为不需要PX1的STEX A在完成执行之前作出额外的总线命令,所以这种信号量管理技术240对性能有帮助,但是它可能导致关于图2D所述的活锁情形。
图2D说明跨越相干总线的信号量管理260的第三场景,其说明活锁的情形。对此第三场景,PX1 202、PX2 203和相干总线经配置以在执行LDEX后即刻获得线排他指令。PX1和PX2两者都保留包含地址A处的数据的高速缓冲存储线的复本。在第一操作264中,PX1执行LDEX A,其使得发出读取排他总线命令,并且获得处于排他状态的线。由于所述线处于排他状态,所以PX2对线的复本失效,并且接着给PX1的RG标记上地址A。如果PX2的RG被标记了,则给它消除标记。在第二操作265中,PX2执行LDEX A,其使得发出读取排他总线命令,并且获得处于排他状态的线。由于所述线处于排他状态,所以PX1对所述线的复本失效,PX1的RG被消除标记,并且PX2的RG接着被标记上地址A。在第三操作266中,PX1发出STEX,STEX会失败,因为其RG不再被标记,从而导致LDEX/STEX过程重复。在第四操作267中,PX1执行LDEXA,其使得发出读取排他总线命令,并且PX1获得处于排他状态的线。由于所述线处于排他状态,所以PX2对所述线的复本失效,PX1的RG接着被标记上地址A,并且PX2的RG被消除标记。在第五操作268中,PX2发出STEX,STEX会失败,因为其RG不再被标记,从而导致LDEX/STEX过程重复。在第六操作269中并且继续,由于活锁情形,PX1和PX2两者中的LDEX/STEX过程都重复。
为了确保不出现活锁情形,应注意STEX操作前面始终是LDEX操作,因此,LDEX可以在预测STEX执行时用作获得处于修改或排他状态的线的暗示。然而,实施方案不能要求如图2C和2D的操作所指示在执行LDEX后即刻要求处于修改或排他状态的线。如图2D中所示,如果两个处理器正在竞争获得相同信号量,则此方法可能导致活锁。为了避免这种活锁情形,先前实施方案在所有其它高速缓冲存储器具有无效的线的情况下允许LDEX获得处于排他状态的线,但是如果任何其它高速缓冲存储器具有处于无效之外的状态的线则必需共享所述线。在执行LDEX的处理代理共享所述线的情况下,STEX必须接着作出额外总线请求使其它高速缓冲存储器对线的共享复本失效(如图2B中所示),这样会导致性能损失。
双核系统102经配置以执行存储于非暂时性计算机可读媒体(例如与系统存储器116相关联)中的软件指令,并且所述软件指令可执行以使例如第一处理代理(PX1)104和第二处理代理(PX2)108等计算机执行程序,以按照图3A-3C和4A-4C中说明的操作。PX1 104和PX2 108经配置以执行软件指令,所述软件指令是从高速缓冲存储器105、120、109和126的不同级以及系统存储器116存取的。
图3A说明具有对高效活锁避免的支持的信号量管理过程300。为了避免活锁和相关联的性能损失,修改相干总线协议以包含例如在框308处发出的新命令,以便使得发出读取偏好型排他命令,并且在框312处使得发出升级偏好型排他命令。框308和312处的命令响应于与框306相关联的高速缓冲存储器存取、与框310相关联的高速缓冲存储线状态以及建构到高速缓冲存储器控制器中的保留颗粒(RG)的状态而操作,所述高速缓冲存储器控制器例如是L2高速缓冲存储器和控制器-1 106和L2高速缓冲存储器和控制器-2 110。
过程300开始于框304处,其中例如PX1 104的请求核心处理代理发出LDEX A指令。在框306处,与请求PX1相关联的高速缓冲存储器,例如图1的L2高速缓冲存储器1 120,确定具有地址A处的数据的线是否在所述高速缓冲存储器中。如果所述线不存在于所述高速缓冲存储器中,则过程300前进到框308。在框308处,相干总线控制器,例如与PX1相关联的L2高速缓冲存储器控制器-1 121,对相干总线114发出读取偏好型排他命令。返回到框306,如果所述线存在于所述高速缓冲存储器中,例如通过高速缓冲存储器中的命中所指示,则过程300前进到框310。在框310处,确定PX1的高速缓冲存储线状态是指示共享、自有、排他还是修改。如果所述状态是共享或自有,则过程300前进到框312。在框312处,相干总线控制器,例如与PX1相关联的L2高速缓冲存储器控制器-1 121,对相干总线114发出升级偏好型排他命令。返回到框310,如果所述状态是排他或修改,则过程300前进到框314,其中与PX1发出LDEX A指令相关联的过程完成。
图3B说明读取偏好排他信号量管理过程330。响应于LDEX指令给RG标记上目标高速缓冲存储线地址。只有在发出STEX指令以便执行的时候,执行STEX的处理代理的RG被标记的情况下,STEX指令才会更新存储器。读取偏好型排他操作用作对MP中的其它高速缓冲存储器的一个暗示,暗示发出请求的主设备很可能存储到所述高速缓冲存储线,并且,如果可能的话,其它高速缓冲存储器中的每一者应当使所述线失效以允许发出请求的主设备转变成排他状态。在大多数情况下,这将导致其它主设备使线失效,这也可被称作放弃所述线,并且发出请求的主设备使线变成排他的。应注意,即使一个高速缓冲存储线中的数据在第二高速缓冲存储器中未中,也可以将所述高速缓冲存储线标记成共享的。因为第二高速缓冲存储器的RG仍然标记上目标地址,所以将第一高速缓冲存储器中的所述高速缓冲存储线标记为共享。虽然第二高速缓冲存储器在其高速缓冲存储器中不具有有效的线,但是第二高速缓冲存储器的RG仍然是有效的,并且第一高速缓冲存储器使所述线成为共享的,以记住在第二高速缓冲存储器中存在经过标记的RG。STEX指令必须仍然广播要消除第二高速缓冲存储器中的RG的标记,即使第二高速缓冲存储器在其高速缓冲存储器中不具有有效的线也是如此。
另一高速缓冲存储器不能够放弃所述线的仅有的时候是在其它高速缓冲存储器本身在执行信号量管理序列并且其它高速缓冲存储器的RG被标记上相同地址时,因为这样可能导致活锁。在大多数情况下,多个处理器不会同时执行用于相同地址的信号量管理序列。因此,这个实施例可以明显增加发出请求的主设备的LDEX能够使线处于排他状态的次数,这样会提高MP的每一处理器中的性能。
过程330在框332处从监视器开始,监视器确定是否在相干总线上检测到读取偏好型排他命令。在针对PX2操作的监听器检测到(也称为监听到)来自相干总线114的命令后,过程330即刻前进到框334。在框334处,确定与在框304处发出的LDEX指令相关联的线是否在PX2的高速缓冲存储器中。如果确定所述线不在PX2的高速缓冲存储器中,例如通过高速缓冲存储器中的未中所指示,则过程330前进到框336。在框336处,确定与PX2相关联的高速缓冲存储线保留粒度(RG)是否被标记上LDEX指令的相同地址A,或者所述RG是否未被标记或被标记上不同于地址A的一个地址。如果所述线未被标记或被标记上不同于地址A的一个地址,则过程330前进到框338。在框338处,请求方(在这种情况下是PX1)使线成为排他的,并且从存储器层级中的下一级(例如从L3高速缓冲存储器)取得数据。过程330接着返回到框332。返回到框336,如果所述线被标记上相同地址,则过程330前进到框340。在框340处,请求方(在这种情况下是PX1)使所述线成为共享的,并且从存储器层级中的下一级取得数据。过程330接着返回到框332。
返回到框334,如果确定所述线在PX2的高速缓冲存储器中,例如通过高速缓冲存储器中的命中所指示,则过程330前进到框344。在框344处,确定与PX2相关联的高速缓冲存储线保留粒度(RG)是否被标记上LDEX指令的相同地址A,或者所述RG是否未被标记或被标记上不同于地址A的一个地址。如果所述线未被标记或被标记上不同于地址A的一个地址,则过程330前进到框346。在框346处,确定PX2高速缓冲存储线状态是否为共享或排他,或者PX2高速缓冲存储线状态是否为自有或修改。如果PX2高速缓冲存储线状态是共享或排他,则过程330前进到框348。在框348处,请求方PX1使所述线成为排他的,使PX2的高速缓冲存储器中的所述线失效,并且提供所存取的数据到PX1的高速缓冲存储器。过程330接着返回到框332。返回到框346,如果PX2高速缓冲存储线状态是自有或修改,则过程330前进到框350。在框350处,请求方PX1使所述线成为修改的,使PX2的高速缓冲存储器中的所述线失效,并且提供所存取的数据到PX1的高速缓冲存储器。过程330接着返回到框332。
返回到框344,如果所述线被标记上相同地址,则过程330前进到框354。在框354处,确定PX2高速缓冲存储线状态是否为共享或排他,或者PX2高速缓冲存储线状态是否为自有或修改。如果PX2高速缓冲存储线状态是共享或排他,则过程330前进到框356。在框356处,请求方PX1使所述线成为共享的,PX2的高速缓冲存储器如果处于排他状态,则转变成共享状态,如果处于共享状态,则保持在共享状态,并且提供所存取的数据到PX1的高速缓冲存储器。过程330接着返回到框332。返回到框354,如果PX2高速缓冲存储线状态是自有或修改,则过程330前进到框358。在框358处,请求方PX1使所述线成为共享的,PX2的高速缓冲存储器如果处于修改状态,则转变成自有状态,如果处于自有状态,则保持在自有状态,并且提供所存取的数据到PX1的高速缓冲存储器。过程330接着返回到框332。
图3C说明升级偏好型排他信号量管理过程360。过程360在框362处从监视器开始,监视器确定是否在相干总线上检测到升级偏好型排他命令。在针对PX2操作的监听单元或监听器检测到(也称为监听到)来自相干总线114的命令后,过程360即刻前进到框364。在框364处,确定与在框304处发出的LDEX指令相关联的线是否在PX2的高速缓冲存储器中。如果确定所述线不在PX2的高速缓冲存储器中,例如通过高速缓冲存储器中的未中所指示,则过程360前进到框366。在框366处,确定与PX2相关联的高速缓冲存储线保留粒度(RG)是否被标记上LDEX指令的相同地址A,或者所述RG是否未被标记或被标记上不同于地址A的一个地址。如果所述线未被标记或被标记上不同于地址A的一个地址,则过程360前进到框368。在框368处,请求方(在这种情况下是PX1)将线的状态升级成排他的。过程330接着返回到框332。返回到框366,如果所述线被标记上相同地址,则过程360前进到框370。在框370处,不采取动作,并且PX1和PX2都不改变高速缓冲存储器状态。过程330接着返回到框332。
返回到框364,如果确定所述线在PX2的高速缓冲存储器中,例如通过高速缓冲存储器中的命中所指示,则过程360前进到框372。在框372处,确定与PX2相关联的高速缓冲存储线保留粒度(RG)是否被标记上LDEX指令的相同地址A,或者所述RG是否未被标记或被标记上不同于地址A的一个地址。如果所述线未被标记或被标记上不同于地址A的一个地址,则过程360前进到框374。在框374处,确定PX2高速缓冲存储线状态是否为共享,或者PX2高速缓冲存储线状态是否为自有。如果PX2高速缓冲存储线状态是共享,则过程360前进到框376。在框376处,请求方PX1将所述线升级成排他状态,并且使PX2的高速缓冲存储器中的所述线失效。过程360接着返回到框362。返回到框374,如果PX2高速缓冲存储线状态是自有,则过程360前进到框378。在框378处,请求方PX1将所述线升级成修改状态,并且使PX2的高速缓冲存储器中的所述线失效。过程360接着返回到框362。
返回到框372,如果所述线被标记上相同地址,则过程360前进到框380。在框380处,不采取动作,并且PX1和PX2都不改变高速缓冲存储器状态。过程360接着返回到框362。
在替代实施例中,可以通过在现有总线命令中包含适当属性来确定读取偏好型排他命令和升级偏好型排他命令。举例来说,为了提供读取偏好型排他命令的功能,可以将指示发出请求的处理器可能需要线具有排他的属性添加到读取命令。在大多数情况下,其它处理代理将响应于允许发出请求的代理使高速缓冲存储线变成排他的属性而释放所述线。应注意,属性被设置成指示发出请求的处理器可能必需处于排他状态的线的读取命令也可被称作读取偏好型排他命令。并且,可以通过在升级命令中包含指示发出请求的处理器可能必需线具有排他的属性而实施升级偏好型排他命令的功能。
图4A说明使用读取偏好型排他总线命令的示范性第一信号量管理技术400。对此第一技术,在执行LDEX后,当LDEX本身无法要求线的排他时,PX1 402、PX2 403和相干总线经配置以机会性地获得线的排他。PX2保留包含地址A处的数据的高速缓冲存储线。并且,在发出PX1的LDEX A之前,PX2的RG未被标记。在第一操作404中,PX1执行LDEX A,其使得发出读取偏好型排他总线命令,并且获得处于排他状态的线。由于所述线处于排他状态,所以PX2对线的复本失效,并且接着给PX1的RG标记上地址A。在第二操作405中,PX1发出STEX A,STEX A完成执行,因为PX1的RG被标记,并且未发出额外总线命令。PX2不要求进一步的动作。因为不要求PX1的STEX A在完成执行之前作出额外总线命令,所以信号量管理技术400对性能有帮助。
图4B说明使用读取偏好型排他总线命令的示范性第二信号量管理技术420。对此第二信号量管理技术420,PX1 402、PX2 403和相干总线经配置以在执行LDEX后即刻获得排他的线。PX1和PX2两者都在其包含地址A处的数据的相关联高速缓冲存储器处保留高速缓冲存储线的复本。在PX1发出LDEX A之前,PX2的RG未被标记。在第一操作424中,PX1执行LDEX A,其使得发出读取偏好型排他总线命令,并且获得处于排他状态的线。由于所述线处于排他状态,所以PX2对线的复本失效,并且接着给PX1的RG标记上地址A。在第二操作425中,PX2执行LDEX A,其使得发出读取偏好型排他总线命令,并且获得处于共享状态的线。由于所述线处于共享状态,所以PX1对所述线的复本改变成共享状态,PX1的RG保持标记上地址A,并且PX2的RG标记上地址A。在第三操作426中,PX1发出STEX A,其使得发出额外总线命令以使PX2的线失效并且消除PX2的RG的标记。由于PX2的线失效并且PX1的RG被标记,所以STEX完成执行。当PX1正在试图采集信号量时,被发出以使PX2的具有地址A的线失效的命令会导致额外的等待时间。然而,不存在活锁。只有对两个处理代理正在试图同时获得相同信号量的相对不常见的情况,才需要额外的总线命令。
图4C说明使用升级偏好型排他总线命令的示范性第三信号量管理技术440。对此第一技术,在执行LDEX后,当LDEX本身无法要求线的排他时,PX1 402、PX2 403和相干总线经配置以机会性地获得线的排他。PX2保留包含地址A处的数据的高速缓冲存储线。并且,在发出PX1的LDEX A之前,PX2的RG未被标记。在第一操作444中,PX1执行LDEX A,LDEX A命中其L2高速缓冲存储器,使得发出升级偏好型排他总线命令,并且获得处于排他状态的线。由于所述线处于排他状态,所以PX2对线的复本失效,并且接着给PX1的RG标记上地址A。在第二操作445中,PX1发出STEX A,其完成执行,因为PX1使所述线保持在排他状态,并且PX1的RG被标记。PX2不要求进一步的动作。因为不要求PX1的STEX A在完成执行之前作出额外总线命令,所以信号量管理技术440对性能有帮助。
在框348、350、356和358的替代实施例中,不是由与PX2相关联的第2层高速缓冲存储器提供数据,而是可以由存储器层级中的下一层高速缓冲存储器或从主系统存储器提供数据。在此情况下,不管数据来自哪里,框348和350中指示的高速缓冲存储线失效都会发生。
虽然图1说明具有两个处理代理PX1 104和PX2 108的系统,但是本文所述的实施例也适用于具有三个或更多个处理代理的系统。在这个进一步的实施例中,每一额外L2高速缓冲存储器和控制器监听所述多个高速缓冲存储器控制器之间的相干总线,并且在检测到总线命令后,即刻独立地以关于图3A-3C和4A-4C描述的方式作出响应。举例来说,在具有三个处理代理PX1、PX2和PX3的系统中,PX1例如在图3A的框304处发出LDEX,并且例如在框306处也在PX1的高速缓冲存储器中未中,则L2高速缓冲存储器和控制器-1 106将在相干总线上发出读取偏好型排他命令。PX2和PX3子系统两者都将监听相干总线并且识别读取偏好型排他命令,并且如果所请求的线在PX2的高速缓冲存储器和PX3的高速缓冲存储器两者中,则PX2的和PX3的L2高速缓冲存储器和控制器都将检查相关联的保留粒度的状态,并且基于确定的RG的状态值和高速缓冲存储线状态,将前进到适当的框348、350、356或358。在此情况下,每一高速缓冲存储器控制器都有数据要提供到PX1子系统,通过相干总线上的协议提供适当装置以选择是用于PX2的控制器还是用于PX3的控制器提供数据到PX1子系统。
图5说明根据本发明的实施例的利用具有高效活锁避免的示范性信号量管理的便携式装置500的特定实施例。便携式装置500可以是无线电子装置且包含系统核心504,所述系统核心包含耦合到具有软件指令510的系统存储器508的处理器组合体506。便携式装置500包括电力供应器514、天线516、例如键盘等输入装置518、例如液晶显示器LCD等显示器520、具有视频能力的一个或两个相机522、扬声器524和麦克风526。系统核心504还包含无线接口528、显示控制器530、相机接口532以及编解码器534。处理器组合体506可以包含多处理器(MP)系统554,其包含两个核心处理单元,具有本机第1层指令和数据(L1I&D)高速缓冲存储器549的PX1 536和具有本机第1层指令和数据(L1I&D)高速缓冲存储器550的PX2538。MP系统554可以对应于图1的双核系统102。处理器组合体506还可包含调制解调器子系统540、闪存控制器544、闪存装置546、多媒体子系统548、第2层高速缓冲存储器0和控制器0551、第2层高速缓冲存储器1和控制器1 552和相干总线553。闪存装置546可以包含可装卸式闪存存储器或还可以是嵌入式存储器。
在说明性实例中,系统核心504根据在图1、3A-3C和4A-4C中说明的或与这些图相关联的任何实施例操作。举例来说,如图5中所示,MP系统554双核处理器经配置以存取存储于其相关联双核处理器的L1I&D高速缓冲存储器549和550、L2高速缓冲存储器551和552以及系统存储器508中的数据或程序指令以提供如中图3A-3C所说明的操作。
无线接口528可以耦合到处理器组合体506并且耦合到无线天线516,使得经由天线516和无线接口528接收到的无线数据可以提供到MSS 540并且与MP系统554共享。相机接口532耦合到处理器组合体506并且还耦合到一或多个相机,例如具有视频能力的相机522。显示控制器530耦合到处理器组合体506并且耦合到显示装置520。编码器/解码器(编解码器)534也耦合到处理器组合体506。扬声器524(所述扬声器可以包括一对立体声扬声器)和麦克风526耦合到编解码器534。外围装置和其相关联的接口是示范性的并且不在数量或在能力上受到限制。举例来说,输入装置518可以包括通用串行总线(USB)接口等等、QWERTY样式的键盘、字母数字键盘以及数字小键盘,所述各者可以个别地在特定装置中实施或以组合形式在不同装置中实施。
MP系统554双核处理器经配置以执行软件指令510,软件指令510存储于例如与系统存储器508相关联的非暂时性计算机可读媒体中,并且可执行以使例如双核处理器536和538等计算机执行程序以提供如图3A-3C和4A-4C中所说明的操作。PX1 536和PX2 538经配置以执行软件指令510,软件指令510是从高速缓冲存储器的不同级和系统存储器508存取的。
在特定实施例中,系统核心504物理上组织在系统级封装中或在芯片上系统装置上。在一个特定实施例中,如图5中所说明,组织为芯片上系统装置的系统核心504物理上耦合到电力供应器514、无线天线516、输入装置518、显示装置520、一或多个相机522、扬声器524、麦克风526,并且可以耦合到可装卸式闪存装置546。
根据本文所描述的实施例的便携式装置500可以并入在多种电子装置中,例如机顶盒、娱乐单元、导航装置、通信装置、个人数字助理(PDA)、固定位置数据单元、移动位置数据单元、移动电话、蜂窝电话、计算机、便携式计算机、平板计算机、监视器、计算机监视器、电视、调谐器、无线电、卫星无线电、音乐播放器、数字音乐播放器、便携式音乐播放器、视频播放器、数字视频播放器、数字视频光盘(DVD)播放器、便携式数字视频播放器、存储或检索数据或计算机指令的任何其它装置,或其任何组合。
结合本文中所揭示的实施例描述的各种说明性逻辑块、模块、电路、元件或组件可以用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑组件、离散门或晶体管逻辑、离散硬件组件或其经设计以执行本文中所描述的功能的任何组合来实施或执行。通用处理器可以为微处理器,但在替代方案中,处理器可以为任何常规的处理器、控制器、微控制器或状态机。处理器还可以实施为计算组件的组合,例如,DSP和微处理器的组合、多个微处理器、结合DSP核心的一或多个微处理器或适合于期望的应用的任何其它此类配置。
图5的双核处理器536和538可经配置以执行指令以在程序的控制下服务于实时任务。存储在计算机可读非暂时性存储媒体上的程序直接在本地与处理器组合体506相关联,例如可以通过指令和数据高速缓冲存储器549-552获得,或可通过特定输入装置518或无线接口528存取。输入装置518或无线接口528例如还可以存取驻留在存储器装置中的数据,所述数据直接在本地与处理器(例如处理器本地数据高速缓冲存储器)相关联,或者可从系统存储器508存取。结合本文中所揭示的各种实施例所描述的方法可以直接在硬件中、在具有通过处理器执行的一或多个程序的软件模块中或在两者的组合中实施。软件模块可以驻留在随机存取存储器(RAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(SDRAM)、闪存存储器、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、硬盘、可装卸磁盘、光盘(CD)-ROM、数字视频磁盘(DVD)或所属领域中已知的任何其它形式的非暂时性存储媒体。非暂时性存储媒体可以耦合到处理器,以使得处理器可以从所述存储媒体读取信息并且将信息写入到所述存储媒体。在替代方案中,存储媒体可与处理器成一体式。
虽然在用于处理器系统的说明性实施例的上下文中揭示本发明,但将认识到可由所属领域的一般技术人员利用符合上文论述和随附权利要求书的多种多样的实施方案。例如,固定功能实施方案也可以利用本发明的各种实施例。

Claims (20)

1.一种用于多处理器中的跨越相干总线的信号量管理的方法,所述方法包括:
响应于从第一处理器发出的加载排他指令确定在所述第一处理器本机的第一高速缓冲存储器是否在目标地址处未命中;以及
响应于确定在所述第一处理器本机的所述第一高速缓冲存储器在所述目标地址处未命中:
在从所述第一高速缓冲存储器到在第二处理器本机的第二高速缓冲存储器的相干总线上发布读取偏好型排他命令;
响应于所述读取偏好型排他命令确定所述第二高速缓冲存储器中的保留粒度是否未被标记,所述保留粒度包括具有有效指示的程序可存取的存储位置和用于存储地址的标记字段;以及
响应于确定所述第二高速缓冲存储器中的所述保留粒度未被标记,使对应于所述第二高速缓冲存储器中的所述保留粒度的高速缓冲存储线失效。
2.根据权利要求1所述的方法,其进一步包括:
响应于通过所述第二高速缓冲存储器从所述相干总线监听的所述读取偏好型排他命令将在所述目标地址处请求的数据提供到所述第一高速缓冲存储器。
3.根据权利要求1所述的方法,其进一步包括:
响应于通过监听所述相干总线检测到的所述读取偏好型排他命令,将在所述目标地址处请求的数据从存储器层级中在所述第一高速缓冲存储器上方的下一级的存储器提供到所述第一高速缓冲存储器。
4.根据权利要求1所述的方法,其中在所述读取偏好型排他命令已经完成执行之后,给所述第一高速缓冲存储器中的保留粒度标记上所述目标地址。
5.根据权利要求1所述的方法,其中所述读取偏好型排他命令充当对所述多处理器中的其它高速缓冲存储器的提示,提示其它高速缓冲存储器如果所述高速缓冲存储线标记为含有共享数据则放弃所述高速缓冲存储线。
6.根据权利要求1所述的方法,其进一步包括:
确定所述第二处理器中的所述高速缓冲存储线的状态;以及
响应于所述第二处理器中的所述高速缓冲存储线的所述状态处于共享或排他状态,将在所述第一处理器中接收到的所述高速缓冲存储线的所述状态改变成排他状态。
7.根据权利要求1所述的方法,其进一步包括:
确定所述第二处理器中的所述高速缓冲存储线的状态;以及
响应于所述第二处理器中的所述高速缓冲存储线的所述状态处于自有或修改状态,将在所述第一处理器中接收到的所述高速缓冲存储线的所述状态改变成修改状态。
8.一种用于多处理系统中的信号量管理的设备,所述设备包括:
第一高速缓冲存储器控制器,用于控制对第一高速缓冲存储器的存取,所述第一高速缓冲存储器控制器耦合到第一处理器并且进一步耦合到相干总线;以及
第二高速缓冲存储器控制器,用于控制对第二高速缓冲存储器的存取,所述第二高速缓冲存储器控制器耦合到第二处理器并且进一步耦合到所述相干总线;
其中所述第一高速缓冲存储器控制器经配置以响应于所述第一高速缓冲存储器具有所述第一处理器发出的加载排他指令提供的目标地址处的数据未命中,在从所述第一高速缓冲存储器到所述第二高速缓冲存储器的所述相干总线上发出读取偏好型排他命令;以及
其中所述第二高速缓冲存储器控制器经配置以监听所述相干总线,并且响应于监听到的读取偏好型排他命令以及所述第二高速缓冲存储器中的保留粒度针对所述目标地址经过标记,将对应于所述第二高速缓冲存储器中的所述保留粒度的高速缓冲存储线转变成共享状态,所述保留粒度包括具有有效指示的程序可存取的存储位置和用于存储地址的标记字段。
9.根据权利要求8所述的设备,其中响应于所述第二高速缓冲存储器从所述相干总线监听到的所述读取偏好型排他命令,将所述目标地址处的数据提供到所述第一高速缓冲存储器。
10.根据权利要求8所述的设备,其中响应于通过监听所述相干总线检测到的所述读取偏好型排他命令,将所述目标地址处的数据从存储器层级中在所述第一高速缓冲存储器上方的下一级的存储器提供到所述第一高速缓冲存储器。
11.根据权利要求8所述的设备,其进一步包括:
在所述读取偏好型排他命令已经完成执行之后,给所述第一高速缓冲存储器中的保留粒度标记上所述目标地址。
12.根据权利要求8所述的设备,其中所述读取偏好型排他命令充当对所述多处理系统中的其它高速缓冲存储器的提示,提示其它高速缓冲存储器如果所述高速缓冲存储线标记为含有共享数据则放弃所述高速缓冲存储线。
13.根据权利要求8所述的设备,其中所述第一处理器接收所述第二高速缓冲存储器控制器提供的所述数据,并且将所述第一高速缓冲存储器中的高速缓冲存储线转变成共享状态。
14.一种用于多处理器中的跨越相干总线的信号量管理的方法,所述方法包括:
响应于从第一处理器发出的加载排他指令,确定在所述第一处理器本机的第一高速缓冲存储器是否在目标地址处命中,其中存取的第一高速缓存线处于共享或自有状态;以及
响应于确定在所述第一处理器本机的所述第一高速缓冲存储器在所述目标地址处命中:
在从所述第一高速缓冲存储器到在第二处理器本机的第二高速缓冲存储器的相干总线上发布升级偏好型排他命令;
响应于所述升级偏好型排他命令确定所述第二高速缓冲存储器是否在所述目标地址处命中,其中存取的第二高速缓存线的保留粒度未被标记,所述保留粒度包括具有有效指示的程序可存取的存储位置和用于存储地址的标记字段;以及
响应于确定所述第二高速缓冲存储器在所述目标地址处命中,响应于所述第二高速缓存线处于所述共享状态,将所述第一处理器所请求的所述第一高速缓存线升级成排他状态。
15.根据权利要求14所述的方法,其进一步包括:
响应于所述第二高速缓存线起初处于所述共享状态,使所述第二高速缓冲存储器中的所述第二高速缓存线失效。
16.根据权利要求14所述的方法,其进一步包括:
响应于所述第二高速缓存线处于所述自有状态,将所述第一处理器所请求的所述第一高速缓存线升级成修改状态。
17.根据权利要求14所述的方法,其进一步包括:
响应于所述升级偏好型排他命令确定所述第二高速缓冲存储器命中所述目标地址,并且所述命中的第二高速缓存线的所述保留粒度被标记上与所述第一处理器所请求的所述第一高速缓存线相同的地址;以及
返回以监视进一步的相干总线命令,而并不修改所述第一高速缓冲存储器和所述第二高速缓冲存储器的状态。
18.根据权利要求14所述的方法,其中通过所述第二高速缓冲存储器的高速缓冲存储器控制器中的监听单元识别所述升级偏好型排他命令。
19.一种编码有计算机可读程序数据和代码的计算机可读非暂时性媒体,所述程序数据和代码在被执行时可操作以:
响应于从第一处理器发出的加载排他指令确定在所述第一处理器本机的第一高速缓冲存储器在目标地址处未命中;
在从所述第一高速缓冲存储器到在第二处理器本机的第二高速缓冲存储器的相干总线上发布读取偏好型排他命令;以及
响应于所述第二高速缓冲存储器中针对所述目标地址的保留粒度未被标记,使所述第二高速缓冲存储器中的高速缓冲存储线失效,所述保留粒度包括具有有效指示的程序可存取的存储位置和用于存储地址的标记字段。
20.一种用于多处理系统中的信号量管理的设备,所述设备包括:
用于响应于第一高速缓冲存储器具有加载排他指令提供的目标地址处的数据未命中,在从所述第一高速缓冲存储器到第二高速缓冲存储器的相干总线上发出读取偏好型排他命令的装置,其中所述第一高速缓冲存储器耦合到发布了所述加载排他指令的第一处理器并且所述第二高速缓冲存储器耦合到第二处理器;以及
用于监听所述相干总线,并且响应于监听到的读取偏好型排他命令以及所述第二高速缓冲存储器中的保留粒度针对所述目标地址经过标记,将对应于所述第二高速缓冲存储器中的所述保留粒度的高速缓冲存储线转变成共享状态的装置,其中所述保留粒度包括具有有效指示的程序可存取的存储位置和用于存储地址的标记字段。
CN201480020090.9A 2013-04-11 2014-04-09 用于改善跨越相干总线的信号量管理序列的性能的方法和设备 Expired - Fee Related CN105103139B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361810889P 2013-04-11 2013-04-11
US61/810,889 2013-04-11
US13/933,337 US9292442B2 (en) 2013-04-11 2013-07-02 Methods and apparatus for improving performance of semaphore management sequences across a coherent bus
US13/933,337 2013-07-02
PCT/US2014/033474 WO2014169025A1 (en) 2013-04-11 2014-04-09 Methods and apparatus for improving performance of semaphore management sequences across a coherent bus

Publications (2)

Publication Number Publication Date
CN105103139A CN105103139A (zh) 2015-11-25
CN105103139B true CN105103139B (zh) 2018-04-20

Family

ID=51687598

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480020090.9A Expired - Fee Related CN105103139B (zh) 2013-04-11 2014-04-09 用于改善跨越相干总线的信号量管理序列的性能的方法和设备

Country Status (6)

Country Link
US (1) US9292442B2 (zh)
EP (1) EP2984571A1 (zh)
JP (1) JP5996828B2 (zh)
KR (1) KR101651192B1 (zh)
CN (1) CN105103139B (zh)
WO (1) WO2014169025A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI507991B (zh) * 2013-02-27 2015-11-11 Rdc Semiconductor Co Ltd 多核心處理器及其相關控制方法與電腦系統
US11269773B2 (en) 2019-10-08 2022-03-08 Arm Limited Exclusivity in circuitry having a home node providing coherency control
US11467964B1 (en) 2020-03-09 2022-10-11 Marvell Asia Pte Ltd Mergeable counter system and method
US11379370B1 (en) * 2020-04-08 2022-07-05 Marvell Asia Pte Ltd System and methods for reducing global coherence unit snoop filter lookup via local memories

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5604865A (en) * 1991-07-08 1997-02-18 Seiko Epson Corporation Microprocessor architecture with a switch network for data transfer between cache, memory port, and IOU
US6892258B1 (en) * 2001-10-26 2005-05-10 Lsi Logic Corporation Hardware semaphores for a multi-processor system within a shared memory architecture
CN101198988A (zh) * 2005-05-27 2008-06-11 Ati技术公司 在多个视频处理单元(vpu)的系统中的帧同步

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6073211A (en) * 1994-12-13 2000-06-06 International Business Machines Corporation Method and system for memory updates within a multiprocessor data processing system
US6138218A (en) * 1998-02-17 2000-10-24 International Business Machines Corporation Forward progress on retried snoop hits by altering the coherency state of a local cache
US6269428B1 (en) * 1999-02-26 2001-07-31 International Business Machines Corporation Method and system for avoiding livelocks due to colliding invalidating transactions within a non-uniform memory access system
US6279085B1 (en) * 1999-02-26 2001-08-21 International Business Machines Corporation Method and system for avoiding livelocks due to colliding writebacks within a non-uniform memory access system
US6629209B1 (en) 1999-11-09 2003-09-30 International Business Machines Corporation Cache coherency protocol permitting sharing of a locked data granule
US6594736B1 (en) 2000-08-15 2003-07-15 Src Computers, Inc. System and method for semaphore and atomic operation management in a multiprocessor
US20030131201A1 (en) * 2000-12-29 2003-07-10 Manoj Khare Mechanism for efficiently supporting the full MESI (modified, exclusive, shared, invalid) protocol in a cache coherent multi-node shared memory system
US6745294B1 (en) 2001-06-08 2004-06-01 Hewlett-Packard Development Company, L.P. Multi-processor computer system with lock driven cache-flushing system
US6986013B2 (en) * 2002-12-05 2006-01-10 International Business Machines Corporation Imprecise cache line protection mechanism during a memory clone operation
US20050102457A1 (en) * 2003-11-12 2005-05-12 Dell Products L.P. System and method for interrupt processing in a multiple processor system
US7991966B2 (en) * 2004-12-29 2011-08-02 Intel Corporation Efficient usage of last level caches in a MCMP system using application level configuration
US8209492B2 (en) * 2005-06-14 2012-06-26 Hewlett-Packard Development Company, L.P. Systems and methods of accessing common registers in a multi-core processor
US7421529B2 (en) * 2005-10-20 2008-09-02 Qualcomm Incorporated Method and apparatus to clear semaphore reservation for exclusive access to shared memory
US7769958B2 (en) 2007-06-22 2010-08-03 Mips Technologies, Inc. Avoiding livelock using intervention messages in multiple core processors
US7984244B2 (en) 2007-12-28 2011-07-19 Intel Corporation Method and apparatus for supporting scalable coherence on many-core products through restricted exposure
US9547596B2 (en) 2009-12-24 2017-01-17 Arm Limited Handling of a wait for event operation within a data processing apparatus
GB2491350B (en) * 2011-05-27 2020-02-12 Advanced Risc Mach Ltd Store-exclusive instruction conflict resolution

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5604865A (en) * 1991-07-08 1997-02-18 Seiko Epson Corporation Microprocessor architecture with a switch network for data transfer between cache, memory port, and IOU
US6892258B1 (en) * 2001-10-26 2005-05-10 Lsi Logic Corporation Hardware semaphores for a multi-processor system within a shared memory architecture
CN101198988A (zh) * 2005-05-27 2008-06-11 Ati技术公司 在多个视频处理单元(vpu)的系统中的帧同步

Also Published As

Publication number Publication date
KR101651192B1 (ko) 2016-08-25
JP5996828B2 (ja) 2016-09-21
CN105103139A (zh) 2015-11-25
US20140310468A1 (en) 2014-10-16
JP2016514882A (ja) 2016-05-23
WO2014169025A1 (en) 2014-10-16
EP2984571A1 (en) 2016-02-17
US9292442B2 (en) 2016-03-22
KR20150143576A (ko) 2015-12-23

Similar Documents

Publication Publication Date Title
KR102519904B1 (ko) 영구 메모리 할당 및 구성
US8799409B2 (en) Server side data cache system
KR101442091B1 (ko) 가상화 시스템에서의 메모리 관리 방법
US8762651B2 (en) Maintaining cache coherence in a multi-node, symmetric multiprocessing computer
US8423736B2 (en) Maintaining cache coherence in a multi-node, symmetric multiprocessing computer
KR20170097609A (ko) 압축된 데이터 백그라운드를 캐싱하는 장치, 시스템 및 방법
CN105103139B (zh) 用于改善跨越相干总线的信号量管理序列的性能的方法和设备
CN105677580A (zh) 访问缓存的方法和装置
US20090271601A1 (en) Method, device, and system for pre-memory symmetric multiprocessing flow
CN102841854A (zh) 根据动态分级存储器缓存认知执行数据读取的方法和系统
KR20180057639A (ko) 선택적 리소스 이동을 이용하는 네트워크 결합 메모리
CN104424122B (zh) 一种电子设备及内存划分方法
EP3506116A1 (en) Shared memory controller in a data center
US20150301917A1 (en) Memory Monitoring Method and Related Apparatus
CN107592927A (zh) 管理扇区高速缓存
US20210397374A1 (en) Function processing using storage controllers for load sharing
US9715455B1 (en) Hint selection of a cache policy
KR20180109675A (ko) 저장된 교체 정보를 갖는 스누프 필터, 이에 대한 방법 및 희생자 전용 캐시와 스누프 필터 공유 교체 정책을 포함하는 시스템
US20240103876A1 (en) Direct swap caching with zero line optimizations
CN106462550B (zh) 用于共享嵌入式硬件资源的方法、设备和装置
US20080313409A1 (en) Separating device and separating method
CN106406745B (zh) 根据目录信息维护Cache数据一致性的方法及装置
US9436613B2 (en) Central processing unit, method for controlling central processing unit, and information processing apparatus
CN103885824B (zh) 接口控制电路、设备和标识切换方法
US10642494B2 (en) Method, electronic device and computer program product for data processing

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20180420

Termination date: 20200409

CF01 Termination of patent right due to non-payment of annual fee