A branch processing system and method. The system and method include the processor executes instructions before the required instruction prefetch to the cache; determine whether the processor instructions to be executed is branch instructions, and provide the branch instruction branch target instruction address and the branch instruction in the program after a sequence of instruction address. The system and method also includes at least according to the branch target instruction address of the branch instruction branch and branch according to the judgment, judgment, reach its in the pipeline execution in the branch instruction, select at least the branch target instruction and instruction in an execution unit as the instruction to be executed, which makes the transfer no matter whether the branch instruction will not lead to suspend pipeline operation.
【技术实现步骤摘要】
本专利技术涉及电子计算机和微处理器体系结构领域,具体涉及分支处理方法与系统。
技术介绍
控制相关(controlhazards)也称为分支(Branch),是流水线性能损失的一大原因。在处理分支指令时,传统处理器无法提前知道应该从哪里获取分支指令之后执行的下一条指令,而是需要等到分支指令完成后才能知道,使得流水线中分支指令之后出现空周期。图1是显示了传统流水线结构,其中的流水线段对应了一条分支指令。表1分支指令的流水线段(分支转移发生时)顺序iIFIDEXMEMWBi+1IFstallstallstall目标IFIDEXMEM目标+1IFIDEX目标+2IFID指令地址ii+1目标目标+1目标+2目标+3目标+4获取指令ii+1目标目标+1目标+2目标+3时钟周期1234 ...
【技术保护点】
一种分支处理方法,其特征在于所述方法包括:判断写入缓存的指令的指令类型,并记录该指令类型;当该指令是分支指令时,计算该分支指令的分支目标指令地址,并记录该分支目标指令地址对应的目标地址信息;该目标地址信息对应至少包含该分支目标指令在内的一个指令段;若该分支目标指令尚未存储在缓存中,则根据该分支目标指令地址将至少包含该分支目标指令的指令段填充到缓存中与该目标地址信息对应的位置中,使得处理器核执行该分支指令之前,该分支指令的后一指令及分支目标指令都已存储在缓存中。
【技术特征摘要】
1.一种分支处理方法,其特征在于所述方法包括:
判断写入缓存的指令的指令类型,并记录该指令类型;当该指令是分支指
令时,
计算该分支指令的分支目标指令地址,并记录该分支目标指令地址对应的
目标地址信息;该目标地址信息对应至少包含该分支目标指令在内的一个指令
段;
若该分支目标指令尚未存储在缓存中,则根据该分支目标指令地址将至少
包含该分支目标指令的指令段填充到缓存中与该目标地址信息对应的位置中,
使得处理器核执行该分支指令之前,该分支指令的后一指令及分支目标指令都
已存储在缓存中。
2.根据权利要求1所述方法,其特征在于:
对于缓存中的每条指令,均有一个指令类型和一个目标地址信息与之对应。
3.根据权利要求2所述方法,其特征在于:
所述指令类型可以包括有条件的分支指令。
4.根据权利要求2所述方法,其特征在于:
所述指令类型还可以包括无条件的分支指令。
5.根据权利要求2所述方法,其特征在于:
所述指令类型还可以包括非分支指令。
6.根据权利要求2所述方法,其特征在于:
对于每条指令,还可以有一个有效位与之对应;所述有效位表示对应的目
标地址信息是否有效。
7.根据权利要求6所述方法,其特征在于:
若一个目标地址信息对应的指令段被替换出缓存,则将该目标地址信息对
应的有效位设置为无效。
8.根据权利要求7所述方法,其特征在于:
若即将被处理器核执行的分支指令对应的有效位表示为无效,则重新计算
该分支指令的分支目标指令地址,并记录该分支目标指令地址对应的目标地址
信息。
9.根据权利要求8所述方法,其特征在于:
若该分支目标指令尚未存储在缓存中,则根据该分支目标指令地址将至少
包含分支目标指令的指令段填充到缓存中与该分支指令相应的目标地址信息对
\t应的位置中,使得处理器核执行该分支指令之前,该分支指令的后一指令及分
支目标指令都已存储在缓存中。
10.根据权利要求4、6所述方法,其特征在于:
若即将被处理器核执行的分支指令是间接分支指令且有效位表示为有效,
则在处理器核计算得到分支目标地址前,猜测执行该间接分支指令的后续指令,
即将该间接分支指令对应的目标地址信息作为后续指令的位置,使得流水线操
作不会因为间接分支指令而暂停。
11.根据权利要求10所述方法,其特征在于:
在处理器核计算得到间接分支目标地址后,将该分支目标地址与该间接分
支指令对应的目标地址信息对应的分支目标地址进行比较,并根据比较结果决
定后续操作。
12.根据权利要求11所述方法,其特征在于:
若比较结果为不相等且发生分支转移,则以处理器核计算得到分支目标地
址作为该间接分支指令的后续指令地址。
13.根据权利要求12所述方法,其特征在于:
记录该分支目标地址对应的目标地址信息;该目标地址信息对应至少包含
该分支目标指令在内的一个指令段;
若该分支目标指令尚未存储在缓存中,则根据该分支目标指令地址将至少
包含该分支目标指令的指令段填充到缓存中与该目标地址信息对应的位置中。
14.根据权利要求2所述方法,其特征在于所述方法进一步包括:
从缓存同时向处理器核提供所述后一指令及分支目标指令;
决定对应于分支指令的分支判定;和
根据所述分支判定,在所述分支指令到达其在流水线中的执行段前,选择
至少所述分支目标指令和所述后一指令中的一个作为所述执行单元将要执行的
指令,使得无论所述分支指令的转移是否发生都不会导致流水线操作的暂停。
15.根据权利要求14所述方法,其特征在于:
对该分支指令对应的目标地址信息进行递增,可以提供缓存中所述分支目
标指令所在指令段的寻址地址;若该分支指令的执行结果为分支转移成功发生,
则将该递增目标地址信息作为新的寻址地址进行后续操作。
16.根据权利要求15所述方法,其特征在于:
记录该分支指令之后顺序执行的指令的位置信息;对该分支指令本身的地
址进行递增,可以提供缓存中该分支指令所在指令段的寻址地址;
若该分支指令的执行结果为分支转移不发生,则将该递增地址的地址信息
作为新的寻址地址进行后续操作。
17.根据权利要求16所述方法,其特征在于:
当分支指令本身地址递增后已经到达指令段最后一条指令时,可以继续对
该地址进行递增,从而指向与该指令段地址相邻的后一指令段中的指令,同时
将该递增地址的地址信息作为新的寻址地址进行后续操作。
18.根据权利要求17所述方法,其特征在于:
根据所述分支判定,当所述分支指令的执行结果表示该分支转移没有成功
发生时,放弃由分支目标地址递增得到的地址信息,仅使用由分支指令本身地
址递增得到的地址信息作为新的寻址地址。
19.根据权利要求2所述方法,其特征在于:
所述指令类型还可以包含函数调用指令和函数返回指令。
20.根据权利要求19所述方法,其特征在于:
当处理器核执行函数调用指令时,将函数返回地址对应的目标地址信息压
栈存储到一...
【专利技术属性】
技术研发人员:林正浩,林穆云,任浩琪,
申请(专利权)人:上海芯豪微电子有限公司,
类型:发明
国别省市:上海;31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。