【技术实现步骤摘要】
分支处理方法与系统
本专利技术涉及电子计算机和微处理器体系结构领域,具体涉及分支处理方法与系统。
技术介绍
控制相关(controlhazards)也称为分支(Branch),是流水线性能损失的一大原因。在处理分支指令时,传统处理器无法提前知道应该从哪里获取分支指令之后执行的下一条指令,而是需要等到分支指令完成后才能知道,使得流水线中分支指令之后出现空周期。图1是显示了传统流水线结构,其中的流水线段对应了一条分支指令。表1分支指令的流水线段(分支转移发生时)顺序iIFIDEXMEMWBi+1IFstallstallstall目标IFIDEXMEM目标+1IFIDEX目标+2IFID指令地址ii+1目标目标+1目标+2目标+3目标+4获取指令ii+1目标目标+1目标+2目标+3时钟周期1234567结合图1与表1一同说明,表1中的列表示流水线中的时钟周期,而行表示按顺序的指令。指令地址是提供给指令存储器用于在获取指令时进行寻址,之后指令存储器的输出被送到译码器对获取到的指令进行译码。该流水线包括指令获取(IF)、指令译码(ID)、执行(EX)、存储器访问(MEM)和 ...
【技术保护点】
一种控制处理器流水线操作的方法,所述处理器连接包含可执行的计算机指令的存储器;其特征在于所述方法包括:判断处理器即将执行的指令是否是分支指令;提供所述分支指令的分支目标指令地址和所述分支指令在程序序列中的后一指令地址;决定对应于分支指令的分支判定;和根据所述分支判定,在所述分支指令到达其在流水线中的执行段前,选择至少所述分支目标指令和所述后一指令中的一个作为所述执行单元将要执行的指令,使得无论所述分支指令的转移是否发生都不会导致流水线操作的暂停。
【技术特征摘要】
1.一种控制处理器流水线操作的方法,所述处理器连接包含可执行的计算机指令的存储器;所述方法包括:判断处理器即将执行的指令是否是分支指令;提供所述分支指令的分支目标指令地址和所述分支指令在程序序列中的后一指令地址;决定对应于分支指令的分支判定;和根据所述分支判定,在所述分支指令到达其在流水线中的执行段前,选择至少所述分支目标指令和所述后一指令中的一个作为处理器中执行单元将要执行的指令,使得无论所述分支指令的转移是否发生都不会导致流水线操作的暂停;通过审查可执行的计算机指令,提取出至少包含分支信息的指令信息;根据提取的指令信息建立复数条轨道;和根据所述复数条轨道确定分支目标指令的地址;建立一个轨道表;所述轨道表包含对应复数条轨道的复数个轨道表行,每个表行对应一条轨道并包含复数个表项,每个表项对应一个轨迹点,每个所述轨迹点对应至少一条指令。2.根据权利要求1所述方法,其特征在于:根据分支类型和分支状态标志决定分支判定。3.根据权利要求1所述方法,其特征在于所述选择进一步包括:根据所述分支判定,选择分支目标指令地址和后一指令地址中的一个;和根据分支目标指令地址和后一指令地址中被选择的一个地址,获取分支目标指令和后一指令中的一个供给执行单元。4.根据权利要求1所述方法,其特征在于所述选择进一步包括:使用分支目标指令地址和后一指令地址从存储器中相应获取分支目标指令和后一指令;和根据分支判定,选择获取到的分支目标指令和获取到的后一指令中的一个供给执行单元。5.根据权利要求1所述方法,其特征在于所述选择进一步包括:根据分支目标指令的地址从一个储存装置中获取分支目标指令;根据后一指令地址从存储器中获取后一指令;和根据分支判定,选择获取到的分支目标指令和获取到的后一指令中的一个供给执行单元。6.根据权利要求1所述方法,其特征在于所述方法进一步包括:根据由第一地址确定的轨道号和由第二地址确定的轨道内偏移量对轨迹点寻址。7.根据权利要求6所述方法,其特征在于:由轨道表提供分支类型;和由处理器提供分支状态标志。8.根据权利要求6所述方法,其特征在于:当处理器提供的程序计数器(PC)偏移量等于轨道表分支轨迹点中的偏移量时,进行分支判定。9.根据权利要求6所述方法,其特征在于:当处理器执行轨迹点对应的一条指令时,由第一地址确定包含所述指令的存储单元块,根据处理器提供的偏移量在所述存储单元块中可找到所述指令。10.根据权利要求9所述方法,其特征在于所述方法进一步包括:可以通过对所述分支指令所在存储单元块的块地址、所述分支指令在所述存储单元块中的偏移量、转移到分支目标指令的转移偏移量三者求和,计算出分支目标指令的地址。11.根据权利要求10所述方法,其特征在于所述方法进一步包括:将所述分支目标指令地址作为表项内容存储到轨道表中所述分支指令对应的表项中。12.根据权利要求11所述方法,其特征在于所述方法进一步包括:当转移成功时,将所述分支指令对应表项中存储的第一地址和第二地址相应作为下一第一地址和下一第二地址;和当转移不成功时,保持当前第一地址不变作为下一第一地址,并对当前第二地址加一作为下一第二地址,从而到达轨道表中的下一轨迹点。13.根据权利要求11所述方法,其特征在于所述方法进一步包括:当转移成功时,将处理器的程序计数器强制置为分支目标指令的后一指令的地址,使得处理器在执行分支目标指令的同时获取所述分支目标指令的后一指令。14.根据权利要求1所述方法,其特征在于:分支指令可以与非分支指令结合,使所述分支指令的分支执行过程与所述非分支指令的执行过程同时进行。15.一种用于控制处理器流水线操作的流水线控制系统;所述处理器连接包含可执行的计算机指令的存储器;所述系统包括:一个审查单元,用于判断处理器即将执行的指令是否为分支指令;一个连接处理器的寻址单元,用于提供所述分支指令的分支目标指令地址和所述分支指令在程序序列中的后一指令地址;一个分支逻辑单元,用于至少根据轨道单元提供的分支目标指令地址决定关于所述分支指令的分支判定;和一个选择器,用于根据分支逻辑单元提供的分支判定,在所述分支指令到达其在流水线中的执行段之前,选择分支目标指令和后一指令中的至少一个作为处理器中执行单元将要执行的指令,使得无论所述分支指令的转移是否发生都不会导致流水线操作的暂停;其特征在于,所述审查单元可以进一步用于:通过审查所述可执行的计算机指令,提取出至少包含分支信息的指令信息;和为实现提供所述分支指令的分支目标指令地址和后一指令地址,所述轨道单元可以进一步用于:根据提取的指令信息建立复数条轨道;和根据所述复数条轨道确定分支目标指令的地址;一个轨道表;所述轨道表包含对应复数条轨道的复数个轨道表行,每个表行对应一条轨道并包含复数个表项,每个表项对应一个轨迹点,每个所述轨迹点对应至少一条指令。16.根据权利要求15所述系统,其特征在于:所述选择器根据分支判定选择分支目标指令地址和后一指令地址中的一个,从而实现选择分支目标指令和后一指令中的至少一个;和所述流水线控制系统进一步包括:一个获取单元,用于根据分支目标指令地址和后一指令地址中被选出的一个地址从存储器中获取分支目标指令和后一指令中的一个,供给执行单元。17.根据权利要求15所述系统,其特征在于:所述流水线控制系统进一步包括:一个获取单元,用于使用分支目标指令地址和后一指令地址相应地从存储器中获取分支目标指令和后一指令;和所述选择器根据分支判定选择所述获取到的分支目标指令和所述获取到的后一指令中的一个供给执行单元,从而实现选择分支目标指令和后一指令中的至少一个。18.根据权利要求15所述系统,其特征在于所述系统进一步包括:一个获取单元和一个储存装置,其中:所述获取单元用于:根据分支目标指令地址从所述储存装置中获取分支目标指令;和根据后一指令地址从存储器中获取后一指令;和所述选择器根据分支判定选择所述获取到的分支目标指令和所述获取到的后一指令中的一个供给执行单元。19.根据权利要求15所述系统,其特征在于:分支指令可以与非分支指令结合,使所述分支指令的分支执行过程与所述非分支指令的执行过程同时进行。20.根据权利要求15所述系统,其特征在于:分支指令可以作为包含所述分支指令和一条非分支指令的复合指令的一部分。21.根据权利要求20所述系统,其特征在于:所述复合指令包括一个分支位用于表示所述复合指令中包含的分支指令是否将被执行;和基于一个预先设置的寄存器的内容对所述复合指令中的分支指令进行分支判断。22.一种控...
【专利技术属性】
技术研发人员:林正浩,
申请(专利权)人:上海芯豪微电子有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。