分支处理方法与系统的制作方法

文档序号:6559366阅读:174来源:国知局
专利名称:分支处理方法与系统的制作方法
技术领域
本发明涉及电子计算机和微处理器体系结构领域,具体涉及分支处理方法与系统。
背景技术
控制相关(control hazards)也称为分支(Branch),是流水线性能损失的一大原因。在处理分支指令时,传统处理器无法提前知道应该从哪里获取分支指令之后执行的下一条指令,而是需要等到分支指令完成后才能知道,使得流水线中分支指令之后出现空周期。图I是显示了传统流水线结构,其中的流水线段对应了一条分支指令。表I分支指令的流水线段(分支转移发生时)
权利要求
1.一种控制处理器流水线操作的方法,所述处理器连接包含可执行的计算机指令的存储器;其特征在于所述方法包括 判断处理器即将执行的指令是否是分支指令; 提供所述分支指令的分支目标指令地址和所述分支指令在程序序列中的后一指令地址; 决定对应于分支指令的分支判定;和 根据所述分支判定,在所述分支指令到达其在流水线中的执行段前,选择至少所述分支目标指令和所述后一指令中的一个作为所述执行单元将要执行的指令,使得无论所述分支指令的转移是否发生都不会导致流水线操作的暂停。
2.根据权利要求I所述方法,其特征在于 根据分支类型和分支状态标志决定分支判定。
3.根据权利要求I所述方法,其特征在于所述选择进一步包括 根据所述分支判定,选择分支目标指令地址和后一指令地址中的一个;和根据分支目标指令地址和后一指令地址中被选择的一个地址,获取分支目标指令和后一指令中的一个供给执行单元。
4.根据权利要求I所述方法,其特征在于所述选择进一步包括 使用分支目标指令地址和后一指令地址从存储器中相应获取分支目标指令和后一指令;和 根据分支判定,选择获取到的分支目标指令和获取到的后一指令中的一个供给执行单J Li ο
5.根据权利要求I所述方法,其特征在于所述选择进一步包括 根据分支目标指令的地址从一个储存装置中获取分支目标指令; 根据后一指令地址从存储器中获取后一指令;和 根据分支判定,选择获取到的分支目标指令和获取到的后一指令中的一个供给执行单J Li ο
6.根据权利要求2所述方法,其特征在于所述提供进一步包括 通过审查可执行的计算机指令,提取出至少包含分支信息的指令信息; 根据提取的指令信息建立复数条轨道;和 根据所述复数条轨道确定分支目标指令的地址。
7.根据权利要求6所述方法,其特征在于所述建立复数条轨道进一步包括 建立一个轨道表;所述轨道表包含对应复数条轨道的复数个轨道表行,每个表行对应一条轨道并包含复数个表项,每个表项对应一个轨迹点,每个所述轨迹点对应至少一条指令。
8.根据权利要求7所述方法,其特征在于所述方法进一步包括 根据由第一地址确定的轨道号和由第二地址确定的轨道内偏移量对轨迹点寻址。
9.根据权利要求8所述方法,其特征在于 由轨道表提供分支类型;和 由处理器提供分支状态标志。
10.根据权利要求8所述方法,其特征在于当处理器提供的程序计数器(PC)偏移量等于轨道表分支轨迹点中的偏移量时,进行分支判定。
11.根据权利要求8所述方法,其特征在于 当处理器执行轨迹点对应的一条指令时,由第一地址确定包含所述指令的存储单元块,根据处理器提供的偏移量在所述存储单元块中可找到所述指令。
12.根据权利要求11所述方法,其特征在于所述方法进ー步包括 可以通过对所述分支指令所在存储单元块的块地址、所述分支指令在所述存储单元块
13.根据权利要求12所述方法,其特征在于所述方法进ー步包括 将所述分支目标指令地址作为表项内容存储到轨道表中所述分支指令对应的表项中。·
14.根据权利要求13所述方法,其特征在于所述方法进ー步包括 当转移成功吋,将所述分支指令对应表项中存储的第一地址和第二地址相应作为下ー第一地址和下一第二地址;和 当转移不成功吋,保持当前第一地址不变作为下ー第一地址,并对当前第二地址加ー作为下ー第二地址,从而到达轨道表中的下一轨迹点。
15.根据权利要求13所述方法,其特征在于所述方法进ー步包括 当转移成功吋,将处理器的程序计数器強制置为分支目标指令的后一指令的地址,使得处理器在执行分支目标指令的同时获取所述分支目标指令的后一指令。
16.根据权利要求I所述方法,其特征在于 分支指令可以与非分支指令结合,使所述分支指令的分支执行过程与所述非分支指令的执行过程同时进行。
17.ー种用于控制处理器流水线操作的流水线控制系统;所述处理器连接包含可执行的计算机指令的存储器;其特征在于所述系统包括 一个审查単元,用于判断处理器即将执行的指令是否为分支指令; 一个连接处理器的寻址单元,用于提供所述分支指令的分支目标指令地址和所述分支指令在程序序列中的后一指令地址; 一个分支逻辑单元,用于至少根据轨道単元提供的分支目标指令地址决定关于所述分支指令的分支判定;和 一个选择器,用于根据分支逻辑单元提供的分支判定,在所述分支指令到达其在流水线中的执行段之前,选择分支目标指令和后一指令中的至少ー个作为所述执行单元将要执行的指令,使得无论所述分支指令的转移是否发生都不会导致流水线操作的暂停。
18.根据权利要求17所述系统,其特征在干 所述选择器根据分支判定选择分支目标指令地址和后一指令地址中的ー个,从而实现选择分支目标指令和后一指令中的至少ー个;和 所述流水线控制系统进一歩包括 一个获取単元,用于根据分支目标指令地址和后一指令地址中被选出的ー个地址从存储器中获取分支目标指令和后一指令中的ー个,供给执行単元。
19.根据权利要求17所述系统,其特征在干 所述流水线控制系统进一歩包括一个获取単元,用于使用分支目标指令地址和后一指令地址相应地从存储器中获取分支目标指令和后一指令;和 所述选择器根据分支判定选择所述获取到的分支目标指令和所述获取到的后一指令中的一个供给执行单元,从而实现选择分支目标指令和后一指令中的至少ー个。
20.根据权利要求17所述系统,其特征在于所述系统进一歩包括 一个获取单元和一个储存 装置,其中 所述获取単元用于 根据分支目标指令地址从所述储存装置中获取分支目标指令;和 根据后一指令地址从存储器中获取后一指令;和 所述选择器根据分支判定选择所述获取到的分支目标指令和所述获取到的后一指令中的一个供给执行单元。
21.根据权利要求17所述系统,其特征在干 所述审查単元可以进ー步用于 通过审查所述可执行的计算机指令,提取出至少包含分支信息的指令信息;和为实现提供所述分支指令的分支目标指令地址和后一指令地址,所述轨道単元可以进一步用于 根据提取的指令信息建立复数条轨道;和 根据所述复数条轨道确定分支目标指令的地址。
22.根据权利要求21所述系统,其特征在于所述寻址单元进ー步包括 一个轨道表;所述轨道表包含对应复数条轨道的复数个轨道表行,每个表行对应一条轨道并包含复数个表项,姆个表项对应一个轨迹点,姆个所述轨迹点对应至少一条指令。
23.根据权利要求17所述系统,其特征在干 分支指令可以与非分支指令结合,使所述分支指令的分支执行过程与所述非分支指令的执行过程同时进行。
24.根据权利要求17所述系统,其特征在干 分支指令可以作为包含所述分支指令和一条非分支指令的复合指令的一部分。
25.根据权利要求24所述系统,其特征在于 所述复合指令包括一个分支位用于表示所述复合指令中包含的分支指令是否将被执行;和 基于ー个预先设置的寄存器的内容对所述复合指令中的分支指令进行分支判断。
26.—种控制处理器流水线操作的方法,所述处理器连接包含可执行的计算机指令的存储器;其特征在于所述方法包括 判断处理器即将执行的指令是否是分支指令; 提供所述分支指令的分支目标指令地址和所述分支指令在程序序列中的后一指令地址; 根据所述分支目标指令地址和所述后一指令地址相应获取分支目标指令和后一指令; 对所述获取到的分支目标指令和后一指令进行译码;和 根据处理器提供的分支判定选择所述被译码的分支目标指令和被译码的后一指令供给执行単元,使得无论所述分支指令的转移是否发生都不会导致流水线操作的暂停。
27.根据权利要求26所述方法,其特征在于所述提供进ー步包括通过审查所述可执行的计算机指令,提取出至少包含分支信息的指令信息; 根据提取的指令信息建立复数条轨道;和 根据所述复数条轨道确定分支目标指令的地址。
28.根据权利要求27所述方法,其特征在于所述建立复数条轨道进一歩包括 建立一个轨道表;所述轨道表包含对应复数条轨道的复数个轨道表行,每个表行对应一条轨道并包含复数个表项,姆个表项对应一个轨迹点,姆个所述轨迹点对应至少一条指令。
29.ー种用于控制处理器流水线操作的流水线控制系统;所述处理器连接包含可执行的计算机指令的存储器;其特征在于所述系统包括 一个连接处理器的寻址单元,用于提供所述分支指令的分支目标指令地址和所述分支指令在程序序列中的后一指令地址; 一个连接存储器和处理器的读缓冲,用于至少存储分支指令的分支目标指令和所述后一指令中的ー个; 其中,读缓冲还包括一个连接处理器的选择器,用于在分支指令被执行时,向处理器提供分支目标指令或后一指令中的ー个,使得无论所述分支指令的转移是否发生都不会导致流水线操作的暂停。
30.根据权利要求29所述系统,其特征在于 所述存储器在ー个周期内能够输出至少两条指令;和 所述读缓冲在ー个周期内能够存储至少两条指令。
31.根据权利要求30所述系统,其特征在于 所述存储器包括一个带宽高于处理器指令发射速率的单端ロ存储模块。
32.根据权利要求30所述系统,其特征在于指令地址中的一部分用于从存储器中的一个存储块中读出至少两条指令;和 指令地址中的另一部分用于从所述至少两条指令中选出所述指令。
33.根据权利要求30所述系统,其特征在于 在第一个周期内,分支目标指令地址被送到存储器用于读出包含分支目标指令在内的至少两条指令。
34.根据权利要求33所述系统,其特征在于 在第二个周期内,存储器输出所述包含分支目标指令在内的至少两条指令,且分支指令地址被送到存储器用于读出包含分支指令在内的至少两条指令。
35.根据权利要求34所述系统,其特征在于 在第三个周期内,所述包含分支目标指令在内的至少两条指令被存储到读缓冲中,存储器输出所述包含分支指令在内的至少两条指令,且后一指令地址被送到存储器用于读出包含后一指令在内的至少两条指令。
36.根据权利要求35所述系统,其特征在于 在第四个周期内,读缓冲输出所述包含分支目标指令在内的至少两条指令,且存储器输出所述包含后一指令在内的至少两条指令。
37.根据权利要求35所述系统,其特征在于 一个来自处理器的表示分支是否成功发生的控制信号用于决定选择所述包含分支目标指令在内的至少两条指令,或选择所述包含后一指令在内的至少两条指令。
38.根据权利要求37所述系统,其特征在于 程序计数器偏移量的一部分用于从所述包含分支目标指令在内的至少两条指令中选出分支目标指令,或从所述包含后一指令在内的至少两条指令中选出后一指令。
39.根据权利要求29所述系统,其特征在于 所述寻址単元包括ー个包含对应复数条轨道的复数个轨道表行的轨道表,每个表行对应一条轨道并包含复数个表项,姆个表项对应一个轨迹点,姆个轨迹点对应至少一条指令。
40.根据权利要求39所述系统,其特征在于 所述轨道表中存储了对应于轨道表中分支指令的作为表项的内容的分支目标指令地址。
41.ー种用于控制处理器流水线操作的流水线控制系统;所述处理器连接包含可执行的计算机指令的存储器;其特征在于所述系统包括 一个连接处理器的寻址单元,用于提供所述分支指令的分支目标指令地址和所述分支指令在程序序列中的后一指令地址; 一个连接存储器和处理器的读缓冲,用于存储当前指令所在的指令段; 其中,读缓冲还包括一个连接处理器的选择器,用于在分支指令被执行时,向处理器提供分支目标指令或分支指令的后一指令中的ー个,使得无论所述分支指令的转移是否发生都不会导致流水线操作的暂停。
42.根据权利要求41所述系统,其特征在干 使用来自寻址単元的分支目标地址从所述存储器中选出分支目标指令的后一指令;和 使用来自处理器的程序计数器偏移量从读缓冲中选出当前指令的后一指令。
43.根据权利要求42所述系统,其特征在于 一个来自处理器的表示分支是否成功发生的控制信号用于决定选择来源于所述存储器的分支目标指令,或选择所述来源于读缓冲的当前指令的后一指令。
44.根据权利要求41所述系统,其特征在干 可以根据当前指令的类型,对送到存储器的分支目标指令地址进行锁存。1
45.根据权利要求41所述系统,其特征在干 所述寻址単元包括ー个包含对应复数条轨道的复数个轨道表行的轨道表,每个表行对应一条轨道并包含复数个表项,姆个表项对应一个轨迹点,姆个轨迹点对应至少一条指令。
46.根据权利要求45所述系统,其特征在于 所述轨道表中存储了对应于轨道表中分支指令的作为表项的内容的分支目标指令地址。
47.ー种用于控制处理器流水线操作的流水线控制系统;所述处理器连接ー个包含可执行的计算机指令的存储器和一个比所述存储器速度更快的指令缓冲;其特征在于所述流水线控制系统包括 一个预检测控制単元,用于控制一个沿读缓冲以比指向当前正在被处理器核执行的当前指令指针更快速度移动的领先指针;所述预检测控制単元可进ー步对领先指针经过的指令进行审查,从而提取出至少包含分支指令信息和最后更新分支指令的分支判断条件或条件标志的指令信息的指令信息,使得领先指针停止在至少一条分支指令处;和 一个时间点检测单元,用于在最后更新该分支指令分支条件或条件标志的指令执行后进行分支判定,从而在所述分支指令执行前就可确定其后应被处理器执行的指令是分支目标指令还是所述分支指令后的指令,使得无论所述分支指令的转移是否发生都不会导致流水线操作的暂停。
48.根据权利要求47所述系统,其特征在于所述流水线控制系统还可以进ー步用于根据提取出的指令信息建立对应指令段的轨道;所述轨道包含复数个轨迹点,每个对应指令段中的一条指令。
49.根据权利要求47所述系统,其特征在于所述流水线控制系统进ー步用于 将所有更新分支指令分支条件或条件标志的指令的位置信息存储到相应的位置寄存器中; 对当前指令指针和存储在位置寄存器中的对应至少一条分支指令的位置信息进行比较;和 如果当前指令指针大于或等于存储在所述位置寄存器中的位置信息时,生成ー个信号从而进行分支判定。
50.根据权利要求47所述系统,其特征在于 所述分支指令信息包括直接寻址分支指令信息和间接寻址分支指令信息。
全文摘要
一种控制处理器流水线操作的方法。该处理器连接一个包含可执行的计算机指令的存储器。该方法包括判断处理器即将执行的指令是否是分支指令,并提供该分支指令的分支目标指令地址和该分支指令在程序序列中的后一指令地址。该方法还包括至少根据分支目标指令的地址对分支指令的分支判定,并根据该分支判断,在分支指令到达其在流水线中的执行段前,至少选择分支目标指令和后一指令中的一个作为执行单元将要执行的指令,使得无论分支指令的转移是否发生都不会导致流水线操作的暂停。
文档编号G06F9/38GK102855121SQ20111018441
公开日2013年1月2日 申请日期2011年6月29日 优先权日2011年6月29日
发明者林正浩 申请人:上海芯豪微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1