当前位置: 首页 > 专利查询>ARM有限公司专利>正文

事务存储器支持制造技术

技术编号:13957436 阅读:68 留言:0更新日期:2016-11-02 15:58
非对称性多处理器系统(2)包括经由控制器(14、16)支持事务存储器的多个处理器核心(4、6)以及不经由硬件支持事务存储器的一个或多个处理器核心(8)。控制器通过以下方式对请求对于锁地址的排他性访问的请求的接收进行回应:确定它们相关联的处理元件当前是否正在执行由此锁地址处存储的锁值保护的存储器事务,并且如果它们的处理元件正在执行这样的事务,则延迟释放锁地址用于排他性访问,直至预定条件被满足。如果处理元件没有正在执行这样的受保护的存储器事务,则锁地址可被无条件地释放用于排他性访问。预定条件可以是自从请求被接收到起已经超出阈值延迟和/或请求先前已经被接收并拒绝了阈值次数。请求可通过用于从存储锁地址的架构寄存器(76)中读取锁地址的事务启动指令的执行(如果执行此事务启动指令的处理器没有在执行正在进行的存储器事务)而产生。如果处理器已在执行存储器事务,则事务启动指令不需要访问在锁地址寄存器(76)内保持的锁地址处存储的锁值,因为假设锁值已经被检杳过。

【技术实现步骤摘要】
【国外来华专利技术】
本公开涉及数据处理系统的领域。更具体地,本公开涉及对于具有多个处理元件的数据处理系统内的事务存储器的支持,这多个处理元件在存储器内存储共享的数据值。
技术介绍
提供具有共享在存储器内存储的数据值的多个处理元件的数据处理系统是已知的。为了控制处理元件之间的一致性,已知的是提供与存储器地址空间的区域相关联的锁,从而使得当一个处理元件希望执行对于该区域的访问时,它首先检查与该区域相关联的锁值未被设置。如果锁值被设置,那么这表明另一处理元件已正在该区域内执行事务,因此当前访问应当被中止并在晚些时候重试。如果测试揭露该锁当前未被设置,那么作出访问请求的处理元件可以设置锁值、执行它的访问、并然后重置锁值。尽管锁的使用提供了在处理元件之间共享数据值的安全机制,但是它会不利地影响性能,因为锁可能被以粗粒度级别设置而使得实际上不影响被锁区域内的相同数据值的存储器访问当在实践中它们能够没有困难地并行进行时被阻止并行地运行。不利地,如果锁被设置的粒度过细,则与存储和管理锁相关联的开销级别变得繁重。解决以上问题的一种方式是提供省略机制。根据此机制,处理元件可以获得对于数据值的访问并且在它掌握的那些数据值的本地副本上推测性地执行存储器事务。当执行这样的存储器事务时,处理元件向系统内的其他处理元件通知它正在执行对于给定区域的存储器地址的存储器访问。如果任何其他处理元件当前正在执行涉及此区域内的任何存储器地址的存储器事务作为它自己的推测性处理的一部分,那么它中止此推测性处理(存储器事务),从而使得请求者能够获得对于所涉及的存储器区域的访问并执行更近期的推测性操作。应当认识到正在进行的存储器事务的中止引起发生死锁情况的可能性。因此,一些机制被提供用于确保在处理工作负载内发生可供执行的回退路径以及做出进步。这可通过将上面描述的锁机制用作当处理元件之间出现竞争时的回退路径来实现。与基于在出现竞争时被中止的推测性存储器事务的管理相比,使用这样的锁机制可降低性能,但是它提供了确保死锁可被克服的方式。因此,即使在省略机制被提供时,处理元件在开始存储器事务时将查看所涉及的存储器区域是否被锁定,即使它们并不旨在自己锁定该存储器区域而是将替代地基于推测性存储器事务正常进行。如果处理元件发现区域被锁定,那么它将不进行存储器事务并且可在稍晚的时间处重试。此外,处理元件将监视保卫它在其上执行推测性存储器事务的存储器区域的锁地址,并且如果此锁地址被另一处理元件以相冲突的方式访问,那么它将中止它的推测性存储器事务。因此,需要利用锁的处理元件能够以一方式设置锁值而无需等待正在进行的存储器事务完成,该方式在其他情形中将阻止锁值被设置并阻止获得对区域的排他访问。
技术实现思路
从本公开的一个方面来看,提供了一种用于处理数据并且包括对于原子存储器事务的硬件支持的装置,装置包括:多个处理元件,每个处理元件被配置为执行一系列程序指令;以及存储器,该存储器被配置为存储由多个处理元件共享的数据值,其中多个处理元件中的至少一个处理元件是事务存储器支持型处理元件,该事务存储器支持型处理元件具有被配置为监控对存储器内的锁地址的访问的控制器并且控制器被配置为通过以下操作来回应从多个处理元件中的另一处理元件接收的、获得对锁地址的排他性访问的请求:(1)当事务存储器支持型处理元件正执行由锁地址保护的存储器事务时,延迟释放锁地址用于排他性访问,直至预定条件被满足;以及(2)当事务存储器支持型处理元件未正执行由锁地址保护的存储器事务时,独立于预定条件地释放锁地址用于排他性访问。本公开认识到在监控保护由一个处理元件推测性地执行的存储器事务的锁地址时,存在这样的场景:在这些场景中,无条件地通过立即释放此锁地址以供由请求者排他性地使用来回应请求获得对于此锁地址的排他性访问的请求是不适当的。无条件地释放锁地址以供请求者排他性地访问的简单方式可能在包含就性能和优先级而言是对等者的处理元件的同构系统中是适当的,但是在其他场景中可采取不同的方式。本公开提供了以下方案:当处理元件正在执行由此锁地址保护的存储器事务时,在锁地址被释放以供请求者排他性地访问之前必须满足预定条件。相反地,当处理元件没有正在执行由请求所针对的锁地址保护的存储器事务时,独立于预定条件,锁地址被无条件地释放用于排他性访问。在一些实施例中,控制器可被配置为通过对该接收的请求返回请求拒绝响应来延迟释放锁地址。在其他实施例中,控制器可被配置为通过延迟返回对于该接收的请求的任何响应来延迟释放锁地址。在释放锁地址之前要满足的预定条件的一个示例形式可以是事务存储器支持型处理元件在不释放锁地址的情形下已经接收到对于锁地址的预定数目的访问请求。因此,在若干请求已经被做出并且被拒绝之前将不进行释放。在释放锁地址之前要满足的预定条件的另一示例可以是自从接收到请求起已经过去了预定时间,即释放被延迟达预定时段。在释放锁地址之前等待直至预定条件被满足为正在进行的存储器事务提供了在锁地址被释放之前完成的额外时间。当锁地址被释放并且由此锁地址保护的存储器事务尚未完成时,存储器事务可被中止。本公开可被用于以下实施例中,其中多个处理元件包括至少一个不具有用于支持更高级的事务存储器技术(包括省略、缓存侦听等等)的控制器的事务存储器不支持型处理元件。作为示例,系统可包括若干复杂的高性能处理器核心以及一个或多个简单的低功率处理器核心。高性能处理器核心可包括用于更精细的数据值共享以及事务存储器支持的机制,而简单的低功率核心可依赖于过渡的锁机制来确保一致性。在这样的系统内,如果低功率处理器核心寻求访问正在由高性能处理器核心使用的存储器区域,则它正常地强制施行那些高性能处理器核心上的存储器事务的立即中止并且将总体系统的性能退化至低功率处理器核心的水平。然而,使用本公开,高性能处理器核心可暂缓向低功率处理器核心释放锁地址(准许锁值被设置)直至预定条件被满足,因而允许降低对于要被减少的高性能处理器核心的性能的退化。这样的非对称性多处理装置可用于提供能够以能量高效地方式来应对多种多样的不同处理工作负载的系统。在一些实施例中,预定条件可以是请求是从作为事务存储器支持型处理元件的一个处理元件(例如,高性能核心)接收的,从而使得至少一段时间不对从不匹配此形式的处理元件接收的请求采取动作。在存储器事务的启动时与执行采用对于锁地址/值的访问的程序指令相关联的开销可在以下系统中被减小:其中在保持规定了处理器的配置的参数的架构寄存器内提供专用于存储锁地址的锁地址寄存器。因此,当事务启动指令被此处理元件的指令译码器译码时,这可用于确定处理元件是否已在执行存储器事务,并且如果处理元件未在执行存储器事务,则从锁地址寄存器中读取锁地址并且访问在锁地址处存储的锁值。相反地,如果处理元件已在执行存储器事务,则系统可进行事务启动指令随后的进一步处理而无需访问在锁地址处存储的锁值。此特征认识到程序代码将通常给执行任何存储器事务的程序指令预先安排一事务启动指令从而至少检查所涉及的存储器区域的锁值是否被(例如,使用过渡的锁机制的处理元件)设置。在嵌套式代码内,这可导致冗余的检查和访问被做出,因为处理器已经在执行存储器事务并且已经控制锁地址,所以后续的存储器事务将不必重复检查锁地址值,这浪费了时间和能量。另本文档来自技高网
...

【技术保护点】
一种用于处理数据并且包括对于原子存储器事务的硬件支持的装置,所述装置包括:多个处理元件,每个处理元件被配置为执行一系列程序指令;以及存储器,该存储器被配置为存储由所述多个处理元件共享的数据值,其中所述多个处理元件中的至少一个处理元件是事务存储器支持型处理元件,该事务存储器支持型处理元件具有被配置为监控对所述存储器内的锁地址的访问的控制器并且所述控制器被配置为通过以下操作来回应从所述多个处理元件中的另一处理元件接收的、获得对所述锁地址的排他性访问的请求:(1)当所述事务存储器支持型处理元件正执行由所述锁地址保护的存储器事务时,延迟释放所述锁地址用于排他性访问,直至预定条件被满足;以及(2)当所述事务存储器支持型处理元件未正执行由所述锁地址保护的存储器事务时,独立于所述预定条件地释放所述锁地址用于排他性访问。

【技术特征摘要】
【国外来华专利技术】2014.03.06 GB 1403948.11.一种用于处理数据并且包括对于原子存储器事务的硬件支持的装置,所述装置包括:多个处理元件,每个处理元件被配置为执行一系列程序指令;以及存储器,该存储器被配置为存储由所述多个处理元件共享的数据值,其中所述多个处理元件中的至少一个处理元件是事务存储器支持型处理元件,该事务存储器支持型处理元件具有被配置为监控对所述存储器内的锁地址的访问的控制器并且所述控制器被配置为通过以下操作来回应从所述多个处理元件中的另一处理元件接收的、获得对所述锁地址的排他性访问的请求:(1)当所述事务存储器支持型处理元件正执行由所述锁地址保护的存储器事务时,延迟释放所述锁地址用于排他性访问,直至预定条件被满足;以及(2)当所述事务存储器支持型处理元件未正执行由所述锁地址保护的存储器事务时,独立于所述预定条件地释放所述锁地址用于排他性访问。2.如权利要求1所述的装置,其中所述控制器被配置为通过对该接收的请求返回请求拒绝响应来延迟释放所述锁地址。3.如权利要求1所述的装置,其中所述控制器被配置为通过延迟返回对于该接收的请求的任何响应来延迟释放所述锁地址。4.如权利要求1、2和3中任一项所述的装置,其中所述预定条件至少部分是所述事务存储器支持型处理元件在不释放所述锁地址的情形下已经接收到对于所述锁地址的预定数目的访问请求。5.如前述权利要求中任一项所述的装置,其中所述预定条件至少部分是所述事务存储器支持型处理元件已经延迟释放所述锁地址达预定时间。6.如前述权利要求中任一项所述的装置,其中所述控制器被配置为:如果所述锁地址在所述存储器事务已经完成之前被释放,则中止由所述锁值保护的所述存储器事务。7.如前述权利要求中任一项所述的装置,其中所述多个处理元件包括至少一个不具有所述控制器的事务存储器不支持型处理元件。8.如权利要求7所述的装置,其中所述事务存储器不支持型处理元件被配置为在开始由所述锁值保护的存储器事务的执行之前执行一系列锁获取程序指令。9.如权利要求7和8中任一项所述的装置,其中所述事务存储器不支持型处理元件相比所述事务存储器支持型处理元件具有更低的功耗和更低的指令处理性能。10.如前述权利要求中任一项所述的装置,其中所述多个处理元件形成非对称多处理装置。11.如前述权利要求中任一项所述的装置,包括多个事务存储器支持型处理元件。12.如权利要求11所述的装置,其中如果该接收的请求是从所述多个事务存储器支持型处理元件中的一个中接收的,则所述预定条件被满足。13.如前述权利要求中任一项所述的装置,其中所述多个处理元件中的至少一个处理元件包括:一个或多个架构寄存器,被配置为保持规定了所述多个处理元件中的所述至少一个处理元件的配置的参数,所述一个或多个架构寄存器包括专用于存储所述锁地址的锁地址寄存器;以及指令译码器电路,被配置为译码指示存储器事务的启动的事务启动指令并且被配置为:(1)如果所述多个处理元件中的所述至少一个处理元件未正执行存储器事务,则生成一个或多个控制信号来控制从所述锁地址寄存器中读取所述锁地址以及至少访问在所述锁地址处存储的所述锁值;并且(2)如果所述多个处理元件中的所述至少一个处理元件已正执行存储器事务,则进行下一步处理而无需访问在所述锁地址处存储的所述锁值。14.如权利要求13所述的装置,其中所述装置被配置为执行与多个不同的程序进程相对应的程序指令,其中所述多个处理元件中一个给定处理元件在给定时段内执行所述多个程序进程中一个给定程序进程,并且所述多个处理元件中所述一个给定处理元件的锁地址寄存器在所述给定时段期间存储针对所述多个程序进程中所述一个给定程序进程的锁地址。15.一种用于处理数据并且包括对于原子存储器事务的硬件支持的装置,所述装置包括:多个处理装置,每个处理装置用于执行一系列程序指令;以及存储器装置,用于存储由所述多个处理装置共享的数据值,其中所述多个处理装置中的至少一个处理装置是事务存储器支持型处理装置,该事务存储器支持型处理装置具有用于监控对所述存储器装置内的锁地址的访问的控制装置并且所述控制装置用于通过以下操作来回应从所述多个处理装置中的另一处理装置接收的、获得对所述锁地址的排他性访问的请求:(1...

【专利技术属性】
技术研发人员:马修·詹姆斯·霍斯内尔理查德·罗伊·格里森思怀特斯图亚特·大卫·贝尔斯
申请(专利权)人:ARM有限公司
类型:发明
国别省市:英国;GB

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1