分支预测方法、分支预测单元及处理器核与流程

文档序号:20574113发布日期:2020-04-29 01:00阅读:270来源:国知局
本公开实施例涉及处理器
技术领域
:,具体涉及一种分支预测方法、分支预测单元及处理器核。
背景技术
::现代处理器一般采用流水线(pipeline)技术并行处理指令,以加速指令处理效率。在处理分支指令时,为避免等待分支指令执行结果以决定分支方向的情况,大多数现代处理器采用分支预测(branchprediction)技术。通过分支预测技术可预测分支指令的包括分支方向等的分支预测结果,从而推动处理器进行下一步取指操作,避免由于等待分支指令的执行结果而导致的流水线延迟。现代处理器所采用的分支预测技术一般具有多级分支预测逻辑,在进行分支预测时,访问的分支预测逻辑的级数越高,分支预测的预测准确度越高,但同时,分支预测逻辑的级数越高,功耗也越大,所需的时钟周期数也越多。技术实现要素:根据本公开的一方面,提供了一种分支预测方法,包括:获取当前分支地址和当前分支地址相应的分支历史;对所述当前分支地址执行第一分支预测,生成第一分支预测结果;根据所述分支历史和第一分支预测结果,生成第一分支预测置信度;以及根据所述第一分支预测置信度进行访问控制。根据本公开实施例,其中,根据所述第一分支预测置信度进行访问控制包括:根据置信度阈值确定所述第一分支预测置信度是否符合置信度条件,其中:在所述第一分支预测置信度大于或等于置信度阈值的情况下,确定第一分支预测置信度符合置信度条件;在所述第一分支预测置信度小于置信度阈值的情况下,确定第一分支预测置信度不符合置信度条件。根据本公开实施例,其中,根据预定值范围的中心值确定所述置信度阈值,或者根据分支预测性能的提升程度确定所述置信度阈值。根据本公开实施例,其中,根据所述第一分支预测置信度进行访问控制还包括:在第一分支预测置信度符合置信度条件的情况下,禁止对当前分支地址执行第二分支预测;以及在第一分支预测置信度不符合置信度条件的情况下,对当前分支地址执行第二分支预测。根据本公开实施例,其中,根据所述第一分支预测置信度进行访问控制还包括:在第一分支预测置信度符合置信度条件的情况下,禁止更新所述当前分支地址相应的分支记录;以及在第一分支预测置信度不符合置信度条件的情况下,更新所述当前分支地址相应的分支记录。根据本公开实施例,其中,更新所述当前分支地址相应的分支记录包括:在执行当前分支地址相应的分支指令后,更新当前分支地址相应的分支记录。根据本公开实施例,所述分支预测方法还包括:在执行当前分支地址相应的分支指令后,记录当前分支地址相应的分支指令的实际跳转方向。根据本公开实施例,所述记录当前分支地址相应的分支指令的实际跳转方向包括:在执行当前分支地址相应的分支指令后,在分支指令的实际跳转方向表示指令跳转的情况下,则对计数值加第一值,在分支指令的实际跳转方向表示指令不跳转的情况下,则对所述计数值减第一值,其中,所述计数值表示所述分支记录,所述计数值的最高位数值指示当前分支地址的置信的分支预测方向,所述计数值的剩余位数值指示当前分支地址的分支历史。根据本公开实施例,其中,对所述当前分支地址执行第一分支预测,生成第一分支预测结果包括:将所述计数值的最高位数值指示的置信的分支预测方向确定为第一分支预测结果指示的第一分支预测方向;根据所述分支历史和第一分支预测结果,生成第一分支预测置信度包括:根据所述计数值的剩余位数值指示的分支历史与第一分支预测方向的匹配度确定所述第一分支预测置信度。根据本公开实施例,其中,根据置信度阈值确定所述第一分支预测置信度是否符合置信度条件还包括:在第一分支预测置信度符合置信度条件的次数达到次数阈值的情况下,将第一分支预测置信度直接确定为符合置信度条件,并间隔地比较第一分支预测置信度和置信度阈值。根据本公开实施例,所述分支预测方法还包括:根据历史分支预测置信度以及置信度分配限值,确定执行第一分支预测或者执行第二分支预测,其中,第二分支预测的预测准确度高于第一分支预测。根据本公开实施例,其中,在所述历史分支预测置信度大于或等于所述置信度分配限值的情况下,确定执行第一分支预测;以及在所述历史分支预测置信度小于所述置信度分配限值的情况下,确定执行第二分支预测。根据本公开的另一方面,还提供了一种分支预测单元,包括:第一分支预测逻辑,配置成获取当前分支地址和当前分支地址相应的分支历史,对所述当前分支地址执行第一分支预测,生成第一分支预测结果,以及根据所述分支历史和第一分支预测结果,生成第一分支预测置信度;访问控制单元,配置成根据所述第一分支预测置信度进行访问控制;第二分支预测逻辑,配置成根据访问控制单元的访问控制执行第二分支预测。根据本公开实施例,所述访问控制单元还配置成根据置信度阈值确定所述第一分支预测置信度是否符合置信度条件,包括:在所述第一分支预测置信度大于或等于置信度阈值的情况下,确定第一分支预测置信度符合置信度条件;在所述第一分支预测置信度小于置信度阈值的情况下,确定第一分支预测置信度不符合置信度条件,其中,根据预定值范围的中心值确定所述置信度阈值,或者根据分支预测性能的提升程度确定所述置信度阈值。根据本公开实施例,其中,访问控制单元在第一分支预测置信度符合置信度的情况下,禁止所述第二分支预测逻辑对当前分支地址执行第二分支预测;以及在第一分支预测置信度不符合置信度条件的情况下,控制所述第二分支预测逻辑对当前分支地址执行第二分支预测。根据本公开实施例,其中,访问控制单元在第一分支预测置信度符合置信度的情况下,禁止所述第二分支预测逻辑更新所述当前分支地址相应的分支记录;以及在第一分支预测置信度不符合置信度条件的情况下,控制第二分支预测逻辑更新所述当前分支地址相应的分支记录。根据本公开实施例,所述分支预测单元还包括计数器,配置成在执行当前分支地址相应的分支指令后,记录当前分支地址相应的分支指令的实际跳转方向,其中,在分支指令的实际跳转方向表示指令跳转的情况下,所述计数器对计数值加第一值,在分支指令的实际跳转方向表示指令不跳转的情况下,所述计数器对所述计数值减第一值,其中,所述计数值表示所述分支记录,所述计数值的最高位数值指示当前分支地址的置信的分支预测方向,所述计数值的剩余位数值指示当前分支地址的分支历史。根据本公开实施例,其中,所述第一分支预测单元将所述计数值的最高位数值指示的置信的分支预测方向确定为第一分支预测结果指示的第一分支预测方向;以及所述第一分支预测单元根据所述计数值的剩余位数值指示的分支历史与第一分支预测方向的匹配度确定所述第一分支预测置信度。根据本公开实施例,其中,所述访问控制单元还配置成:根据历史分支预测置信度以及置信度分配限值,确定执行第一分支预测或者执行第二分支预测,其中:在历史分支预测置信度大于或等于置信度分配限值的情况下,所述访问控制单元确定由第一分支预测逻辑执行第一分支预测;以及在历史分支预测置信度小于置信度分配限值的情况下,所述访问控制单元确定由第二分支预测逻辑执行第二分支预测,其中,第二分支预测的预测准确度高于第一分支预测。根据本公开的又一方面,还提供了一种处理器核,包括如上所述的分支预测单元。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为计算机系统体系架构的示意图;图2为实施5级流水线技术的处理器核的示意图;图3为具有两级分支预测逻辑的分支预测单元的示意图;图4为根据本公开实施例的分支预测方法的流程图;图5为根据本公开实施例的计数值的示意图;图6为根据本公开实施例的分支预测单元的示意图;图7为根据本公开实施例的实施方式的示意图;图8为根据本公开实施例的另一实施方式的示意图;图9为根据本公开实施例的分支预测单元的示意框图。具体实施方式下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。本公开中使用了流程图用来说明根据本公开的实施例的方法的步骤。应当理解的是,前面或后面的步骤不一定按照顺序来精确的进行。相反,可以按照倒序或同时处理各种步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步。如上所述,在分支预测技术中,传统的以性能为中心的方法在很大程度上仅注重增加分支预测逻辑的级数以增加分支预测的准确度,从而得到较高的分支预测性能。然而,分支预测逻辑的级数的增加也意味着功耗的增加以及运行时钟周期数的增加,以下将结合图1详细描述所述分支预测技术以及实施分支预测的分支预测逻辑。作为本公开实施例公开内容的一个可选示例,图1为计算机系统体系架构的示意图。应该说明的是,该示意图是为便于理解本公开实施例公开内容而示出,本公开实施例并不限于图1所示架构。参考图1,计算机系统1可以包括:处理器11、与处理器11耦合的内存12、以及与处理器11耦合的南桥13。处理器11可以包括cisc(复杂指令集计算机)微处理器、risc(精简指令集计算机)微处理器、超长指令字(verylonginstructionword,vliw)微处理器、实现指令集的组合的处理器或诸如数字信号处理器的任何其它处理器装置。如图1所示,所述处理器11可集成用于执行至少一个指令的至少一个处理器核100。处理器核100表示具有任何类型的体系结构的处理器核,如risc处理器核、cisc处理器核、vlim处理器核或混合处理器核等,所述处理器核100可以以任何适合的方式实现。在处理器11集成多个处理器核100的情况下,处理器核可在体系结构和/或指令集方面是同构或异构的。在一种可选的实现方式中,一些处理器核100可以是有序的,而其它处理器核100可以是乱序的。在另一种可选的实现方式中,两个或更多个处理器核100可执行相同指令集,而其它处理器核100可执行该指令集的子集或不同指令集。处理器11内还可以集成内存控制器等部件(未示出),并对外提供内存接口等(未示出)。处理器11可通过内存接口耦合到内存12。同时,处理器11可耦合到处理器总线,并通过处理器总线耦合到南桥13。南桥13可以集成与计算机系统其它组件相通信的总线接口14,从而通过南桥13实现处理器11与计算机系统1中大部分其他组件的信号传递。需要注意的是,在本公开中,计算机系统1的组件可根据实际情况增设和调整,此处不进行逐一说明。例如,南桥13所集成的总线接口14包括但不限于:存储器(如硬盘)总线接口、usb总线接口、网络控制器总线接口、pcie总线接口等。需要说明的是,图1示例框图中处理器11和南桥13的耦合结构是基本的,但处理器11和南桥13的具体细化结构可视具体使用情况设置、调整和/或扩展,并不固定。根据本公开其他实施例,例如,在其他的计算机系统体系结构中,例如在设置南桥和北桥的计算机系统体系结构中,内存控制也可能由北桥提供,如北桥耦合在处理器和南桥之间,主要负责显卡、内存与处理器之间的信号传递;南桥主要负责硬盘、外设以及各种对带宽要求较低的i/o(输入/输出)接口与内存、处理器之间的信号传递。如上所述是处理器与南桥式的计算机体系结构,在计算机体系结构的其他示例中,也可能通过soc(systemonchip,片上系统)实现计算机体系结构。示例性的,soc可集成处理器、内存控制器、以及i/o接口等,并且soc可通过与外部的内存、i/o设备、网卡等其他组件相耦合,实现在单个主要芯片上搭建计算机体系结构。需要进一步说明的是,以上描述的结构并不限于计算机系统,也可在诸如手持式装置和具有嵌入式应用的其他装置中使用。手持式装置的一些示例包括蜂窝电话、因特网协议装置、数码相机、个人数字助理(pda)或手持式pc(personalcomputer,个人计算机)。具有嵌入式应用的其他装置可包括网络计算机(netpc)、机顶盒、服务器、宽域网(wan)交换机、或可执行至少一个本公开公开实施例的一个或多个指令的任何其他系统。另外,如上所述的处理器并不限于cpu(centralprocessingunit,中央处理器),还可以是加速器(例如,图形加速器或数字信号处理单元)、gpu(graphicsprocessingunit,图形处理器)、现场可编程门阵列或任何其它具有指令执行功能的处理器。上述虽然是以单处理器进行的示例说明,但在实际情况下,计算机体系结构可能存在多个处理器,每一处理器具有至少一个处理器核。现代微处理器架构一般使用流水线(pipeline)技术实现多条指令的并行处理,并结合使用分支预测、乱序执行(outoforderexecution)等技术提升流水线的执行效率。作为本公开实施例公开内容的一个可选示例,图2示例性的示出了实施5级流水线技术的处理器核的示意图。例如,所述5级流水线的处理过程可以包括取指(instructionfetch)、译码(instructiondecode)、执行(execute)、访存(memoryaccess)和写回(writeback)。参考图2,实施5级流水线技术的处理器核100可以包括:分支预测单元101、取指单元102、译码单元103、执行引擎单元104、访存单元105、写回单元106以及缓存200。应该说明的是,该示意图是为便于理解本公开实施例公开内容而示出,本公开实施例并不限于图2所示架构。为解决在处理分支指令时,处理器核因等待分支指令的执行结果来确定下一步取指操作而导致的流水线延迟,在流水线操作之前可设置有分支预测单元(例如,图2中示出的分支预测单元101),以在执行分支指令之前实现分支预测,以便取指单元102提前进行取指操作,从而避免等待得知分支指令的执行结果而导致的流水线延迟。如图2所示,可以将取指单元102接收的指令表示为分支指令,所述分支指令可以为其他执行单元进行处理操作之后的执行结果。或者如图2中所示出的,所述分支指令也可以由分支预测单元101预测指示,例如,分支预测单元101可以对该分支指令的分支方向进行预测,从而使得无需等待该分支指令的实际执行结果,由取指单元102按照预测的分支方向进行取指操作。例如,分支指令的实际执行结果通常分为两种情况:分支指令不跳转,则下一步指令为分支指令下一步顺序的指令,所述下一步指令的地址跟随所述分支指令的地址。即,要被取指单元102取指的指令为分支指令的下一指令。或者,分支指令跳转,则下一步指令为所要跳转到的指令,即要被取指单元120取指的指令为要跳转到的指令而非所述下一连续分支指令。其中,分支预测单元101、取指单元102、译码单元103、执行引擎单元104、访存单元105以及写回单元106可以是集成在处理器核内的逻辑电路单元。可选的,缓存200中的全部或部分可集成在处理器核内。作为一种示例,缓存200可以包括:集成到处理器核内的至少一个内部缓存,驻留在处理器核外的至少一个外部缓存。当然,本公开实施例也支持将缓存200全部集成在处理器核100内,在某些情况下,本公开实施例也可支持缓存200全部驻留在处理器核100外。需要说明的是,无论集成在处理器核内和驻留在处理器核外的缓存层级是如何设置,一般地,缓存200可以包括多级缓存,例如包括一级缓存、二级缓存。对于缓存200而言,上一层缓存缓存来自下一层缓存的信息,例如,一级缓存可以缓存来自二级缓存的信息,当然这仅是可选方式。分支预测单元101可执行分支预测,得到分支指令的分支预测结果,分支指令的分支预测结果例如可以是分支指令的分支方向、地址、目标地址等。在一种实现方式中,可基于分支指令的分支记录执行分支预测。例如,作为分支预测逻辑执行分支预测依据的所述分支记录可以包括分支指令的历史执行信息和历史分支结果。例如,以分支预测逻辑使用btb(branchtargetbuffer,分支目标缓冲器)技术为例,分支记录可以记录分支指令的历史目标地址等,以分支预测逻辑使用bht(branchhistroytable,分支历史表)技术为例,分支记录可以记录分支指令的分支方向是否跳转(taken)等。根据本公开实施例,基于分支预测单元101的分支预测结果,取指单元102可通过缓存200读取指令(包括但不限于读取分支指令、逻辑运算指令、访存指令等),并将取到的指令馈送到译码单元103。在一种可选实现方式中,取指单元102可将读取的指令存放入处理器核100的指令寄存器(instructionregister),以便译码单元103从指令寄存器读取指令进行译码。所述指令寄存器是临时放置从内存里面取得的程序指令的寄存器。译码单元103可解释所述指令,得到译码结果。所述译码结果可以是解释指令所得出的、可由机器执行的操作信息,诸如解释指令的操作码、操作数和控制字段所形成的机器可执行的微指令(uop)等。可选的,译码单元103可从寄存器文件(registerfile,又称为寄存器堆)中读取源操作数并解析操作码以产生控制信号。执行引擎单元104可基于译码单元103的译码结果执行运算,产生执行结果(其中,所述执行结果与取指指令的指令功能相应,涉及访存、逻辑运算结果、指令跳转等)。可选的,执行引擎单元104可以支持乱序执行技术。访存单元105可基于执行引擎单元104对访存指令的执行结果而执行访存操作。写回单元106可基于执行引擎单元104对逻辑运算指令的执行结果,将执行结果写回寄存器文件。需要说明的是,图2示例性的示出了一种具有5级流水线的处理器核100架构示意图,而随着技术调整,流水线中不同阶段的逻辑电路单元也可能相整合或者分离,其架构并不固定。同时,本公开实施例的处理器核也可在例如4级流水线等其他流水线技术中适用。可以理解的是,处理器核100也可以包括对理解本公开实施例公开内容不是必需的其他电路(未示出),鉴于所述其他电路对于理解本公开实施例公开内容并不是必需的,本公开实施例中就不再赘述。在设计分支预测单元时,往往希望分支预测单元能够以较快的速度预测出分支指令的可能的分支方向,然而以较快的速度预测可能的分支方向,则意味着分支预测逻辑的级数较少,例如,仅使用一级分支预测逻辑进行分支预测。在此种情形下,虽然能够减少分支预测所采用的时钟周期数,但往往带来的结果是降低分支预测的预测准确度。现代处理器中的分支预测单元一般采用多级分支预测逻辑,示例的,图3示出了具有两级分支预测逻辑的分支预测单元的示意图。参照图3,分支预测单元101例如可以具有一级分支预测逻辑1011以及二级分支预测逻辑1012,其中,一级分支预测逻辑1011的预测准确度低于二级分支预测逻辑1012的预测准确度。在开始流水线处理之前,分支预测单元101可对当前分支地址(branchaddress)进行分支预测,得到分支预测结果。例如,在执行分支预测时,分支预测逻辑的输入可以是当前分支地址及当前分支地址相应的分支历史(branchhistory)。示例的,在使用btb技术时,当前分支地址例如可以是分支预测单元上一次输出的下一步取指操作的起始地址等。换句话说,当前分支地址相应的分支历史可以表示当前分支地址相应的历史分支方向。此时,当前分支地址相应的分支历史可以是当前分支地址相应的分支记录的部分信息,例如,当前分支地址相应的分支历史可以包括当前分支地址相应的历史分支方向等信息。尽管一级分支预测逻辑1011在预测准确度上低于二级分支预测逻辑1012,但是一级分支预测逻辑1011获取分支预测结果的速度快于二级分支预测逻辑1012,因此流水线中的取指单元102可以先访问一级分支预测逻辑1011,由一级分支预测逻辑1011对当前分支地址执行分支预测,从而取指单元102可根据一级分支预测逻辑1011的第一分支预测结果来读取指令(此时读取的指令可能是正确的,也可能是错误的)。如上所述,分支预测结果例如可以是所述当前分支地址相应的分支指令的分支预测方向、地址、目标地址等。二级分支预测逻辑1012的预测准确度高于一级分支预测逻辑1011,但需要更多的时钟周期数并会带来更多的功耗。在一级分支预测逻辑1011执行完分支预测后,可访问二级分支预测逻辑1012。即,二级分支预测逻辑1012可在一级分支预测逻辑1011执行第一分支预测之后,对当前分支地址执行第二分支预测,从而得到第二分支预测结果。根据本公开实施例,可以基于具有较高准确度的第二分支预测逻辑来决定是否纠正基于第一分支预测结果所进行的取指操作,即决定是否由取指单元102重新进行取指操作,例如,根据第二分支预测结果指示的第二分支预测方向来进行重新取指。例如,如果二级分支预测逻辑1012和一级分支预测逻辑1011的分支预测结果不一致,则重新取指,如果二级分支预测逻辑1012和一级分支预测逻辑1011的分支预测结果一致,则无需重新取指,可以继续执行依据一级分支预测逻辑1011的第一分支预测结果所读取的指令。当然,在一级分支预测逻辑1011执行完第一分支预测后,访问二级分支预测逻辑1012仅是一种可选实现方式。根据设计的不同,一级分支预测逻辑1011和二级分支预测逻辑1012的访问顺序可能不同。例如,访问二级分支预测逻辑1012需要耗费较长时间,则可更早开始访问二级分支预测逻辑1012。又例如,在对二级分支预测逻辑1012的访问不是必须的情况下,则可以提前中止访问二级分支预测逻辑1012,即,取指单元102不访问二级分支预测逻辑。换句话说,在某些情形下,可以禁止二级分支预测逻辑1012进行第二分支预测。需要说明的是,上述示例仅是以分支预测单元采用两级分支预测逻辑为例进行说明,分支预测单元所采用的分支预测逻辑的级数可根据实际情况而定,并不局限。可以看出,在进行分支预测时,访问的分支预测逻辑的级数较高的情况下,虽然可以带来较高的预测准确度,但分支预测的功耗也将增大,并且相对高级与相对低级的分支预测逻辑针对同一分支指令的分支预测结果有可能一致。换句话说,在某些情况下,对较高级数的分支预测逻辑的访问是非必须的,例如,在一级分支预测逻辑的第一分支预测结果与二级分支预测逻辑的第二分支预测结果相同的情况下。此时,可以提前中止访问所述二级分支预测逻辑,避免由访问二级分支预测逻辑带来的功耗,同时保证了分支预测结果的准确度。如上所述,需要提供一种分支预测方法,以在使用多级分支预测逻辑时,平衡分支预测的预测准确度和功耗,即在保障分支预测的预测准确度的情况下,尽可能的降低分支预测的功耗。在使用多级分支预测逻辑时,平衡分支预测的预测准确度和功耗,可以作为本公开实施例公开内容的一种可选实施方式。图4为根据本公开实施例的分支预测方法的流程图,首先,在步骤s101,获取当前分支地址和当前分支地址相应的分支历史。所述当前分支地址可以对应于分支指令,所述分支历史例如可以表示所述分支指令的历史分支方向。示例的,如当前分支地址相应的最近预定次数的历史分支方向(例如,所述分支方向可以分为分支指令跳转和不跳转两者)等,预定次数可根据实际情况设定,本发明实施例并不局限。接着,在步骤s102,对所述当前分支地址执行第一分支预测,生成第一分支预测结果。根据本公开实施例,所述第一分支预测可以由较低级的分支预测逻辑来执行,所述第一分支预测结果可以包括由所述较低级的分支预测逻辑生成的该分支指令的分支预测方向,或者还可以包括目标地址等信息,以供取指单元进行取指操作。接着,在步骤s103,根据所述分支历史和第一分支预测结果,生成第一分支预测置信度。例如,执行分支预测的任意分支预测逻辑可以对当前分支地址执行分支预测,输出当前分支地址相应的分支预测结果,并可根据输出的分支预测结果与当前分支地址相应的分支历史输出相应的分支预测置信度(confidence),所述分支预测置信度可以表示该分支预测逻辑对当前分支地址输出的分支预测结果的预测准确度。根据本公开实施例,可以根据所述分支历史表示的历史分支方向以及第一分支预测结果中的第一分支预测方向的匹配度来生成所述第一分支预测置信度。最后,在步骤s104根据所述第一分支预测置信度进行访问控制。其中,所述访问控制可以包括分支预测控制和分支记录更新控制,所述分支预测控制可以表示为控制是否进行相较于第一分支预测具有更高预测准确度的第二分支预测,所述分支记录更新控制可以表示为控制是否更新作为所述更高级的第二分支预测的执行依据的分支记录。例如,根据所述第一分支预测置信度进行访问控制可以包括根据置信度阈值确定所述第一分支预测置信度是否符合置信度条件。作为本公开实施例公开内容的一种可选实现方式,以第一分支预测置信度为例,可以通过设置置信度阈值,用于确定第一分支预测置信度是否符合置信度条件。例如,在所述第一分支预测置信度大于或等于设置的置信度阈值的情况下,确定第一分支预测置信度符合置信度条件,即第一分支预测置信度是置信的;在所述第一分支预测置信度小于置信度阈值的情况下,确定第一分支预测置信度不符合置信度条件,即第一分支预测置信度是不置信的。可选地,所述置信度阈值可以是静态值也可以是动态值。例如,在所述置信度阈值是静态值的情况下,可以根据预定值范围的中心值确定所述置信度阈值。其中,所述静态值可以认为是简单的数值范围的中点,例如可设定预定数值范围,将预定数值范围的中心值作为置信度阈值。以一位数为例,1可以表示高置信度(即分支预测置信度达到置信度阈值),0可以表示低置信度(即分支预测置信度低于置信度阈值)。在多位数时,例如以三位数为例(如3位的饱和计数器),当仅第一位数为1时,则表示低置信度(即分支预测置信度低于置信度阈值),第二位数和第三位数为1时,则表示高置信度(即分支预测置信度高于置信度阈值)。例如,在所述置信度阈值是动态值的情况下,本公开实施例可通过当前分支地址的分支记录建立动态的置信度阈值表,该置信度阈值表可以是1位或多位的单个计数器实现的计数表,或者由分支地址的历史记录索引的计数器表,或者两者的结合。可选的,动态的置信度阈值的调整可基于高级的分支预测逻辑是否有助于分支预测性能的提升而决定。可以理解的是,置信度阈值越高,则低级的分支预测逻辑的分支预测置信度越可能被判定为不符合置信度条件,相应的,访问高级分支预测逻辑的可能性就越大,因此当高级的分支预测逻辑有助于提高分支预测性能时,例如,纠正低级分支预测的预测结果,则可相应的增加置信度阈值。相反的,如果高级的分支预测逻辑不能有助于分支预测性能的提升,则可以降低置信度阈值。可以看出,以如上所述的第一分支预测逻辑和第二分支预测逻辑为例,置信度阈值的数值高低,与第二分支预测逻辑对分支预测性能的提升高低呈正相关关系。换句话说,在根据本公开的一种实现方式中,可以根据分支预测性能的提升程度确定所述置信度阈值。可选的,本公开实施例可以是综合考虑分支预测的预测准确度和功耗后,判断访问相对长延迟还是短延迟的分支预测逻辑有助于提升分支预测的性能,具体的分支预测性能的提升判定方式,本公开实施并不局限。根据本公开实施例,根据所述第一分支预测置信度进行访问控制还可以包括在第一分支预测置信度符合置信度条件的情况下,禁止对当前分支地址执行第二分支预测,即,进行分支预测控制。其中,第一分支预测置信度符合置信度条件则意味着第一分支预测结果具有较高的分支预测准确度,即,更高级的第二分支预测生成的第二分支预测结果很可能与第一分支预测结果一致。此时,认为可以继续执行根据第一分支预测结果进行的取指操作,而无需进行更高级的第二分支预测,从而降低由进行第二分支预测造成的功耗,并相应的减少运行时钟周期数。在第一分支预测置信度不符合置信度条件的情况下,可以控制进行对当前分支地址执行第二分支预测。即,在第一分支预测结果的预测准确度较低的情况下,需要进一步由更高级的第二分支预测逻辑对当前分支地址执行第二分支预测,从而根据第二分支预测逻辑输出的第二分支预测结果决定是否纠正取指。根据本公开实施例,根据所述第一分支预测置信度进行访问控制还可以包括在第一分支预测置信度符合置信度条件的情况下,禁止更新所述当前分支地址相应的分支记录。在第一分支预测置信度不符合置信度条件的情况下,更新所述当前分支地址相应的分支记录。例如,第一分支预测置信度符合置信度条件,则说明由执行第一分支预测生成的第一分支预测结果的预测准确度较高,可禁止更新用于执行第二分支预测的分支记录。可以理解的是,第一分支预测结果的预测准确度较高,说明对当前分支地址进行的第一分支预测已具有较高的预测准确度,即可更新用于执行第一分支预测的分支记录,而不必更新用于执行第二分支预测的分支记录,从而减小分支预测功耗。若第一分支预测置信度不符合置信度条件,则第一分支预测结果的预测准确度较低,则可更新用于执行第二分支预测的分支记录。进一步地,在第一分支预测置信度符合置信度条件的情况下,所述更新步骤还涉及第二分支预测。根据本公开实施例,更新所述当前分支地址相应的分支记录可以包括在执行当前分支地址相应的分支指令后,更新当前分支地址相应的分支记录。需要说明的是,所述分支指令的执行可以由处理器核的执行单元来实施,在执行了分支指令之后,可以确定该分支指令的实际跳转方向。从而可以根据该分支指令的实际跳转方向来更新分支指令的分支记录。换句话说,在由处理器核实际执行当前分支地址相应的分支指令之前,可以由分支预测单元来生成该分支指令的分支预测方向,即,预测该分支指令可能的分支方向,然后由取指单元依据该分支预测方向来进行取指操作。在该分支指令被实际执行之后,则可以了解到该分支指令的实际分支方向,例如指令是否跳转,此时,可以利用分支指令的实际分支方向来更新该分支指令的分支记录。根据本公开实施例的分支预测方法还包括在执行当前分支地址相应的分支指令后,记录当前分支地址相应的分支指令的实际跳转方向。根据本公开实施例,可以利用计数值来实现上述记录当前分支地址相应的分支指令的实际跳转方向。例如,在执行当前分支地址相应的分支指令后,在分支指令的实际跳转方向表示指令跳转的情况下,则对计数值加第一值,在分支指令的实际跳转方向表示指令不跳转的情况下,则对所述计数值减第一值。其中,所述计数值表示所述分支记录,所述计数值的最高位数值指示当前分支地址的置信的分支预测方向,所述计数值的剩余位数值指示当前分支地址的分支历史。此外,所述剩余位数值还可以表示当前分支地址在该置信的分支预测方向上的置信程度。所述计数值可以是三位计数值也可以是两位计数值,所述计数值的位数可根据实际情况选定。可选地,在对计数器进行计数时,所述第一值可以是数字1,对于当前分支地址,在当前分支地址相应的分支指令每执行一次后,如果实际的跳转方向表示指令跳转,则计数值加1,直至达到计数器的位数限制,如果实际的跳转方向表示指令不跳转,则计数值减1。图5为根据本公开实施例的计数值的示意图,其中,计数值具有三位数据。例如,当前分支地址的计数值为111时,该计数值的最高位数值为1,则当前分支地址置信的分支预测方向可以表示为指令跳转,除最高位的剩余位数值为11,则可以说明当前分支地址在指令跳转的预测方向上具有非常高的置信程度。根据本公开实施例,对所述当前分支地址执行第一分支预测,生成第一分支预测结果可以包括:将所述计数值的最高位数值指示的置信的分支预测方向确定为第一分支预测结果指示的第一分支预测方向。此时,可以将计数值理解为所述分支记录,作为分支预测的执行依据。换句话说,在进行分支预测时,可以将计数值中最高位表示的置信的分支预测方向确定为所述第一分支预测结果中包括的第一分支预测方向。然后,可以根据分支历史和第一分支预测结果,生成第一分支预测置信度。其中,可以根据计数值中的剩余位指示的分支历史与第一分支预测方向的匹配度确定所述第一分支预测置信度。此处,以计数值为111为例进行说明。第一分支预测可以将最高位指示的置信的分支预测方向作为第一分支预测方向,并输出,即第一分支预测的预测结果为指令跳转。所述分支历史可以由计数值剩余位数值表示,即11。计数值111意味着,当前分支地址相应的分支指令的实际执行结果至少有7次为指令跳转,即可以认为所述分支历史与第一分支预测方向的匹配度较高,然后可以各根据该匹配度来确定所述第一分支预测置信度,上述确定第一分支预测置信度还可以采用其他方式,在此不作限制。根据本公开实施例,根据置信度阈值确定所述第一分支预测置信度是否符合置信度条件还包括:在第一分支预测置信度符合置信度条件的次数达到次数阈值的情况下,将第一分支预测置信度直接确定为符合置信度条件,并间隔地比较第一分支预测置信度和置信度阈值。在第一分支预测置信度符合置信度条件的次数达到次数阈值的情况下,则可以认为第一分支预测对当前分支地址具有较高的分支预测准确度,此时,则可以间隔预定间隔次数,例如每隔三次判断一次第一分支预测对当前分支地址输出的分支预测置信度是否符合置信度条件,其他情况下默认第一分支预测结果的第一分支预测置信度符合置信度条件。其中,如果任一次判定第一分支预测置信度不符合置信度条件,则后续可以每次均判断第一分支预测置信度是否符合置信度条件,直至第一分支预测置信度符合置信度条件的连续次数再次达到所述次数阈值。根据本公开的分支预测方法还可以包括:根据历史分支预测置信度以及置信度分配限值,确定执行第一分支预测或者执行第二分支预测,其中,第二分支预测的预测准确度高于第一分支预测。例如,在所述历史分支预测置信度大于或等于所述置信度分配限值的情况下,确定执行第一分支预测;以及在所述历史分支预测置信度小于所述置信度分配限值的情况下,确定执行第二分支预测。在一种可选实现方式中,所述分支记录还可以包括当前分支地址的历史分支预测置信度。当前分支地址的分支历史可以包括当前分支地址最近次数的分支方向。可以设定置信度分配限值,如果所述历史分支预测置信度低于设定的置信度分配限值,则认为第一分支预测对当前分支地址的分支预测的预测准确度较低,可在当前不使用第一分支预测逻辑对当前分支执行分支预测,而是确定对当前分支地址执行第二分支预测。如果所述历史分支预测置信度不低于设定的置信度分配限值,则认为第一分支预测对当前分支地址的分支预测的预测准确度较高,可确定对当前分支地址执行第一分支预测。例如,所述当前分支地址的历史分支预测置信度可以是历史的第一分支预测结果的分支预测置信度的平均值。如上所述,根据本公开的分支预测方法可以实现在使用多级分支预测时,平衡分支预测的预测准确度和功耗,即在保障分支预测的预测准确度的情况下,尽可能的降低分支预测的功耗。本公开还提供一种分支预测单元,图6示出了所述分支预测单元的示意图。参照图6,所述分支预测单元101可以包括:第一分支预测逻辑01、第二分支预测逻辑02以及访问控制单元03。根据本公开实施例,所述第一分支预测逻辑01可以配置成获取当前分支地址和当前分支地址相应的分支历史,对所述当前分支地址执行第一分支预测,生成第一分支预测结果,以及根据所述分支历史和第一分支预测结果,生成第一分支预测置信度。所述访问控制单元03可以配置成根据所述第一分支预测置信度进行访问控制。所述第二分支预测逻辑02可以配置成根据访问控制单元的访问控制执行第二分支预测。根据本公开实施例,所述访问控制单元03还可以配置成根据置信度阈值确定所述第一分支预测置信度是否符合置信度条件,包括:在所述第一分支预测置信度大于或等于置信度阈值的情况下,确定第一分支预测置信度符合置信度条件;在所述第一分支预测置信度小于置信度阈值的情况下,确定第一分支预测置信度不符合置信度条件。例如,可以根据预定值范围的中心值确定所述置信度阈值,或者根据分支预测性能的提升程度确定所述置信度阈值。根据本公开实施例,所述访问控制单元03在第一分支预测置信度符合置信度的情况下,可以禁止所述第二分支预测逻辑02对当前分支地址执行第二分支预测。在第一分支预测置信度不符合置信度条件的情况下,所述访问控制单元03可以控制所述第二分支预测逻辑02对当前分支地址执行第二分支预测。根据本公开实施例,所述访问控制单元03在第一分支预测置信度符合置信度的情况下,可以禁止所述第二分支预测逻辑更新所述当前分支地址相应的分支记录。在第一分支预测置信度不符合置信度条件的情况下,所述访问控制单元03可以控制第二分支预测逻辑更新所述当前分支地址相应的分支记录。根据本公开实施例的分支预测单元还可以包括计数器。所述计数器可以配置成在执行当前分支地址相应的分支指令后,记录当前分支地址相应的分支指令的实际跳转方向。例如,在分支指令的实际跳转方向表示指令跳转的情况下,所述计数器对计数值加第一值,在分支指令的实际跳转方向表示指令不跳转的情况下,所述计数器对所述计数值减第一值。例如,可以利用所述计数值表示所述分支记录,其中,所述计数值的最高位数值指示当前分支地址的置信的分支预测方向,所述计数值的剩余位数值指示当前分支地址的分支历史。示例的,以采用位数为2位或3位的双模态预测器为例,双模态预测器可使用最高位作为分支预测方向;对于基于目标的预测器(btb),可以添加扩展位数以指示命中目标的分支预测置信度,在此情况下,本公开实施例可以将最高位视为分支预测方向,剩余的较低位视为该分支预测方向的置信程度。根据本公开实施例,所述第一分支预测单元01可以将所述计数值的最高位数值指示的置信的分支预测方向确定为第一分支预测结果指示的第一分支预测方向。此外,所述第一分支预测单元01还可以根据所述计数值的剩余位数值指示的分支历史与第一分支预测方向的匹配度确定所述第一分支预测置信度。根据本公开实施例,所述访问控制单元03还可以配置成根据历史分支预测置信度以及置信度分配限值,确定执行第一分支预测或者执行第二分支预测。在历史分支预测置信度大于或等于置信度分配限值的情况下,所述访问控制单元03可以确定由第一分支预测逻辑执行第一分支预测。以及,在历史分支预测置信度小于置信度分配限值的情况下,所述访问控制单元03可以确定由第二分支预测逻辑执行第二分支预测,其中,第二分支预测的预测准确度高于第一分支预测。如上所述的分支预测单元进行分支预测的过程与如上结合图4描述的分支预测方法类似,在此不再赘述。利用如图6所示的分支预测单元可以实现在使用多级分支预测(例如,具有第一分支预测逻辑01和第二分支预测逻辑02)时,平衡分支预测的预测准确度和功耗,即在保障分支预测的预测准确度的情况下,尽可能的降低分支预测的功耗。图7和图8分别示出了根据本公开实施例的实施方式的示意图,以下将结合图7和图8,详细描述根据本公开的分支预测单元进行分支预测的过程。如图7所示,第一分支预测逻辑01和第二分支预测逻辑02可以是分支预测单元101中相邻的任意两级分支预测逻辑,且第二分支预测逻辑02的级数高于第一分支预测逻辑01。示例的,结合图3所示,所示第一分支预测逻辑01可以是分支预测单元101中的一级分支预测逻辑1011,第二分支预测逻辑02可以是分支预测单元101中的二级分支预测逻辑1012。显然,第一分支预测逻辑01的级数并不限于一级,例如,第一分支预测逻辑可以是二级分支预测逻辑,第二分支预测逻辑可以是三级分支预测逻辑,只要使得第一和第二分支预测逻辑是分支预测单元中相邻的两级分支预测逻辑,且第二分支预测逻辑的级数高于第一分支预测逻辑即可。作为本公开实施例的一种可选实现方式,相邻的两级分支预测逻辑可对应一个访问控制单元03,访问控制单元03可用于对所对应的相邻的两级分支预测逻辑中高一级的分支预测逻辑(例如,第二分支预测逻辑)进行访问控制。本公开实施例所指的访问控制包括但不限于分支预测控制和分支记录更新控制。其中,所述分支预测控制可以是指控制第二分支预测逻辑是否执行第二分支预测,所述分支记录更新控制可以是指控制第二分支预测逻辑是否更新分支记录。其中,所述分支记录是分支预测逻辑执行分支预测的依据,分支记录可以记录分支指令的历史执行信息和历史分支结果参照图6,在本公开实施例中,执行当前分支地址的分支预测时,分支预测单元的输入可以是当前分支地址及当前分支地址相应的分支历史。示例的,所述当前分支地址可以是分支预测单元上一次输出的下一步取指起始地址等,当前分支地址相应的分支历史可以表示当前分支地址相应的历史分支方向。此时,当前分支地址相应的分支历史可以是当前分支地址相应的分支记录的部分信息,例如,如上所述由计数值表示分支记录的情况下,分支历史可以由所述计数值的除最高位之外的剩余位表示。在本公开实施例中,任一分支预测逻辑(例如,第一分支预测逻辑01以及第二分支预测逻辑02)均可对所述当前分支地址执行分支预测,输出当前分支地址相应的分支预测结果。根据本公开实施例,任一分支预测逻辑还可根据其输出的分支预测结果与当前分支地址相应的分支历史输出相应的分支预测置信度(confidence)。所述分支预测置信度可以表示该分支预测逻辑对当前分支地址输出的分支预测结果的预测准确度。可选的,在本公开实施例中,第一分支预测逻辑01可对所述当前分支地址执行第一分支预测。例如,第一分支预测逻辑01可以根据执行分支预测的依据(即分支记录),对当前分支地址执行分支预测,并输出当前分支地址相应的第一分支预测结果。第一分支预测逻辑01除输出第一分支预测结果外,还可根据第一分支预测结果与当前分支地址相应的分支历史,输出第一分支预测结果相应的第一分支预测置信度。第一分支预测置信度可以表示第一分支预测逻辑01输出的第一分支预测结果的预测准确度。可选的,取指单元可以访问第一分支预测逻辑01,并根据所述第一分支预测逻辑01生成的第一分支预测结果进行取指操作。例如,所述第一分支预测结果可以被馈送到取指单元102,以由取指单元102根据第一分支预测结果进行取指。示例的,取指单元102可以根据第一分支预测结果指示的分支指令的取指地址(包括分支指令的取指起始地址和取指结束地址等)进行取指。此时,由于第一分支预测逻辑的级数较低,即,预测准确度较低,则所述读取的指令可能是正确的,也可能是错误的。第一分支预测逻辑01输出的第一分支预测置信度可以被馈送到访问控制单元03,以由访问控制单元03对第二分支预测逻辑02进行所述访问控制,从而基于第一分支预测逻辑的第一分支预测置信度,决定是否访问更高级的第二分支预测逻辑02,实现对分支预测的预测准确度和功耗的平衡,为在具有较高分支预测的预测准确度的情况下,降低分支预测的功耗提供了可能。进一步地,如图6所示,当前分支地址和相应的分支历史也可反馈至访问控制单元03,在访问控制单元03确定访问更高级的第二分支预测逻辑02时,访问控制单元03可将当前分支地址和相应的分支历史馈送给第二分支预测逻辑02。在本公开实施例中,访问控制单元03对第二分支预测逻辑02所进行的访问控制可以分为分支预测控制和分支记录更新控制。作为本发明实施例公开内容的一种可选实现方式,在进行分支预测控制时,访问控制单元03可根据第一分支预测逻辑输出的第一分支预测置信度,判断第一分支预测置信度是否符合预定的置信度条件。若是,则说明第一分支预测逻辑01输出的第一分支预测结果的预测准确度较高,可使用第一分支预测结果进行后续的流水线作业,而不需再进一步访问第二分支预测逻辑02,从而访问控制单元03可禁止第二分支预测逻辑02执行第二分支预测,降低分支预测功耗。若否,则说明第一分支预测逻辑01输出的第一分支预测结果的预测准确度较低,第一分支预测结果可能存在较大的错误,还需由第二分支预测逻辑02对当前分支地址执行第二分支预测,从而基于第二分支预测逻辑02输出的第二分支预测结果,决定是否重新取指,以此保障分支预测具有较高的预测准确度。为便于说明,本公开实施例将第二分支预测逻辑02针对当前分支地址输出的分支预测结果称为第二分支预测结果。可选的,如果分支预测单元中还存在级数高于第二分支预测逻辑的更高一级分支预测逻辑,例如第三分支预测逻辑(未示出),则第二分支预测逻辑可视为相对于该第三分支预测逻辑的一级分支预测逻辑,该更高一级分支预测逻辑可以作为二级分支预测逻辑,从而依照前述流程,可继续对更高级的分支预测逻辑进行分支预测控制。以此同理类推,本公开实施例可在分支预测单元具有多级分支预测逻辑的情况下,实现对高级的分支预测逻辑进行分支预测控制,达到平衡分支预测的预测准确度和功耗的效果。根据本公开的另一实施例中,第二分支预测单元输出的第二分支预测结果可与第一分支预测结果进行比对,以决定是否纠正基于第一分支预测结果所进行的取指。可选的,取指单元可以判断第二分支预测结果与第一分支预测结果是否一致,如果第二分支预测结果与第一分支预测结果一致,则可不纠正取指,如果第二分支预测结果与第一分支预测结果不一致,由于第二分支预测逻辑的预测准确度高于第一分支预测逻辑,因此可基于第二分支预测结果纠正取指(如基于第二分支预测结果指示的取指地址纠正取指)。进一步,如果第二分支预测结果与第一分支预测结果一致,说明目前所得到的分支预测结果已具有较高的预测准确度,则在分支预测单元中还存在级数高于第二分支预测逻辑的更高级其他分支预测逻辑的情况下,本公开实施例可禁用更高级其他分支预测逻辑。本公开实施例可基于第一分支预测置信度是否符合预定条件,决定是否对第二分支预测逻辑的分支记录进行更新。需要说明的是,作为一种可选实现方式,所述分支记录的更新可以是在分支指令执行后实现(具体可由处理器核的执行单元实现分支指令的执行),在分支指令执行后,可确定分支指令的实际跳转方向,从而根据分支指令的实际跳转方向更新分支指令的分支记录(即更新该分支指令的分支地址相应的分支记录)。图8示出了根据本公开实施例的进行分支记录更新的实施方式的示意图。其中,第一分支预测逻辑01获取当前分支地址和当前分支地址相应的分支历史,对所述当前分支地址执行第一分支预测,生成第一分支预测结果,以及根据所述分支历史和第一分支预测结果,生成第一分支预测置信度的处理与以上关于图7的描述类似,在此不再赘述。如图8所示,访问控制单元03在确定第一分支预测置信度符合预定的置信度条件的情况下,可以禁止第二分支预测逻辑02更新分支记录。具体的,可在执行了当前分支地址相应的分支指令之后,禁止第二分支预测逻辑更新相应的分支记录。访问控制单元03在确定第一分支预测置信度不符合预定的置信度条件的情况下,可以控制第二分支预测逻辑02更新分支记录。所述更新分支指令可在执行了当前分支地址相应的分支指令之后进行。例如,在第一分支预测置信度符合预定的置信度条件时,说明第一分支预测逻辑对于当前分支地址已具备较高的分支预测的预测准确度,后续使用到第二分支预测逻辑对当前分支地址执行第二分支预测的概率较低,因此,访问控制单元03可以禁止更新第二分支预测逻辑的分支记录,以减少分支预测功耗。进一步地,第一分支预测逻辑01还可以根据分支指令的执行结果更新分支记录,具体可在当前分支地址相应的分支指令执行后,基于分支指令的实际跳转方向更新当前分支地址相应的分支记录。可选的,如果分支预测单元中还存在级数高于第二分支预测逻辑的更高一级分支预测逻辑,则可同理实现对更高级的分支预测逻辑进行分支预测控制和分支记录更新控制。可选的,上述描述虽然以相邻的两级分支预测逻辑对应一个访问控制单元进行描述,但在本公开实施例中,分支预测单元中的多个分支预测逻辑也可以对应于一个访问控制单元。本公开实施例提供的分支预测方法中,可以对当前分支地址执行第一分支预测,生成的第一分支预测结果,并根据当前分支地址相应的分支历史和生成的第一分支预测结果来生成第一分支预测置信度。从而,可以根据第一分支预测置信度,进行访问控制,例如控制是否执行更高级的第二分支预测以及是否更新第二分支预测的分支记录。以此方式,可以实现基于第一分支预测置信度,来决定是否访问更高级的第二分支预测逻辑,实现了分支预测的预测准确度和功耗的平衡,在具有较高的分支预测准确度的情况下,为降低分支预测的功耗提供了可能。图9示出了根据本公开实施例的分支预测单元的示意框图,其中,访问控制单元03可以根据分支地址的历史分支预测置信度,分配对当前分支地址执行分支预测的分支预测逻辑。一般而言,历史分支预测置信度较低的分支地址的分支预测难度较大,可由相对高级的分支预测逻辑(例如,第二分支预测逻辑02)执行分支预测;而历史分支预测置信度较高的分支地址的分支预测难度较小,可由相对低级的分支预测逻辑(例如,第一分支预测逻辑01)执行分支预测。在一种可选实现,当前分支地址和当前分支地址相应的分支历史可输入访问控制单元03,当前分支地址相应的分支历史中还可以携带第一分支预测逻辑对当前分支地址的历史分支预测置信度。在一种示例中,当前分支地址的分支历史可以记录当前分支地址最近次数的分支预测方向,以及携带第一分支预测逻辑对当前分支地址的历史分支预测置信度。访问控制单元03可以通过设定的置信度分配限值,如果所述历史分支预测置信度低于设定的置信度分配限值,则认为第一分支预测逻辑01对当前分支地址的分支预测的预测准确度较低,可在当前不使用第一分支预测逻辑01对当前分支执行分支预测,而是分配由第二分支预测逻辑02对当前分支地址执行分支预测。如果所述历史分支预测置信度大于或等于设定的置信度分配限值,则认为第一分支预测逻辑01对当前分支地址的分支预测的预测准确度较高,可分配由第一分支预测逻辑01对当前分支地址执行分支预测。可选的,第一分支预测逻辑01对当前分支地址的历史分支预测置信度可选如,第一分支预测逻辑历史对当前分支地址执行分支后的分支预测的预测准确度的均值。需要说明的是,本公开实施例所指的逻辑、单元可以是指处理器核中的逻辑电路单元。上文描述了本公开实施例提供的多个实施例方案,各实施例方案介绍的各可选方式可在不冲突的情况下相互结合、交叉引用,从而延伸出多种可能的实施例方案,这些均可认为是本公开实施例披露、公开的实施例方案。本公开实施例还提供一种处理器核,该处理器核可以包括如上所述的分支预测单元。根据本公开的分支预测方法、分支预测单元以及处理器核,可以在使用多级分支预测逻辑时,平衡分支预测的预测准确度和功耗,即在保障分支预测的预测准确度的情况下,尽可能的降低分支预测的功耗。本领域普通技术人员可以理解上述方法中的全部或部分的步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本公开并不限制于任何特定形式的硬件和软件的结合。除非另有定义,这里使用的所有术语(包括技术和科学术语)具有与本公开所属领域的普通技术人员共同理解的相同含义。还应当理解,诸如在通常字典里定义的那些术语应当被解释为具有与它们在相关技术的上下文中的含义相一致的含义,而不应用理想化或极度形式化的意义来解释,除非这里明确地这样定义。以上是对本公开的说明,而不应被认为是对其的限制。尽管描述了本公开的若干示例性实施例,但本领域技术人员将容易地理解,在不背离本公开的新颖教学和优点的前提下可以对示例性实施例进行许多修改。因此,所有这些修改都意图包含在权利要求书所限定的本公开范围内。应当理解,上面是对本公开的说明,而不应被认为是限于所公开的特定实施例,并且对所公开的实施例以及其他实施例的修改意图包含在所附权利要求书的范围内。本公开由权利要求书及其等效物限定。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1