一种单发射流水线处理器制造技术

技术编号:9102767 阅读:183 留言:0更新日期:2013-08-30 20:27
本实用新型专利技术公开了一种单发射流水线处理器,包括取指级、译码级、执行级、存储器访问级和写回级,其特征在于,在译码级、执行级、存储器访问级和写回级相邻两级之间均设有异常标志寄存器;在取指级中增设异常检测模块、多输入或门、多路选择器和快速响应模块。本实用新型专利技术适用于单发射流水线处理器的高效率精确异常处理,可以大大提高精确异常发生时的取指效率,杜绝精确异常发生时再次发生取指令异常的情况,在一定程度提高嵌入式处理器的性能。(*该技术在2023年保护过期,可自由使用*)

【技术实现步骤摘要】

本技术属于处理器
,涉及一种单发射流水线处理器
技术介绍
开发指令级并行是提高处理器性能的关键技术。目前主要通过深度流水和指令多发射等方式提高指令并行度,其中指令多发射技术对软硬件要求较高,从可靠性的应用角度出发,嵌入式处理器多采用单发射的多级流水线处理器。相对于多发射处理器而言,单发射处理器的主要特征为每次启动一条指令进入流水线。单发射五级流水线处理器结构如图1中100所示,100共包括取指级IF、译码级ID、执行级EX、存储器访问级M和写回级WR五级流水,各流水级包含各自的逻辑,各流水级之间以寄存器组101、102、103、104、105相隔,指令inst和指令地址PC随着流水线的推进依次向WR级推进,即每一级的PC和inst均唯一对应。处理器正常运行模式下,如果取指命中,IF从指令cache中取得指令,如果不命中,IF从主存中取指令并更新至指令cache,指令在IF的最后一个时钟周期指令并且有效锁存至寄存器,ID进行指令译码并取源操作数同时产生CALL和分支转移指令的目标地址,EX主要根据ID的译码信息及源操作数进行算术、逻辑运算并产生JMPL/RETT的跳转地址,M主要负责访问数据存储体,WR将前面各级的运算结果写回寄存器文件106并改变处理器状态。流水线技术在显著提高处理器性能的同时,引入了一些问题,如同一时刻有多条指令在不同的指令流水级、一条指令要经过多个流水级才改变处理器状态等,这些问题使处理器的精确控制,尤其是精确异常的控制更为复杂。所谓的异常指除分支指令以外改变正常指令执行顺序的事件,它或者由一条指令引起(如未定义指令)、或者由外部中断引起(如I/o设备请求),其中精确异常指由一条具体指令引起的异常,以SPARC V8体系架构的处理器为例,其精确陷阱的定义为:精确异常由一条具体的指令引起,并且处理器状态未被引起异常的指令改变,精确异常的处理需满足以下条件:(I)将引发异常的指令的地址PC和下一条指令的地址NPC保存在本地寄存器;(2)引发异常的指令之前的指令已经完全的执行;(3)引发异常的指令之后的指令都没有执行。由上述定义可知,假设A指令产生精确异常,那么处理器必须保证A之前的指令执行完毕,A之后的指令没有执行,或者说A之后的指令必须为无效执行(即虽然执行但是执行的结果不会改变处理器状态,执行的结果不会写寄存器文件106)。图2中200描述了某款嵌入式处理器所有精确异常的产生及处理流程,对于WR之前的异常,会经过异常优先级排列逻辑204产生优先级最高的异常,并将优先级最高异常的信息(如异常类型)和异常标志位存在寄存器组205、206、207、208中的有关寄存器中,然后在流水线中传递异常的信息,直到WR级会检测由寄存器组208传递而来的异常标志位是否有效,如果异常标志位有效,那么将指令的PC值写进寄存器文件201的同时将异常的信息写入处理器相关寄存器202。从上面的分析知:在一条引起异常的指令B到达WR之前,取指级IF并不知情,IF会花费大量的时钟周期从主存中取指令,但是这些后续指令实际上是必须被废除、不能被执行的无效指令。这样导致付出极大时间代价取来的指令是不会被执行的指令,显然这种情况不合理。图3中300将100和200结合在一起进行进一步的阐述。如300所示,多路选择器307根据各流水级内的标志信号选择下一条指令地址NPC的值,如果无任何特殊指令,那么NPC为PC值顺序加一,如果处理器执行的转移指令,处理器会根据转移指令的类型选择NPC, NPC可能为ID段生成call/branch指令的地址308或者为由JMPL/RETT指令的地址309。如果307检测到WR级的异常标志位有效,那么NPC就选择WR级生成的异常转移地址301,同时多路选择器302将写回级WR中的指令地址PC写入寄存器文件303。通过上面的分析可知,目前的单发射流水线嵌入式处理器在执行指令过程中,如果指令A发生异常,那么指令A的后续指令A+1、A+2等在指令A达到写回级WR之前会被正常从主存中取出,这种机制存在以后弊端:浪费大量的时间取回来的指令是无效指令,所谓无效指令即不被执行或者即使执行也不对处理器状态有任何影响。通过图4说明目前的单发射流水线嵌入式处理器如何保证A的后续指令Α+1、Α+2等的无效执行。假设第二条指令A弓丨起精确异常,待第二条指令达到WR级之后,WR级的有关逻辑会检测其异常标志信号,如果其异常标志信号有效,那么WR级会生成annul_all信号,该信号会被各流水级检测,并被保存进入流水级之间的寄存器组,如果流水级之间的寄存器组中的废除信号有效,那么对应指令将不会引起流水内的逻辑变化,这样就保证annul_all信号会将其后的四条指令废除,即其后四条指令的执行不再改变处理器的状态。综上述,目前的单发射流水线嵌入式处理器在精确异常发生时,会花费大量的时钟周期去主存取若干条根本不会被有效执行的指令,当前的这种精确异常处理方法效率较低,一定程度上影响了嵌入式处理器的性能。
技术实现思路
本技术解决的技术问题在于一种单发射流水线处理器,提高精确异常发生时的取指效率,杜绝精确异常发生时再次发生取指令异常的情况,在一定程度提高嵌入式处理器的性能。本技术是通过以下技术方案来实现:一种单发射流水线处理器,包括取指级、译码级、执行级、存储器访问级和写回级,在译码级、执行级、存储器访问级和写回级相邻两级之间均设有异常标志寄存器;在取指级中增设异常检测模块、多输入或门、多路选择器和快速响应模块;流水级间寄存器分别输出执行级异常标识信号、存储器访问级异常标识信号、写回级异常标识信号至多输入或门相或;多输入或门输出至异常检测模块异常检测模块输出至多路选择器;多路选择器根据异常检测模块的输出信息,从取指级的指令缓冲存储器输出或快速响应模块的输出选择其中之一,输出给译码级。所述的流水级间寄存器所输出的异常标识信号输出至多输入或门相或,然后输出至异常检测模块;当异常检测模块输出无效时,多路选择器选来自主存或者指令缓冲存储器的输出至译码级,同时置停止取指信号无效,继续从指令缓冲存储器或者主存取指令;当异常检测模块输出有效时,多路选择器选择快速响应模块给出的单周期指令至译码级,同时异常检测模块置停止取指标志信号有效,停止向指令缓冲存储器或者主存请求指令,待产生异常的指令彻底流出流水线处理器时,处理器恢复正常取指。所述的异常标志寄存器均为带使能端的一位寄存器,异常标志寄存器的使能端有效时,才能够寄存数据。所述的多输入或门输入的个数随着处理器流水级数的增加而增加。所述的快速响应模块在精确异常发生时,提供一个单周期指令输出至多路选择器;所述的单周期指令为处理器指令集内的任意单周期指令。所述的指令缓冲存储器的输出指令与PC值相对应,该指令来自指令缓冲存储器或者主存。所述的异常检测模块输出停止取指标志信号和指令选择信号,分别连接至指令缓冲存储器和多路选择器;当停止取指标志信号有效时,则流水线中出现异常,停止向指令缓冲存储器继续取指;指令缓冲存储器检测到停止取指标志信号有效时,置处理器的流水使能信号有效;当指令选择信号有效时控制多路选择器输出快速响应模块的输出指令至译码级。所述的流水使能信号连接至异常标本文档来自技高网
...

【技术保护点】
一种单发射流水线处理器,包括取指级、译码级、执行级、存储器访问级和写回级,其特征在于,在译码级、执行级、存储器访问级和写回级相邻两级之间均设有异常标志寄存器;在取指级中增设异常检测模块(516)、多输入或门(514)、多路选择器(515)和快速响应模块(517);流水级间寄存器分别输出执行级异常标识信号、存储器访问级异常标识信号、写回级异常标识信号至多输入或门(514)相或;多输入或门(514)输出至异常检测模块(516),异常检测模块(516)输出至多路选择器(515);多路选择器(515)根据异常检测模块(516)的输出信息,从取指级的指令缓冲存储器(529)输出或快速响应模块(517)的输出选择其中之一,输出给译码级。

【技术特征摘要】

【专利技术属性】
技术研发人员:陈庆宇盛廷义段青亚吴龙胜
申请(专利权)人:中国航天科技集团公司第九研究院第七七一研究所
类型:实用新型
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1