一种内存共享方法、异构硬件、主机及异构系统技术方案

技术编号:12653684 阅读:62 留言:0更新日期:2016-01-06 11:38
本发明专利技术公开了一种内存共享方法,应用于异构硬件,异构硬件连接主机,本发明专利技术方法包括:异构硬件获取主机发送的主机的部分内存的内存地址;当异构硬件的内存的空闲容量低于预定容量时,异构硬件根据内存地址,将异构硬件的内存中使用频率低于预定使用频率的数据存储到部分内存。采用本发明专利技术提供的内存共享方法,能够将异构硬件的内存中使用频率低于预定使用频率的数据存储到主机的部分内存,减少使用频率低于预定使用频率的数据在异构硬件的内存中所占用的存储空间,从而增大异构硬件的空闲存储空间,为运行在异构硬件上的应用提供更多的内存空间。

【技术实现步骤摘要】

本专利技术涉及数据存储领域,具体涉及一种内存共享方法、异构硬件、主机及异构系统
技术介绍
现有的单节点异构系统包括主机和异构硬件,主机与硬件通过总线PC1-E互联。其中,异构硬件可以包括众核(Many Integrated Cores, MIC)扩展卡、通用图形处理器(Generate-purpose Graphic Processing Units, GPGPU)等,其作为扩展卡为主机(Host)提供更强大的矢量处理、浮点运算或多线程并行等能力。通常,在异构系统中,主机上的内存较大,而异构硬件上的内存较小。由于目前异构硬件上的内存在存储数据之后,其剩余的空闲存储空间较小,可能难以支持运行一些对内存要求较高的应用,甚至无法完整装载这些应用的数据。因此,如何增大异构硬件的内存的空闲存储空间是目前亟待解决的问题。
技术实现思路
本专利技术的目的在于提供一种内存共享方法、异构硬件、主机及异构系统。应用本专利技术方法,能够增大异构硬件的空闲存储空间。本专利技术第一方面提供一种内存共享方法,所述方法应用于异构硬件,所述异构硬件连接主机,所述方法包括:所述异构硬件获取所述主机发送的所述主机的部分内存的内存地址;当所述异构硬件的内存的空闲容量低于预定容量时,所述异构硬件根据所述内存地址,将所述异构硬件的内存中使用频率低于预定使用频率的数据存储到所述部分内存。结合本专利技术第一方面,在第一方面的第一种可能实现方式中,所述方法还包括:所述异构硬件根据所述内存地址,生成所述部分内存的状态表;所述状态表用于记录所述部分内存的内存页的状态;当所述异构硬件的内存的空闲容量低于预定容量时,所述异构硬件根据所述内存地址,将所述异构硬件的内存中使用频率低于预定使用频率的数据存储到所述异构硬件的部分内存,包括:当所述异构硬件的内存的空闲容量低于预定容量时,所述异构硬件在所述状态表中查找所述部分内存中处于空闲状态的内存页;所述异构硬件在查找到处于空闲状态的内存页之后,将使用频率低于预定使用频率的数据存储到处于空闲状态的内存页中。结合本专利技术第一方面的第一种可能实现方式,在第一方面的第二种可能实现方式中,在所述异构硬件将使用频率低于预定使用频率的数据存储到处于空闲状态的内存页中之后,所述方法还包括:当所述异构硬件需要读取所述部分内存中的目标内存页的数据时,判断所述目标内存页在所述状态表中是否处于被所述主机锁定的状态还是处于非锁定状态;若所述目标内存页处于非锁定状态,则所述异构硬件读取所述目标内存页的数据;若所述目标内存页处于被所述主机锁定的状态,则所述异构硬件向所述主机请求对所述目标内存页进行解锁,使得所述主机终止对所述目标内存页的操作,对所述目标内存页进行解锁,以及在对所述目标内存页进行解锁之后,向所述异构硬件通知所述目标内存页已解锁;所述异构硬件接收所述主机发送的所述目标内存页已解锁的通知,对所述目标内存页进行锁定,并在对所述目标内存页锁定之后,读取所述目标内存页中的数据。结合本专利技术第一方面的第一种可能实现方式,在第一方面的第三种可能实现方式中,在所述异构硬件根据所述内存地址,生成所述部分内存的状态表之后,所述方法还包括:所述异构硬件接收所述主机发送的查询所述部分内存中的目标内存页是处于被所述异构硬件锁定的状态还是处于非锁定状态的请求;所述异构硬件根据所述主机发送的请求,判断所述目标内存页是处于被所述异构硬件锁定的状态还是处于非锁定状态;若所述目标内存页处于非锁定状态,则所述异构硬件向所述主机通知所述目标内存页处于非锁定状态,使得所述主机在接收到所述目标内存页处于非锁定状态的通知之后,对所述目标内存页进行锁定,并在对所述目标内存页锁定之后,对所述目标内存页进行操作;若所述目标内存页处于被所述异构硬件锁定的状态,则所述异构硬件向所述主机通知所述目标内存页被所述异构硬件锁定,以使得所述主机确定不能对所述目标内存页进行操作。结合本专利技术第一方面的第三种可能实现方式,在第一方面的第四种可能实现方式中,在所述主机对所述目标内存页进行操作之后,所述方法还包括:所述异构硬件接收所述主机在完成对所述目标内存页进行的操作之后解除对所述目标内存页的锁定,并在解除对所述目标内存页的锁定之后发送的所述目标内存页已解锁的通知;所述异构硬件在接收到所述主机发送的所述目标内存页已解锁的通知之后,将所述目标内存页在所述状态表中的状态修改为非锁定状态。结合本专利技术第一方面或第一方面的第一至第四任意一种可能实现方式,在第一方面的第五种可能实现方式中,在所述异构硬件将所述异构硬件的内存中使用频率低于预定使用频率的数据存储到所述异构硬件的部分内存之后,所述方法还包括:所述异构硬件记录使用频率低于预定使用频率的数据在所述部分内存中的存储时间;当所述存储时间未达到阈值时,所述异构硬件禁止将所述使用频率低于预定使用频率的数据从所述部分内存读取到所述异构硬件的内存中。结合本专利技术第一方面的第二种可能实现方式,在第一方面的第六种可能实现方式中,在所述异构硬件读取所述目标内存页的数据之后,所述方法还包括:所述异构硬件记录读取的所述目标内存页的数据在所述异构硬件的内存中的存储时间;当所述存储时间未达到阈值时,所述异构硬件禁止将所述目标内存页的数据从所述异构硬件的内存存储到所述部分内存。本专利技术第二方面提供一种异构硬件,所述异构硬件连接主机,所述异构硬件包括:获取单元,用于获取所述主机发送的所述主机的部分内存的内存地址;存储单元,用于当所述异构硬件的内存的空闲容量低于预定容量时,根据所述内存地址,将所述异构硬件的内存中使用频率低于预定使用频率的数据存储到所述部分内存。结合本专利技术第二方面,在第二方面的第一种可能实现方式中,所述异构硬件还包括:生成单元和查询单元,所述生成单元用于根据所述获取单元获取的所述内存地址,生成所述部分内存的状态表;所述状态表用于记录所述部分内存的内存页的状态;所述查询单元用于当所述异构硬件的内存的空闲容量低于预定容量时,在所述状态表中查找所述部分内存中处于空闲状态的内存页;所述存储单元还用于在所述查询单元查找到处于空闲状态的内存页之后,将使用频率低于预定使用频率的数据存储到处于空闲状态的内存页中。结合本专利技术第二方面的第一种可能实现方式,在第二方面的第二种可能实现方式中,所述查询单元还用于在所述存储单元将使用频率低于预定使用频率的数据存储到处于空闲状态的内存页中之后,而且当所述异构硬件需要读取所述部分内存中的目标内存页的数据时,判断所述目标内存页在所述状态表中是否处于被所述主机锁定的状态还是处于非锁定状态;所述异构硬件还包括读取单元、请求单元和锁定单元,所述读取单元用于若所述查询单元判断所述目标内存页处于非锁定状态,则读取所述目标内存页的数据;所述请求单元用于若所述查询单元判断所述目标内存页处于被所述主机锁定的状态,则向所述主机请求对所述目标内存页进行解锁,使得所述主机终止对所述目标内存页的操作,对所述目标内存页进行解锁,以及在对所述目标内存页进行解锁之后,向所述异构硬件通知所述目标内存页已解锁;所述获取单元还用于接收所述主机发送的所述目标内存页已解锁的通知;所述锁定单元用于在所述获取单元接收到所述主机发送的所述目标内存页已解锁的通知,对所述目标内存页进行锁定;所述读取单元本文档来自技高网...

【技术保护点】
一种内存共享方法,其特征在于,应用于异构硬件,所述异构硬件连接主机,所述方法包括:所述异构硬件获取所述主机发送的所述主机的部分内存的内存地址;当所述异构硬件的内存的空闲容量低于预定容量时,所述异构硬件根据所述内存地址,将所述异构硬件的内存中使用频率低于预定使用频率的数据存储到所述部分内存。

【技术特征摘要】

【专利技术属性】
技术研发人员:解壁伟高云伟詹剑锋张立新
申请(专利权)人:华为技术有限公司中国科学院计算技术研究所
类型:发明
国别省市:广东;44

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

1