CN1153133C - 采用小规模硬件作高命中率分支预测的信息处理装置 - Google Patents
采用小规模硬件作高命中率分支预测的信息处理装置 Download PDFInfo
- Publication number
- CN1153133C CN1153133C CNB971085900A CN97108590A CN1153133C CN 1153133 C CN1153133 C CN 1153133C CN B971085900 A CNB971085900 A CN B971085900A CN 97108590 A CN97108590 A CN 97108590A CN 1153133 C CN1153133 C CN 1153133C
- Authority
- CN
- China
- Prior art keywords
- branch
- instruction
- history information
- information
- prediction information
- 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
- 230000010365 information processing Effects 0.000 title claims 2
- 230000015654 memory Effects 0.000 claims abstract description 56
- 230000003750 conditioning effect Effects 0.000 claims description 70
- 230000014509 gene expression Effects 0.000 claims description 42
- 230000005055 memory storage Effects 0.000 claims description 23
- 230000008859 change Effects 0.000 claims description 18
- 238000000151 deposition Methods 0.000 claims description 8
- 238000004088 simulation Methods 0.000 claims description 2
- 238000012546 transfer Methods 0.000 claims description 2
- 238000003672 processing method Methods 0.000 claims 1
- 230000007704 transition Effects 0.000 description 25
- 238000000034 method Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000035945 sensitivity Effects 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000004321 preservation Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 102000004190 Enzymes Human genes 0.000 description 1
- 108090000790 Enzymes Proteins 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 239000012467 final product Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000005067 remediation Methods 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
- 230000001360 synchronised 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
分支指令自身中含有分支预测信息13b和分支历史信息13c。分支预测信息13b为表示逐次执行时的预测的分支是否成立的1比特位,分支历史信息13c为表示过去分支成立的频率为“极多”、“多”、“少”、“极少”中之一的2比特位。指令读取器12根据分支预测信息、13b预先从高速缓冲存储器11a取出指令。在指令执行器15执行分支指令结束时,根据该执行结果和紧前面的分支历史信息13c,分支历史信息生成器16生成新的分支历史信息,分支预测信息生成器17生成新的分支预测信息。分支指令更新器18将所生成的分支历史信息和分支预测信息写在高速缓冲存储器11a上的原先的分支指令的相应地点上。
Description
技术领域
本发明是关于微处理器等的信息处理装置,特别是关于分支预测的完善技术。
背景技术
在采用流水线结构的微处理器等的信息处理装置中,为防止因执行分支指令而在控制流程分支时产生的流水线扰乱的措施之一是作分支预测。进行高命中率的分支预测时,必须预测每一分支指令中分支是否成立。作为此时采用的方法,是考虑设置汇集对应于程序中各分支指令的分支预测信息的分支预测表。
但要在信息处理装置内部保持分支预测表使得硬件增加。
为此提出了不在信息处理装置内部固定地保持分支预测信息,而依靠分支指令自身设置,将信息处理装置中必须的硬件限制到最小限度的分支预测措施(例如日本专利申请公开昭63-75934中所公开的信息处理装置)。
图1表示上述历来的信息处理装置用的分支指令的格式。
在此历来的信息处理装置中,分支指令40中具有1位的分支预测信息40b,在作分支指令40解码时,按照此分支预测信息40b由存储器提前取得下一应执行的指令。而后在分支指令40执行结束时,将该执行结果与分支预测信息40b对照,在预测失败时即更新存储器中所存储的该分支指令40的分支预测信息40b。
由此来避免在信息处理装置内部设置分支预测表。
但是,上述历来的信息处理装置,由于抑制信息处理装置中所需的硬件规模、而分支预测的命中率很低,所以存在有频繁地发生伴随分支预测失败而来的损失的问题。
亦即,上述历来的信息处理装置,由于根据表示紧接前面的执行结果的1位的分支预测信息40b提前取出下一指令,例如在分支的成立与不成立相互重复时全部预测都不符合。因此,每次执行这样的分支指令时就必须使提前取的指令无效化,而有碍于信息处理装置执行的高速化。
发明内容
为此,本发明就是针对上述的问题而研制的,目的在于提供能以小规模硬件实现,且能进行高命中率的分支预测的信息处理装置。
本发明的第二目的是提供记录含有为以软件实现上述信息处理装置的程序和用于上述信息处理装置的特定的分支指令的指令群的记录媒体。
为达到上述目的,有关本发明的信息处理装置是顺序执行指令的信息处理装置,其特征在于设置有:预先存储包括具有预测分支是否成立的分支预测信息和表示有关过去的分支结果的信息的分支历史信息的分支指令的指令群的存储装置;由所述存储装置读出下一应执行指令的指令读取装置;解码所读出指令是否为所述分支指令的指令解码装置;在解码所述指令为分支指令时控制所述指令读取装置使之根据该分支指令的分支预测信息读出下一应执行指令的指令读取控制装置;执行已解码的所述分支指令的执行装置;根据执行所述分支指令时的分支结果和该分支指令中所含的分支历史信息生成新的分支预测信息的分支预测信息生成装置;根据所述分支指令执行时的分支结果和该分支指令中所含分支历史信息生成新的分支历史信息的分支历史信息生成装置;和将所述存储装置中存储的所述分支指令的分支预测信息和分支历史信息更新成为由所述分支预测信息生成装置生成的分支预测信息和由所述分支历史信息生成装置生成的分支历史信息的分支指令更新装置。
就是说,在关于本发明的信息处理装置中,分支指令中不仅有分支预测信息还包括有表示过去的分支结果的分支历史信息。而在执行了分支指令时,不仅考虑其执行结果还要考虑该分支指令中所含的分支历史信息来更新该分支指令的分支预测信息和分支历史信息。
因而,由于不仅根据紧接前面的一次的执行结果还根据更前面的执行结果来进行提前读取指令,所以能实现较历来高的命中率的分支预测。
这些分支预测信息和分支历史信息不是作为分支预测表固定地被设置于信息处理装置内部而是设置在存储装置所存储的分支指令本身中,所以用于实现此分支预测的信息处理装置中所需的硬件能以较小规模完成。
对此,所述分支历史信息也可以是针对具有其分支历史信息的分支指令的关于过去的多个分支结果的要点。
由此,分支历史信息就能以很少的位数来反映更过去的分支结果,同时防止因紧接前面的例外的分支结果的影响而引起的分支预测的紊乱(命中率的降低),而进行还考虑到更过去的分支结果的全面的分析预测。
例如,所述分析历史信息,对所述分支指令表示过去分支成立的频率为“极多”、“多”、“少”、“极少”中的一个,所述分支历史信息生成装置在所述分支指令中所含的分支历史信息表示“极少”、“少”、“多”中的一个且所述分支结果“成立”时生成分别表示“少”、“多”、“极多”的新的分支历史信息;而在所述分支指令中所含的分支历史信息表示“极多”、“多”、“少”中之一且所述分支结果“不成立”时生成分别表示“多”、“少”、“极少”的新的分支历史信息。
由此,例如仅利用2位的分支历史信息就能表示有关3次以上的分支结果的统计要点。
前且,所述预测信息更新装置仅在所述分支历史信息表示“多”且所述分支结果为“成立”时生成表示“成立”的新的分支预测信息;仅在所述分支历史信息表示“少”且所述分支结果为“不成立”时生成表示“不成立”的新的分支予测信息。
据此,由于在分支结果的历史与分支预测信息的关系上进行具有滞后的分支预测,比起仅基于1位的分支预测信息的分支预测的情况,不仅使预测的命中率提高,而且还防止因短周期内反复分支的成立与不成立所引起的分支预测的混乱。
所述分支指令更新装置生成包括有由所述分支预测信息生成装置生成的分支预测信息和由所述分支历史信息生成装置生成的分支历史信息的新的分支指令,将该分支指令写到所述存储装置的适当地点上,作为所述的适当地点可以是存储构成生成所述新的分支指令的起源的分支指令的位置。
由此,分支指令的分支预测信息和分支历史信息连同该分支指令(与除这些分支预测信息和分支历史信息之外的分支指令的其他位同时)被加以更新,所以与由存储装置读出作为对象的转移指令加以变更后再写回的步骤相比,能以较短的步骤更新分支预测信息和分支历史信息。
所述存储装置包括有存储所述指令群的主存储器、存储所述主存储器所存放的指令群的一部分的复制件的高速缓冲存储器、和在所述高速缓冲存储器的内容被改写时使所述主存储单的内容也反映该变更的高速缓冲控制装置,所述指令读取装置从所述高速缓冲存储器读出所述指令,所述分支指令更新装置能更新所述高速缓冲存储器所存储的分支指令的分支预测信息和分支历史信息。
由此,关于本发明的信息处理装置由于只要更新能高速访问的超高速缓冲存储器上的分支指令即可完成,所以执行速度加快。
而所述预测信息更新装置能仅在所述历史信息表示“极多”且所述分支结果为“成立”时生成表示“成立”的新的分支预测信息,仅在所述分支历史信息表示“极少”且所述分支结果为“不成立”时生成表示“不成立”的新的分支预测信息。
由此,因为上述滞后的程度成为较强,所以能实现适用于希望有力地抑制分支预测紊乱的系统程序的信息处理装置。
而所述分支历史信息对所述分支指令表示过去分支成立的频率为“多”或“少”;
所述分支历史信息生成装置仅在所述分支指令所含的分支历史信息表示“少”且所述分支结果为“成立”时才生成表示“多”的新的分支历史信息,而仅在所述分支指令所含的分支历史信息表示“多”而所述分支结果为“不成立”时生成表示“少”的新的分支历史信息;
所述预测信息更新装置仅在所述分支历史信息表示“多”而所述分支结果为“成立”时生成表示“成立”的新分支预测信息,仅在所述分支历史信息表示“少”而所述分支结果为“不成立”时生成表示“不成立”的新分支预测信息。
由此,因为上述滞后的程度成为较弱,所以可能成为对程序的执行结果敏感的分支预测、即动态的分支预测,同时因为分支历史信息以很少的位数完成,而使定义指令组时的自由度增加。
而所述分支历史信息对具有该分支历史信息的分支指令能表示包括过去的分支的分支结果。
例如,所述分支历史信息为表示紧接前面的和先前二次的分支结果的2位,所述分支历史信息生成装置能利用执行所述分支指令时的分支结果生成新的分支历史信息。
由此,因为不是过去的多个分支结果的要点而是根据最新的各个的连续的分支结果进行分支预测,所以能实现进行也考虑到例外的分支结果的周密的分支预测的信息处理装置。
而且本发明不仅由硬件实现,也可由软件实现。
即就是,作为记录有模拟进行分支预测提前读出指令的微处器操作的程序的记录媒体的特点在于,所述程序在计算机中执行由预先存储包括具有预测分支是否成立的分支预测信息和表示关于过去的分支结果的信息的分支历史信息的分支指令的指令群的存储装置读出下一应执行指令的指令读取步骤,对读出的指令解码确定是否为所述分支指令的指令解码步骤,在经解码为所述指令是分支指令时根据该分支指令的分支预测信息读出下一应执行指令的分支预测步骤,执行被解码的所述分支指令的执行步骤,根据执行所述分支指令时的分支结果和该分支指令中所含的分支历史信息生成新的分支预测信息的分支预测信息生成步骤,根据执行所述分支指令时的分支结果和该分支指令中所含的分支历史信息生成新的分支历史信息的分支历史信息生成步骤,和将所述存储装置中存放的所述分支指令的分支预测信息和分支历史信息更新成由所述分支预测信息生成步骤生成的分支预测信息和由所述分支历史信息生成步骤生成的分支历史信息的分支指令更新步骤。
而作为记录由计算机执行的指令群的记录媒体的特点还在于,所述指令群中包括具有预测分支是否成立的分支预测信息和表示有关过去的分支结果的信息的分支历史信息的分支指令,所述分支预测信息为根据具有该分支预测信息的分支指令被所述计算机作最后执行时的分支结果和分支历史信息所生成的值,所述分支历史信息为根据具有该分支历史信息的分支指令被所述计算机最后执行时的分支结果和分支历史信息所生成的值,是对于该分支指令的有关过去的多个分支结果的要点。
作为记录计算机执行的指令群的记录媒体的特点还可能是,所述指令群中包括具有预测分支是否成立的分支预测信息和表示关于过去的分支结果的信息的分支历史信息的分支指令,所述分支预测信息为根据具有该分支预测信息的分支指令被所述计算机最后执行时的分支结果和分支历史信息生成的值,所述分支历史信息为根据具有该分支历史信息的分支指令被所述计算机最后执行时的分支结果和分支历史信息生成的值,表示对该分支指令的每个过去分支的分支结果。
由此而达到上述第二目的。
如以上所述,按照本发明能以小规模的硬件或软件来实现、并能使高性能微处理器和虚拟机等进行高命中率的分支预测,它们的实用效果很高。
附图说明
由下面结合附图描述本发明具体实施方案的说明将更清楚理解本发明的这些以及其他的目的、优点和特征。所列附图为:
图1表示历来的分支指令格式;
图2为表示关于本发明的信息处理装置的结构的方框图;
图3表示有关本发明的分支指令格式;
图4为表明该信息处理装置的分支历史信息生成器16和分支预测信息生成器17的输入/输出关系的真值表;
图5为该分支历史信息生成器16的详细电路图;
图6为该分支预测信息生成器17的详细电路图;
图7为表示该分支指令的分支历史信息和分支预测信息的更新算法的状态跃迁图;
图8为表示该信息处理装置的分支指令更新器18的详细结构的方框图;
图9表示该分支指令的分支预测信息、分支历史信息和分支结果的关系;
图10为该信息处理装置中的流水线处理的流程图;
图11为表明关于该信息处理装置的变型例1的分支指令的分支历史信息和分支预测信息的更新算法的状态跃迁图;
图12为表明关于该信息处理装置的变型例2的分支指令的分支历史信息和分支预测信息的更新算法的状态跃迁图;
图13为表明关于该信息处理装置的变型例3的分支指令的分支历史信息和分支预测信息的更新算法的真值表;和
图14为表明关于该变型例3的分支指令的分支历史信息和分支预测信息的更新算法的状态跃迁图。
具体实施方式
下面参照附图对关于本发明的信息处理装置的实施形态加以说明。
图2为表示关于本发明的信息处理装置100的方框图。
本装置100为顺序对预先准备的32位固定长的指令进行读取、解码、执行的处理系统,由主存储器9、高速缓存器11、指令读取器12、指令寄存器13、指令解码器14、指令执行器15、地址控制器8、程序计数器群10、地址生成器19、分支历史信息生成器16、分支预测信息生成器17和分支指令更新器18组成。
这些结构要素8~19均与图中未表示出的时钟信号作同步操作。
而结构要素12~18构成4级的流水线。即指令读取器12构成流水线的读取(IF)阶段,指令寄存器13和指令解码器14构成流水线的解码(DEC)阶段,指令执行器15、分支历史信息生成器16、分支预测信息生成器17和分支指令更新器18构成流水线的执行(EX)阶段,而指令执行器15和分支指令更新器18构成流水线的存储器存取(MEM)阶段,各阶段中的处理在一时钟周期内独立且并行地进行。
主存储器9为DRAM等,存放作为本装置100的执行对象的指令序列(程序)。此程序中包括本装置100中所特有的分支指令。
图3表示该分支指令的格式。
分支指令20由13位的操作码20a、1位的分支预测信息20b、2位的分支历史信息20c和16位的分支目的地地址20d构成。
操作码20a表示用于识别此指令的操作代码和分支条件等。
分支预测信息20b预测随后此分支指令执行时的分支是否成立。具体的说,此分支预测信息20b与预测内容之间的关系如以下这样:
分支预测信息20b为“0”时预测分支不成立;
分支预测信息20b为“1”时预测分支成立。
分支历史信息20c相当于归纳此分支指令的过去的多个分支结果的信息(统计汇总的信息)。具体地说,此分支历史信息20c与过去分支成立的频率(与不成立时相比较的频率)之间有上列这样的关系:
分支历史信息20c为“00”、“01”、“10”和“11”时分别表示“极少”、“少”、“多”和“极多”。
分支目的地地址20d表示分支成立时应分支的地址、即后面应执行指令被放置的主存储器9上的地址。而在分支不成立时,下面应执行的指令为被置于紧接此分支指令之后的指令。
高速缓存器11用于加速指令读取器12向主存储器9的访问,由高速缓冲存储器11a、标记存储器11b和高速缓存控制器11c构成。
高速缓冲存储器11a为SRAM等,是以被叫做高速缓存块的单位存放被置于主存储器9中的程序的一部分的高速存储器。标记存储器11b存储由该高速缓存块的地址等组成的标记目录。
高速缓存控制器11c通过将由指令读取器12输出的地址与标记存储器11b的内容进行比较来检测高速缓存的有未命中,在命中时使指令读取器12对高速缓冲存储器11a的访问成为有效。另一方面,在未命中时则由LRU(Least RacentlyUsed最近应用的)算法来更换高速缓存块。而在改写高速缓存块时,以写回方式将该高速缓存块写入主存储器9,以保持高速缓冲存储器11a与主存储器9内容的一贯性。
指令读取器12提前读取随后应解码、实行的指令,将从读取用指令计数器10a送出的读取地址输出给高速缓存器11,从高速缓冲存储器11a读出对应于该地址的指令并暂时保存于内部指令缓冲器12a中。指令缓冲器12a为保存提前取出的一个指令的寄存器。
指令寄存器13为保存作为解码对象的一个指令的寄存器,在下一时钟周期读出指令缓冲器12a中提前取得的指令,在解码期间保持该指令。图2中表示指令寄存器13中保持分支指令时的存储内容。
指令解码器14由存储微程序的ROM等构成,对指令寄存器13中所保持的指令的操作码13a进行解码,将其结果作为控制信号141输出剂指令执行器15。当解码对象是分支指令时,通过信号线142将该分支指令的分支预测信息13b通知指令执行器15和地址控制器8。
地址控制器8根据来自指令解码器14和指令执行器15的通知控制地址生成器19和程序计数器群10,由此来更新构成程序计数数器群10的3个计数器(读取用指令计数器10a、解码用指令计数器10b、执行用指令计数器10c)的值。
结果,在读取用指令计数器10a中就保持有存放在指令缓存器12a中的指令被安置在存储器9上的地址(检索地址),在解码用指令计数器10b中保持有保存在指令寄存器13中的指令被安置在存储器9上的地址(解码地址),在执行用指令计数器10c中保持有指令执行器15中实行的指令被安置在存储器9上的地址(执行地址)。
地址生成器19由ALU和选择器等构成,在地址控制器8的控制下,对程序计数器群10的各计数器10a~10c进行增量,将分支目的地地址13d写入读取用指令计数器10a,并使之无效。
指令执行器15根据来自指令解码器14的控制信号141对内部包括的通用寄存器和包括运算器等的各结构要素进行控制,执行对应于各指令的运算和数据传送等。
并且,指令执行器15在执行的指令为分支指令时通过信号线151将该执行结果(分支是否成立)通知分支历史信息生成器16和分支预测信息生成器17,同时为进行与分支预测不符时的补偿处理(传送到指令寄存器13的指令的无效化和根据实行结果对原来的分支目的地指令的检取)将该执行结果与分支预测信息13b相比较,并将其结果(预测命中/不符)通过信号线152通知指令解码器14和地址控制器8。
分支历史信息生成器16在指令执行器15执行分支指令时,根据该分支指令中所含的分支历史信息13c及其执行结果(分支是否成立)判断是否应变更该分支历史信息,在应变更时生成新的分支历史信息,将该判断结果(“应维持原样”还是“作更新”)和新的分支历史信息输出到分支指令更新器18。
分支预测信息生成器17在指令执行器15执行分支指令时根据该分支指令中所含的分支历史信息13c及其执行结果(分支是否成立)判断是否应变更此分支预测信息,在应变更时生成新的分支预测信息,将此判断结果(“应维持原样”还是“作更新”)和新的分支预测信息输出到分支指令更新器18。
图4为表明分支历史信息生成器16和分支预测信息生成器17的输入输出的关系的真值表。亦即,输入值栏表示各自输入到分支历史信息生成器16和分支预测信息生成器17的分支历史信息H1H0和执行结果X的所有组合,输出值的分支历史信息N1N0栏表示针对左栏的各输入值的组合分支历史信息生成器16输出的新的分支历史信息,输出的分支预测信息F栏表示针对左栏的各输入值的组合分支预测信息生成器17输出的新的分支预测信息,图中的符号“-”表示其值没有意义,即分支信息生成器16(或分支预测信息生成器17)利用另外的信号线将分支历史信息(或分支预测信息)“应维持原样”的意思通知分支指令更新器18。
图5表示分支历史信息生成器16的详细电路。
分支历史信息生成器16是作为针对3位的输入信号(分支历史信息H1H0和执行结果)将3位的信号(分支历史信息N1N0和表示“应维持原样”意思的信息M1)输出到分支指令更新器18的组合逻辑电路而实现的。
图6表示分支预测信息生成器17的详细电路。
分支预测信息生成器17是作为针对3位的输入信号(分支历史信息H1H0和执行结果X)将2位的信号(分支预测信息F和表示“应原样维持”此信息的意思的信息M0)输出给分支预测更新器18的组合逻辑电路实现。而上述信息M1和M0在为“应原样维持”上述各信息时成为逻辑作“1”。
图7是以分支历史信息20c的值作为状态的分支指令20的状态跃迁图,同时也是表示图4中所示的分支历史信息和分支预测信息的更新算法的图形。
图中的4个椭园相当于取2位的分支历史信息所得的值(状态),实线跃迁箭头线表示执行结果为分支成立“1”时的跃迁方向,虚线跃迁箭头表示执行结果为分支不成立“0”时的跃迁方向。为明确表示分支预测信息被输出(变更)的情况在跃迁箭头线30a、30b的旁边附加说明。
例如,当执行前分支历史信息为“10”(过去分支成立的频率“多”)而该分支指令的执行结果为成立“1”时,分支历史信息生成器16将新的分支历史信息“11”(过去分支成立的频度“极多”)输出到分支指令更新器18,同时分支预测信息生成器17将新的分支预测信息“1”(成立)输出给分支指令更新器18。
分支指令更新器18根据来自分支历史信息生成器16的信号(N1、N0、M1)、来自分支预测信息生成器17的信息(F、M0)和执行用指令计数器10c的值,更新被置于该实用指令计数器10c的值所指明的跃高速缓冲存储器11a(或主存储器9)上的地址上的分支指令的高位16比特(操作码20a、分支预测信息20b和分支历史信息20c)。但在接收到“应照原样维持”来自分支历史信息生成器16和分支预测信息生成器17双方的各信息的意思的通知和接收到由指令执行器15执行的指令不是分支指令的意思的通知时,分支指令更新器18对上述主存储器9(或高速缓冲存储器11a)不发生任何动作。
图8为表示分支指令更新器18详细结构的方框图。
分支指令更新器18由分支指令存储器18a、更新判断器18b、指令生成器18c和地址门器18d构成。
分支指令存储器18a是在每次指令寄存器13中存入新的指令时取得该指令的高位16比特(如该指令为分支指令时即为由操作码13a、分支预测信息13b和分支历史信息13c组成的16比特)进行存储的排队缓存器,保存解码级和执行级中二个指令的各自的高位16比特。
更新判断器18b从分支历史信息生成器16取得关于分支历史信息有无更新的信号M1、从分支预测信息生成器17取得关于分支预测信息存无更新的信号M0,根据各自的信号控制指令生成器18c中新所分支指令的生成,并控制是否允许由地址门器18d输出地址。
指令生成器18c对分支指令存储器18a中存储的二个16比特指令中以前存放的(这相当于紧前面执行的分支指令的高位16比特部分)写上从分支历史信息生成器16和分支预测信息生成器输出的新分支历史信息N1N0和分析予预测信息F,由此来生成超高速缓冲存储器11(或主存储器9)上的应更新的分支指令的高位16比特部分。但是,在从更新判断器18b接收到“应照原样维持”意思的信号(M1和M0)时,不更新对应于该信号的分历史信息和(或)分支预测信息。
地址门器18d在输入到更新判断器18b的二个信号M1、M0中至少一个表示“更新了”的意思时将执行用指令计数器10c的值输出进超高速缓冲存储器11。
由此,分支更新器18在有必要改变由指令执行器15执行的分支指令的分支预测信息20b和分支历史信息20c的至少一方时,以在被置于超高速缓冲存储器11a(或主存储器9)的该分支指令的高位16比特部分上写以新的16比特来更新分支指令20自身。
这里,对由上述分支历史信息生成器16、分支预测信息生成器17和分支指令更新器18取得的分支历史信息和分支预测信息的具体变化,按照图7的状态跃迁图作如下例示。
现在假定重复执行分支历史信息20c为“00”分支预测信息20b为“0”的分支指令20。这样,
在第一次的执行结果为分支成立时,分支历史信息20c被更新为“01”,分支预测信息20b不变。
在第二次的执行结果为分支成立时,分支历史信息20c被更新为“10”,分支预测信息20b不变。
在第三次的执行结果为分支成立时,分支历史信息20c被更新为“11”,分支预测信息20b被更新为“1”。
在第四次执行结果为分支不成立时,分支历史信息20c被更新为“10”,分支预测信息20b不变化。
在第五次执行结果为分支不成立时,分支历史信息20c为更新为“01”,分测预测信息20b不变化。
在第六次的执行结果为分支不成立时,分支历史信息20c被更新为“00”,分支预测信息20b被更新为“0”。
如在将纵轴取分支预测信息20b的值、横轴取分支历史信息20c的值的座标系统中对以上例示进行图示,即成为图9中所示图形。
如按此图形判断那样,在分支成立连续时分支预测信息20b从“0”变化到“1”时的分支历史信息20c的跃迁地点与在分支不成立连续时分支预测信息20b由“1”变到“0”时的分支历史信息20c的跃迁地点不一致。亦即,因分支历史信息20c变化的方向使分支预测信息20b反向的阀值不同。这可看作是,将分支结果的历史作为输入时确定分支预测信息20b的映象中存在着滞后。亦即意味着,只要过去分支成立的频率与不成立的频率中没有显著差别,就尊重(保持)当前的分支预测。
由于这种滞后能避免因例外地发生的分支而引起的分支预测信息20b的被打乱的不正常情况和在分支成立与不成立重复时的分支预测的全部不适应的不正常,特别是使控制系统的程序中的分支预测命中率增高。
下面对以上这样构成的信息处理装置100的操作以执行具体的分支指令的情况为例加以说明。
图10表示信息处理装置100中流水线处理的流程图。
现在,假定存放在主存储器9中的分支指令的分支预测信息20b和分支历史信息20c的初始值分别为“0”和“01”。这些初始值是依靠对源程序的静态解析得的编译程序所生成的。由主存储器9读出含有该分支指令的高速缓存程序块并保存进高速缓冲存储器11a中。
(1)IF级
指令读取器12在时钟周期1的后半(1b)中从高速缓冲存储器11a读出该分支指令并存入指令缓存器12a读出该分支指令并存入指令缓存器12a。
(2)DEC级
在时钟周期2的前半部(2a)中,先前被读入指令缓存器12a的分支指令被传送进寄存器13,由指令解码器14解码。
具体说,指令解码器14通过对保存在指令寄存器13中的操作码13a进行解码来判断解码对象为分支指令,将为进行分支条件的判断的控制信号输出到指令执行器15,同时向地址控制器8通知保存在指令寄存器13中的分支预测信息13b。
地址控制器8,由于所通知的分支预测信息13b为“0”,此指令的执行结果预测分支不成立,由控制地址生成器19使读取用指令计数器10a的值增量。其值(检索地址)径指令读取器12被输出到高速缓存器11。
其结果,在此时钟周期2的后半部(2b)中的IF级此分支指令后续的指令被指令读取器12读出并被存入指令缓存器12a中。这样,尽管是在分支指令被执行之前,也根据分支指令所具有的分支预测信息来提前读出下一指令。
(3)EX级
在接续的时钟周期3的前半部(3a)中,指令执行器15根据来自指令解码器14的控制信号进行该分支指令的条件判断,将其执行结果(分支成立与否)通知分支历史信息生成器16和分支预测信息生成器17,同时将其预测结果(有未命中)通知指令解码器14和地址控制器8。
而后在此时钟周期3的后半部(3b)中,分支历史信息生成器16和分支预测信息生成器17在接受上述通知的同时获取指令寄存器13中所存放的分支历史信息13c,根据图7中所示的跃迁分别生成新的分支历史信息和分支预测信息(或照原样),将其结果通知分支指令更新器18。接收到新的分支历史信息和(或)分支预测信息的通知的分支指令更新器18生成具有这些信息的新分支指令的高位16比特。
而在上述预测未命中时,在此时钟周期3的后半部(3a)由指令执行器15和指令读取器12进行补救处理(传送到指令寄存器13的指令的无效化和根据执行结果对原来的分支指令的读取)。
(4)MEM级
在时钟周期4,分支指令更新器18在从分支历史信息生成器16和分支预测信息生成器17接收到将分支预测信息20b和分支历史信息20c的至少一个“更新的”的通知时,将紧接前面的时钟周期3b中生成的分支指令(的高位16比特部分)写在表示存储在执行用指令计数器10c中的执行地址的高速缓冲存储器11a(或主存储器9)上的分支指令上。
这样就使得含有被更新的高速缓冲存储器11a上的分支指令的高速缓存程序块在从高速缓冲存储器11a被消去以前由高速缓存控制器11c写入在对应的主存储器9上的位置上。由此,即使在此分支指令再次从存储器9读出加以执行时,此分支指令中所含的分支预测信息20b和分支历史信息20c也被保证是基于过去的分支结果的有效信息。
如以上所述,在本装置100中,各分支指令的分支历史信息和分支预测信息不是专用的存储表而是保持在其分支指令自身中。因而与将多个分支指令的分支历史信息和分支预测信息固定地设置在信息处理装置100内部的情况相比,信息处理装置100中所需的硬件规模很少即可。
而在本装置100中,分支指令不仅是1位的分支预测信息,还具有表示多次分支结果的要点的2位的分支历史信息,根据此分支历史信息和紧接前面的分支结果进行具有滞后的分支预测。从而,与仅基于1位的分支预测信息的分支预测情况相比,不仅仅预测命中率提高,而能够进行不易于受到例外发生的分支的不良影响的可靠的分支预测。
在本实施形态中,主存储器9为DRAM等,而高速缓冲存储器11a为由SRAM等构成,但本发明并不限于此。
例如主存储器9亦可以是硬盘等非易失性存储装置。因此,即使在装置电源被切断时,由于基于至今的执行结果的分支预测信息20b和分支历史信息20c被保存在硬盘等之中,在其后再次执行时,开始已经没有积累的分支历史信息的有效的分支预测。
下面表示上述实施形态的信息处理装置100的变型示例。
在上述实施形态中,如图7中所示,预测分支信息被设定为仅在分支历史信息从“多”跃迁到“极多”时才为“成立”,而在分支历史信息从“少”跃迁到“极少”时为“不成立”。
这如同在图11的状态跃迁图中的跃迁箭头线31a、31b上所曾加注明的那样,可作成为分支预测信息仅在分支历史信息成为滞留在“极多”的情况时(即,分支历史信息为“极多”的分支指令的执行结果为“成立”的情况)被设定为“成立”,而在分支历史信息成为滞留于“极少”的情况(即,在分支历史信息为“极少”的分支指令的执行结果为“不成立”的情况)时被设定为“不成立”,其他的跃迁情况则无变化,变形成为更新算法。这通过变更构成分支预测信息生成器17的组合逻辑电路中的连接线能很容易实现。
此变型例1,如比较图7和图11就可判断那样,相当于上述滞缓的程度较之上述实施形态的情况更增强的情况。亦即,对于实际所产生的分支结果成立与否的偏离,分支预测信息很难变化。
由此来实现适用于希望加强抑制分支预测信息的紊乱的系统和不希望分支预测信息的变化的系统、例如希望维持能由静态信息而不是执行时的动态现象确定的初始值那样的系统的信息处理装置。
上述实施形态中分支历史信息为2位,但也容易将其变型为1位。
图12为表示将分支历史信息作成1位时的分支历史信息的更新算法的状态跃迁图。分支历史信息属于“多”和“少”中之一的状态;各状态表示此分支指令的紧接前面的执行结果分别为“成立”、“不成立”。分支预测信息,如跃迁箭头线32a上所付加的注明那样,仅在分支历史信息成为滞留于“多”的情况(即分支历史信息为“多”的分支指令的执行结果为“成立”的情况)被设定为“成立”,而如跃迁箭头线32b上付加标注的那样,仅在分支历史信息成为滞留于“少”的情况(即,分支历史信息为“少”的分支指令的执行结果成为“不成立”的情况)被设定为“不成立”,其他的跃迁情况下不变化。从而,分支预测信息虽然在分支指令的执行结果为重复成立与不成立时不变化,但在同一结果连续时则被设定为与其结果相对应的值。
这样的变型例2,不用说能减少实施形态的分支历史信息生成器16和分支预测信息生成器17中的逻辑电路,而容易地以变更连接线来实线。
此变型例2如与图7与图12相比较所作判断那样,相当于减弱上述的滞后程度的情况。亦即,与上述实施形态的情况相比,分支预测信息的变化成为对分支历史信息的变化敏感。因而,比起上述实施形态的信息处理装置100,能实现更适应于对程序的执行结果敏感的、即例外处理发生多的实时生强的系统的信息处理装置。
而由于此变型例2中分支历史信息只要1位就够了,所以减小了编码规模和增大了定义指令组(操作码的映象)情况的自由度。
上述实施形态及二个变型例为执行具有对于过去的分支结果的统计要点即分支历史信息的分支指令的信息处理装置,但也易于将之变型成执行具有由对应于各个过去的分支的位的集合组成的分支历史信息的分支指令的信息处理装置。
亦即,通过改变上述实施形态的信息处理装置100中的分支历史信息生成器16和分支预测信息生成器17的功能(输入/输出变换算法),就能实现执行将按原样表示该分支指令的过去多次的执行结果的位的集合作为分支历史信息而保存的分支指令的信息处理装置。
图13为表示由关于变型例3的信息处理装置的分支历史信息生成器和分支预测信息生成器进行的更新算法的真值表,与上述实施形态中图4相对应。
在此变型例3中,与上述实施形态不同,分支指令具有2位的分支历史信息20c,低位比特H0作为该分支指令的紧接前面的执行结果(“1”表示“成立”,“0”表示“不成立”),高位比特H1表示该分支指令二次前的执行结果。
此变型例3的分支历史信息生成器为2位的排队缓存器,当从指令执行器15通知新的执行结果X时,即将目前保存的2位H1H0向高位方向位移,将此新的执行结果X输入到低位N0,由此生成新的分支历史信息N1N0。
而变型例3的分支预测信息生成器在原则上是将分支指令执行紧前面的2位的分支历史信息H1H0与从指令执行器15通知的执行结果X组合成的合计3位的值中多的逻辑值(例如,H1H0=01而X=1时的“1”)作为新的分支预测信息F而生成,作为例外的是,仅在取此3位的H1H0X相互反相的逻辑值时将该反相继续那样的逻辑值(在H1H0X=010时的“1”,H1H0X=101时的“0”)生成作为新的分支预测信息F。这就意味着,原则上虽然是采用过去3次执行结果中的多的那种结果(“成立”或“不成立”)作为后面的分支预测,但仅限于过去3次的执行结果为交替地重复“成立”和“不成立”的情况,作为例外,作为继续该重复并进行分支预测。
图14为表示变型例3的分支历史信息和分支预测信息的更新算法的状态跃迁路。本图对应于上述实施形态的图7,但在跃迁箭头线上付加表明的数值表示引起该跃迁的原因(即,该分支指令的执行结果X的值)和伴随该跃迁从分支预测信息生成器输出的新分支预测信息的值。
例如,现在假定重复执行分支历史信息20c为“00”、分支预测信息20b为“0”的分支指令20。
这样,在第一次的执行结果为分支成立(未命中)时分支历史信息20c被更新为“01”,分支预测信息20b被设定为“0”(不变化);
在第二次的执行结果为分支不成立(命中)时分支历史信息20c被更新为“10”,分支预测信息20b变更为“1”;
在第三次的执行结果为分支成立(命中)时分支历史信息20c被更新为“01”,分支预测信息20b变更为“0”;
在第四次的执行结果为分支不成立(命中)时分支历史信息20c被更新为“10”,分支预测信息20b被变更为“1”。
由此,利用关于变型例3的信息处理装置,原则上是根据过去的分支结果进行分支预测,但在分支的成立与不成立交替地重复的情况,与上述实施形态不同,由于以作为重复这种翻转现象来进行分支预测,所以即使在这样的特殊程序的流程中分支预测也能命中。
上面对关于本发明的信息处理装置是表示为一个实施形态和三个变型例,但本发明并不限定于这些。
对于为确定分支预测信息的条件(分支历史信息的值与分支结果的组合)、更新分支历史信息的算法、分支历史信息的位数等,不用说能很容易地以组合所取得的值作成其他的变型例。
例如也可以分配以8级表示的更深的分支历史的要点的三位来作为分支历史信息。由此就能进行命中率更高的规定更细小的分支预测。
但是在用于一个分支指令所占的分支预测的位数很多时,由于在定义指令组中的自由度等上面必须付出牺牲,这些位数必须由预测的命中率与应设置的指令的种类的折衷选择来确定。
而上述实施形态和变型例的构成要素虽然是全部由逻辑电路实现作为前提说明的,但本发明不仅仅由硬件来实现也能由软件来实现,这是不言而喻的。
具体说,在上述实施形态的信息处理装置100的构成要素中,可以将存放指令和数值的存储装置9、11a、11b、12a、13、10a~10c等分配成变数和数据领域,也可以采用编程语言描述其余的控制装置8、11c、12、14~19等的功能。由此,关于本发明的信息装置即作为通用计算机系统执行的模拟程序和虚拟机来实现。为实现关于这样的本发明的信息处理装置的程序可存放在CD-ROM等的记录媒体中加以分配、流通。
而上述实施形态和变型例中的分支指令,与图1中所示的历来的指令格式不同,具有例如如图3中所示的指令格式那样的称为分支历史信息的本发明因有的信息。具有这样的特征的结构的分支指令是本发明中固有的,而含有这样的分支指令的指令群(程序),不用说也能与上述程序同样地通过软盘等的记录媒体和通信线路进行分配、流通。
Claims (21)
1、一种依次执行指令的信息处理装置,其特征在于包括:
存储装置,预先存储含有具有预测分支是否成立的分支预测信息和表示关于过去的分支结果的信息的分支历史信息的分支指令的指令群;
指令读取装置,从所述存储装置依次读出应执行的指令;
指令解码装置,解释所读出指令是否为所述分支指令;
指令读取控制装置,在所述指令被解码为分支指令时根据该分支指令的分支预测信息控制所述指令读取装置使之顺次读出应执行的指令;
执行装置,执行被解码的所述分支指令;
分支预测信息生成装置,根据执行所述分支指令时的分支结果和该分支指令中所含的分支历史信息生成新的分支预测信息;
分支历史信息生成装置,根据执行所述分支指令时的分支结果和该分支指令中所含的分支历史信息生成新的分支历史信息;和
分支指令更新装置,将所述存储装置所存放的所述分支指令的分支预测信息和分支历史信息更新成为由所述分支预测信息生成装置所生成的分支预测信息和由所述分支历史信息生成装置生成的分支历史信息。
2、如权利要求1所述的信息处理装置,其特征是所述分支历史信息是有关对具有该分支历史信息的分支指令的过去的多个分支结果的要点。
3、如权利要求2所述的信息处理装置,其特征是所述分支历史信息表示对所述分支指令过去分支成立的频率为“极多”、“多”、“少”、“极少”中的任一个。
4、如权利要求3所述的信息处理装置,其特征是所述分支历史信息生成装置在所述分支指令所含的分支历史信息表示“极少”、“少”、“多”之一,且所述分支结果为“成立”时生成分别表示“少”、“多”、“极多”的新的分支历史信息,而在所述分支指令所含的分支历史信息表示“极多”、“多”、“少”之一、且所述分支结果为“不成立”时生成分别表示“多”、“少”、“极少”的新的分支历史信息。
5、如权利要求4所述的信息处理装置,其特征是所述预测信息更新装置仅在所述分支历史信息表示“多”且所述分支结果为“成立”时生成表示“成立”的新分支预测信息,而仅在所述分支历史信息表示“少”且所述分支结果为“不成立”时生成表示“不成立”的新的分支预测信息。
6、如权利要求5所述的信息处理装置,其特征是所述分支指令更新装置生成含有由所述分支预测信息生成装置生成的分支预测信息和由所述分支历史信息生成装置生成的分支历史信息的新的分支指令,将该分支指令写在所述存储装置的相应地点;这里,作为所述相应地点是存储成为生成所述新的分支指令的起源的分支指令的位置。
7、如权利要求6所述的信息处理装置,其特征是所述存储装置包括:存放所述指令群的主存储器;存储对存放在所述主存储器中的指令群的一部分的复制的超高速缓冲存储器;和在所述超高速缓冲存储器的内容被改写时使该变更也反映到所述主存储器的内容上的超高速缓存控制装置,
所述指令读取装置从所述超高速缓冲存储器读出所述指令,和
所述分支指令更新装置更新所述超高速缓冲存储器中存储的分支指令的分支预测信息和分支历史信息。
8、如权利要求4所述的信息处理装置,其特征是所述预测信息更新装置仅在所述分支历史信息表示“极多”、所述分支结果为“成立”时生成表示“成立”的新的分支预测信息,而仅在所述分支历史信息表示“极少”、所述分支结果为“不成立”对生成表示“不成立”的新分支预测信息。
9、如权利要求8所述的信息处理装置,其特征是所述分支指令更新装置生成包括由所述分支预测信息生成装置所生成的分支预测信息和由所述分支历史信息生成装置所生成的分支历史信息的新的分支指令,并将该分支指令写在所述存储装置的相应地点上;
这里,所述相应地点为存储作为生成所述新分支指令的原来的分支指令的位置。
10、如权利要求9所述的信息处理装置,其特征是所述存储装置包括:存放所述指令群的主存储器,存储对所述主存储器所存放的指令群的一部分的复制的超高速缓冲存储器,和在所述超高速缓冲存储器的内容被改写时使该变更也反映到所述主存储器的内容上的超高速缓存控制装置;
所述指令读取装置从所述高速缓冲存储器读出所述指令;
所述分支指令更新装置更新所述超高速缓冲存储器中存储的分支指令的分支预测信息和分支历史信息。
11、如权利要求2所述的信息处理装置,其特征是所述分支历史信息表示针对所述分支指令的过去分支成立的频率为“多”或“少”。
12、如权利要求11所述的信息处理装置,其特征是所述分支历史信息生成装置仅在所述分支指令中所含的分支历史信息表示“少”且所述分支结果为“成立”时生成表示“多”的新的分支历史信息,而仅在所述转移指令中所含的分支历史信息表示“多”且所述分支结果为“不成立”时生成表示“少”的新的分支历史信息。
13、如权利要求12所述的信息处理装置,其特征是所述预测信息更新装置仅在所述分支历史信息表示“多”且所述分支结果为“成立”时生成表示“成立”的新的分支预测信息,而仅在所述分支历史信息表示“少”、所述分支结果为“不成立”时生成表示“不成立”的新的分支预测信息。
14、如权利要求13所述的信息处理装置,其特征是所述分支指令更新装置生成含有由所述分支预测信息生成装置所生成的分支预测信息和由所述分支历史信息生成装置所生成的分支历史的新的分支指令,将该分支指令写在所述存储装置的相应地点上;
这里,所述相应地点是指存储成为生成所述新的分支指令的原来的分支指令的位置。
15、如权利要求14所述的信息处理装置,其特征是所述存储装置包括:存放所述指令群的主存储器,存储对所述主存储器中存放的指令群的一部分的复制的超高速缓冲存储器,和在所述超高速缓冲存储器的内容被改写时使该变更也反映到所述主存储器的内容上的超高速缓存控制装置;
所述指令读取装置从所述超高速缓冲存储器读出所述指令;和
所述分支指令更新装置更新所述超高速缓冲存储器中存储的分支指令的分支预测信息和分支历史信息。
16、如权利要求1所述信息处理装置,其特征是所述分支历史信息表示对具有该分支历史信息的分支指令的每个过去的分支的分支结果。
17、如权利要求16所述的处理装置,其特征是所述分支历史信息为表示紧前面的和2次前的分支结果的二位;所述分支历史信息生成装置利用执行所述分支指令时的分支结果生成新的分支历史信息。
18、如权利要求17所述的信息处理装置,其特征是所述预测信息更新装置在执行所述分支指令时的分支结果和该分支指令中所含的紧前面的和2次前的分支结果分别为“成立”、“不成立”、“成立”时,生成表示“不成立”的新的分支预测信息,而在为“不成立”、“成立”、“不成立”时生成表示“成立”的新的分支预测信息。
19、如权利要求18所述的信息处理装置,其特征是所述分支指令更新装置生成含有由所述分支预测信息生成装置生成的分支预测信息和由所述分支历史信息生成装置生成的分支历史信息的新的分支指令,将该分支指令写在所述存储装置的相应地点;
这里,作为所述相应地点是存储成为生成所述新的分支指令的原来的分支指令的位置。
20、如权利要求19所述的信息处理装置,其特征是所述存储装置包括:存放所述指令群的主存储器,存储对所述主存储器中存放的指令群的一部分的复制的超高速缓冲存储器,和在所述超高速缓冲存储器的内容被改写时使该变更也反映到所述主存储器的内容上的超高速缓存控制装置;
所述指令读取装置从所述超高速缓冲存储器读出所述指令;
所述分支指令更新装置更新所述超高速缓冲存储器中存储的分支指令的分支预测信息和分支历史信息。
21、一种模拟进行分支预测并预先读取指令的微处理器操作的信息处理方法,其特征在于包括如下步骤:
指令读取步骤,从预先存储包括具有预测分支是否成立的分支预测信息和表示有关过去的分支结果的信息的分支历史信息的分支指令的指令群的存储装置依次读出应执行的指令;
指令解码步骤,解释所读出的指令是否为所述分支指令;
分支预测步骤,所述指令被解码为分支指令时根据该分支指令的分支预测信息依次读出应执行的指令;
执行步骤,执行被解码的所述分支指令;
分支预测信息生成步骤,根据执行所述分支指令时的分支结果和该分支指令中所含的分支历史信息生成新的分支预测信息;
分支历史信息生成步骤,根据执行所述分支指令时的分支结果和该分支指令中所含的分支历史信息生成新的分支历史信息;和
分支指令更新步骤,将所述存储装置中存放的所述分支指令的分支预测信息和分支历史信息更新成为由所述分支预测生成步骤生成的分支预测信息和由所述分支历史信息生成步骤生成的分支历史信息。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP32845796 | 1996-12-09 | ||
JP328457/1996 | 1996-12-09 | ||
JP328457/96 | 1996-12-09 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1186981A CN1186981A (zh) | 1998-07-08 |
CN1153133C true CN1153133C (zh) | 2004-06-09 |
Family
ID=18210488
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB971085900A Expired - Fee Related CN1153133C (zh) | 1996-12-09 | 1997-12-08 | 采用小规模硬件作高命中率分支预测的信息处理装置 |
Country Status (7)
Country | Link |
---|---|
US (1) | US5928358A (zh) |
EP (1) | EP0847004B1 (zh) |
JP (1) | JP3760041B2 (zh) |
KR (1) | KR100440805B1 (zh) |
CN (1) | CN1153133C (zh) |
DE (1) | DE69736164T2 (zh) |
TW (1) | TW380238B (zh) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6170053B1 (en) * | 1996-06-27 | 2001-01-02 | Texas Instruments Incorporated | Microprocessor with circuits, systems and methods for responding to branch instructions based on history of prediction accuracy |
US6029228A (en) * | 1996-12-31 | 2000-02-22 | Texas Instruments Incorporated | Data prefetching of a load target buffer for post-branch instructions based on past prediction accuracy's of branch predictions |
US6182211B1 (en) * | 1997-07-02 | 2001-01-30 | Matsushita Electric Industrial Co., Ltd. | Conditional branch control method |
US6151672A (en) * | 1998-02-23 | 2000-11-21 | Hewlett-Packard Company | Methods and apparatus for reducing interference in a branch history table of a microprocessor |
US6189091B1 (en) | 1998-12-02 | 2001-02-13 | Ip First, L.L.C. | Apparatus and method for speculatively updating global history and restoring same on branch misprediction detection |
US6341348B1 (en) | 1998-12-03 | 2002-01-22 | Sun Microsystems, Inc. | Software branch prediction filtering for a microprocessor |
US6499101B1 (en) | 1999-03-18 | 2002-12-24 | I.P. First L.L.C. | Static branch prediction mechanism for conditional branch instructions |
WO2001016702A1 (en) | 1999-09-01 | 2001-03-08 | Intel Corporation | Register set used in multithreaded parallel processor architecture |
DE19945940C2 (de) * | 1999-09-24 | 2002-01-17 | Infineon Technologies Ag | Verfahren und Vorrichtung zur Bearbeitung bedingter Sprungbefehle in einem Prozessor mit PIPELINE-Rechnerarchitektur |
US6546481B1 (en) | 1999-11-05 | 2003-04-08 | Ip - First Llc | Split history tables for branch prediction |
US7681018B2 (en) | 2000-08-31 | 2010-03-16 | Intel Corporation | Method and apparatus for providing large register address space while maximizing cycletime performance for a multi-threaded register file set |
EP1646941B1 (en) * | 2003-07-09 | 2010-12-15 | Nxp B.V. | Method and system for branch prediction |
JP4009248B2 (ja) | 2003-12-05 | 2007-11-14 | 富士通株式会社 | 分岐予測装置および分岐予測方法 |
JP4213181B2 (ja) * | 2004-04-21 | 2009-01-21 | 富士通株式会社 | 分岐予測装置、その方法、及びプロセサ |
US8443171B2 (en) | 2004-07-30 | 2013-05-14 | Hewlett-Packard Development Company, L.P. | Run-time updating of prediction hint instructions |
US20070186049A1 (en) * | 2006-02-03 | 2007-08-09 | International Business Machines Corporation | Self prefetching L2 cache mechanism for instruction lines |
US8904155B2 (en) * | 2006-03-17 | 2014-12-02 | Qualcomm Incorporated | Representing loop branches in a branch history register with multiple bits |
US7647486B2 (en) | 2006-05-02 | 2010-01-12 | Atmel Corporation | Method and system having instructions with different execution times in different modes, including a selected execution time different from default execution times in a first mode and a random execution time in a second mode |
JP2008165589A (ja) * | 2006-12-28 | 2008-07-17 | Fujitsu Ltd | 情報処理装置 |
JP5012084B2 (ja) * | 2007-02-22 | 2012-08-29 | 富士通セミコンダクター株式会社 | 情報処理装置 |
KR20120064446A (ko) * | 2010-12-09 | 2012-06-19 | 삼성전자주식회사 | 컴퓨팅 시스템 상의 바이트코드의 분기 처리 장치 및 방법 |
JP5552042B2 (ja) * | 2010-12-27 | 2014-07-16 | インターナショナル・ビジネス・マシーンズ・コーポレーション | プログラム解析の方法、システムおよびプログラム |
US8959320B2 (en) * | 2011-12-07 | 2015-02-17 | Apple Inc. | Preventing update training of first predictor with mismatching second predictor for branch instructions with alternating pattern hysteresis |
CN104156196B (zh) * | 2014-06-12 | 2017-10-27 | 龚伟峰 | 重命名预处理方法 |
US10747539B1 (en) | 2016-11-14 | 2020-08-18 | Apple Inc. | Scan-on-fill next fetch target prediction |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4435756A (en) * | 1981-12-03 | 1984-03-06 | Burroughs Corporation | Branch predicting computer |
JPS6375934A (ja) * | 1986-09-19 | 1988-04-06 | Nec Corp | 情報処理装置 |
JPH0650465B2 (ja) * | 1989-10-16 | 1994-06-29 | 株式会社東芝 | 分岐制御回路 |
US5564118A (en) * | 1992-11-12 | 1996-10-08 | Digital Equipment Corporation | Past-history filtered branch prediction |
JP3599409B2 (ja) * | 1994-06-14 | 2004-12-08 | 株式会社ルネサステクノロジ | 分岐予測装置 |
US5864697A (en) * | 1996-06-28 | 1999-01-26 | Texas Instruments Incorporated | Microprocessor using combined actual and speculative branch history prediction |
US5822575A (en) * | 1996-09-12 | 1998-10-13 | Advanced Micro Devices, Inc. | Branch prediction storage for storing branch prediction information such that a corresponding tag may be routed with the branch instruction |
US5817699A (en) * | 1997-05-30 | 1998-10-06 | Flores; John A. | Process for the preparation of ketamine ointment |
-
1997
- 1997-12-08 CN CNB971085900A patent/CN1153133C/zh not_active Expired - Fee Related
- 1997-12-08 TW TW086118444A patent/TW380238B/zh not_active IP Right Cessation
- 1997-12-08 JP JP33708997A patent/JP3760041B2/ja not_active Expired - Lifetime
- 1997-12-09 EP EP97309925A patent/EP0847004B1/en not_active Expired - Lifetime
- 1997-12-09 US US08/987,260 patent/US5928358A/en not_active Expired - Lifetime
- 1997-12-09 DE DE69736164T patent/DE69736164T2/de not_active Expired - Fee Related
- 1997-12-09 KR KR1019970067053A patent/KR100440805B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
EP0847004A1 (en) | 1998-06-10 |
CN1186981A (zh) | 1998-07-08 |
KR100440805B1 (ko) | 2004-09-18 |
US5928358A (en) | 1999-07-27 |
DE69736164D1 (de) | 2006-08-03 |
DE69736164T2 (de) | 2006-11-09 |
KR19980063936A (ko) | 1998-10-07 |
JP3760041B2 (ja) | 2006-03-29 |
TW380238B (en) | 2000-01-21 |
EP0847004B1 (en) | 2006-06-21 |
JPH10228377A (ja) | 1998-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1153133C (zh) | 采用小规模硬件作高命中率分支预测的信息处理装置 | |
CN1123826C (zh) | 预取由转移历史引导的指令/数据的方法和装置 | |
CN1249963C (zh) | 使用分组摘要信息快速和自适应处理分组的设备和方法 | |
CN1181528A (zh) | 二进制程序转换设备,转换方法和程序记录媒体 | |
US20080320288A1 (en) | Branch prediction apparatus of computer | |
CN1359488A (zh) | 强静态预测分支指令的优化执行 | |
CN1704911A (zh) | 高速缓冲存储器、系统和数据存储方法 | |
CN1934541A (zh) | 采用压缩的缓存线的信息价值的多处理器计算系统以及能够在所述系统中使用的处理器 | |
CN1342940A (zh) | 到一个共享的协处理器资源的多个逻辑接口 | |
CN1241272A (zh) | 赋予高级微处理器内存储器数据别名的方法和装置 | |
DE102012222820A1 (de) | Anweisung-Zwischenspeicher-Energie-Verminderung | |
CN1790354A (zh) | 布局驱动、面积约束的设计优化 | |
CN1125403C (zh) | 信息处理设备 | |
CN1255675A (zh) | 具有冻结功能的高速缓存器 | |
WO2006112190A1 (ja) | プロセッサ | |
JPH08320788A (ja) | パイプライン方式プロセッサ | |
CN1286005C (zh) | 微处理器 | |
CN1499381A (zh) | 高速缓存控制器、高速缓存控制方法以及计算机系统 | |
CN1882923A (zh) | 高速缓冲存储器及其控制方法 | |
JP3811140B2 (ja) | 情報処理装置 | |
US20060224861A1 (en) | Condition branch instruction encoding within a multiple instruction set data processing system | |
US6301641B1 (en) | Method for reducing the frequency of cache misses in a computer | |
CN1650257A (zh) | 互换地址寄存器所存内容的方法和设备 | |
US20090157957A1 (en) | Apparatus with disc drive that uses cache management policy to reduce power consumption | |
Bergstra et al. | Thread extraction for polyadic instruction sequences |
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 | ||
C19 | Lapse of patent right due to non-payment of the annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |