一种访问数据的方法、设备及系统的制作方法

文档序号:6507343阅读:145来源:国知局
一种访问数据的方法、设备及系统的制作方法
【专利摘要】本发明实施例公开了一种访问数据的方法、设备及系统。本发明涉及通信领域,将高速缓冲存储器中的标签域的属性进行扩充,从而使得标签域既可以对应本组的数据域,也可以对应其它组的数据域,进而提高了高速缓冲存储器中的数据域利用率。本发明实施例提供的方法包括:接收处理器发送的访问待访问数据的请求信息,其中,所述请求信息包含所述待访问数据的物理地址信息;根据所述待访问数据的物理地址信息获取与所述待访问数据的物理地址信息对应的标签域;根据所述物理地址信息对应的所述标签域信息中的组标识信息、组内数据域偏移信息获取所述标签域对应的数据域。
【专利说明】一种访问数据的方法、设备及系统

【技术领域】
[0001]本发明涉及通信领域,尤其涉及一种访问数据的方法、设备及系统。

【背景技术】
[0002]高速缓冲存储器(cache)是提高处理器中内存系统性能的一个关键部件。高速缓冲存储器的组织结构一般分为直接相联、组相联和全相联三种。在现有处理器的高速缓冲存储器设计中,一般均采取组相联的实现方法,如图1所示,为N路(wav)组相联高速缓冲存储器的结构示意图,组相联高速缓冲存储器包括多个组(set),每个组里面包括了多个高速缓冲存储器行,每个高速缓冲存储器包括一个标签域和与该标签域对应的一个数据域,一个数据域包括标签位和有效位两个属性,每个访问数据请求对应的物理地址能唯一确定一个set,而在该set中,该物理地址可以映射至其中的任意一个高速缓冲存储器行。
[0003]在现有技术中,标签域和数据域是固定的一一对应的关系且分开存储,处理器访问高速缓冲存储器时,若该高速缓冲存储器中没有一个组中的高速缓冲存储器行与该处理器的访问请求对应,将该访问请求同时映射到不同路的不同组,根据不同组中高速缓冲存储器行的利用率来选择实际被替换出去的项,再将该访问请求分配至利用率低的高速缓冲存储器行中。例如,如图2,在3路的高速缓冲存储器中,请求Y通过3个不同的哈希算法H0,H1,H2分别映射到路0的A、路1的D及路2的M,A、D、M均表示高速缓冲存储器中的一个高速缓冲存储器行且A、D、M中分别对应的标签域中的标签位相等,在替换的时候,Y可以选择A、D、Μ中的任意一个替换,同时,A、D、Μ依照同样的方式可以映射到其他的组中,例如Α能映射到路1的V和路2的X,如果A作为Y的被替换项,再可以比较A的利用率以及V和X的利用率,如果A的利用率高,且V的利用率最低,则可以将A存放到V的位置,而将V作为被替换项。如此循环下去,可以从整个高速缓冲存储器中找到组利用率最低的高速缓冲存储器行替换出去。
[0004]发明人发现现有技术中至少存在以下问题:由于高速缓冲存储器中标签域和数据域是固定的一一对应的关系且分开存储,导致高速缓冲存储器中的数据域利用率低。


【发明内容】

[0005]本发明实施例提供一种访问数据的方法、设备及系统,将高速缓冲存储器中的标签域的属性进行扩充,从而使得标签域既可以对应本组的数据域,也可以对应其它组的数据域,进而提高了高速缓冲存储器中的数据域利用率。
[0006]为达到上述目的,本发明实施例采用的技术方案是,
[0007]第一方面,提供了一种访问数据的方法,包括:
[0008]接收处理器发送的访问待访问数据的请求信息,其中,所述请求信息包含所述待访问数据的物理地址信息;
[0009]根据所述待访问数据的物理地址信息获取与所述待访问数据的物理地址信息对应的标签域;
[0010]根据所述物理地址信息对应的所述标签域信息中的组标识信息、组内数据域偏移信息获取所述标签域对应的数据域,其中,每个所述组均包含N个标签域和Μ个数据域,所述标签域与所述数据域一一对应且一一对应的所述标签域和所述数据域处于相同组或者不同组,所述Ν为大于或等于1的自然数,所述Μ为大于或等于1的自然数且所述Ν大于所述Μ,每个所述标签域信息包含与所述标签域对应的所述数据域的组标识信息、组内数据域偏移信息,所述组标识信息用于指示与所述标签域对应的所述数据域所在的组,所述组内数据偏移信息用于指示所述数据域在所述数据域所在组内的偏移量。
[0011]在第一种可能的实现方式中,根据第一方面,每个所述标签域信息还包含标签位信息,数据域是否有效信息,“ isptr”信息,
[0012]其中,所述标签位信息用于指示所述标签域对应的所述数据域对应的物理地址,所述数据域是否有效信息用于指示所述标签域对应的所述数据域被所述处理器访问还是没有被所述处理器访问,所述“ isptr”信息用于指示所述标签域对应的所述数据域中存储的数据来源于所述待访问数据对应的组还是来源于除所述待访问数据对应的组的其它组,
[0013]相应的,
[0014]所述根据所述待访问数据的物理地址信息获取与所述待访问数据的物理地址信息对应的标签域,包括:
[0015]根据所述待访问数据的物理地址信息获取所述待访问数据的物理地址信息对应的第一组及标签位信息;
[0016]若根据所述待访问数据的物理地址信息对应的第一组确定存储系统中所述第一组中存在状态位有效的标签域且若根据所述待访问数据的物理地址信息对应的标签位信息确定所述第一组中状态位有效的标签域中存在与所述待访问数据的物理地址信息对应的标签位信息相等的标签域,获取所述存储系统中状态位有效的标签域中的标签位信息与所述待访问数据的物理地址信息对应的标签位信息相等的第一标签域,其中,所述存在状态位有效的标签域包含指示数据域被所述处理器访问且指示所述标签域对应的数据域中存储的数据来源于所述待访问数据对应的组。
[0017]在第二种可能的实现方式中,结合第一方面,每个所述标签域信息还包含标签位信息,数据域是否有效信息,“ isptr”信息,
[0018]其中,所述标签位信息用于指示所述标签域对应的所述数据域对应的物理地址,所述数据域是否有效信息用于指示所述标签域对应的所述数据域被所述处理器访问还是没有被所述处理器访问,所述“ isptr”信息用于指示所述标签域对应的所述数据域中存储的数据来源于所述待访问数据对应的组还是来源于除所述待访问数据对应的组的其它组,
[0019]相应的,
[0020]所述根据所述待访问数据的物理地址信息获取与所述待访问数据的物理地址信息对应的标签域,包括:
[0021]根据所述待访问数据的物理地址信息获取所述待访问数据的物理地址信息对应的第一组及标签位信息;
[0022]若根据所述待访问数据的物理地址信息对应的第一组确定存储系统中所述第一组中不存在状态位有效的标签域,或者,若根据所述待访问数据的物理地址信息对应的第一组确定存储系统中所述第一组中存在状态位有效的标签域且若根据所述待访问数据的物理地址信息对应的标签位信息确定所述第一组中状态位有效的标签域中不存在与所述待访问数据的物理地址信息对应的标签位信息相等的标签域,获取分配所述待访问数据的组及组内数据域偏移信息并分配给所述待访问数据,其中,所述不存在状态位有效的标签域包含指示所述标签域对应的数据域没有被所述处理器访问且指示所述标签域对应的所述数据域中存储的数据来源于所述待访问数据对应的组,或者,指示所述标签域对应的所述数据域被所述处理器访问且指示所述标签域对应的所述数据域中存储的数据来源于除所述待访问数据对应的组的其它组,或者,指示所述标签域对应的所述数据域没有被所述处理器访问且指示所述标签域对应的所述数据域中存储的数据来源于除所述待访问数据对应的组的其它组。
[0023]在第三种可能的实现方式中,结合第二种可能的实现方式,所述获取分配所述待访问数据的组及组内数据域偏移信息并分配给所述待访问数据,包括:
[0024]若根据所述存储系统中的每一组分别对应的利用率确定所述第一组对应的利用率小于第一利用率阈值,根据所述第一组中的每一标签域分别对应的数据域的利用率选择所述第一组中的每一标签域分别对应的数据域中利用率最低的数据域;
[0025]将所述第一组及所述第一组中的每一标签域分别对应的数据域中利用率最低的数据域分配给所述待访问数据。
[0026]在第四种可能的实现方式中,结合第二种可能的实现方式,所述获取分配所述待访问数据的组及组内数据域偏移信息并分配给所述待访问数据,包括:
[0027]若根据所述存储系统中的每一组分别对应的利用率确定所述第一组对应的利用率大于或等于所述第一利用率阈值,选择所述存储系统中除所述第一组外的所有组中利用率最低的第二组;
[0028]根据所述第二组中每一标签域分别对应的数据域的利用率选择所述第二组中的每一标签域分别对应的数据域中利用率最低的数据域;
[0029]将所述第二组及所述第二组中的每一标签域分别对应的数据域中利用率最低的数据域分配给所述待访问数据。
[0030]在第五种可能的实现方式中,结合第一方面或第一种可能的实现方式,每个所述标签域还包含与所述标签域对应的所述数据域的开始地址信息、结束地址信息,
[0031]所述开始地址信息用于指示所述标签域对应的所述数据域的起始位地址,所述结束地址信息用于指示所述标签域对应的所述数据域的结束位地址,
[0032]所述请求信息还包含所述待访问数据的粒度信息,
[0033]相应的,
[0034]根据所述物理地址信息对应的所述标签域信息中的组标识信息、组内数据域偏移信息获取所述标签域对应的数据域,包括:
[0035]读取所述第一标签域中的指示所述第一标签域对应的数据域的起始位地址和结束位地址;
[0036]若根据所述待访问数据的物理地址信息及所述待访问数据的粒度信息确定所述待访问数据对应的所有数据存放在所述第一标签域对应的所述数据域中,根据所述第一标签域中的组标识信息及组内数据域偏移信息获取所述第一标签域对应的所述数据域的位置;
[0037]根据所述第一标签域对应的所述数据域的位置获取所述第一标签域对应的数据域。
[0038]在第六种可能的实现方式中,结合第一方面或第一种可能的实现方式,每个所述标签域还包含与所述标签域对应的所述数据域的开始地址信息、结束地址信息,
[0039]所述开始地址信息用于指示所述标签域对应的所述数据域的起始位地址,所述结束地址信息用于指示所述标签域对应的所述数据域的结束位地址,
[0040]所述请求信息还包含所述待访问数据的粒度信息,
[0041]相应的,
[0042]根据所述物理地址信息对应的所述标签域信息中的组标识信息、组内数据域偏移信息获取所述标签域对应的数据域,包括:
[0043]若根据所述待访问数据的物理地址信息及所述待访问数据的粒度信息确定所述待访问数据对应的所有数据不存放在所述第一标签域对应的所述数据域中,获取分配所述待访问数据的被替换数据域并分配给所述待访问数据,其中,所述被替换数据域包含所述第一组中的每一标签域对应的不同粒度的数据域中粒度大于且最接近所述待访问请求的粒度信息的数据域。
[0044]在第七种可能的实现方式中,结合第六种可能的实现方式,
[0045]所述获取分配所述待访问数据的被替换数据域并分配给所述待访问数据,包括:
[0046]若根据所述第一组中的每一标签域分别对应的不同粒度的数据域的利用率确定所述第一组中的所述被替换数据域的利用率大于或等于第二利用率阈值且所述第一组中除所述被替换数据域外所有不同粒度的数据域中多个第二数据域的利用率都小于所述第二访问阈值,将所述多个第二数据域合并为所述被替换数据域并分配给所述待访问数据,其中,所述第二数据域包含所述第一组中除所述被替换数据域外所有不同粒度的数据域中粒度小于所述被替换数据域粒度的数据域;
[0047]或者,
[0048]若根据所述第一组中的每一标签域分别对应的不同粒度的数据域的利用率确定所述第一组中的所述被替换数据域的利用率大于或等于所述第二利用率阈值且所述第一组中除所述被替换数据域外所有不同粒度的数据域中第三数据域的利用率小于所述第二访问阈值,将所述第三数据域拆分为一个或多个所述被替换数据域并分配给所述待访问数据,其中,所述第三数据域包含所述第一组中除所述被替换数据域外所有不同粒度的数据域中对应的数据域中粒度大于所述被替换数据域粒度的数据域;
[0049]或者,
[0050]若根据所述第一组中的每一标签域分别对应的不同粒度的数据域的利用率确定所述第一组中的所述被替换数据域的利用率小于所述第二利用率阈值,将所述被替换数据域分配给所述待访问数据。
[0051]在第八种可能的实现方式中,结合第一方面或第一种可能的实现方式或第二种可能的实现方式或第三种可能的实现方式或第四种可能的实现方式或第五种可能的实现方式或第六种可能的实现方式或第七种可能的实现方式,
[0052]所述方法还包括:
[0053]更新所述分配给所述待访问数据的数据域对应的标签域。
[0054]第二方面,提供了一种高速缓冲存储器,包括:
[0055]接收单元,用于接收处理器发送的访问待访问数据的请求信息,其中,所述请求信息包含所述待访问数据的物理地址信息;
[0056]获取单元,用于根据所述待访问数据的物理地址信息获取与所述待访问数据的物理地址信息对应的标签域;根据所述物理地址信息对应的所述标签域信息中的组标识信息、组内数据域偏移信息获取所述标签域对应的数据域,其中,每个所述组均包含N个标签域和Μ个数据域,所述标签域与所述数据域一一对应且一一对应的所述标签域和所述数据域处于相同组或者不同组,所述Ν为大于或等于1的自然数,所述Μ为大于或等于1的自然数且所述Ν大于所述Μ,每个所述标签域信息包含与所述标签域对应的所述数据域的组标识信息、组内数据域偏移信息,所述组标识信息用于指示与所述标签域对应的所述数据域所在的组,所述组内数据偏移信息用于指示所述数据域在所述数据域所在组内的偏移量
[0057]在第一种可能的实现方式中,结合第二方面,每个所述标签域信息还包含标签位信息,数据域是否有效信息,“ isptr”信息,
[0058]其中,所述标签位信息用于指示所述标签域对应的所述数据域对应的物理地址,所述数据域是否有效信息用于指示所述标签域对应的所述数据域被所述处理器访问还是没有被所述处理器访问,所述“ isptr”信息用于指示所述标签域对应的所述数据域中存储的数据来源于所述待访问数据对应的组还是来源于除所述待访问数据对应的组的其它组,
[0059]相应的,
[0060]所述获取单元还用于:根据所述待访问数据的物理地址信息获取所述待访问数据的物理地址信息对应的第一组及标签位信息;
[0061]若根据所述待访问数据的物理地址信息对应的第一组确定存储系统中所述第一组中存在状态位有效的标签域且若根据所述待访问数据的物理地址信息对应的标签位信息确定所述第一组中状态位有效的标签域中存在与所述待访问数据的物理地址信息对应的标签位信息相等的标签域,获取所述存储系统中状态位有效的标签域中的标签位信息与所述待访问数据的物理地址信息对应的标签位信息相等的第一标签域,其中,所述存在状态位有效的标签域包含指示数据域被所述处理器访问且指示所述标签域对应的数据域中存储的数据来源于所述待访问数据对应的组。
[0062]在第二种可能的实现方式中,结合第二方面,每个所述标签域信息还包含标签位信息,数据域是否有效信息,“ isptr”信息,
[0063]其中,所述标签位信息用于指示所述标签域对应的所述数据域对应的物理地址,所述数据域是否有效信息用于指示所述标签域对应的所述数据域被所述处理器访问还是没有被所述处理器访问,所述“ isptr”信息用于指示所述标签域对应的所述数据域中存储的数据来源于所述待访问数据对应的组还是来源于除所述待访问数据对应的组的其它组,
[0064]相应的,
[0065]所述获取单元还用于:根据所述待访问数据的物理地址信息获取所述待访问数据的物理地址信息对应的第一组及标签位信息;
[0066]若根据所述待访问数据的物理地址信息对应的第一组确定存储系统中所述第一组中不存在状态位有效的标签域,或者,若根据所述待访问数据的物理地址信息对应的第一组确定存储系统中所述第一组中存在状态位有效的标签域且若根据所述待访问数据的物理地址信息对应的标签位信息确定所述第一组中状态位有效的标签域中不存在与所述待访问数据的物理地址信息对应的标签位信息相等的标签域,获取分配所述待访问数据的组及组内数据域偏移信息并分配给所述待访问数据,其中,所述不存在状态位有效的标签域包含指示所述标签域对应的数据域没有被所述处理器访问且指示所述标签域对应的所述数据域中存储的数据来源于所述待访问数据对应的组,或者,指示所述标签域对应的所述数据域被所述处理器访问且指示所述标签域对应的所述数据域中存储的数据来源于除所述待访问数据对应的组的其它组,或者,指示所述标签域对应的所述数据域没有被所述处理器访问且指示所述标签域对应的所述数据域中存储的数据来源于除所述待访问数据对应的组的其它组。
[0067]在第三种可能的实现方式中,结合第二种可能的实现方式,
[0068]所述获取单元还包括:
[0069]选择模块,若根据所述存储系统中的每一组分别对应的利用率确定所述第一组对应的利用率小于第一利用率阈值,用于根据所述第一组中的每一标签域分别对应的数据域的利用率选择所述第一组中的每一标签域分别对应的数据域中利用率最低的数据域;
[0070]分配模块,用于将所述第一组及所述第一组中的每一标签域分别对应的数据域中利用率最低的数据域分配给所述待访问数据。
[0071]在第四种可能的实现方式中,结合第二种可能的实现方式,
[0072]所述选择模块还用于:若根据所述存储系统中的每一组分别对应的利用率确定所述第一组对应的利用率大于或等于所述第一利用率阈值,选择所述存储系统中除所述第一组外的所有组中利用率最低的第二组;根据所述第二组中每一标签域分别对应的数据域的利用率选择所述第二组中的每一标签域分别对应的数据域中利用率最低的数据域;
[0073]所述分配模块还用于:将所述第二组及所述第二组中的每一标签域分别对应的数据域中利用率最低的数据域分配给所述待访问数据。
[0074]在第五种可能的实现方式中,结合第二方面或第一种可能的实现方式,
[0075]每个所述标签域还包含与所述标签域对应的所述数据域的开始地址信息、结束地址信息,
[0076]所述开始地址信息用于指示所述标签域对应的所述数据域的起始位地址,所述结束地址信息用于指示所述标签域对应的所述数据域的结束位地址,
[0077]所述请求信息还包含所述待访问数据的粒度信息,
[0078]相应的,
[0079]所述获取单元还包括:
[0080]读模块,用于读取所述第一标签域中的指示所述第一标签域对应的数据域的起始位地址和结束位地址;
[0081]所述获取单元还用于:若根据所述待访问数据的物理地址信息及所述待访问数据的粒度信息确定所述待访问数据对应的所有数据存放在所述第一标签域对应的所述数据域中,根据所述第一标签域中的组标识信息及组内数据域偏移信息获取所述第一标签域对应的所述数据域的位置;根据所述第一标签域对应的所述数据域的位置获取所述第一标签域对应的数据域。
[0082]在第六种可能的实现方式中,结合第二方面或第一种可能的实现方式,每个所述标签域还包含与所述标签域对应的所述数据域的开始地址信息、结束地址信息,
[0083]所述开始地址信息用于指示所述标签域对应的所述数据域的起始位地址,所述结束地址信息用于指示所述标签域对应的所述数据域的结束位地址,
[0084]所述请求信息还包含所述待访问数据的粒度信息,
[0085]相应的,
[0086]所述读模块还用于:读取所述第一标签域中的指示所述第一标签域对应的数据域的起始位地址和结束位地址;
[0087]所述获取单元还用于:若根据所述待访问数据的物理地址信息及所述待访问数据的粒度信息确定所述待访问数据对应的所有数据不存放在所述第一标签域对应的所述数据域中,获取分配所述待访问数据的被替换数据域并分配给所述待访问数据,其中,所述被替换数据域包含所述第一组中的每一标签域对应的不同粒度的数据域中粒度大于且最接近所述待访问请求的粒度信息的数据域。
[0088]在第七种可能的实现方式中,结合第六种可能的实现方式,所述获取单元还包括:
[0089]合并模块,若根据所述第一组中的每一标签域分别对应的不同粒度的数据域的利用率确定所述第一组中的所述被替换数据域的利用率大于或等于第二利用率阈值且所述第一组中除所述被替换数据域外所有不同粒度的数据域中多个第二数据域的利用率都小于所述第二访问阈值,用于将所述多个第二数据域合并为所述被替换数据域并分配给所述待访问数据,其中,所述第二数据域包含所述第一组中除所述被替换数据域外所有不同粒度的数据域中粒度小于所述被替换数据域粒度的数据域;
[0090]或者,
[0091]所述获取单元还包括:
[0092]拆分模块,若根据所述第一组中的每一标签域分别对应的不同粒度的数据域的利用率确定所述第一组中的所述被替换数据域的利用率大于或等于所述第二利用率阈值且所述第一组中除所述被替换数据域外所有不同粒度的数据域中第三数据域的利用率小于所述第二访问阈值,用于将所述第三数据域拆分为一个或多个所述被替换数据域并分配给所述待访问数据,其中,所述第三数据域包含所述第一组中除所述被替换数据域外所有不同粒度的数据域中对应的数据域中粒度大于所述被替换数据域粒度的数据域;
[0093]或者,
[0094]所述分配模块还用于:若根据所述第一组中的每一标签域分别对应的不同粒度的数据域的利用率确定所述第一组中的所述被替换数据域的利用率小于所述第二利用率阈值,用于将所述被替换数据域分配给所述待访问数据。
[0095]在第八种可能的实现方式中,结合第一方面或第一种可能的实现方式或第二种可能的实现方式或第三种可能的实现方式或第四种可能的实现方式或第五种可能的实现方式或第六种可能的实现方式或第七种可能的实现方式,
[0096]所述高速缓冲存储器还包括:
[0097]更新单元,用于更新所述分配给所述待访问数据的数据域对应的标签域。
[0098]本发明实施例提供的一种访问数据的方法、设备及系统,将高速缓冲存储器中的标签域的属性进行扩充,从而使得标签域既可以对应本组的数据域,也可以对应其它组的数据域,进而提高了高速缓冲存储器中的数据域利用率,解决了现有技术中由于高速缓冲存储器中标签域和数据域是固定的一一对应的关系且分开存储,导致高速缓冲存储器中的数据域利用率低的问题。

【专利附图】

【附图说明】
[0099]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0100]图1为本发明实施例提供的一种N路组相联高速缓冲存储器的结构示意图;
[0101]图2为本发明实施例提供的一种闻速缓冲存储器缺失时的不意图;
[0102]图3为本发明实施例提供的一种访问数据的方法流程示意图;
[0103]图4为本发明实施例提供的另一种访问数据的方法流程示意图;
[0104]图5为本发明实施例提供的一种高速缓冲存储器内组织结构示意图;
[0105]图6为本发明实施例提供的另一种访问数据的方法流程示意图;
[0106]图7A为本发明实施例提供的一种高速缓冲存储器缺失处理模块的示意图;
[0107]图7B为本发明实施例提供的另一种高速缓冲存储器缺失处理模块的示意图;
[0108]图8为本发明实施例提供的另一种访问数据的方法流程示意图;
[0109]图9为本发明实施例提供的一种变粒度闻速缓冲存储器的不意图;
[0110]图10为本发明实施例提供的一种高速缓冲存储器的装置示意图;
[0111]图11为本发明实施例提供的另一种高速缓冲存储器的装置示意图;
[0112]图12为本发明实施例提供的一种高速缓冲存储器的装置示意图;
[0113]图13为本发明实施例提供的另一种高速缓冲存储器的装置示意图。

【具体实施方式】
[0114]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0115]一方面,本发明实施例提供一种访问数据的方法,参见图3,该方法可以包括以下步骤:
[0116]301:接收处理器发送的访问待访问数据的请求信息,其中,请求信息包含待访问数据的物理地址信息;
[0117]示例性的,接收处理器发送的访问待访问数据的请求信息的主体可以为高速缓冲存储器,也可以为内存,也可以为其它的存储系统,本发明实施例对此不进行限制。下面实施例以高速缓冲存储器为例进行具体说明。
[0118]302:根据待访问数据的物理地址信息获取与待访问数据的物理地址信息对应的标签域;
[0119]示例性的,每个标签域信息还包含标签位信息,数据域是否有效信息,“ isptr”信息,
[0120]其中,标签位信息用于指示标签域对应的数据域对应的物理地址,数据域是否有效信息用于指示标签域对应的数据域被处理器访问还是没有被处理器访问,“ isptr”信息用于指示标签域对应的数据域中存储的数据来源于待访问数据对应的组还是来源于除待访问数据对应的组的其它组,
[0121]相应的,
[0122]根据待访问数据的物理地址信息获取与待访问数据的物理地址信息对应的标签域,包括:
[0123]根据待访问数据的物理地址信息获取待访问数据的物理地址信息对应的第一组及标签位信息;
[0124]若根据待访问数据的物理地址信息对应的第一组确定存储系统中第一组中存在状态位有效的标签域且若根据待访问数据的物理地址信息对应的标签位信息确定第一组中状态位有效的标签域中存在与待访问数据的物理地址信息对应的标签位信息相等的标签域,获取存储系统中状态位有效的标签域中的标签位信息与待访问数据的物理地址信息对应的标签位信息相等的第一标签域,其中,存在状态位有效的标签域包含指示数据域被处理器访问且指示标签域对应的数据域中存储的数据来源于待访问数据对应的组。
[0125]示例性的,每个标签域信息还包含标签位信息,数据域是否有效信息,“isptr”信息,
[0126]其中,标签位信息用于指示标签域对应的数据域对应的物理地址,数据域是否有效信息用于指示标签域对应的数据域被处理器访问还是没有被处理器访问,“ isptr”信息用于指示标签域对应的数据域中存储的数据来源于待访问数据对应的组还是来源于除待访问数据对应的组的其它组,
[0127]相应的,
[0128]根据待访问数据的物理地址信息获取与待访问数据的物理地址信息对应的标签域,包括:
[0129]根据待访问数据的物理地址信息获取待访问数据的物理地址信息对应的第一组及标签位信息;
[0130]若根据待访问数据的物理地址信息对应的第一组确定存储系统中第一组中不存在状态位有效的标签域,或者,若根据待访问数据的物理地址信息对应的第一组确定存储系统中第一组中存在状态位有效的标签域且若根据待访问数据的物理地址信息对应的标签位信息确定第一组中状态位有效的标签域中不存在与待访问数据的物理地址信息对应的标签位信息相等的标签域,获取分配待访问数据的组及组内数据域偏移信息并分配给待访问数据,其中,不存在状态位有效的标签域包含指示标签域对应的数据域没有被处理器访问且指示标签域对应的数据域中存储的数据来源于待访问数据对应的组,或者,指示标签域对应的数据域被处理器访问且指示标签域对应的数据域中存储的数据来源于除待访问数据对应的组的其它组,或者,指示标签域对应的数据域没有被处理器访问且指示标签域对应的数据域中存储的数据来源于除待访问数据对应的组的其它组。
[0131]示例性的,获取分配待访问数据的组及组内数据域偏移信息并分配给待访问数据,包括:
[0132]若根据存储系统中的每一组分别对应的利用率确定第一组对应的利用率小于第一利用率阈值,根据所第一组中的每一标签域分别对应的数据域的利用率选择第一组中的每一标签域分别对应的数据域中利用率最低的数据域;
[0133]将第一组及第一组中的每一标签域分别对应的数据域中利用率最低的数据域分配给待访问数据。
[0134]示例性的,获取分配待访问数据的组及组内数据域偏移信息并分配给待访问数据,包括:
[0135]若根据存储系统中的每一组分别对应的利用率确定第一组对应的利用率大于或等于第一利用率阈值,选择存储系统中除第一组外的所有组中利用率最低的第二组;
[0136]根据第二组中每一标签域分别对应的数据域的利用率选择第二组中的每一标签域分别对应的数据域中利用率最低的数据域;
[0137]将第二组及第二组中的每一标签域分别对应的数据域中利用率最低的数据域分配给待访问数据。
[0138]303:根据物理地址信息对应的标签域信息中的组标识信息、组内数据域偏移信息获取标签域对应的数据域,其中,每个组均包含N个标签域和Μ个数据域,标签域与数据域一一对应且一一对应的标签域和数据域处于相同组或者不同组,Ν为大于或等于1的自然数,Μ为大于或等于1的自然数且所述Ν大于所述Μ,每个标签域信息包含与标签域对应的数据域的组标识信息、组内数据域偏移信息,组标识信息用于指示与标签域对应的数据域所在的组,组内数据偏移信息用于指示数据域在数据域所在组内的偏移量。
[0139]示例性的,每个标签域还包含与标签域对应的数据域的开始地址信息、结束地址信息,
[0140]开始地址信息用于指示标签域对应的数据域的起始位地址,结束地址信息用于指示标签域对应的数据域的结束位地址,
[0141]请求信息还包含待访问数据的粒度信息,
[0142]相应的,
[0143]根据物理地址信息对应的标签域信息中的组标识信息、组内数据域偏移信息获取标签域对应的数据域,包括:
[0144]读取第一标签域中的指示第一标签域对应的数据域的起始位地址和结束位地址;
[0145]若根据待访问数据的物理地址信息及待访问数据的粒度信息确定待访问数据对应的所有数据存放在第一标签域对应的数据域中,根据第一标签域中的组标识信息及组内数据域偏移信息获取第一标签域对应的数据域的位置;
[0146]根据第一标签域对应的数据域的位置获取第一标签域对应的数据域。
[0147]示例性的,每个标签域还包含与标签域对应的数据域的开始地址信息、结束地址信息,
[0148]开始地址信息用于指示标签域对应的数据域的起始位地址,结束地址信息用于指示标签域对应的数据域的结束位地址,
[0149]请求信息还包含待访问数据的粒度信息,
[0150]相应的,
[0151]根据物理地址信息对应的标签域信息中的组标识信息、组内数据域偏移信息获取标签域对应的数据域,包括:
[0152]读取第一标签域中的指示第一标签域对应的数据域的起始位地址和结束位地址;
[0153]若根据待访问数据的物理地址信息及待访问数据的粒度信息确定待访问数据对应的所有数据不存放在第一标签域对应的数据域中,获取分配待访问数据的被替换数据域并分配给待访问数据,其中,被替换数据域包含第一组中的每一标签域对应的不同粒度的数据域中粒度大于且最接近待访问请求的粒度信息的数据域。
[0154]示例性的,获取分配待访问数据的被替换数据域并分配给待访问数据,包括:
[0155]若根据第一组中的每一标签域分别对应的不同粒度的数据域的利用率确定第一组中的被替换数据域的利用率大于或等于第二利用率阈值且第一组中除被替换数据域外所有不同粒度的数据域中多个第二数据域的利用率都小于第二访问阈值,将多个第二数据域合并为被替换数据域并分配给待访问数据,其中,第二数据域包含第一组中除被替换数据域外所有不同粒度的数据域中粒度小于被替换数据域粒度的数据域;
[0156]或者,
[0157]若根据第一组中的每一标签域分别对应的不同粒度的数据域的利用率确定第一组中的被替换数据域的利用率大于或等于第二利用率阈值且第一组中除被替换数据域外所有不同粒度的数据域中第三数据域的利用率小于第二访问阈值,将第三数据域拆分为一个或多个被替换数据域并分配给待访问数据,其中,所述第三数据域包含第一组中除被替换数据域外所有不同粒度的数据域中对应的数据域中粒度大于被替换数据域粒度的数据域;
[0158]或者,
[0159]若根据第一组中的每一标签域分别对应的不同粒度的数据域的利用率确定第一组中的被替换数据域的利用率小于所述第二利用率阈值,将被替换数据域分配给待访问数据。
[0160]示例性的,该方法还可以包括:
[0161]更新分配给待访问数据的数据域对应的标签域。
[0162]本发明实施例提供的一种访问数据的方法,将高速缓冲存储器中的标签域的属性进行扩充,从而使得标签域既可以对应本组的数据域,也可以对应其它组的数据域,进而提高了高速缓冲存储器中的数据域利用率,解决了现有技术中由于高速缓冲存储器中标签域和数据域是固定的一一对应的关系且分开存储,导致高速缓冲存储器中的数据域利用率低的问题。
[0163]下面通过具体的实施例对上述方法实施例进行说明。
[0164]示例性的,本发明实施例的应用场景包括一个主机,该主机包括至少一个处理器,该处理器包括多个层次的组相联高速缓冲存储器。
[0165]实施例一
[0166]参见图4,为本发明实施例提供的另一种访问数据的流程示意图,如图所示,可以包括以下步骤:
[0167]401:高速缓冲存储器接收处理器发送的访问待访问数据的请求信息,其中,请求信息包含待访问数据的物理地址信息和待访问数据的粒度信息:
[0168]示例性的,待访问数据的物理地址信息为没有根据高速缓冲存储器行大小对齐的地址。
[0169]402:高速缓冲存储器根据待访问数据的物理地址信息获取待访问数据的物理地址信息对应的第一组及标签位信息,其中,标签位信息用于指示标签域对应的数据域对应的物理地址;
[0170]示例性的,待访问数据的物理地址信息可以通过现有技术中的哈希算法映射该待访问数据的物理地址信息对应的第一组及标签位信息,也可以通过其它方法来获得该待访问数据的物理地址信息对应的第一组及标签位信息,本发明实施例对此不进行限制。
[0171]403:高速缓冲存储器根据待访问数据的物理地址信息对应的第一组,判断高速缓冲存储器中的第一组中是否存在状态位有效的标签域,其中,每个组均包含N个标签域和Μ个数据域,标签域与数据域一一对应且一一对应的标签域和数据域处于相同组或者不同组,Ν为大于或等于1的自然数,Μ为大于或等于1的自然数且Ν大于Μ,每个标签域信息包含与标签域对应的数据域的组标识信息、组内数据域偏移信息、标签位信息、数据域是否有效信息、“ isptr”信息、数据域是否被更新信息、数据域大小信息、“PtrS”信息、开始地址信息和结束地址信息,组标识信息用于指示与标签域对应的数据域所在的组,组内数据偏移信息用于指示数据域在数据域所在组内的偏移量,数据域是否有效信息用于指示标签域对应的数据域被处理器访问还是没有被处理器访问,“ isptr”信息用于指示标签域对应的数据域中存储的数据来源于待访问数据对应的组还是来源于除待访问数据对应的组的其它组,数据域是否被更新信息用于指示标签域对应的数据被更新或没有被更新,数据域大小信息用于指示标签域对应的数据域的大小,若“isptr”信息用于指示标签域对应的数据域中存储的数据来源于待访问数据对应的组,“PtrS”信息为空,若“isptr”信息用于指示标签域对应的数据域中存储的数据来源于除待访问数据对应的组的其它组,“PtrS”信息用于指示该数据域中存储的数据来源于除待访问数据对应的组的其它组上对应的数据域,开始地址信息用于指示标签域对应的数据域的起始位地址,结束地址信息用于指示标签域对应的数据域的结束位地址;
[0172]示例性的,在本发明实施例中,每个标签域信息包含的与标签域对应的数据域的组标识信息、组内数据域偏移信息、数据域是否有效信息、“isPtr”信息、标签位信息、数据域是否被更新信息、“PtrS”信息、数据域起始地址信息、数据域结束地址信息及数据域大小信息可以分别用“86七”、“0打”、“妨11(1”、“18?廿”、“七&8”、“也1^”、叩^^”、“8七&代”、?11(1”及“size”来标识,也可以分别用其它标识符来标识,本发明实施例对此不进行限制。
[0173]参见图5,为本发明实施例提供的一种高速缓冲存储器内组织结构示意图,如图所示,在高速缓冲存储器的组织结构上,标签域和数据域并不是固定的一一对应的关系,标签域可以指向与标签域同一组中的任意一个数据域,还可以指向与标签域不同组的其它组的数据域,因此,在高速缓冲存储器中,标签域的数量N大于或等于数据域的数量;在高速缓冲存储器的物理实现上,扩充了标签域的属性,例如,“8社”、“(^”、“丨#廿”、“?^^”、“start”、“end” 及 “size,,。
[0174]示例性的,在现有技术中,标签域包含“tag”、“valid”及“dirty”三个属性,标签位与标签位对应的数据位的物理地址信息是一一对应的,“valid”用来指示标签域对应的数据域是否有效,“dirty”用来指示标签域对应的数据域是否被更新。
[0175]示例性的,在本发明实施例中,标签域中的“tag”、“valid”及“dirty”与现有技术中高速缓冲存储器设计中的“tag”、“valid”及“dirty”所指示的内容相同,针对现有技术中的高速缓冲存储器的标签域的属性的物理实现,扩充了标签域的属性信息,在标签域中可以增加“8帥”、“#广’、“1#廿”、“?廿5”、“#&代”、“的(1”及“&况”,还可以在标签域中增加其他一些与高速缓冲存储器替换策略相关的属性,例如,可以增加“accessCount”信息,用于指示统计每个标签域对应的数据域被访问的频率,本发明实施例对此不进行限制。
[0176]示例性的,标签域中的“set”用于指示该标签域对应的数据域存放的组的位置,该位置可以是本组,也可以是其他组;标签域信息中的“off”用于指定数据域在数据域所在组内的偏移量,例如,高速缓冲存储器设计中的路。示例性的,在现有技术中的高速缓冲存储器设计中,数据域在高速缓冲存储器中的位置是根据该数据域当前所在的数据域所在的组和路数来寻址的,但在本发明实施例中,由于高速缓冲存储器的组织结构及物理实现与现有技术的不同,因此数据域在高速缓冲存储器中的位置需要根据与数据域对应的标签域的“set”和“off”的值来确定数据域所在的组和路数,从而根据数据域所在的组和路数来获取数据域所在的位置,而且如果“set”的值不是数据域当前所在的组,“set”和“off”可以作为指向其他组的标签域,该标签域对应的数据域存放的是本标签域对应地址的数据。
[0177]标签域中的“ start ”和“ end”用来标识该标签域对应的数据域中的数据所对应的起始地址和结束地址,“start”和“end”是相对高速缓冲存储器行最大粒度内的偏移。例如,如果高速缓冲存储器行最大粒度是64字节,而数据域中的数据长度只有8字节且该8字节刚好是64字节中的前8个字节,那么该数据的起始地址是0,结束地址则是7。
[0178]示例性的,是存在状态位有效的标签域包含数据域是否有效信息有效且“isPtr”信息有效,若标签域中的数据域是否有效信息用“valid”来表示,“isPtr”信息用“isPtr”来表示,则“valid”有效用于指示数据域被处理器访问,可以用“is”来表示“valid”有效,“valid”无效用于指示数据域没有被处理器访问,可以用“no”来表示“valid”无效;“isPtr”有效用于指示标签域对应的数据域中存储的数据来源于待访问数据对应的组,可以用“no”来表示“ isPtr”有效,“ isPtr”无效用于指示标签域对应的数据域中存储的数据来源于除待访问数据对应的组的其它组,可以用“is”来表示“isPtr”无效。因此,存在状态位有效的标签域可以包含“valid”为“is”并且“isPtr”位为“no”。
[0179]否存在状态位有效的标签域包含“valid”为“no”且“isPtr”位为“no”,或者,“valid” 为 “is” 且 “isPtr” 位为 “is”,或者,“valid” 为 “no” 且“isPtr” 位为 “is”。
[0180]404:若确定高速缓冲存储器中第一组是存在状态位有效的标签域,高速缓冲存储器根据待访问数据的物理地址信息对应的标签位信息,判断高速缓冲存储器中状态位有效的标签域中是否存在与待访问数据的物理地址信息对应的标签位相等的标签域;
[0181]405:若确定高速缓冲存储器中状态位有效的标签域中是存在与待访问数据的物理地址信息对应的标签位信息相等的第一标签域,高速缓冲存储器读取第一标签域中的指示所述第一标签域对应的数据域的起始位地址和结束位地址;
[0182]406:高速缓冲存储器根据待访问数据的物理地址信息和待访问数据的粒度信息,判断待访问数据对应的所有数据是否都存放在第一数据域对应的数据域中;
[0183]示例性的,判断待访问数据是否存放在第一数据域对应的数据域中时可以将待访问数据的物理地址与第一数据域中的起始地址位对齐,再由待访问数据的粒度信息来判断待访问数据是否存放在第一数据域对应的数据域中,例如,第一数据域中的起始地址位为O和终止地址位为8共9个字节大小的数据,而待访问数据的物理地址信息的起始地址为3,粒度信息为10,则将待访问数据的物理地址的起始地址3与第一数据域对应的数据域的起始地址位O对齐,一个一个进行查看,当第一数据域对应的数据域到达结束地址8时,待访问数据的物理地址到达11,仅9个字节,而待访问信息的粒度为10个字节,因此,可以判定待访问数据无法存放在第一数据域对应的数据域。
[0184]407:若确定待访问数据对应的所有数据是都存放在第一数据域对应的数据域中,高速缓冲存储器根据第一标签域中的组标识信息及组内数据域偏移信息获取第一标签域对应的数据域的位置;
[0185]408:高速缓冲存储器根据第一数据域对应的数据域的位置获取第一标签域对应的数据域;
[0186]409:若根据待访问数据的物理地址信息对应的第一组确定高速缓冲存储器中第一组中否存在状态位有效的标签域,或者,若根据待访问数据的物理地址信息对应的第一组确定存储系统中第一组中是存在状态位有效的标签域且若根据待访问数据的物理地址信息对应的标签位信息确定第一组中状态位有效的标签域中否存在与待访问数据的物理地址信息对应的标签位信息相等的标签域,获取分配待访问数据的组及组内数据域偏移信息并分配给待访问数据,其中,否存在状态位有效的标签域包含指示标签域对应的数据域没有被处理器访问且指示标签域对应的数据域中存储的数据来源于待访问数据对应的组,或者,指示标签域对应的数据域被处理器访问且指示标签域对应的数据域中存储的数据来源于除待访问数据对应的组的其它组,或者,指示标签域对应的数据域没有被处理器访问且指示标签域对应的数据域中存储的数据来源于除待访问数据对应的组的其它组;
[0187]示例性的,高速缓冲存储器可以根据第一组中的每一标签域分别对应的数据域的利用率获取分配待访问数据的组及组内数据域偏移信息并分配给待访问数据,也可以采取其它的方法获取分配待访问数据的组及组内数据域偏移信息并分配给待访问数据,本发明实施例对此不进行限制。
[0188]410:若根据待访问数据的物理地址信息及待访问数据的粒度信息确定待访问数据对应的所有数据否存放在第一标签域对应的数据域中,获取分配待访问数据的被替换数据域并分配给待访问数据,其中,被替换数据域包含第一组中的每一标签域对应的不同粒度的数据域中粒度大于且最接近待访问请求的粒度信息的数据域。
[0189]示例性的,高速缓冲存储器可以根据待访问数据的粒度信息及第一组中的每一标签域分别对应的数据域的利用率获取分配待访问数据的被替换数据域并分配给待访问数据,也可以采取其它的方法来获取分配待访问数据的被替换数据域并分配给待访问数据,本发明实施例对此不进行限制。
[0190]411:更新分配给待访问数据的数据域对应的标签域。
[0191]示例性的,在步骤409中,若高速缓冲存储器根据第一组中的每一标签域分别对应的数据域的利用率获取分配待访问数据的组及组内数据域偏移信息并分配给待访问数据,则获取的分配待访问数据的组即为第一组,因此,需要将分配给待访问数据的数据域对应的标签域中的“tag”更改为待访问数据对应的标签位信息中的各属性信息更新为与该待访问数据对应的属性信息。
[0192]在步骤410中,若高速缓冲存储器可以根据待访问数据的粒度信息及第一组中的每一标签域分别对应的数据域的利用率获取分配待访问数据的被替换数据域并分配给待访问数据,则需要将分配给待访问数据的数据域对应的标签域中的“tag”更改为待访问数据对应的标签位信息中的各属性信息更新为与该待访问数据对应的属性信息。
[0193]本发明实施例提供的一种访问数据的方法,将高速缓冲存储器中的标签域的属性进行扩充,从而使得标签域既可以对应本组的数据域,也可以对应其它组的数据域,进而提高了高速缓冲存储器中的数据域利用率,解决了现有技术中由于高速缓冲存储器中标签域和数据域是固定的一一对应的关系且分开存储,导致高速缓冲存储器中的数据域利用率低的问题。
[0194]实施例二
[0195]参见图6,为本发明实施例提供的另一种访问数据的流程示意图,如图所示,可以包括以下步骤:
[0196]601:高速缓冲存储器接收处理器发送的访问待访问数据的请求信息,其中,请求信息包含待访问数据的物理地址信息和待访问数据的粒度信息;
[0197]示例性的,待访问数据的物理地址信息为没有根据高速缓冲存储器行大小对齐的地址。
[0198]602:高速缓冲存储器根据待访问数据的物理地址信息获取待访问数据的物理地址信息对应的第一组及标签位信息,其中,标签位信息用于指示标签域对应的数据域对应的物理地址;
[0199]示例性的,待访问数据的物理地址信息可以通过现有技术中的哈希算法映射该待访问数据的物理地址信息对应的第一组及标签位信息,也可以通过其它方法来获得该待访问数据的物理地址信息对应的第一组及标签位信息,本发明实施例对此不进行限制。
[0200]603:高速缓冲存储器根据待访问数据的物理地址信息对应的第一组,判断高速缓冲存储器中的第一组中是否存在状态位有效的标签域,其中,每个组均包含N个标签域和M个数据域,标签域与数据域一一对应且一一对应的标签域和数据域处于相同组或者不同组,N为大于或等于I的自然数,M为大于或等于I的自然数且N大于M,每个标签域信息包含与标签域对应的数据域的组标识信息、组内数据域偏移信息、标签位信息、数据域是否有效信息、“isptr”信息、数据域是否被更新信息、数据域大小信息、“PtrS”信息、开始地址信息和结束地址信息,组标识信息用于指示与标签域对应的数据域所在的组,组内数据偏移信息用于指示数据域在数据域所在组内的偏移量,数据域是否有效信息用于指示标签域对应的数据域被处理器访问还是没有被处理器访问,“isptr”信息用于指示标签域对应的数据域中存储的数据来源于待访问数据对应的组还是来源于除待访问数据对应的组的其它组,数据域是否被更新信息用于指示标签域对应的数据被更新或没有被更新,数据域大小信息用于指示标签域对应的数据域的大小,若“isptr”信息用于指示标签域对应的数据域中存储的数据来源于待访问数据对应的组,“PtrS”信息为空,若“ isptr”信息用于指示标签域对应的数据域中存储的数据来源于除待访问数据对应的组的其它组,“PtrS”信息用于指示该数据域中存储的数据来源于除待访问数据对应的组的其它组上对应的数据域,开始地址信息用于指示标签域对应的数据域的起始位地址,结束地址信息用于指示标签域对应的数据域的结束位地址;
[0201]示例性的,在本发明实施例中,每个标签域信息包含的与标签域对应的数据域的组标识信息、组内数据域偏移信息、数据域是否有效信息、“isPtr”信息、标签位信息、数据域是否被更新信息、“PtrS”信息、数据域起始地址信息、数据域结束地址信息及数据域大小信息可以分别用“86七”、“0打”、“妨11(1”、“18?廿”、“七&8”、“也1^”、叩^^”、“8七&代”、?11(1”及“size”来标识,也可以分别用其它标识符来标识,本发明实施例对此不进行限制。
[0202]参见图5,为本发明实施例提供的一种高速缓冲存储器内组织结构示意图,如图所示,在高速缓冲存储器的组织结构上,标签域和数据域并不是固定的一一对应的关系,标签域可以指向与标签域同一组中的任意一个数据域,还可以指向与标签域不同组的其它组的数据域,因此,在高速缓冲存储器中,标签域的数量N大于或等于数据域的数量;在高速缓冲存储器的物理实现上,扩充了标签域的属性,例如,“set”、“0ff”、“iSPtr”、“PtrS”、“start”、“end” 及 “size,,。
[0203]示例性的,在现有技术中,标签域包含“tag”、“valid”及“dirty”三个属性,标签位与标签位对应的数据位的物理地址信息是一一对应的,“ valid ”用来指示标签域对应的数据域是否有效,“dirty”用来指示标签域对应的数据域是否被更新。
[0204]示例性的,在本发明实施例中,标签域中的“tag”、“valid”及“dirty”与现有技术中高速缓冲存储器设计中的“tag”、“valid”及“dirty”所指示的内容相同,针对现有技术中的高速缓冲存储器的标签域的属性的物理实现,扩充了标签域的属性信息,在标签域中可以增加“8帥”、“#广’、“1#廿”、“?廿5”、“#&代”、“的(1”及“&况”,还可以在标签域中增加其他一些与高速缓冲存储器替换策略相关的属性,例如,可以增加“accessCount”信息,用于指示统计每个标签域对应的数据域被访问的频率,本发明实施例对此不进行限制。
[0205]示例性的,标签域中的“set”用于指示该标签域对应的数据域存放的组的位置,该位置可以是本组,也可以是其他组;标签域信息中的“off”用于指定数据域在数据域所在组内的偏移量,例如,高速缓冲存储器设计中的路。示例性的,在现有技术中的高速缓冲存储器设计中,数据域在高速缓冲存储器中的位置是根据该数据域当前所在的数据域所在的组和路数来寻址的,但在本发明实施例中,由于高速缓冲存储器的组织结构及物理实现与现有技术的不同,因此数据域在高速缓冲存储器中的位置需要根据与数据域对应的标签域的“set”和“off”的值来确定数据域所在的组和路数,从而根据数据域所在的组和路数来获取数据域所在的位置,而且如果“set”的值不是数据域当前所在的组,“set”和“off”可以作为指向其他组的标签域,该标签域对应的数据域存放的是本标签域对应地址的数据。
[0206]标签域中的“start”和“end”用来标识该标签域对应的数据域中的数据所对应的起始地址和结束地址,“start”和“end”是相对高速缓冲存储器行最大粒度内的偏移。例如,如果高速缓冲存储器行最大粒度是64字节,而数据域中的数据长度只有8字节且该8字节刚好是64字节中的前8个字节,那么该数据的起始地址是0,结束地址则是7。
[0207]示例性的,是存在状态位有效的标签域包含数据域是否有效信息有效且“isPtr”信息有效,若标签域中的数据域是否有效信息用“valid”来表示,“isPtr”信息用“isPtr”来表示,则“valid”有效用于指示数据域被处理器访问,可以用“is”来表示“valid”有效,“valid”无效用于指示数据域没有被处理器访问,可以用“no”来表示“valid”无效;“isPtr”有效用于指示标签域对应的数据域中存储的数据来源于待访问数据对应的组,可以用“no”来表示“isPtr”有效,“isPtr”无效用于指示标签域对应的数据域中存储的数据来源于除待访问数据对应的组的其它组,可以用“is”来表示“isPtr”无效。因此,存在状态位有效的标签域可以包含“valid”为“ is”并且“ isPtr”位为“no”。
[0208]否存在状态位有效的标签域包含“valid”为“no”且“isPtr”位为“no”,或者,“valid” 为 “is” 且 “isPtr” 位为 “is”,或者,“valid” 为 “no” 且、“isPtr” 位为 “is”。
[0209]604:若确定高速缓冲存储器中第一组是存在状态位有效的标签域,高速缓冲存储器根据待访问数据的物理地址信息对应的标签位信息,判断高速缓冲存储器中状态位有效的标签域中是否存在与待访问数据的物理地址信息对应的标签位相等的标签域;
[0210]605:若确定高速缓冲存储器中状态位有效的标签域中是存在与待访问数据的物理地址信息对应的标签位信息相等的第一标签域,高速缓冲存储器读取第一标签域中的指示所述第一标签域对应的数据域的起始位地址和结束位地址;
[0211]606:高速缓冲存储器根据待访问数据的物理地址信息和待访问数据的粒度信息,判断待访问数据对应的所有数据是否都存放在第一数据域对应的数据域中;
[0212]示例性的,判断待访问数据是否存放在第一数据域对应的数据域中时可以将待访问数据的物理地址与第一数据域中的起始地址位对齐,再由待访问数据的粒度信息来判断待访问数据是否存放在第一数据域对应的数据域中,例如,第一数据域中的起始地址位为O和终止地址位为8共9个字节大小的数据,而待访问数据的物理地址信息的起始地址为3,粒度信息为10,则将待访问数据的物理地址的起始地址3与第一数据域对应的数据域的起始地址位O对齐,一个一个进行查看,当第一数据域对应的数据域到达结束地址8时,待访问数据的物理地址到达11,仅9个字节,而待访问信息的粒度为10个字节,因此,可以判定待访问数据无法存放在第一数据域对应的数据域。
[0213]607:若确定待访问数据对应的所有数据是都存放在第一数据域对应的数据域中,高速缓冲存储器根据第一标签域中的组标识信息及组内数据域偏移信息获取第一标签域对应的数据域的位置;
[0214]608:高速缓冲存储器根据第一数据域对应的数据域的位置获取第一标签域对应的数据域;
[0215]609:若根据待访问数据的物理地址信息对应的第一组确定高速缓冲存储器中第一组中否存在状态位有效的标签域,或者,若根据待访问数据的物理地址信息对应的第一组确定存储系统中第一组中是存在状态位有效的标签域且若根据待访问数据的物理地址信息对应的标签位信息确定第一组中状态位有效的标签域中否存在与待访问数据的物理地址信息对应的标签位信息相等的标签域,根据高速缓冲存储器中的每一组分别对应的利用率判断第一组对应的利用率是否大于或等于第一利用率阈值;
[0216]示例性的,第一利用率阈值可以根据高速缓冲存储器中各组之间出现利用率不均衡的利用率及各组的利用率来获取,也可以通过其它方式来获取,本发明实施例对此不进行限制。
[0217]示例性的,利用率可以通过统计各set的请求访问次数来获取,也可以通过其它方式来获取,本发明实施例对此不进行限制。
[0218]示例性的,在现有技术中,高速缓冲存储器缺失处理模块中仅有set内高速缓冲存储器替换模块,参见图7A,高速缓冲存储器缺失处理模块利用组内高速缓冲存储器替换策略来选择待访问数据的替换项,例如,最近最少使用(Least Recently Used,简称LRU)算法,根据待访问数据对应的组内各标签域对应数据域的利用率,选择一个合适的数据域作为被替换项。由于在现有技术中仅考虑待访问数据对应的组中的每一标签域对应的数据域的利用率,没有考虑到若该组本身利用率非常高,该组中的每一标签域对应的数据域的利用率也非常高,若高速缓冲存储器中其它组的利用率非常低,则高速缓冲存储器缺失处理模块的物理实现方式会出现高速缓冲存储器中各组问利用率不均衡的现象。
[0219]针对上述现有技术带来的问题,本发明实施例采取了在高速缓冲存储器缺失处理模块中增加了各组利用率统计模块,参见图7B,为本发明实施例提供的高速缓冲存储器缺失处理模块示意图,包括各组利用率统计模块和组内高速缓冲存储器替换模块。各组利用率统计模块的主要功能是统计高速缓冲存储器中不同组的利用率,并依此判断各组问是否存在利用率不均衡的现象,例如,如果高速缓冲存储器中利用率最高的组和利用率最低的组之间的利用率之差超过了某个阈值,则可以判断组之间出现了利用率不均衡的现象。因此,克服了现有技术中出现的高速缓冲存储器中组之间利用率不均衡的现象。
[0220]610:若确定第一组的利用率否大于或等于第一利用率阈值,高速缓冲存储器根据第一组中每一标签域对应的数据域的利用率选择第一组中的利用率最低的数据域;
[0221]611:高速缓冲存储器将第一组及第一组中的每一标签域分别对应的数据域中利用率最低的数据域分配给待访问数据;
[0222]612:若确定第一组的利用率是大于或等于第一利用率阈值,高速缓冲存储器选择高速缓冲存储器中除第一组外的所有组中利用率最低的第二组;
[0223]613:高速缓冲存储器根据第二组中每一标签域分别对应的数据域的利用率选择第二组中的每一标签域分别对应的数据域中利用率最低的数据域;
[0224]614:高速缓冲存储器将第二组及第二组中的每一标签域分别对应的数据域中利用率最低的数据域分配给待访问数据;
[0225]615:若根据待访问数据的物理地址信息及待访问数据的粒度信息确定待访问数据对应的所有数据否存放在第一标签域对应的数据域中,高速缓冲存储器获取分配待访问数据的被替换数据域并分配给待访问数据,其中,被替换数据域包含第一组中的每一标签域对应的不同粒度的数据域中粒度大于且最接近待访问请求的粒度信息的数据域。
[0226]示例性的,高速缓冲存储器可以根据待访问数据的粒度信息及第一组中的每一标签域分别对应的数据域的利用率获取分配待访问数据的被替换数据域并分配给待访问数据,也可以采取其它的方法来获取分配待访问数据的被替换数据域并分配给待访问数据,本发明实施例对此不进行限制。
[0227]616:高速缓冲存储器更新分配给待访问数据的数据域对应的标签域。
[0228]示例性的,若选择的分配给待访问数据的数据域组即为数据域所在的组,则需要将分配给待访问数据的数据域对应的标签域中的“tag”更改为待访问数据对应的标签位信息中的各属性信息更新为与该待访问数据对应的属性信息。根据该标签域中“dirtv”的属性判断是否需要将当前数据域中的数据写回到下一级高速缓冲存储器或是内存中。再将分配给待访问数据的数据域对应的标签域中的“ tag ”更改为待访问数据对应的标签位信息中的各属性信息更新为与该待访问数据对应的属性信息。
[0229]若选择的组不是待访问请求对应的第一组,则需要将第一组中的标签域及选择的组中的标签域均根据待访问数据的属性进行更新。
[0230]本发明实施例提供的一种访问数据的方法,将高速缓冲存储器中的标签域的属性进行扩充,从而使得标签域既可以对应本组的数据域,也可以对应其它组的数据域,进而提高了高速缓冲存储器中的数据域利用率,解决了现有技术中由于高速缓冲存储器中标签域和数据域是固定的一一对应的关系且分开存储,导致高速缓冲存储器中的数据域利用率低的问题。
[0231]实施例三
[0232]参见图8,为本发明实施例提供的另一种访问数据的流程示意图,如图所示,可以包括以下步骤:
[0233]801:高速缓冲存储器接收处理器发送的访问待访问数据的请求信息,其中,请求信息包含待访问数据的物理地址信息和待访问数据的粒度信息;
[0234]示例性的,待访问数据的物理地址信息为没有根据高速缓冲存储器行大小对齐的地址。
[0235]802:高速缓冲存储器根据待访问数据的物理地址信息获取待访问数据的物理地址信息对应的第一组及标签位信息,其中,标签位信息用于指示标签域对应的数据域对应的物理地址;
[0236]示例性的,待访问数据的物理地址信息可以通过现有技术中的哈希算法映射该待访问数据的物理地址信息对应的第一组及标签位信息,也可以通过其它方法来获得该待访问数据的物理地址信息对应的第一组及标签位信息,本发明实施例对此不进行限制。
[0237]803:高速缓冲存储器根据待访问数据的物理地址信息对应的第一组,判断高速缓冲存储器中的第一组中是否存在状态位有效的标签域,其中,每个组均包含N个标签域和M个数据域,标签域与数据域一一对应且一一对应的标签域和数据域处于相同组或者不同组,N为大于或等于I的自然数,M为大于或等于I的自然数且N大于M,每个标签域信息包含与标签域对应的数据域的组标识信息、组内数据域偏移信息、标签位信息、数据域是否有效信息、“isptr”信息、数据域是否被更新信息、数据域大小信息、“PtrS”信息、开始地址信息和结束地址信息,组标识信息用于指示与标签域对应的数据域所在的组,组内数据偏移信息用于指示数据域在数据域所在组内的偏移量,数据域是否有效信息用于指示标签域对应的数据域被处理器访问还是没有被处理器访问,“isptr”信息用于指示标签域对应的数据域中存储的数据来源于待访问数据对应的组还是来源于除待访问数据对应的组的其它组,数据域是否被更新信息用于指示标签域对应的数据被更新或没有被更新,数据域大小信息用于指示标签域对应的数据域的大小,若“isptr”信息用于指示标签域对应的数据域中存储的数据来源于待访问数据对应的组,“PtrS”信息为空,若“isptr”信息用于指示标签域对应的数据域中存储的数据来源于除待访问数据对应的组的其它组,“PtrS”信息用于指示该数据域中存储的数据来源于除待访问数据对应的组的其它组上对应的数据域,开始地址信息用于指示标签域对应的数据域的起始位地址,结束地址信息用于指示标签域对应的数据域的结束位地址;
[0238]示例性的,在本发明实施例中,每个标签域信息包含的与标签域对应的数据域的组标识信息、组内数据域偏移信息、数据域是否有效信息、“isPtr”信息、标签位信息、数据域是否被更新信息、“PtrS”信息、数据域起始地址信息、数据域结束地址信息及数据域大小信息可以分别用“86七”、“0打”、“妨11(1”、“18?廿”、1&8”、“也1^”、叩^^”、“8七&代”、?11(1”及“size”来标识,也可以分别用其它标识符来标识,本发明实施例对此不进行限制。
[0239]参见图5,为本发明实施例提供的一种高速缓冲存储器内组织结构示意图,如图所示,在高速缓冲存储器的组织结构上,标签域和数据域并不是固定的一一对应的关系,标签域可以指向与标签域同一组中的任意一个数据域,还可以指向与标签域不同组的其它组的数据域,因此,在高速缓冲存储器中,标签域的数量N大于或等于数据域的数量;在高速缓冲存储器的物理实现上,扩充了标签域的属性,例如,“8社”、“(^”、“丨#廿”、“?^^”、“start”、“end” 及 “size,,。
[0240]示例性的,在现有技术中,标签域包含“ tag”、“ val id”及“ dirty ”三个属性,标签位与标签位对应的数据位的物理地址信息是一一对应的,“ valid ”用来指示标签域对应的数据域是否有效,“dirty”用来指示标签域对应的数据域是否被更新。
[0241]示例性的,在本发明实施例中,标签域中的“tag”、“valid”及“dirty”与现有技术中高速缓冲存储器设计中的“tag”、“valid”及“dirty”所指示的内容相同,针对现有技术中的高速缓冲存储器的标签域的属性的物理实现,扩充了标签域的属性信息,在标签域中可以增加“8帥”、“#广’、“1#廿”、“?廿5”、“#&代”、“的(1”及“&况”,还可以在标签域中增加其他一些与高速缓冲存储器替换策略相关的属性,例如,可以增加“accessCount”信息,用于指示统计每个标签域对应的数据域被访问的频率,本发明实施例对此不进行限制。
[0242]示例性的,标签域中的“set”用于指示该标签域对应的数据域存放的组的位置,该位置可以是本组,也可以是其他组;标签域信息中的“off”用于指定数据域在数据域所在组内的偏移量,例如,高速缓冲存储器设计中的路。示例性的,在现有技术中的高速缓冲存储器设计中,数据域在高速缓冲存储器中的位置是根据该数据域当前所在的数据域所在的组和路数来寻址的,但在本发明实施例中,由于高速缓冲存储器的组织结构及物理实现与现有技术的不同,因此数据域在高速缓冲存储器中的位置需要根据与数据域对应的标签域的“set”和“off”的值来确定数据域所在的组和路数,从而根据数据域所在的组和路数来获取数据域所在的位置,而且如果“set”的值不是数据域当前所在的组,“set”和“off”可以作为指向其他组的标签域,该标签域对应的数据域存放的是本标签域对应地址的数据。
[0243]标签域中的“start”和“end”用来标识该标签域对应的数据域中的数据所对应的起始地址和结束地址,“start”和“end”是相对高速缓冲存储器行最大粒度内的偏移。例如,如果高速缓冲存储器行最大粒度是64字节,而数据域中的数据长度只有8字节且该8字节刚好是64字节中的前8个字节,那么该数据的起始地址是0,结束地址则是7。
[0244]示例性的,是存在状态位有效的标签域包含数据域是否有效信息有效且“isPtr”信息有效,若标签域中的数据域是否有效信息用“valid”来表示,“isPtr”信息用“isPtr”来表示,则“valid”有效用于指示数据域被处理器访问,可以用“is”来表示“valid”有效,“valid”无效用于指示数据域没有被处理器访问,可以用“no”来表示“valid”无效;“isPtr”有效用于指示标签域对应的数据域中存储的数据来源于待访问数据对应的组,可以用“no”来表示“ isPtr”有效,“ isPtr”无效用于指示标签域对应的数据域中存储的数据来源于除待访问数据对应的组的其它组,可以用“is”来表示“isPtr”无效。因此,存在状态位有效的标签域可以包含“valid”为“is”并且“isPtr”位为“no”。
[0245]否存在状态位有效的标签域包含“valid”为“no”且“isPtr”位为“no”,或者,“valid” 为 “is” 且 “isPtr” 位为 “is”,或者,“valid” 为 “no” 且、“isPtr” 位为 “is”。
[0246]804:若确定高速缓冲存储器中第一组是存在状态位有效的标签域,高速缓冲存储器根据待访问数据的物理地址信息对应的标签位信息,判断高速缓冲存储器中状态位有效的标签域中是否存在与待访问数据的物理地址信息对应的标签位相等的标签域;
[0247]805:若确定高速缓冲存储器中状态位有效的标签域中是存在与待访问数据的物理地址信息对应的标签位信息相等的第一标签域,高速缓冲存储器读取第一标签域中的指示所述第一标签域对应的数据域的起始位地址和结束位地址;
[0248]806:高速缓冲存储器根据待访问数据的物理地址信息和待访问数据的粒度信息,判断待访问数据对应的所有数据是否都存放在第一数据域对应的数据域中;
[0249]示例性的,判断待访问数据是否存放在第一数据域对应的数据域中时可以将待访问数据的物理地址与第一数据域中的起始地址位对齐,再由待访问数据的粒度信息来判断待访问数据是否存放在第一数据域对应的数据域中,例如,第一数据域中的起始地址位为O和终止地址位为8共9个字节大小的数据,而待访问数据的物理地址信息的起始地址为3,粒度信息为10,则将待访问数据的物理地址的起始地址3与第一数据域对应的数据域的起始地址位O对齐,一个一个进行查看,当第一数据域对应的数据域到达结束地址8时,待访问数据的物理地址到达11,仅9个字节,而待访问信息的粒度为10个字节,因此,可以判定待访问数据无法存放在第一数据域对应的数据域。
[0250]807:若确定待访问数据对应的所有数据是都存放在第一数据域对应的数据域中,高速缓冲存储器根据第一标签域中的组标识信息及组内数据域偏移信息获取第一标签域对应的数据域的位置;
[0251]808:高速缓冲存储器根据第一数据域对应的数据域的位置获取第一标签域对应的数据域;
[0252]809:若根据待访问数据的物理地址信息对应的第一组确定高速缓冲存储器中第一组中否存在状态位有效的标签域,或者,若根据待访问数据的物理地址信息对应的第一组确定存储系统中第一组中是存在状态位有效的标签域且若根据待访问数据的物理地址信息对应的标签位信息确定第一组中状态位有效的标签域中否存在与待访问数据的物理地址信息对应的标签位信息相等的标签域,高速缓冲存储器获取分配待访问数据的组及组内数据域偏移信息并分配给待访问数据,其中,否存在状态位有效的标签域包含指示标签域对应的数据域没有被处理器访问且指示标签域对应的数据域中存储的数据来源于待访问数据对应的组,或者,指示标签域对应的数据域被处理器访问且指示标签域对应的数据域中存储的数据来源于除待访问数据对应的组的其它组,或者,指示标签域对应的数据域没有被处理器访问且指示标签域对应的数据域中存储的数据来源于除待访问数据对应的组的其它组;
[0253]示例性的,高速缓冲存储器可以根据第一组中的每一标签域分别对应的数据域的利用率获取分配待访问数据的组及组内数据域偏移信息并分配给待访问数据,也可以采取其它的方法获取分配待访问数据的组及组内数据域偏移信息并分配给待访问数据,本发明实施例对此不进行限制。
[0254]810:若根据所述待访问数据的物理地址信息及所述待访问数据的粒度信息确定所述待访问数据对应的所有数据不存放在所述第一标签域对应的所述数据域中,判断第一组中的被替换数据域的利用率是否大于或等于第二利用率阈值,其中,被替换数据域包含第一组中的每一标签域对应的不同粒度的数据域中粒度大于且最接近待访问请求的粒度信息的数据域;
[0255]示例性的,第二利用率阈值可以根据高速缓冲存储器中每一组中的每一标签域对应的数据域之间出现利用率不均衡的利用率及每一标签域分别对应的数据域的利用率来获取,也可以通过其它方式来获取,本发明实施例对此不进行限制。
[0256]示例性的,利用率可以通过统计数据域的请求访问次数来获取,也可以通过其它方式来获取,本发明实施例对此不进行限制。
[0257]811:若根据第一组中的每一标签域分别对应的不同粒度的数据域的利用率确定第一组中的被替换数据域的利用率是大于或等于第二利用率阈值且第一组中除被替换数据域外所有不同粒度的数据域中多个第二数据域的利用率都小于第二访问阈值,高速缓冲存储器将多个第二数据域合并为被替换数据域并分配给待访问数据,其中,第二数据域包含第一组中除被替换数据域外所有不同粒度的数据域中粒度小于被替换数据域粒度的数据域;
[0258]示例性的,在现有技术中,高速缓冲存储器行中的数据域的大小是根据处理器发送访问待访问数据的粒度信息来分配需要的数据域,每个高速缓冲存储器行中数据域的大小就是处理器发送的待访问数据的大小。因此,数据域的大小与待访问数据是直接相关的且是任意的。为了提高效率,将地址连续但处于不同高速缓冲存储器行中的数据合并成一个大的高速缓冲存储器行。为了实现变粒度高速缓冲存储器行,将高速缓冲存储器行中标签域和数据域储存在一起,连续存储在同一个高速缓冲存储器中,高速缓冲存储器中每个存储单元既可以存储标签域,也可能存储数据域。每个高速缓冲存储器行的大小根据待访问数据的粒度信息来定,每个标签域分别增加了额外的属性,例如,起始的字节数、结束的字节数。这种方法可以保证高速缓冲存储器行中的内容都是真正有效被访问的,不存在空闲不被访问的数据,但是由于每个存储单元都可能是标签域,而每个处理器发送的访问待访问数据的请求时高速缓冲存储器都需要比较标签域中的“tag”位与待访问数据对应的标签位是否相等,因而在每两个相邻的存储单元都需要增加一个比较器,导致整个高速缓冲存储器的结构需要做很大的修改,而且会明显增加延迟和功耗。
[0259]针对上述现有技术中存在的问题,本发明实施例提出了一种变粒度高速缓冲存储器的实现方式,参见图9,为本发明实施例提供的一种变粒度高速缓冲存储器的示意图,如图所示,高速缓冲存储器中包括多种粒度的数据域且数据域的长度是可变的。在高速缓冲存储器中增加了请求粒度统计模块和数据域合并及拆分模块来实现变粒度数据域,请求粒度统计模块主要用于统计不同粒度请求的利用率;而数据域合并及拆分模块主要用于将大粒度的数据域拆分为多个小粒度的数据域,以及将多个小粒度的数据域合并为大粒度的数据域。当数据域合并及拆分模块将相邻的小粒度的数据块合并为一个大粒度的数据块时,需要同时分别修改其中与各小粒度数据块对应的一个标签域中的“start”、“end”及“size”的属性,并将多余的数据域置为无效;当数据域合并及拆分模块将大粒度的数据域拆分为多个小粒度的数据域时,需要同时修改大粒度的数据域对应的标签位中的“start”和“end”位及“size”,将该标签位与其中拆分的一个小粒度的数据域对应,还需要分配额外的标签域对应拆分后的其它数据域。
[0260]812:若根据第一组中的每一标签域分别对应的不同粒度的数据域的利用率确定第一组中的被替换数据域的利用率是大于或等于第二利用率阈值且第一组中除被替换数据域外所有不同粒度的数据域中第三数据域的利用率小于第二访问阈值,高速缓冲存储器将第三数据域拆分为一个或多个被替换数据域并分配给待访问数据,其中,第三数据域包含第一组中除被替换数据域外所有不同粒度的数据域中对应的数据域中粒度大于被替换数据域粒度的数据域;
[0261]813:若根据第一组中的每一标签域分别对应的不同粒度的数据域的利用率确定第一组中的被替换数据域的利用率否大于或等于第二利用率阈值,高速缓冲存储器将被替换数据域分配给待访问数据。
[0262]814:高速缓冲存储器更新分配给待访问数据的数据域对应的标签域。
[0263]示例性的,高速缓冲存储器更新分配给待访问数据的数据域对应的标签域的属性信息在步骤811中进行具体说明。
[0264]本发明实施例提供的一种访问数据的方法,将高速缓冲存储器中的标签域的属性进行扩充,从而使得标签域既可以对应本组的数据域,也可以对应其它组的数据域,进而提高了高速缓冲存储器中的数据域利用率,解决了现有技术中由于高速缓冲存储器中标签域和数据域是固定的一一对应的关系且分开存储,导致高速缓冲存储器中的数据域利用率低的问题。
[0265]示例性的,本发明实施例的应用场景包括一个主机,该主机包括至少一个处理器,该处理器包括多个层次的组相联高速缓冲存储器。
[0266]另一方面,本发明实施例提供一种高速缓冲存储器10,如图10或11所示,可以包括:
[0267]接收单元1001,用于接收处理器发送的访问待访问数据的请求信息,其中,请求信息包含所述待访问数据的物理地址信息;
[0268]获取单元1002,用于根据待访问数据的物理地址信息获取与待访问数据的物理地址信息对应的标签域;根据物理地址信息对应的标签域信息中的组标识信息、组内数据域偏移信息获取标签域对应的数据域,其中,每个组均包含N个标签域和M个数据域,标签域与所述数据域一一对应且一一对应的标签域和数据域处于相同组或者不同组,N为大于或等于I的自然数,M为大于或等于I的自然数且N大于M,每个标签域信息包含与标签域对应的数据域的组标识信息、组内数据域偏移信息,组标识信息用于指示与标签域对应的数据域所在的组,组内数据偏移信息用于指示数据域在数据域所在组内的偏移量。
[0269]示例性的,每个标签域信息还包含标签位信息,数据域是否有效信息,“isptr”信息,
[0270]其中,标签位信息用于指示标签域对应的数据域对应的物理地址,数据域是否有效信息用于指示标签域对应的数据域被处理器访问还是没有被处理器访问,“isptr”信息用于指示标签域对应的数据域中存储的数据来源于待访问数据对应的组还是来源于除待访问数据对应的组的其它组,
[0271]相应的,
[0272]获取单元1002还用于:根据待访问数据的物理地址信息获取待访问数据的物理地址信息对应的第一组及标签位信息;
[0273]若根据待访问数据的物理地址信息对应的第一组确定存储系统中第一组中存在状态位有效的标签域且若根据待访问数据的物理地址信息对应的标签位信息确定第一组中状态位有效的标签域中存在与待访问数据的物理地址信息对应的标签位信息相等的标签域,获取存储系统中状态位有效的标签域中的标签位信息与待访问数据的物理地址信息对应的标签位信息相等的第一标签域,其中,存在状态位有效的标签域包含指示数据域被处理器访问且指示标签域对应的数据域中存储的数据来源于待访问数据对应的组。
[0274]示例性的,每个标签域信息还包含标签位信息,数据域是否有效信息,“isptr”信息,
[0275]其中,标签位信息用于指示标签域对应的数据域对应的物理地址,数据域是否有效信息用于指示标签域对应的数据域被处理器访问还是没有被处理器访问,“isptr”信息用于指示标签域对应的数据域中存储的数据来源于待访问数据对应的组还是来源于除待访问数据对应的组的其它组,
[0276]相应的,
[0277]获取单元1002还用于:根据待访问数据的物理地址信息获取待访问数据的物理地址信息对应的第一组及标签位信息;
[0278]若根据待访问数据的物理地址信息对应的第一组确定存储系统中第一组中不存在状态位有效的标签域,或者,若根据待访问数据的物理地址信息对应的第一组确定存储系统中第一组中存在状态位有效的标签域且若根据待访问数据的物理地址信息对应的标签位信息确定第一组中状态位有效的标签域中不存在与待访问数据的物理地址信息对应的标签位信息相等的标签域,获取分配待访问数据的组及组内数据域偏移信息并分配给待访问数据,其中,不存在状态位有效的标签域包含指示标签域对应的数据域没有被处理器访问且指示标签域对应的数据域中存储的数据来源于待访问数据对应的组,或者,指示标签域对应的数据域被处理器访问且指示标签域对应的数据域中存储的数据来源于除待访问数据对应的组的其它组,或者,指示标签域对应的数据域没有被处理器访问且指示标签域对应的数据域中存储的数据来源于除待访问数据对应的组的其它组。
[0279]示例性的,获取单元1002还包括:
[0280]选择模块10001,若根据存储系统中的每一组分别对应的利用率确定第一组对应的利用率小于第一利用率阈值,用于根据第一组中的每一标签域分别对应的数据域的利用率选择第一组中的每一标签域分别对应的数据域中利用率最低的数据域;
[0281]分配模块10002,用于将第一组及第一组中的每一标签域分别对应的数据域中利用率最低的数据域分配给待访问数据。
[0282]示例性的,选择模块10001还用于:若根据存储系统中的每一组分别对应的利用率确定第一组对应的利用率大于或等于第一利用率阈值,选择存储系统中除第一组外的所有组中利用率最低的第二组;根据第二组中每一标签域分别对应的数据域的利用率选择第二组中的每一标签域分别对应的数据域中利用率最低的数据域;
[0283]分配模块10002还用于:将第二组及第二组中的每一标签域分别对应的数据域中利用率最低的数据域分配给待访问数据。
[0284]示例性的,每个标签域还包含与标签域对应的数据域的开始地址信息、结束地址信息,
[0285]开始地址信息用于指示标签域对应的数据域的起始位地址,结束地址信息用于指示标签域对应的数据域的结束位地址,
[0286]请求信息还包含待访问数据的粒度信息,
[0287]相应的,
[0288]获取单元1002还包括:
[0289]读模块10003,用于读取第一标签域中的指示第一标签域对应的数据域的起始位地址和结束位地址;
[0290]获取单元1002还用于:若根据待访问数据的物理地址信息及待访问数据的粒度信息确定待访问数据对应的所有数据存放在第一标签域对应的数据域中,根据第一标签域中的组标识信息及组内数据域偏移信息获取第一标签域对应的数据域的位置;根据第一标签域对应的数据域的位置获取第一标签域对应的数据域。
[0291]示例性的,每个标签域还包含与标签域对应的数据域的开始地址信息、结束地址信息,
[0292]开始地址信息用于指示标签域对应的数据域的起始位地址,结束地址信息用于指示标签域对应的数据域的结束位地址,
[0293]请求信息还包含待访问数据的粒度信息,
[0294]相应的,
[0295]读模块10003还用于:读取第一标签域中的指示第一标签域对应的数据域的起始位地址和结束位地址;
[0296]获取单元1002还用于:若根据待访问数据的物理地址信息及待访问数据的粒度信息确定待访问数据对应的所有数据不存放在第一标签域对应的数据域中,获取分配待访问数据的被替换数据域并分配给待访问数据,其中,被替换数据域包含第一组中的每一标签域对应的不同粒度的数据域中粒度大于且最接近待访问请求的粒度信息的数据域。
[0297]示例性的,获取单元1002还包括:
[0298]合并模块10004,若根据第一组中的每一标签域分别对应的不同粒度的数据域的利用率确定第一组中的被替换数据域的利用率大于或等于第二利用率阈值且第一组中除被替换数据域外所有不同粒度的数据域中多个第二数据域的利用率都小于第二访问阈值,合并模块10004用于将多个第二数据域合并为被替换数据域并分配给待访问数据,其中,第二数据域包含第一组中除被替换数据域外所有不同粒度的数据域中粒度小于被替换数据域粒度的数据域;
[0299]或者,
[0300]获取单元1002还包括:
[0301]拆分模块10005,若根据所述第一组中的每一标签域分别对应的不同粒度的数据域的利用率确定所述第一组中的所述被替换数据域的利用率大于或等于所述第二利用率阈值且所述第一组中除所述被替换数据域外所有不同粒度的数据域中第三类数据域第三数据域的利用率小于所述第二访问阈值,拆分模块10005用于将第三类数据域第三数据域拆分为一个或多个被替换数据域并分配给待访问数据,其中,第三类数据域第三数据域包含第一组中除被替换数据域外所有不同粒度的数据域中对应的数据域中粒度大于被替换数据域粒度的数据域;
[0302]或者,
[0303]分配模块10002还用于:若根据第一组中的每一标签域分别对应的不同粒度的数据域的利用率确定第一组中的所述被替换数据域的利用率小于第二利用率阈值,用于将被替换数据域分配给待访问数据。
[0304]高速缓冲存储器10还可以包括:
[0305]更新单元1003,用于更新分配给待访问数据的数据域对应的标签域。
[0306]本发明实施例提供的一种高速缓冲存储器10,将高速缓冲存储器10中的标签域的属性进行扩充,从而使得标签域既可以对应本组的数据域,也可以对应其它组的数据域,进而提高了高速缓冲存储器10中的数据域利用率,解决了现有技术中由于高速缓冲存储器10中标签域和数据域是固定的一一对应的关系且分开存储,导致高速缓冲存储器10中的数据域利用率低的问题。
[0307]再一方面,本发明实施例提供一种高速缓冲存储器10,可以包括接收器1201,存储器1202,用于进行该高速缓冲存储器10内部各设备之间的连接的至少一个通信总线1203,用于实现这些装置之间的连接和相互通信。
[0308]其中,通信总线1203可以是工业标准体系结构(Industry StandardArchitecture,简称为ISA)总线、外部设备互连(Peripheral Component,简称为PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,简称为EISA)总线等。该总线1203可以分为地址总线、数据总线、控制总线等。为便于表示,图12或13中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0309]存储器1202可以包括只读存储器和随机存取存储器,并向处理器1002提供指令和数据。
[0310]如图12或13所示,高速缓冲存储器10可以包括:
[0311]接收器1201,用于接收处理器发送的访问待访问数据的请求信息,其中,请求信息包含所述待访问数据的物理地址信息;
[0312]高速缓冲存储器10还可以用于:根据待访问数据的物理地址信息获取与待访问数据的物理地址信息对应的标签域;根据物理地址信息对应的标签域信息中的组标识信息、组内数据域偏移信息获取标签域对应的数据域,其中,每个组均包含N个标签域和M个数据域,标签域与所述数据域一一对应且一一对应的标签域和数据域处于相同组或者不同组,N为大于或等于I的自然数,M为大于或等于I的自然数且N大于M,每个标签域信息包含与标签域对应的数据域的组标识信息、组内数据域偏移信息,组标识信息用于指示与标签域对应的数据域所在的组,组内数据偏移信息用于指示数据域在数据域所在组内的偏移量。
[0313]示例性的,每个标签域信息还包含标签位信息,数据域是否有效信息,“isptr”信息,
[0314]其中,标签位信息用于指示标签域对应的数据域对应的物理地址,数据域是否有效信息用于指示标签域对应的数据域被处理器访问还是没有被处理器访问,“isptr”信息用于指示标签域对应的数据域中存储的数据来源于待访问数据对应的组还是来源于除待访问数据对应的组的其它组,
[0315]相应的,
[0316]高速缓冲存储器10还可以用于:根据待访问数据的物理地址信息获取待访问数据的物理地址信息对应的第一组及标签位信息;
[0317]若根据待访问数据的物理地址信息对应的第一组确定存储系统中第一组中存在状态位有效的标签域且若根据待访问数据的物理地址信息对应的标签位信息确定第一组中状态位有效的标签域中存在与待访问数据的物理地址信息对应的标签位信息相等的标签域,获取存储系统中状态位有效的标签域中的标签位信息与待访问数据的物理地址信息对应的标签位信息相等的第一标签域,其中,存在状态位有效的标签域包含指示数据域被处理器访问且指示标签域对应的数据域中存储的数据来源于待访问数据对应的组。
[0318]示例性的,每个标签域信息还包含标签位信息,数据域是否有效信息,“isptr”信息,
[0319]其中,标签位信息用于指示标签域对应的数据域对应的物理地址,数据域是否有效信息用于指示标签域对应的数据域被处理器访问还是没有被处理器访问,“isptr”信息用于指示标签域对应的数据域中存储的数据来源于待访问数据对应的组还是来源于除待访问数据对应的组的其它组,
[0320]相应的,
[0321]高速缓冲存储器10还可以用于:根据待访问数据的物理地址信息获取待访问数据的物理地址信息对应的第一组及标签位信息;
[0322]若根据待访问数据的物理地址信息对应的第一组确定存储系统中第一组中不存在状态位有效的标签域,或者,若根据待访问数据的物理地址信息对应的第一组确定存储系统中第一组中存在状态位有效的标签域且若根据待访问数据的物理地址信息对应的标签位信息确定第一组中状态位有效的标签域中不存在与待访问数据的物理地址信息对应的标签位信息相等的标签域,获取分配待访问数据的组及组内数据域偏移信息并分配给待访问数据,其中,不存在状态位有效的标签域包含指示标签域对应的数据域没有被处理器访问且指示标签域对应的数据域中存储的数据来源于待访问数据对应的组,或者,指示标签域对应的数据域被处理器访问且指示标签域对应的数据域中存储的数据来源于除待访问数据对应的组的其它组,或者,指示标签域对应的数据域没有被处理器访问且指示标签域对应的数据域中存储的数据来源于除待访问数据对应的组的其它组。
[0323]示例性的,高速缓冲存储器10还可以包括:高速缓冲存储器缺失模块1204,用于在处理器访问缺失时的处理模块,高速缓冲存储器缺失模块1204还可以包括:组内高速缓冲存储器替换模块12001和各组利用率统计模块12002,分别用于统计高速缓冲存储器内部每一组中各标签域对应的数据域的利用率和用于统计高速缓冲存储器内部每一组对应的利用率。
[0324]示例性的,高速缓冲存储器10还可以用于:若根据高速缓冲存储器10中的各组利用率统计模块12002确定第一组对应的利用率小于第一利用率阈值,高速缓冲存储器10用于根据组内高速缓冲存储器替换模块12001选择第一组中的每一标签域分别对应的数据域中利用率最低的数据域;将第一组及第一组中的每一标签域分别对应的数据域中利用率最低的数据域分配给待访问数据。
[0325]示例性的,高速缓冲存储器10还可以用于:若根据高速缓冲存储器10中的各组利用率统计模块12002确定第一组对应的利用率大于或等于第一利用率阈值,选择高速缓冲存储器10中除第一组外的所有组中利用率最低的第二组;根据组内高速缓冲存储器替换模块12001选择第二组中的每一标签域分别对应的数据域中利用率最低的数据域;将第二组及第二组中的每一标签域分别对应的数据域中利用率最低的数据域分配给待访问数据。
[0326]示例性的,每个标签域还包含与标签域对应的数据域的开始地址信息、结束地址信息,
[0327]开始地址信息用于指示标签域对应的数据域的起始位地址,结束地址信息用于指示标签域对应的数据域的结束位地址,
[0328]请求信息还包含待访问数据的粒度信息,
[0329]相应的,高速缓冲存储器10还可以用于:读取第一标签域中的指示第一标签域对应的数据域的起始位地址和结束位地址;若根据待访问数据的物理地址信息及待访问数据的粒度信息确定待访问数据对应的所有数据存放在第一标签域对应的数据域中,根据第一标签域中的组标识信息及组内数据域偏移信息获取第一标签域对应的数据域的位置;根据第一标签域对应的数据域的位置获取第一标签域对应的数据域。
[0330]示例性的,每个标签域还包含与标签域对应的数据域的开始地址信息、结束地址信息,
[0331]开始地址信息用于指示标签域对应的数据域的起始位地址,结束地址信息用于指示标签域对应的数据域的结束位地址,
[0332]请求信息还包含待访问数据的粒度信息,
[0333]相应的,
[0334]高速缓冲存储器10还可以用于:读取第一标签域中的指示第一标签域对应的数据域的起始位地址和结束位地址;若根据待访问数据的物理地址信息及待访问数据的粒度信息确定待访问数据对应的所有数据不存放在第一标签域对应的数据域中,获取分配待访问数据的被替换数据域并分配给待访问数据,其中,被替换数据域包含第一组中的每一标签域对应的不同粒度的数据域中粒度大于且最接近待访问请求的粒度信息的数据域。
[0335]示例性的,高速缓冲存储器10还可以包括数据域合并及拆分模块1205和请求粒度统计模块1206,数据域合并及拆分模块1205用于合并或拆分高速缓冲存储器10中的不同粒度的数据域,请求粒度统计模块1206用于统计不同粒度数据域的利用率。
[0336]示例性的,数据域合并及拆分模块1205还可以用于:若根据请求粒度统计模块1206确定第一组中的被替换数据域的利用率大于或等于第二利用率阈值且第一组中除被替换数据域外所有不同粒度的数据域中多个第二数据域的利用率都小于第二访问阈值,数据域合并及拆分模块1205用于将多个第二数据域合并为被替换数据域并分配给待访问数据,其中,第二数据域包含第一组中除被替换数据域外所有不同粒度的数据域中粒度小于被替换数据域粒度的数据域;
[0337]或者,
[0338]数据域合并及拆分模块1205还可以用于:若根据请求粒度统计模块1206确定所述第一组中的所述被替换数据域的利用率大于或等于所述第二利用率阈值且所述第一组中除所述被替换数据域外所有不同粒度的数据域中第三数据域的利用率小于所述第二访问阈值,数据域合并及拆分模块1205用于将第三数据域拆分为一个或多个被替换数据域并分配给待访问数据,其中,第三数据域包含第一组中除被替换数据域外所有不同粒度的数据域中对应的数据域中粒度大于被替换数据域粒度的数据域;
[0339]或者,
[0340]数据域合并及拆分模块1205还可以用于:若根据请求粒度统计模块1206确定第一组中的所述被替换数据域的利用率小于第二利用率阈值,数据域合并及拆分模块1205用于将被替换数据域分配给待访问数据。
[0341]本发明实施例提供的一种高速缓冲存储器10,将高速缓冲存储器10中的标签域的属性进行扩充,从而使得标签域既可以对应本组的数据域,也可以对应其它组的数据域,进而提高了高速缓冲存储器10中的数据域利用率,解决了现有技术中由于高速缓冲存储器10中标签域和数据域是固定的一一对应的关系且分开存储,导致高速缓冲存储器10中的数据域利用率低的问题。
[0342]所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0343]在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0344]所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0345]另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
[0346]上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
[0347]最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
【权利要求】
1.一种访问数据的方法,其特征在于,包括: 接收处理器发送的访问待访问数据的请求信息,其中,所述请求信息包含所述待访问数据的物理地址信息; 根据所述待访问数据的物理地址信息获取与所述待访问数据的物理地址信息对应的标签域; 根据所述物理地址信息对应的所述标签域信息中的组标识信息、组内数据域偏移信息获取所述标签域对应的数据域,其中,每个所述组均包含N个标签域和M个数据域,所述标签域与所述数据域一一对应且一一对应的所述标签域和所述数据域处于相同组或者不同组,所述N为大于或等于I的自然数,所述M为大于或等于I的自然数且所述N大于所述M,每个所述标签域信息包含与所述标签域对应的所述数据域的组标识信息、组内数据域偏移信息,所述组标识信息用于指示与所述标签域对应的所述数据域所在的组,所述组内数据偏移信息用于指示所述数据域在所述数据域所在组内的偏移量。
2.根据权利要求1所述的方法,其特征在于,每个所述标签域信息还包含标签位信息,数据域是否有效信息,“ isptr”信息, 其中,所述标签位信息用于指示所述标签域对应的所述数据域对应的物理地址,所述数据域是否有效信息用于指示所述标签域对应的所述数据域被所述处理器访问还是没有被所述处理器访问,所述“isptr”信息用于指示所述标签域对应的所述数据域中存储的数据来源于所述待访问数据对应的组还是来源于除所述待访问数据对应的组的其它组, 相应的, 所述根据所述待访问数据的物理地址信息获取与所述待访问数据的物理地址信息对应的标签域,包括: 根据所述待访问数据的物理地址信息获取所述待访问数据的物理地址信息对应的第一组及标签位信息; 若根据所述待访问数据的物理地址信息对应的第一组确定存储系统中所述第一组中存在状态位有效的标签域且若根据所述待访问数据的物理地址信息对应的标签位信息确定所述第一组中状态位有效的标签域中存在与所述待访问数据的物理地址信息对应的标签位信息相等的标签域,获取所述存储系统中状态位有效的标签域中的标签位信息与所述待访问数据的物理地址信息对应的标签位信息相等的第一标签域,其中,所述存在状态位有效的标签域包含指示数据域被所述处理器访问且指示所述标签域对应的数据域中存储的数据来源于所述待访问数据对应的组。
3.根据权利要求1所述的方法,其特征在于,每个所述标签域信息还包含标签位信息,数据域是否有效信息,“ isptr”信息, 其中,所述标签位信息用于指示所述标签域对应的所述数据域对应的物理地址,所述数据域是否有效信息用于指示所述标签域对应的所述数据域被所述处理器访问还是没有被所述处理器访问,所述“isptr”信息用于指示所述标签域对应的所述数据域中存储的数据来源于所述待访问数据对应的组还是来源于除所述待访问数据对应的组的其它组, 相应的, 所述根据所述待访问数据的物理地址信息获取与所述待访问数据的物理地址信息对应的标签域,包括: 根据所述待访问数据的物理地址信息获取所述待访问数据的物理地址信息对应的第一组及标签位信息; 若根据所述待访问数据的物理地址信息对应的第一组确定存储系统中所述第一组中不存在状态位有效的标签域,或者,若根据所述待访问数据的物理地址信息对应的第一组确定存储系统中所述第一组中存在状态位有效的标签域且若根据所述待访问数据的物理地址信息对应的标签位信息确定所述第一组中状态位有效的标签域中不存在与所述待访问数据的物理地址信息对应的标签位信息相等的标签域,获取分配所述待访问数据的组及组内数据域偏移信息并分配给所述待访问数据,其中,所述不存在状态位有效的标签域包含指示所述标签域对应的数据域没有被所述处理器访问且指示所述标签域对应的所述数据域中存储的数据来源于所述待访问数据对应的组,或者,指示所述标签域对应的所述数据域被所述处理器访问且指示所述标签域对应的所述数据域中存储的数据来源于除所述待访问数据对应的组的其它组,或者,指示所述标签域对应的所述数据域没有被所述处理器访问且指示所述标签域对应的所述数据域中存储的数据来源于除所述待访问数据对应的组的其它组。
4.根据权利要求3所述的方法,其特征在于, 所述获取分配所述待访问数据的组及组内数据域偏移信息并分配给所述待访问数据,包括: 若根据所述存储系统中的每一组分别对应的利用率确定所述第一组对应的利用率小于第一利用率阈值,根据所述第一组中的每一标签域分别对应的数据域的利用率选择所述第一组中的每一标签域分别对应的数据域中利用率最低的数据域; 将所述第一组及所述第一组中的每一标签域分别对应的数据域中利用率最低的数据域分配给所述待访问数据。
5.根据权利要求3所述的方法,其特征在于, 所述获取分配所述待访问数据的组及组内数据域偏移信息并分配给所述待访问数据,包括: 若根据所述存储系统中的每一组分别对应的利用率确定所述第一组对应的利用率大于或等于所述第一利用率阈值,选择所述存储系统中除所述第一组外的所有组中利用率最低的第二组; 根据所述第二组中每一标签域分别对应的数据域的利用率选择所述第二组中的每一标签域分别对应的数据域中利用率最低的数据域; 将所述第二组及所述第二组中的每一标签域分别对应的数据域中利用率最低的数据域分配给所述待访问数据。
6.根据权利要求1或2所述的方法,其特征在于, 每个所述标签域还包含与所述标签域对应的所述数据域的开始地址信息、结束地址信息, 所述开始地址信息用于指示所述标签域对应的所述数据域在所述的起始位地址,所述结束地址信息用于指示所述标签域对应的所述数据域的结束位地址, 所述请求信息还包含所述待访问数据的粒度信息, 相应的, 根据所述物理地址信息对应的所述标签域信息中的组标识信息、组内数据域偏移信息获取所述标签域对应的数据域,包括: 读取所述第一标签域中的指示所述第一标签域对应的数据域的起始位地址和结束位地址;若根据所述待访问数据的物理地址信息及所述待访问数据的粒度信息确定所述待访问数据对应的所有数据存放在所述第一标签域对应的所述数据域中,根据所述第一标签域中的组标识信息及组内数据域偏移信息获取所述第一标签域对应的所述数据域的位置;根据所述第一标签域对应的所述数据域的位置获取所述第一标签域对应的数据域。
7.根据权利要求1或2所述的方法,其特征在于, 每个所述标签域还包含与所述标签域对应的所述数据域的开始地址信息、结束地址信息, 所述开始地址信息用于指示所述标签域对应的所述数据域的起始位地址,所述结束地址信息用于指示所述标签域对应的所述数据域的结束位地址, 所述请求信息还包含所述待访问数据的粒度信息, 相应的, 根据所述物理地址信息对应的所述标签域信息中的组标识信息、组内数据域偏移信息获取所述标签域对应的数据域,包括: 读取所述第一标签域中的指示所述第一标签域对应的数据域的起始位地址和结束位地址; 若根据所述待访问数据的物理地址信息及所述待访问数据的粒度信息确定所述待访问数据对应的所有数据不存放在所述第一标签域对应的所述数据域中,获取分配所述待访问数据的被替换数据域并分配给所述待访问数据,其中,所述被替换数据域包含所述第一组中的每一标签域对应的不同粒度的数据域中粒度大于且最接近所述待访问请求的粒度信息的数据域。
8.根据权利要求7所述的方法,其特征在于, 所述获取分配所述待访问数据的被替换数据域并分配给所述待访问数据,包括:若根据所述第一组中的每一标签域分别对应的不同粒度的数据域的利用率确定所述第一组中的所述被替换数据域的利用率大于或等于第二利用率阈值且所述第一组中除所述被替换数据域外所有不同粒度的数据域中多个第二数据域的利用率都小于所述第二访问阈值,将所述多个第二数据域合并为所述被替换数据域并分配给所述待访问数据,其中,所述第二数据域包含所述第一组中除所述被替换数据域外所有不同粒度的数据域中粒度小于所述被替换数据域粒度的数据域; 或者, 若根据所述第一组中的每一标签域分别对应的不同粒度的数据域的利用率确定所述第一组中的所述被替换数据域的利用率大于或等于所述第二利用率阈值且所述第一组中除所述被替换数据域外所有不同粒度的数据域中第三数据域的利用率小于所述第二访问阈值,将所述第三数据域拆分为一个或多个所述被替换数据域并分配给所述待访问数据,其中,所述第三数据域包含所述第一组中除所述被替换数据域外所有不同粒度的数据域中对应的数据域中粒度大于所述被替换数据域粒度的数据域; 或者, 若根据所述第一组中的每一标签域分别对应的不同粒度的数据域的利用率确定所述第一组中的所述被替换数据域的利用率小于所述第二利用率阈值,将所述被替换数据域分配给所述待访问数据。
9.根据权利要求1-8任一项所述的方法,其特征在于,所述方法还包括: 更新所述分配给所述待访问数据的数据域对应的标签域。
10.一种高速缓冲存储器,其特征在于,包括: 接收单元,用于接收处理器发送的访问待访问数据的请求信息,其中,所述请求信息包含所述待访问数据的物理地址信息; 获取单元,用于根据所述待访问数据的物理地址信息获取与所述待访问数据的物理地址信息对应的标签域;根据所述物理地址信息对应的所述标签域信息中的组标识信息、组内数据域偏移信息获取所述标签域对应的数据域,其中,每个所述组均包含N个标签域和M个数据域,所述标签域与所述数据域一一对应且一一对应的所述标签域和所述数据域处于相同组或者不同组,所述N为大于或等于I的自然数,所述M为大于或等于I的自然数且所述N大于所述M,每个所述标签域信息包含与所述标签域对应的所述数据域的组标识信息、组内数据域偏移信息,所述组标识信息用于指示与所述标签域对应的所述数据域所在的组,所述组内数据偏移信息用于指示所述数据域在所述数据域所在组内的偏移量。
11.根据权利要求10所述的高速缓冲存储器,其特征在于,每个所述标签域信息还包含标签位信息,数据域是否有效信息,“ isptr ”信息, 其中,所述标签位信息用于指示所述标签域对应的所述数据域对应的物理地址,所述数据域是否有效信息用于指示所述标签域对应的所述数据域被所述处理器访问还是没有被所述处理器访问,所述“isptr”信息用于指示所述标签域对应的所述数据域中存储的数据来源于所述待访问数据对应的组还是来源于除所述待访问数据对应的组的其它组, 相应的, 所述获取单元还用于:根据所述待访问数据的物理地址信息获取所述待访问数据的物理地址信息对应的第一组及标签位信息; 若根据所述待访问数据的物理地址信息对应的第一组确定存储系统中所述第一组中存在状态位有效的标签域且若根据所述待访问数据的物理地址信息对应的标签位信息确定所述第一组中状态位有效的标签域中存在与所述待访问数据的物理地址信息对应的标签位信息相等的标签域,获取所述存储系统中状态位有效的标签域中的标签位信息与所述待访问数据的物理地址信息对应的标签位信息相等的第一标签域,其中,所述存在状态位有效的标签域包含指示数据域被所述处理器访问且指示所述标签域对应的数据域中存储的数据来源于所述待访问数据对应的组。
12.根据权利要求10所述的高速缓冲存储器,其特征在于,每个所述标签域信息还包含标签位信息,数据域是否有效信息,“ isptr ”信息, 其中,所述标签位信息用于指示所述标签域对应的所述数据域对应的物理地址,所述数据域是否有效信息用于指示所述标签域对应的所述数据域被所述处理器访问还是没有被所述处理器访问,所述“isptr”信息用于指示所述标签域对应的所述数据域中存储的数据来源于所述待访问数据对应的组还是来源于除所述待访问数据对应的组的其它组, 相应的, 所述获取单元还用于:根据所述待访问数据的物理地址信息获取所述待访问数据的物理地址信息对应的第一组及标签位信息; 若根据所述待访问数据的物理地址信息对应的第一组确定存储系统中所述第一组中不存在状态位有效的标签域,或者,若根据所述待访问数据的物理地址信息对应的第一组确定存储系统中所述第一组中存在状态位有效的标签域且若根据所述待访问数据的物理地址信息对应的标签位信息确定所述第一组中状态位有效的标签域中不存在与所述待访问数据的物理地址信息对应的标签位信息相等的标签域,获取分配所述待访问数据的组及组内数据域偏移信息并分配给所述待访问数据,其中,所述不存在状态位有效的标签域包含指示所述标签域对应的数据域没有被所述处理器访问且指示所述标签域对应的所述数据域中存储的数据来源于所述待访问数据对应的组,或者,指示所述标签域对应的所述数据域被所述处理器访问且指示所述标签域对应的所述数据域中存储的数据来源于除所述待访问数据对应的组的其它组,或者,指示所述标签域对应的所述数据域没有被所述处理器访问且指示所述标签域对应的所述数据域中存储的数据来源于除所述待访问数据对应的组的其它组。
13.根据权利要求12所述的高速缓冲存储器,其特征在于, 所述获取单元还包括: 选择模块,若根据所述存储系统中的每一组分别对应的利用率确定所述第一组对应的利用率小于第一利用率阈值,用于根据所述第一组中的每一标签域分别对应的数据域的利用率选择所述第一组中的每一标签域分别对应的数据域中利用率最低的数据域; 分配模块,用于将所述第一组及所述第一组中的每一标签域分别对应的数据域中利用率最低的数据域分配给所述待访问数据。
14.根据权利要求12所述的高速缓冲存储器,其特征在于, 所述选择模块还用于:若根据所述存储系统中的每一组分别对应的利用率确定所述第一组对应的利用率大于或等于所述第一利用率阈值,选择所述存储系统中除所述第一组外的所有组中利用率最低的第二组;根据所述第二组中每一标签域分别对应的数据域的利用率选择所述第二组中的每一标签域分别对应的数据域中利用率最低的数据域; 所述分配模块还用于:将所述第二组及所述第二组中的每一标签域分别对应的数据域中利用率最低的数据域分配给所述待访问数据。
15.根据权利要求10或11所述的高速缓冲存储器,其特征在于, 每个所述标签域还包含与所述标签域对应的所述数据域的开始地址信息、结束地址信息, 所述开始地址信息用于指示所述标签域对应的所述数据域的起始位地址,所述结束地址信息用于指示所述标签域对应的所述数据域的结束位地址, 所述请求信息还包含所述待访问数据的粒度信息, 相应的, 所述获取单元还包括: 读模块,用于读取所述第一标签域中的指示所述第一标签域对应的数据域的起始位地址和结束位地址; 所述获取单元还用于:若根据所述待访问数据的物理地址信息及所述待访问数据的粒度信息确定所述待访问数据对应的所有数据存放在所述第一标签域对应的所述数据域中,根据所述第一标签域中的组标识信息及组内数据域偏移信息获取所述第一标签域对应的所述数据域的位置;根据所述第一标签域对应的所述数据域的位置获取所述第一标签域对应的数据域。
16.根据权利要求10或11所述的高速缓冲存储器,其特征在于, 每个所述标签域还包含与所述标签域对应的所述数据域的开始地址信息、结束地址信息, 所述开始地址信息用于指示所述标签域对应的所述数据域的起始位地址,所述结束地址信息用于指示所述标签域对应的所述数据域的结束位地址, 所述请求信息还包含所述待访问数据的粒度信息, 相应的, 所述读模块还用于:读取所述第一标签域中的指示所述第一标签域对应的数据域的起始位地址和结束位地址; 所述获取单元还用于:若根据所述待访问数据的物理地址信息及所述待访问数据的粒度信息确定所述待访问数据对应的所有数据不存放在所述第一标签域对应的所述数据域中,获取分配所述待访问数据的被替换数据域并分配给所述待访问数据,其中,所述被替换数据域包含所述第一组中的每一标签域对应的不同粒度的数据域中粒度大于且最接近所述待访问请求的粒度信息的数据域。
17.根据权利要求16所述的高速缓冲存储器,其特征在于, 所述获取单元还包括: 合并模块,若根据所述第一组中的每一标签域分别对应的不同粒度的数据域的利用率确定所述第一组中的所述被替换数据域的利用率大于或等于第二利用率阈值且所述第一组中除所述被替换数据域外所有不同粒度的数据域中多个第二数据域的利用率都小于所述第二访问阈值,用于将所述多个第二数据域合并为所述被替换数据域并分配给所述待访问数据,其中,所述第二数据域包含所述第一组中除所述被替换数据域外所有不同粒度的数据域中粒度小于所述被替换数据域粒度的数据域; 或者, 所述获取单元还包括: 拆分模块,若根据所述第一组中的每一标签域分别对应的不同粒度的数据域的利用率确定所述第一组中的所述被替换数据域的利用率大于或等于所述第二利用率阈值且所述第一组中除所述被替换数据域外所有不同粒度的数据域中第三数据域的利用率小于所述第二访问阈值,用于将所述第三数据域拆分为一个或多个所述被替换数据域并分配给所述待访问数据,其中,所述第三数据域包含所述第一组中除所述被替换数据域外所有不同粒度的数据域中对应的数据域中粒度大于所述被替换数据域粒度的数据域; 或者, 所述分配模块还用于:若根据所述第一组中的每一标签域分别对应的不同粒度的数据域的利用率确定所述第一组中的所述被替换数据域的利用率小于所述第二利用率阈值,用于将所述被替换数据域分配给所述待访问数据。
18.根据权利要求10-17任一项所述的高速缓冲存储器,其特征在于,所述高速缓冲存储器还包括:更新单元,用于更新所述分配给所述待访问数据的数据域对应的标签域。
【文档编号】G06F17/30GK104346404SQ201310344166
【公开日】2015年2月11日 申请日期:2013年8月8日 优先权日:2013年8月8日
【发明者】黄永兵, 陈明宇 申请人:华为技术有限公司, 中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1