一种多核处理器、数据同步的方法及装置制造方法及图纸

技术编号:12409727 阅读:85 留言:0更新日期:2015-11-29 18:03
本发明专利技术公开了一种多核处理器,包括:物理锁装置和集成在每个处理器核上的虚拟锁指令执行装置,物理锁装置分别与每个虚拟锁指令执行装置连接,物理锁装置包括多个物理锁,用于存储数据对象的内存空间包括多个虚拟锁的标识,虚拟锁的标识为数据对象的一个存储地址,且虚拟锁的标识的数量大于物理锁的标识的数量;虚拟锁指令执行装置用于根据目的虚拟锁的标识映射出目的物理锁的标识,物理锁装置用于根据目的物理锁的标识,从多个物理锁中确定目的物理锁;对目的物理锁执行锁操作类型标识对应的锁操作,得到针对目标物理锁的锁操作结果。本发明专利技术实施例提供的多核处理器,可以解决线程间的对数据对象的访问冲突问题,又避免了物理锁的内存开销。

【技术实现步骤摘要】

本专利技术涉及处理器
,具体涉及一种多核处理器、数据同步的方法及装置
技术介绍
处理器的发展趋势是在片上集成越来越多的核,多核共享存储的多线程并行模式 为大规模细粒度并行提供了机会,大规模细粒度并行就是不同线程可以并行访问不同的数 据对象。 细粒度并行的关键技术是细粒度数据的同步机制。在共享存储多线程模式下,多 个线程可能对同一数据对象进行操作,导致线程间对该数据对象的访问存在冲突,因而需 要协调多个线程对该数据对象的访问,也就是需要对该数据对象的访问次序进行同步。通 常的细粒度数据同步技术是为每个存在访问竞争的数据对象分配一把物理锁,线程对该数 据对象操作之前必须先获取该物理锁,操作完成后再释放该物理锁。 现有技术中这种避免数据同步冲突的方法,需要为每个存在访问竞争的数据对象 分配物理锁和对应的内存空间。由于每个数据对象都可能存在访问竞争,为每个数据对象 都设置一把物理锁,就会导致很大的内存开销。
技术实现思路
为了解决现有技术中数据同步时为每个存在访问竞争的数据对象显式分配物理 锁而引起很大的内存开销的技术问题,本专利技术实施例提供一种多核处理器、数据同步的方 法及装置。可以一定程度上解决线程间的对数据对象的访问冲突问题,又减少了物理锁的 内存开销。 本专利技术第一方面提供一种多核处理器,包括:物理锁装置和集成在每个处理器核 上的虚拟锁指令执行装置,所述物理锁装置分别与每个所述虚拟锁指令执行装置连接,所 述物理锁装置包括多个物理锁,用于存储数据对象的内存空间包括多个虚拟锁的标识,所 述虚拟锁的标识为所述数据对象的一个存储地址,且所述虚拟锁的标识的数量大于所述物 理锁的标识的数量; 所述虚拟锁指令执行装置用于: 接收虚拟锁指令,所述虚拟锁指令用于指示执行从虚拟锁的标识到物理锁的标识 的映射操作,所述虚拟锁指令包括锁操作类型标识和目的虚拟锁的标识; 根据所述目的虚拟锁的标识映射出目的物理锁的标识,并向所述物理锁装置发送 锁操作请求,所述锁操作请求包括所述锁操作类型标识和所述目的物理锁的标识; 所述物理锁装置用于: 根据所述目的物理锁的标识,从所述多个物理锁中确定所述目的物理锁; 对所述目的物理锁执行所述锁操作类型标识对应的锁操作,得到针对所述目标物 理锁的锁操作结果。 结合第一方面,在第一种可能的实现方式中,所述锁操作请求还包括所述虚拟锁 指令执行装置所属的处理器核的标识; 所述物理锁装置,还用于根据所述处理器核的标识向所述虚拟锁指令执行装置返 回所述锁操作结果。 结合第一方面第一种可能的实现方式,在第二种可能的实现方式中,所述虚拟锁 指令执行装置包括虚拟锁的标识寄存器和映射处理模块,所述物理锁装置包括缓冲队列存 储模块和物理锁操作模块;其中, 所述虚拟锁的标识寄存器,用于存储所述目的虚拟锁的标识,所述目的虚拟锁的 标识包括所述目的虚拟锁的标识对应的数据对象的一个地址; 所述映射处理模块,用于根据所述虚拟锁的标识寄存器中存储的所述虚拟锁的标 识,以及虚拟锁的标识与物理锁的标识的映射关系,映射出与所述虚拟锁的标识对应的目 的物理锁的标识,并向所述物理锁装置发送锁操作请求,所述锁操作请求包括锁操作类型 标识、所述目的物理锁的标识和所述虚拟锁指令执行装置所属的处理器核的标识; 所述缓冲队列存储模块,用于缓存所述锁操作请求; 所述物理锁操作模块用于: 从所述缓冲队列存储模块中读取排在所述缓冲队列最前面的锁操作请求; 根据所述锁操作请求中的目的物理锁的标识确定所述目的物理锁,对所述目的物 理锁执行所述锁操作类型标识对应的锁操作,得到针对所述目的物理锁的锁操作结果; 根据所述处理器核的标识向所述虚拟锁指令执行装置返回所述锁操作结果。 结合第一方面第一种或第二种可能的实现方式,在第三种可能的实现方式中,所 述虚拟锁指令执行装置还包括:虚拟锁返回结果寄存器; 所述物理锁操作模块,具体用于返回所述锁操作结果给所述虚拟锁指令执行装置 中的虚拟锁返回结果寄存器; 所述虚拟锁返回结果寄存器,用于存储接收到的所述锁操作结果。 结合第一方面第一种、第二种或第三种可能的实现方式,在第四种可能的实现方 式中, 所述物理锁操作模块具体用于: 当所述锁操作类型标识为加锁的标识vltrylock时,确定所述目的物理锁的状 态; 当所述目的物理锁处于空闲状态时,获取所述目的物理锁,将所述目的物理锁的 状态修改到被占用状态,并向所述虚拟锁指令执行装置返回表示获取锁成功的锁操作结 果; 当所述目的物理锁处于被占用状态时,向所述虚拟锁指令执行装置返回表示获取 锁失败的锁操作结果。 结合第一方面第一种、第二种或第三种可能的实现方式,在第五种可能的实现方 式中, 所述物理锁操作模块具体用于: 当所述锁操作类型标识为解锁的标识vlunlock时,对所述目的物理锁进行解锁 操作,并将所述目的物理锁的状态修改到空闲状态,得到表示解锁成功的锁操作结果; 当所述锁操作类型标识为重置目的虚拟锁的标识vlreset时,对所述目的物理锁 进行重置操作,将所述目的物理锁的状态修改到空闲状态,得到表示重置目的物理锁成功 或失败的锁操作结果。 本专利技术第二方面提供一种数据同步的方法,所述方法应用于多核处理器,所述多 核处理器包括物理锁装置和多个处理器核,每个所述处理器核均包括一虚拟锁指令执行装 置,所述物理锁装置分别与所述虚拟锁指令执行装置连接,所述物理锁装置包括多个物理 锁,用于存储数据对象的内存空间包括多个虚拟锁的标识,所述虚拟锁的标识为所述数据 对象的一个存储地址,且所述虚拟锁的标识的数量大于所述物理锁的标识的数量,所述方 法包括: 所述虚拟锁指令执行装置接收虚拟锁指令,所述虚拟锁指令包括锁操作类型标识 和目的虚拟锁的标识,所述目的虚拟锁的标识为待同步数据对象的一个地址; 所述虚拟锁指令执行装置根据所述目的虚拟锁的标识映射出目的物理锁的标识, 向所述物理锁装置发送锁操作请求,所述锁操作请求包括所述锁操作类型标识和所述目的 物理锁的标识; 所述物理锁装置根据所述目的物理锁的标识,从所述多个物理锁中确定所述目的 物理锁; 所述物理锁装置对所述目的物理锁执行所述锁操作类型标识对应的锁操作,得到 针对所述目的物理锁的锁操作结果,所述锁操作的结果用于所述待同步数据对象的同步操 作。 结合第二方面,在第一种可能的实现方式中,所述锁操作请求还包括所述虚拟锁 指令执行装置所属的处理器核的标识,所述方法还包括: 所述物理锁装置根据所述处理器核的标识向所述虚拟锁指令执行装置返回所述 锁操作结果; 所述虚拟锁指令执行装置接收所述物理锁装置返回的所述锁操作结果,并存储所 述锁操作结果。 结合第二方面第一种可能的实现方式,在第二种可能的实现方式中,所述虚拟锁 指令执行装置接收虚拟锁指令之后,所述方法还包括: 所述虚拟锁指令执行装置存储所述目的虚拟锁的标识,所述目的虚拟锁的标识包 括所述目的虚拟锁的标识对应的数据对象的一个地址; 所述虚拟锁指令执行装置根据所述目的虚拟锁的标识映射出目的物理锁的标识, 向所述物理锁装置发送锁操作请求,所述锁操作请求包括所述锁操作类型标识和所述目的 物理锁的标识,包括: 所述虚拟锁指令执行装置根据存储的所述虚拟锁的标识,以及虚拟锁的标识与物本文档来自技高网...
一种多核处理器、数据同步的方法及装置

【技术保护点】
一种多核处理器,其特征在于,包括:物理锁装置和集成在每个处理器核上的虚拟锁指令执行装置,所述物理锁装置分别与每个所述虚拟锁指令执行装置连接,所述物理锁装置包括多个物理锁,用于存储数据对象的内存空间包括多个虚拟锁的标识,所述虚拟锁的标识为所述数据对象的一个存储地址,且所述虚拟锁的标识的数量大于所述物理锁的标识的数量;所述虚拟锁指令执行装置用于:接收虚拟锁指令,所述虚拟锁指令用于指示执行从虚拟锁的标识到物理锁的标识的映射操作,所述虚拟锁指令包括锁操作类型标识和目的虚拟锁的标识;根据所述目的虚拟锁的标识映射出目的物理锁的标识,并向所述物理锁装置发送锁操作请求,所述锁操作请求包括所述锁操作类型标识和所述目的物理锁的标识;所述物理锁装置用于:根据所述目的物理锁的标识,从所述多个物理锁中确定所述目的物理锁;对所述目的物理锁执行所述锁操作类型标识对应的锁操作,得到针对所述目标物理锁的锁操作结果。

【技术特征摘要】

【专利技术属性】
技术研发人员:谭光明闫洁
申请(专利权)人:华为技术有限公司中国科学院计算技术研究所
类型:发明
国别省市:广东;44

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

1