一种存储处理方法及装置与流程

文档序号:15930684发布日期:2018-11-14 01:36阅读:206来源:国知局

本申请涉及计算机技术领域,尤其涉及一种存储处理方法及装置。

背景技术

缓存(cache,也称为高速缓冲存储器)位于处理器和内存(memory)之间,主要为了解决处理器运算速度和内存读写速度不匹配的问题。在多核处理器(multi-core)系统中,cache结构可以将存储器中的数据缓存在cache中,加速多核获取数据的过程。

存储器中的数据缓存到cache中可以有两种备份状态,分别是共享状态(shared状态,简称s态)和独享状态(exclusive状态,简称e态)。若某数据的备份状态为shared状态,则表示该数据可能在多个cache中有备份。若某数据的备份状态为exclusive状态,则表示该数据只在某一个cache中有备份。如何在缓存中针对处于共享状态的数据或者处于独享状态的数据进行存储处理成为研究的热点问题。



技术实现要素:

本申请实施例提供了一种存储处理方法及装置,可以针对数据的不同备份状态对数据进行针对性处理。

第一方面,本申请实施例提供了一种存储处理方法,该方法包括:在接收到访存请求时,首先检测该访存请求的请求类型,并检测该访存请求所请求的目标数据的备份状态,该访存请求的请求类型包括数据请求和指令请求,该目标数据的备份状态包括独享状态和共享状态;然后根据检测结果对该访存请求执行相应的响应处理,若检测到该访存请求为指令请求,且检测到该目标数据的备份状态为独享状态,则根据第一处理策略的指示对该访存请求执行响应处理;若检测到该访存请求为指令请求,且检测到该目标数据的备份状态为共享状态,则根据第二处理策略的指示对该访存请求执行响应处理;其中,该第一处理策略指示的响应处理方式和该第二处理策略指示的响应处理方式不同。采用本申请实施例,可以针对数据的不同备份状态对数据进行针对性处理,从而在一定程度上节省终端的软硬件资源,提高存储效率。

在一种可能的实施例中,若检测到该访存请求为数据请求,无论该目标数据的备份状态是独享状态还是共享状态,则根据第三处理策略的指示对该访存请求执行响应处理,从而针对访存请求的不同类型采用不同的处理策略,可以在一定程度上节省终端的软硬件资源,提高存储效率。

在一种可能的实施例中,该第一处理策略指示的响应处理方式可以包括:首先根据该访存请求新建与该目标数据对应的第一目录项,该第一目录项记录了存放该目标数据的cache的缓存标识以及该目标数据的备份状态;然后根据检测得到的该访存请求的类型以及该目标数据的备份状态,对该目标数据执行响应处理。该响应处理包括读取、写入、修改以及协议规定的握手动作等。

在一种可能的实施例中,该第一处理策略指示的响应处理方式还可以包括:根据该目标数据的标识对管理的cache进行广播侦听,并接收各个cache针对该广播侦听返回的侦听响应,该目标数据的标识可以是该目标数据的物理内存地址;然后根据接收到的侦听响应得到第一集合,该第一集合包括一个或者多个存放该目标数据的cache的缓存标识,该缓存标识可以是该cache的地址;若查询到该第一集合中有未包括在该第一目录项中的缓存标识,则回收存放有该目标数据但缓存标识未包含在该第一目录项中的cache对于该目标数据的权限。

在一种可能的实施例中,若检测到该访存请求为指令请求,且检测到该访存请求所请求的目标数据的备份状态为共享状态,则直接根据检测得到的该访存请求的类型以及该目标数据的备份状态,对该访存请求所请求的目标数据执行响应处理,该响应处理包括读取以及协议规定的握手动作等。

在一种可能的实施例中,该第三处理策略指示的响应处理方式可以包括:首先根据该访存请求新建与该目标数据对应的第二目录项,该第二目录项记录了存放该目标数据的cache的缓存标识以及该目标数据的备份状态;然后根据检测得到的该访存请求的类型以及该目标数据的备份状态,对该目标数据执行响应处理。该响应处理包括读取、写入、修改以及协议规定的握手动作等。

在一种可能的实施例中,检测该访存请求的请求类型之前,该方法还包括:首先接收访存请求,该访存请求可以是中央处理器发出的,并携带请求类型标识,然后检测预置目录中是否包括与该访存请求所请求的目标数据对应的第三目录项,该第三目录项记录了存放该目标数据的cache的缓存标识以及该目标数据的备份状态;若检测结果为不包括,则确定未命中数据,并执行检测该访存请求的请求类型的步骤;若检测结果为包括,则确定命中数据,并根据该目标数据得到第二集合,该第二集合包括一个或者多个存放该目标数据的cache的缓存标识;若查询到该第二集合中有未包括在该第三目录项中的缓存标识,则对该第三目录项进行更新处理。该更新处理包括在该第三目录项中添加与该第二集合中有但未包括在该第三目录项中的缓存标识对应的条目。

第二方面,本申请实施例提供了一种存储处理装置,该装置包括:检测模块、执行模块、接收模块和更新模块,上述各个模块用于执行上述各方面所述的方法。

第三方面,本申请实施例提供了一种存储处理装置,包括:处理器、存储器,所述处理器、所述存储器通过总线连接,所述存储器存储有可执行程序代码,所述处理器用于调用所述可执行程序代码,执行如权利要求1~8中任一项所述的存储处理方法。

第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。

第五方面,本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。

本申请实施例中,在接收到访存请求时,首先检测该访存请求的请求类型,以及检测该访存请求所请求的目标数据的备份状态,然后根据访存请求的请求类型以及目标数据的不同备份状态采用不同的策略对访存请求执行响应处理。从而可以针对数据的不同备份状态对数据进行针对性处理,在一定程度上节省终端的软硬件资源,提高存储效率。

附图说明

为了更清楚地说明本申请实施例或背景技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图进行说明。

图1是本申请实施例提供的一种cache结构的示意图;

图2是本申请实施例提供的一种硬件结构的示意图;

图3是本申请实施例提供的一种存储处理方法的流程示意图;

图4是本申请实施例提供的另一种存储处理方法的流程示意图;

图5是本申请实施例提供的又一种存储处理方法的流程示意图;

图6是本申请实施例提供的一种存储处理装置的结构示意图;

图7是本申请实施例提供的另一种存储处理装置的结构示意图。

具体实施方式

下面结合本申请实施例中的附图对本申请实施例进行描述。

请参见图1,图1是本申请实施例提供的一种cache结构的示意图。图1中所描述的cache结构为分层的cache结构,包括一级缓存l1(level1)、二级缓存l2(level2)、三级缓存l3(level3),其中l1采用高速小容量的cache,l2采用速度中等容量较大的cache,l3采用低速大容量的cache。内存代理(homeagent,ha)为处理器中维护数据一致性的模块,主要实现处理器对同一地址的串行化访问和对不同地址的并行化访问。

本申请实施例所描述的一种存储处理方法是通过分级维护来实现多核间缓存一致性的。以图1为例,l2会维护与其对应的数个l1之间的一致性,l3会维护与其对应的数个l2之间的一致性,而ha则负责维护与其对应的数个l3之间的一致性,各级之间可以通过采用基于目录的(directory-based)一致性协议来维护多核间缓存的一致性。以ha为例,ha通过在其目录缓存区中建立目录来记录数据在上级cache(例如l3)中的备份情况,该目录中记录了上级cache中存放该数据的cache的地址,以及该数据在该cache中的备份状态。如果处理器需要对某个数据进行操作,则可以通过查询该目录获取存放该某个数据的cache地址,并根据该某个数据的备份状态以及该操作的指示对cache中的该某个数据进行相应的处理。

随着处理器芯片核数的增加,片上cache容量也迅速增加,每个处理器芯片的片上缓存可以高达几十兆字节(megabyte,mb),多片时总容量甚至达百mb级,故而ha、l1、l2以及l3等的目录容量是一个很大的问题。

本申请实施例中,以ha为例。ha的目录采用精确目录,sparse结构,并将目录存储在片上静态随机存取存储器(staticrandomaccessmemory,sram)中,但考虑到处理器系统通常对指令的修改较少,故而本申请实施例所描述的存储处理方法针对指令和数据类型的请求,分别使用不同的处理策略,达到有效降低目录容量开销或者在同等目录容量下,提升有效扩容比的目的。基于以上所述,本申请实施例所描述的存储处理方法基于以下思想:1、ha接收处理器发送的访存请求,该访存请求携带有指令或数据类型指示。2、ha根据该访存请求的类型指示,对指令和数据类型的访存请求采用不同的处理策略。3、对于数据类型的访存请求,无论该访存请求所请求的目标数据的状态为e态,还是s态,若查询ha目录未命中,则新建目录项并响应该访存请求进行响应处理,新建的目录项用于记录该访存请求所对应的目标数据存放在哪个或哪些cache中。4、对于指令类型的访存请求,若该访存请求所请求的目标数据的状态为s态,则查询目录未命中后不建立目录,只响应该访存请求进行响应处理;若该访存请求所请求的目标数据的状态为e态,查询ha目录未命中后新建目录,并广播侦听且响应该访存请求进行响应处理。

本申请实施例所描述的一种存储处理方法在硬件实现上,可划分为请求解析单元、目录查询单元、目录更新/建立单元、侦听发送单元和请求处理单元,如图2所示。请求解析单元用于对访存请求的请求类型进行解析,判断该访存请求的请求类型是指令类型还是数据类型,以及判断该访存请求所请求的目标数据的备份状态为e态还是s态等。目录查询单元用于根据该访存请求携带的目标数据标识查询是否已经建立与该目标数据所对应的目录。目录更新/建立单元用于根据该访存请求的请求类型,并结合原始的目录值,产生新的目录值。侦听发送单元用于发送侦听请求并收集侦听响应。请求处理单元用于根据请求类型,完成协议规定的动作。

本申请实施例中,执行主体以ha为例来说明,若各级缓存l1、l2、l3等执行主体实施本申请实施例所描述的存储处理方法,则以此类推。

请参见图3,图3是本申请实施例提供的一种存储处理方法,该方法可以应用于图1所示的cache结构中。该方法包括但不限于如下步骤:

s301、ha在接收到访存请求时,检测所述访存请求的请求类型。

本申请实施例中,ha接收到的访存请求可以是由中央处理器(centralprocessingunit,cpu)发出的,该访存请求携带有请求类型标记,以及携带有该访存请求所请求的目标数据的备份状态标记。该请求类型标记包括指令类型标记、数据类型标记;该备份状态标记包括第一备份状态标记、第二备份状态标记。该第一备份状态可以是独享状态e态,该第二备份状态可以是共享状态s态。需要说明的是,该访存请求也可以是由其他类型的处理器发出的。

具体地,ha在接收到访存请求时,基于该访存请求所携带的请求类型标记检测该访存请求的请求类型。其中,该访存请求的请求类型包括数据类型(即数据请求)和指令类型(即指令请求),数据类型的请求用于请求数据,包括用于读取数据或者写入数据等;指令类型的请求用于请求指令,包括用于读取指令或者写入指令等。

s302、若所述ha检测到所述访存请求为指令请求,且检测到所述访存请求所请求的目标数据的备份状态为独享状态,则根据第一处理策略的指示对所述访存请求执行响应处理。

本申请实施例中,该目标数据包括目标指令,若ha基于该访存请求所携带的请求类型标记检测到该访存请求为指令请求,且基于该访存请求携带的该目标数据的备份状态标记检测到该访存请求所请求的目标指令的备份状态为独享状态,则根据第一处理策略的指示对该访存请求执行响应处理。该第一处理策略指示的响应处理方式包括:首先,ha根据该访存请求建立与该目标指令对应的第一目录项,该第一目录项记录了存放该目标指令的cache的缓存标识以及该目标指令的备份状态,该缓存标识可以是存放该目标指令的cache的地址,也可以是该cache的序号。其次,ha根据该目标指令的标识对其管理的cache进行广播侦听,并接收cache针对该广播侦听的侦听响应,该目标指令的标识可以是该目标指令的物理内存地址。然后,ha根据接收到的侦听响应得到第一集合,该第一集合包括一个或者多个存放该目标指令的cache的缓存标识,该缓存标识可以是该cache的地址。接着,ha根据该第一集合中的缓存标识查询该第一目录项,若查询到该第一集合中有未包括在该第一目录项中的缓存标识,则回收存放有该目标指令但缓存标识未包含在该第一目录项中的cache对于该目标指令的权限,即对目标指令进行无效处理。最后,ha根据指令请求的指示,以及协议规定的独享状态的目标指令所允许的操作对该目标指令执行响应处理,该响应处理包括读取、写入、修改以及协议规定的动作(例如握手动作)等。以备份状态为e态为例,对于备份状态为e态的指令来说,允许被读取、写入、修改以及其他协议规定的动作。

s303、若所述ha检测到所述访存请求为指令请求,且检测到所述访存请求所请求的目标数据的备份状态为共享状态,则根据第二处理策略的指示对所述访存请求执行响应处理。

本申请实施例中,该第一处理策略指示的响应处理方式和该第二处理策略指示的响应处理方式不同,该目标数据包括目标指令。

具体地,若ha基于该访存请求所携带的请求类型标记检测到该访存请求为指令请求,且基于该访存请求携带的该目标数据的备份状态标记检测到该访存请求所请求的目标指令的备份状态为共享状态,则根据第二处理策略的指示对该访存请求执行响应处理。该第二处理策略指示的响应处理方式包括:ha根据指令请求的指示,以及协议规定的共享状态的目标指令所允许的操作对该目标指令执行响应处理,该响应处理包括读取以及协议规定的握手动作等。以备份状态为s态为例,对于备份状态为s态的指令来说,允许读取以及协议规定的其他操作,但不允许写入、修改等协议规定的其他操作。

在一些可行的实施方式中,若ha检测到该访存请求为数据请求,则无论该访存请求所请求的目标数据的备份状态为独享状态还是共享状态,都根据第三处理策略的指示对该访存请求执行响应处理。其中,该第三处理策略指示的响应处理方式可以和该第一处理策略指示的响应处理方式相同,也可以和该第一处理策略指示的响应处理方式不同。该第三处理策略指示的响应处理方式可以包括:首先,ha根据该访存请求新建与该目标数据对应的第二目录项,该第二目录项中包括存放该目标数据的cache的缓存标识以及该目标数据的备份状态;然后ha根据数据请求的指示,以及协议规定的目标数据的备份状态所允许的操作对该目标数据执行响应处理,该响应处理包括读取、写入、修改以及协议规定的动作等。对于备份状态为e态的数据来说,允许被读取、写入、修改以及其他协议规定的动作;对于备份状态为s态的数据来说,允许读取以及协议规定的其他操作,但不允许写入、修改等协议规定的其他操作。

本申请实施例中,ha在接收到访存请求时,首先检测该访存请求的请求类型,以及检测该访存请求所请求的目标数据的备份状态,然后根据访存请求的请求类型以及目标数据的不同备份状态采用不同的策略对访存请求执行响应处理。从而可以针对数据的不同备份状态对数据进行针对性处理,在一定程度上节省终端的软硬件资源,提高存储效率。

请参见图4,图4是本申请实施例提供的另一种存储处理方法,该方法包括但不限于如下步骤:

s401、ha接收访存请求。

本申请实施例中,ha接收到的访存请求可以是由中央处理器发出的,该访存请求携带有请求类型标记,该请求类型标记包括指令类型标记、数据类型标记。需要说明的是,该访存请求也可以是由其他类型的处理器发出的。其中,该访存请求的请求类型包括数据类型,即数据请求、指令类型,即指令请求,数据类型的请求用于请求数据,包括用于读取数据或者写入数据等;指令类型的请求用于请求指令,包括用于读取指令或者写入指令等。

s402、检测所述访存请求是否为指令请求,若否,则执行步骤s403、步骤s404;若是,则执行步骤s405及其后续步骤。

具体地,ha在接收到访存请求后,基于该访存请求所携带的请求类型标记检测该访存请求的请求类型,若检测得到该访存请求为数据请求,则执行步骤s403、步骤s404;若检测得到该访存请求为指令请求,则执行步骤s405及其后续步骤。

s403、所述ha根据所述访存请求新建与所述访存请求所请求的目标数据对应的第二目录项。

本申请实施例中,若ha检测到该访存请求为数据请求,则无论该访存请求所请求的目标数据的备份状态为独享状态还是共享状态,都根据该访存请求新建与该访存请求所请求的目标数据对应的第二目录项。该第二目录包括存放该目标数据的cache的缓存标识以及该目标数据的备份状态,该缓存标识可以是存放该目标数据的cache的地址,也可以是该cache的序号。

具体地,ha根据该访存请求携带的目标数据的标识查找ha所管理的cache中是否有存放该目标数据的cache,若有,则返回存放该目标数据的cache的缓存标识以及该cache中该目标数据的备份状态;若无,则将存储器中与该目标数据标识对应的数据加载到ha所管理的某个cache中,并返回存放该目标数据的某个cache的缓存标识以及该目标数据在该某个cache中的备份状态。然后在ha的目录中建立与该目标数据对应的第二目录项,该第二目录项包括存放该目标数据的cache的缓存标识以及该cache中该目标数据的备份状态。需要说明的是,ha可以通过对其管理的cache进行广播侦听查询其管理的cache中是否有存放该目标数据的cache。其中,该目标数据的标识可以是该目标数据的物理内存地址。

s404、所述ha对所述访存请求所请求的目标数据执行响应处理。

具体地,ha根据数据请求的指示,以及协议规定的目标数据的备份状态所允许的操作对该目标数据执行响应处理,该响应处理包括读取、写入、修改以及协议规定的动作等。对于备份状态为e态的数据来说,允许被读取、写入、修改以及其他协议规定的动作;对于备份状态为s态的数据来说,允许读取以及协议规定的其他操作,但不允许写入、修改等协议规定的其他操作。

s405、所述ha检测所述访存请求所请求的目标数据的备份状态是否为独享状态,若否,则执行步骤s406;若是,则执行步骤s407~步骤s409。

本申请实施例中,该访存请求还携带有该访存请求所请求的目标数据的备份状态标记。该备份状态标记包括第一备份状态标记、第二备份状态标记。该第一备份状态可以是独享状态e态,该第二备份状态可以是共享状态s态。该目标数据包括目标指令。

具体地,ha基于该访存请求所携带的该目标数据的备份状态标记检测该访存请求所请求的目标指令的备份状态,若ha检测得到该目标指令的备份状态为共享状态,则执行步骤s405;若ha检测得到该目标指令的备份状态为独享状态,则执行步骤s407~步骤s409。

s406、所述ha对所述访存请求所请求的目标数据执行响应处理。

具体地,若ha检测到该访存请求所请求的目标指令的备份状态为共享状态,则根据指令请求的指示,以及协议规定的共享状态的目标指令所允许的操作对该目标指令执行响应处理,该响应处理包括读取以及协议规定的握手动作等。对于备份状态为s态的指令来说,允许读取以及协议规定的其他操作,但不允许写入、修改等协议规定的其他操作。

s407、所述ha根据所述访存请求新建与所述目标数据对应的第一目录项。

本申请实施例中,若ha基于该访存请求携带的该目标数据的备份状态标记检测得到该访存请求所请求的目标指令的备份状态为独享状态,则根据该访存请求建立与该目标指令对应的第一目录项,此步骤的具体过程可参考步骤s403中的描述,在此不再赘述,该第一目录项记录了存放该目标指令的cache的缓存标识以及该目标指令的备份状态。

s408、所述ha对管理的cache进行广播侦听,并根据接收到的各个cache针对所述广播侦听返回的侦听响应对所述目标数据进行回收处理。

具体地,首先,ha根据该目标指令的标识对其管理的cache进行广播侦听,并接收各个cache针对该广播侦听的侦听响应。然后,ha根据接收到的侦听响应得到第一集合,该第一集合包括一个或者多个存放该目标指令的cache的缓存标识。接着,ha根据该第一集合中的缓存标识查询该第一目录项,若查询到该第一集合中有未包括在该第一目录项中的缓存标识,则回收存放有该目标指令但缓存标识未包含在该第一目录项中的cache对于该目标指令的权限,即对目标指令进行无效处理。以备份状态为独享状态e态为例,对于备份状态为e态的数据或者指令,此类数据或者指令只允许备份到某一个cache中,故而进行广播侦听的目的是为了查询是否还有其他的cache中备份有该e态数据或者指令,若有,则回收其他cache对于该e态数据或者指令的权限,即对其他cache中的该e态数据或者指令进行无效处理。

s409、所述ha对所述访存请求所请求的目标数据执行响应处理。

具体地,ha根据指令请求的指示,以及协议规定的独享状态的目标指令所允许的操作对该目标指令执行响应处理,该响应处理包括读取、写入、修改以及协议规定的动作等。对于备份状态为e态的指令来说,允许被读取、写入、修改以及其他协议规定的动作。

本申请实施例中,在一些可行的实施方式中,ha在接收到访存请求时,可以先检测该访存请求所请求的目标数据的备份状态,若检测到该目标数据的备份状态为独享状态,则执行步骤s407~步骤s409;若检测到该目标数据的备份状态为共享状态,则检测该访存请求是否为指令请求,若是,则对该访存请求所请求的目标指令执行响应处理,若否,则执行步骤s403、步骤s404。

本申请实施例中,ha在接收到访存请求时,首先检测该访存请求的请求类型,以及检测该访存请求所请求的目标数据的备份状态,然后根据访存请求的请求类型以及目标数据的不同备份状态采用不同的策略对访存请求执行响应处理。从而可以针对数据的不同备份状态对数据进行针对性处理,在一定程度上节省终端的软硬件资源,提高存储效率。

请参见图5,图5是本申请实施例提供的又一种存储处理方法,该方法包括但不限于如下步骤:

s501、ha接收访存请求。

本申请实施例中,ha接收到的访存请求可以是由中央处理器发出的,该访存请求携带有请求类型标记,以及携带有该访存请求所请求的目标数据的备份状态标记。该请求类型标记包括指令类型标记、数据类型标记;该备份状态标记包括第一备份状态标记、第二备份状态标记。该第一备份状态可以是独享状态e态,该第二备份状态可以是共享状态s态。需要说明的是,该访存请求也可以是由其他类型的处理器发出的。

s502、所述ha检测预置目录中是否包括与所述访存请求所请求的目标数据对应的第三目录项,若检测结果为包括,则确定命中数据,并执行步骤s503;若检测结果为不包括,则确定未命中数据,并执行步骤s504及其后续步骤。

本申请实施例中,该目标数据可以是数据也可以是指令。具体地,ha在接收到访存请求后,根据该访存请求携带的目标数据标识查询ha预置目录中已有的目录项是否包括与该访存请求所请求的目标数据对应的第三目录项,若是,则执行步骤s503;若否,则执行步骤s504及其后续步骤。其中,该目标数据的标识可以是该目标数据的物理内存地址,该第三目录项记录了存放该目标数据的cache的缓存标识以及该目标数据的备份状态,该缓存标识可以是存放该目标数据的cache的地址,也可以是该cache的序号。

s503、所述ha根据所述访存请求更新所述第三目录项并响应所述访存请求执行响应处理。

具体地,ha首先根据该目标数据的标识查询ha所管理的cache,并根据查询到的存放该目标数据的cache的缓存标识得到第二集合,该第二集合包括一个或者多个存放该目标数据的cache的缓存标识;然后ha根据该第二集合中的缓存标识查询该第三目录项,若查询到该第二集合中有未包括在该第三目录项中的缓存标识,则对该第三目录项进行更新处理。该更新处理包括在该第三目录项中添加与该第二集合中有但未包括在该第三目录项中的缓存标识对应的条目。最后,在更新完该第三目录项之后,ha根据该访存请求的类型,以及协议规定的目标数据的备份状态所允许的操作对该访存请求所请求的目标数据进行响应处理,该响应处理包括读取、写入、修改以及协议规定的握手动作等。

s504、所述ha检测所述访存请求是否为指令请求,若否,则执行步骤s505;若是,则执行步骤s506及其后续步骤。

具体地,ha基于该访存请求所携带的请求类型标记检测该访存请求的请求类型,若检测得到该访存请求为数据请求,则执行步骤s505;若检测得到该访存请求为指令请求,则执行步骤s506及其后续步骤。

s505、所述ha根据第三处理策略的指示对所述访存请求执行响应处理。

本申请实施例中,若ha检测到该访存请求为数据请求,则无论该访存请求所请求的目标数据的备份状态为独享状态还是共享状态,都首先根据该访存请求新建与该访存请求所请求的目标数据对应的第二目录项。该第二目录包括存放该目标数据的cache的缓存标识以及该目标数据的备份状态。

具体地,ha根据该访存请求携带的目标数据的标识查找ha所管理的cache中是否有存放该目标数据的cache,若有,则返回存放该目标数据的cache的缓存标识以及该cache中该目标数据的备份状态;若无,则将存储器中与该目标数据标识对应的数据加载到ha所管理的某个cache中,并返回存放该目标数据的某个cache的缓存标识以及该目标数据在该某个cache中的备份状态。然后在ha的目录中建立与该目标数据对应的第二目录项,该第二目录项包括存放该目标数据的cache的缓存标识以及该cache中该目标数据的备份状态。需要说明的是,ha可以通过对其管理的cache进行广播侦听查询其管理的cache中是否有存放该目标数据的cache。

然后,ha根据数据请求的指示,以及协议规定的目标数据的备份状态所允许的操作对该目标数据执行响应处理,该响应处理包括读取、写入、修改以及协议规定的动作等。对于备份状态为e态的数据来说,允许被读取、写入、修改以及其他协议规定的动作;对于备份状态为s态的数据来说,允许读取以及协议规定的其他操作,但不允许写入、修改等协议规定的其他操作。

s506、所述ha检测所述访存请求所请求的目标数据的备份状态是否为独享状态,若否,则执行步骤s507;若是,则执行步骤s508。

具体地,ha基于该访存请求所携带的该访存请求所请求的目标数据的备份状态标记检测该访存请求所请求的该目标指令的备份状态。若ha检测得到该目标指令的备份状态为共享状态,则执行步骤s507;若ha检测得到该目标数据的备份状态为独享备份状态,则执行步骤s508。

s507、所述ha根据第二处理策略的指示对所述访存请求执行响应处理。

具体地,若ha检测到该访存请求所请求的目标指令的备份状态为共享状态,则根据指令请求的指示,以及协议规定的共享状态的目标指令所允许的操作对该目标指令执行响应处理,该响应处理包括读取以及协议规定的握手动作等。对于备份状态为s态的指令来说,允许读取以及协议规定的其他操作,但不允许写入、修改等协议规定的其他操作。

s508、所述ha根据第一处理策略的指示对所述访存请求执行响应处理。

本申请实施例中,该第一处理策略指示的响应处理方式和该第二处理策略指示的响应处理方式不同。该第一处理策略指示的响应处理方式包括:首先,ha根据该访存请求建立与该访存请求所请求的目标指令对应的第一目录项,该第一目录项记录了存放该目标指令的cache的缓存标识以及该目标指令的备份状态。其次,ha根据该目标指令的标识对其管理的cache进行广播侦听,并接收cache针对该广播侦听的侦听响应。然后,ha根据接收到的侦听响应得到第一集合,该第一集合包括一个或者多个存放该目标指令的cache的缓存标识。接着,ha根据该第一集合中的缓存标识查询该第一目录项,若查询到该第一集合中有未包括在该第一目录项中的缓存标识,则回收存放有该目标指令但缓存标识未包含在该第一目录项中的cache对于该目标指令的权限,即对目标指令进行无效处理。最后,ha根据指令请求的指示,以及协议规定的第一备份状态的目标指令所允许的操作对该目标指令执行响应处理,该响应处理包括读取、写入、修改以及协议规定的动作等。需要说明的是,该第一处理策略指示的响应处理方式可参考上述实施例中步骤s407~步骤s409的描述,在此不再赘述。

本申请实施例中,在一些可行的实施方式中,ha在接收到访存请求时,首先检测预置目录中是否包括与该访存请求所请求的目标数据对应的第三目录项,若是,则根据该访存请求更新该第三目录项并响应该访存请求执行响应处理;若否,则执行步骤s506,检测该访存请求所请求的目标数据的备份状态是否为独享状态;若是,则根据第一处理策略的指示对该访存请求执行响应处理;若否,则执行步骤s504,检测该访存请求是否为指令请求,若是,根据第二处理策略的指示对该访存请求执行响应处理;若否,则根据第三处理策略的指示对该访存请求执行响应处理。

本申请实施例中,ha在接收到访存请求时,首先检测该访存请求的请求类型,以及检测该访存请求所请求的目标数据的备份状态,然后根据访存请求的不同请求类型以及目标数据的不同备份状态采用不同的策略对访存请求执行响应处理。从而可以针对数据的不同备份状态对数据进行针对性处理,在一定程度上节省终端的软硬件资源,提高存储效率。

上述详细阐述了本申请实施例的方法,下面提供了本申请实施例的装置。

请参见图6,图6是本申请实施例提供的一种存储处理装置的结构示意图。其中,图6所示的存储处理装置可以包括检测模块601、执行模块602、接收模块603、更新模块604,其中,各个模块的详细描述如下。

检测模块601,用于在接收到访存请求时,检测所述访存请求的请求类型。

执行模块602,用于若所述检测模块601检测到所述访存请求为指令请求,且检测到所述访存请求所请求的目标数据的备份状态为独享状态,则根据第一处理策略的指示对所述访存请求执行响应处理。

所述执行模块602,还用于若所述检测模块601检测到所述访存请求为指令请求,且检测到所述访存请求所请求的目标数据的备份状态为共享状态,则根据第二处理策略的指示对所述访存请求执行响应处理。

其中,所述第一处理策略指示的响应处理方式和所述第二处理策略指示的响应处理方式不同。

在一些可行的实施方式中,所述执行模块602,还用于若所述检测模块601检测到所述访存请求为数据请求,则根据第三处理策略的指示对所述访存请求执行响应处理。

在一些可行的实施方式中,所述执行模块602,包括:

第一新建单元6021,用于根据所述访存请求新建与所述目标数据对应的第一目录项,所述第一目录项记录了存放所述目标数据的cache的缓存标识、所述目标数据的备份状态。

第一处理单元6022,用于根据所述访存请求的类型以及所述目标数据的备份状态,对所述访存请求所请求的目标数据执行响应处理。

在一些可行的实施方式中,所述执行模块602,还包括:

侦听单元6023,用于根据所述目标数据对管理的cache进行广播侦听,并接收各个cache针对所述广播侦听返回的侦听响应。

第一获取单元6024,用于根据所述侦听响应得到第一集合,所述第一集合包括一个或者多个存放所述目标数据的cache的缓存标识。

其中,所述第一处理单元6022,还用于若查询到所述第一集合中有未包括在所述第一目录项中的缓存标识,则对所述目标数据进行回收处理。

在一些可行的实施方式中,所述执行模块602,还包括:

第二处理单元6025,用于根据所述访存请求的类型以及所述目标数据的备份状态,对所述访存请求所请求的目标数据执行响应处理。

在一些可行的实施方式中,所述执行模块602,还包括:

第二新建单元6026,用于根据所述访存请求新建与所述目标数据对应的第二目录项,所述第二目录项记录了存放所述目标数据的缓存cache的缓存标识、所述目标数据的备份状态;

第三处理单元6027,用于根据所述访存请求的类型以及所述目标数据的备份状态,对所述访存请求所请求的目标数据执行响应处理。

在一些可行的实施方式中,所述装置还包括:

接收模块603,用于接收访存请求。

所述检测模块602,还用于检测预置目录中是否包括与所述访存请求所请求的目标数据对应的第三目录项。

所述检测模块602,还用于若检测结果为不包括,则确定未命中数据,执行所述检测所述访存请求的请求类型的步骤。

在一些可行的实施方式中,所述检测模块602,还用于若检测结果为包括与所述访存请求所请求的目标数据对应的第三目录项,则确定命中数据,所述装置还包括:

更新模块604,用于根据所述访存请求更新所述第三目录项。

所述更新模块604,包括:

第二获取单元6041,用于根据所述目标数据得到第二集合,所述第二集合包括一个或者多个存放所述目标数据的cache的缓存标识。

更新单元6042,用于若查询到所述第二集合中有未包括在所述第三目录项中的缓存标识,则对所述第三目录项进行更新处理。

需要说明的是,本申请实施例的存储处理装置的各功能模块、单元的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。

本申请实施例中,接收模块603在接收到访存请求时,触发检测模块601检测该访存请求的请求类型,以及检测该访存请求所请求的目标数据的备份状态,然后触发执行模块602根据访存请求的不同请求类型以及目标数据的不同备份状态采用不同的策略对访存请求执行响应处理。从而可以针对数据的不同备份状态对数据进行针对性处理,在一定程度上节省终端的软硬件资源,提高存储效率。

请参见图7,图7是本申请实施例提供的一种存储处理装置的结构示意图,本申请实施例中所描述的存储处理装置包括:处理器701、存储器702。其中,处理器701、存储器702可通过总线或其他方式连接,本申请实施例以通过总线连接为例。

其中,处理器701(例如中央处理器(centralprocessingunit,cpu))是存储处理装置的计算核心以及控制核心。存储器702(memory)是存储处理装置的记忆设备,用于存放程序和数据。可以理解的是,此处的存储器702可以是高速ram存储器,也可以是非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器;可选的还可以是至少一个位于远离前述处理器701的存储装置。存储器702提供存储空间,该存储空间存储了存储处理装置的操作系统和可执行程序代码,可包括但不限于:windows系统(一种操作系统)、linux(一种操作系统)系统等等,本申请对此并不作限定。

在本申请实施例中,处理器701通过运行存储器702中的可执行程序代码,执行如下操作:

处理器701,用于在接收到访存请求时,检测所述访存请求的请求类型。

所述处理器701,还用于若检测到所述访存请求为指令请求,且检测到所述访存请求所请求的目标数据的备份状态为独享状态,则根据第一处理策略的指示对所述访存请求执行响应处理。

所述处理器701,还用于若检测到所述访存请求为指令请求,且检测到所述访存请求所请求的目标数据的备份状态为共享状态,则根据第二处理策略的指示对所述访存请求执行响应处理。

其中,所述第一处理策略和所述第二处理策略不同。

在一些可行的实施方式中,所述处理器701,还用于:

若检测到所述访存请求的为数据请求,则根据第三处理策略的指示对所述访存请求执行响应处理。

在一些可行的实施方式中,所述处理器701,还用于:

根据所述访存请求新建与所述目标数据对应的第一目录项,所述第一目录项记录了存放所述目标数据的cache的缓存标识、所述目标数据的备份状态。

根据所述访存请求的类型以及所述目标数据的备份状态,对所述访存请求所请求的目标数据执行响应处理。

在一些可行的实施方式中,所述处理器701,还用于:

根据所述目标数据对管理的cache进行广播侦听,并接收各个cache针对所述广播侦听返回的侦听响应。

根据所述侦听响应得到第一集合,所述第一集合包括一个或者多个存放所述目标数据的cache的缓存标识。

若查询到所述第一集合中有未包括在所述第一目录项中的缓存标识,则对所述目标数据进行回收处理。

在一些可行的实施方式中,所述处理器701,还用于:

根据所述访存请求新建与所述目标数据对应的第二目录项,所述第二目录项记录了存放所述目标数据的缓存cache的缓存标识、所述目标数据的备份状态;并根据所述访存请求的类型以及所述目标数据的备份状态,对所述访存请求所请求的目标数据执行响应处理。

在一些可行的实施方式中,所述处理器701,还用于:

接收访存请求,并检测预置目录中是否包括与所述访存请求所请求的目标数据对应的第三目录项;若检测结果为不包括,则确定未命中数据,执行所述检测所述访存请求的请求类型的步骤。

在一些可行的实施方式中,所述处理器701,还用于:

若检测结果为包括与所述访存请求所请求的目标数据对应的第三目录项,则确定命中数据,并根据所述访存请求更新所述第三目录项。

在一些可行的实施方式中,所述处理器701,具体用于:

根据所述目标数据得到第二集合,所述第二集合包括一个或者多个存放所述目标数据的cache的缓存标识;若查询到所述第二集合中有未包括在所述第三目录项中的缓存标识,则对所述第三目录项进行更新处理。

具体实现中,本申请实施例中所描述的处理器701、存储器702可执行本申请实施例图3、图4或图5提供的一种存储处理方法的流程中所描述的实现方式,也可执行本申请实施例图6提供的一种存储处理装置中所描述的实现方式,在此不再赘述。

本申请实施例中,处理器701在接收到访存请求时,首先检测该访存请求的请求类型,以及检测该访存请求所请求的目标数据的备份状态,然后根据访存请求的请求类型以及目标数据的不同备份状态采用不同的策略对访存请求执行响应处理。从而可以针对数据的不同备份状态对数据进行针对性处理,在一定程度上节省终端的软硬件资源,提高存储效率。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如软盘、硬盘、磁带)、光介质(例如dvd)、或者半导体介质(例如固态硬盘(solidstatedisk,ssd))等。

综上,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1