一种分支处理方法与系统技术方案

技术编号:19511014 阅读:58 留言:0更新日期:2018-11-21 07:37
一种适用于电子计算机/微处理器的分支处理方法,其特征是根据处理器核提供的指令地址提供顺序指令,由BTB映射所述指令地址以提供分支目标指令,由处理器核产生的分支判断选择上述两支指令中的一支指令供处理器核执行,因此没有分支损失;也不使用分支预测,排除了分支预测错误导致的处理器性能损失。

【技术实现步骤摘要】
一种分支处理方法与系统
本专利技术涉及电子计算机和微处理器领域。
技术介绍
控制相关(controlhazards)也称为分支(Branch),是处理器流水线性能损失的一大原因。当前的主流微处理器使用分支预测(branchprediction)的方式以消除分支损失。图1是现有微处理器处理条件分支方式的实施例。其中101是分支目标缓冲器(BranchTargetBuffer,BTB),105是指令缓存,108是处理器核。典型的BTB中存储分支指令地址与相应的分支目标指令地址,以及其分支预测。BTB101中存储的复数条分支指令地址与108产生的指令地址106相比较。如有匹配,根据匹配的BTB行中存储的分支预测102,输出控制信号103以控制选择器104。如分支预测为分支,104选择BTB匹配行中的分支目标地址向105提供。如无匹配,或有匹配但分支预测为不分支,104选择106上的顺序地址向105提供。指令缓存105根据分支目标或顺序地址经总线107提供分支目标或顺序指令供处理器核108执行。如此消除了分支的损失。但分支预测有无法避免的预测错误。如处理器核执行分支指令产生的分支判断(branchdecision)与分支预测不相同,则必须清除处理器流水线中产生分支判断的流水线段之前各流水线段的处理结果,从分支判断选择的一支指令开始重新执行,导致性能损失。
技术实现思路
本专利技术针对现有技术的不足,提出一种分支处理方法与系统,其特征是提供分支目标及顺序两支指令由处理器核产生的分支判断选择一支指令供处理器核执行,因此没有分支损失;也不使用分支预测,因此完全排除了分支预测错误导致的处理器性能损失。本专利技术中由处理器核提供指令地址,该指令地址寻址存储装置提供顺序指令,该指令地址也与BTB中存储的分支指令地址比较。由BTB根据匹配结果直接提供分支目标指令。或由BTB根据匹配结果提供分支目标指令地址,该分支目标指令地址寻址存储装置,由存储装置提供分支目标地址。处理器核产生的分支判断选择顺序指令或分支目标指令供处理器核执行。当执行无条件分支指令时,分支判断经分支指令译码生成。当执行条件分支指令时,分支判断经分支指令译码结合执行分支指令或之前指令产生的结果生成。有益效果本专利技术消除了分支预测导致的性能损失,节省了分支预测装置所占据的芯片面积与消耗的功耗。附图说明虽然该专利技术可以以多种形式的修改和替换来扩展,说明书中也列出了一些具体的实施图例并进行详细阐述。应当理解的是,专利技术者的出发点不是将该专利技术限于所阐述的特定实施例,正相反,专利技术者的出发点在于保护所有基于由本权利声明定义的精神或范围内进行的改进、等效转换和修改。图1是现有以分支预测处理分支的实施例。图2是本专利技术所述以分支判断处理分支的实施例。图3是本专利技术所述以分支判断处理分支的另一个实施例。图4是本专利技术所述以分支判断处理分支的另一个实施例。图5是本专利技术所述以分支判断处理分支的另一个实施例。具体实施方式图2是本专利技术所述以分支判断处理分支的实施例。此实施例中,115是存储分支指令地址/分支目标指令对的BTB,105是指令存储器(memory),116是选择器,108是处理器核。处理器核108产生分支判断110以控制选择器116。108产生指令地址106。106寻址指令存储器105,105提供顺序指令111。106也与BTB115中存储的分支指令地址比较。如果115中的一个分支指令地址与指令地址106匹配,则BTB115提供与该分支指令地址相应的分支目标指令112。在送出分支指令的地址后,108经指令地址106送出分支指令后第一条指令的地址(顺序地址)以寻址指令存储器105,105经总线111送出提供分支指令后第一条指令。如果BTB115中有分支指令地址与106上分支指令地址匹配,此时BTB115经总线112输出分支目标指令。因此选择器116的两个输入112及111上有分支目标指令,及分支指令后第一条指令(fall-through指令),等待处理器核产生的分支判断110的选择。当分支判断110值为‘不分支’时,116选择分支指令后第一条指令111经总线107提供给108执行。106继续提供后续顺序地址(此时为分支指令后两条指令的地址),寻址指令存储器105,105提供顺序指令。当分支判断110值为‘分支’时,116选择分支目标指令112经总线107提供给108执行。处理器核108在执行分支指令时同时计算分支指令后第一条指令(顺序指令)的地址。106提供分支目标指令后第一条指令的地址,寻址指令存储器105,105提供分支目标指令后第一条指令。之后,106提供分支目标指令后的顺序指令地址(此时为分支目标后两条指令地址),寻址指令存储器105提供分支目标指令的后续指令。如此,本专利技术同时向处理器核提供一个分支的两支指令,以分支判断做选择,实现无损分支。本专利技术不依靠分支预测,避免了分支预测带来的损失(mis-predictionpenalty)。当处理器108译码经107送入的指令发现该指令是分支指令,而相应的分支指令地址在BTB115中未获得匹配的情形为BTB缺失。BTB缺失时如分支判断110为‘不分支’,则控制选择器116选择顺序指令111供处理器核108执行。BTB缺失时如分支判断110为‘分支’,则处理器108经指令地址106送出分支目标指令地址以寻址指令存储器105。105经111提供分支目标指令,此时选择器116要选择111送往处理器核108执行。并且在BTB115中建立该分支指令地址/分支目标指令对。之后,处理器108经指令地址106送出分支目标地址的后续地址,寻址指令存储器105向108提供指令。也就是说,当分支判断110为‘不分支’时,处理器核108提供的指令地址106为顺序指令地址(包括分支指令地址)。当分支判断110为‘分支’且BTB115匹配命中时,所述指令地址106为分支目标指令的后续指令的地址。当分支判断110为‘分支’且BTB匹配不命中时,所述指令地址106为分支目标指令的地址。这里顺序指令地址是由前一指令地址加一条指令的字节数。当指令译码为非分支指令,或是条件分支指令但分支条件不满足时,分支判断为‘不分支’。当指令译码为无条件分支指令,或是条件分支指令且分支条件满足时,分支判断为‘分支’。图3是本专利技术所述以分支判断处理分支的另一个实施例。此实施例中,101是存储分支指令地址/分支目标指令地址对(pair)的BTB,125是具有两个读口(readport)的指令存储器,116是选择器,108是处理器核。108产生指令地址106,106寻址指令存储器125的第一个读口,该第一读口提供顺序指令111。106也与101中的分支指令地址比较。如果101中的一个分支指令地址与指令地址106匹配,则BTB101提供相应的分支目标指令地址。该分支目标指令地址寻址指令存储器125的第二个读口,经该第二读口提供相应的分支目标指令112。此时106提供分支指令后第一条指令的地址,寻址指令存储器125的第一读口,该第一读口提供分支指令后第一条指令111。处理器核108也产生分支判断110以控制选择器116。如110的值为‘不分支’,则116选择分支指令后第一条指令111经总线107提本文档来自技高网...

【技术保护点】
1.一种分支(Branch)处理方法,其特征是提供分支指令后的分支目标及顺序两支指令由处理器核产生的分支判断选择一支指令供处理器核执行;分支目标缓冲器BTB中成对存储分支指令地址、以及相应的分支目标指令地址;由处理器核提供指令地址,该指令地址寻址第一存储装置,由第一存储装置提供顺序指令;该指令地址也与分支目标缓冲器(BTB)中存储的分支指令地址匹配,如处理器核指令地址与BTB中存储的一条分支指令地址匹配,则BTB提供与该分支指令地址对应的分支目标指令地址;该分支目标指令地址寻址第二存储装置,由第二存储装置提供分支目标指令;如果处理器核产生的分支判断为‘不分支’,选择第一存储装置提供的顺序指令供处理器核处理;如果处理器核产生的分支判断为‘分支’,选择第二存储装置提供的分支目标指令供处理器核处理。

【技术特征摘要】
2017.04.13 CN 20171028206531.一种分支(Branch)处理方法,其特征是提供分支指令后的分支目标及顺序两支指令由处理器核产生的分支判断选择一支指令供处理器核执行;分支目标缓冲器BTB中成对存储分支指令地址、以及相应的分支目标指令地址;由处理器核提供指令地址,该指令地址寻址第一存储装置,由第一存储装置提供顺序指令;该指令地址也与分支目标缓冲器(BTB)中存储的分支指令地址匹配,如处理器核指令地址与BTB中存储的一条分支指令地址匹配,则BTB提供与该分支指令地址对应的分支目标指令地址;该分支目标指令地址寻址第二存储装置,由第二存储装置提供分支目标指令;如果处理器核产生的分支判断为‘不分支’,选择第一存储装置提供的顺序指令供处理器核处理;如果处理器核产生的分支判断为‘分支’,选择第二存储装置提供的分支目标指令供处理器核处理。2.根据权利要求1所述的分支处理方法,其特征在于如果处理器核提供的指令在BTB中没有匹配,而处理器核产生的相应分支判断为‘分支’,则以处理器核此时产生的分支目标指令地址寻址第二存储装置;第二存储装置输出分支目标指令;值为‘分支’的分支判断选择第二存储装置提供的分支目标指令供处理器处理;以及将分支指令地址/分支目标指令地址对存入BTB。3.根据权利要求1所述的分支处理方法,其特征在于所述第一存储装置与第二存储装置为同一存储装置的第一及第二读口;该第一读口由独立的地址寻址;以及该第二读口由另一个独立的地址寻址。4.根据权利要求1所述的分支处理方法,其特征在于所述第一存储装置与第二存储装置为复数个分立的存储装置;该第一存储装置由独立的地址寻址;以及该第二存储装置由另一个独立的地址寻址。5.根据权利要求4所述的分支处理方法,其特征在于所述第一存储装置能存储复数条指令;当处理器核产生的分支判断为分支时,由第二存储装置输出的复数条指令存入第一存储装置。6.根据权利要求5所述的分支处理方法,其特征在于将处理器核提供的指令地址中的指令行地址,与一个指令行中含有的字节数相加得到顺序下一指令行的指令行地址;当指令行地址中的块内偏移地址指向第一存储装置中最后一条指令时,以所述顺序下一指令行的行地址寻址第二存储装置,由第二存储装置提供顺序下一指令行,将该指令行存入第一存储装置。7.根据权利要求1所述的分支处理方法,其特征在于具有两个独立的指令译码器;第一指令译码器译码由处理器核提供指令地址寻址第一存储装置所提供的顺序指令;第二...

【专利技术属性】
技术研发人员:林正浩
申请(专利权)人:上海芯豪微电子有限公司
类型:发明
国别省市:上海,31

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

1