一种L2中queue的管理方式的实现方法及系统技术方案

技术编号:32785170 阅读:23 留言:0更新日期:2022-03-23 19:44
本发明专利技术涉及CPU技术领域,具体涉及一种L2中queue的管理方式的实现方法及系统,本发明专利技术接收来自core和外部extend的请求,同时收来自CRQ CWQ EPQ ORQ EFQ CPQ的请求,并选出其中的一个请求进入pipeline;根据请求的类型和当前L2中TAG信息及MESI状态信息,生成相关分配方案;通过L2向下游memory发出读请求或写请求,并由下游memory返回reload data回填到EFQ;通过EFQ上L2de pipeline,将reload回来的数据写入L2$中,同时将数据return给请求的core。本发明专利技术不会让一个请求在L2中的生命周期在一类queue中来维护,而是会随着该请求的状态进入不同的queue。即使存在更年老的请求中存在相同的index,也不会让该请求pending,可大大提高CPU的整体性能。大大提高CPU的整体性能。大大提高CPU的整体性能。

【技术实现步骤摘要】
一种L2中queue的管理方式的实现方法及系统


[0001]本专利技术涉及CPU
,具体涉及一种L2中queue的管理方式的实现方法及系统。

技术介绍

[0002]发射到L2的请求主要包括icache mmu lsu_rd lsu_wr外部来的snoop,这些请求放在一种queue中,并且该queue中的每个entry项维护着该请求在L2中的整个生命周期,使得该queue的包含的域信息很多,需要该queue entry项的数量很大。
[0003]同时这些请求需要完成,可能出现:由于更年老的请求中存在相同的pa,而导致该请求pending;由于更年老的请求中存在相同的index,而导致该请求pending
[0004]因此以下问题亟待解决,所有的请求都放在一种queue中,并且该queue中的每个entry项维护着该请求在L2中的整个生命周期,使得该queue的包含的域信息很多,需要该queue entry项的数量很大。
[0005]由于更年老的请求中存在相同的index,而导致该请求pending。就是解除这类pending,能让具有这类特征的请求不会被pending住,依然可以往下执行。由于CPU访问数据的相关性,导致这类index相同的请求的概率很大,所以解决以上问题可以大大提供CPU的整体性能。

技术实现思路

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

【技术保护点】

【技术特征摘要】
1.一种L2中queue的管理方式的实现方法,其特征在于,包括以下步骤: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。2.根据权利要求1所述的L2中queue的管理方式的实现方法,其特征在于,所述方法中,接收来自core和外部extend的请求,包括接收来自core的read请求,放在CRQ中;接收来自core的write请求,放在CWQ中;接收来自外部的probe请求,放在EPQ中。3.根据权利要求1所述的L2中queue的管理方式的实现方法,其特征在于,所述方法中,由仲裁模块接收来自CRQ CWQ EPQ ORQ EFQ CPQ的请求,选出其中的一个请求进入pipeline4.根据权利要求1所述的L2中queue的管理方式的实现方法,其特征在于,所述方法在pipeline中,根据请求的类型,和当前L2中TAG信息及MESI状态信息确定:是否可以直接写入L2;是否可以直接return data给请求方;是否需要向下游memory reload数据或权限;是否需要产生evict;是否需要向下游memory write数据;是否需要probe core。5.根据权利要求4所述的L2中queue的管理方式的实现方法,其特征在于,所述方法中,如果判断需要向下游memory reload数据或权限,则分配一个ORQ;如果判断需要向下游memory write数据,则分配一个WRQ;如果判断需要probe core,则分配一个CPQ,L2向core发出probe请求,都是通过CPQ来完成。6.根据权利要求1所述的L2中queue的管理方式的实现方法,其特征在于,所述方法中,通过L2向下游memory发出读请求,则通过ORQ发出,向下游memory读取到数据并拿到该数据对应的权限。7.根据权利要求6所述的L2中queue的管理方式的实现方法,其特征在于,所述方法中,通过L2向下游memory发出写请求,则通过WRQ,将数据从L2中写到下一级memory中。8.根据权利要求1所述的L2中queue的管理方式的实现方法,其特征在于,所述方法中,若load_miss请求miss L2则包括以下步骤:load miss请求分配到core read queue中;core read que...

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

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

1