Cache一致性协议派生处理方法技术

技术编号:8323363 阅读:229 留言:0更新日期:2013-02-14 00:36
本发明专利技术提供了一种Cache一致性协议派生处理方法。针对每一个一次请求的一致性处理流程依次执行目录访问以及派生请求判断;在目录访问中,查询一次请求地址对应的数据在CPU内部是否有比主存更新的副本,如有,则一次请求访问最新副本;否则判定主存中数据是最新的,一次请求直接访问主存;而且,对于CPU内部有最新副本的情况,生成作为所述一次请求的派生请求的二次请求,所述二次请求或将最新副本回写主存,并且将该最新副本置为无效,或将CPU内最新副本置为无效;在派生请求判断中,判断一次请求是否有派生请求,如果一次请求有派生请求,则使该一次请求不能从一次请求队列释放。

【技术实现步骤摘要】

本专利技术涉及计算
,更具体地说,本专利技术涉及一种Cache —致性协议派生处理方法。
技术介绍
随着半导体制造工艺的飞速发展,单核处理器的主频已经逐渐逼近极限,为了进一步提高处理器的运算速度,人们将多个处理器核集成在一个芯片上形成片上多处理器 (Chip Multi 一 Processor, CMP)。在CMP中,多个处理器核心对单一内存空间的共享使得处理器和主存储器之间的速度差距的矛盾更加突出,因此CMP设计必须采用多级高速缓存(Cache),通过层次化的存储结构来缓解这一矛盾。Cache—致性协议作为多核处理器中的重要组成部分,直接影响到多核处理器的正确性设计和性能。Cache—致性协议是一种非常复杂的多方协议,其复杂度不仅体现在协议的设计上,也体现在协议的实现上。协议实现上的难度主要是如何以较小的硬件复杂度完成一个Cache 一致性协议单流程的处理,并保证访存性能。
技术实现思路
本专利技术所要解决的技术问题是针对现有技术中存在上述缺陷,提供一种简化了一致性协议处理逻辑的Cache —致性协议派生处理方法。根据本专利技术,提供了一种Cache —致性协议派生处理方法,其包括针对每一个一次请求的一致性处理流程依次执行目录访问以及派生请求判断;其中,在目录访问中,查询一次请求地址对应的数据在CPU内部是否有比主存更新的副本,如有,则一次请求访问最新副本;否则判定主存中数据是最新的,一次请求直接访问主存;而且,对于CPU内部有最新副本的情况,生成作为所述一次请求的派生请求的二次请求,所述二次请求将最新副本回写主存,并且将该最新副本置为无效,或者直接将CPU中的副本置为无效;其中,在派生请求判断中,判断一次请求是否有派生请求,如果一次请求有派生请求,则使该一次请求不能从一次请求队列释放。优选地,还针对每一个一次请求的一致性处理流程执行地址冲突判断;其中,在地址冲突判断中,比较一次请求的地址和目前尚未完成的所有请求地址,如有相同则视为有地址冲突,记录地址冲突信息,并使所述一次请求等待下一次处理。优选地,尚未完成的所有请求地址包括一次请求队列、访存请求队列以及其他悬挂队列中所有有效条目的地址信息,所述地址信息中包括了未完成的派生请求的请求地址。优选地,还针对每一个一次请求的一致性处理流程执行结构冲突判断;其中,在结构冲突判断中,不同的一次请求的处理需要不同的队列资源,根据目录访问的查询结果确定本次请求处理需要的队列资源,判断所需队列资源是否可得。如果本次请求处理需要的队列资源可用,则判定该一次请求无结构冲突;如果本次请求处理需要的队列资源不可用,则判定该一次请求存在结构冲突,该一次请求需要等待下一次处理。优选地,对于没有派生请求的一次请求,如果所述一次请求若无地址冲突和结构冲突,则从一次请求队列释放。优选地,还针对每一个一次请求的一致性处理流程执行可发射判断;其中,在可发射判断中,判断当前的一次请求是否可以发射,如果判断可以发射则继续处理,如果判断不可以发射则使一次请求处于等待处理的状态。在本专利技术的Cache —致性协议派生处理方法中,对一致性的处理,采用请求派生处理的办法,即一个请求可能多次发射,多次经过一致性流水线处理,每次发射完成对部分一致性协议的处理,复杂的协议处理流程要经过多次发射多次处理,才完成对整个流程的处理。这样就将一个复杂的协议处理流程进行了分解,简化了一致性协议处理逻辑。本专利技术上述实施例的一致性协议处理逻辑,采用流水处理技术,对一致性请求进行多次处理,不·会成为访存带宽的瓶颈,不会损失访存性能。附图说明结合附图,并通过参考下面的详细描述,将会更容易地对本专利技术有更完整的理解并且更容易地理解其伴随的优点和特征,其中图I示意性地示出了根据本专利技术实施例的Cache —致性协议处理部件的结构图。图2示意性地示出了根据本专利技术实施例的Cache —致性协议一次请求处理的流程图。图3示意性地示出了根据本专利技术实施例的单次访存请求的处理流程的具体示例。需要说明的是,附图用于说明本专利技术,而非限制本专利技术。注意,表示结构的附图可能并非按比例绘制。并且,附图中,相同或者类似的元件标有相同或者类似的标号。具体实施例方式为了使本专利技术的内容更加清楚和易懂,下面结合具体实施例和附图对本专利技术的内容进行详细描述。图I示意性地示出了根据本专利技术实施例的Cache —致性协议处理部件的结构图。如图I所示,根据本专利技术实施例的Cache —致性协议处理流水线结构是基于目录I的一致性处理协议,目录I是CPU内部Cache中所有数据块的分布与修改状态的副本,是对所有一次请求进行协议处理的依据。进入一致性处理之前的所有一次请求在一次请求队列3中进行缓存和排序。进入一致性处理流水线2的一次请求依据目录状态按照协议规则可能生成发往CPU的二次请求、发往主存的访存请求、返回的响应,它们存入相应的二次请求队列4、访存请求队列5、响应队列6。CPU对每一个二次请求的处理将会返回一个回答,依次缓存在回答队列7中。一个回答可能会引起一个访存请求或者一个响应。 在根据本专利技术实施例的Cache —致性协议派生处理方法中,对每一个一次请求的一致性处理流程执行地址冲突判断、目录访问、结构冲突判断、以及派生请求判断。在地址冲突判断中,比较一次请求的地址和目前尚未完成的所有请求地址,如有相同则视为有地址冲突,需要记录地址冲突信息,并使所述一次请求等待下一次处理。其中,尚未完成的所有请求地址包括一次请求队列3、访存请求队列5、及其他悬挂队列中所有有效条目的地址信息(其中包括了未完成的派生请求的请求地址)。在目录访问中,查询一次请求地址对应的数据在CPU内部是否有比主存更新的副本,如有,则一次请求访问最新副本;否则判定主存中数据是最新的,一次请求直接访问主存。对于CPU内部有最新副本的情况,需要生成一个二次请求将最新副本回写主存,并且将该最新副本置为 无效,或者直接将CPU中的副本置为无效;这个二次请求虽然是由该一次请求生成的,但是生成后的处理过程和该一次请求无关,称其为派生请求。在结构冲突判断中,不同的一次请求的处理需要不同的队列资源,根据目录访问的查询结果确定本次请求处理需要的队列资源,判断所需队列资源是否可得。如果本次请求处理需要的队列资源可用,则判定该一次请求无结构冲突;如果本次请求处理需要的队列资源不可用,则判定该一次请求存在结构冲突,该一次请求需要等待下一次处理。没有地址冲突、且没有结构冲突的一次请求才能被处理。在派生请求判断中,判断一次请求是否有派生请求,如果一次请求有派生请求,则使该一次请求不能从一次请求队列释放。也就是说,有派生请求的一次请求本次处理不能从一次请求队列释放,但是,待这个派生请求处理完毕后,原来的一次请求会再次通过一次性处理流程,此时一次请求一定不会有派生请求,此时若无地址冲突和结构冲突就能得到完全的处理,从一次请求队列3释放。具体地说,图2示意性地示出了根据本专利技术实施例的Cache —致性协议一次请求处理的流程图。如图2所示,根据本专利技术实施例的Cache —致性协议一次请求处理包括一次请求等待处理步骤SI,此时一次请求等待处理,例如在经过预定时间之后进入可发射判断步骤S2 ;可发射判断步骤S2,用于判断当前的一次请求是否可以发射,如本文档来自技高网...

【技术保护点】
一种Cache一致性协议派生处理方法,其特征在于包括:针对每一个一次请求的一致性处理流程依次执行目录访问以及派生请求判断;其中,在目录访问中,查询一次请求地址对应的数据在CPU内部是否有比主存更新的副本,如有,则一次请求访问最新副本;否则判定主存中数据是最新的,一次请求直接访问主存;而且,对于CPU内部有最新副本的情况,生成作为所述一次请求的派生请求的二次请求,所述二次请求将最新副本回写主存,并且将该最新副本置为无效,或者直接将CPU中的最新副本置无效;其中,在派生请求判断中,其中判断一次请求是否有派生请求,如果一次请求有派生请求,则使该一次请求不能从一次请求队列释放。

【技术特征摘要】
1.一种Cache —致性协议派生处理方法,其特征在于包括 针对每一个一次请求的一致性处理流程依次执行目录访问以及派生请求判断; 其中,在目录访问中,查询一次请求地址对应的数据在CPU内部是否有比主存更新的副本,如有,则一次请求访问最新副本;否则判定主存中数据是最新的,一次请求直接访问主存;而且,对于CPU内部有最新副本的情况,生成作为所述一次请求的派生请求的二次请求,所述二次请求将最新副本回写主存,并且将该最新副本置为无效,或者直接将CPU中的最新副本置无效; 其中,在派生请求判断中,其中判断一次请求是否有派生请求,如果一次请求有派生请求,则使该一次请求不能从一次请求队列释放。2.根据权利要求I所述的Cache—致性协议派生处理方法,其特征在于,还针对每一个一次请求的一致性处理流程执行地址冲突判断;其中,在地址冲突判断中,比较一次请求的地址和目前尚未完成的所有请求地址,如有相同则视为有地址冲突,记录地址冲突信息,并使所述一次请求等待下一次处理。3.根据权利要求3所述的Cache—致性协议派生处理方法,其特征在于,尚未完成的所有请求地址包括一次...

【专利技术属性】
技术研发人员:郑卫华王梦嘉张清波许勇郑方高红光
申请(专利权)人:无锡江南计算技术研究所
类型:发明
国别省市:

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

1