一种支持多路并行预测的分支预测装置,所述分支预测装置包括:一个指令预取单元,用于在一个时钟周期内并行预取n条指令,n为自然数,且n≥2;n路并行预测单元,用于设置n路并行预测子单元,对n条分支跳转指令进行并行预测;一个控制电路,用于检测整个分支预测装置的状态,连接分支预测存储器,为其提供读使能信号和写使能信号,连接索引选择器,为其提供选通信号;本发明专利技术提供一种解决多条分支跳转指令同时预测,提高预测准确率的支持多路并行预测的分支预测装置。
【技术实现步骤摘要】
本专利技术涉及计算机系统,更具体地说,涉及一种使用分支预测表进行分支预测的处理器。
技术介绍
目前,包括嵌入式处理器在内的所有处理器,都是用流水线方式,指令处理分为一系列的操作,且由各个的流水线执行相应的操作。不同的流水线级同时对不同的指令进行操作,使得指令的执行可以重叠进行以提高效率。为了充分利用这个指令执行能力,必须由正确的执行路径想该处理器提供足够的指令,而分支跳转指令的存在,将导致流水线的停顿。预测机制的出现使处理器可以以投机执行的方式继续执行指令,从而提高了执行的效率。在有指令多发机制的嵌入式处理器中,在同一级流水线有一条或多于一条的指令需要处理。当只有一条分支跳转指令时,传统的非并行的结合历史相关的分支预测装置可以很好地预测。但当遇到同时有多条分支跳转指令时,预测将出现问题。这是因为历史相关的分支预测中,前一条分支跳转的跳转情况将影响后一条分支跳转的预测。而在同一级流水线中的前后几条分支跳转指令的互相影响并不能做到及时获取预测信息,造成了预测效率的低下。
技术实现思路
为了克服已有的嵌入式处理器的分支预测机制存在的对多发处理器支持不力导致的预测准确率较低的不足,本专利技术提供一种解决多条分支跳转指令同时预测,提高预测准确率的支持多路并行预测的分支预测装置。本专利技术解决其技术问题所采用的技术方案是一种支持多路并行预测的分支预测装置,所述分支预测装置包括—个指令预取单元,用于在一个时钟周期内并行预取η条指令,η为自然数,且 η彡2 ;η路并行预测单元,用于设置η路并行预测子单元,对η条分支跳转指令进行并行预测;一个控制电路,用于检测整个分支预测装置的状态,连接分支预测存储器,为其提供读使能信号和写使能信号,连接索引选择器,为其提供选通信号;所述并行预测子单元包括分支预测存储器,用于记录分支跳转指令的分支预测信息,并输出预测的分支结果,所述分支跳转指令包含在Π条指令中;全局历史移位寄存器,用于记录经过后级流水线确认的拥有特定低位PC地址的跳转指令跳转历史信息,为对应的分支预测存储器提供写索引,每个全局历史移位寄存器的位宽为j位,其中存储着最近j条分支跳转指令执行完成时是否跳转的结果;虚拟历史移位寄存器,用于记录拥有特定低位PC地址的跳转指令跳转与否预测轨迹,每个虚拟历史移位寄存器的位宽为j位,其中存储着最近j条分支跳转指令是否跳转的预测结果;索引选择器,连接于全局历史移位寄存器和虚拟历史移位寄存器的输出端和存储器的输入端之间,从全局历史移位寄存器或虚拟历史移位寄存器中选取j作为最终的分支预测存储器的索引。进一步,所述控制电路使用分支跳转指令用低m位的PC地址来区分不同的分支跳转指令,其中η = 2m,一路分支预测装置的预测结果只能用于其对应的特定的分支跳转指令。再进一步,所述并行预测子单元中,使用虚拟历史移位寄存器的全部共j位用于索引对应的预测存储器,对分支预测存储器进行读操作,读取预测信息。更进一步,所述控制电路中,当分支跳转指令的预测结果经过后级流水线确认正确之后,更新此分支跳转指令所对应的全局历史寄存器,将正确的分支结果写入全局历史移位寄存器的最高位或者最低位,全局历史移位寄存器则相应的左移或者右移一位。所述控制电路中,对分支跳转指令作出预测之后,将立即用这条指令的预测信息更新这条分支跳转指令所对应的虚拟历史寄存器,将预测的分支结果写入虚拟历史移位寄存器的最高位或者最低位,虚拟历史移位寄存器则相应的左移或者右移一位。所述控制电路中,当分支跳转指令的预测结果经过后级流水线确认错误之后,控制电路控制选择此分支跳转指令所对应的分支预测存储器进行写操作,此分支跳转指令所对应的全局历史移位寄存器的全部共j位用于索引,将正确的分支结果写入分支结果存储ο所述控制电路中,当分支跳转指令的预测结果经过后级流水线确认错误之后,每一路分支预测装置将使用预测信息更新此分支跳转指令所对应的全局历史寄存器,将跳转结果写入全局历史移位寄存器的最高位或者最低位,全局历史移位寄存器则相应的左移或者右移一位,并用更新后的全局历史移位寄存器全j位更新对应的虚拟历史移位寄存器的全j位。本专利技术的有益效果为解决多条分支跳转指令同时预测,提高预测准确率。 附图说明图1为多路并行预测信息和指令对应示意图2为每一路分支预测装置结构示意图3为每路预测装置的预测流程示意图4为多路预测装置的预测流程示意图5为每一路的预测都相对独立的预测流程示意图。具体实施方式下面结合附图对本专利技术做进一步说明。参照图1 图2所示,一种支持多路并行预测的分支预测装置,主要分为两大部分,包括多路并行预测单元和并行指令取指单元。并行指令取指单元负责在一个周期内取得多条指令。在一个时钟周期同时取得多条指令之后,对多条指令的预测信息才能体现出优势。参照图1所示,多路分支预测单元同时做出η路的预测信息,并行取指单元同时取得η条指令。每一路的预测信息和单独的一条指令相互对应,以指令的低m位pc来区分, η = 2m。每一路的预测信息由一路的分支预测单元给出,即每路的分支预测器只对应特定低m位pc的分支跳转指令,其读写操作都取决于这条特定低位pc分支跳转指令的预测跳转情况和真实跳转情况,具体情况下文将会详细解释。参照图2所示,每一路分支预测装置包括一个分支预测存储器、一个j位的 GHR(全局历史移位寄存器)、一个j位的VGHR(虚拟历史移位寄存器),一个索引选择器, 和一个控制电路。其中,预测结果来自于分支预测存储器,实际跳转结果来自于后级流水线给出的关于此路分支预测装置对应的跳转指令是否跳转的真实信息。GHR用于记录实际跳转结果。VGHR用于记录特定低位PC地址的跳转指令跳转与否预测轨迹。索引选择器连接于GHR和VGHR的输出端和存储器的输入端之间,从GHR或VGHR中选取j作为最终的分支预测存储器的索引。控制电路用于检测整个分支预测装置的状态,连接分支预测存储器, 为其提供读使能信号和写使能信号,连接索引选择器,为其提供选通信号。VGHR的全部共j 位用于索引对应的预测存储器,对分支预测存储区进行读操作,读取预测信息。跳转指令的预测结果经过后级流水线确认正确之后,更新GHR,将正确的分支结果写入GHR的最高位或者最低位,GHR则相应的左移或者右移一位。对分支跳转指令作出预测之后将立即用这条指令的预测信息更新VGHR,将预测的分支结果写入VGHR的最高位或者最低位,VGHR则相应的左移或者右移一位。当分支跳转指令的预测结果经过后级流水线确认错误之后,控制电路控制分支预测存储器进行写操作,GHR的全部共j位用于索引,将正确的分支结果写入分支结果存储器;更新GHR,将正确的分支结果写入GHR的最高位或者最低位,GHR则相应的左移或者右移一位,然后用GHR的值更新对应的VGHR。参照图3所示,每路预测装置的预测流程首先由取指和取得预测信息开始。然后判断这条指令是否一条条件跳转分支跳转指令。如果不是一条条件分支跳转指令,预测信息将没有意义,预测内容保持不变。如果是一条条件分支跳转指令,将使用预测结果更新 VGHR。新的VGHR将用来索引分支预测存储器,并读出新的预测信息。于此同时分支跳转指令将流到后级流水线,后级流水线将会判断这条指令的跳转情况。如果预测正确,更新 GHR0如果预测本文档来自技高网...
【技术保护点】
【技术特征摘要】
【专利技术属性】
技术研发人员:郭宇波,孟建熠,刘兵,葛海通,
申请(专利权)人:杭州中天微系统有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。