CN101901133B - 信息处理设备和分支预测方法 - Google Patents
信息处理设备和分支预测方法 Download PDFInfo
- Publication number
- CN101901133B CN101901133B CN2010101939930A CN201010193993A CN101901133B CN 101901133 B CN101901133 B CN 101901133B CN 2010101939930 A CN2010101939930 A CN 2010101939930A CN 201010193993 A CN201010193993 A CN 201010193993A CN 101901133 B CN101901133 B CN 101901133B
- Authority
- CN
- China
- Prior art keywords
- branch
- instruction
- corresponding informance
- control module
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 17
- 230000010365 information processing Effects 0.000 title abstract 2
- 230000004087 circulation Effects 0.000 claims description 43
- 230000004044 response Effects 0.000 claims description 13
- 230000007246 mechanism Effects 0.000 description 19
- 239000000872 buffer Substances 0.000 description 13
- 230000008569 process Effects 0.000 description 11
- 239000000284 extract Substances 0.000 description 10
- 230000009467 reduction Effects 0.000 description 8
- 238000003860 storage Methods 0.000 description 7
- 230000000052 comparative effect Effects 0.000 description 4
- 238000000605 extraction Methods 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
- G06F9/3844—Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3237—Power saving characterised by the action undertaken by disabling clock generation or distribution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3246—Power saving characterised by the action undertaken by software initiated power-off
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Advance Control (AREA)
Abstract
本发明公开了一种信息处理设备和分支预测方法,其中信息处理器包括:存储第一信息的第一记录单元,其中,所述第一信息表示最近分支指令的指令地址与分支目的地址之间的对应,最近分支指令是已完成了其计算并且已针对其跳转了分支的指令;存储第二信息的第二记录单元,其中,所述第二信息表示包括最近分支指令的过去分支指令中的每个的指令地址与分支目的地址之间的对应,过去分支指令是已完成了其计算并且已针对其跳转了分支的指令;以及控制单元,其基于第一信息或第二信息而进行分支预测,并且当指令序列进入循环时,停止向第二记录单元提供时钟,并基于第一信息而进行分支预测。
Description
技术领域
这里讨论的本发明的各个实施例涉及进行分支预测的信息处理设备。
背景技术
执行管线控制操作的处理器包括分支预测机构,其用于进行关于指令分支的预测,以有效读取指令序列,也就是说,从存储器到指令执行单元的指令提取。由于可在指令执行之前执行指令提取,因此分支预测机构是非常重要的,特别是在执行故障控制的处理器中。
在过去提出的指令执行处理装置中,分支历史的项目涉及指令地址,并且通过由要提取的指令的长度和指令字的最小单位长度定义的块的数目来形成所述项目。
[专利文献1]日本早期公开专利申请06-089173
[专利文献2]日本早期公开专利申请2004-38337
对于分支预测机构,期望尽可能多地降低在分支预测处理期间消耗的功率消耗。
本发明的目的是提供能够降低在分支预测处理期间的功率消耗的信息处理设备。
发明内容
信息处理设备包括:存储第一对应信息的第一分支历史记录单元,其中,所述第一对应信息是最近分支指令的指令地址与分支目的地址之间的对应信息,最近分支指令是已完成了其计算并且已针对其跳转了分支的指令;存储第二对应信息的第二分支历史记录单元,其中,所述第二对应信息是包括最近分支指令的多个过去分支指令中的每个的指令地址与分支目的地址之间的对应信息,多个过去分支指令是已完成了其计算并且已针对其跳转了分支的指令;以及分支预测控制单元,其基于对存储在第一分 支历史记录单元中的第一对应信息和存储在第二分支历史记录单元中的第二对应信息之一的搜索结果,利用从存储器提取的指令的指令地址来进行分支预测,并且当指令序列进入循环时,停止向第二分支历史记录单元提供时钟,并基于对第一分支历史记录单元中的第一对应信息的搜索结果而进行分支预测。
根据这里公开的信息处理设备,在分支预测处理中,当计算的指令序列进入循环时,可降低功率消耗。
附图说明
图1示出了表示信息处理设备的示例的图;
图2示出了说明在正常操作模式中的分支预测单元的处理的图;
图3示出了说明分支预测设备中从正常操作模式切换到降低功率消耗模式的处理的图;
图4示出了说明分支控制单元的处理的图;以及
图5示出了说明响应于分支预测的成功或失败的分支预测处理操作中的状态之间的转换的图。
具体实施方式
为了降低由处理器导致的功率消耗,提出了在不执行指令的时段期间,停止向在用于执行指令的给定时段中不使用的计算资源提供时钟。
本发明的发明人研究了如下分支预测机构:该分支预测机构通过搜索分支历史(在下文中,称为“分支历史表”)中的项目来预测提取的指令是否是分支指令。在这样的分支预测中,项目的数目越多,分支预测的准确度越高。为此,提出了使用随机存取存储器(RAM)作为能够存储大量数据的分支历史表。此外,停止提供被提供到类似大容量RAM的计算资源的时钟使得功率消耗显著降低。
然而,在分支预测中,每次提取指令都参考分支历史表。另外,在指令执行之前频繁地执行这样的指令提取。因此,假设几乎始终使用分支历史表。换句话说,由于不但更新数据而且参考数据都要参考分支历史表,因此停止提供被提供到分支历史表的时钟是困难的。
另一方面,作为在程序中频繁看到的结构,存在多个指令形成单个指令序列的结构,并且重复地执行该单个指令序列或其部分。在下文中,单个指令序列的重复执行或单个指令序列的部分的重复执行被称为“指令进入循环”或“指令进入到循环”,并且被重复执行的多个指令被称为“循环”。另一方面,当使得一旦进入了循环的指令序列的重复执行停止时,这被称为“从循环取出指令”。
本发明的发明人研究了以下指令提取控制单元。该指令提取控制单元能够直接提供来自多个指令缓冲器的指令并且能够执行指令。通过使用多个指令缓冲器重复地执行包括在循环中的多个指令来实现这样的处理。指令缓冲器检测包括在循环中的分支指令并且将分支指令存储在其中。在这样的指令提取控制单元中,指令缓冲器预先存储指令。因此,不必从存储器新提取指令。作为其结果,可直接执行存储在指令缓冲器中的指令。在这样的指令提取控制单元中,不必参考分支历史表。因此,考虑可在指令缓冲器在使用中的时段期间,实现停止提供被提供到分支历史表的时钟。
然而,根据如上所述的指令提取控制单元,如果包括在循环中的指令数目超过准备的指令缓冲器的数目,那么仅通过使用指令缓冲器不能实现循环。换句话说,当执行其长度能够被存储在准备的指令缓冲器中的循环时,可停止向分支历史表提供时钟。为此,限制了降低功率的机会。
根据在下文中公开的图1中示出的信息处理设备,可降低分支预测处理的执行中的功率消耗,而与指令序列的循环的长度无关。
图1示出了表示根据本发明实施例的信息处理设备的示例的图。
图1中的信息处理设备包括分支预测单元1、存储器2、指令提取控制单元3、指令解码单元4、指令发出控制单元5、指令完成控制单元6、计算单元7以及分支控制单元8。图1中的信息处理设备是基于例如超标量方法和故障控制方法而执行计算的计算机。为此,图1中的信息处理设备包括分支预测机构。该分支预测机构包括分支预测单元1、指令提取控制单元3以及分支控制单元8。
分支预测单元1执行分支预测处理。分支预测处理是进行如下预测的一类处理:由指令提取控制单元3从存储器2提取的指令是否致使跳转分支。分支预测单元1包括分支预测器11、控制器12、单循环项目13、分支历史表14以及计数器15。
分支预测器11通过使用单循环项目13或通过使用分支历史表14来 执行分支预测处理,并且将分支预测处理的结果传送到分支控制单元8。分支预测器11从指令提取控制单元3获得指令提取地址,通过使用获得的指令提取地址来搜索单循环项目13或分支历史表14,并且执行分支预测处理。分支预测器11通过使用从存储器2提取的指令的指令地址,基于对单循环项目13中的第一对应信息或对分支历史表14中的第二对应信息的搜索结果而进行分支预测。指令提取地址是由指令提取控制单元3从存储器2提取的指令的地址。
单循环项目13是存储单条第一对应信息的分支历史记录部分。第一对应信息表示已跳转了其分支的最近分支指令的指令地址与分支目的地址之间的对应。
单循环项目13仅存储表示分支指令的指令地址与分支目的地址之间的对应的单条对应信息。换句话说,仅单个项目位于单循环项目13中。
例如,触发电路用作单循环项目13。更具体地,其数目等于单个项目的比特数目的触发电路被准备作为单循环项目13。由于存储在单循环项目13中的项目的数目是单个,因此单循环项目13不包括诸如地址解码器等的外围电路。为此,与具有多个项目并且设置有外围电路的分支历史表14的功率消耗相比,单循环项目13的功率消耗较低。
分支历史表14是存储多条第二对应信息的分支历史记录部分。第二对应信息是表示每个分支指令的指令地址与分支目的地址之间的对应的对应信息,其中过去已跳转了所述每个分支指令的分支。
分支历史表14存储多条对应信息的历史,每条所述对应信息表示已跳转了其分支的分支指令的指令地址(在下文中,被称为“分支指令地址”)与分支目的地址之间的对应。换句话说,包括存储在单循环项目13中的第一对应信息的多个项目位于分支历史表14中。
例如,静态随机存取存储器(SRAM)用作分支历史表14。由于分支历史表14存储多个项目,因此其电路尺寸大于其项目是单个的单循环项目13的电路尺寸。另外,分支历史表14包括外围电路,诸如写电路、读电路、地址解码器等。尽管取决于项目的数目,但是分支历史表14的功率消耗高于单循环项目13的功率消耗。例如,分支历史表14的功率消耗比单循环项目13的功率消耗高几百倍到几万倍。
分支预测器11在正常操作模式期间搜索分支历史表14。正常操作模式是其中时钟被提供到分支历史表14的一类操作模式。分支预测器11从 控制器12接收表示操作模式已从降低功率消耗模式切换到正常操作模式的报告,并且执行用于正常操作模式的处理。
分支预测器11在降低功率消耗模式期间搜索单循环项目13。降低功率消耗模式是其中时钟没有被提供到分支历史表14的一类操作模式。因此,分支历史表14在降低功率消耗模式期间置于“停止状态”。分支预测器11从控制器12接收表示操作模式已从正常操作模式切换到降低功率消耗模式的报告,并且执行用于降低功率消耗模式的处理。
在正常操作模式期间,分支预测器11比较从指令提取控制单元3获得的指令提取地址和分支历史表14中的第二对应信息所包括的分支指令地址,并且确定是否存在其中两个地址相互一致的项目。
此后,当存在其中指令提取地址与包括在第二对应信息中的分支指令地址一致的项目时,分支预测器11进行如下预测:从指令提取地址读取的指令是分支指令并且针对该分支指令跳转分支。响应于跳转分支的预测,分支预测器11识别如下分支目的地址:该分支目的地址包括在其中上述两个地址相互一致的项目的第二对应信息中,并且与分支指令地址有关。换句话说,分支预测器11从分支历史表14读取与其对应的分支目的地址。
此后,分支预测器11将跳转分支的预测结果和识别的分支目的地址作为分支预测处理结果传送到分支控制单元8。另外,分支预测器11将给定的控制信号和识别的分支目的地址作为分支预测处理结果传送到指令提取控制单元3。指令提取控制单元3接收从分支预测器11传送的分支目的地址,并且使用接收的分支目的地址作为接下来要提取的指令地址。
当不存在其中指令提取地址与包括在第二对应信息中的分支指令地址一致的项目时,分支预测器11进行如下预测:从指令提取地址读取的指令不是分支指令,或者尽管从指令提取地址读取的指令是分支指令,但是针对该分支指令不跳转分支。分支预测器11将预测结果传送到分支控制单元8。
在降低功率消耗模式期间,分支预测器11比较指令提取地址和单循环项目13中的第一对应信息所包括的分支指令地址,并且确定两个地址是否相互一致。
此后,当指令提取地址与包括在第一对应信息中的分支指令地址一致 时,分支预测器11预测跳转分支。响应于跳转分支的预测,分支预测器11识别如下分支目的地址:该分支目的地址包括在第一对应信息中并且与分支指令地址有关。换句话说,分支预测器11从单循环项目13读取分支目的地址。
此后,分支预测器11将跳转分支的预测结果和识别的分支目的地址作为分支预测处理结果传送到分支控制单元8。另外,分支预测器11将给定的控制信号和识别的分支目的地址作为分支预测处理结果传送到指令提取控制单元3。指令提取控制单元3接收从分支预测器11传送的分支目的地址,并且使用接收的分支目的地址作为接下来提取的指令地址。
当指令提取地址与包括在第一对应信息中的分支指令地址不一致时,分支预测器11进行如下预测:从指令提取地址读取的指令不是分支指令,或者尽管从指令提取地址读取的指令是分支指令,但是针对该分支指令不跳转分支。分支预测器11将该预测作为分支预测处理结果传送到分支控制单元8。
控制器12在正常操作模式期间将时钟提供到分支历史表14和单循环项目13。提供的时钟由分支历史表14和单循环项目13用作操作时钟。
在降低功率消耗模式期间,控制器12向单循环项目13提供时钟,并且另一方面,控制器12停止向分支历史表14提供时钟。在降低功率消耗模式期间,时钟的提供使得单循环项目13操作并且仅重复使用第一对应信息。因此,不参考分支历史表14,并且不必将第二对应信息添加到分支历史表14。因此,即使停止向分支历史表14提供时钟,这也并不影响分支预测处理。
另外,控制器12包括计数器15,并且执行与由计数器15计数的值(在下文中,被称为“计数值”)的登记和更新相关联的处理。控制器12比较已由计算单元7完成了其计算的分支指令的指令地址和单循环项目13中的第一对应信息所包括的分支指令地址。这使得每当已完成了其计算的分支指令的指令地址与包括在第一对应信息中的分支指令地址一致时,控制器12增加计数器15的计数值。
此后,控制器12确定计数器15的计数值是否超过门限值。计数值的门限值是预先指定的,并且例如基于经验而确定。计数值的门限值的使用使得有可能确定分支预测机构的操作模式从正常操作模式切换到降低功率消耗模式的时机。
当计数器15的计数值超过门限值时,控制器12确定指令序列进入循环。当经过计算的指令序列的循环数目超过门限值时,控制器12停止向分支历史表14提供时钟。这致使分支预测机构的操作模式从正常操作模式切换到降低功率消耗模式。控制器12向分支预测器11报告操作模式已从正常操作模式切换到降低功率消耗模式。
注意,当指令序列的循环数目没有超过门限值时,不停止向分支历史表14提供时钟。换句话说,仅当指令序列的循环数目超过门限值时,根据向分支历史表14提供时钟来确定指令序列进入循环。
响应于操作模式从正常操作模式切换到降低功率消耗模式,分支预测器11在不搜索分支历史表14中的第二对应信息的情况下,基于单循环项目13中的第一对应信息的搜索结果而进行分支预测。控制器12和分支预测器11与进行分支预测的控制器的示例对应。
此外,在降低功率消耗模式期间,换句话说,当停止向分支历史表14提供时钟时,控制器12比较已经完成其计算的分支指令的指令地址和单循环项目13中的第一对应信息所包括的分支指令地址。当两地址相互不一致时,确定已从循环取出经过计算的指令序列。响应于已从循环取出指令序列的确定,控制器12向分支历史表14提供时钟。这使得分支预测机构的操作模式从降低功率消耗模式切换到正常操作模式。当已从循环取出指令序列时,控制器12更新单循环项目13中的第一对应信息,并且清除计数器15的计数值。控制器12向分支预测器11报告操作模式已从降低功率消耗模式切换到正常操作模式。
注意,存在由单个指令序列引起多个循环的情况。在以上情况下,例如,当从初始循环取出指令序列时,更新单循环项目13中的第一对应信息,并且清除计数器15的计数值。此后,当开始指令序列的下一循环时,参考单循环项目13中的第一对应信息,并且增加计数器15的计数值。
另外,控制器12从分支控制单元8接收表示分支预测已成功或失败的信息和是否已跳转了分支的确定结果。更具体地,控制器12从分支控制单元8接收其中已完成计算的指令的分支指令地址和已完成其计算的分支目的地址作为表示分支已成功的信息。控制器12将接收的分支指令地址关联到接收的分支目的地址以对它们进行配对,存储该对作为单循环项目13的第一对应信息并且作为分支历史表14的第二对应信息。此外,控制器12基于表示分支预测是成功还是失败的信息并且基于是否已经跳转了分支的确定结果,更新单循环项目13中的第一对应信息或分支历史 表14中的第二对应信息。
注意,还有可能配置控制器12,以使得控制器12确定当分支失败了时,指令序列没有进入循环。另外,还有可能配置控制器12,以确定当分支成功了时指令序列没有进入循环,并且单循环项目13中的第一对应信息所包括的分支目的地址与其中已完成计算的分支指令的分支目的地址不一致。当控制器12确定指令序列没有进入循环时,控制器12清除计数器15的计数值。
计数器15计算其中已完成计算的指令的指令地址与单循环项目13中的第一对应信息所包括的分支指令地址之间的一致的数目。在增加计数器15的计数值的时段期间,也就是说,在由计算单元7进行计算的指令序列进入循环的时段期间,不更新存储在单循环项目13中的第一对应信息。因此,存储在单循环项目13中的第一对应信息是单个,而与指令序列的循环的长度无关。
指令提取控制单元3从存储器2提取指令。存储器2是存储指令和需要用于执行指令的数据的存储器单元。要提取的指令是包括在由计算单元7计算的指令序列中的多个指令中的任何指令。
指令提取控制单元3包括指令缓冲器31、地址生成单元32以及选择器33。指令缓冲器31存储提取的指令。指令提取控制单元3将提取的指令的地址传送到分支预测单元1和分支控制单元8。地址生成单元32生成跟随当前指令提取地址的指令地址。选择器33从分支预测单元1的分支预测器11获得分支目的地址。当预测跳转分支时,选择器33选择从分支预测器11获得的分支目的地址。另一方面,当预测不跳转分支时,选择器33选择由地址生成单元32生成的指令地址。指令提取控制单元3使用由选择器33选择的地址作为接下来从存储器2提取的指令地址。
注意,如稍后将参考图4详细公开的那样,作为由计算单元7执行的分支指令计算的结果,分支控制单元8确定指令提取处的分支预测是否正确。当分支预测失败时,这是由于关于预测的指令序列的处理是不必要的,也就是说,预测是错误的。因此,必须从存储器2提取正确的指令序列并且再执行处理。
地址生成单元32生成跟随如下指令地址的指令地址作为在分支预测失败的情况下的指令重取地址:该指令地址紧邻其分支预测已失败并且已由计算单元7完成其计算的分支指令的指令地址。当不跳转分支的分支预 测失败并且计算结果表示跳转分支时,选择器33选择作为由指令计算单元7进行的计算的结果而获得的分支目的地址。另一方面,当跳转分支的分支预测失败并且计算结果表示不跳转分支时,选择器33选择由地址生成单元32生成的指令地址。
指令解码单元4从指令提取控制单元3的指令缓冲器31读取指令,并且对读取的指令进行解码。指令的解码结果包括一条表示指令是否是分支指令的信息。指令解码单元4将指令的解码结果和解码的指令传送到指令发出控制单元5。
指令发出控制单元5发出解码的指令并且将指令的解码结果传送到计算单元7。另外,指令发出控制单元5将识别针对计算单元7而发出的指令的信息传送到指令完成控制单元6。另外,当解码的指令是分支指令时,指令发出控制单元5将激活分支控制单元8的控制信号传送到分支控制单元8。分支控制单元8接收控制信号并开始其操作。
指令发出控制单元5控制发到计算单元7的指令的上限数目。每当指令被发到计算单元7时,指令发出控制单元5将发到计算单元7的指令的数目加一(+1)。当发到计算单元7的指令的数目超过上限数目时,指令发出控制单元5不向计算单元7发出指令。因此,指令发出控制单元5能够控制发到计算单元7的指令的数目,以使得发出的指令的数目不超过上限数目。
当从以下公开的指令完成控制单元6接收到表示已完成了指令的执行的报告时,指令发出控制单元5将发到计算单元7的指令的数目减一(-1)。作为其结果,计算单元7进入能够接收从指令发出控制单元5发出的指令的状态。
当从计算单元7接收到计算完成报告时,指令完成控制单元6基于用于识别已从指令发出控制单元5传送的指令的信息,确定是否已完成了指令的计算。响应于指令执行的完成,指令完成控制单元6向指令发出控制单元5报告已完成了指令的执行。
计算单元7对包括多个指令的指令序列执行给定计算。例如,计算单元7接收由指令发出控制单元5发出的指令,并且从存储器2读取需要用于执行接收的指令的计算的数据。计算单元7基于接收的指令和从存储器2读取的数据而执行给定计算。当由指令解码单元4执行的解码的结果表示指令是分支指令时,计算单元7计算该分支指令的分支条件和分支目的 地址,并且将计算结果传送到分支控制单元8。
分支控制单元8从计算单元7接收计算结果,并且将其中已完成计算的指令的分支指令地址和已完成其计算的分支目的地址传送到分支预测单元1的控制器12。另外,分支控制单元8从计算单元7接收计算结果,并且基于计算结果和从分支预测单元1接收的分支预测处理的结果,确定由分支预测单元1进行的分支预测处理的结果是否正确,也就是说,分支预测是成功的还是失败的。分支控制单元8将表示分支预测成功或失败的信息传送到分支预测单元1的控制器12。
此外,当分支预测失败时,分支控制单元8将重取指令的请求(在下文中,被称为“指令重取请求”)传送到指令提取控制单元3。
通过CPU和在CPU上执行的程序来实现图1中的信息处理设备的功能和包括在信息处理设备中的各个处理块的功能。程序能够被存储在例如半导体存储器、硬盘、CD-ROM(致密盘只读存储器)、DVD(数字多功能盘)等的计算机可读记录介质中,并且通过被记录在这些记录介质上来提供,或者程序通过使用网络经由通信接口从其它信息处理设备传送/接收来提供,所述其它信息处理设备设置有这些存储程序的记录介质。
图2示出了用于说明在正常操作模式中由图1中示出的分支预测单元1执行的处理的图。
分支预测单元1的控制器12从分支控制单元8接收已由计算单元7完成其计算的分支指令的指令地址a21(在下文中,被称为“分支指令地址a21”)和分支目的地址a22,并且将接收的分支指令地址a21和接收的分支目的地址a22作为第二对应信息登记在分支历史表14上(#21)。每当控制器12从分支控制单元8接收到分支指令地址a21和分支目的地址a22时,控制器12将接收的分支指令地址a21和接收的分支目的地址a22作为新的第二对应信息添加到分支历史表14。注意,如稍后将参考图4公开的那样,分支预测单元1的控制器12在给定条件下更新分支历史表14中的第二对应信息。
此外,分支预测单元1的分支预测器11从指令提取控制单元3获得指令提取地址a25,并且通过使用获得的指令提取地址a25作为关键字来搜索分支历史表14(#22)。
当指令提取地址a25与分支历史表14中的第二对应信息所包括的分支指令地址一致时,分支预测器11进行如下预测:从指令提取地址a25 读取的指令是分支指令,并且针对该分支指令跳转分支。分支预测器11获得与如下分支指令地址有关的分支目的地址:该分支指令地址与第二对应信息中的指令提取地址a25一致,并且将获得的分支目的地址作为预测的分支目的地址a23传送到指令提取控制单元3(#23)。
当分支预测器11预测跳转分支时,选择器33从分支预测单元1接收预测的分支目的地址a23,并且选择预测的分支目的地址a23作为下一指令提取地址。指令提取控制单元3基于由选择器33选择的指令提取地址而从存储器2提取指令,并且将提取的指令存储在指令缓冲器31中(#24)。
作为搜索分支历史表14的结果,当指令提取地址a25与包括在第二对应信息中的分支指令地址不一致时,分支预测器11进行如下预测:从指令提取地址a25读取的指令不是分支指令,或者尽管从指令提取地址a25读取的指令是分支指令,但是针对该分支指令不跳转分支。分支预测器11指示指令提取控制单元3的地址生成单元32,使得跟随当前指令提取地址a25的地址用作下一指令提取地址(#25)。从分支预测器11输出的预测结果用于选择指令提取地址。
已从分支预测器11接收到指示的地址生成单元32生成跟随当前指令提取地址a25的地址a24,并且将它输出到选择器33。
当分支预测器11预测不跳转分支时,选择器33选择由地址生成单元32生成的地址a24作为下一指令提取地址。
图3示出了用于说明图1中示出的分支预测单元1中的从正常操作模式到降低功率消耗模式的切换处理的图。
图1中的分支预测单元1的控制器12包括比较器16、更新信号生成器17以及比较器18。另外,分支预测单元1的分支预测器11包括选择器19。
分支预测单元1的控制器12从分支控制单元8接收已由计算单元7完成其计算的分支指令地址a31和已由计算单元7完成其计算的分支目的地址a32,并且将接收的分支指令地址a31和接收的目的地址a32作为第一对应信息登记在单循环项目13上。注意,分支指令地址a31和分支目的地址a32是与处理#21中的分支指令地址a21和分支目的地址a22相同的地址。
分支预测单元1的比较器18比较计数器15的计数值和门限值,并且确定计数值是否超过门限值。当比较器18确定计数值超过门限值时,控 制器12确定由计算单元7计算的指令序列进入循环。
当由计算单元7计算的指令序列进入循环时,控制器12停止向分支历史表14提供时钟(#32)。这使得分支预测机构的操作模式从正常操作模式切换到降低功率消耗模式。响应于分支预测机构的操作模式切换到降低功率消耗模式,控制器12指示选择器19选择作为在单循环项目13上执行的搜索的结果而输出的选择分支目的地址a33(#33)。
作为通过比较器18进行的比较的结果,当计数值没有超过门限值时,控制器12确定由计算单元7计算的指令序列没有进入循环并且继续正常操作模式。也就是说,控制器12指示选择器19选择作为在分支历史表14上执行的搜索的结果而输出的分支目的地址(#33)。
选择器19选择由控制器12指示的分支目的地址。分支预测器11将所选的分支目的地址作为预测的分支目的地址a34传送到指令提取控制单元3(#39)。
另外,当控制器12从分支控制单元8接收到已完成其计算的分支指令地址a31时,比较器16比较接收的分支指令地址a31和单循环项目13中的第一对应信息的分支指令地址阿尔法1(α1)(#34)。
当接收的分支指令地址a31与第一对应信息的分支指令地址α1一致时,比较器16输出比较结果一致信号S31。比较结果一致信号S31是表示分支指令地址a31与分支指令地址α1一致的信号。控制器12基于比较结果一致信号S31而增加计数器15的计数值(#35)。
当分支指令地址a31与分支指令地址α1不一致时,更新信号生成器17反转比较结果一致信号S31以生成更新信号S32。更新信号S32是指示更新单循环项目13中的第一对应信息和指示清除计数器15的信号。
控制器12基于由更新信号生成器17生成的更新信号S32,通过使用分支指令地址a31和分支目的地址a32来更新单循环项目13中的第一对应信息(#36)。另外,控制器12基于更新信号S32而清除计数器15(#37)。
分支预测单元1的分支预测器11响应于分支预测机构的操作模式切换到降低功率消耗模式,执行以下公开的分支预测处理。
分支预测器11从指令提取控制单元3获得指令提取地址,并且通过使用获得的指令提取地址作为关键字来搜索单循环项目13。当指令提取地址与由存储在单循环项目13中的第一对应信息表示的分支指令地址α1一致时,分支预测器11进行如下预测:从指令提取地址α1读取的指令是 分支指令,并且针对该分支指令跳转分支。分支预测器11将对应于一致的分支指令地址α1的分支目的地址贝它1(β1)作为预测的分支目的地址a33输出到选择器19(#38)。
如在上文中所公开的那样,选择器19在降低功率消耗模式期间,根据由控制器12做出的指示来选择分支目的地址a33。然后,分支预测器11将所选的分支目的地址作为预测的分支目的地址a34传送到指令提取控制单元3(#39)。
当由计算单元7计算的指令序列进入图3中示出的处理中的循环时,选择通过使用单循环项目13预测的分支目的地址。另一方面,当指令序列没有进入循环时,选择通过使用分支历史表14预测的分支目的地址。利用在上文中公开的处理,所选的分支目的地址用于通过指令提取控制单元3进行的指令提取。这实现了在指令序列的循环执行期间分支预测机构的功率消耗的降低。
图4示出了用于说明分支控制单元8的处理的图。
当从指令提取地址a44读取的指令是分支指令时,计算单元7计算该分支指令的分支条件和分支目的地址,并且将计算结果传送到分支控制单元8。例如,对于由指令发出控制单元5发出的分支指令,当允许跳转分支的条件是寄存器A的值等于寄存器B的值时,包括在计算单元7中的比较器71比较寄存器A的值和寄存器B的值(#41),并且将比较结果传送到分支控制单元8。
分支控制单元8比较从计算单元7接收的计算结果和允许跳转分支的条件,并且确定两者是否相互一致。当分支控制单元8从计算单元7接收的计算结果与允许跳转分支的条件一致时,分支控制单元8确定针对分支指令跳转分支(#42)。
另一方面,当分支控制单元8从计算单元7接收的计算结果与允许跳转分支的条件不一致时,分支控制单元8确定针对分支指令不跳转分支。更具体地,分支控制单元8将针对分支指令跳转分支的确定结果输入到AND电路84(#43)。注意,在图4示出的示例中,AND电路84是反转信号所输入的逻辑电路。
分支控制单元8将针对分支指令是否跳转分支的确定结果传送到分支预测单元1的控制器12。更具体地,分支控制单元8将针对分支指令跳转分支的确定结果传送到分支预测单元1,以输入到分支预测单元1的 AND电路121(#44)。
另外,分支控制单元8从分支预测单元1接收分支预测处理的结果。更具体地,分支控制单元8从分支预测单元1的分支预测器11接收是否跳转分支的预测和由分支预测器11预测的分支目的地址a42。分支控制单元8通过使用图4中示出的比较器81、AND电路82、OR电路83、AND电路84以及反相器电路85,确定针对分支指令是否跳转分支。基于从计算单元7接收的计算结果和从分支预测单元1接收的分支预测处理的结果,执行该确定处理。如在下文中公开的以下三种(3)情况(即,第一情况到第三情况)所公开的那样来执行该确定处理。
第一情况是如下情况:分支预测单元1预测跳转分支(#45),分支控制单元8确定针对分支指令跳转分支(#42),并且通过比较器81获得已经完成其计算的分支目的地址a41与由分支预测单元1预测的分支目的地址a42之间的一致(#46)。在第一情况下,分支控制单元8确定分支预测成功(#47)。更具体地,将如下结果输入到AND电路82:由分支预测单元1做出的跳转分支的预测结果、由分支控制单元8做出的针对指令跳转分支的确定结果以及由比较器81做出的确定结果。响应于所输入的这些结果,OR电路83输出表示分支预测成功的信息。分支控制单元8基于由OR电路83输出的信息而确定分支预测成功。
第二情况是如下情况:关于分支预测单元1做出的针对分支指令不跳转分支的预测(#48),分支控制单元8确定针对分支指令不跳转分支(#43)。在第二情况下,分支控制单元8确定分支预测成功(#47)。更具体地,将如下信号输入到AND电路84:由分支预测单元1做出的跳转分支的预测结果的反转信号(换句话说,不跳转分支的预测)、和由分支控制单元8做出的针对指令跳转分支的确定结果的反转信号(换句话说,不跳转分支的确定)。响应于所输入的这些信号,OR电路83输出表示分支预测成功的信息。分支控制单元8基于由OR电路83输出的信息而确定分支预测成功。
第三情况是不归入第一情况和第二情况的情况。在第三情况下,反相器电路85反转OR电路83的输出,并且输出表示分支预测失败的信息。响应于此信息,分支控制单元8基于由反相器电路85输出的信息而确定分支预测失败(#49)。
通过分支控制单元8进行的分支预测的成功意味着先前执行的指令序列是正确的。因此,指令提取控制单元3不改变而继续它的处理。另一 方面,通过分支控制单元8进行的分支预测的失败意味着先前执行的指令序列是错误的。因此,在失败的情况下,分支控制单元8将指令重取请求传送到指令提取控制单元3(#410)。当从分支控制单元8接收到指令重取请求时,指令提取控制单元3取消所有先前提取的指令的执行,并且从存储器2重取正确指令地址的指令。
当通过分支控制单元8进行的分支预测失败(#49)并且跳转分支(#42)时,包括在指令提取控制单元3中的选择器33选择作为通过计算单元7进行的计算的结果而获得的分支目的地址a41作为用于指令重取的地址a43(#411)。
当通过分支控制单元8进行的分支预测失败(#49)并且不跳转分支时,选择器33选择与已完成其计算的分支指令的指令地址a44紧邻的指令地址作为用于指令重取的地址a43(#411)。更具体地,包括在指令提取控制单元3中的地址生成单元32通过例如将给定值α加到已完成其计算的分支指令的指令地址a44,来生成与已完成其计算的分支指令的指令地址a44紧邻的指令地址。然后,选择器33选择由地址生成单元32生成的指令地址作为用于指令重取的地址a43(#411)。
接下来,将公开通过分支预测单元1进行的将对应信息登记在分支历史表14上或在单循环项目13上或者对应信息的更新。
包括在分支预测单元1中的控制器12包括AND电路121、AND电路122以及比较器123。分支预测单元1通过使用AND电路121、AND电路122以及比较器123来将对应信息登记在分支历史表14上或单循环项目13上,或者更新登记的对应信息。
当通过分支控制单元8进行的分支预测失败(#49)并且跳转分支(#42)时,将表示分支预测失败的确定结果和表示跳转分支的确定结果输入到AND电路121(#412和#44)。AND电路121输出分支历史表登记信号S41。分支历史表登记信号S41是控制信号,通过其指示将对应信息登记在分支历史表14上。分支预测单元1的控制器12基于分支历史表登记信号S41,将如下对应信息登记在分支历史表14上:该对应信息包括被确定为引起分支的指令的分支目的地址。
当通过分支控制单元8进行的分支预测失败并且不跳转分支时,分支预测单元1的控制器12确定是否满足用于更新或删除分支历史表14中的项目的给定条件。给定条件包括例如关于项目的分支预测中的失败的次数 等于或大于预先确定的次数。当满足用于更新或删除分支历史表14的项目的给定条件时,控制器12更新或删除分支历史表14中的项目。
另外,当分支控制单元8确定跳转分支(#42)时,将确定结果输入到AND电路122(#44)。比较器123比较已完成其计算的分支指令的指令地址a44和由单循环项目13中的第一对应信息表示的分支指令地址(#413)。比较器123将表示指令提取地址a44与由第一对应信息表示的分支指令地址不一致的信息输出到AND电路122。AND电路122基于由分支控制单元8做出的跳转分支的确定结果和由比较器123输出的结果,输出单循环项目更新信号S42。单循环项目更新信号S42是控制信号,通过其指示更新单循环项目13中的第一对应信息。控制器12基于单循环项目更新信号S42,通过使用已完成其计算的分支指令的指令地址和对应于该指令地址的分支目的地址,更新单循环项目13中的第一对应信息。
图5示出了用于说明响应于分支预测的成功或失败的分支预测处理操作中的状态之间转换的图。
假设计算单元7完成了分支指令的计算(#51)。当分支控制单元8确定分支预测成功(#52)并且跳转分支(#53)时,分支预测单元1的控制器12比较已针对其跳转分支的分支指令地址和登记在单循环项目13上的分支指令地址,并且确定两者是否相互一致(#54)。
当已针对其跳转分支的分支指令地址与登记在单循环项目13上的分支指令地址不一致时(#54否),控制器12通过使用已针对其跳转分支的分支指令地址来更新单循环项目13中的第一对应信息,并且清除计数器15(#515)。这是因为已针对其跳转分支的分支指令地址与登记在单循环项目13上的分支指令地址之间的不一致意味着:由计算单元7计算的指令序列已从由登记在单循环项目13上的分支指令产生的循环被取出,并且已进入由例如新分支指令产生的循环。
当已针对其跳转分支的分支指令地址与登记在单循环项目13上的分支指令地址一致时(#54是),控制器12增加计数器15的计数值(#55)。
分支预测单元1的控制器12确定计数器15的计数值是否超过门限值(#56)。当计数器15的计数值没有超过门限值时(#56否),控制器12保持当前操作模式(#510)。当计数器15的计数值超过门限值时(#56是),控制器12确定分支预测机构的操作模式是否置于正常操作模式(#57)。当分支预测机构的操作模式不是正常操作模式时(#57否),换句话说, 置于降低功率消耗模式时,控制器12保持当前操作模式(#510)。
当分支预测机构的操作模式是正常操作模式时(#57是),控制器12停止提供被提供到分支历史表14的时钟(#58)。这使得分支预测机构的操作模式从正常操作模式切换到降低功率消耗模式,并且分支预测单元1的分支预测器11通过使用单循环项目13而不通过使用分支历史表14来执行分支预测处理(#59)。
当分支控制单元8确定分支预测成功(#52)并且不跳转分支(#511)时,控制器12保持当前操作模式(#512)。
当分支控制单元8确定分支预测失败时,如以下将公开的那样,分支预测单元1的控制器12清除计数器15。这是因为分支预测失败意味着:已从由登记在单循环项目13上的分支指令产生的循环取出由计算单元7计算的指令序列,并且指令序列已进入由例如新分支指令产生的循环。
更具体地,当分支控制单元8确定分支预测失败(#513)并且跳转分支(#514)时,控制器12通过使用已针对其跳转分支的分支指令地址来更新单循环项目13中的第一对应信息,清除计数器15(#515)并且执行如以下将公开的处理(#516)。当分支控制单元8确定分支预测失败(#513)并且不跳转分支(#517)时,控制器12清除计数器15(#518)。
此后,控制器12确定当前操作模式是否置于正常操作模式(#516)。在当前操作模式置于正常操作模式时(#516是),控制器12保持当前操作模式(#510)。在当前操作模式没有置于正常操作模式(#516否)时,换句话说,置于降低功率消耗模式时,控制器12向分支历史表14提供已停止提供的时钟(#519)。这使得分支预测机构的操作模式从降低功率消耗模式切换到正常操作模式,并且分支预测单元1的分支预测器11通过使用分支历史表14来执行分支预测处理(#520)。
Claims (6)
1.一种信息处理设备,包括:
存储第一对应信息的第一分支历史记录单元,其中,所述第一对应信息是最近分支指令的指令地址与分支目的地址之间的对应信息,所述最近分支指令是已完成了其计算并且已针对其跳转了分支的指令;
存储第二对应信息的第二分支历史记录单元,其中,所述第二对应信息是包括所述最近分支指令的多个过去分支指令中的每个的指令地址与分支目的地址之间的对应信息,所述多个过去分支指令是已完成了其计算并且已针对其跳转了分支的指令;以及
分支预测控制单元,其基于对存储在所述第一分支历史记录单元中的所述第一对应信息和存储在所述第二分支历史记录单元中的所述第二对应信息之一的搜索结果,利用从存储器提取的指令的指令地址来进行分支预测,并且当指令序列进入循环时,停止向所述第二分支历史记录单元提供时钟,并基于对所述第一分支历史记录单元中的所述第一对应信息的搜索结果而进行分支预测。
2.根据权利要求1所述的信息处理设备,其中
所述分支预测控制单元计算已完成其计算的所述分支指令的指令地址与包括在所述第一对应信息中的指令地址之间的一致的数目,并且当计数值超过门限值时,所述分支预测控制单元确定计算执行中的所述指令序列进入所述循环。
3.根据权利要求1所述的信息处理设备,其中
当停止向所述第二分支历史记录单元提供所述时钟时,所述分支预测控制单元确定计算执行中的所述指令序列是否进入所述循环,并且响应于计算执行中的所述指令序列没有进入所述循环,将已停止提供的所述时钟提供到所述第二分支历史记录单元。
4.根据权利要求3所述的信息处理设备,其中
当所述分支预测失败时,所述分支预测控制单元确定计算执行中的所述指令序列没有进入所述循环。
5.根据权利要求3所述的信息处理设备,其中
当所述分支预测成功并且包括在所述第一对应信息中的分支目的地址与已完成其计算的所述分支指令的分支目的地址不一致时,所述分支预测控制单元确定计算执行中的所述指令序列没有进入所述循环。
6.一种分支预测方法,包括:
将第一对应信息存储在第一分支历史记录单元中,其中,所述第一对应信息是最近分支指令的指令地址与分支目的地址之间的对应信息,所述最近分支指令是已完成了其计算并且已针对其跳转了分支的指令;
将第二对应信息存储在第二分支历史记录单元中,其中,所述第二对应信息是包括所述最近分支指令的多个过去分支指令中的每个的指令地址与分支目的地址之间的对应信息,所述多个过去分支指令是已完成了其计算并且已针对其跳转了分支的指令;
通过分支预测控制单元确定计算执行中的指令序列是否进入循环,所述分支预测控制单元基于对所述第一分支历史记录单元中的所述第一对应信息和所述第二分支历史记录单元中的所述第二对应信息之一的搜索结果,利用从存储器提取的指令的指令地址来进行分支预测;以及
当计算执行中的指令序列进入循环时,所述分支预测控制单元停止向所述第二分支历史记录单元提供时钟,并基于对所述第一分支历史记录单元中的所述第一对应信息的搜索结果而进行分支预测。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009132297A JP5423156B2 (ja) | 2009-06-01 | 2009-06-01 | 情報処理装置及び分岐予測方法 |
JP2009-132297 | 2009-06-01 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101901133A CN101901133A (zh) | 2010-12-01 |
CN101901133B true CN101901133B (zh) | 2013-05-22 |
Family
ID=42829478
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010101939930A Expired - Fee Related CN101901133B (zh) | 2009-06-01 | 2010-05-28 | 信息处理设备和分支预测方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8595474B2 (zh) |
EP (1) | EP2261797B1 (zh) |
JP (1) | JP5423156B2 (zh) |
KR (1) | KR101126001B1 (zh) |
CN (1) | CN101901133B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120079303A1 (en) * | 2010-09-24 | 2012-03-29 | Madduri Venkateswara R | Method and apparatus for reducing power consumption in a processor by powering down an instruction fetch unit |
KR20120036210A (ko) * | 2010-10-07 | 2012-04-17 | 삼성전자주식회사 | 파이프라인 제어 위험 감소를 위한 처리장치 및 컴파일 장치와, 파이프라인 제어 위험 감소를 위한 동적 조건 분기 처리 방법 |
US9268569B2 (en) * | 2012-02-24 | 2016-02-23 | Apple Inc. | Branch misprediction behavior suppression on zero predicate branch mispredict |
GB2539041B (en) * | 2015-06-05 | 2019-10-02 | Advanced Risc Mach Ltd | Mode switching in dependence upon a number of active threads |
JP2018005488A (ja) * | 2016-06-30 | 2018-01-11 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
US10395033B2 (en) * | 2016-09-30 | 2019-08-27 | Intel Corporation | System, apparatus and method for performing on-demand binary analysis for detecting code reuse attacks |
US20180349144A1 (en) * | 2017-06-06 | 2018-12-06 | Intel Corporation | Method and apparatus for branch prediction utilizing primary and secondary branch predictors |
US20190004806A1 (en) * | 2017-06-30 | 2019-01-03 | Qualcomm Incorporated | Branch prediction for fixed direction branch instructions |
CN114116010B (zh) * | 2022-01-27 | 2022-05-03 | 广东省新一代通信与网络创新研究院 | 一种针对处理器循环体的体系结构优化方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5175827A (en) * | 1987-01-22 | 1992-12-29 | Nec Corporation | Branch history table write control system to prevent looping branch instructions from writing more than once into a branch history table |
CN101002169A (zh) * | 2004-05-19 | 2007-07-18 | Arc国际(英国)公司 | 微处理器架构 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US82843A (en) * | 1868-10-06 | Charles f | ||
JP3335379B2 (ja) | 1992-09-09 | 2002-10-15 | 富士通株式会社 | ブランチ・ヒストリーを持つ命令実行処理装置 |
GB2285154B (en) * | 1993-12-24 | 1998-04-01 | Advanced Risc Mach Ltd | Branch cache |
US5937203A (en) * | 1996-09-16 | 1999-08-10 | Advanced Micro Devices, Inc. | Port for fine tuning a central processing unit |
US6085315A (en) * | 1997-09-12 | 2000-07-04 | Siemens Aktiengesellschaft | Data processing device with loop pipeline |
US6757817B1 (en) * | 2000-05-19 | 2004-06-29 | Intel Corporation | Apparatus having a cache and a loop buffer |
JP3804941B2 (ja) * | 2002-06-28 | 2006-08-02 | 富士通株式会社 | 命令フェッチ制御装置 |
JP3798998B2 (ja) * | 2002-06-28 | 2006-07-19 | 富士通株式会社 | 分岐予測装置および分岐予測方法 |
US7159103B2 (en) * | 2003-03-24 | 2007-01-02 | Infineon Technologies Ag | Zero-overhead loop operation in microprocessor having instruction buffer |
JP3893463B2 (ja) * | 2003-04-23 | 2007-03-14 | 国立大学法人九州工業大学 | キャッシュメモリ、及びキャッシュメモリの電力削減方法 |
KR100528479B1 (ko) * | 2003-09-24 | 2005-11-15 | 삼성전자주식회사 | 전력 소모를 감소시키기 위한 분기 예측기 및 구현방법 |
TWI285841B (en) | 2004-07-16 | 2007-08-21 | Samsung Electronics Co Ltd | Branch target buffer, branch target buffer memory array, branch prediction unit and processor with a function of branch instruction predictions |
KR100591769B1 (ko) * | 2004-07-16 | 2006-06-26 | 삼성전자주식회사 | 분기 예측 정보를 가지는 분기 타겟 버퍼 |
US20060190710A1 (en) * | 2005-02-24 | 2006-08-24 | Bohuslav Rychlik | Suppressing update of a branch history register by loop-ending branches |
US7475231B2 (en) * | 2005-11-14 | 2009-01-06 | Texas Instruments Incorporated | Loop detection and capture in the instruction queue |
US7873820B2 (en) * | 2005-11-15 | 2011-01-18 | Mips Technologies, Inc. | Processor utilizing a loop buffer to reduce power consumption |
US7681021B2 (en) * | 2006-09-28 | 2010-03-16 | Freescale Semiconductor, Inc. | Dynamic branch prediction using a wake value to enable low power mode for a predicted number of instruction fetches between a branch and a subsequent branch |
JP2008090339A (ja) | 2006-09-29 | 2008-04-17 | Fujitsu Ltd | サブシステムの電源制御回路及びサブシステム |
JP5043560B2 (ja) | 2007-08-24 | 2012-10-10 | パナソニック株式会社 | プログラム実行制御装置 |
-
2009
- 2009-06-01 JP JP2009132297A patent/JP5423156B2/ja not_active Expired - Fee Related
-
2010
- 2010-05-13 EP EP10162770A patent/EP2261797B1/en not_active Not-in-force
- 2010-05-14 US US12/780,131 patent/US8595474B2/en not_active Expired - Fee Related
- 2010-05-27 KR KR1020100049822A patent/KR101126001B1/ko not_active IP Right Cessation
- 2010-05-28 CN CN2010101939930A patent/CN101901133B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5175827A (en) * | 1987-01-22 | 1992-12-29 | Nec Corporation | Branch history table write control system to prevent looping branch instructions from writing more than once into a branch history table |
CN101002169A (zh) * | 2004-05-19 | 2007-07-18 | Arc国际(英国)公司 | 微处理器架构 |
Also Published As
Publication number | Publication date |
---|---|
KR20100129692A (ko) | 2010-12-09 |
US20100306516A1 (en) | 2010-12-02 |
KR101126001B1 (ko) | 2012-03-20 |
EP2261797A1 (en) | 2010-12-15 |
EP2261797B1 (en) | 2012-07-04 |
US8595474B2 (en) | 2013-11-26 |
JP5423156B2 (ja) | 2014-02-19 |
JP2010277529A (ja) | 2010-12-09 |
CN101901133A (zh) | 2010-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101901133B (zh) | 信息处理设备和分支预测方法 | |
CN102934075B (zh) | 用于使用预先通知技术改变程序的顺序流程的方法和设备 | |
CN102483696B (zh) | 用以预测有条件非分支指令的不执行的方法和设备 | |
KR880002660B1 (ko) | 중앙 처리장치 | |
CN104156197B (zh) | 微处理器以及微处理器操作方法 | |
CN102792265B (zh) | 基于机器状态的指令破解 | |
CN104471529B (zh) | 用以扩展软件分支目标提示的方法及设备 | |
US8943298B2 (en) | Meta predictor restoration upon detecting misprediction | |
CN103299273A (zh) | 数据处理装置的追踪 | |
CN102662640B (zh) | 双重分支目标缓冲器和分支目标处理系统及处理方法 | |
CN102360282A (zh) | 快速处置分支指令预测错误的流水线处理器装置 | |
JP6205966B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
US10423420B2 (en) | Stream based branch prediction index accelerator for multiple stream exits | |
CN109643237A (zh) | 分支目标缓冲器压缩 | |
CN101390046A (zh) | 用于修复链栈的方法和设备 | |
US9086888B2 (en) | Using a plurality of tables for improving performance in predicting branches in processor instructions | |
CN104854556A (zh) | 建立用于子例程返回的分支目标指令高速缓冲存储器(btic)条目以减少执行管线泡,以及相关系统、方法和计算机可读媒体 | |
JP3725547B2 (ja) | 限定ラン分岐予測 | |
US7603545B2 (en) | Instruction control method and processor to process instructions by out-of-order processing using delay instructions for branching | |
US20160239309A1 (en) | Branch target buffer column predictor | |
CN102163139A (zh) | 微处理器融合载入算术/逻辑运算及跳跃宏指令 | |
US10430195B2 (en) | Stream based branch prediction index accelerator with power prediction | |
CN113918225A (zh) | 指令预测方法、指令数据处理装置、处理器以及存储介质 | |
CN105980980B (zh) | 用于运行指令的方法和处理器、用于对指令进行编码的方法和装置以及用于其的记录介质 | |
US20110083030A1 (en) | Cache memory control device, cache memory device, processor, and controlling method for storage device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130522 Termination date: 20150528 |
|
EXPY | Termination of patent right or utility model |