CN101802798A - 在多核处理器中使用干预消息来避免活锁 - Google Patents

在多核处理器中使用干预消息来避免活锁 Download PDF

Info

Publication number
CN101802798A
CN101802798A CN200880103458A CN200880103458A CN101802798A CN 101802798 A CN101802798 A CN 101802798A CN 200880103458 A CN200880103458 A CN 200880103458A CN 200880103458 A CN200880103458 A CN 200880103458A CN 101802798 A CN101802798 A CN 101802798A
Authority
CN
China
Prior art keywords
data access
access request
request
unit
cache coherency
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
Application number
CN200880103458A
Other languages
English (en)
Other versions
CN101802798B (zh
Inventor
R·金特
E·南吉亚
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.)
Arm Overseas Finance Co ltd
Overpass Bridge Co ltd
Original Assignee
MIPS Tech LLC
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 MIPS Tech LLC filed Critical MIPS Tech LLC
Publication of CN101802798A publication Critical patent/CN101802798A/zh
Application granted granted Critical
Publication of CN101802798B publication Critical patent/CN101802798B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/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/0833Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc

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

在多核处理器中使用干预消息来避免活锁
发明背景
本发明涉及微处理器体系结构领域。微处理器设计者正不断地努力提高微处理器性能,设计提供例如增加的计算能力、增加的运算速度、降低的功耗、和/或降低的成本的微处理器体系结构。对于许多先前的微处理器体系结构,通过增加其运算频率来提高微处理器性能已经变得日益困难。结果,许多较新的体系结构聚焦于并行处理来提高性能。
在微处理器体系结构中采用的一种并行处理技术是多处理核。该技术利用并行运算的多个单独的处理器(称为核)来执行软件应用程序。两个或更多个处理核可以在同一集成电路管芯中实现、在集成在同一集成电路封装内的多个集成电路管芯中实现、或这些实现的组合。通常,多个处理核共享公共接口并可以共享存储器和其它外围资源。
通常,诸如共享存储器或外设等共享资源一次只可由一个处理器使用。为控制对共享资源的访问,处理器核可以利用同步原语,如信号量(semaphore)、标志、锁、原子交换、取值并增值(fetch and increment)、或其它信令机制。例如,存储器位置可用作信号量来确保对诸如临界段或区;存储器的共享部分;或外围资源等相关联的共享资源的独占访问。第一处理器核可以检查信号量的状态来确定另一处理器核当前是否拥有对该资源的独占访问。如果信号量值指示该资源可用,则第一处理器核可以尝试将其自己的指示符值写入该信号量存储器位置。这将向其它处理器核指示第一处理器核拥有对该资源的独占访问。如果另一处理器核在第一处理器核的写入完成之前修改该信号量位置的值,则第一处理器核的写入尝试将失败。
两个或更多个处理器核可能大约同时尝试访问与临界段或共享资源相关联的同步原语。在某些情况下,每一处理器核访问同步原语的请求将使得对同一存储器位置的其他待决访问请求失败。结果,没有处理器核能够获得对同步原语及其相关联的临界段或共享资源的访问。处理器核随后可重复它们的访问请求,从而造成进一步的访问失败。所导致的情况被称为同步活锁。在同步活锁中,处理器核卡在尝试和无法获得对与临界段或共享资源相关联的同步原语的访问的循环链中。除非采取纠正动作来结束该活锁,否则所涉及的所有处理器核将卡在永久循环中。
因此,防止具有多个处理器核的处理器中的活锁或从活锁中恢复的系统和方法是合乎需要的。对处理器性能和复杂性造成最小影响的系统和方法也是合乎需要的。与单线程和多线程处理器核一起工作的系统和方法也是合乎需要的。
发明概要
本发明的一实施例通过在向其它处理器核发送可导致其它数据访问请求失败的消息之前对于作出请求的处理器核验证数据访问请求仍然有效,来防止在多核处理器中由于数据访问请求而发生活锁。在一实施例中,高速缓存相干性管理器从多个处理器核接收数据访问请求并协调它们的执行。在接收到可能导致活锁的数据访问请求后,高速缓存相干性管理器首先向作出请求的处理器核发送回干预消息以确认没有其他处理器核干扰该数据访问请求,这种干扰将导致该数据访问请求失败。
在一实施例中,如果作出请求的处理器核确定数据访问请求仍然有效,则它对干预消息作出响应并指示高速缓存相干性管理器继续该数据访问请求。高速缓存相干性管理器随后可以向其它处理器核发送附加干预消息来完成该数据访问请求。如果作出请求的处理器核确定数据访问请求已经变得无效,则它对干预消息作出响应并指示高速缓存相干性管理器放弃该数据访问请求。作为响应,高速缓存相干性管理器将不向其它处理器核发送针对该数据访问请求的任何附加干预消息。这防止一个数据访问请求的失败级联并导致其它处理器核的其它数据访问请求失败。
在另一实施例中,如果高速缓存相干性管理器确定不太可能发生活锁情况,则高速缓存相干性管理器可以另选地响应于数据访问请求来同时向作出请求的处理器核和其他处理器核发送干预消息。在一实施例中,高速缓存相干性管理器确定可导致活锁的数据访问请求的数据访问请求失败率。如果数据访问请求失败率超过阈值(其可在程序中预定或指定),则高速缓存相干性管理器回复到在向其它处理器核发送干预消息以完成该数据访问请求之前首先向作出请求的处理器核发送干预消息以验证该数据访问请求的有效性。
在另一实施例中,作出请求的处理器核向高速缓存相干性管理器发送可能导致活锁的数据访问请求。高速缓存相干性管理器适用于响应于可导致活锁的所有数据访问请求来向所有处理器核发送干预消息。在接收到来自高速缓存相干性管理器的干预消息后,处理器核确定该干预消息是否与它自己的待决数据访问请求中的任一个相对应。
如果该干预消息与同该处理器核自己的待决数据访问请求中的一个相同的存储器位置和可任选的数据访问请求类型相关联,但不与它自己的数据访问请求中的一个相对应,则该处理器核将用取消它自己的冲突的数据访问请求的请求来对该干预消息作出响应。响应于该取消,高速缓存相干性管理器将取消来自该处理器核的待决数据访问请求。
在一实施例中,该取消请求可包括该待决数据访问请求的标识符。在另一实施例中,该取消请求可以省略该标识符。高速缓存相干性管理器随后将取消它接收到或处理的、来自该处理器核的这一类型的下一数据访问请求。
附图简述
本发明将参考附图来描述,附图中:
图1示出根据本发明的一实施例的示例处理器;
图2示出多处理器系统中的活锁的示例;
图3示出根据本发明的一实施例的防止活锁的方法。
图4示出根据本发明的另一实施例的防止活锁的第二方法。
图5示出根据本发明的一实施例的处理器的高速缓存相干性管理器单元。
图6示出适用于本发明的一实施例的示例计算机系统。
发明详细描述
图1示出根据本发明的一实施例的示例处理器100。示例处理器100的实施例包括两个或更多个处理器核单元105,如处理器核单元105A、105B和105C。处理器核单元105中的每一个包括至少一个处理器核。例如,处理器核单元105A、105B和105C分别包括处理器核110A、110B和110C。
处理器核110能够对数据执行一个或多个信息处理功能。处理器核110可以执行固定的功能序列或能够响应于程序指令来执行灵活的功能序列。处理器核110中的每一个可以根据RISC和/或CISC体系结构来配置,并可以使用SISD或SIMD指令来处理标量或矢量数据类型。处理器核110可包括通用和专用寄存器堆和被配置成执行逻辑功能、算术或其他数学功能、数据操纵功能、或能够使用数字逻辑电路来实现的任何其它类型的功能的执行部件。处理器核110中的每一个可具有相同的功能和能力,或可具有专用于不同目的的不同功能和能力。处理器核110可以是单线程或多线程(即能够并行执行多个程序指令序列)的。
处理器核单元105中的每一个包括一级或多级高速缓存存储器以临时存储其相关联的处理器核可能需要的数据。存储在高速缓存存储器中的数据可包括程序指令和/或程序数据。典型的高速缓存存储器被组织成高速缓存行。每一高速缓存行存储与一个或多个虚拟或物理存储器地址相对应的数据的副本。每一高速缓存行还存储用于管理该高速缓存行的附加数据,如用于标识与高速缓存行相关联的存储器地址的高速缓存行标签数据和用于将该高速缓存行中的数据与其它高速缓存和/或与计算机系统的存储器进行同步的高速缓存相干性数据。高速缓存标签可以从与该高速缓存行相关联的存储器地址的全部或部分中形成。
例如,处理器核单元105A、105B和105C分别包括L1高速缓存单元115A、115B和115C。L1高速缓存单元115经由数据总线117A、117B和117C与其相关联的处理器核110相连接。虽然为简明起见示为单个总线,但数据总线117中的每一个可包括L1高速缓存单元和其相关联的处理器核之间的一个或多个数据总线。L1高速缓存单元115的实施例还可包括便于在其各自的L1高速缓存单元之间进行数据传输的高速缓存控制逻辑单元120。高速缓存单元115可以全关联、具有双向或更多向的组关联、或直接映射。为简明起见,L1高速缓存单元115中的每一个被示为能够存储处理器核单元可能需要的任何类型的数据的单个高速缓存存储器;然而,本发明的各实施例可在每一处理器核单元中包括单独的L1高速缓存单元以用于分别存储不同类型的数据,如程序指令高速缓存、程序数据高速缓存、以及转换后备缓冲器数据高速缓存。
高速缓存单元115通常被划分成多个高速缓存行,每一个都与共享存储器中的相邻存储器位置的范围相对应。在一实施例中,每一高速缓存行包括用于确保存储器中和一个或多个高速缓存行中的多个数据副本保持同步和准确的高速缓存相干性数据。例如,MESI高速缓存相干性协议将高速缓存行标记为修改(“M”);独占(“E”),这意味着处理器核单元具有唯一高速缓存的数据副本并且可自由地对它进行修改;共享(“S”),这意味着两个或更多个处理器核单元高速缓存了该数据并且每一处理器核可以读取该数据但不能修改它;或无效(“I”),这意味着高速缓存行中的数据是无效的并且处理器核单元可以在该高速缓存行中存储其它数据。其它高速缓存相干性方案,诸如MSI、MOSI、以及MOESI相干性方案,也可与本发明的各实施例一起使用。
在一实施例中,处理器核单元105经由数据总线127与高速缓存相干性管理器单元125相连接。数据总线127可被实现为处理器核单元105中的每一个与高速缓存相干性管理器单元125之间的点对点数据连接,如数据总线127A、127B和127C。高速缓存相干性管理器单元125方便经由外部接口130在处理器核单元105、系统存储器以及I/O之间传输指令和/或数据,并可任选地方便与共享L2高速缓存存储器132传输指令和/或数据。
高速缓存相干性管理器单元125的实施例可以并行地且可能同时接收来自其它高速缓存存储器的系统存储器读和写请求、读请求和/或来自每一个处理器核单元的写回请求。高速缓存相干性管理器单元125的实施例能以任意次序处理并服务这些请求。例如,高速缓存相干性管理器单元125的实施例可以将请求重新排序以优化存储器访问,对请求进行负载平衡,向一个或多个处理器核单元给予超过其它处理器核单元的优先级,和/或向一个或多个类型的请求给予超过其它类型的请求的优先级。
在一实施例中,处理器100包括用于维护高速缓存相干性和用于协调处理器核单元105之间的数据访问的干预机制。在该实施例中,每一处理器核单元将其数据访问请求发送到高速缓存相干性管理器125。数据访问请求可包括对数据进行共享访问的请求、对数据进行独占访问的请求、向共享存储器和其它系统资源写入的请求、以及从处理器核单元105高速缓存存储器115中的一个到可任选的共享高速缓存存储器132或共享系统存储器的数据写回操作的请求。
高速缓存相干性管理器125区分来自一个或多个处理器核单元105的数据访问请求的优先次序。对于每一数据访问请求,高速缓存相干性管理器125可以向所有处理器核单元105发送干预消息。发送到作出该数据访问请求的处理器核单元的消息被称为自干预消息。干预或自干预消息标识与数据访问请求相关联的数据。
取决于所请求的数据访问的类型,处理器核单元105可以对干预消息作出响应。例如,如果数据访问请求是为了对数据进行共享访问,则在其高速缓存存储器115中包括所请求的数据的副本的另一处理器核单元105将通过向高速缓存相干性管理器125提供所请求的数据来对干预消息作出响应。在另一示例中,如果数据访问请求是为了对数据进行独占访问,则在其高速缓存存储器115中包括所请求的数据的副本的任何其它处理器核单元将通过使其自己的所请求的数据的副本无效来对干预消息作出响应。这在修改所请求的数据的情况下保持了数据相干性。在一实施例中,自干预消息向作出请求的处理器核单元指示高速缓存相干性管理器当前正在处理其数据访问请求。
在一实施例中,处理器100在集成电路封装内实现。处理器100的其它实施例可以在集成电路封装内的单个集成电路管芯内或者在单个集成电路封装内的多个集成电路管芯内实现。
图2示出多处理器系统中的活锁的示例。图2包括示出处理器核所发出的并行执行单独的程序线程的数据访问请求的次序的时间线200。在该应用中,假定处理器包括多个处理器核,每一个并行执行至少一个程序线程。在该示例中,处理器核单元使用两步过程来获得对用作同步原语的存储器位置的访问,这些同步原语诸如信号量、标志、锁、原子交换、取值并增值、或其它信令机制,其用于控制对诸如存储器的一部分或外围资源等临界段或共享资源的访问。在该示例中,处理器核单元首先发出加载链接(load linked)(LL)数据访问请求。该LL数据访问请求在同步原语的共享存储器位置处取得数据副本并将该数据存储在处理器核单元高速缓存存储器中。该数据作为共享数据来存储。在一实施例中,该LL数据访问还置位处理器核单元的寄存器中的标志值。只要没有其他处理器核单元向或试图向用作同步原语的存储器位置写入,则该标志值将保持置位。
LL数据访问之后,处理器核单元发起条件存储(store conditional)(SC)数据访问请求。该SC升级数据访问请求尝试将同步原语数据的高速缓存相干性状态从共享升级成独占,并将数据值写入与该同步原语存储器位置相对应的高速缓存行。如果成功,则该SC升级数据访问请求会将数据值存储在同步原语存储器位置中,从而向任何其它处理器核单元指示该同步存储器位置和诸如存储器的一部分或外围资源等任何相关联的共享系统资源正在被使用。然而,如果另一处理器核单元在LL数据访问的完成和SC升级数据访问之间也尝试向该同步存储器位置写入,则标志值将被复位且SC升级数据访问请求将失败。
时间线200示出在该两步访问方案下可能发生的示例活锁情况。在时刻202,第一处理器核(核A)发出对同步原语存储器位置的第一LL数据访问请求。其后不久,在时刻204,第二处理器核(核B)也发出对同一存储器位置的LL数据访问请求。在LL数据访问请求完成之后,在时刻206,第一处理器核(核A)发出SC升级数据访问请求(0)。在时刻208,第二处理器核(核B)也发出SC升级数据访问请求(1)。在时刻210,核A的SC升级数据访问请求(0)成功并且向同步原语存储器位置写入同步数据值。这最终将导致来自核B的SC升级数据访问请求(1)失败。
在时刻212,核A发出另一LL数据访问请求来重新获得对共享资源的访问。在时刻214,核A发出另一SC升级请求(2)。在时刻216,来自核B的SC升级请求(1)完成。它已经失败,但核A不知道这一点并且将由于来自核B的SC升级请求(1)而将其当前待决SC升级请求(2)标记为失败。当来自核B的SC升级请求(1)在时刻216失败后,核B将通过在时刻218发出LL请求并在时刻220发出SC升级请求(3)来作出访问同步原语的另一尝试。在时刻222,来自核A的失败的SC升级请求(2)完成并且失败,并且这导致来自核B的待决SC升级请求(3)失败。
响应于SC升级请求(2)的失败,核A将通过发出附加LL和SC升级请求来尝试重新访问同步原语。处理器核A和B可以尝试重复其对同步原语的LL数据访问请求和SC升级请求,这将出于同样原因而再次失败。对处理器核A和B而言,这一重复的SC升级数据访问请求失败的模式能以类似方式无限地继续。这种情况被称为活锁,因为每一处理器核都由于另一处理器核的动作而被阻止继续。活锁可在各种不同的条件下发生,并且本发明的各实施例容易地适用于发生在其它微处理器和指令集体系结构中的其它活锁示例。
图3示出根据本发明的一实施例的防止活锁的方法300。在步骤305,高速缓存相干性管理器从处理器核接收对所选存储器位置的LL数据访问请求或能够导致活锁的其它数据访问请求。响应于该数据访问请求,在步骤310,高速缓存相干性管理器将来自所选存储器位置的数据提供给作出请求的处理器核。
在步骤315,高速缓存相干性管理器接收来自同一处理器核的对该所选存储器位置的SC升级数据访问请求。作为响应,在步骤320,高速缓存相干性管理器将自干预消息发回到作出请求的处理器核。
此时,高速缓存相干性管理器不向其它处理器核发送与SC升级数据访问请求相关联的其他干预消息。相反,在步骤325,高速缓存相干性管理器等待接收对发送到作出请求的处理器核的自干预消息的干预消息响应。在步骤325接收到的干预消息响应包括与SC升级数据访问请求相关联的所选存储器位置的高速缓存相干性状态的指示符。在一实施例中,发出SC升级数据访问请求的程序线程的程序执行从SC升级请求被发送到相干性管理器的时刻起在处理器核上暂停,直到对应的自干预消息返回并被处理为止。
判定框330评估干预消息响应所提供的、所选存储器位置的高速缓存相干性状态的指示符。如果高速缓存相干性状态被示为共享,则在步骤335,高速缓存相干性管理器通过向其它处理器核发送相关联的干预消息来继续处理SC升级数据访问请求。相反,如果高速缓存相干性状态被示为无效,则某一其它处理器核已经尝试访问同一存储器位置。结果,在步骤340,高速缓存相干性管理器放弃待决SC升级数据访问请求并且不向其它处理器核发送任何相关联的干预消息。
在方法的另一实施例中,高速缓存相干性管理器向作出请求的处理器核通知其SC升级数据访问请求已经失败。在另一实施例中,作出请求的处理器核在接收到相关联的自干预消息并确定所选存储器位置具有无效的高速缓存相干性状态后,推断出其待决SC升级数据访问请求将失败。在任一情况下,此时,发出SC升级请求的程序线程可以继续执行。
在方法300中,发往其它处理器核的、与待决SC升级数据访问请求相关联的干预消息由高速缓存相干性管理器阻止,直到来自作出请求的处理器核的干预响应消息确认SC升级数据访问请求将成功为止。这防止干预消息在其它处理器核中触发SC升级失败的级联。
方法300的一实施例需要高速缓存相干性管理器维护可在接收到对自干预消息的响应后发送到其它处理器核的一组待决干预消息。该实施例可降低高速缓存相干性管理器中的数据处理流水线的性能或增加其复杂性。
为提高性能并降低数据处理流水线复杂性,高速缓存相干性管理器的另一实施例取决于活锁发生的可能性来选择性地激活或停用方法300。在该实施例中,可能的活锁情况的计数器或其它指示器由高速缓存相干性管理器来维护。在SC数据访问升级请求失败时,该计数器递增。在SC升级数据访问请求成功时,该计数器递减。
在该活锁计数器或指示器低于第一阈值时,高速缓存相干性管理器假定存在很低的活锁可能性。在这种情况下,高速缓存相干性管理器无条件地向所有处理器核发送与SC升级数据访问请求相关联的自干预消息和干预消息,而非阻止干预消息直到接收到来自作出请求的处理器核的干预消息响应为止。
然而,如果计数器达到或超过第一阈值,则高速缓存相干性管理器假定活锁情况很有可能或已经发生。在这种情况下,高速缓存相干性管理器如以上在方法300中描述的那样来处理LL和SC升级数据访问请求。这确保最终某些SC升级数据访问请求将成功,从而打破活锁。在一实施例中,随着SC升级数据访问请求开始成功,计数器或指示器递减。最终,计数器或指示器将落在第二阈值(其可以与第一阈值相同或不同)之下,并且高速缓存相干性管理器可以开始在不使用方法300的情况下处理SC升级数据访问请求。在一替换实施例中,如果过去一时间段而没有SC升级数据访问请求失败,则高速缓存相干性管理器在不使用方法300的情况下处理SC升级数据访问请求。
可能存在用于跟踪所有处理器核单元的SC升级请求失败的单个计数器,或者在其它实施例中,可能存在用于跟踪处理器核单元的子集、单独的处理器核单元、和/或处理器核线程的SC升级请求失败的多个计数器。对多个计数器的使用可用来在多个并发活锁之间进行区分并将资源缺乏情况与同步活锁区分开来。
图4示出根据本发明的另一实施例的防止活锁的第二方法400。与主要由高速缓存相干性管理器执行的方法300不同,方法400由处理器核执行。在步骤405,处理器核或处理器核单元发出对所选存储器位置的加载链接(LL)数据访问请求。在步骤410,高速缓存相干性管理器处理该数据访问请求且作出请求的处理器核接收来自所选存储器位置的数据。将接收到的数据与共享高速缓存相干性状态一起存储在接收处理器核单元中的高速缓存存储器中。
在从所选存储器位置接收到所请求的数据后,在步骤415,处理器核向高速缓存相干性管理器发出SC升级数据访问请求。该SC升级数据访问请求尝试将所选存储器位置中的数据的高速缓存相干性状态从共享升级到独占,以允许作出请求的处理器核修改该存储器位置中的数据并且向其他处理器核指示该共享存储器和任何相关联的资源正在被使用。
在发出该SC升级数据访问请求的同时,处理器核或处理器核单元在该SC升级数据访问请求中包括一标识符。在步骤420,处理器核或处理器核单元还存储该标识符的副本。响应于来自这一或任何其他处理器核的SC升级数据访问请求,高速缓存相干性管理器区分数据访问请求的优先级并向所有处理器核单元发出对应的干预和自干预消息。在另一实施例中,并非仅响应于SC升级数据访问请求,高速缓存相干性管理器可响应于请求对存储器位置的独占访问的任何类型的数据访问请求来向所有处理器核单元发出对应的干预和自干预消息。
在一实施例中,发出SC升级数据访问请求的程序线程的程序执行从SC升级请求被发送到相干性管理器的时刻起在处理器核上暂停,直到对应的自干预消息返回并被处理为止。
在步骤425,处理器核单元从高速缓存相干性管理器接收与待决SC升级请求相对应且针对所选存储器位置的干预消息。该SC升级请求可与该处理器核自己的待决SC升级请求相对应或与另一处理器核对所选存储器位置的待决SC升级请求相对应。该干预消息包括其对应的SC升级请求中所提供的标识符的副本。
判定框430将接收到的干预消息中的标识符与其存储的其自己的待决SC升级请求的标识符中的一个或多个进行比较。如果接收到的干预消息标识符不与所存储的标识符相匹配,则该干预消息与来自不同处理器核的SC升级请求相对应。
结果,在步骤435,处理器核向高速缓存相干性管理器发送干预响应消息。该干预响应消息包括指示高速缓存相干性管理器取消其自己的待决SC升级数据访问请求的指令或指示符。在高速缓存相干性管理器接收到具有取消指示符的干预响应消息时,它将取消来自该处理器核的待决SC升级数据访问请求。这将防止来自该处理器核的SC升级数据访问请求导致来自其他处理器核的其他数据存储请求失败。
另外,在步骤435,处理器核将置位其自己的内部寄存器和标志以指示其先前发出的SC升级数据访问请求已经失败。该处理器核所执行的程序代码可例如通过作出获取对该存储器位置的访问的另一尝试或通过执行出错处理例程来继续执行并相应地响应。
在步骤435之后,处理器核可任选地继续回到步骤405来发起获取对所选存储器位置的独占访问的另一尝试。在某些实施例中,获取对所选存储器位置的独占访问的任何重复尝试都由该处理器核单元所执行的程序代码发起。在这些实施例中,该程序代码包括指定该程序对SC升级数据访问请求的失败的响应的一个或多个指令。
在一实施例中,如果处理器核只允许单个未完成的SC升级请求(如单线程处理器核的情况),则干预响应消息不必具体地标识要取消的SC升级请求。相反,高速缓存相干性管理器将取消它所处理的来自该处理器核的下一SC升级请求。
在另一实施例中,如果处理器核允许多个未完成的SC升级请求(如多线程处理器核的情况),则干预响应消息包括与要由高速缓存相干性管理器取消的待决SC升级请求相关联的标识符。这确保高速缓存相干性管理器不会无意地取消来自该处理器核的不同执行线程的SC升级请求。
因此,如果判定框430确定接收到的干预消息中的标识符与其存储的待决SC升级数据访问请求的标识符中的一个相匹配,则该干预消息是与来自该处理器核单元的待决SC升级数据访问请求相对应的自干预消息。结果,处理器核单元继续到步骤440。步骤440向高速缓存相干性管理器发送干预响应消息。该干预响应消息确认该SC升级数据访问请求。作为响应,高速缓存相干性管理器完成其对该SC升级数据访问请求的处理。同样,在步骤445,处理器核单元将所选存储器位置的高速缓存相干性状态从共享设置成独占,这在该存储器位置上建立了该处理器核单元的锁。
方法400通过取消因为先前发出的SC升级数据访问请求而将导致其他数据访问请求失败的待决SC升级数据访问请求来防止活锁。
图5示出根据本发明的一实施例的处理器的高速缓存相干性管理器单元500。高速缓存相干性管理器单元500包括请求单元505、干预单元510、响应单元515、以及存储器接口单元520。请求单元包括用于从N个处理器核单元接收读请求、写请求、写回请求、以及其他高速缓存存储器相关请求的输入525,其中N是任何正整数。请求单元510经由连接535向存储器接口单元520发送非相干读和写请求(它们是不需要与其他处理器核单元高速缓存存储器中的数据一致的读和写请求)以及投机性相干读。这些请求还包括修改高速缓存数据的显式和隐式写回请求。对于需要数据在高速缓存处理器核高速缓存存储器和系统存储器中相一致的相干存储器访问而言,请求单元505指示干预单元510经由连接530发送相干干预消息,如自干预消息。
干预单元510经由输出540向该N个处理器核单元发出干预消息,如自干预消息。干预消息还包括经由请求单元505从其他处理器核单元接收到的转发的数据请求。干预单元510经由输入545接收对干预消息的响应,该响应可包括其他处理器核单元所请求的数据。如果处理器核单元请求存储在另一处理器核单元的高速缓存中的数据,则经由输入545将该数据返回到干预单元510。干预单元510随后经由连接555将该数据转发到响应单元515,在那里该数据将被传递回作出请求的处理器核单元。
如果处理器核单元请求未存储在另一处理器核单元的高速缓存中的数据以供读或写,则干预单元510可以通过经由连接550向存储器接口单元520发送相干读或写请求来请求访问该数据。
在一个实施例中,干预单元510包括用于响应于SC升级数据访问请求来发出自干预消息并且响应于接收到指示该SC升级请求仍然有效的干预消息响应来向其他处理器核单元发出一个或多个指令干预请求(如方法300所述)的逻辑。
在另一实施例中,高速缓存相干性管理器单元500包括用于确定活锁情况的可能性的逻辑580,如响应于SC升级请求失败而递增并响应于成功的SC升级请求而递减的计数器。在该实施例中,高速缓存相干性管理器单元500还包括用于根据方法300在高速缓存相干性管理器单元500确定活锁是很有可能的时候,如在计数器的值超过阈值时,延迟、抑制、或取消干预单元510对干预消息的发出的逻辑。
在又一实施例中,高速缓存相干性管理器单元500可包括用于响应于从处理器核单元接收到的干预消息响应来取消接收到的SC升级数据访问请求的逻辑。在一个实现中,高速缓存相干性管理器单元500响应于从处理器核单元接收到的取消指令或指示符来置位与该处理器核单元相关联的标志或寄存器值575。根据方法400,该标志或寄存器值指示高速缓存相干性管理器单元500取消或丢弃高速缓存相干性管理器单元500接收到或处理的、来自该处理器核单元的下一SC升级请求。
在又一实施例中,高速缓存相干性管理器单元500将从处理器核单元接收到的取消指令或指示符中所包括的标识符存储在寄存器575中。根据方法400,该标识符指示高速缓存相干性管理器单元500在其接收到或处理来自与该标识符相匹配的处理器核单元的SC升级请求时取消或丢弃该请求。
在某些情况下,处理器核单元几乎可以在高速缓存相干性管理器单元500接收和/或处理其自己的SC升级请求的同时接收和/或处理与另一处理器核的对同一存储器位置的SC升级请求相关联的干预消息。在这种情况下,该处理器核单元的、具有取消消息的干预响应消息将不会及时回到高速缓存相干性管理器单元500来取消SC升级请求。为防止这一情况,高速缓存相干性管理器单元500的又一实施例包括被限于一次只处理针对一个SC升级请求的干预消息和干预消息响应的干预单元510。如果在干预单元510仍在处理干预消息或等待对先前SC升级请求的干预消息响应的同时接收到另一SC升级请求,则高速缓存相干性管理器500将该另一SC升级请求排队或延迟,直到干预单元510完成其对先前SC升级请求的处理为止。然而,在干预单元510处理干预消息或等待对SC升级请求的干预消息响应的同时,它仍然可以处理与诸如来自其他处理器核的非独占数据访问请求等其它类型的数据访问请求相关联的干预消息和干预消息响应。
存储器接口单元从请求单元505和干预单元510接收非相干读和写请求、相干读和写请求、以及写回请求。存储器接口单元520经由输入和输出570访问系统存储器和/或诸如L2高速缓存存储器等更高级的高速缓存存储器来完成这些请求。经由连接565将响应于这些存储器访问请求来从系统存储器和/或更高级的高速缓存存储器中取得的数据转发到响应单元515。响应单元515经由输出560向适当的处理器核单元返回所请求的数据,无论该数据是从另一处理器核单元、从系统存储器、还是从可任选的更高级的高速缓存存储器中取得的。
图6示出适用于本发明的一实施例的示例计算机系统1000。计算机系统1000通常包括一个或多个输出设备1100,其包括诸如CRT、LCD、OLED、LED、气体等离子体、电子墨水、或其它类型的显示器等显示设备,扬声器和其它音频输出设备;以及诸如振动传动器等触觉输出设备;计算机1200;键盘1300;输入设备1400;以及网络接口1500。输入设备1400可包括计算机鼠标、跟踪球、操纵杆、跟踪垫、图形输入板、触摸屏、话筒、各种传感器、和/或允许用户或环境与计算机系统1000交互的其他有线或无线输入设备。网络接口1500的实施例通常提供与诸如局域网、广域网(例如,因特网)、或虚拟网络(例如,虚拟专用网(VPN))等电子通信网络的有线或无线通信。网络接口1500可以实现一个或多个有线或无线连网拓扑结构,包括以太网、802.11标准中的一个或多个、蓝牙、以及超宽带连网技术。
计算机1200通常包括各个组件,诸如一个或多个通用处理器1600以及诸如随机存取存储器(RAM)1700和非易失性存储器1800等存储器存储设备。非易失性存储器1800可包括软盘;固定或可移动硬盘;诸如DVD-ROM、CD-ROM、以及条形码等光存储介质;诸如闪存等非易失性半导体存储器设备;只读存储器(ROM);电池备用易失性存储器;纸质或其它印刷介质;以及联网存储设备。系统总线1900互连以上各个组件。处理器1600可包括上述处理器的各实施例,如处理器100、150和400。
RAM 1700和非易失性存储器1800是用于存储数据、音频/视频文件、计算机程序、小应用程序解释器或编译器、虚拟机、以及此处描述的发明的各实施例的有形介质的示例。例如,以上描述的处理器的实施例可以被表示为人类可读或计算机可使用的程序和数据文件,这些程序和数据文件使得能够设计、描述、建模、模拟、测试、集成、和/或制造包括本发明的各实施例的集成电路和/或计算机系统。这些程序和数据文件可用于将本发明的各实施例实现为单独的集成电路,或用于将本发明的各实施例与其它组件集成以形成组合集成电路,如微处理器、微控制器、单片系统(SoC)、数字信号处理器、嵌入式处理器、或专用集成电路(ASIC)。
表达本发明的各实施例的程序和数据文件可以使用通用程序设计或脚本语言,如C或C++;硬件描述语言,如VHDL或Verilog;在RAM、ROM、或硬连线中实现并适于控制和协调处理器或其它集成电路内的各组件的操作的微码;和/或适用于本领域已知的电子设计自动化软件应用程序的标准或专用格式数据文件。程序和数据文件能在各种抽象层面表达本发明的各实施例,包括作为功能描述、作为逻辑门和其它电路组件的合成连线表、以及作为适用于半导体制造过程的集成电路布局或掩模集合。这些程序和数据文件可由计算机所执行的电子设计自动化软件来处理,以设计处理器并生成用于制造处理器的掩模。
计算机1200的另一些实施例可包括用于配置、操作、模拟、测试在设计、测试、制造集成电路时使用的专用硬件和软件以及与它们进行通信的专用输入、输出、和通信子系统。
本领域普通技术人员可从本说明书和附图中预想到另一些实施例。例如,方法300和400的实施例不限于LL和SC升级请求指令,并容易地适用于其中由于一个或多个处理器核所执行的程序线程之间的交互而可能发生活锁的其它类型的指令、指令集、以及多线程微处理器体系结构。在其它实施例中,可以有利地做出以上公开的发明的组合或子组合。体系结构的框图和各流程图是为易于理解而分组的。然而,应当理解,在本发明的替换实施例中构想了组合各个框、添加新的框、重新安排各个框等。
可以理解,此处描述的装置和方法可以包括在半导体知识产权核中,如微处理器核(例如,表达为硬件描述语言或合成连线表),并且在生产集成电路时被转换成硬件。另外,本发明的各实施例可以使用硬件和软件的组合(包括适用于在处理器内执行的微码)来实现。因此,说明书和附图应当以说明性而非限制性的意义来对待。然而,很明显,可作出各种修改和改变而不背离如权利要求所述的本发明的更宽泛的精神和范围。

Claims (23)

1.一种由微处理器处理来自多个处理器核的数据访问请求的方法,所述方法包括:
向高速缓存相干性管理器单元发送第一类型的并与第一存储器位置相关联的第一数据访问请求;
从所述高速缓存相干性管理器单元接收与数据访问请求和所述第一存储器位置相关联的干预消息;
确定所述干预消息是否与所述第一数据访问请求相对应;以及
响应于确定所述干预消息不与所述第一数据访问请求相对应来向所述高速缓存相干性管理器发送包括取消指示符的干预消息响应,其中所述取消指示符适用于指示所述高速缓存相干性管理器单元取消所述第一数据访问请求。
2.如权利要求1所述的方法,其特征在于,所述取消指示符适用于指示所述高速缓存相干性管理器单元基于所述第一类型的数据访问请求与处理器核单元的关联来取消该数据访问请求。
3.如权利要求1所述的方法,其特征在于,所述取消指示符包括请求标识符,其中所述取消指示符适用于指示所述高速缓存相干性管理器单元取消与所述取消指示符的请求标识符相匹配的数据访问请求。
4.如权利要求3所述的方法,其特征在于,所述第一数据访问请求包括所述请求标识符。
5.如权利要求1所述的方法,其特征在于,发送所述第一数据访问请求包括:
响应于第一处理器核单元所执行的程序来发送所述第一数据访问请求;以及
挂起所述程序的执行。
6.如权利要求5所述的方法,其特征在于,还包括:
响应于确定所述干预消息不与所述第一数据访问请求相对应,指定所述第一数据访问请求已经失败并继续执行所述程序。
7.如权利要求1所述的方法,其特征在于,还包括:
响应于确定所述干预消息与所述第一数据访问请求相对应来向所述高速缓存相干性管理器发送包括对所述第一数据访问请求取消指示符的确认的干预消息响应,其中所述干预消息响应适用于指示所述高速缓存相干性管理器单元继续所述第一数据访问请求。
8.如权利要求7所述的方法,其特征在于,还包括:
将与所述第一数据访问请求相关联的存储器位置设置成由第一处理器核单元独占访问。
9.如权利要求8所述的方法,其特征在于,所述第一数据访问请求包括与SC指令相关联的升级请求。
10.一种包括指令的计算机可读存储介质,所述指令定义处理器的逻辑电路并适于由计算机所执行的电子设计自动化应用程序来使用,其中所述逻辑电路适用于执行以下操作:
向高速缓存相干性管理器单元发送第一类型的并与第一存储器位置相关联的第一数据访问请求;
从所述高速缓存相干性管理器单元接收与数据访问请求和所述第一存储器位置相关联的干预消息;
确定所述干预消息是否与所述第一数据访问请求相对应;以及
响应于确定所述干预消息不与所述第一数据访问请求相对应来向所述高速缓存相干性管理器发送包括取消指示符的干预消息响应,其中所述取消指示符适用于指示所述高速缓存相干性管理器单元取消所述第一数据访问请求。
11.如权利要求10所述的计算机可读存储介质,其特征在于,所述取消指示符适用于指示所述高速缓存相干性管理器单元基于所述第一类型的数据访问请求与处理器核单元的关联来取消该数据访问请求。
12.如权利要求10所述的计算机可读存储介质,其特征在于,所述取消指示符包括请求标识符,其中所述取消指示符适用于指示所述高速缓存相干性管理器单元取消与所述取消指示符的请求标识符相匹配的数据访问请求。
13.如权利要求12所述的计算机可读存储介质,其特征在于,所述第一数据访问请求包括所述请求标识符。
14.如权利要求10所述的计算机可读存储介质,其特征在于,发送所述第一数据访问请求包括:
响应于第一处理器核单元所执行的程序来发送所述第一数据访问请求;以及
挂起所述程序的执行。
15.如权利要求14所述的计算机可读存储介质,其特征在于,还包括:
响应于确定所述干预消息不与所述第一数据访问请求相对应,指定所述第一数据访问请求已经失败并继续执行所述程序。
16.如权利要求10所述的计算机可读存储介质,其特征在于,还包括:
响应于确定所述干预消息与所述第一数据访问请求相对应来向所述高速缓存相干性管理器发送包括对所述第一数据访问请求取消指示符的确认的干预消息响应,其中所述干预消息响应适用于指示所述高速缓存相干性管理器单元继续所述第一数据访问请求。
17.如权利要求16所述的计算机可读存储介质,其特征在于,还包括:
将与所述第一数据访问请求相关联的存储器位置设置成由第一处理器核单元独占访问。
18.如权利要求16所述的计算机可读存储介质,其特征在于,所述第一数据访问请求包括与SC指令相关联的升级请求。
19.一种处理器,包括:
至少两个处理器核单元,其中所述处理器核单元中的至少一部分各自包括:
适用于执行程序指令的处理器核;
包括适用于存储高速缓存数据的高速缓存行的高速缓存存储器;以及
高速缓存存储器控制逻辑;以及
适用于协调所述处理器核单元和存储器之间的通信的高速缓存相干性管理器单元,其中所述高速缓存相干性管理器单元包括适用于执行以下操作的逻辑:
向所述高速缓存相干性管理器单元发送第一类型的并与第一存储器位置相关联的第一数据访问请求;
从所述高速缓存相干性管理器单元接收与所述第一类型的数据访问请求和所述第一存储器位置相关联的干预消息;
确定所述干预消息是否与所述第一数据访问请求相对应;以及
响应于确定所述干预消息不与所述第一数据访问请求相对应来向所述高速缓存相干性管理器发送包括取消指示符的干预消息响应,其中所述取消指示符适用于指示所述高速缓存相干性管理器单元取消所述第一数据访问请求。
20.如权利要求19所述的处理器,其特征在于,所述取消指示符适用于指示所述高速缓存相干性管理器单元基于所述第一类型的数据访问请求与处理器核单元的关联来取消该数据访问请求。
21.如权利要求19所述的处理器,其特征在于,所述取消指示符包括请求标识符,其中所述取消指示符适用于指示所述高速缓存相干性管理器单元取消与所述取消指示符的请求标识符相匹配的数据访问请求。
22.如权利要求19所述的处理器,其特征在于,所述适用于发送所述第一数据访问请求的逻辑包括适用于执行以下操作的逻辑:
响应于所述第一处理器核单元所执行的程序来发送所述第一数据访问请求;以及
挂起所述程序的执行。
23.如权利要求22所述的处理器,其特征在于,还包括适用于响应于确定所述干预消息不与所述第一数据访问请求相对应来指定所述第一数据访问请求已经失败并且继续执行所述程序的逻辑。
CN2008801034582A 2007-06-22 2008-06-20 在多核处理器中使用干预消息来避免活锁 Expired - Fee Related CN101802798B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/767,261 US7769958B2 (en) 2007-06-22 2007-06-22 Avoiding livelock using intervention messages in multiple core processors
US11/767,261 2007-06-22
PCT/US2008/067719 WO2009002862A1 (en) 2007-06-22 2008-06-20 Avoiding livelock using intervention messages in multiple core processors

Publications (2)

Publication Number Publication Date
CN101802798A true CN101802798A (zh) 2010-08-11
CN101802798B CN101802798B (zh) 2012-05-30

Family

ID=40137715

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008801034582A Expired - Fee Related CN101802798B (zh) 2007-06-22 2008-06-20 在多核处理器中使用干预消息来避免活锁

Country Status (3)

Country Link
US (1) US7769958B2 (zh)
CN (1) CN101802798B (zh)
WO (1) WO2009002862A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104063331A (zh) * 2014-07-03 2014-09-24 龙芯中科技术有限公司 处理器、共享存储区域访问方法和锁管理器
CN109213441A (zh) * 2017-06-30 2019-01-15 三星电子株式会社 能够管理工作而无需处理器干预的存储装置

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090089510A1 (en) * 2007-09-28 2009-04-02 Mips Technologies, Inc. Speculative read in a cache coherent microprocessor
US10102124B2 (en) 2011-12-28 2018-10-16 Intel Corporation High bandwidth full-block write commands
US9575816B2 (en) * 2012-03-29 2017-02-21 Via Technologies, Inc. Deadlock/livelock resolution using service processor
US9286137B2 (en) * 2012-09-14 2016-03-15 Intel Corporation Achieving deterministic execution of time critical code sections in multi-core systems
US9292442B2 (en) 2013-04-11 2016-03-22 Qualcomm Incorporated Methods and apparatus for improving performance of semaphore management sequences across a coherent bus
US9304926B2 (en) 2013-07-23 2016-04-05 Arm Limited Coherency control message flow
US10102002B2 (en) 2014-09-30 2018-10-16 International Business Machines Corporation Dynamic issue masks for processor hang prevention
US9898416B2 (en) 2015-12-22 2018-02-20 International Business Machines Corporation Translation entry invalidation in a multithreaded data processing system
US9715459B2 (en) 2015-12-22 2017-07-25 International Business Machines Corporation Translation entry invalidation in a multithreaded data processing system
US9830198B2 (en) * 2015-12-22 2017-11-28 International Business Machines Corporation Translation entry invalidation in a multithreaded data processing system
US10169106B2 (en) * 2016-06-30 2019-01-01 International Business Machines Corporation Method for managing control-loss processing during critical processing sections while maintaining transaction scope integrity
US10902020B2 (en) * 2018-06-08 2021-01-26 International Business Machines Corporation Multiple cache processing of streaming data
US10761987B2 (en) * 2018-11-28 2020-09-01 Arm Limited Apparatus and method for processing an ownership upgrade request for cached data that is issued in relation to a conditional store operation
US10977183B2 (en) 2018-12-11 2021-04-13 International Business Machines Corporation Processing a sequence of translation entry invalidation requests with regard to draining a processor core
US10740239B2 (en) 2018-12-11 2020-08-11 International Business Machines Corporation Translation entry invalidation in a multithreaded data processing system
US10817434B2 (en) 2018-12-19 2020-10-27 International Business Machines Corporation Interruptible translation entry invalidation in a multithreaded data processing system
US11269773B2 (en) 2019-10-08 2022-03-08 Arm Limited Exclusivity in circuitry having a home node providing coherency control

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5572704A (en) 1993-12-15 1996-11-05 Silicon Graphics, Inc. System and method for controlling split-level caches in a multi-processor system including data loss and deadlock prevention schemes
US5740402A (en) 1993-12-15 1998-04-14 Silicon Graphics, Inc. Conflict resolution in interleaved memory systems with multiple parallel accesses
DE69632634T2 (de) * 1996-12-13 2005-06-09 Bull S.A. Arbitrierungseinheit zum Multiprozessorsystembuszugriff mit Wiederholungsfähigkeit
US6643803B1 (en) 1999-02-19 2003-11-04 Texas Instruments Incorporated Emulation suspend mode with instruction jamming
US6732208B1 (en) 1999-02-25 2004-05-04 Mips Technologies, Inc. Low latency system bus interface for multi-master processing environments
US6681283B1 (en) 1999-08-12 2004-01-20 Mips Technologies, Inc. Coherent data apparatus for an on-chip split transaction system bus
US6651124B1 (en) * 2000-04-28 2003-11-18 Hewlett-Packard Development Company, L.P. Method and apparatus for preventing deadlock in a distributed shared memory system
US6647453B1 (en) * 2000-08-31 2003-11-11 Hewlett-Packard Development Company, L.P. System and method for providing forward progress and avoiding starvation and livelock in a multiprocessor computer system
US7234029B2 (en) * 2000-12-28 2007-06-19 Intel Corporation Method and apparatus for reducing memory latency in a cache coherent multi-node architecture
US7096289B2 (en) * 2003-01-16 2006-08-22 International Business Machines Corporation Sender to receiver request retry method and apparatus
US7529894B2 (en) * 2005-08-17 2009-05-05 Sun Microsystems, Inc. Use of FBDIMM channel as memory channel and coherence channel
US8566827B2 (en) * 2005-10-27 2013-10-22 International Business Machines Corporation System and method of arbitrating access of threads to shared resources within a data processing system
GB2442984B (en) * 2006-10-17 2011-04-06 Advanced Risc Mach Ltd Handling of write access requests to shared memory in a data processing apparatus

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104063331A (zh) * 2014-07-03 2014-09-24 龙芯中科技术有限公司 处理器、共享存储区域访问方法和锁管理器
CN104063331B (zh) * 2014-07-03 2017-04-12 龙芯中科技术有限公司 处理器、共享存储区域访问方法和锁管理器
CN109213441A (zh) * 2017-06-30 2019-01-15 三星电子株式会社 能够管理工作而无需处理器干预的存储装置
CN109213441B (zh) * 2017-06-30 2024-01-23 三星电子株式会社 能够管理工作而无需处理器干预的存储装置

Also Published As

Publication number Publication date
US20080320231A1 (en) 2008-12-25
US7769958B2 (en) 2010-08-03
CN101802798B (zh) 2012-05-30
WO2009002862A1 (en) 2008-12-31

Similar Documents

Publication Publication Date Title
CN101802798B (zh) 在多核处理器中使用干预消息来避免活锁
US7739455B2 (en) Avoiding livelock using a cache manager in multiple core processors
CN101802796B (zh) 防止多核处理器中的写回竞争
JP6802287B2 (ja) キャッシュ・メモリ・アクセス
CN104375958B (zh) 高速缓存存储器管理事务性存储器访问请求
US7627722B2 (en) Method for denying probes during proactive synchronization within a computer system
JP3661614B2 (ja) キャッシュメモリ制御方法及びマルチプロセッサシステム
US9792147B2 (en) Transactional storage accesses supporting differing priority levels
US20040243738A1 (en) Method for asynchronous DMA command completion notification
US9280349B2 (en) Decode time instruction optimization for load reserve and store conditional sequences
JP6005392B2 (ja) ルーティングのための方法及び装置
US10216519B2 (en) Multicopy atomic store operation in a data processing system
CN104866443A (zh) 可中断存储独占
KR20140003515A (ko) 데이터 없이 추론적 소유권에 대한 지원
WO2014083442A1 (en) Coherent proxy for attached processor
US5692153A (en) Method and system for verifying execution order within a multiprocessor data processing system
US20160026571A1 (en) Information processing device, memory order guarantee method, and recording medium storing program
US8380935B2 (en) Atomic memory operation cache protocol with opportunistic combining
Nolte et al. HW-FUTEX: Hardware-Assisted Futex Syscall
CN114430819B (zh) 数据处理系统及其处理单元和处理方法
US11656796B2 (en) Adaptive memory consistency in disaggregated datacenters
US11615024B2 (en) Speculative delivery of data from a lower level of a memory hierarchy in a data processing system
Kaushik Timing Predictable and High-Performance Hardware Cache Coherence Mechanisms for Real-Time Multi-Core Platforms
Wallace et al. An Abstract State Machine Specification and Verification of the Location Consistency Memory Model and Cache Protocol.
JP6631317B2 (ja) 演算処理装置、情報処理装置および情報処理装置の制御方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: ARM FINANCE OVERSEAS LTD.

Free format text: FORMER OWNER: BRIDGE DECK LLC

Effective date: 20141205

Owner name: BRIDGE DECK LLC

Free format text: FORMER OWNER: MIPS TECH INC.

Effective date: 20141205

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20141205

Address after: American New Jersey

Patentee after: Overpass Bridge Co.,Ltd.

Address before: American California

Patentee before: Mips Technologies, Inc.

Effective date of registration: 20141205

Address after: cambridge

Patentee after: ARM Overseas Finance Co.,Ltd.

Address before: American New Jersey

Patentee before: Overpass Bridge Co.,Ltd.

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

Granted publication date: 20120530

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