低功率消耗的分支预测装置和方法

文档序号:6387300阅读:107来源:国知局
专利名称:低功率消耗的分支预测装置和方法
技术领域
本发明通常涉及一种微处理器的分支预测装置,并且更详细地涉及一种可以减少在分支预测操作期间不必要的功率消耗的分支预测装置和方法。
根据35U.S.C§119,本美国非临时专利申请要求2003年9月24日申请的韩国专利申请2003-66325的优先权,其所公开的内容在这里全部引用供参考。
背景技术
分支指令语句可以是一个程序指令。当满足分支指令语句中包括的预定条件时,就执行分支指令语句中指定的指令。否则,就执行另一个在该分支指令语句下一步出现的指令。这样的条件分支指令语句是一个典型的分支指令语句。但是,对于本领域的技术人员来说,各种其它类型的分支指令语句也是公知的。
为了确定其后要执行的指令,上述分支指令语句就需要提取(或检索(retrieving))包括在该分支指令语句中的分支条件的处理。提取处理会使一般需要快速提取指令的流水线微处理器的系统性能恶化。
提取处理的缺点可以通过实现分支预测器克服。分支预测器可以预测分支指令语句的条件检索结果。分支预测器获得的预测结果可以用于预提取该分支指令语句下面的一条要执行的指令。术语“预提取”是指不等待判定分支就检索随后的指令,从而提高微处理器的性能。
如果分支预测结果不正确,那么先前提取的指令就无效了,并需要提取其它的指令。重新提取指令会使微处理器性能恶化。因此,已经开始研究提高分支预测器的准确性。最准确的分支预测器之一就是联赛分支预测器(tournament branch predictor)。
联赛分支预测器在本领域中是公知的。图1是表示常规的联赛分支预测器的方框图。
如图1所示,联赛分支预测器可具有三个预测器,包括局部预测器(localpredictor)100、全局预测器(global predictor)110和选择预测器(choicepredictor)120。分支预测器还可以包括全局历史寄存器130。
通过利用当前输入的分支指令的在先分支预测值结果的历史,局部预测器100可以执行局部分支预测算法。局部预测器100可以包括一个局部预测存储阵列(“LPSA”)102,该阵列包括三个预测位表示对应分支指令的最近预测结果值的一个预测位,以及表示用于输出局部预测值LP_V的结果的预测次数的指针位的两位。LPSA 102可以由一个程序计数器(“PC”)索引,该程序计数器代表要执行的分支指令的地址。局部历史表104(“LHT”)可以为各个分支指令的最近的十个分支,存储预测值结果的历史(也就是,是否取用程序的指令流中的某一分支)。局部预测表106(“LPT”)可以由存储在LHT 104中的局部历史来做索引。
分支预测后,LHT 104和LPT 106就可以用于更新LPSA 102。进一步地,LHT 104和LPT 106可以用于更新LPSA 102,但是它们不能在分支预测时使用。
全局历史寄存器130可以存储由分支预测器提供的最终分支预测值PRED_V的历史。
全局预测器110可以使用全局预测表112(“GPT”)。GPT 112可以由PC的专有OR 140(XOR)以及从全局历史寄存器130输入的全局历史来索引,用以执行全局分支算法。全局预测器110可以输出全局预测值结果GP_V。
选择预测器120可以包括选择预测表122(“CPT”)。CPT 122可以由全局历史(来自全局历史寄存器130)来索引,用以输出预测器选择值(“PSEL”)。选择预测器120可以包括MUX电路124。选择预测器120可以从分别来自局部预测器100和全局预测器110的预测值结果LP_V和GP_V中选择一个,并且将选择的预测值作为最终的分支预测值PRED_V输出。
LPT 106、GPT 112和CPT 122可以被用作饱和计数器。为了进行更新,当预测该分支将被取用时,LPT 106和GPT 112的入口就加“1”,而当预测该分支将不被取用时,其入口就减“1”。CPT 122的入口的更新取决于为最终分支预测选择的一种分支预测器(例如,局部或全局)。也就是说,该入口的增加或减少取决于是否是局部预测器100的分支预测值LP_V被选择为最终分支预测值PRED_V,还是全局预测器110的分支预测值GP_V被选择为最终分支预测值PRED_V。此更新特性可以由程序员任意设定,这是本领域公知的。
图2是可以由图1的常规分支预测器执行的分支预测操作的示意图。应意识到为了方便说明,图2所示的每个表格的入口值都可以被任意设置。在图2中,假设输入的代表分支指令地址的PC被设为零。
在局部预测器100中,LPSA 102的第一入口可以由PC“0”索引。被索引的第一入口的预测位“110”的最高位(“MSB”)“1”可以被输出为局部预测器100的分支预测值LP_V。预测位“110”的最高位被阴影线圈出。
在全局预测器110中,GPT 112的第4入口可以由XOR 140的输出索引,XOR 140具有来自全局历史寄存器130和PC的全局历史“0000000011”的输入。被索引的入口“011”的MSB值“0”可以被输出为全局预测器110的分支预测值GP_V。
在选择预测器120中,CPT 122的第四入口可以被来自全局历史寄存器130的全局历史“0000000011”索引。被索引的入口“100”的MSB值“1”可以作为选择预测器的PSEL,输入到MUX电路124中。
在每个预测器中,分支预测值“1”可表示预测该分支将被取用,分支预测值“0”可表示预测该分支将不被取用。因此,在图2所描述的情况中,预测器100、110可以不一致。换句话说,局部预测器100预测该分支将被取用,而全局预测器100预测该分支不被取用。另外,当CPT 122的PSEL是“1”时,局部预测器100的分支预测值LP_V可以被选择为最终分支预测值PRED_V,而当预测器选择值PSEL为“0”时,全局预测器110的分支预测值GP_V可以被选择为最终分支预测值PRED_V。由于在图2中,CPT122的预测器选择值PSEL为“1”,其值为“1”的局部预测器100的分支预测值LP_V可以被MUX电路124输出为最终分支预测值PRED_V。这就表示预测到相应于输入PC的分支指令的分支将被取用。因此,在分支将被实际取用的情况下,即,在分支指令语句为“true”的情况下,微处理器可以预提取要执行的指令。
如图2所示,分支预测器执行分支预测之后,分支预测器可以根据预测结果更新各个表和寄存器,以备下一个分支预测使用。图3A-3E是根据图2所示的分支预测结果的更新处理的示意图。每个图的左边表示更新处理前的表格值,每个图的右边表示更新处理后的表格值。这里,当预测要取用该分支时(也就是,当分支预测结果(PRED_V=“1”)时),用于分支预测的每个表的入口值就加“1”,并且当预测该分支将不被取用时(也就是,当PRED_V=“0”时),其被减“1”。但是在CPT 122中,当选择局部预测器100用于最终分支预测时,入口值被加“1”,并且当全局预测器110被选择时,入口值被减“1”。
图3A示意性地表示了根据图2所示的分支预测结果值(PRED_V=“1”),由包括在局部预测器100中的LHT 104和LPT 106执行的更新处理。在图3A中,由于在图2中预测分支将被取用(即PRED_V=“1”),由PC索引的LHT 104的第一入口值“0000000010”将被向左移一位,当前分支预测结果值“1”将被插入到最低位(LSB),来形成更新后的第一入口值“0000000101”。另外,由LHT 104索引的LPT 106的第三入口值“000”将加“1”,来形成更新后的第三入口值“001”。同时,参考图3b,LPSA 102的第一入口的指针位将加“1”,并参照图3a所示的LHT 104和LPT 106的值进行更新。LPSA 102的更新处理在本领域中是公知的,因此省略相同的细节描述。
图3c示意性地表示了由全局历史寄存器130执行的、取决于分支预测结果的更新处理。如图3C所示,全局历史寄存器130的值“0000000011”被向左移一位,并且分支预测结果值“1”被插入到寄存器130的LSB,来形成更新后的值“0000000111”。
图3D示意性地表示了由GPT 112执行的、取决于分支预测结果的更新处理。由于预测当前分支将被取用,GPT 112的用于该分支预测的第四入口值“011”被加“1”,来形成更新后的值“100”。
图3e示意性地表示了由CPT 122执行的、取决于分支预测结果的一更新处理。在CPT 122中,根据选择哪个预测器确定更新的值。由于选择了局部预测器100,用于分支预测的CPT 122第四入口值“100”被加“1”,来形成更新后的第四入口值“101”。
通过上述公知的预测和更新处理,联赛分支预测器可以执行一准确、可靠的分支预测。但是,如图4所示,在常规的联赛分支预测器中,三个预测器100、110、120可以同时执行。也就是说,分支预测可以同时由各个分支预测器(即,局部预测器和全局预测器)执行,并且选择预测也可以同时由选择预测器120执行。因此,整个分支预测器可以导致不必要的功率消耗。例如,如图2所示,当局部预测器110被选择为最终分支预测器时,全局预测器110可能为未选择的分支预测消耗不必要的功率。相反的,当选择全局预测器110时,局部预测器100可能为未选择的分支预测消耗不必要的功率。
分支预测器的功率消耗可以占用微处理器的总功率消耗的10%以上。因此需要减少分支预测器的不必要功率消耗,来提高微处理器的性能。

发明内容
本发明的示例性实施例可以减少功率消耗,来排除相关技术的问题和缺陷。
本发明的其它优点和特性在参照下面的说明书后会变得显而易见,并在本发明的实施中显现。
在本发明的示例性实施例中,分支预测装置可以包括第一分支预测器,其用于为了预测一分支指令的结果而执行第一分支预测算法;以及第二分支预测器,其用于为了预测该分支指令的结果而执行第二分支预测算法。选择预测器可以产生用于控制该第一分支预测器和第二分支预测器的操作的控制信号。选择预测器也可以选择并输出第一分支预测器或第二分支预测器的预测结果。该第一分支预测器和第二分支预测器可根据该控制信号分别执行预测算法。
在一个示例性的实施例中,分支预测器方法可包括通过利用在先分支预测结果从多个分支预测器中选择一个分支预测器;以及通过利用选择的分支预测器为分支指令执行分支预测。
在另一个示例性的实施例中,分支预测装置的选择预测器可包括移位寄存器,其用于将存储的该分支预测装置的分支预测值向左移一位。选择预测表可被一移位寄存器的值索引,来输出预测器选择值。预测器选择单元可产生控制信号,该信号用于根据选择预测表的预测器选择值,来控制第一分支预测器和第二分支预测器的操作。该预测器选择单元可产生选择信号,其用于选择第一和第二分支预测器中的一个的输出。MUX电路可连接到该第一分支预测器和第二分支预测器。该MUX电路可根据选择的信号输出第一分支预测器的分支预测值或第二分支预测器的分支预测器。
在示例性的实施例中,一种操作分支预测装置的选择预测器的方法可包括将存储的分支预测装置的分支预测值向左移动一位。选择预测表可由一个移位寄存器的值索引,来输出一个预测器选择值。可根据预测器选择值产生用于控制多个分支预测器的操作控制信号。
在另一个示例性的实施例中,一种计算机可读媒体可包括使计算机能够预测程序的分支指令是否被取用的指令。该指令可使计算机通过利用在先分支预测结果,执行从多个分支预测器中选择一个分支预测器的功能。分支指令的分支预测可利用所选择的分支预测器执行。
应当理解的是,本发明的上述总的说明以及下面的详细说明仅仅是示例性和解释性的,其并不是对要求保护的发明的限制。


附图表示了本发明的示例性、非限制性的实施例,并且其与说明书一起用于解释本发明的原理。在这些图中图1是常规分支预测器的方框图。
图2是图1中所示的常规分支预测器执行的分支预测操作的示意图。
图3A到3E是图2所示的分支预测操作后执行的更新处理的示意图。
图4是由图1的常规分支预测器执行的分支预测处理的流程图。
图5是根据本发明的一个示例性、非限制性的实施例,低功率消耗的分支预测装置的方框图。
图6A是根据本发明的一个示例性、非限制性的实施例,由选择预测器执行的预测器选择操作的示意图。
图6B是根据选择预测器操作指令,由各个分支预测器执行的操作的示意图。
图7是根据本发明的一个示例性、非限制性的实施例,由分支预测装置执行的分支预测处理的流程图。
图8是常规分支预测器和根据本发明的一个示例性实施例的低功率消耗分支预测装置的每一个中,取决于分支指令和总指令的比率的功率消耗度量的示意图。
具体实施例方式
现在将参照本发明的示例性、非限制性的实施例,其实例在附图中表示。但是本发明并不局限于这些示出的实施例的细节,这里所介绍的内容是为了容易并且完整地理解本发明的范围和精神。
图5是根据本发明的一个示例性、非限制性的实施例,低功率消耗的分支预测装置的方框图。这里,分支预测装置可包括局部预测器500、全局预测器510、全局历史寄存器530以及选择预测器520。选择预测器520可具有用于控制各个预测器500和510的控制电路。
局部预测器500可使用相应于当前输入的分支指令的在先分支预测结果的局部历史信息,来执行用于预测当前分支指令结果的局部分支预测算法。局部预测器500可具有局部预测存储阵列(“LPSA”)502、局部历史表(“LHT”)504、局部预测表(“LPT”)506以及控制逻辑508。控制逻辑508可根据第一控制信号Ctrl0使局部预测器500能或不能进行完整的操作,其中该第一控制信号由选择预测器520输出。
全局历史寄存器530可以是一个10位大小的寄存器,其用于存储在先分支预测结果的全局历史,其中该预测结果由分支预测装置获得。
全局预测器510可使用存储在全局历史寄存器530中的全局历史,来执行用于预测当前分支指令的结果的全局分支预测算法。全局预测器510可包括用于存储最近的分支结果的全局预测表(“GPT”)512。全局预测器510也可包括控制逻辑514,该控制逻辑可根据第二控制信号Ctrl1使全局预测器510能或不能进行完整的操作,该第二控制信号由选择预测器520输出。
选择预测器520可包括一个1位的移位寄存器522。该移位寄存器可以将全局历史寄存器530的全局历史向左移一位。选择预测器520也可包括一个用于存储最近的预测器选择结果的历史的选择预测表(“CPT”)524。选择预测器520也可包括预测器选择单元526。该预测器选择单元526可根据CPT 524的预测结果产生控制信号Ctrl0和Ctrl1,以用于控制局部预测器500和全局预测器510。预测器选择单元526也可产生用于选择分支预测装置的输出PRED_V的预测器选择值(“PSEL”)。选择预测器520也可包括MUX电路528。
选择预测器520可使用一个来自全局历史寄存器530的值,来执行预测器选择过程。该预测器选择过程可以在局部预测器500和全局预测器510执行过程之前的一个周期中执行。例如,假设全局历史寄存器530的在先值可以是“0000000001”,并且假设下一个选择的最终分支预测值为“1”。这里,选择预测器520可在选择下一个预测值“1”之前,即全局历史寄存器530被更新之前,初始化选择预测器的操作,该操作在局部预测器500和全局预测器510执行操作的前一个周期中执行。通过利用在操作期间选择的下一个最终分支预测值“1”,选择CPT 524的一个入口,使得所选择的入口的MSB值输出。
图6A是由选择预测器520执行的预测器选择操作的示意图。
参照图6A,选择预测器520可使用移位寄存器522,以在更新之前将全局历史寄存器530的值“0000000001”向左移动一位。选择预测器520可选择相应于随后输入的下一个最终分支预测值“1”的入口,来输出所选择的入口的MSB值“1”,该入口位于由移位的9位寄存器值“000000001”索引的CPT 524的第二入口行。另外,预测器选择单元526可使用CPT 524输出的该MSB值“1”,产生用于分别控制预测器500和510的控制信号Ctrl0和Ctrl1以及PSEL。第一控制信号Ctrl0被输入给局部预测器500,用以使局部预测器500能或不能操作。第二控制信号Ctrl1被输入给全局预测器510,用以使全局预测器510能或不能操作。
在此示例性的实施例中,当CPT 524的输出为“1”时,可选择局部预测器500的输出LP_V作为整个分支预测器的输出PRED_V,并且当CPT 524的输出为“0”时,可选择全局预测器510的输出GP_V作为整个分支预测器的输出PRED_V。由于在上述情况下CPT 524的输出为“1”,可选择局部预测器500的输出LP_V作为整个分支预测装置的输出PRED_V。因此,预测器选择单元526可产生使局部预测器500可以使用而使全局预测器510不可使用的控制信号Ctrl0和Ctrl1。预测器选择单元526也可产生用于控制MUX电路528的PSEL,使得局部预测器500的输出LP_V可以成为整个分支预测器的输出PRED_V。
举例来说,由于图6A中所示的CPT 524可由一个9位的值索引,所以其可以具有29=512个索引行以及29×6的大小。这是由于全局历史寄存器可具有10位的值,并且CPT 524可由通过将全局历史寄存器向左移一位而获得的9位值索引。CPT 524可具有常规CPT的两倍宽和一半长,该常规CPT具有相同位的全局历史寄存器。
图6B是根据如图6A所示的来自选择预测器520的控制信号Ctrl0和Ctrl1以及预测器选择信号PSEL,各个分支预测器执行的操作的示意图。
在图6B中,预测器500以及510可如上所述在选择预测器520后的一个周期操作。换句话说,在由下一个最终分预测值“1”更新全局历史寄存器530后,即在将寄存器值更新为“0000000011”后,预测器500和510可根据选择预测器520的控制信号Ctrl0和Ctrl1进行操作。
参照图6B,局部预测器500可将由PC索引的LPSA 502入口的MSB值输出为局部分支预测器500的分支预测值LP_V。来自选择预测器520的第一控制信号Ctrl0可使局部预测器500可用或不可用。此外,在全局预测器510中,专有OR 540(其可具有从全局历史寄存器530和PC输出的10位值的输入)的输出可用于索引GPT 512入口。索引的GPT 512入口的MSB值可被作为全局预测器510的分支预测值GP_V输出。根据来自选择预测器520的第二控制信号Ctrl1可使全局预测器510可用或不可用。由于局部预测器500可被图6A所示的选择预测器520选择为当前分支指令的预测器,第二控制信号Ctrl1就使全局预测器510不可用,并且第一控制信号Ctrl0可使局部预测器500操作,以执行用于当前分支指令的分支预测操作。因此,由PC索引的第一入口的MSB值“1”可以被输出为局部分支预测值LP_V,并且可利用选择预测器520的选择信号,将局部分支预测值输出LP_V为MUX电路528的输出,即,输出为整个分支预测器的最终分支预测值PRED_V。
在执行完上述分支预测处理之后,可更新每个表格和寄存器。更新处理可以与常规的分支预测器的更新处理类似,因此就忽略相同的细节描述。也就是说,当预测要取用分支时(PRED_V=“1”),分支预测用的入口可以加“1”,而当预测不取用分支时(PRED_V=“0”),该入口减“1”。
图7是根据本发明的一个示例性实施例,由分支预测装置执行的分支预测处理的流程图。
如图7所示,在示例性的实施例中,选择预测器520可用于预测并选择预测器,该被选的预测器将用于在局部预测器500和全局预测器510执行操作之前一个周期的分支预测。这样,只有选择的预测器可用,而未选择的预测器就不可用,因此防止了分支预测时的不必要的功率消耗。
图8是常规分支预测器和根据本发明的一个示例性实施例的低功率消耗分支预测装置中,取决于分支指令和总指令的比率的功率消耗度量的示意图。
使用三星(Samsung)存储编译器测量功率消耗。在温度25℃和应用电压1.20伏的条件下,进行检测。另外,根据全局历史的平均值,假设局部预测器的预测百分比是75%,并且全局预测器的预测百分比是25%,获得该测量。
参照图8,应当意识到的是,与常规分支预测器的功率消耗800相比,示例性实施例的功率消耗802大约降低了5-19%。如图8所示,随着分支指令与总指令的比值的增加,示例性实施例节约的功率消耗缓慢地减少。这种情况的一个可能的解释就是,随着比值的增加,更新带来的功率消耗将占总功率消耗较大百分比。更新时,示例性实施例可与常规分支预测器有相似的功率消耗。
在大多数的情况下,分支指令与总指令的比值为从0到0.2。因此,与常规分支预测器的功率消耗相比,示例性实施例的功率消耗会减少大约11-19%。
如上所述,根据本发明的示例性实施例的分支预测装置能减少功率消耗,而不影响分支预测的准确性。也就是说,如上述试验结果所示,根据本发明示例性实施例的分支预测装置在大多数的情况下可以将功率消耗减少11-19%。
通过对本发明示例性实施例的描述,很明显的是,该实施例可以多种方式变化。例如,图5所示的块的功能可以用硬件和/或软件实现。硬件/软件实现可包括处理器和制成品。制成品可进一步包括存储介质和可执行的计算机程序。可执行的计算机程序可包括用于执行上述的操作或功能的指令。计算机可执行程序也可作为外部供给的传送信号提供。这样的变形并不背离本发明示例性实施例的范围和精神,并且所有的这些对于本领的技术人员来说显而易见的修改都将包括在所附的权利要求的范围内。
权利要求
1.一分支预测装置,包括第一分支预测器,其执行用于预测一分支指令的结果的第一分支预测算法;第二分支预测器,其执行用于预测所述分支指令的结果的第二分支预测算法;以及选择预测器,其产生用于控制所述第一分支预测器和所述第二分支预测器的操作的控制信号,并且用于选择并输出所述第一分支预测器或所述第二分支预测器的预测结果;其中,所述第一分支预测器和所述第二分支预测器分别根据该控制信号执行预测算法。
2.如权利要求1所述的分支预测装置,其特征在于,所述选择预测器在所述第一分支预测器和所述第二分支预测器之前的一个预定周期操作,以从所述第一分支预测器和所述第二分支预测器中选择单独的一个,来执行所述分支指令的分支预测。
3.如权利要求1所述的分支预测装置,其特征在于,所述第一分支预测器是一个局部预测器,其利用相应于所述分支指令的在先分支预测结果,为所述分支指令执行分支预测。
4.如权利要求1所述的分支预测装置,其特征在于,所述第一分支预测器包括局部历史表,其用于存储各个分支指令的分支的分支预测结果的历史;局部预测表,其由存储在所述局部历史表中的历史来索引;局部预测存储阵列,其由一程序计数器来索引,并由所述局部历史表和所述局部预测表来更新;以及控制逻辑,其用于根据来自所述选择预测器的第一控制信号,使所述第一分支预测器的操作可用或不可用。
5.如权利要求4所述的分支预测装置,其特征在于,所述局部历史表和所述局部预测表不在分支预测操作期间使用。
6.如权利要求1所述的分支预测装置,其特征在于,所述第二分支预测器是一个全局分支预测器,其用于利用分支预测装置的在先分支预测结果,为所述分支指令执行分支预测。
7.如权利要求1所述的分支预测装置,其特征在于,所述第二分支预测器包括全局预测表,其由所述分支预测装置的在先分支预测结果的预定的操作值和程序计数器来索引,并存储所述分支预测器的最近分支预测结果的历史;以及控制逻辑,其根据来自所述选择预测器的第二控制信号,使所述第二分支预测器的操作可用或不可用。
8.如权利要求1所述的分支预测装置,其特征在于,所述选择预测器包括移位寄存器,其用于将输入的所述分支预测装置的在先分支预测值向左移一位;选择预测表,其由所述移位寄存器的值索引,来输出预测器选择值;预测器选择单元,其根据所述选择预测表的所述预测器选择值,产生控制所述第一分支预测器和所述第二分支预测器的操作的所述控制信号,并产生选择所述第一和所述第二分支预测器之一的一个输出的选择信号;以及MUX电路,其与所述第一分支预测器和所述第二分支预测器相连,根据所述选择信号,输出所述第一分支预测器的一个分支预测值或所述第二分支预测器的一个分支预测值。
9.一种分支预测方法,其包括通过利用在先分支预测结果,从多个分支预测器中选择一个分支预测器;以及通过利用所选择的分支预测器,为一分支指令执行分支预测。
10.如权利要求9所述的分支预测方法,其特征在于其进一步包括使未被选择的另一个分支预测器不可用,因而所述另一个分支预测器不为所述分支指令执行分支预测。
11.一种分支预测装置,其被配置为依据权利要求9的方法进行分支预测操作。
12.一种分支预测装置的选择预测器,所述选择预测器包括移位寄存器,其用于将存储的分支预测装置的分支预测值向左移一位;选择预测表,其由所述移位寄存器的值索引,来输出预测器选择值;预测器选择单元,其用于根据所述选择预测表的所述预测器选择值,产生一个用于控制第一分支预测器和第二分支预测器的操作的控制信号,并产生用于选择所述第一和所述第二分支预测器之一的一个输出的选择信号;以及MUX电路,其与所述第一分支预测器和所述第二分支预测器相连,用于根据所述选择信号,输出所述第一分支预测器的一个分支预测值或所述第二分支预测器的一个分支预测值。
13.一种操作分支预测装置的选择预测器的方法,所述方法包括将存储的所述分支预测装置的分支预测值向左移一位;用所述移位寄存器的一个值索引选择一预测表,用以输出一预测器选择值;以及根据所述预测器选择值产生一个用于控制多个分支预测器的操作的控制信号。
14.一种具有用于使计算机预测程序的分支指令是否被取用的指令的计算机可读介质,所述指令使所述计算机执行下列功能通过利用在先分支预测结果,从多个分支预测器中选择一个分支预测器;以及通过利用所选择的分支预测器,为分支指令执行分支预测。
15.如权利要求14所述的计算机可读介质,其特征在于,所述指令使所述计算机执行下列功能使未被选择的另一个分支预测器不可用,用以使所述另一个分支预测器不为所述分支指令执行分支预测。
16.一种分支预测装置的选择预测器,所述选择预测器被配置为依据权利要求13的方法进行操作。
全文摘要
一分支预测装置包括执行第一分支预测算法的第一分支预测器和执行第二分支预测算法的第二分支预测器。选择预测器产生控制第一和第二分支预测器操作的控制信号。选择预测器也可选择并输出第一或第二分支预测器预测结果。第一和第二分支预测器可根据控制信号分别执行预测算法。选择预测器可包括将存储的分支预测装置的分支预测值向左移一位的移位寄存器。选择预测表可由移位寄存器的值索引以输出预测器选择值。预测器选择单元可产生该控制信号和选择第一和第二分支预测器之一的输出的选择信号。MUX电路可根据选择信号输出第一或第二分支预测器的分支预测值。计算机可读介质包括执行选择一分支预测器并为分支指令执行分支预测功能的指令。
文档编号G06F9/32GK1601463SQ20041001180
公开日2005年3月30日 申请日期2004年9月23日 优先权日2003年9月24日
发明者郑盛宇 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1