掌桥专利:专业的专利平台
掌桥专利
首页

一种缓存集成方法、访问方法、装置、设备及介质

文献发布时间:2024-01-17 01:19:37


一种缓存集成方法、访问方法、装置、设备及介质

技术领域

本发明涉及微处理器设计技术领域,特别涉及一种缓存集成方法、访问方法、装置、设备及存储介质。

背景技术

结果缓存是一种通过从寄存器文件转移部分操作数读需求从而减少不必要的寄存器文件读端口并缓解读端口冲突的技术,最终能够达到减少寄存器文件的功耗和面积的效果。结果缓存的作用介于数据旁路和寄存器文件之间:数据旁路尽管能够快速获取操作数,但数据有效的时间窗口短暂且设计较为复杂,寄存器文件虽然能够保证能够得到需要的操作数,但数据读取花费的资源开销相对较大。已有结果缓存的设计方法不够灵活,并且从旁路、结果缓存、寄存器文件取操作数的逻辑各自判定,实现逻辑复杂,通用性差。

发明内容

有鉴于此,本发明的目的在于提供一种缓存集成方法、访问方法、装置、设备及存储介质,能够方便地将结果缓存移植到新的处理器中,适用于大多数的处理器,可以以较小的资源代价扩大操作数在寄存器文件外存活的时间窗口,从而达到进一步减少寄存器读需求的目的。其具体方案如下:

本申请的第一方面提供了一种缓存集成方法,包括:

基于目标处理器的微架构对预设结果缓存模块进行参数配置操作,以得到适配于所述目标处理器的微架构的目标结果缓存模块;

将所述目标处理器中原本仅与寄存器文件连接的读通路调整为与所述寄存器文件以及所述目标结果缓存模块中的数据缓存区分别进行连接第一读通路和第二读通路,并在所述目标处理器中增添用于连接所述目标处理器中的数据旁路与所述数据缓存区的写通路,以在所述目标处理器中完成对所述目标结果缓存模块的集成。

可选的,所述基于目标处理器的微架构对预设结果缓存模块进行参数配置操作,包括:

基于目标处理器的微架构对预设结果缓存模块的写端口、读端口和写位置选择逻辑进行配置;其中,所述预设结果缓存模块预先通过最近最少使用算法向所述写位置选择逻辑配置访问冲突判定逻辑。

可选的,所述方法还包括:

向所述目标处理器中添加多路选择器,以便通过所述多路选择器选择所述第一读通路或所述第二读通路作为当前读通路。

可选的,所述基于目标处理器的微架构对预设结果缓存模块进行参数配置操作之前,还包括:

向所述预设结果缓存模块中添加用于对数据读请求进行访问冲突判定的访问冲突判定逻辑。

本申请的第二方面提供了一种缓存访问方法,应用于所述缓存集成方法处理后得到的目标处理器中,包括:

获取针对目标操作数据的数据访问请求,并判断所述目标操作数据在所述目标处理器的数据旁路中的存储状态是否满足预设存储条件;

若不满足所述预设存储条件,则通过所述目标处理器中的目标结果缓存模块并利用目标通路对所述数据访问请求进行响应,以完成相应的缓存访问操作;所述目标通路为从所述目标处理器的写通路和读通路中确定的与所述数据访问请求的类型对应的通路。

可选的,所述获取针对目标操作数据的数据访问请求,并判断所述目标操作数据在所述目标处理器的数据旁路中的存储状态是否满足预设存储条件,包括:

获取针对目标操作数据的数据读请求,并判断所述目标处理器的数据旁路中是否已保存所述目标操作数据;

相应的,所述通过所述目标处理器中的目标结果缓存模块并利用目标通路对所述数据访问请求进行响应,包括:

获取所述目标操作数据对应的目标寄存器文件索引,并判断所述目标结果缓存模块中预先设置的索引映射管理模块中是否存储有所述目标寄存器文件索引对应的目标结果缓存地址索引;

若不存在所述目标结果缓存地址索引,则利用所述多路选择器选择的与所述目标处理器中的寄存器文件连接的第一读通路,从所述寄存器文件中读取出所述目标操作数据并输出;

若存在所述目标结果缓存地址索引,则利用所述目标结果缓存模块中预先配置的访问冲突判定逻辑判断所述目标操作数据是否处于可读状态;

若所述目标操作数据处于可读状态,则基于所述目标结果缓存地址索引以及利用所述目标处理器中的多路选择器选择的与所述数据缓存区连接的第二读通路,从所述目标结果缓存模块中的数据缓存区读取出所述目标操作数据并输出。

可选的,所述获取针对目标操作数据的数据访问请求,并判断所述目标操作数据在所述目标处理器的数据旁路中的存储状态是否满足预设存储条件,包括:

获取针对所述数据旁路中已保存的目标操作数据发起的写缓存请求,并判断所述目标操作数据在所述数据旁路的已存储时长是否小于预设存储时长阈值;

相应的,所述通过所述目标处理器中的目标结果缓存模块并利用目标通路对所述数据访问请求进行响应,包括:

通过所述索引映射管理模块创建与所述目标操作数据对应的目标结果缓存地址索引,并将所述目标结果缓存地址索引发送至所述数据缓存区;

将所述数据旁路中的所述目标操作数据发送至所述数据缓存区,以便所述数据缓存将所述目标操作数据保存至本地的与所述目标结果缓存地址索引对应的目标缓存位置;

将所述寄存器文件中预先保存的所述目标操作数据对应的目标寄存器文件索引存储到所述索引映射管理模块,以便所述索引映射管理模块建立所述目标寄存器文件索引与所述目标结果缓存地址索引之间的映射关系。

本申请的第三方面提供了一种缓存集成装置,包括:

参数配置模块,用于基于目标处理器的微架构对预设结果缓存模块进行参数配置操作,以得到适配于所述目标处理器的微架构的目标结果缓存模块;

缓存集成模块,用于将所述目标处理器中原本仅与寄存器文件连接的读通路调整为与所述寄存器文件以及所述目标结果缓存模块中的数据缓存区分别进行连接第一读通路和第二读通路,并在所述目标处理器中增添用于连接所述目标处理器中的数据旁路与所述数据缓存区的写通路,以在所述目标处理器中完成对所述目标结果缓存模块的集成。

本申请的第四方面提供了一种缓存访问装置,包括:

请求获取模块,用于获取针对目标操作数据的数据访问请求,并判断所述目标操作数据在所述目标处理器的数据旁路中的存储状态是否满足预设存储条件;

缓存访问模块,用于若不满足所述预设存储条件,则通过所述目标处理器中的目标结果缓存模块并利用目标通路对所述数据访问请求进行响应,以完成相应的缓存访问操作;所述目标通路为从所述目标处理器的写通路和读通路中确定的与所述数据访问请求的类型对应的通路。

本申请的第五方面提供了一种电子设备,所述电子设备包括处理器和存储器;其中,所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行以实现前述的方法。

本申请的第六方面提供了一种计算机可读存储介质,所述计算机程序被处理器执行时实现前述的方法。

本申请中,基于目标处理器的微架构对预设结果缓存模块进行参数配置操作,以得到适配于所述目标处理器的微架构的目标结果缓存模块;将所述目标处理器中原本仅与寄存器文件连接的读通路调整为与所述寄存器文件以及所述目标结果缓存模块中的数据缓存区分别进行连接第一读通路和第二读通路,并在所述目标处理器中增添用于连接所述目标处理器中的数据旁路与所述数据缓存区的写通路,以在所述目标处理器中完成对所述目标结果缓存模块的集成。然后在使用所述缓存集成方法处理后得到的目标处理器进行缓存访问操作时,首先获取针对目标操作数据的数据访问请求,并判断所述目标操作数据在所述目标处理器的数据旁路中的存储状态是否满足预设存储条件;若不满足所述预设存储条件,则通过所述目标处理器中的目标结果缓存模块并利用目标通路对所述数据访问请求进行响应,以完成相应的缓存访问操作;所述目标通路为从所述目标处理器的写通路和读通路中确定的与所述数据访问请求的类型对应的通路。通过上述方案,能够方便地将结果缓存移植到新的处理器中,可以以较小的资源代价扩大操作数在寄存器文件外存活的时间窗口,从而达到进一步减少寄存器读需求的目的。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请公开的一种缓存集成方法流程图;

图2为本申请公开的一种结果缓存内部结构图;

图3为本申请公开的一种结果缓存系统设计操作数数据读通路;

图4为本申请公开的一种结果缓存系统设计操作数数据写通路;

图5为本申请公开的一种具体缓存访问方法流程图;

图6为本申请公开的一种具体缓存读取方法流程图;

图7为本申请公开的一种具体缓存读取方法流程图;

图8为本申请公开的一种具体缓存写入方法流程图;

图9为本申请公开的一种具体缓存写入方法流程图;

图10为本申请公开的一种缓存集成装置结构示意图;

图11为本申请公开的一种缓存访问装置结构示意图;

图12为本申请公开的一种电子设备结构图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

已有结果缓存的设计方法不够灵活,并且从旁路、结果缓存、寄存器文件取操作数的逻辑各自判定,实现逻辑复杂,通用性差。本实施例将介绍一种快速在处理器中添加结果缓存模块的一种方法。

参见图1所示,本发明实施例公开了一种缓存集成方法,包括:

步骤S11:基于目标处理器的微架构对预设结果缓存模块进行参数配置操作,以得到适配于所述目标处理器的微架构的目标结果缓存模块。

本实施例中所述基于目标处理器的微架构对预设结果缓存模块进行参数配置操作,包括:基于目标处理器的微架构对预设结果缓存模块的写端口、读端口和写位置选择逻辑进行配置。由于不同的处理器微架构会不同,例如发射队列的配置、执行部件的结果来源等等,但是当在处理器中添加结果缓存模块时,不需要完全从头开始设计,只需要对原先实现缓存模块进行较小的改动即可,内部的大部分逻辑可保持不变。本实施例中,写端口的配置与执行部件的结果输出总线有关;例如此结果缓存的辖域内所有执行部件同一周期内最多可输出n个结果,则结果缓存需要配置n个写端口,同时内部的LRU(Least RecentlyUsed,即最近最少使用)算法提供的最大写位置数量也应配置为n个。读端口的配置则与发射队列的配置有关,例如,此结果缓存的辖域内一共有m个发射队列,各个发射队列需要读n个操作数,则结果缓存需要配置m*n个读端口。配置写位置选择逻辑进行配置是指若此时有k个有效输入数据(k≤n),则这k个数据将被选到n个写位置的前k个位置当中。这样一来,结果缓存模块不需要完全从头开始设计,只需要对本发明的缓存模块进行较小的改动即可,内部的大部分逻辑可不变,例如替换算法。就是要使现有模块与新处理器的微架构在代码上是适配的,从而能够以较小的代价重用原有的设计。

本实施例中,所述基于目标处理器的微架构对预设结果缓存模块进行参数配置操作之前,包括:向所述预设结果缓存模块中添加用于对数据读请求进行访问冲突判定的访问冲突判定逻辑。其中,所述预设结果缓存模块预先通过最近最少使用算法向所述写位置选择逻辑配置访问冲突判定逻辑。如图2所示,本发明使用的预设结果缓存模块通过使用LRU算法向写位置选择逻辑提供的写位置可配置,增加了写冲突判定提供给外部逻辑以确保结果缓存能够正确地读取数据,寄存器索引存储的参数化,以及数据存储模块分组和总项数的参数化。其中,本发明中使用的所述预设结果缓存模块进行了参数化处理,参数化处理包括四方面:结果缓存总存储项数参数化、存储模块组组数参数化、最大同时可替换项数参数化和读写端口参数化。其中,结果缓存总存储项数参数化关系到结果缓存的整体性能,包括时序、能耗、命中率等等,是结果缓存最重要的参数,实现总存储项数参数化,能够方便地控制变量以优化平衡结果缓存的各方面指标。存储模块组组数参数化中将存储部件分组是一种低功耗设计的常用方法,分组可以使得数据读取时多路选择的规模降低,减少需要读取的寄存器数目,从而降低功耗。总存储项等于存储模块组数乘以单组存储项数,合理配置存储模块组数和总存储项数,优化结果缓存的读逻辑,将能够使得结果缓存的功耗进一步降低。在以往的结果缓存能够提供的写位置是按照现有处理器流水线架构提前规定好的,不可更改,这在处理器扩展发射队列的队列时将会有更多的计算部件需要写结果缓存,带来较大的RTL(Register Transfer Level,即寄存器传输级)设计额外工作量,甚至需要重新写替换算法。最大同时可替换项数参数化后,当需要增加写端口时,只需要更改参数和可替换项选择逻辑即可,无需改动替换算法。读写端口的参数化配置,能够进一步减小设计量,提高模块代码的可移植性,帮助模块快速集成于其他处理器核。

步骤S12:将所述目标处理器中原本仅与寄存器文件连接的读通路调整为与所述寄存器文件以及所述目标结果缓存模块中的数据缓存区分别进行连接第一读通路和第二读通路,并在所述目标处理器中增添用于连接所述目标处理器中的数据旁路与所述数据缓存区的写通路,以在所述目标处理器中完成对所述目标结果缓存模块的集成。

本实施例中,在对所述预设结果缓存模块进行参数配置操作后需要对所述目标处理器中的读通路进行修改。如图3所示,将所述目标处理器中原本仅与寄存器文件连接的读通路调整为与所述寄存器文件以及所述目标结果缓存模块中的数据缓存区,分别进行连接第一读通路和第二读通路。其中所述数据缓存区即为图中所述的数据存储模块,在后续的实施例中同理。本实施例中可以选择向所述目标处理器中添加多路选择器,以便通过所述多路选择器选择所述第一读通路或所述第二读通路作为当前读通路。这样一来,读通路的输入和输出兼容在未添加结果缓存的原数据通路之中,当索引映射管理模块告知外部结果缓存可读时,取消寄存器文件的读,改为读取结果缓存,从而达到“偷取”寄存器文件读需求的目的。但此时在外界看来,数据仍然来自寄存器文件的数据通路。然后,在所述目标处理器中增添用于连接所述目标处理器中的数据旁路与所述数据缓存区的写通路,如图4所示,各个执行部件的运算结果经过一个寄存窗口,送入结果缓存的写端口,由于写端口在设计之初就考虑了扩展性,这样一来对于不同处理器,写通路的实现将可以更加简便。最后,集成所述目标结果缓存模块到所述目标处理器中,连通所述读通路和所述写通路后,继续完成后续的验证、调试、仿真等工作。

可见,本实施例中,通过基于目标处理器的微架构对预设结果缓存模块进行参数配置操作,以得到适配于所述目标处理器的微架构的目标结果缓存模块;然后将所述目标处理器中原本仅与寄存器文件连接的读通路调整为与所述寄存器文件以及所述目标结果缓存模块中的数据缓存区分别进行连接第一读通路和第二读通路,并在所述目标处理器中增添用于连接所述目标处理器中的数据旁路与所述数据缓存区的写通路,以在所述目标处理器中完成对所述目标结果缓存模块的集成。通过对将参数配置后的目标结果缓存模块集成到目标处理器中,这种增量式系统设计适用于大多数处理器设计,能够方便地将结果缓存移植到新的处理器中,通过将预设结果缓存模块中的关键指标进行参数化,可以减少迭代更新结果缓存设计时的工作量,加速了结果缓存关键设计参数的迭代优化,并且端口扩展性强,当执行部件进一步扩展时,该方法能够更快地扩展写端口。

上述实施例中,具体介绍了一种快速在处理器中添加结果缓存模块的一种方法。本实施例中将具体介绍使用上述实施例生成的目标结果缓存器进行缓存访问的方法。

参见图5所示,本发明实施例公开了一种缓存访问方法,应用于上述缓存集成方法处理后得到的目标处理器中,包括:

步骤S21:获取针对目标操作数据的数据访问请求,并判断所述目标操作数据在目标处理器的数据旁路中的存储状态是否满足预设存储条件。

本实施例中,当获取到针对目标操作数据的数据访问请求,并判断所述目标操作数据在目标处理器的数据旁路中的存储状态是否满足预设存储条件。由于在所述目标处理器中,所述目标操作数据的获取优先级是不同的,所述数据旁路的优先级最高,其次是结果缓存模块,最后是从寄存器文件。因此,在获取到针对所述目标操作数据的数据访求请问时,优先考虑所述数据在所述数据旁路的存储状态是否满足预设存储条件。其中,所述数据访问请求包括数据读请求和数据写请求。

步骤S22:若不满足所述预设存储条件,则通过所述目标处理器中的目标结果缓存模块并利用目标通路对所述数据访问请求进行响应,以完成相应的缓存访问操作;所述目标通路为从所述目标处理器的写通路和读通路中确定的与所述数据访问请求的类型对应的通路。

本实施例中,如果所述目标操作数据在目标处理器的数据旁路中的存储状态不满足预设存储条件,说明此时不能从所述数据旁路中进行数据访问操作,则需要通过所述目标结果缓存模块并利用相应的数据通路进行对所述数据访问请求进行相应,以完成相应的缓存访问操作;所述目标通路为从所述目标处理器的写通路和读通路中确定的与所述数据访问请求的类型对应的通路。这样一来,可以保证缓存访问操作的成功执行。

可见,本实施例中,首先获取针对目标操作数据的数据访问请求,并判断所述目标操作数据在目标处理器的数据旁路中的存储状态是否满足预设存储条件;若不满足所述预设存储条件,则通过所述目标处理器中的目标结果缓存模块并利用目标通路对所述数据访问请求进行响应,以完成相应的缓存访问操作;所述目标通路为从所述目标处理器的写通路和读通路中确定的与所述数据访问请求的类型对应的通路。这样一来,通过对所述目标数据的存储状态进行判定,然后选择合适的方式相应所述数据访问请求,进而保证缓存访问操作的成功执行。

上述实施例中介绍了使用前述实施例生成的目标结果缓存器进行缓存访问的方法。本实施例将具体介绍对目标操作数据进行数据读操作的方法。

参见图6所示,本发明实施例公开了一种缓存读取方法,包括:

步骤S31:获取针对目标操作数据的数据读请求,并判断目标处理器的数据旁路中是否已保存所述目标操作数据。

本实施例中,在获取到针对目标操作数据的数据读请求时,判断目标处理器的数据旁路中是否已保存所述目标操作数据。如果所述数据旁路中存储了所述目标操作数据,则可以直接通过所述数据旁路相应所述数据读请求。由于所述数据旁路获取操作数速度较快,因此通过所述数据旁路读取所述目标操作数据可以提高数据读取效率。但是,处理器一般会在发射阶段前期通过一定的逻辑确定操作数是从旁路获取还是寄存器文件获取,并且各自具有独立的数据通路,当数据确定不从旁路获取时,将从寄存器文件取得数据。

步骤S32:若否,则获取所述目标操作数据对应的目标寄存器文件索引,并判断所述目标结果缓存模块中预先设置的索引映射管理模块中是否存储有所述目标寄存器文件索引对应的目标结果缓存地址索引。

本实施例中,若数据确定不从所述数据旁路中获取时,则获取所述目标操作数据对应的目标寄存器文件索引,并判断所述目标结果缓存模块中预先设置的索引映射管理模块中是否存储有所述目标寄存器文件索引对应的目标结果缓存地址索引。由于所述目标处理器中的结果缓存模块由索引映射管理模块和数据存储模块组组成,其中索引映射管理模块负责管理寄存器文件地址索引和结果缓存地址索引之间的映射关系,数据存储模块负责存储操作数数据。因此,通过判断所述目标结果缓存模块中预先设置的索引映射管理模块中是否存储有所述目标寄存器文件索引对应的目标结果缓存地址索引,可以判断出所述目标结果缓存模块中是否存储了所述目标操作数据。

步骤S33:若不存在所述目标结果缓存地址索引,则利用所述目标处理器中的选择的与所述目标处理器中的寄存器文件连接的第一读通路,从所述寄存器文件中读取出所述目标操作数据并输出。

本实施例中,若不存在所述目标结果缓存地址索引,则利用所述目标处理器中的选择的与所述目标处理器中的寄存器文件连接的第一读通路,从所述寄存器文件中读取出所述目标操作数据并输出。即如果所述目标结果缓存模块中预先设置的索引映射管理模块中未存储有所述目标寄存器文件索引对应的目标结果缓存地址索引。则说明所述目标结果缓存中没有存储所述目标操作数据,此时需要从所述寄存器文件中读取所述目标操作数据。因此会利用所述目标处理器中的选择的与所述目标处理器中的寄存器文件连接的第一读通路,从所述寄存器文件中读取出所述目标操作数据并输出。

步骤S34:若存在所述目标结果缓存地址索引,则利用所述目标结果缓存模块中预先配置的访问冲突判定逻辑判断所述目标操作数据是否处于可读状态。

本实施例中,如果所述目标结果缓存模块中预先设置的索引映射管理模块中存储有所述目标寄存器文件索引对应的目标结果缓存地址索引,说明所述目标结果缓存模块中存储了所述目标操作数据,但是由于检测能否取数据和实际取数据并不在同一操作站,因此检测能否取数据时还需考虑在此期间数据可能被替换的特殊情况,即利用所述目标结果缓存模块中预先配置的访问冲突判定逻辑判断所述目标操作数据是否处于可读状态。

步骤S35:若所述目标操作数据处于可读状态,则基于所述目标结果缓存地址索引以及利用所述多路选择器选择的与所述数据缓存区连接的第二读通路,从所述目标结果缓存模块中的数据缓存区读取出所述目标操作数据并输出。

本实施例中,所述目标操作数据处于可读状态,则基于所述目标结果缓存地址索引以及利用所述多路选择器选择的与所述数据缓存区连接的第二读通路,从所述目标结果缓存模块中的数据缓存区读取出所述目标操作数据并输出。这样一来,在处理器整个流水线看来是增量式的,没有因为添加结果缓存而对流水线结构产生额外影响,而在原来需要从寄存器文件取数据的指令看来,表面上数据来源于寄存器文件,但实际上有可能来源于结果缓存而无需使用寄存器文件读端口这一宝贵资源。

可见,本实施例中,如图7所示,外部的寄存器文件索引输入到索引映射管理模块中,根据寄存器文件索引在结果缓存的索引映射管理模块中的匹配情况且通过访问冲突判定,则索引映射管理模块告知外部结果缓存可读,此时取消寄存器文件的读,改为读取结果缓存,并且多路选择器选择结果缓存输出的结果。这样一来,在处理器整个流水线看来是增量式的,没有因为添加结果缓存而对流水线结构产生额外影响,而在原来需要从寄存器文件取数据的指令看来,表面上数据来源于寄存器文件,但实际上有可能来源于结果缓存而无需使用寄存器文件读端口这一宝贵资源。

上述实施例具体介绍对目标操作数据进行数据读操作的方法,本实施例将具体介绍一种进行数据写入操作的方法。

参见图8所示,本发明实施例公开了一种缓存写入方法,应用于上述缓存集成方法处理后得到的目标处理器中,包括:

步骤S41:获取针对数据旁路中已保存的目标操作数据发起的写缓存请求,并判断所述目标操作数据在所述数据旁路的已存储时长是否小于预设存储时长阈值。

本实施例中,从结果缓存读取数据的优先级要低于已有的数据旁路,当数据判定可以从旁路获取数据时,就无需从结果缓存获取数据。这也就代表结果缓存的写入不一定非要在写回的第一拍,而是可以按需设置缓存写时序,例如数据旁路窗口持续两个时钟周期,则数据可以选择在写回的第三个周期写入到结果缓存中,如图9所示,如果数据旁路支持在write_back_1、write_back_2流水站读取数据,则可以在write_back_3流水站完成数据到结果缓存的写入。从而使得该数据在寄存器文件外的存活时间最大限度地延长。对于写入结果缓存的位置,则可以选择合适的缓存替换策略。

步骤S42:若不满足所述预设存储条件,则通过索引映射管理模块创建与所述目标操作数据对应的目标结果缓存地址索引,并将所述目标结果缓存地址索引发送至数据缓存区。

本实施例中,若不满足所述预设存储条件,则通过索引映射管理模块创建与所述目标操作数据对应的目标结果缓存地址索引,并将所述目标结果缓存地址索引发送至数据缓存区。这样一来,可以所述数据缓存区会根据所述目标结果缓存地址索引确定出所述目标操作数据的目标缓存位置。

步骤S43:将所述数据旁路中的所述目标操作数据发送至所述数据缓存区,以便所述数据缓存将所述目标操作数据保存至本地的与所述目标结果缓存地址索引对应的目标缓存位置。

本实施例中,确定出所述目标操作数据的目标缓存位置后,将所述数据旁路中的所述目标操作数据发送至所述数据缓存区,以便所述数据缓存将所述目标操作数据保存至本地的与所述目标结果缓存地址索引对应的目标缓存位置。即各个执行部件的数据旁路拉取数据及其有效性、数据类型等控制信号,一一对应地送入结果缓存的各个写端口,从而实现延迟写回。

步骤S44:将所述寄存器文件中预先保存的所述目标操作数据对应的目标寄存器文件索引存储到所述索引映射管理模块,以便所述索引映射管理模块建立所述目标寄存器文件索引与所述目标结果缓存地址索引之间的映射关系。

本实施例中,将所述寄存器文件中预先保存的所述目标操作数据对应的目标寄存器文件索引存储到所述索引映射管理模块,以便所述索引映射管理模块建立所述目标寄存器文件索引与所述目标结果缓存地址索引之间的映射关系。这样一来,方便了后续对所述数据进行读操作时,可以根据所述目标寄存器文件索引从所述目标结果缓存中查询到所述目标操作数据。

可见,本实施例中,数据写入结果缓存如图9所示:第一步是在写回的第一站由索引映射管理模块向数据存储模块传入结果缓存索引(rtag);第二步是在写回的第二站接收来自数据旁路的操作数数据和寄存器文件索引(ptag);第三步是在写回的第三站使数据和ptag最终写入到结果缓存中。这样一来,能够以较小的资源代价扩大操作数在寄存器文件外存活的时间窗口,从而达到进一步减少寄存器读需求的目的。

参见图10所示,本发明实施例公开了一种缓存集成装置,包括:

参数配置模块11,用于基于目标处理器的微架构对预设结果缓存模块进行参数配置操作,以得到适配于所述目标处理器的微架构的目标结果缓存模块;

缓存集成模块12,用于将所述目标处理器中原本仅与寄存器文件连接的读通路调整为与所述寄存器文件以及所述目标结果缓存模块中的数据缓存区分别进行连接第一读通路和第二读通路,并在所述目标处理器中增添用于连接所述目标处理器中的数据旁路与所述数据缓存区的写通路,以在所述目标处理器中完成对所述目标结果缓存模块的集成。

可见,本实施例中,通过基于目标处理器的微架构对预设结果缓存模块进行参数配置操作,以得到适配于所述目标处理器的微架构的目标结果缓存模块;然后将所述目标处理器中原本仅与寄存器文件连接的读通路调整为与所述寄存器文件以及所述目标结果缓存模块中的数据缓存区分别进行连接第一读通路和第二读通路,并在所述目标处理器中增添用于连接所述目标处理器中的数据旁路与所述数据缓存区的写通路,以在所述目标处理器中完成对所述目标结果缓存模块的集成。通过对将参数配置后的目标结果缓存模块集成到目标处理器中,这种增量式系统设计适用于大多数处理器设计,能够方便地将结果缓存移植到新的处理器中,通过将预设结果缓存模块中的关键指标进行参数化,可以减少迭代更新结果缓存设计时的工作量,加速了结果缓存关键设计参数的迭代优化,并且端口扩展性强,当执行部件进一步扩展时,该方法能够更快地扩展写端口。

在一种具体实施例中,所述参数配置模块11,具体包括:

端口逻辑配置单元,用于基于目标处理器的微架构对预设结果缓存模块的写端口、读端口和写位置选择逻辑进行配置;其中,所述预设结果缓存模块预先通过最近最少使用算法向所述写位置选择逻辑配置访问冲突判定逻辑。

在一种具体实施例中,所述缓存集成装置,具体还包括:

选择器添加模块,用于向所述目标处理器中添加多路选择器,以便通过所述多路选择器选择所述第一读通路或所述第二读通路作为当前读通路。

在一种具体实施例中,所述缓存集成装置,具体还包括:

判定逻辑添加模块,用于向所述预设结果缓存模块中添加用于对数据读请求进行访问冲突判定的访问冲突判定逻辑。

参见图11所示,本发明实施例公开了一种缓存访问装置,包括:

请求获取模块21,用于获取针对目标操作数据的数据访问请求,并判断所述目标操作数据在所述目标处理器的数据旁路中的存储状态是否满足预设存储条件;

缓存访问模块22,用于若不满足所述预设存储条件,则通过所述目标处理器中的目标结果缓存模块并利用目标通路对所述数据访问请求进行响应,以完成相应的缓存访问操作;所述目标通路为从所述目标处理器的写通路和读通路中确定的与所述数据访问请求的类型对应的通路。

可见,本实施例中,首先获取针对目标操作数据的数据访问请求,并判断所述目标操作数据在目标处理器的数据旁路中的存储状态是否满足预设存储条件;若不满足所述预设存储条件,则通过所述目标处理器中的目标结果缓存模块并利用目标通路对所述数据访问请求进行响应,以完成相应的缓存访问操作;所述目标通路为从所述目标处理器的写通路和读通路中确定的与所述数据访问请求的类型对应的通路。这样一来,通过对所述目标数据的存储状态进行判定,然后选择合适的方式相应所述数据访问请求,进而保证缓存访问操作的成功执行。

在一种具体实施例中,所述请求获取模块21,具体包括:

读请求获取单元,用于获取针对目标操作数据的数据读请求,并判断所述目标处理器的数据旁路中是否已保存所述目标操作数据;

相应的,所述缓存访问模块22,具体包括:

文件索引获取单元,用于获取所述目标操作数据对应的目标寄存器文件索引,并判断所述目标结果缓存模块中预先设置的索引映射管理模块中是否存储有所述目标寄存器文件索引对应的目标结果缓存地址索引;

第一数据输出单元,用于若不存在所述目标结果缓存地址索引,则利用所述多路选择器选择的与所述目标处理器中的寄存器文件连接的第一读通路,从所述寄存器文件中读取出所述目标操作数据并输出;

数据状态判断单元,用于若存在所述目标结果缓存地址索引,则利用所述目标结果缓存模块中预先配置的访问冲突判定逻辑判断所述目标操作数据是否处于可读状态;

第二数据输出单元,用于若所述目标操作数据处于可读状态,则基于所述目标结果缓存地址索引以及利用所述目标处理器中的多路选择器选择的与所述数据缓存区连接的第二读通路,从所述目标结果缓存模块中的数据缓存区读取出所述目标操作数据并输出。

在一种具体实施例中,所述请求获取模块21,具体包括:

写请求获取单元,用于获取针对所述数据旁路中已保存的目标操作数据发起的写缓存请求,并判断所述目标操作数据在所述数据旁路的已存储时长是否小于预设存储时长阈值;

相应的,所述缓存访问模块22,具体包括:

索引创建单元,用于通过所述索引映射管理模块创建与所述目标操作数据对应的目标结果缓存地址索引,并将所述目标结果缓存地址索引发送至所述数据缓存区;

数据存储单元,用于将所述数据旁路中的所述目标操作数据发送至所述数据缓存区,以便所述数据缓存将所述目标操作数据保存至本地的与所述目标结果缓存地址索引对应的目标缓存位置;

映射关系建立单元,用于将所述寄存器文件中预先保存的所述目标操作数据对应的目标寄存器文件索引存储到所述索引映射管理模块,以便所述索引映射管理模块建立所述目标寄存器文件索引与所述目标结果缓存地址索引之间的映射关系。

进一步的,本申请实施例还公开了一种电子设备,图12是根据一示例性实施例示出的电子设备30结构图,图中的内容不能认为是对本申请的使用范围的任何限制。

图12为本申请实施例提供的一种电子设备30的结构示意图。该电子设备30,具体可以包括:至少一个处理器31、至少一个存储器32、电源33、通信接口34、输入输出接口35和通信总线36。其中,所述存储器32用于存储计算机程序,所述计算机程序由所述处理器31加载并执行,以实现前述任一实施例公开的方法中的相关步骤。另外,本实施例中的电子设备30具体可以为电子计算机。

本实施例中,电源33用于为电子设备30上的各硬件设备提供工作电压;通信接口34能够为电子设备30创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口35,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。

另外,存储器32作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源可以包括操作系统321、计算机程序322等,存储方式可以是短暂存储或者永久存储。

其中,操作系统321用于管理与控制电子设备30上的各硬件设备以及计算机程序322,其可以是Windows Server、Netware、Unix、Linux等。计算机程序322除了包括能够用于完成前述任一实施例公开的由电子设备30执行的方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。

进一步的,本申请还公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上对本申请所提供的技术方案进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

相关技术
  • 一种缓存写入方法、装置、设备及可读存储介质
  • 一种多控制器缓存备份方法、装置、设备及可读存储介质
  • 一种视频缓存分析方法、装置、设备及介质
  • 一种缓存方法、装置、设备及介质
  • 一种数据缓存方法、装置、设备及存储介质
  • 一种缓存数据访问处理方法、装置、电子设备及存储介质
  • 一种缓存数据访问方法、装置、设备以及存储介质
技术分类

06120116130233