【技术实现步骤摘要】
L2提前唤醒L1的实现方法及系统
[0001]本专利技术涉及CPU
,具体涉及一种L2提前唤醒L1的实现方法及系统。
技术介绍
[0002]现有技术中,L2对lsu的reload请求return数据时,如果等到数据已经返回给LSU后,再去wakeup load指令重新上lsu的pipeline,这是非常晚的,严重影响到CPU的整体性能。
[0003]由于reload回来的数据没有通过bypass的方式提高给load指令,导致占用了访问D_cache的资源,也会影响CPU的性能;同时还由于多访问了D_cache,造成无谓的功耗消耗。
[0004]因此,本文提供了一种L2提前唤醒L1的实现方法及系统,可以提前wakeup lsu上pipeline,在load指令在pipeline需要数据的时候,L2已经将数据送到LSU即可,也就是load指令需要数据的时候能拿到即可,这样就可以让load指令提前几个cycles上pipeline,从而有效地提高了CPU的整体性能。
[0005]由于load提前上pi ...
【技术保护点】
【技术特征摘要】
1.一种L2提前唤醒L1的实现方法,其特征在于,所述方法包括以下步骤:S1初始化完成,将load miss请求分配到CRQ中,并将该load miss请求参与并赢得仲裁,上pipeline;S2判断pipeline中hit L2或miss L2的具体情况,生成相关分配方案;S3更新L2 tag_ram data_ram并将数据返回给core;S4最后deallocate掉outstanding request queue相对应的entry项,结束流程。2.根据权利要求1所述的一种L2提前唤醒L1的实现方法,其特征在于,所述方法中,如果hit了L2,则直接ruturn data给core,确认在后面2拍或几排能有数据返回给core,则提前几拍唤醒load指令上pipeline,在L1的load指令需要数据的时候,L2能提供数据。3.根据权利要求1所述的一种L2提前唤醒L1的实现方法,其特征在于,所述方法中,如果在pipeline中miss了L2,分配outstanding request queue,同时deallocate掉core read queue中对应的entry项。4.根据权利要求3所述的一种L2提前唤醒L1的实现方法,其特征在于,所述方法中,如果在pipeline中miss了L2,outstanding request queue向下一级memory发出reload请求,等到refill回填数据;下级memory回填数据后参与并获得pipeline仲裁,此时则一定可返回数据给core,则提前几拍唤醒load指令上pipeline,在L1的load指令需要数据的时候,L2能提供数据。5.根据权利要求1所述的一种L2提前唤醒L1的实现方法,其特征在于,所述方法中,L2进行工作时包括以下步骤:T1接收来自core和外部extend的请求,同时收来自CRQ CWQ EPQ ORQ EFQ CPQ的请求,并选出其中的一个请求进入pipeline;T2根据请求的类型和当前L2中TAG信息及MESI状态信息,生成相关分配方案;T3通过L2向下游memory发出读请求或写请求,并由下游memory返回reload data回填到EFQ;T4通过EFQ上L2de pipeline,将reload回来的数据写入L2$中,同时将数据return给请求的core。6.根据权利要求5所述的一种L2提前唤醒L1的实现方法,其特征在于,所述方法中,L2接收来自core和外部extend的请求,包括接收来自core的read请求,放在CRQ中;接收来自core的write请求,放在CWQ中;接收来自外部的probe请求,放在EPQ中。7.根据权利要求5所述的一种L2提前唤醒L1的实现方法,其特征在于,所述方法中,在pipeline中,根据请求的类型,和当前L2中TAG信息及...
【专利技术属性】
技术研发人员:李长林,刘磊,
申请(专利权)人:广东赛昉科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。