缓存替换的方法、缓存控制器和处理器技术

技术编号:12398317 阅读:168 留言:0更新日期:2015-11-26 03:59
本发明专利技术实施例提供一种缓存替换的方法、缓存控制器和处理器,所述方法包括:缓存控制器通过确定待替换缓存行的关联缓存池,关联缓存池中的各关联缓存行与待替换缓存行属于同一内存行,并且进一步根据关联缓存行的访问信息从关联缓存池中确定待写回缓存行,将待替换缓存行以及待写回缓存行中的数据一起写入内存。由于待替换缓存行和待写回缓存行属于同一内存行,因此,能够提高行缓存区的命中率,从而提高内存访问性能,另外,缓存控制器进一步根据关联缓存行的访问信息从关联缓存池中确定待写回缓存行,只将关联缓存池中的待写回缓存行写回内存,因此,能够减少内存的写次数,提高内存的使用寿命。

【技术实现步骤摘要】

本专利技术实施例涉及通信技术,尤其涉及一种缓存替换的方法、缓存控制器和处理器
技术介绍
随着大数据应用的发展,对内存的容量和访问速度有了越来越高的要求,常用的动态随机访问存储器(Dynamic Random-Access Memory,简称DRAM)已不能满足要求。随之诞生的新型的非易失性存储器(Non-Volatile Memory,简称NVM)以其大容量、低功耗等优势有望取代DRAM成为计算机系统中的内存系统。然而,现有NVM的读写延迟较DRAM高,且写次数有限。NVM内部的读写机制与DRAM类似,NVM有一个行缓冲区(Row buffer)用来保存最近一次访问的内存行中的数据,NVM访问的延迟依赖于行缓冲区是否命中。若连续的两个内存访问请求的地址属于同一内存行,则行缓冲区命中,当行缓冲区命中时,后一次的内存访问请求不需要从内存阵列中读取数据,而是直接从行缓冲区中读取数据,减少了内存访问的延迟。由于NVM的读写延迟较高,若行缓冲区不命中,则需要从NVM阵列中读取数据,对NVM阵列的访问延迟大于对DRAM阵列的访问延迟,但二者对行缓冲区的读写延迟基本相同,因此,对于NVM来说提高行缓冲区的命中率更能显著提高内存访问效率。现有机制中,受缓存(cache)替换策略的影响,导致发往内存的请求地址较为随机,因此,行缓冲区命中率较差,影响内存访问性能。
技术实现思路
本专利技术实施例提供一种缓存替换的方法、缓存控制器和处理器,能够提高行缓存区的命中率,从而提闻内存访问性能,并且能够减少内存的与次数,提闻内存的使用寿命。本专利技术第一方面提供一种缓存替换的方法,包括:缓存控制器接收内存访问请求,根据所述内存访问请求的地址查找缓存,若在所述缓存中没有查找到所述内存访问请求的地址,则从所述缓存中确定待替换缓存行;若所述待替换缓存行为脏缓存行,则所述缓存控制器根据所述待替换缓存行的地址确定关联缓存池,所述关联缓存池包括至少一个关联缓存行,所述关联缓存行与所述待替换缓存行属于同一内存行,所述关联缓存行位于所述缓存中,所述关联缓存行为脏缓存行,所述脏缓存行的数据被修改过;所述缓存控制器根据所述关联缓存行的访问信息从所述关联缓存池中确定待写回缓存行;所述缓存控制器将所述待替换缓存行以及所述待写回缓存行的地址和数据发送给内存控制器,以使所述内存控制器根据所述待替换缓存行以及所述待写回缓存行的地址将所述待替换缓存行以及所述待写回缓存行的数据写入内存,并将所述内存访问请求所需的数据从所述内存中读入所述待替换缓存行的位置。结合本专利技术第一方面,在本专利技术第一方面的第一种可能的实现方式中,所述缓存控制器根据所述关联缓存行的访问信息从所述关联缓存池中确定待写回缓存行,包括:所述缓存控制器根据所述关联缓存行的访问次数和/或写回标示从所述关联缓存池中确定待写回缓存行,所述写回标示用于表示所述关联缓存行是否需要写回内存。结合本专利技术第一方面的第一种可能的实现方式,在本专利技术第一方面的第二种可能的实现方式中,所述缓存控制器根据所述关联缓存行的访问次数从所述关联缓存池中确定待写回缓存行,包括:所述缓存控制器确定所述关联缓存行是否属于最近最少访问缓存链表的最后M个缓存行,所述最近最少访问缓存链表用于根据各缓存行在预设时间内的访问次数进行排序,所述最近最少访问缓存链表的最后M个缓存行为所述预设时间内访问次数最少的缓存行,M为正整数;若所述关联缓存行属于所述最近最少访问缓存链表的最后M个缓存行,则所述缓存控制器确定所述关联缓存行为所述待写回缓存行。结合本专利技术第一方面的第一种可能的实现方式,在本专利技术第一方面的第三种可能的实现方式中,所述缓存控制器根据所述关联缓存行的写回标示从所述关联缓存池中确定待写回缓存行,包括:若所述关联缓存行的写回标示表示所述关联缓存行需要写回内存,则所述缓存控制器确定所述关联缓存行为待写回缓存行。结合本专利技术第一方面的第一种可能的实现方式,在本专利技术第一方面的第四种可能的实现方式中,所述缓存控制器根据所述关联缓存行的访问次数和写回标示从所述关联缓存池中确定待写回缓存行,包括:所述缓存控制器根据所述关联缓存行的访问次数判断所述关联缓存行是否属于最近最少访问缓存链表的最后M个缓存行,所述最近最少访问缓存链表用于根据各缓存行在预设时间内的访问次数进行排序,所述最近最少访问缓存链表的最后M个缓存行为所述预设时间内访问次数最少的缓存行,M为正整数;若所述关联缓存行属于所述最近最少访问缓存链表的最后M个缓存行,并且所述关联缓存行的写回标示表示所述关联缓存行需要写回内存,则所述缓存控制器确定所述关联缓存行为待写回缓存行。结合本专利技术第一方面的第一种至第四种可能的实现方式,在本专利技术第一方面的第五种可能的实现方式中,在所述缓存控制器将所述待写回缓存行对应的数据写回所述内存后,所述方法还包括:所述缓存控制器将所述待写回缓存行的写回标示的值置为表示不需要写回内存。结合本专利技术第一方面的第一种至第五种可能的实现方式,在本专利技术第一方面的第六种可能的实现方式中,所述方法还包括:所述缓存控制器将每个缓存行的写回标示的值周期性的置为表示需要写回内存。结合本专利技术第一方面的第一种至第五种可能的实现方式,在本专利技术第一方面的第七种可能的实现方式中,所述写回标示为计数器的值,若所述计数器的值不小于写回阈值,则所述写回标示用于表示所述关联缓存行需要写入内存;若所述计数器的值小于所述写回阈值,则所述写回标示用于表示所述关联缓存行不需要写入内存。结合本专利技术第一方面的第七种可能的实现方式,在本专利技术第一方面的第八种可能的实现方式中,当所述写回标示为计数器的值时,所述缓存控制器将所述待写回缓存行的写回标示的值置为表示不需要写回内存,包括:所述缓存控制器将所述计数器的值置为零。结合本专利技术第一方面的第七种可能的实现方式,在本专利技术第一方面的第九种可能的实现方式中,若所述计数器的值小于所述写回阈值,所述方法还包括:所述缓存控制器将所述计数器的值加一。结合本专利技术第一方面的第一种至第九种可能的实现方式,在本专利技术第一方面的第十种可能的实现方式中,所述缓存控制器根据所述待替换缓存行的地址确定关联缓存池,包括:所述缓存控制器根据所述待替换缓存行的地址确定备用缓存行,所述备用缓存行与所述待替换缓存行属于同一内存行;所述缓存控制器判断所述备用缓存行是否位于所述缓存中;若所述备用缓存行位于所述缓存中,则所述缓存控制器判断所述备用缓存行是否为脏缓存行;若所述备用缓存行为脏缓存行,则所述缓存控制器确定所述备用缓存行为关联缓存行。结合本专利技术第一方面的第十种可能的实现方式,在本专利技术第一方面的第i^一种可能的实现方式中,所述缓存控制器根据所述待替换缓存行的地址确定备用缓存行,包括:所述缓存控制器将所述待替换缓存行的地址与第一掩码相与得到所述待替换缓存行的行地址;所述缓存控制器将所述行地址与第二掩码相与得到所述备用缓存行,所述第二掩码的初始值为零,每次将所述行地址与所述第二掩码相与后,对所述第二掩码的值加一个缓存行的大小,直到得到所有的备用缓存行。本专利技术第二方面提供一种缓存控制器,包括:接收模块,用户接收内存访问请求;查找模块,用于根据所述内存访问请求的地址查找缓存;第一确定模块,用于若所述查找模块在所述缓存中没有查找本文档来自技高网...
缓存替换的方法、缓存控制器和处理器

【技术保护点】
一种缓存替换的方法,其特征在于,包括:缓存控制器接收内存访问请求,根据所述内存访问请求的地址查找缓存,若在所述缓存中没有查找到所述内存访问请求的地址,则从所述缓存中确定待替换缓存行;若所述待替换缓存行为脏缓存行,则所述缓存控制器根据所述待替换缓存行的地址确定关联缓存池,所述关联缓存池包括至少一个关联缓存行,所述关联缓存行与所述待替换缓存行属于同一内存行,所述关联缓存行位于所述缓存中,所述关联缓存行为脏缓存行,所述脏缓存行的数据被修改过;所述缓存控制器根据所述关联缓存行的访问信息从所述关联缓存池中确定待写回缓存行;所述缓存控制器将所述待替换缓存行以及所述待写回缓存行的地址和数据发送给内存控制器,以使所述内存控制器根据所述待替换缓存行以及所述待写回缓存行的地址将所述待替换缓存行以及所述待写回缓存行的数据写入内存,并将所述内存访问请求所需的数据从所述内存中读入所述待替换缓存行的位置。

【技术特征摘要】

【专利技术属性】
技术研发人员:张立新魏巍熊劲蒋德钧
申请(专利权)人:华为技术有限公司中国科学院计算技术研究所
类型:发明
国别省市:广东;44

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

1