一种低成本的程序计数器数据传输装置,指令预取单元、预解码单元、分支预测单元和分支指令处理单元依次采用流水线处理方式;数据传输装置还包括:程序计数器缓存单元,程序计数器指令处理单元,用于将与程序计数器相关指令的程序计数器信息传送到程序计数器缓存单元输入端口,分支预测单元产生预测目标指令程序计数器,将预测目标指令程序计数器和当前指令程序计数器传送到程序计数器缓存单元,分支指令和与程序计数器相关指令在分支指令处理单元执行时,从程序计数器缓存单元的输出端口读取程序计数器信息。本发明专利技术提供一种能够有效降低程序计数器在传递过程中的硬件成本的低成本的程序计数器数据传输装置。
【技术实现步骤摘要】
本专利技术关于一种低成本的程序计数器传输数据装置,通过缓存分支指令的当前程序计数器和预测目标程序计数器,与程序计数器相关指令的当前程序计数器,使其不随流水线寄存器传输,从而减小硬件开销,适用于多级流水线结构的处理器。
技术介绍
程序计数器用于存放下一条指令所在内存单元的地址,保证程序能够连续地执行下去。在程序开始执行前,将它的起始地址,即程序的一条指令所在的内存单元地址送入程序计数器,因此程序计数器的内容即是从内存提取的第一条指令的地址。当执行指令时,处理器将自动修改程序计数器的内容,即每执行一条指令,程序计数器增加一个量,这个量等于指令所含的字节数,以便使其保持的总是将要执行的下一条指令的地址。当执行分支指令时,分支指令执行的最终结果就是改变程序计数器的值,以此实现分支跳转。在近几年,分支预测被广泛用于嵌入式处理器以及高性能通用处理器,以提高处理器性能。分支指令的类型可以分为条件分支指令和无条件分支指令,由于分支指令目标地址的不同,无条件分支又可以进一步分为立即分支指令,间接分支指令和返回分支指令。 其中立即分支跳转可以采用BTB(Branch Target Buffer,分支预测缓冲区)这种方式预测精确,返回型跳转可以采用返回地址栈(RAQ精确预测。经过预测的分支指令会携带预测跳转信息和预测跳转地址,以及自身的程序计数器。而分支预测一般是在取指阶段进行,在指令执行阶段才能用到这些预测信息,期间这些信息会经过取指级与译码级之间、译码级与执行级之间的寄存器,以及一些指令缓存装置,硬件消耗明显。
技术实现思路
为了克服现有的分支预测处理过程中程序计数器在传递过程中的硬件成本较高的不足,本专利技术提供一种能够有效降低程序计数器在传递过程中的硬件成本的低成本的程序计数器数据传输装置。为实现上述目的,本专利技术的技术方案是一种低成本的程序计数器数据传输装置,所述数据传输装置包括指令预取单元,用于负责指令的预取;预解码单元,用于对所取指令进行预解码,解码出分支指令,以及与程序计数器相关的指令;分支预测单元,用于对分支指令进行分支预测,产生预测目标程序计数器;分支指令处理单元,用于负责分支指令和与程序计数器相关指令的执行,将程序计数器缓存单元的数据读取并经行计算;所述指令预取单元、预解码单元、分支预测单元和分支指令处理单元依次采用流水线处理方式;程序计数器缓存单元,用于缓存分支指令的当前程序计数器和预测目标程序计数器,缓存与程序计数器有关指令的当前程序计数器和目标程序计数器;程序计数器指令处理单元,用于将与程序计数器相关指令的程序计数器信息传送到程序计数器缓存单元输入端口,分支预测单元产生预测目标指令程序计数器,将预测目标指令程序计数器和当前指令程序计数器传送到程序计数器缓存单元,分支指令和与程序计数器相关指令在分支指令处理单元执行时,从程序计数器缓存单元的输出端口读取程序计数器信息。进一步,分支指令的当前程序计数器和预测目标程序计数器、与程序计数器相关指令的当前程序计数器和目标程序计数器被创建进程序计数器缓存单元,在流水线执行级,当分支指令处理单元需要指令程序计数器信息时,程序计数器缓存单元的输出端口输出所需指令程序计数器信息,该指令的程序计数器信息未经过流水线取指级与译码级之间,以及译码级与执行级之间的寄存器。再进一步,所述程序计数器缓存单元采用先进先出机制,依次创建和清空单元。更进一步,当出现全局清空信号时,程序计数器缓存单元缓存的程序计数器信息被清空。本专利技术中,通过缓存分支指令的当前程序计数器和预测目标程序计数器,与程序计数器相关指令的当前程序计数器和目标程序计数器,使其不随流水线寄存器传输,从而降低硬件成本。本专利技术的有益效果为通过避免分支指令、与程序计数器相关指令的程序计数器信息在取指级、译码级以及执行级流水线寄存器之前的传递,大大降低了流水线寄存器的硬件成本。附图说明图1是一种低成本的程序计数器数据传输装置的基本架构。 具体实施例方式下面结合附图对本专利技术作进一步描述。参照图1,一种低成本的程序计数器数据传输装置,包括指令预取单元,用于负责指令的预取;预解码单元,用于对所取指令进行预解码,解码出分支指令,以及与程序计数器相关的指令;分支预测单元,用于对分支指令进行分支预测,产生预测目标程序计数器;分支指令处理单元,用于负责分支指令和与程序计数器相关指令的执行,将程序计数器缓存单元的数据读取并经行计算;所述指令预取单元、预解码单元、分支预测单元和分支指令处理单元依次采用流水线处理方式;程序计数器缓存单元,用于缓存分支指令的当前程序计数器和预测目标程序计数器,缓存与程序计数器有关指令的当前程序计数器和目标程序计数器;程序计数器指令处理单元,用于将与程序计数器相关指令的程序计数器信息传送到程序计数器缓存单元输入端口,分支预测单元产生预测目标指令程序计数器,将预测目标指令程序计数器和当前指令程序计数器传送到程序计数器缓存单元,分支指令和与程序计数器相关指令在分支指令处理单元执行时,从程序计数器缓存单元的输出端口读取程序计数器信息。指令预取单元将取到的指令传送到预解码单元的输入端口,预解码单元解码出分支指令和与程序计数器相关指令,将分支指令传送到分支预测单元输入端口,将与程序计数器相关指令的程序计数器信息传送到程序计数器缓存单元输入端口,分支预测单元产生预测目标指令程序计数器,将预测目标指令程序计数器和当前指令程序计数器传送到程序计数器缓存单元,分支指令和与程序计数器相关指令在处理单元执行时,从程序计数器缓存单元的输出端口读取程序计数器信息。若在流水线取指级取到一条分支指令,如进位为1分支指令,指令编码通过指令预取单元传输到预解码单元输入端口,经过预解码单元的预解码,解码出该条指令为分支指令。预解码单元将该分支指令的预解码信息传送到分支预测单元的输入端口,分支预测单元根据自身的预测机制,预测进位是否为1,以及跳转的目标程序计数器。分支预测单元将预测产生的预测目标程序计数器,以及当前指令的程序计数器信息传送到程序计数器缓存单元输入端口。程序计数器缓存单元根据先进先出机制,创建缓存单元,缓存分支指令的当前程序计数器和预测目标程序计数器。该条分支指令的预解码信息同时通过取指级和译码级之间的流水线寄存器传送到译码级的指令解码单元,解码出完整的指令信息。该完整的指令解码信息通过译码级和执行级之间的流水线寄存器传送到分支指令处理单元,分支指令处理单元在执行该分支指令时,需要分支指令的当前程序计数器和预测目标程序计数器,程序计数器缓存单元将分支指令处理单元需要的信息传送到分支指令处理单元的输入端口,分支指令处理单元根据这些程序计数器信息执行该条分支指令。若在流水线取指级取到一条与程序计数器相关的指令,如存储器读入指令,指令编码通过指令预取单元传输到预解码单元输入端口,经过预解码单元的预解码,解码出该条指令为存储器读入指令。预解码单元将存储器读入指令的当前程序计数器和目标程序计数器信息传送到程序计数器缓存单元输入端口。程序计数器缓存单元根据先进先出机制, 创建缓存单元,缓存分支指令的当前程序计数器和目标程序计数器。该条存储器读入指令的预解码信息(不包括当前程序计数器和目标程序计数器)同时通过取指级和译码级之间的流水线寄存器传送到本文档来自技高网...
【技术保护点】
【技术特征摘要】
【专利技术属性】
技术研发人员:孟建熠,沈秀红,李春强,丁永林,
申请(专利权)人:杭州中天微系统有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。