一种用于数据处理系统的高速缓存访问方法技术方案

技术编号:19098509 阅读:19 留言:0更新日期:2018-10-03 02:38
提供了一种用于数据处理系统的高速缓存访问方法,所述数据处理系统包括第一CPU内核、第二CPU内核与高速缓存,所述方法包括:第一操作,第一CPU内核请求从高速缓存中读取第一数据,高速缓存向第一CPU内核提供第一数据,所述高速缓存存储器更新与所述第一数据相关联的状态来指示所述第一数据被所述第一CPU内核读取;第二操作,第二CPU内核更新所述第一数据时,查询高速缓存中与所述第一数据相关联的状态,基于查询结果,所述第二CPU内核向所述高速缓存更新所述第一数据,所述高速缓存存储器向所述第一CPU内核提供更新后的第一数据,所述高速缓存存储器更新与所述第一数据相关联的状态来指示所述第一数据被所述第二CPU内核更新。

【技术实现步骤摘要】
一种用于数据处理系统的高速缓存访问方法
本申请涉及高速缓存访问方法。具体地,本申请涉及共享高速缓存的多核处理器系统中的高速缓存一致性处理方法。
技术介绍
在多CPU内核的数据处理系统中,每个CPU内核都有自己独占高速缓存,一般成为L1高速缓存。而多个CPU内核还有大的共享高速缓存,一般成为L2高速缓存。所有的CPU内核都可以访问共享高速缓存。在这种多核CPU结构中,如果一个CPU内核希望更新共享高速缓存中的数据,其它访问该数据的CPU内核都需要知道该数据被更新。现有技术中,在共享高速缓存中提供目录,用于记录哪个CPU内核拷贝了哪些数据。然而,现有技术中,CPU内核对本地高速缓存的每次更新操作都伴随着对共享高速缓存的更新,以及对使用该数据其他CPU内核的本地高速缓存的更新。并且目录占据了很多存储空间。随着CPU内核数量的增加,传统的目录结构占据的存储空间也迅速增加,从而增加了高速缓存一致性处理的开销,也显著增加了功耗。
技术实现思路
根据本申请的实施例,提供了用于数据处理系统的高速缓存访问方法。根据本申请的第一方面,提供了根据本申请第一方面的第一用于数据处理系统的高速缓存访问方法,所述数据处理系统包括第一CPU内核、第二CPU内核与高速缓存,所述方法包括:第一操作,第一CPU内核请求从高速缓存中读取第一数据,高速缓存向第一CPU内核提供第一数据,所述高速缓存存储器更新与所述第一数据相关联的状态来指示所述第一数据被所述第一CPU内核读取;第二操作,第二CPU内核更新所述第一数据时,查询高速缓存中与所述第一数据相关联的状态,基于查询结果,所述第二CPU内核向所述高速缓存更新所述第一数据,所述高速缓存存储器向所述第一CPU内核提供更新后的第一数据,所述高速缓存存储器更新与所述第一数据相关联的状态来指示所述第一数据被所述第二CPU内核更新。根据本申请的第二方面,提供了根据本申请第二方面的第一用于数据处理系统的高速缓存访问方法,所述数据处理系统包括第一CPU内核、第二CPU内核与高速缓存,第一CPU内核包括第一计数器,第二CPU内核包括第二计数器,所述方法包括:第一操作,第一CPU内核请求从高速缓存中读取第一数据,高速缓存向第一CPU内核提供第一数据,第一CPU内核指示高速缓存记录第一计数值,第一计数值与第一数据相关联;所述第一计数值大于执行第一操作时所述第一计数器的值;所述高速缓存存储器更新与所述第一数据相关联的状态来指示所述第一数据被所述第一CPU内核读取;第二CPU内核请求更新所述第一数据时,查询高速缓存中与所述第一数据相关联的状态,基于查询结果,读取所述第一计数值,在第二CPU内核的第二计数器的设置第二值,所述第二值大于所述第一计数值;所述高速缓存存储器向所述第二CPU内核提供所述第一数据,所述高速缓存存储器更新与所述第一数据相关联的状态来指示所述第一数据被所述第二CPU内核更新,所述第二CPU内核保存所述第一数据的副本,并更新所述第一数据的副本;所述第一CPU内核执行预定处理,并相应递增所述第一计数器;所述第二CPU内核执行预定处理,并相应递增所述第一二计数器;第二操作,所述第一CPU内核请求从高速缓存中读取第一数据,所述第一CPU内核查询高速缓存中与所述第一数据相关联的状态,基于所述状态指示所述第一数据被所述第二CPU内核更新,高速缓存向第二CPU内核请求第二CPU内核的第二计数器的值,基于所述第二计数器的值大于第一计数值,所述高速缓存请求第二CPU内核向高速缓存更新所述第一数据;所述高速缓存向所述第一CPU内核提供更新后的第一数据,第一CPU内核指示高速缓存将第一高速缓存计数器设置为第三值,第三值大于所述第二计数器的值与执行第二操作时所述第一计数器的值的任何一个。根据本申请第二方面的第一用于数据处理系统的高速缓存访问方法,提供了根据本申请第二方面的第二用于数据处理系统的高速缓存访问方法,还包括:所述第一CPU内核依据时钟递增所述第一计数器,所述第二CPU内核依据时钟递增所述第二计数器。根据本申请第二方面的第一用于数据处理系统的高速缓存访问方法,提供了根据本申请第二方面的第三用于数据处理系统的高速缓存访问方法,还包括:所述第一CPU内核依据所执行的指令递增所述第一计数器,所述第二CPU内核依据所执行的指令递增所述第二计数器。根据本申请第二方面的第一至第三用于数据处理系统的高速缓存访问方法,提供了根据本申请第二方面的第四用于数据处理系统的高速缓存访问方法,其中所述数据处理系统还包括第三CPU内核,第三CPU内核包括第三计数器,所述方法还包括:第三操作,所述第三CPU内核请求从高速缓存中读取第一数据,所述第三CPU内核查询高速缓存中与所述第一数据相关联的状态,若所述状态指示所述第一数据被所述第一CPU内核读取,高速缓存向第三CPU内核提供第一数据,第三CPU内核指示高速缓存记录第三计数值,第三计数值与第一数据相关联;所述第三计数值大于执行第三操作时所述第三计数器的值;所述高速缓存存储器更新与所述第一数据相关联的状态来指示所述第一数据被所述第三CPU内核读取。根据本申请第二方面的第一至第三用于数据处理系统的高速缓存访问方法,提供了根据本申请第二方面的第五用于数据处理系统的高速缓存访问方法,其中所述数据处理系统还包括第三CPU内核,第三CPU内核包括第三计数器,所述方法还包括:第四操作,所述第三CPU内核请求从高速缓存中读取第一数据,所述第三CPU内核查询高速缓存中与所述第一数据相关联的状态,若所述状态指示所述第一数据被所述第二CPU内核更新,高速缓存向第二CPU内核请求第二CPU内核的第二计数器的值,基于所述第二计数器的值大于第一计数值,所述高速缓存请求第二CPU内核向高速缓存更新所述第一数据;所述高速缓存向所述第三CPU内核提供更新后的第一数据,第三CPU内核指示高速缓存将第一高速缓存计数器设置为第四值,第四值大于所述第二计数器的值与执行第四操作时所述第三计数器的值的任何一个。附图说明图1是根据本申请实施的数据处理系统的结构框图;图2是根据本申请实施例的高速缓存条目的结构示意图;以及图3是根据本申请实施例的高速缓存访问方法的流程图。具体实施方式参看图1,图1是根据本申请实施的数据处理系统的结构框图。在图1的实施例中,数据处理系统包括4个CPU内核,CPU内核1、CPU内核2、CPU内核3与CPU内核4。每个CPU内核中包括计数器。CPU内核1中包括计数器1,CPU内核2中包括计数器2,CPU内核3中包括计数器3,CPU内核4中包括计数器4。图1的数据处理系统还包括共享高速缓存。CPU内核1、CPU内核2、CPU内核3与CPU内核4都可以访问共享高速缓存。在一个实施例中,CPU内核中的计数器可由运行在CPU内核中的程序设置。计数器的值指示程序执行的进展。在另一个实施例中,CPU内核中的计数器指示CPU内核中程序执行的时间或者CPU内核的时钟计数。图1的共享高速缓存中包括多个条目。在图2中展示了根据本申请实施例的高速缓存条目的结构示意图。每个条目包括多个区域。在一个例子中,条目包括标签区域、数据区域、标记区域、状态区域、所有者区域以及计数区域。标签区域、数据区域与标记区域是高速缓存条目的传统结构。标本文档来自技高网...

【技术保护点】
1.一种用于数据处理系统的高速缓存访问方法,所述数据处理系统包括第一CPU内核、第二CPU内核与高速缓存,所述方法包括:第一操作,第一CPU内核请求从高速缓存中读取第一数据,高速缓存向第一CPU内核提供第一数据,所述高速缓存存储器更新与所述第一数据相关联的状态来指示所述第一数据被所述第一CPU内核读取。

【技术特征摘要】
1.一种用于数据处理系统的高速缓存访问方法,所述数据处理系统包括第一CPU内核、第二CPU内核与高速缓存,所述方法包括:第一操作,第一CPU内核请求从高速缓存中读取第一数据,高速缓存向第一CPU内核提供第一数据,所述高速缓存存储器更新与所述第一数据相关联的状态来指示所述第一数据被所述第一CPU内核读取。2.一种用于数据处理系统的高速缓存访问方法,所述数据处理系统包括第一CPU内核、第二CPU内核与高速缓存,第一CPU内核包括第一计数器,第二CPU内核包括第二计数器,所述方法包括:第一操作,第一CPU内核请求从高速缓存中读取第一数据,高速缓存向第一CPU内核提供第一数据,第一CPU内核指示高速缓存记录第一计数值,第一计数值与第一数据相关联;所述第一计数值大于执行第一操作时所述第一计数器的值;所述高速缓存存储器更新与所述第一数据相关联的状态来指示所述第一数据被所述第一CPU内核读取;第二CPU内核请求更新所述第一数据时,查询高速缓存中与所述第一数据相关联的状态,基于查询结果,读取所述第一计数值,在第二CPU内核的第二计数器的设置第二值,所述第二值大于所述第一计数值;所述高速缓存存储器向所述第二CPU内核提供所述第一数据,所述高速缓存存储器更新与所述第一数据相关联的状态来指示所述第一数据被所述第二CPU内核更新,所述第二CPU内核保存所述第一数据的副本,并更新所述第一数据的副本;所述第一CPU内核执行预定处理,并相应递增所述第一计数器;所述第二CPU内核执行预定处理,并相应递增所述第一二计数器;第二操作,所述第一CPU内核请求从高速缓存中读取第一数据,所述第一CPU内核查询高速缓存中与所述第一数据相关联的状态,基于所述状态指示所述第一数据被所述第二CPU内核更新,高速缓存向第二CPU内核请求第二CPU内核的第二计数器的值,基于所述第二计数器的值大于第一计数值,所述高速缓存请求第二CPU内核向高速缓存更新所述第一数据;所述高...

【专利技术属性】
技术研发人员:苑贵全
申请(专利权)人:张家口浩扬科技有限公司
类型:发明
国别省市:河北,13

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

1