一种memory set的优化策略的实现方法及系统

文档序号:1845428 发布日期:2021-11-16 浏览:1次 >En<

阅读说明:本技术 一种memory set的优化策略的实现方法及系统 (Method and system for realizing memory set optimization strategy ) 是由 李长林 余红斌 于 2021-07-15 设计创作,主要内容包括:本发明涉及微处理器技术领域,具体涉及一种memory set的优化策略的实现方法及系统,包括store-buffer模块、pipeline模块、stream-model-dector模块和WCB模块。解决了现有技术中由于Miss,需要向L2发出reload请求,然后L2返回reload数据,最后再把store的数据和reload的数据一同写入D-cache中,这样会导致latence太长;由于向L2中发出了请求,其实reload回来的数据并没有用,这样就无缘无故的加大的了L2请求的带宽;造成D-cache的污染,并且造成的污染数据会很大,对D-cache的命中率将会有大幅度的下降的问题。本发明减少了latence,同时降低了L1对L2请求的带宽,并且不会造成L1-cache的污染,不会对D-cache的命中率有负面影响,具有很强的市场应用前景。(The invention relates to the technical field of microprocessors, in particular to a method and a system for realizing a memory set optimization strategy. The problem that in the prior art, due to Miss, a load request needs to be sent to L2, then L2 returns load data, and finally the data of the store and the data of the load are written into D _ cache together, so that reference is too long is solved; because the request is sent to the L2, the data returned by the real load is useless, so that the bandwidth of the L2 request is increased without any reason; the pollution of the D _ cache is caused, the caused pollution data is large, and the hit rate of the D _ cache is greatly reduced. The invention reduces lattice, reduces the bandwidth of L1 to the L2 request, does not cause the pollution of L1_ cache, does not have negative influence on the hit rate of D _ cache, and has strong market application prospect.)

一种memory set的优化策略的实现方法及系统

技术领域

本发明涉及微处理器技术领域,具体涉及一种memory set的优化策略的实现方法及系统。

背景技术

对于memory set程序,需要对连续的地址的数据写入memory中,此时大概率是会miss,如果还正常的进行reload数据,然后把reload数据写入D_cache中,但是该数据在后续的指令操作中又不需要使用,所以会造成D_cache的污染,并且造成的污染数据会很大,对D_cache的命中率将会有大幅度的下降。

现有技术中,由于Miss,需要向L2发出reload请求,然后L2返回reload数据,最后再把store的数据和reload的数据一同写入D_cache中,这样会导致latence太长;由于向L2中发出了请求,其实reload回来的数据并没有用,这样就无缘无故的加大的了L2请求的带宽;造成D_cache的污染,并且造成的污染数据会很大,对D_cache的命中率将会有大幅度的下降,因此本文提出一种memory set的优化策略的实现方法及系统。

发明内容

针对现有技术的不足,本发明公开了一种memory set的优化策略的实现方法及系统,用于解决现有技术中由于Miss,需要向L2发出reload请求,然后L2返回reload数据,最后再把store的数据和reload的数据一同写入D_cache中,这样会导致latence太长;由于向L2中发出了请求,其实reload回来的数据并没有用,这样就无缘无故的加大的了L2请求的带宽;造成D_cache的污染,并且造成的污染数据会很大,对D_cache的命中率将会有大幅度的下降的问题。

本发明通过以下技术方案予以实现:

第一方面,本发明公开了一种memory set的优化策略的实现方法,包括以下步骤:

S1初始化完成,store指令进入store buffer模块,由store_buffer发出read请求,上pipeline;

S2判断在D_cache中命中M/E态、S态或没有命中的状态,并根据该状态进行相应操作;

S3由miss queue entry项向L2发出reload请求,L2返回reload E态数据的同时唤醒在store buffer中miss命中S态的store_buffer entry项;

S4对reload数据回填refill_buffer,refill上pipeline并在store_buffer中检测有同一cacheline的数据需要store;

S5将store的数据一同merge进来一同写入D_cache中,同时deallocation掉store_buffer和refill_buffer entry项;

S6在整条cacheline满后后,将store的数据写入L2,确认数据已写入L2后,deallocate掉WCB entry。

更进一步的,所述方法中,如果在D_cache中命中M/E态,则store_buffer接着发出write的请求,将数据写入D_cache中,并将cacheline的status修改为E态。

更进一步的,所述方法中,如果在D_cache中命中的是S态,则向miss queue中请求分配一个entry项。

更进一步的,所述方法中,如果在D_cache中没有命中,判断如果已处于stream_model模式,则待store的整条cacheline满后直接将数据写入WCB中,如果没有处于stream_model模式,则向miss queue中请求分配一个entry项。

更进一步的,所述方法中,被唤醒的store_buffer entry项,给refill上pipelineN个时钟周期的merge窗口,其中N为自然数。

更进一步的,所述方法中,整条cacheline满后后,将数据写入WCB,WCB将store的数据写入L2,WCB收到L2的response ack信息确认数据已写入L2,deallocate掉WCB entry。

第二方面,本发明公开了一种memory set的优化策略的实现系统,所述系统用于实现第一方面所述的一种memory set的优化策略的实现方法,包括store_buffer模块、pipeline模块、stream_model_dector模块和WCB模块。

更进一步的,所述tore_buffer模块,在store queue完成sta和std操作后,得到毕业模块的确认该store指令的store数据可往memory中写时,则将该store的数据写入store_buffer中模块,所述store_buffer模块则根据在D_cache的命中状态和stream_model模式,确定是否直接将store的数据写入D_cache还是请求分配missq entry项,还是待整条cacheline满后直接写入WCB中。

更进一步的,所述pipeline模块负责指令上pipeline之后的数据访问,如果Miss新missq中请求分配一个entry项,refill上pipeline,如果store_buffer中有和该地址一致的数据需要store,则两数据进行merge后一同写入D_cache中。

更进一步的,所述stream model dector模块负责stream_model模式的检测,判断进入/退出/维持stream_model模式,所述WCB模块负责将数据写入L2中。

本发明的有益效果为:

本发明减少了latence,同时降低了L1对L2请求的带宽,并且不会造成L1_cache的污染,不会对D_cache的命中率有负面影响,具有很强的市场应用前景。

附图说明

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

图1是一种memory set的优化策略的实现方法的流程图;

图2是一种memory set的优化策略的实现系统的结构框图;

图3是stream model模式的进入和退出的检测图。

具体实施方式

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

实施例1

请参阅图1所示,本发明公开了一种memory set的优化策略的实现方法,包括以下步骤:

S1初始化完成,store指令进入store buffer模块,由store_buffer发出read请求,上pipeline;

S2判断在D_cache中命中M/E态、S态或没有命中的状态,并根据该状态进行相应操作;

S3由miss queue entry项向L2发出reload请求,L2返回reload E态数据的同时唤醒在store buffer中miss命中S态的store_buffer entry项;

S4对reload数据回填refill_buffer,refill上pipeline并在store_buffer中检测有同一cacheline的数据需要store;

S5将store的数据一同merge进来一同写入D_cache中,同时deallocation掉store_buffer和refill_buffer entry项;

S6在整条cacheline满后后,将store的数据写入L2,确认数据已写入L2后,deallocate掉WCB entry。

本实施例中,如果在D_cache中命中M/E态,则store_buffer接着发出write的请求,将数据写入D_cache中,并将cacheline的status修改为E态。

本实施例中,如果在D_cache中命中的是S态,则向miss queue中请求分配一个entry项。

本实施例中,如果在D_cache中没有命中,判断如果已处于stream_model模式,则待store的整条cacheline满后直接将数据写入WCB中,如果没有处于stream_model模式,则向miss queue中请求分配一个entry项。

本实施例中,被唤醒的store_buffer entry项,给refill上pipeline N个时钟周期的merge窗口,其中N为自然数。

本实施例中,整条cacheline满后后,将数据写入WCB,WCB将store的数据写入L2,WCB收到L2的response ack信息确认数据已写入L2,deallocate掉WCB entry。

本实施例解决了现有技术中由于Miss,需要向L2发出reload请求,然后L2返回reload数据,最后再把store的数据和reload的数据一同写入D_cache中,这样会导致latence太长的问题。

本实施例解决了现有技术中由于向L2中发出了请求,其实reload回来的数据并没有用,这样就无缘无故的加大的了L2请求的带宽;造成D_cache的污染,并且造成的污染数据会很大,对D_cache的命中率将会有大幅度的下降的问题

实施例2

请参阅图2所示,本实施例主要的实施方案在store_buffer模块、pipeline、stream_model_dector模块和WCB模块中。

本实施例store_buffer模块,用于store queue完成sta和std操作后,得到毕业模块的确认该store指令的store数据可以往memory中写时,就会将该store的数据写入store_buffer中。

store_buffer则根据在D_cache的命中状态和stream_model模式,确定是否直接将store的数据写入D_cache还是请求分配missq entry项,还是待整条cacheline满后直接写入WCB中。

本实施例pipeline模块负责指令上pipeline之后的数据访问,如果Miss新missq中请求分配一个entry项,refill上pipeline,如果store_buffer中有和该地址一致的数据需要store,则两数据进行merge后一同写入D_cache中。

本实施例stream model dector模块负责stream_model模式的检测,判断进入/退出/维持stream_model模式。

本实施例WCB模块负责将数据写入L2中。

实施例3

请参阅图3所示,本实施例公开一种stream model模式的进入和退出的检测。

本实施例进入的条件为:有连续的store N条完整的cacheline,这里的N是一个可配置的值。

本实施例退出的条件为:

1、store的地址不符合连续性要求;

2、store的size没有填满整条cacheline就又store另一条cacheline;

3、load的pipeline的pa[39:9]==stream_pa[39:9]以上条件任何一个条件满足都将退出stream model。

本实施例对不进行store地址的检测,和正常的store指令一样,先获取cacheable的Eeclusive属性,然后将store的数据写入D_cache中的实施情况依然在本实施例的保护范围之内。

综上,本发明减少了latence,同时降低了L1对L2请求的带宽,并且不会造成L1_cache的污染,不会对D_cache的命中率有负面影响,具有很强的市场应用前景。

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

9页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:缓存管理方法、固态硬盘控制器及固态硬盘

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类