L2中CRQ和CWQ快速deallocate实现方法及系统技术方案

技术编号:32823153 阅读:23 留言:0更新日期:2022-03-26 20:21
本发明专利技术涉及CPU技术领域,具体涉及一种L2中CRQ和CWQ快速deallocate实现方法及系统,包括probe、eviction、TAG RAM、DATA RAM、CRQ、CWQ、EPQ、ORQ、WRQ、EFQ和CPQ。本发明专利技术core read queue(CRQ)和core write queue(CWR)只要获得了仲裁并且上了pipeline就可deallocate掉对应的entry项,如果CRQ/CWQ能正常的完成,则正常response LSU,如果不能正常完成,则将完整的权限交给OQ(outstanding queue),这样就做到以最快的速度把CRQ/CWQ的entry项deallocate掉,从而有效的提高了CPU的整体性能。能。能。

【技术实现步骤摘要】
L2中CRQ和CWQ快速deallocate实现方法及系统


[0001]本专利技术涉及CPU
,具体涉及一种L2中CRQ和CWQ快速deallocate实现方法及系统。

技术介绍

[0002]CRQ(core read queue)和CWR(core write queue)在L2中的作用是将LSU的read write请求放在queue中,并且每个core都有一个CRQ和CWQ,该queue如果不能很快的deallocate,会导致该queue很快的full,从而导致不能接收来自core的新的request请求,而L1的reload请求响应的快慢又会严重影响CPU的整体性能。
[0003]针对该问题,我们提出:core read queue(CRQ)和core write queue(CWR)只要获得了仲裁并且上了pipeline就可deallocate掉对应的entry项,如果CRQ/CWQ能正常的完成,则正常response LSU,如果不能正常完成,则将完整的权限交给OQ(outstanding queue),这样就做到以最快的速度把CRQ/CWQ的entry项deallocate掉。

技术实现思路

[0004]针对现有技术的不足,本专利技术公开了一种L2中CRQ和CWQ快速deallocate实现方法及系统,用于解决CRQ/CWQ的entry项维护着LSU的read write请求在L2的完整生命周期,导致CRQ/CWQ的entry项deallocate很晚,最终由于CRQ CWQ full导致L2不能接收来自L1新的read write请求的问题。
[0005]本专利技术通过以下技术方案予以实现:
[0006]第一方面,本专利技术提供一种L2中CRQ和CWQ快速deallocate实现方法,包括以下步骤:
[0007]S1接收来自core和外部extend的请求,由仲裁模块收来自CRQ CWQ EPQ ORQ EFQ CPQ的请求,并选出其中的一个请求进入pipeline;
[0008]S2根据请求的类型和当前L2中TAG信息及MESI状态信息,判断下游所需要的数据或权限,并对应进行分配;
[0009]S3通过L2向下游memory发出读请求或写请求,并由下游memory返回reload data回填到EFQ;
[0010]S4由EFQ上L2de pipeline,并将reload回来的数据写入L2$中,同时将数据return请求的core;
[0011]其中,来自core的请求为load miss请求或lsu eviction请求。
[0012]更进一步的,所述方法中,接收来自core和外部extend的请求,包括接收来自core的read请求,放在CRQ中;接收来自core的write请求,放在CWQ中;接收来自外部的probe请求,放在EPQ中。
[0013]更进一步的,其特征在于,所述方法中,在pipeline中,根据请求的类型和当前L2中TAG信息及MESI状态信息确定:是否可以直接写入L2;
[0014]是否可以直接return data给请求方;是否需要向下游memory reload数据或权限;是否需要产生evict;是否需要向下游memory write数据;是否需要probe core。
[0015]更进一步的,所述方法中,如果判断需要向下游memory reload数据或权限,则分配一个ORQ;如果判断需要向下游memory write数据,则分配一个WRQ;如果判断需要probe core,则分配一个CPQ,L2向core发出probe请求,都是通过CPQ来完成。
[0016]更进一步的,所述方法中,通过L2向下游memory发出读请求,则通过ORQ发出,向下游memory读取到数据并拿到该数据对应的权限。
[0017]更进一步的,所述方法中,通过L2向下游memory发出写请求,则通过WRQ,将数据从L2中写到下一级memory中。
[0018]更进一步的,所述方法中,进行load miss请求时,包括以下步骤:
[0019]Load miss请求从core发出,并allocate一个CRQ entry项;
[0020]CRQ的Load miss请求上pipeline并赢得仲裁,上pipeline;
[0021]如果命中了tag_ram,直接deallocate掉CRQ中对应的entry项;
[0022]如果miss,tag_ram则allocate ORQ并且deallocate掉CRQ中对应的entry项
[0023]ORQ向下一级memory发出reload请求,等到refill回填数据;
[0024]下级memory回填数据写入EFQ中;
[0025]EFQ参与并获得pipeline仲裁;
[0026]更新L2 tag_ram data_ram将数据返回给core,同时deallocate掉相应的ORQ和EFQ对应的entry项。
[0027]更进一步的,所述方法中,进行lsu eviction请求时,包括以下步骤:
[0028]lsu eviction请求从core发出,并allocate一个CWQ entry项;
[0029]CWQ的lsu eviction请求上pipeline并赢得仲裁,上pipeline;
[0030]如果命中了tag_ram,直接deallocate掉CWQ中对应的entry项,同时给lsu会response;
[0031]如果miss,tag_ram则allocate WRQ,将数据写入WRQ中,如果在WRQ中已存在相同的pa,则将eviction数据merge进WRQ中;
[0032]WRQ将数据写入下一级memory;
[0033]下级memory会response给WRQ,deallocate掉WRQ对应的entry项。
[0034]第二方面,本专利技术提供了一种L2中CRQ和CWQ快速deallocate实现系统,所述系统用于实现第一方面所述的L2中CRQ和CWQ快速deallocate实现方法,包括probe、eviction、TAG RAM、DATA RAM、CRQ、CWQ、EPQ、ORQ、WRQ、EFQ和CPQ。
[0035]更进一步的,所述probe用于窥视和监听,将core中dirty的数据probe下来或者为了拿到E权限,把core中的MESI状态信息进行修改;
[0036]所述eviction,用于保持cache中保存的数据相对新的数据,在cache中需要把数据替换出去时产生;
[0037]所述TAG RAM用于记录cacheline的addr及该cacheline在L2和所有的L2 CORE中的MESI状态信息;
[0038]所述DATA RAM用于记录cacheline的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种L2中CRQ和CWQ快速deallocate实现方法,其特征在于,包括以下步骤:S1接收来自core和外部extend的请求,由仲裁模块收来自CRQ CWQ EPQ ORQ EFQ CPQ的请求,并选出其中的一个请求进入pipeline;S2根据请求的类型和当前L2中TAG信息及MESI状态信息,判断下游所需要的数据或权限,并对应进行分配;S3通过L2向下游memory发出读请求或写请求,并由下游memory返回reload data回填到EFQ;S4由EFQ上L2de pipeline,并将reload回来的数据写入L2$中,同时将数据return请求的core;其中,来自core的请求为load miss请求或lsu eviction请求。2.根据权利要求1所述的一种L2中CRQ和CWQ快速deallocate实现方法,其特征在于,所述方法中,接收来自core和外部extend的请求,包括接收来自core的read请求,放在CRQ中;接收来自core的write请求,放在CWQ中;接收来自外部的probe请求,放在EPQ中。3.根据权利要求1所述的一种L2中CRQ和CWQ快速deallocate实现方法,其特征在于,所述方法中,在pipeline中,根据请求的类型和当前L2中TAG信息及MESI状态信息确定:是否可以直接写入L2;是否可以直接return data给请求方;是否需要向下游memory reload数据或权限;是否需要产生evict;是否需要向下游memory write数据;是否需要probe core。4.根据权利要求1所述的一种L2中CRQ和CWQ快速deallocate实现方法,其特征在于,所述方法中,如果判断需要向下游memory reload数据或权限,则分配一个ORQ;如果判断需要向下游memory write数据,则分配一个WRQ;如果判断需要probe core,则分配一个CPQ,L2向core发出probe请求,都是通过CPQ来完成。5.根据权利要求1所述的L2中queue的管理方式的实现方法,其特征在于,所述方法中,通过L2向下游memory发出读请求,则通过ORQ发出,向下游memory读取到数据并拿到该数据对应的权限。6.根据权利要求5所述的L2中queue的管理方式的实现方法,其特征在于,所述方法中,通过L2向下游memory发出写请求,则通过WRQ,将数据从L2中写到下一级memory中。7.根据权利要求1所述的一种L2中CRQ和CWQ快速deallocate实现方法,其特征在于,所述方法中,进行load miss请求时,包括以下步骤:Load miss请求从core发出,并allocate一个CRQ entry项;CRQ的Load miss请求上pipeline并赢得仲裁,上pipeline;如果命中了tag_ram,直接deallocate掉CRQ中对应的entry项;如果miss,tag_ram则allocate ORQ并且deallocate掉CRQ中对应的entry项ORQ向下一级memory发出reload请求,等到refill回填...

【专利技术属性】
技术研发人员:李长林刘磊
申请(专利权)人:广东赛昉科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1