一种栅栏同步方法及设备的制造方法_6

文档序号:9217088阅读:来源:国知局
求1所述的方法,其特征在于,所述根据所述预定的栅栏同步点对应的栅栏标识确定目标栅栏同步装置,包括: 根据所述预定的栅栏同步点对应的栅栏标识,按照预设规则确定所述目标栅栏同步装置;所述预设规则包括栅栏标识与栅栏同步装置的映射关系。3.根据权利要求1所述的方法,其特征在于,在所述向所述目标栅栏同步装置发送栅栏同步消息之后,还包括: 暂停对所述当前处理的线程程序的处理,进入等待状态。4.根据权利要求3所述的方法,其特征在于,在所述暂停对所述当前处理的线程程序的处理,进入等待状态之后,还包括: 接收所述目标栅栏同步装置发送的确认消息;所述确认消息用于通知所述第一处理器核继续处理所述当前处理的线程程序; 继续处理所述当前处理的线程程序。5.一种栅栏同步方法,其特征在于,应用于具有多核或众核处理器的芯片中,所述芯片上设置有至少两个栅栏同步装置,所述方法包括: 目标栅栏同步装置接收第一处理器核发送的栅栏同步消息;所述栅栏同步消息为所述第一处理器核在确定当前处理的线程程序执行到预定的栅栏同步点时发送的,所述第一处理器核为所述芯片包含的所有处理器核中的任意一个,所述栅栏同步消息中包含所述预定的栅栏同步点对应的栅栏标识以及参与同步的线程程序的个数;所述目标栅栏同步装置为用于处理所述预定的栅栏同步点对应的处理器核发送的栅栏同步消息的栅栏同步装置; 根据所述预定的栅栏同步点对应的栅栏标识将第一队列包含的计数字段的计数数值加I ;所述第一队列为与所述栅栏标识对应的用于标识所有参与同步的线程程序状态的队列;所述第一队列包含所述栅栏标识、队列状态、所述计数字段。6.根据权利要求5所述的方法,其特征在于,在所述根据所述栅栏标识将第一队列包含的计数字段的计数数值加I之前,还包括: 判断是否存在所述第一队列; 当不存在所述第一队列时,创建所述第一队列,并将所述队列状态更新为使用状态。7.根据权利要求5所述的方法,其特征在于,所述第一队列还包含已执行到所述预定的栅栏同步点的线程程序对应的处理器核的标识信息; 在所述接收第一处理器核发送的栅栏同步消息之后,还包括: 将所述第一处理器核的标识信息添加至所述第一队列中。8.根据权利要求7所述的方法,其特征在于,在所述将所述第一处理器核的标识信息添加至所述第一队列中之前,还包括: 判断所述已执行到所述预定的栅栏同步点的线程程序对应的处理器核的标识信息的个数是否小于预设阈值;所述预设阈值小于或等于所述芯片支持的最大线程数目; 当确定所述已执行到所述预定的栅栏同步点的线程程序对应的处理器核的标识信息的个数小于所述预设阈值时,执行所述将所述第一处理器核的标识信息添加至所述第一队列中。9.根据权利要求8所述的方法,其特征在于,还包括: 当确定所述已执行到所述预定的栅栏同步点的线程程序对应的处理器核的标识信息的个数不小于所述预设阈值时,将所述第一处理器核的标识信息保存至内存中。10.根据权利要求5所述的方法,其特征在于,所述第一队列还包括用于标识所有参与同步的线程程序中的每个线程程序是否执行到所述预定的栅栏同步点的比特序列,所述比特序列中的每个比特位与处理器核的标识信息存在映射关系; 在所述接收第一处理器核发送的栅栏同步消息之后,还包括: 将与所述第一处理器核的标识信息对应的比特位由第一标识更新为第二标识;所述第一标识用于标识由处理器核处理的线程程序未执行到所述预定的栅栏同步点,所述第二标识用于标识由处理器核处理的线程程序已执行到所述预定的栅栏同步点。11.根据权利要求5所述的方法,其特征在于,在所述根据所述栅栏标识将第一队列包含的计数字段的计数数值加I之后,还包括: 判断所述计数字段的计数数值是否等于所述参与同步的线程程序的个数; 当所述计数字段的计数数值等于所述参与同步的线程程序的个数时,获取所有参与同步的线程程序中每个参与同步的线程程序对应的处理器核的标识信息; 根据所述所有参与同步的线程程序中每个参与同步的线程程序对应的处理器核的标识信息,向所有参与同步的线程程序中每个参与同步的线程程序对应的处理器核发送确认消息;所述确认消息用于通知所述处理器核继续处理需自身处理的线程程序。12.根据权利要求7或10所述的方法,其特征在于,所述获取所有参与同步的线程程序中每个参与同步的线程程序对应的处理器核的标识信息,包括: 从所述第一队列中获取所述所有参与同步的线程程序中每个参与同步的线程程序对应的处理器核的标识信息。13.根据权利要求8或9所述的方法,其特征在于,所述获取所有参与同步的线程程序中每个参与同步的线程程序对应的处理器核的标识信息,包括: 从所述第一队列和所述内存中获取所述所有参与同步的线程程序中每个参与同步的线程程序对应的处理器核的标识信息。14.一种第一处理器核,其特征在于,应用于具有多核或众核处理器的芯片中,所述芯片上设置有至少两个栅栏同步装置,所述第一处理器核,包括: 第一确定单元,用于确定当前处理的线程程序执行到预定的栅栏同步点;所述第一处理器核为所述芯片包含的所有处理器核中的任意一个; 第二确定单元,用于根据所述预定的栅栏同步点对应的栅栏标识确定目标栅栏同步装置; 发送单元,用于向所述第二确定单元得到的所述目标栅栏同步装置发送栅栏同步消息;所述栅栏同步消息中包含所述栅栏标识以及参与同步的线程程序的个数。15.根据权利要求14所述的第一处理器核,其特征在于,所述第二确定单元,具体用于: 根据所述预定的栅栏同步点对应的栅栏标识,按照预设规则确定所述目标栅栏同步装置;所述预设规则包括栅栏标识与栅栏同步装置的映射关系。16.根据权利要求14所述的第一处理器核,其特征在于,还包括: 第一处理单元,用于在所述发送单元向所述目标栅栏同步装置发送栅栏同步消息之后,暂停对所述当前处理的线程程序的处理,进入等待状态。17.根据权利要求16所述的第一处理器核,其特征在于,还包括: 接收单元,用于在所述第一处理单元暂停对所述当前处理的线程程序的处理,进入等待状态之后,接收所述目标栅栏同步装置发送的确认消息;所述确认消息用于通知所述第一处理器核继续处理所述当前处理的线程程序; 第二处理单元,用于继续处理所述当前处理的线程程序。18.一种目标栅栏同步装置,其特征在于,应用于具有多核或众核处理器的芯片中,所述芯片上设置有至少两个栅栏同步装置,所述目标栅栏同步装置,包括: 接收单元,用于接收第一处理器核发送的栅栏同步消息;所述栅栏同步消息为所述第一处理器核在确定当前处理的线程程序执行到预定的栅栏同步点时发送的,所述第一处理器核为所述芯片包含的所有处理器核中的任意一个,所述栅栏同步消息中包含所述预定的栅栏同步点对应的栅栏标识以及参与同步的线程程序的个数;所述目标栅栏同步装置为用于处理所述预定的栅栏同步点对应的处理器核发送的栅栏同步消息的栅栏同步装置; 处理单元,用于根据所述接收单元的得到的所述栅栏同步消息中包含的所述预定的栅栏同步点对应的栅栏标识将第一队列包含的计数字段的计数数值加I ;所述第一队列为与所述栅栏标识对应的用于标识所有参与同步的线程程序状态的队列;所述第一队列包含所述栅栏标识、队列状态、所述计数字段。19.根据权利要求18所述的目标栅栏同步装置,其特征在于,还包括: 判断单元,用于在所述处理单元根据所述栅栏标识将第一队列包含的计数字段的计数数值加I之前,判断是否存在所述第一队列; 创建更新单元,用于当所述判断单元得到不存在所述第一队列时,创建所述第一队列,并将所述队列状态更新为使用状态。20.根据权利要求18所述的目标栅栏同步装置,其特征在于,所述第一队列还包含已执行到所述预定的栅栏同步点的线程程序对应的处理器核的标识信息; 所述目标栅栏同步装置,还包括: 添加单元,用于在所述接收单元接收第一处理器核发送的栅栏同步消息之后,将所述第一处理器核的标识信息添加至所述第一队列中。21.根据权利要求20所述的目标栅栏同步装置,其特征在于, 所述判断单元,还用于在所述添加单元将所述第一处理器核的标识信息添加至所述第一队列中之前,判断所述已执行到所述预定的栅栏同步点的线程程序对应的处理器核的标识信息的个数是否小于预设阈值;所述预设阈值小于或等于所述芯片支持的最大线程数目; 所述添加单元,具体用于当所述判断单元确定所述已执行到所述预定的栅栏同步点的线程程序对应的处理器核的标识信息的个数小于所述预设阈值时,将所述第一处理器核的标识信息添加至所述第一队列中。22.根据权利要求21所述的目标栅栏同步装置,其特征在于,还包括: 保存单元,用于当所述判断单元确定所述已执行到所述预定的栅栏同步点的线程程序对应的处理器核的标识信息的个数不小于所述预设阈值时,将所述第一处理器核的标识信息保存至内存中。23.根据权利要求18所述的目标栅栏同步装置,其特征在于,所述第一队列还包括用于标识所有参与同步的线程程序中的每个线程程序是否执行到所述预定的栅栏同步点的比特序列,所述比特序列中的每个比特位与处理器核的标识信息存在映射关系; 所述目标栅栏同步装置,还包括: 更新单元,用于在所述接收单元接收第一处理器核发送的栅栏同步消息之后,将与所述第一处理器核的标识信息对应的比特位由第一标识更新为第二标识;所述第一标识用于标识由处理器核处理的线程程序未执行到所述预定的栅栏同步点,所述第二标识用于标识由处理器核处理的线程程序已执行到所述预定的栅栏同步点。24.根据权利要求18所述的目标栅栏同步装置,其特征在于, 所述判断单元,还用于在所述处理单元根据所述栅栏标识将第一队列包含的计数字段的计数数值加I之后,判断所述计数字段的计数数值是否等于所述参与同步的线程程序的个数; 所述目标栅栏同步装置,还包括: 获取单元,用于当所述判断单元得到所述计数字段的计数数值等于所述参与同步的线程程序的个数时,获取所有参与同步的线程程序中每个参与同步的线程程序对应的处理器核的标识信息; 发送单元,用于根据所述获取单元得到的所述所有参与同步的线程程序中每个参与同步的线程程序对应的处理器核的标识信息,向所有参与同步的线程程序中每个参与同步的线程程序对应的处理器核发送确认消息;所述确认消息用于通知所述处理器核继续处理需自身处理的线程程序。25.根据权利要求20或23所述的目标栅栏同步装置,其特征在于,所述获取单元,具体用于: 从所述第一队列中获取所述所有参与同步的线程程序中每个参与同步的线程程序对应的处理器核的标识信息。26.根据权利要求21或22所述的目标栅栏同步装置,其特征在于,所述获取单元,具体用于: 从所述第一队列和所述内存中获取所述所有参与同步的线程程序中每个参与同步的线程程序对应的处理器核的标识信息。
【专利摘要】本发明公开了一种栅栏同步方法及设备,涉及通信领域,解决了在线程数目增多的情况下,由于访问瓶颈导致的具有多核或众核处理器的芯片处理性能下降的问题。具体方案为:第一处理器核确定当前处理的线程程序执行到预定的栅栏同步点;所述第一处理器核为芯片包含的所有处理器核中的任意一个;根据所述预定的栅栏同步点对应的栅栏标识确定目标栅栏同步装置;向所述目标栅栏同步装置发送栅栏同步消息;所述栅栏同步消息中包含所述栅栏标识以及参与同步的线程程序的个数。本发明用于栅栏同步的过程中。
【IPC分类】G06F9/52
【公开号】CN104932947
【申请号】CN201410098952
【发明人】徐卫志
【申请人】华为技术有限公司, 中国科学院计算技术研究所
【公开日】2015年9月23日
【申请日】2014年3月17日
当前第6页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1