【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及一种用于对多线程执行锁保护处理操作的数据处理装置和方法。
技术介绍
提供一种被配置为执行多个线程的数据处理装置是已知的。每个线程通常需要执行一系列处理操作,并且每个线程通常包括对那些处理操作进行定义的指令序列。还已知使用锁作为同步机制,当存在多线程执行时,用于限制对数据处理系统内的相关资源(例如,共享数据结构)的访问。如果处理操作需要访问由锁保护的资源,则该处理操作在本文将被称为锁保护处理操作,并且在针对特定线程执行这种锁保护处理操作之前,将需要确保获取了锁。锁可以采取各种形式(并且可以应用本专利技术而不考虑锁的基本形式),但是一种常用形式是存储在存储器中的特定地址处的二进制值。为了获取锁,处理电路在存储器中的锁地址处查找值,并且如果其处于指示锁可用的第一值(例如,零),则通过将该数据值设置为指示锁已被获取的第二值(例如,一)来获取锁。在为特定线程获取锁的同时,寻求获取锁的任何其它线程将在从锁地址读取时确定该锁当前处于第二值,并且相应地已被获取。然后,不针对其他线程执行锁保护处理操作,直到该线程已被释放,并且随后由其他等待的线程获取。相应地,当多线程包括由同一锁保护的锁保护处理操作时,则将仅能一次针对一个线程执行该锁保护处理操作。锁保护处理操作可以是由每个线程执行的相同操作(例如每个线程正执行相同的程序代码),或者可以是不同线程中的不同处理操作(例如,其中一个线程希望执行处理操作以访问共享资源以便将值添加到该共享资源中的列表中,而另一个线程希望执行处理操作以从该共享资源中的列表中删除值)。指定锁保护处理操作的一个或多个指令在本文将被称为关键 ...
【技术保护点】
一种用于执行多个线程的数据处理装置,包括:处理电路,被配置为执行所述多个线程所需的处理操作,所述处理操作包括与锁相关联的锁保护处理操作,所述锁需要在所述处理电路执行所述锁保护处理操作之前被获取;以及接力棒维持电路,被配置为与所述多个线程相关联地维持接力棒,其中所述接力棒形成所述锁的代理,并且所述接力棒维持电路被配置为在所述多个线程之间分配接力棒;所述处理电路被配置为与所述接力棒维持电路通信,使得一旦已为所述多个线程中的一个线程获取到所述锁,则所述处理电路在释放所述锁之前为所述多个线程中的多线程执行所述锁保护处理操作,所述接力棒维持电路被配置为在所述多线程中标识当前线程,其中,通过将所述接力棒分配给所述当前线程来为所述当前线程执行所述锁保护处理操作。
【技术特征摘要】
【国外来华专利技术】2014.07.08 GB 1412082.81.一种用于执行多个线程的数据处理装置,包括:处理电路,被配置为执行所述多个线程所需的处理操作,所述处理操作包括与锁相关联的锁保护处理操作,所述锁需要在所述处理电路执行所述锁保护处理操作之前被获取;以及接力棒维持电路,被配置为与所述多个线程相关联地维持接力棒,其中所述接力棒形成所述锁的代理,并且所述接力棒维持电路被配置为在所述多个线程之间分配接力棒;所述处理电路被配置为与所述接力棒维持电路通信,使得一旦已为所述多个线程中的一个线程获取到所述锁,则所述处理电路在释放所述锁之前为所述多个线程中的多线程执行所述锁保护处理操作,所述接力棒维持电路被配置为在所述多线程中标识当前线程,其中,通过将所述接力棒分配给所述当前线程来为所述当前线程执行所述锁保护处理操作。2.根据权利要求1所述的数据处理装置,其中所述接力棒维持电路被配置为将所述接力棒一次分配给一个线程。3.根据权利要求1或2所述的数据处理装置,其中,对于需要执行所述锁保护处理操作的需求线程,所述处理电路被配置为请求所述接力棒维持电路将所述接力棒分配给所述需求线程,如果所述接力棒当前未被分配给另一线程,所述接力棒维持电路被配置为将所述接力棒分配给所述需求线程并使所述处理电路获取所述锁。4.根据权利要求3所述的数据处理装置,其中当所述处理电路请求所述接力棒维持电路将所述接力棒分配给需要执行所述锁保护处理操作的需求线程时,如果所述接力棒当前被分配给另一线程,所述接力棒维持电路被配置为与所述接力棒相关联地维持所述需求线程正在等待所述接力棒的指示,并且使所述处理电路在等待所述接力棒分配期间停止执行所述需求线程。5.根据权利要求3或4所述的数据处理装置,其中每个线程包括指令序列,并且对于需要执行所述锁保护处理操作的需求线程,所述需求线程包括当由所述处理电路执行时使所述处理电路请求所述接力棒维持电路将所述接力棒分配给所述需求线程的获得接力棒指令。6.根据权利要求5所述的数据处理装置,其中所述获得接力棒指令的执行使得控制数据被存储在寄存器中,以指示所述接力棒维持电路是否需要所述处理电路获取所述锁。7.根据权利要求5所述的数据处理装置,其中,所述指令序列包括锁获取代码,并且如果所述接力棒维持电路不需要所述处理电路获取所述锁,则所述获得接力棒指令的执行使得处理跳转越过所述锁获取代码。8.根据前述权利要求中任一项所述的数据处理装置,其中,当所述处理电路已为线程执行完所述锁保护处理操作时,所述处理电路被配置为向所述接力棒维持电路发出传递接力棒请求,所述接力棒维持电路响应于所述传递接力棒请求来确定在所述多线程中是否存在仍需要执行所述锁保护处理操作的任何剩余线程,并且如果存在,则将所述接力棒分配给所述剩余线程中的一个线程。9.根据权利要求8所述的数据处理装置,其中,如果所述接力棒维持电路确定了在所述多线程中不存在仍需要执行所述锁保护处理操作的剩余线程,则所述接力棒维持电路被配置为将所述接力棒解除分配并使得所述处理电路释放所述锁。10.根据权利要求8或9所述的数据处理装置,其中每个线程包括指令序列,并且对于需要执行所述锁保护处理操作的线程,所述线程包括传递接力棒指令,所述传递接力棒指令在执行完所述线程的所述锁保护处理操作时被所述处理电路执行,并使得所述处理电路向所述接力棒维持电路发出所述传递接力棒请求。11.根据权利要求10所述的数据处理装置,其中,所述传递接力棒指令的执行使得控制数据被存储在寄存器中,以指示所述接力棒维持电路是否需要所述处理电路释放所述锁。12.根据权利要求10所述的数据处理装置,其中,所述指令序列包括锁释放代码,并且如果所述接力棒维持电路不需要所述处理电路释放所述锁,则所述传递接力棒指令的执行使得处理跳转越过所述锁释放代码。13.根据任一前述权...
【专利技术属性】
技术研发人员:大卫·汉纳·曼塞尔,蒂莫西·霍尔罗伊德·哥劳特,
申请(专利权)人:ARM有限公司,
类型:发明
国别省市:英国;GB
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。