一种缓存数据访问方法、装置及电子设备与流程

    专利查询2022-08-20  129



    1.本技术涉及处理器技术领域,尤其涉及一种缓存数据访问方法、装置、电子设备、计算机可读存储介质及计算机程序产品。


    背景技术:

    2.cache(高速缓冲存储器)是电脑中位于cpu和主存储器之间的容量较小但速度很高的高速缓冲存储器。cache可以保存cpu刚刚使用过或循环使用的一部分数据,如果cpu需要再次使用该部分数据时可从cache中直接调用。如此,可以有效避免重复的存取数据,减少cpu的等待时间,能够提高系统运行效率。cache的访问方式可以分为三种:直接映射cache访问、全相联映射cache访问和组相联映射cache访问。其中,使用组相联映射cache访问方式,在访问过程中发生块的冲突的概率比较低并且块的利用率相较于其他两种访问方式大幅提高,因此,组相联映射cache访问方式得到较为广泛的应用。
    3.但是,目前对于组相联映射cache访问方式,需要同时将多路tag信息读出后再进行是否命中判断,存在cache访问功耗较高的问题。


    技术实现要素:

    4.本技术提供一种缓存数据访问方法、装置、电子设备、计算机可读存储介质及计算机程序产品。
    5.根据本发明第一方面,提供一种缓存数据访问方法,所述方法包括:接收访问请求,所述访问请求携带主存访问地址;根据所述主存访问地址,基于缓冲器存储的设定周期内的访问记录确定所述访问请求对应的高速缓冲存储器的路信息;根据所述主存访问地址和所述路信息,对所述访问请求进行响应。
    6.根据本发明一实施方式,所述访问记录包括根据设定周期内访问请求的历史访问地址与相对应的路信息构建的第一映射;相应的,所述根据所述主存访问地址,基于缓冲器存储的设定周期内的访问记录确定所述访问请求对应的路信息,包括:根据主存访问地址,访问所述缓冲器;判断所述主存访问地址是否命中所述访问记录中的历史访问地址,得到第一命中结果;在所述第一命中结果示出所述主存访问地址命中所述访问记录中的历史访问地址的情况下,确定所述主存访问地址对应的路信息为所命中的历史访问地址对应的路信息。
    7.根据本发明一实施方式,所述历史访问地址为记录所述历史访问请求的原始访问地址的历史地址信息或对原始访问地址进行压缩运算得到的历史地址信息;相应的,判断所述主存访问地址是否命中所述访问记录中的历史访问地址,包括:将所述主存访问地址进行压缩运算,得到当前地址信息;判断所述历史地址信息中是否存在与所述当前地址信息一致的地址信息;若所述历史地址信息中存在与所述当前地址信息一致的地址信息,则判定所述主存访问地址命中所述访问记录中与所述当前地址信息一致的历史访问地址;若所述历史地址信息中不存在与所述当前地址信息一致的地址信息,则判定所述主存访问地
    址未命中所述访问记录中的历史访问地址。
    8.根据本发明一实施方式,所述主存访问地址包括所述访问请求所请求访问的所述高速缓冲存储器的组信息,所述组信息用于表征所述访问请求所请求访问的数据为与所述组信息相对应的多路数据中的其中一路数据;相应的,所述根据所述主存访问地址,基于缓冲器存储的设定周期内的访问记录确定所述访问请求对应的路信息,还包括:在所述第一命中结果示出所述主存访问地址未命中所述访问记录中的历史访问地址的情况下,根据所述高速缓冲存储器的组信息,对与所述组信息相对应的高速缓冲存储器的多路数据进行访问,判断所述主存访问地址是否命中所述高速缓冲存储器的多路数据中的其中一路,得到第二命中结果;在所述第二命中结果示出所述主存访问地址命中所述高速缓冲存储器的多路数据中的其中一路信息的情况下,确定所命中的所述高速缓冲存储器的多路数据中的一路的路信息为所述主存访问地址的路信息。
    9.根据本发明一实施方式,所述根据所述主存访问地址,基于缓冲器存储的设定周期内的访问记录确定所述访问请求对应的路信息,还包括:在所述第二命中结果示出所述主存访问地址命中所述高速缓冲存储器的多路数据中的其中一路信息的情况下,根据所命中的所述高速缓冲存储器的多路数据中的一路的路信息,更新所述缓冲器所存储的访问记录。
    10.根据本发明一实施方式,所述根据所述主存访问地址,基于缓冲器存储的设定周期内的访问记录确定所述访问请求对应的路信息,还包括:在所述第二命中结果示出所述主存访问地址未命中所述高速缓冲存储器的多路数据中的任意一路信息的情况下,根据所述主存访问地址从主存储器中读取数据,并同时将所读取的数据写入所述高速缓冲存储器。
    11.根据本发明一实施方式,所述根据所述主存访问地址和所述路信息,对所述访问请求进行响应,包括:根据主存访问地址和路信息,通过所述高速缓冲存储器读取数据。
    12.根据本发明一实施方式,在所述接收访问请求之前,所述方法还包括:构建设定数量的所述缓冲器,所述缓冲器为全相联的buffer。
    13.根据本技术第二方面,又提供了一种缓存数据访问装置,所述缓存数据访问装置包括:接收模块,用于接收访问请求,所述访问请求携带主存访问地址;路信息确定模块,用于根据所述主存访问地址,基于缓冲器存储的设定周期内的访问记录确定所述访问请求对应的高速缓冲存储器的路信息;响应模块,用于根据所述主存访问地址和所述路信息,对所述访问请求进行响应。
    14.根据本技术第三方面,又提供了一种电子设备,所述电子设备包括:处理器、存储器和总线;所述存储器存储可执行指令;所述处理器与所述存储器之间通过所述总线通信,所述处理器执行所述存储器中存储的可执行指令时,实现上述缓存数据访问方法。
    15.根据本技术第四方面,又提供了一种计算机可读存储介质,所述存储介质包括一组计算机可执行指令,当所述指令被执行时用于执行上述缓存数据访问方法。
    16.根据本技术第五方面,又提供了一种计算机程序产品,所述计算机程序产品包括计算机程序/指令,所述计算机程序/指令被处理器执行时,实现权利要求上述缓存数据访问方法。
    17.本技术缓存数据访问方法、装置、电子设备、计算机可读存储介质及计算机程序产
    品中,缓存数据访问方法包括:接收访问请求,所述访问请求携带主存访问地址;根据所述主存访问地址,基于缓冲器存储的设定周期内的访问记录确定所述访问请求对应的高速缓冲存储器的路信息;根据所述主存访问地址和所述路信息,对所述访问请求进行响应。根据主存访问地址首先进行缓冲器的访问,若命中缓冲器的数据,则可以根据缓冲器中的访问记录确定得到该主存访问地址所需访问路信息,结合主存访问地址中示出的需要访问的高速缓冲存储器的组信息,对高速缓冲存储器的相应组中特定路的数据进行访问。由此,有效避免了根据主存访问地址中示出的需要访问的高速缓冲存储器的组信息对该组信息对应的多路进行遍历访问,从而有效降低缓存访问功耗。
    18.需要理解的是,本技术的教导并不需要实现上面所述的全部有益效果,而是特定的技术方案可以实现特定的技术效果,并且本技术的其他实施方式还能够实现上面未提到的有益效果。
    附图说明
    19.通过参考附图阅读下文的详细描述,本技术示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本技术的若干实施方式,其中:在附图中,相同或对应的标号表示相同或对应的部分。
    20.图1示出了本技术实施例缓存数据访问方法的实现流程示意图;图2示出了本技术实施例缓存数据访问方法的具体应用示例的实现流程示意图;图3示出了本技术实施例缓存数据访问装置的组成结构示意图;图4示出了本技术实施例电子设备的组成结构示意图。
    具体实施方式
    21.下面将参考若干示例性实施方式来描述本技术的原理和精神。应当理解,给出这些实施方式仅仅是为使本领域技术人员能够更好地理解进而实现本技术,而并非以任何方式限制本技术的范围。相反,提供这些实施方式是为使本技术更加透彻和完整,并能够将本技术的范围完整地传达给本领域的技术人员。
    22.下面结合附图和具体实施例对本技术的技术方案进一步详细阐述。
    23.图1示出了本技术实施例缓存数据访问方法的实现流程示意图。
    24.参考图1,本技术实施例缓存数据访问方法,至少包括如下操作流程:操作101,接收访问请求,访问请求携带主存访问地址;操作102,根据主存访问地址,基于缓冲器存储的设定周期内的访问记录确定访问请求对应的高速缓冲存储器的路信息;操作103,根据主存访问地址和路信息,对访问请求进行响应。
    25.在操作101中,接收访问请求,访问请求携带主存访问地址。
    26.在本发明这一实施方式中,访问请求可以是cpu发出的对组相联的cache数据的访问请求。访问请求可以包括主存访问地址,主存访问地址包括区号标记、cache内组号和块内地址字号。
    27.在操作102中,根据主存访问地址,基于缓冲器存储的设定周期内的访问记录确定访问请求对应的高速缓冲存储器的路信息。
    28.在本发明这一实施方式中,在接收访问请求之前,还构建设定数量的缓冲器,缓冲器为全相联的buffer。
    29.具体的,只要cache的每一组的路数大于或等于2,则在根据主存访问地址直接访问cache的情况下,需要根据主存访问地址,确定所需要访问的cache内组号,并将该组号对应的cache中的多个tag(路)的数据全部读出,分别进行比较,判断该主存访问地址对应的访问请求命中的路信息。基于此,在本发明这一实施方式中,预先设计多个全相联的buffer(缓冲器),全相联的buffer用来保存设定周期内访问的cache的信息。
    30.举例说明,可以将该历史访问请求的主存访问地址以及主存访问地址命中的路信息tag保存至buffer中,在每次接收到cache的访问请求时,访问cache之前,首先对全相联的buffer的信息进行访问。若主存访问地址命中全相联的buffer的信息,则根据主存访问地址命中的tag,确定主存访问请求对应的路信息。若buffer中缺失所接收到的主存访问请求,则可以根据替换算法,选择buffer所存储的历史访问记录中的其中一个主存访问地址与相应的tag的信息进行替换。
    31.在本发明这一实施方式中,访问记录可以包括根据设定周期内访问请求的历史访问地址与相对应的路信息构建的第一映射。相应的,可以根据主存访问地址,访问缓冲器,判断主存访问地址是否命中访问记录中的历史访问地址,得到第一命中结果,并在第一命中结果示出主存访问地址命中访问记录中的历史访问地址的情况下,确定主存访问地址对应的路信息为所命中的历史访问地址对应的路信息。
    32.这里,历史记录存储在buffer中,可以采用映射的方式存储历史访问请求的主存访问地址与主存访问地址命中的路信息tag的对应关系。历史记录可以设定为设定周期内的历史记录,例如:可以将设定周期设置为1年、半年、3个月、2个月、1个月或10天等。当然,历史记录还可以根据主存访问地址的访问频次等进行实时更新。本发明对历史记录的其他更新方式不做限定。
    33.以主存中有256个区,每个区有4个块,组相联的cache有4个组,每组包括4路tag为例。若访问请求1的主存访问地址为a,第一次接收到主存访问地址为a的请求1,buffer中缺失该主存访问地址,此时,可以根据主存访问地址中的cache内组号找到相应的cache组,将cache组中的4路tag均读出,将主存访问地址中的标记和从cache中读出的标记进行比较,假设这里命中该cache组内的第4路tag。则映射可以采用以下两种方式中的一种来构建:1、直接将主存访问地址a与way4(所命中的cache组内的路信息为第4路tag)的对应关系存储至buffer。如此,所保存的主存访问地址完整、信息精确,不存在模糊匹配的问题,能够在接收到新的访问请求的情况下,快速将访问请求携带的主存访问地址与buffer所存储的历史访问记录进行匹配。
    34.2、将主存访问地址a信息进行压缩后再构建主存访问地址与相对应的路信息的映射。例如:可以将48位主存访问地址a通过hash算法压缩至5位~8位,将压缩得到的5位~8位的主存访问地址信息z1与way4的对应关系保存至buffer中。由此,在接收到新的访问请求的情况下,需要将接收到访问请求2对应的主存访问地址b通过hash算法进行压缩。若压缩得到的主存访问地址信息z2与buffer中所存储的主存访问地址信息z1一致,则可以判定主存访问地址b与主存访问地址a为同一主存访问地址,主存访问地址b对应的路信息为way4。由此,在接收到访问请求2的情况下,可以命中buffer存储的历史访问记录,得到该访问请
    求2对应的cache组内路信息为way4,只需根据主存访问地址中的块号找到相应的cache组,将该cache组中way4位置中的标记读出,主存访问地址中标记和way4位置中的标记比较判断是否命中即可。如此,针对4路组相联的cache,对于访问请求2可以少读3路tag信息,有效减少cache访问的功耗。并且,采用将主存访问地址a信息进行压缩后保存映射关系的方式,buffer能够存储的映射关系较多,也即可以存储的历史访问记录的数量较多,在接收到新的访问请求的情况洗是,命中率高,不需要针对buffer中存储的历史访问记录进行频繁更新替换操作,进一步节约计算资源,降低cache访问功耗。
    35.在本发明这一实施方式中,历史访问地址为记录历史访问请求的原始访问地址的历史地址信息或对原始访问地址进行压缩运算得到的历史地址信息。相应的,可以将主存访问地址进行压缩运算,得到当前地址信息,判断历史地址信息中是否存在与当前地址信息一致的地址信息。若历史地址信息中存在与当前地址信息一致的地址信息,则判定主存访问地址命中访问记录中与当前地址信息一致的历史访问地址。若历史地址信息中不存在与当前地址信息一致的地址信息,则判定主存访问地址未命中访问记录中的历史访问地址。
    36.举例说明,可以参考上述将主存访问地址a信息进行压缩后再构建主存访问地址与相对应的路信息的映射。
    37.在本发明这一实施方式中,主存访问地址包括访问请求所请求访问的高速缓冲存储器的组信息,组信息用于表征访问请求所请求访问的数据为与组信息相对应的多路数据中的其中一路数据。相应的,还在第一命中结果示出主存访问地址未命中访问记录中的历史访问地址的情况下,根据高速缓冲存储器的组信息,对与组信息相对应的高速缓冲存储器的多路数据进行访问,判断主存访问地址是否命中高速缓冲存储器的多路数据中的其中一路,得到第二命中结果。在第二命中结果示出主存访问地址命中高速缓冲存储器的多路数据中的其中一路信息的情况下,确定所命中的高速缓冲存储器的多路数据中的一路的路信息为主存访问地址的路信息。
    38.进一步的,还在第二命中结果示出主存访问地址命中高速缓冲存储器的多路数据中的其中一路信息的情况下,根据所命中的高速缓冲存储器的多路数据中的一路的路信息,更新缓冲器所存储的访问记录。
    39.举例说明,由于buffer存储器的项数有限。因此,并不是所有的访问请求,都能够命中buffer中所存储的历史访问记录中的历史访问地址。在通过预先配置的buffer进行路信息匹配的过程中,若访问请求所携带的主存访问地址无法与buffer中的存储的历史访问地址进行匹配,则需要根据主存访问地址中的cache内组号,将相对应的cache组中的多路tag均读出后,根据访问请求中的标记与多路tag的标记进行匹配,确定该访问请求对应的路信息。
    40.由此,在本发明这一实施方式中,可以根据访问请求对应的主存访问地址使用频繁程度对历史访问记录中的信息进行更新。例如:在接收到一个访问请求时,累加设定时间段内该访问请求的访问次数,并据此确认该访问请求对应的主存访问地址的访问频次。若通过buffer对该访问请求进行路信息的匹配过程中,未命中buffer中的历史访问记录,则可以根据确定的该访问请求的主存访问地址的访问频次与buffer中所存储的历史访问记录中访问频次最低的历史访问地址的访问频次进行对比。若该访问请求的主存访问地址的
    访问频次大于buffer中所存储的历史访问记录中访问频次最低的历史访问地址的访问频次。则将该访问请求的主存访问地址与相对应的路信息保存至buffer中,并删除buffer中所存储的历史访问记录中访问频次最低的历史访问地址。
    41.需要说明的是,这里对buffer中历史访问记录的更新可以采用命中率较高的rrip(re-reference interval prediction,再参考区间预测)、lru(least recently used,最近最少使用)等替换算法,对主存访问地址进行使用频率追踪并将不常用的主存访问地址相对应的映射关系删除。
    42.此外,在使用“将主存访问地址a信息进行压缩后再构建主存访问地址与相对应的路信息的映射”的方式构建映射之后,容易出现buffer中所存储的信息有误的情况。例如:buffer中所存储的映射示出一主存访问地址需要访问的是第0组tag0,实际上该地址需要访问第0组tag1,则在访问该主存访问地址会发生false cache miss(假缓存未命中),需要重新进行对该主存访问地址相应的组的全部tag进行访问,并将重新确定的路信息与主存访问地址的映射关系更新至buffer中。
    43.在本发明这一实施方式中,还在第二命中结果示出主存访问地址未命中高速缓冲存储器的多路数据中的任意一路信息的情况下,根据主存访问地址从主存储器中读取数据,并同时将所读取的数据写入高速缓冲存储器。
    44.举例说明,当cache产生了一次访问未命中之后,表明cache中未存储该访问请求对应的数据,此时,需要从主存sram中读取相应的数据,并将所读取的相应数据同时读入cpu和cache中。若此时cache已存满数据,则同样可以采用替换算法替换cache中的某些旧数据。最常用的替换算法同样可以包括随机算法、先进先出算法fifo和近期最少使用算法lru。
    45.在操作103中,根据主存访问地址和路信息,对访问请求进行响应。
    46.在本发明这一实施方式中可以根据主存访问地址和路信息,通过高速缓冲存储器读取数据。由此实现根据主存访问地址和路信息,对访问请求进行响应。
    47.图2示出了本技术实施例缓存数据访问方法的具体应用示例的实现流程示意图。
    48.参考图2,本技术实施例缓存数据访问方法的具体应用示例,可以根据主存访问地址首先进行buffer访问,若命中,得到该主存访问地址所需访问way信息。再通过主存访问地址得到所需访问cache的组号,将cache组中特定way的tag读出,比较判断该主存访问地址对应的请求是否命中。
    49.例如:这里若从buffer中命中address2,相对应的路信息为way0,则可以根据该路信息way0和主存访问地址中的组内cache组号index,通过图2左侧所示的组中读取相应的数据。
    50.由此,若cache的组织方式为4路组相联,cache的命中率为95%,buffer的命中率为75%,共有100个请求对主存进行访问,95个请求需要访问cache,约有72个请求命中buffer,只需要访问1路tag,23个请求需要访问4路tag。相比于直接进行cache访问时所需访问的tag数量:95*4=380个tag,本发明的以上方案,只需要访问72*1 23*4=164个tag,极大减少tag访问数量,从而减少访问功耗。进一步,如果buffer的命中率超过75%的话,就会减少75%的请求对cache组织的路全部读出后进行tag对比,只需要根据buffer给出的way信息进行tag对比,如果buffer给出的way信息有误,则关闭buffer的查找,该请求对所有way进行访
    问,从而有效减少sram的访问功耗的需求。
    51.其中,本技术实施例缓存数据访问方法的具体应用示例的其他具体实现过程与图1所示实施例中操作101~103的具体实现过程相类似,这里不再赘述。
    52.本技术实施例缓存数据访问方法、装置、电子设备、计算机可读存储介质及计算机程序产品中,缓存数据访问方法包括:接收访问请求,访问请求携带主存访问地址;根据主存访问地址,基于缓冲器存储的设定周期内的访问记录确定访问请求对应的高速缓冲存储器的路信息;根据主存访问地址和路信息,对访问请求进行响应。根据主存访问地址首先进行缓冲器的访问,若命中缓冲器的数据,则可以根据缓冲器中的访问记录确定得到该主存访问地址所需访问路信息,结合主存访问地址中示出的需要访问的高速缓冲存储器的组信息,对高速缓冲存储器的相应组中特定路的数据进行访问。由此,有效避免了根据主存访问地址中示出的需要访问的高速缓冲存储器的组信息对该组信息对应的多路进行遍历访问,从而有效降低缓存访问功耗。
    53.同理,基于如上文缓存数据访问方法,本技术实施例还提供一种缓存数据访问装置,如图3所示,该装置30包括:接收模块301,用于接收访问请求,访问请求携带主存访问地址;路信息确定模块302,用于根据主存访问地址,基于缓冲器存储的设定周期内的访问记录确定访问请求对应的高速缓冲存储器的路信息;响应模块303,用于根据主存访问地址和路信息,对访问请求进行响应。
    54.这里需要指出的是:以上对针对缓存数据访问装置实施例的描述,与前述图1至2所示的方法实施例的描述是类似的,具有同前述图1至2所示的方法实施例相似的有益效果,因此不做赘述。对于本技术缓存数据访问装置实施例中未披露的技术细节,请参照本技术前述图1至2所示的方法实施例的描述而理解,为节约篇幅,因此不再赘述。
    55.根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
    56.图4示出了可以用来实施本公开的实施例的示例电子设备400的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
    57.如图4所示,设备400包括计算单元401,其可以根据存储在只读存储器(rom)402中的计算机程序或者从存储单元408加载到随机访问存储器(ram)403中的计算机程序,来执行各种适当的动作和处理。在ram 403中,还可存储设备400操作所需的各种程序和数据。计算单元401、rom 402以及ram 403通过总线404彼此相连。输入/输出(i/o)接口405也连接至总线404。
    58.设备400中的多个部件连接至i/o接口405,包括:输入单元406,例如键盘、鼠标等;输出单元407,例如各种类型的显示器、扬声器等;存储单元408,例如磁盘、光盘等;以及通信单元409,例如网卡、调制解调器、无线通信收发机等。通信单元409允许设备400通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
    59.计算单元401可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单
    元401的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元401执行上文所描述的各个方法和处理,例如缓存数据访问方法。例如,在一些实施例中,缓存数据访问方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元408。在一些实施例中,计算机程序的部分或者全部可以经由rom 402和/或通信单元409而被载入和/或安装到设备400上。当计算机程序加载到ram 403并由计算单元401执行时,可以执行上文描述的缓存数据访问方法的一个或多个步骤。备选地,在其他实施例中,计算单元401可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行缓存数据访问方法。
    60.本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
    61.用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
    62.在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
    63.为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
    64.可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界
    面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。
    65.计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
    66.应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
    67.上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

    技术特征:
    1.一种缓存数据访问方法,其特征在于,所述方法包括:接收访问请求,所述访问请求携带主存访问地址;根据所述主存访问地址,基于缓冲器存储的设定周期内的访问记录确定所述访问请求对应的高速缓冲存储器的路信息;根据所述主存访问地址和所述路信息,对所述访问请求进行响应。2.根据权利要求1所述的方法,其特征在于,所述访问记录包括根据设定周期内访问请求的历史访问地址与相对应的路信息构建的第一映射;相应的,所述根据所述主存访问地址,基于缓冲器存储的设定周期内的访问记录确定所述访问请求对应的高速缓冲存储器的路信息,包括:根据主存访问地址,访问所述缓冲器;判断所述主存访问地址是否命中所述访问记录中的历史访问地址,得到第一命中结果;在所述第一命中结果示出所述主存访问地址命中所述访问记录中的历史访问地址的情况下,确定所述主存访问地址对应的路信息为所命中的历史访问地址对应的路信息。3.根据权利要求2所述的方法,其特征在于,所述历史访问地址为记录所述历史访问请求的原始访问地址的历史地址信息或对原始访问地址进行压缩运算得到的历史地址信息;相应的,判断所述主存访问地址是否命中所述访问记录中的历史访问地址,包括:将所述主存访问地址进行压缩运算,得到当前地址信息;判断所述历史地址信息中是否存在与所述当前地址信息一致的地址信息;若所述历史地址信息中存在与所述当前地址信息一致的地址信息,则判定所述主存访问地址命中所述访问记录中与所述当前地址信息一致的历史访问地址;若所述历史地址信息中不存在与所述当前地址信息一致的地址信息,则判定所述主存访问地址未命中所述访问记录中的历史访问地址。4.根据权利要求3所述的方法,其特征在于,所述主存访问地址包括所述访问请求所请求访问的所述高速缓冲存储器的组信息,所述组信息用于表征所述访问请求所请求访问的数据为与所述组信息相对应的多路数据中的其中一路数据;相应的,所述根据所述主存访问地址,基于缓冲器存储的设定周期内的访问记录确定所述访问请求对应的高速缓冲存储器的路信息,还包括:在所述第一命中结果示出所述主存访问地址未命中所述访问记录中的历史访问地址的情况下,根据所述高速缓冲存储器的组信息,对与所述组信息相对应的高速缓冲存储器的多路数据进行访问,判断所述主存访问地址是否命中所述高速缓冲存储器的多路数据中的其中一路,得到第二命中结果;在所述第二命中结果示出所述主存访问地址命中所述高速缓冲存储器的多路数据中的其中一路信息的情况下,确定所命中的所述高速缓冲存储器的多路数据中的一路的路信息为所述主存访问地址的路信息。5.根据权利要求4所述的方法,其特征在于,所述根据所述主存访问地址,基于缓冲器存储的设定周期内的访问记录确定所述访问请求对应的高速缓冲存储器的路信息,还包括:
    在所述第二命中结果示出所述主存访问地址命中所述高速缓冲存储器的多路数据中的其中一路信息的情况下,根据所命中的所述高速缓冲存储器的多路数据中的一路的路信息,更新所述缓冲器所存储的访问记录。6.根据权利要求4所述的方法,其特征在于,所述根据所述主存访问地址,基于缓冲器存储的设定周期内的访问记录确定所述访问请求对应的高速缓冲存储器的路信息,还包括:在所述第二命中结果示出所述主存访问地址未命中所述高速缓冲存储器的多路数据中的任意一路信息的情况下,根据所述主存访问地址从主存储器中读取数据,并同时将所读取的数据写入所述高速缓冲存储器。7.根据权利要求1-6中任一项所述的方法,其特征在于,所述根据所述主存访问地址和所述路信息,对所述访问请求进行响应,包括:根据主存访问地址和路信息,通过所述高速缓冲存储器读取数据。8.根据权利要求1-6中任一项所述的方法,其特征在于,在所述接收访问请求之前,所述方法还包括:构建设定数量的所述缓冲器,所述缓冲器为全相联的buffer。9.一种缓存数据访问装置,其特征在于,所述缓存数据访问装置包括:接收模块,用于接收访问请求,所述访问请求携带主存访问地址;路信息确定模块,用于根据所述主存访问地址,基于缓冲器存储的设定周期内的访问记录确定所述访问请求对应的高速缓冲存储器的路信息;响应模块,用于根据所述主存访问地址和所述路信息,对所述访问请求进行响应。10.一种电子设备,其特征在于,所述电子设备包括:处理器、存储器和总线;所述存储器存储可执行指令;所述处理器与所述存储器之间通过所述总线通信,所述处理器执行所述存储器中存储的可执行指令时,实现权利要求1至8任一项所述的缓存数据访问方法。11.一种计算机可读存储介质,其特征在于,存储有可执行指令,用于被处理器执行时,实现权利要求1至8任一项所述的缓存数据访问方法。12.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现权利要求1至7任一项所述的缓存数据访问方法。

    技术总结
    本申请公开了一种缓存数据访问方法、装置、电子设备、计算机可读存储介质及计算机程序产品中,缓存数据访问方法包括:接收访问请求,所述访问请求携带主存访问地址;根据所述主存访问地址,基于缓冲器存储的设定周期内的访问记录确定所述访问请求对应的高速缓冲存储器的路信息;根据所述主存访问地址和所述路信息,对所述访问请求进行响应。由此,有效避免了根据主存访问地址中示出的需要访问的高速缓冲存储器的组信息对该组信息对应的多路进行遍历访问,从而有效降低缓存访问功耗。从而有效降低缓存访问功耗。从而有效降低缓存访问功耗。


    技术研发人员:高军 郭丽丽 赵天磊 薛洪波 苑佳红
    受保护的技术使用者:飞腾信息技术有限公司
    技术研发日:2022.04.21
    技术公布日:2022/5/25
    转载请注明原文地址:https://tc.8miu.com/read-9822.html

    最新回复(0)