处理器、芯片和电子设备制造技术

技术编号:24454785 阅读:15 留言:0更新日期:2020-06-10 15:14
本申请实施例提供一种处理器、芯片和电子设备,处理器包括指令提取模块和分支预测模块,指令提取模块用于提取指令;所述分支预测模块与所述指令提取模块连接,所述分支预测模块包括用于存储循环指令的信息的第一目标缓冲区和用于存储判断指令的信息的第二目标缓冲区,所述分支预测模块被配置为:基于所述第一目标缓冲区所存储的循环指令的信息或所述第二目标缓冲区所存储的判断指令的信息,利用所述指令提取模块所提取的跳转指令进行分支预测。本申请实施例防止分支目标缓冲器中所存储的循环指令的信息被其它指令信息替换而被刷掉。

Processors, chips and electronics

【技术实现步骤摘要】
处理器、芯片和电子设备
本申请涉及处理器
,特别涉及一种处理器、芯片和电子设备。
技术介绍
在处理器领域中,通常在处理流水线中提早预测分支指令的信息以便于提升处理器性能。分支指令的信息通常存储在分支目标缓冲器(BranchTargetBuffer,BTB)中。分支预测功能模块会根据当前PC,实时查询BTB中的内容,当在BTB中查询到当前PC的指令指针时,对下一条指令指针进行预测,预测成功则继续执行,预测失败,则清流水线,并恢复到正确的跳转指针。BTB所存储的信息有限,诸如BTB可存储8条分支指令的信息。由于分支预测是对所有的分支指令作统一处理,当不同跳转指令诸如for循环指令和if/else跳转指令嵌套频繁发生时,会将其中一种类型的分支指令的信息从BTB中替换而被刷掉,诸如将循环指令的信息替换而将循环指令的信息刷掉。
技术实现思路
本申请实施例提供一种处理器、芯片和电子设备,防止分支预测模块中所存储的循环指令的信息被其它类型指令的信息替换而被刷掉。本申请实施例公开一种处理器,包括:指令提取模块,用于提取指令;和分支预测模块,所述分支预测模块与所述指令提取模块连接,所述分支预测模块包括用于存储循环指令的信息的第一目标缓冲区和用于存储判断指令的信息的第二目标缓冲区,所述分支预测模块被配置为:基于所述第一目标缓冲区所存储的循环指令的信息或所述第二目标缓冲区所存储的判断指令的信息,利用所述指令提取模块所提取的跳转指令进行分支预测。本申请实施例还公开一种芯片,包括如上所述的处理器。本申请实施例还公开一种电子设备,包括:系统总线;处理器,所述处理器为如上所述的处理器,所述取指模块与所述系统总线连接;和存储器,所述存储器与所述系统总线连接。本申请实施例中,分支预测模块分区存储循环指令和判断指令,确保分支预测模块中有空余的空间存储循环指令的信息,避免循环指令的信息被其它指令诸如判断指令的信息替换而被刷掉。附图说明为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。图1为本申请实施例提供的处理器的第一种结构示意图。图2为本申请实施例提供的处理器的第二种结构示意图。图3为本申请实施例提供的处理器的第三种结构示意图。图4为本申请实施例提供的芯片的结构示意图。图5为本申请实施例提供的电子设备的结构示意图。具体实施方式请参阅图1,图1为本申请实施例提供的处理器的第一种结构示意图。处理器200可包括指令提取模块220和分支预测模块240。指令提取模块220和分支预测模块240连接,分支预测模块240可基于指令提取模块220所提取的跳转指令进行分支预测。需要说明的是,指令提取模块220所提取的指令往往需要通过译码处理,或者说解析处理以便于其他模块进行处理。请继续参阅图1,处理器200还可以包括指令译码模块260,也可以称为指令解析模块。该指令译码模块260连接指令提取模块220和分支预测模块240,指令译码模块260可以从指令提取模块220获取指令,也可以理解为指令提取模块220将指令发送给指令译码模块260。指令译码模块260接收到指令后对指令进行译码等一系列处理,或者说解析等一系列处理,以得到指令的信息。当指令译码模块260译码等处理得到指令的信息后,指令译码模块260可以根据指令的类型进行分配,诸如指令译码模块260可以将跳转指令的信息传输给分支预测模块240。其中,跳转指令可以包括for循环指令和if/else跳转指令。为了便于区分for循环指令和if/else跳转指令,本申请实施例将for循环指令简称为循环指令,且本申请实施例将if/else跳转指令简称为判断指令。指令携带有多种信息,或者说指令包括有多种信息。诸如跳转指令的信息包括当前地址和目标地址。该当前地址可以理解为该跳转指令所在的地址,该目标地址可以理解为分支预测模块240所要进行预测的地址。需要说明的是,跳转指令的信息并不限于此,诸如跳转指令的信息还可以包括预测的位。指令译码模块260对跳转指令译码等处理后可以得到该跳转指令的相关信息,诸如得到该跳转指令的当前地址和目标地址。指令译码模块260可以将该当前地址和目标地址传输给分支预测模块220,分支预测模块220可以将该当前地址和目标地址进行存储。分支预测模块220可以将跳转指令的信息存储在其分支目标缓存器(BranchTargetBuffer,BTB)中。本申请实施例分支预测模块240的BTB所存储的跳转指令的信息可以包括当前地址和目标地址。若BTB存储有循环指令的信息,则循环指令的信息至少包括当前地址和目标地址。若BTB存储有判断指令的信息,则判断指令的信息至少包括当前地址和目标地址。可以理解的是,BTB所存储的跳转指令的信息可以称为记录历史中发生过的跳转指令的当前地址,和其跳转的目标地址。需要说明的是,BTB所存储的跳转指令的信息还可以包括预测的位。需要说明的是,相关技术中,BTB的大小有限,BTB往往仅存储几条跳转指令的信息,诸如BTB存储8条跳转指令的信息。由于跳转指令可具有不同的类型,诸如跳转指令包括for循环和if/else跳转指令。当for循环指令和if/else跳转指令嵌套频繁发生时,会导致for循环指令对应的分支预测缓存空间中if/else跳转指令替换而被刷掉,由于for循环次数一般较大,总体指令的流水效率不理想,频繁发生预测失败,清流水线。基于此,本申请实施例将分支预测模块240的BTB进行分区处理,使得分区后的BTB可以同时存储循环指令和判断指令,防止循环指令被判断指令替换而被刷掉。当然,也可以保留判断指令。在一些实施例中,分支预测模块240的BTB可包括第一目标缓冲区242和第二目标缓冲区244。第一目标缓冲区242可存储循环指令的信息,诸如for循环指令的信息,第一目标缓冲区242可存储循环指令的当前地址、预测的目标地址。当然,第一目标缓冲区242还可存储循环指令的预测的位。第二目标缓冲区244可存储判断指令的信息,诸如if/else跳转指令的信息,第二目标缓冲区244可存储判断指令的地址、预测的目标地址。当然,第二目标缓冲区244还可存储判断指令的预测的位。其中,第一目标缓冲区242可存储多条循环指令的信息,诸如第一目标缓冲区242可存储4条循环指令的信息。第二目标缓冲区244可存储多条判断指令的信息,诸如第二目标缓冲区244可存储4条判断指令的信息。在一些实施例中,第一目标缓冲区242所存储循环指令的信息的最多个数等于第二目标缓冲区244所存储判断指令的信息的最多个数。本申请实施例可以将第一目标缓冲区242的空间与第二目标缓冲区244的空间设置相同,即第一目标缓冲区242的空间等于第二目标缓冲区244的空间。需要说明的是,第一目标缓冲区242的空间与第二目标缓冲区244的空间设置不同也是可以的,在实际应用中,可以本文档来自技高网...

【技术保护点】
1.一种处理器,其特征在于,包括:/n指令提取模块,用于提取指令;和/n分支预测模块,所述分支预测模块与所述指令提取模块连接,所述分支预测模块包括用于存储循环指令的信息的第一目标缓冲区和用于存储判断指令的信息的第二目标缓冲区,所述分支预测模块被配置为:/n基于所述第一目标缓冲区所存储的循环指令的信息或所述第二目标缓冲区所存储的判断指令的信息,利用所述指令提取模块所提取的跳转指令进行分支预测。/n

【技术特征摘要】
1.一种处理器,其特征在于,包括:
指令提取模块,用于提取指令;和
分支预测模块,所述分支预测模块与所述指令提取模块连接,所述分支预测模块包括用于存储循环指令的信息的第一目标缓冲区和用于存储判断指令的信息的第二目标缓冲区,所述分支预测模块被配置为:
基于所述第一目标缓冲区所存储的循环指令的信息或所述第二目标缓冲区所存储的判断指令的信息,利用所述指令提取模块所提取的跳转指令进行分支预测。


2.根据权利要求1所述的处理器,其特征在于,所述分支预测模块还包括与所述第一目标缓冲区和所述第二目标缓冲区连接的判断单元,所述分支预测模块还被配置为:
从所述指令提取模块获取第一跳转指令的信息;
所述判断单元被配置为:
根据所述第一跳转指令的信息判断所述第一跳转指令是判断指令和循环指令中的哪一种类型;
若所述第一跳转指令被判断为循环指令,则将所述第一跳转指令的信息存储到所述第一目标缓冲区;
若所述第二跳转指令被判断为判断指令,则将所述第一跳转指令的信息存储到所述第二目标缓冲区。


3.根据权利要求1所述的处理器,其特征在于,所述分支预测模块还包括判断单元,所述分支预测模块还被配置为:
从所述指令提取模块获取第一跳转指令的信息;
所述判断单元被配置为:
根据所述第一跳转指令的信息判断所述第一跳转指令是判断指令和循环指令中的哪一种类型;
若所述第一跳转指令被判断为循环指令,则进一步判断所述第一目标缓冲区是否存储有与所述第一跳转指令的信息相同的信息;
若所述第一目标缓冲区未存储与所述第一跳转指令的信息相同的信息,则将所述第一跳转指令的信息存储到所述第一目标缓冲区;
若所述第一目标缓冲区存储有与所述第一跳转指令的信息相同的信息,则不将所述第一跳转指令的信息存储到所述第一目标缓冲区;
若所述第一跳转指令被判断为判断指令,则进一步判断所述第二目标缓冲区是否存储有与所述第一跳转指令的信息相同的信息;
若所述第二目标缓冲区未存储与所述第一跳转指令的信息相同的信息,则将所述第一跳转指令的信息存储到所述第二目标缓冲区;
若所述第二目标缓冲区存储有与所述第一跳转指令的信息相同的信息,则不将所述第一跳转指令的信息存储到所述第二目标缓冲区。


4.根据权利要求...

【专利技术属性】
技术研发人员:张建中
申请(专利权)人:OPPO广东移动通信有限公司
类型:发明
国别省市:广东;44

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

1