访问缓存的方法和装置的制造方法

文档序号:9910947阅读:365来源:国知局
访问缓存的方法和装置的制造方法
【技术领域】
[0001]本发明涉及计算机领域,尤其涉及计算机领域中访问缓存的方法和装置。
【背景技术】
[0002]在现代计算机系统中,中央处理单元(CI3U,Central Processing Unit)通过总线与内存连接,CPU访问内存数据时受到总线速率的限制,存在性能瓶颈。所以CPU通过缓存(cache)提高获取数据的效率。缓存用于保存CPU频繁使用的数据。当CPU要访问内存中的数据时,首先查询缓存中是否有数据以及数据是否过期,如果数据未过期则从缓存中读出数据。否则CPU从内存中读出数据并刷新到缓存中;由于程序运行时对内存的访问会程序局部性特征,即一段时间内对相同数据可能有多次读写,所以使用缓存后可以大大加快处理器访问数据的速度。
[0003]对于多核计算机系统,目前已存在一级缓存、二级缓存以及三级缓存。其中三级缓存由一个物理CPU上的所有核共享,所以当多个核同时访问三级缓存时可能存在使用竞争的情况。例如,在64核系统中,每个核访问存储在三级缓存中的数据时都要和其他63个核进行竞争。当应用程序在某个核上运行时,其访问的数据会被CPU放入三级缓存中。如果此数据的访问频率平均在64个核上并不高,有可能被其它核访问的数据替换掉。程序再次访问此数据需要CPU重新从内存中读取,造成数据反复被读取的情况。随着CPU核数的不断增加,各个核之间的缓存冲突或竞争几率也不断增加。

【发明内容】

[0004]本发明提供了一种访问缓存的方法和装置,以减少多核CPU访问缓存时的使用竞争。
[0005]第一方面,本发明提供了一种访问缓存的方法,该方法包括:接收应用程序的数据访问请求,该应用程序运行于中央处理单元CPU的目标核中,该CPU为包括多核的CPU,该目标核为该多核之一,该数据访问请求包含待访问的目标数据的内存地址;根据该数据访问请求,查询该多核共享的缓存中是否存在该目标数据,其中,该缓存包括该目标核对应的独占地址空间,该独占地址空间用于存储该目标核从内存中读取的数据,且该多核中的除该目标核之外的其它核读取的数据不能替换该目标核存入该独占地址空间中的数据;当该缓存中存储有该目标数据时,从该缓存中读取该目标数据;当该缓存中未存储该目标数据时,根据该内存地址,从该内存中读取该目标数据,并将该目标数据存入该独占地址空间之中。
[0006]在本发明中,CPU中的目标核处理应用程序的数据访问请求时,在多核共享的缓存中存在独占地址空间,独占地址空间用于存储目标核从内存中读取的数据,且多核中的除目标核之外的其它核读取的数据不能替换目标核存储在独占地址空间中的数据,从而支持在目标核在缓存中的独占地址空间的独占使用,减少了多核CPU访问缓存时的使用竞争。
[0007]结合第一方面,在第一方面的第一种可能的实现方式中,该方法还包括:接收该应用程序的指示信息,该指示信息用于指示在该缓存中设置该独占地址空间,该指示信息包含该独占地址空间在该缓存中的地址和大小;根据该指示信息,在该缓存中设置该独占地址空间。
[0008]结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,该多核与多个寄存器一一对应,该根据该指示信息,设置该独占地址空间,包括:根据该指示信息,通过该目标核对应的寄存器设置该独占地址空间对应的缓存地址和缓存长度。
[0009]结合第一方面,第一方面的第一种或第二种可能的实现方式,在第一方面的第三种可能的实现方式中,该独占地址空间包括驻留地址空间,该驻留地址空间用于存储该目标数据中的第一数据,且位于该驻留地址空间中的该第一数据不能被任何数据替换。
[0010]通过设置在独占地址空间中设置驻留地址空间,并设置位于驻留地址空间的第一数据不能被任何数据替换,从而在缓存中锁定了第一数据,进而提高了读取第一数据时缓存的命中率。
[0011]结合第一方面,第一方面的第一种至第三种可能的实现方式中的任一种可能的实现方式,在第一方面的第四种可能的实现方式中中,该缓存为三级缓存。
[0012]第二方面,本发明提供了一种访问缓存的装置,包括:接收模块,用于接收应用程序的数据访问请求,该应用程序运行于中央处理单元CPU的目标核中,该CPU为包括多核的CPU,该目标核为该多核之一,该数据访问请求包含待访问的目标数据的内存地址;查询模块,用于根据该数据访问请求,查询该多核共享的缓存中是否存在该目标数据,其中,该缓存包括该目标核对应的独占地址空间,该独占地址空间用于存储该目标核从内存中读取的数据,且该多核中的除该目标核之外的其它核读取的数据不能替换该目标核存入该独占地址空间中的数据;执行模块,用于当该缓存中存储有该目标数据时,从该缓存中读取该目标数据;该执行模块还用于当该缓存中未存储该目标数据时,根据该内存地址,从该内存中读取该目标数据,并将该目标数据存入该独占地址空间之中。
[0013]结合第二方面,在第二方面的第一种可能的实现方式中,该接收模块还用于接收应用程序的指示信息,该指示信息用于指示在该缓存中设置该独占地址空间,该指示信息包含该独占地址空间在该缓存中的地址和大小;其中该执行模块还用于根据该指示信息,在该缓存中设置该独占地址空间。
[0014]结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,该多核与多个寄存器一一对应,该执行模块具体用于根据该指示信息,通过该目标核对应的寄存器设置该独占地址空间对应的缓存地址和缓存长度。
[0015]结合第二方面,第二方面的第一种或第二种可能的实现方式,在第二方面的第三种可能的实现方式中,该独占地址空间包括驻留地址空间,该驻留地址空间用于存储该目标数据中的第一数据,且位于该驻留地址空间中的该第一数据不能被任何数据替换。
[0016]结合第二方面,第二方面的第一种至第三种可能的实现方式中的任一种可能的实现方式,在第二方面的第四种可能的实现方式中,该缓存为三级缓存。
[0017]第三方面,本发明提供了一种访问缓存的方法,接收应用程序的数据访问请求,该应用程序运行于中央处理单元CPU的目标核中,该CPU为包括多核的CPU,该目标核为该多核之一,该数据访问请求包含待访问的目标数据的内存地址;根据该数据访问请求,查询该多核共享的缓存中是否存在该目标数据,其中,该缓存包括该目标核对应的驻留地址空间,该驻留地址空间用于存储该目标核从内存中读取的数据,且位于该驻留地址空间中的该目标数据不能被任何数据替换;当该缓存中存储有该目标数据时,从该缓存中读取该目标数据;当该缓存中未存储该目标数据时,根据该内存地址,从该内存中读取该目标数据,并将该目标数据存入该缓存之中。
[0018]在本发明中,CPU中的目标核处理该应用程序的数据访问请求时,在多核共享的缓存中存在驻留地址空间,驻留地址空间用于存储目标核从内存中读取的数据,且存储在驻留地址空间中的目标数据不能被任何数据替换,从而支持在目标核在缓存中的驻留地址空间的独占使用,减少了多核(PU访问缓存时的使用竞争。
[0019]结合第三方面,在第三方面的第一种可能的实现方式中,该方法包括:接收应用程序的指示信息,该指示信息用于指示在该缓存中设置该驻留地址空间,该指示信息包含该驻留地址空间在该缓存中的地址和大小;根据该指示信息,在该缓存中设置该驻留地址空间。
[0020]第四方面,本发明提供了一种访问缓存的装置,该装置包括处理器和存储器;该存储器用于存储代码;该处理器通过读取该存储器存储的该代码,以用于执行第一方面提供的方法。
【附图说明】
[0021]为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0022]图1是根据本发明实施例的访问缓存的方法的流程示意图。
[0023]图2是根据本发明又一实施例的多核计算机系统架构图。
[0024]图3是根据本发明再一实施例的访问缓存的方法的架构图。
[0025]图4是根据本发明另一实施例的访问缓存的装置的示意图。
[0026]图5是根据本发明另一实施例的访问缓存的装置的示意图。
【具体实施方
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1