重置全部锁成 功的锁操作结果。
[0243] 以上数据同步的装置实施例中的接收模块301、映射模块302、存储模块305可以 是上述实施例中虚拟锁指令执行装置中的模块,确定模块303、锁操作模块304、缓存单元 305可以是上述实施例中物理锁装置中的模块,而且,在映射模块302和确定模块303之间 存在数据传递的过程。
[0244] 在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述 的部分,可以参见其它实施例的相关描述。
[0245] 需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列 的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述动作顺序的限制,因为依 据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉, 说明书中所描述的实施例均属于优选实施例,所涉及的动作和装置并不一定是本发明所必 须的。
[0246] 本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可 以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储 介质可以包括:ROM、RAM、磁盘或光盘等。
[0247] 以上对本发明实施例所提供的多核处理器、细粒度数据同步的方法及装置进行了 详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的 说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依 据本发明的思想,在【具体实施方式】及应用范围上均会有改变之处,综上所述,本说明书内容 不应理解为对本发明的限制。
【主权项】
1. 一种多核处理器,其特征在于,包括:物理锁装置和集成在每个处理器核上的虚拟 锁指令执行装置,所述物理锁装置分别与每个所述虚拟锁指令执行装置连接,所述物理锁 装置包括多个物理锁,用于存储数据对象的内存空间包括多个虚拟锁的标识,所述虚拟锁 的标识为所述数据对象的一个存储地址,且所述虚拟锁的标识的数量大于所述物理锁的标 识的数量; 所述虚拟锁指令执行装置用于: 接收虚拟锁指令,所述虚拟锁指令用于指示执行从虚拟锁的标识到物理锁的标识的映 射操作,所述虚拟锁指令包括锁操作类型标识和目的虚拟锁的标识; 根据所述目的虚拟锁的标识映射出目的物理锁的标识,并向所述物理锁装置发送锁操 作请求,所述锁操作请求包括所述锁操作类型标识和所述目的物理锁的标识; 所述物理锁装置用于: 根据所述目的物理锁的标识,从所述多个物理锁中确定所述目的物理锁; 对所述目的物理锁执行所述锁操作类型标识对应的锁操作,得到针对所述目标物理锁 的锁操作结果。2. 根据权利要求1所述的多核处理器,其特征在于,所述锁操作请求还包括所述虚拟 锁指令执行装置所属的处理器核的标识; 所述物理锁装置,还用于根据所述处理器核的标识向所述虚拟锁指令执行装置返回所 述锁操作结果。3. 根据权利要求2所述的多核处理器,其特征在于,所述虚拟锁指令执行装置包括虚 拟锁的标识寄存器和映射处理模块,所述物理锁装置包括缓冲队列存储模块和物理锁操作 模块;其中, 所述虚拟锁的标识寄存器,用于存储所述目的虚拟锁的标识,所述目的虚拟锁的标识 包括所述目的虚拟锁的标识对应的数据对象的一个地址; 所述映射处理模块,用于根据所述虚拟锁的标识寄存器中存储的所述虚拟锁的标识, 以及虚拟锁的标识与物理锁的标识的映射关系,映射出与所述虚拟锁的标识对应的目的物 理锁的标识,并向所述物理锁装置发送锁操作请求,所述锁操作请求包括锁操作类型标识、 所述目的物理锁的标识和所述虚拟锁指令执行装置所属的处理器核的标识; 所述缓冲队列存储模块,用于缓存所述锁操作请求; 所述物理锁操作模块用于: 从所述缓冲队列存储模块中读取排在所述缓冲队列最前面的锁操作请求; 根据所述锁操作请求中的目的物理锁的标识确定所述目的物理锁,对所述目的物理锁 执行所述锁操作类型标识对应的锁操作,得到针对所述目的物理锁的锁操作结果; 根据所述处理器核的标识向所述虚拟锁指令执行装置返回所述锁操作结果。4. 根据权利要求2或3所述的多核处理器,其特征在于,所述虚拟锁指令执行装置还包 括:虚拟锁返回结果寄存器; 所述物理锁操作模块,具体用于返回所述锁操作结果给所述虚拟锁指令执行装置中的 虚拟锁返回结果寄存器; 所述虚拟锁返回结果寄存器,用于存储接收到的所述锁操作结果。5. 根据权利要求2-4中任一所述的多核处理器,其特征在于, 所述物理锁操作模块具体用于: 当所述锁操作类型标识为加锁的标识vltrylock时,确定所述目的物理锁的状态; 当所述目的物理锁处于空闲状态时,获取所述目的物理锁,将所述目的物理锁的状态 修改到被占用状态,并向所述虚拟锁指令执行装置返回表示获取锁成功的锁操作结果; 当所述目的物理锁处于被占用状态时,向所述虚拟锁指令执行装置返回表示获取锁失 败的锁操作结果。6. 根据权利要求2-4中任一所述的多核处理器,其特征在于, 所述物理锁操作模块具体用于: 当所述锁操作类型标识为解锁的标识vlunlock时,对所述目的物理锁进行解锁操作, 并将所述目的物理锁的状态修改到空闲状态,得到表示解锁成功的锁操作结果; 当所述锁操作类型标识为重置目的虚拟锁的标识vlreset时,对所述目的物理锁进行 重置操作,将所述目的物理锁的状态修改到空闲状态,得到表示重置目的物理锁成功或失 败的锁操作结果。7. -种数据同步的方法,其特征在于,所述方法应用于多核处理器,所述多核处理器包 括物理锁装置和多个处理器核,每个所述处理器核均包括一虚拟锁指令执行装置,所述物 理锁装置分别与所述虚拟锁指令执行装置连接,所述物理锁装置包括多个物理锁,用于存 储数据对象的内存空间包括多个虚拟锁的标识,所述虚拟锁的标识为所述数据对象的一个 存储地址,且所述虚拟锁的标识的数量大于所述物理锁的标识的数量,所述方法包括: 所述虚拟锁指令执行装置接收虚拟锁指令,所述虚拟锁指令包括锁操作类型标识和目 的虚拟锁的标识,所述目的虚拟锁的标识为待同步数据对象的一个地址; 所述虚拟锁指令执行装置根据所述目的虚拟锁的标识映射出目的物理锁的标识,向所 述物理锁装置发送锁操作请求,所述锁操作请求包括所述锁操作类型标识和所述目的物理 锁的标识; 所述物理锁装置根据所述目的物理锁的标识,从所述多个物理锁中确定所述目的物理 锁; 所述物理锁装置对所述目的物理锁执行所述锁操作类型标识对应的锁操作,得到针对 所述目的物理锁的锁操作结果,所述锁操作的结果用于所述待同步数据对象的同步操作。8. 根据权利要求7所述的方法,其特征在于,所述锁操作请求还包括所述虚拟锁指令 执行装置所属的处理器核的标识,所述方法还包括: 所述物理锁装置根据所述处理器核的标识向所述虚拟锁指令执行装置返回所述锁操 作结果; 所述虚拟锁指令执行装置接收所述物理锁装置返回的所述锁操作结果,并存储所述锁 操作结果。9. 根据权利要求8所述的方法,其特征在于,所述虚拟锁指令执行装置接收虚拟锁指 令之后,所述方法还包括: 所述虚拟锁指令执行装置存储所述目的虚拟锁的标识,所述目的虚拟锁的标识包括所 述目的虚拟锁的标识对应的数据对象的一个地址; 所述虚拟锁指令执行装置根据所述目的虚拟锁的标识映射出目的物理锁的标识,向所 述物理锁装置发送锁操作请求,所述锁操作请求包括所述锁操作类型标识和所述目的物理 锁的标识,包括: 所述虚拟锁指令执行装置根据存储的所述虚拟锁的标识,以及虚拟锁的标识与物理锁 的标识的映射关系,映射出与所述虚拟锁的标识对应的目的物理锁的标识,并向所述物理 锁装置发送锁操作请求,所述锁操作请求包括锁操作类型标识、所述目的物理锁的标识和 所述虚拟锁指令执行装置所属的处理器核的标识。10. 根据权利要求7-9任一所述的方法,其特征在于,所述物理锁装置根据所述目的物 理锁的标识,从所述多个物理锁中确定所述目的物理锁之前,所述方法还包括: 所述物理锁装置按照缓冲队列的方式缓存接收的所述锁操作请求; 从缓存的所述锁操作请求中读取排在所述缓冲队列最前面的锁操作请求。11. 根据权利要求7-10任一所述的方法,其特征在于,所述对所述目的物理锁执行所 述锁操作类型标识对应的锁操作,得到针对所述目的物理锁的锁操作结果,包括: 当所述锁操作类型标识为加锁的标识vltrylock时,确定所述目的物理锁的状态; 当所述目的物理锁处于空闲状态时,获取所述目的物理锁,将所述目的物理锁的状态 修改到被占用状态,得到表示获取锁成功的锁操作结果; 当所述目的物理锁处于被占用状态时,得到表示获取锁失败的锁操作结果。12. 根据权利要求7-10任一所述的方法,其特征在于,所述对所述目的物理锁执行所 述锁操作类型标识对应的锁操作,得到针对所述目的物理锁的锁操作结果,包括: 当所述锁操作类型标识为解锁的标识vlunlock时,对所述目的物理锁进行解锁操作, 并将所述目的物理锁的状态修改到空闲状态,得到表示解锁成功的锁操作结果; 当所述锁操作类型标识为重置目的虚拟锁的标识vlreset时,对所述目的物理锁进行 重置操作,将所述目的物理锁的状态修改到空闲状态,得到表示重置目的物理锁成功或失 败的锁操作结果; 当所述锁操作类型标识为重置全部虚拟锁的标识vlresetall时,对所述多个物理锁 进行重置操作,将所述多个物理锁的状态都修改到空闲状态,得到表示重置全部锁成功的 锁操作结果。
【专利摘要】本发明公开了一种多核处理器,包括:物理锁装置和集成在每个处理器核上的虚拟锁指令执行装置,物理锁装置分别与每个虚拟锁指令执行装置连接,物理锁装置包括多个物理锁,用于存储数据对象的内存空间包括多个虚拟锁的标识,虚拟锁的标识为数据对象的一个存储地址,且虚拟锁的标识的数量大于物理锁的标识的数量;虚拟锁指令执行装置用于根据目的虚拟锁的标识映射出目的物理锁的标识,物理锁装置用于根据目的物理锁的标识,从多个物理锁中确定目的物理锁;对目的物理锁执行锁操作类型标识对应的锁操作,得到针对目标物理锁的锁操作结果。本发明实施例提供的多核处理器,可以解决线程间的对数据对象的访问冲突问题,又避免了物理锁的内存开销。
【IPC分类】G06F9/52, G06F12/08
【公开号】CN105094993
【申请号】CN201510507602
【发明人】谭光明, 闫洁
【申请人】华为技术有限公司, 中国科学院计算技术研究所
【公开日】2015年11月25日
【申请日】2015年8月18日