一种单发射流水线处理器的制作方法

文档序号:6404859阅读:262来源:国知局
专利名称:一种单发射流水线处理器的制作方法
技术领域
本实用新型属于处理器技术领域,涉及一种单发射流水线处理器。
背景技术
开发指令级并行是提高处理器性能的关键技术。目前主要通过深度流水和指令多发射等方式提高指令并行度,其中指令多发射技术对软硬件要求较高,从可靠性的应用角度出发,嵌入式处理器多采用单发射的多级流水线处理器。相对于多发射处理器而言,单发射处理器的主要特征为每次启动一条指令进入流水线。单发射五级流水线处理器结构如图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值相对应,该指令来自指令缓冲存储器或者主存。所述的异常检测模块输出停止取指标志信号和指令选择信号,分别连接至指令缓冲存储器和多路选择器;当停止取指标志信号有效时,则流水线中出现异常,停止向指令缓冲存储器继续取指;指令缓冲存储器检测到停止取指标志信号有效时,置处理器的流水使能信号有效;当指令选择信号有效时控制多路选择器输出快速响应模块的输出指令至译码级。所述的流水使能信号连接至异常标志寄存器的使能端。与现有技术相比,本实用新型具有以下有益的技术效果:本实用新型提供的单发射流水线处理器,通过提前检测陷阱标志位,在流水线处理器取指级IF内增加异常标志位检测和快速响应两个模块,将各流水级之间的寄存器组中的异常标志位相或之后送到异常标志位检测模块,一旦异常标志位检测模块检测到流水线中任何一级出现异常,将控制取指级IF停止向主存取指令的动作,从快速响应模块中取出一条单周期指令送至下一个流水级(一般情况下为译码级ID),由于这些后续指令不会有效执行,因此返回的指令类型不会对处理器有影响;直到发生异常的指令完全流出各级流水线,那么异常标志位才会无效,届时异常标志位检测模块控制取指级IF恢复从主存取指,继而处理器转到异常服务程序中继续运行。由于精确异常发生后,其后的多条指令均为无效指令,即使不从主存中取得与PC相互对应的指令,而直接采用快速响应模块提供的指令也不会引起任何异常后果。本实用新型提供的单发射流水线处理器,适用于单发射流水线处理器的高效率精确异常处理,可以大大提高精确异常发生时的取指效率,杜绝精确异常发生时再次发生取指令异常的情况,在一定程度提高嵌入式处理器的性能。

图1为单发射五级流水线处理器结构示意图;图2为嵌入式处理器精确异常的产生及处理流程图;图3为单发射五级流水线精确异常的具体处理示意图;图4为当前单发射五级流水线处理器指令废除示意图;图5为本实用新型的单发射流水线处理器示意图。
具体实施方式
以下结合附图对本实用新型做进一步详细描述:[0033]参见图5,一种单发射五级流水处理器,包含取指级IF、译码级ID、执行级EX、存储器访问级M、写回级WR五个部分,其中译码级ID、执行级EX、存储器访问级M、写回级WR四个流失段的控制逻辑保持不变;在译码级、执行级、存储器访问级和写回级相邻两级之间均设有异常标志寄存器;在取指级中增设异常检测模块516、多输入或门514、多路选择器515和快速响应模块517 ;流水级间寄存器523、524、525分别输出执行级异常标识信号、存储器访问级异常标识信号、写回级异常标识信号至多输入或门514相或,然后输出至取指级的异常检测模块516 ;多输入或门514输出至异常检测模块516,异常检测模块516输出至多路选择器515 ;多路选择器515根据异常检测模块516的输出信息,从取指级的指令缓冲存储器(指令cache)输出或快速响应模块517的输出选择其中之一,输出给译码级。异常检测模块516根据多输入或门514的输出结果,生成指令选择信号和停止取指信号;当多输入或门514的输出结果无效时(输出为0),则生成指令选择信号输出给多路选择器,多路选择器选择与指令地址对应的来自主存或者指令缓冲存储器529的输出至下一流水级ID,同时置停止取指信号无效,继续从指令缓冲存储器529或者主存取指令;当多输入或门514的输出结果有效时,则生成指令选择信号输出给多路选择器515后,多路选择器515选择快速响应模块517中给出的单周期指令(具体采用nop指令)至下一流水级ID,同时异常检测模块516置停止取指标志信号521有效,停止向主存指令缓冲存储器或者主存529请求指令;待产生异常的指令彻底流出流水线时,处理器恢复正常取指,其它各级流水线中关于异常的处理均保持不变。下面对各模块进一步详细的说明:所述异常标志寄存器均为带使能端的一位寄存器,寄存器使能端有效时,才可以寄存数据。异常标志寄存器寄存当前流水级的异常标志位,将异常标志位输出连接至多输入或门。所述的多输入或门514的入为异常标志寄存器的输出,其输出连接至异常检测模块516。多输入或门输入的个数随着处理器流水级数的增加而增加,其输入的计算公式为:Sin=N-2,其中N为处理器流水级数,Sin为多输入或门的输入个数;所述的快速响应模块517,在精确异常发生时,为处理器提供一个单周期指令,其输出连接至多路选择器的输入。所述的单周期指令为处理器指令集内的任意单周期指令,建议使用空指令(如SPARC V8体系结构的处理器可使用nop指令)。所述的多路选择器515,其两个输入分别为快速响应模块517的输出和指令缓冲存储器的输出,多路选择器在异常检测模块516的输出指令选择信号518控制下,将两个输入的其中之一送至处理器译码级ID。所述的指令缓冲存储器的输出指与PC值对应的指令,该指令可能来自指令缓冲存储器或者主存,异常发生时,一般来自主存。所述异常检测模块516,其输入来自多输入或门514的输出,该模块的输入的输出停止取指标志信号和指令选择信号,分别连接至指令缓冲存储器和多路选择器515 ;该模块提前检测流水线中出现的异常标志信号,当异常标志信号出现时,停止向主存继续取指令,用快速响应模块517作为主存指令输出,供处理器译码ID级使用。所述的停止取指标志信号,该信号为异常检测模块516的输出,连接至指令缓冲存储器。当其有效时,说明流水线中出现异常,处理器停止向指令缓冲存储器继续取指,指令缓冲存储器检测到该信号有效时,会置处理器的流水使能信号有效。而流水使能信号连接至异常标志寄存器的使能端。所述的指令选择信号,控制多路选择输出适当的指令给流水线ID级。本实用新型所提供的单发射五级流水处理器,使单发射流水线处理器在精确异常发生时停止向主存继续请求指令,而以快速响应模块中提供的单周期指令取代需要被废除的指令,在硬件开销增加极少的情况下,大幅度提高了精确异常发生时的处理效率。
权利要求1.一种单发射流水线处理器,包括取指级、译码级、执行级、存储器访问级和写回级,其特征在于,在译码级、执行级、存储器访问级和写回级相邻两级之间均设有异常标志寄存器;在取指级中增设异常检测模块(516)、多输入或门(514)、多路选择器(515)和快速响应模块(517); 流水级间寄存器分别输出执行级异常标识信号、存储器访问级异常标识信号、写回级异常标识信号至多输入或门(514)相或;多输入或门(514)输出至异常检测模块(516),异常检测模块(516)输出至多路选择器(515);多路选择器(515)根据异常检测模块(516)的输出信息,从取指级的指令缓冲存储器(529)输出或快速响应模块(517)的输出选择其中之一,输出给译码级。
2.如权利要求1所述的单发射流水线处理器,其特征在于,流水级间寄存器所输出的异常标识信号输出至多输入或门(514)相或,然后输出至异常检测模块(516); 当异常检测模块(516)输出无效时,多路选择器(515)选来自主存或者指令缓冲存储器(529)的输出至译码级,同时置停止取指信号无效,继续从指令缓冲存储器(529)或者主存取指令; 当异常检测模块(516)输出有效时,多路选择器(515)选择快速响应模块(517 )给出的单周期指令至译码级,同时异常检测模块(516)置停止取指标志信号有效,停止向指令缓冲存储器(529)或者主存请求指令,待产生异常的指令彻底流出流水线处理器时,处理器恢复正常取指。
3.如权利要求1所述的单发射流水线处理器,其特征在于,所述的异常标志寄存器均为带使能端的一位寄存器,异常标志寄存器的使能端有效时,才能够寄存数据。
4.如权利要求1所述的单发射流水线处理器,其特征在于,所述的多输入或门(514)输入的个数随着处理器流水级数的增加而增加。
5.如权利要求1所述的单发射流水线处理器,其特征在于,所述的快速响应模块(517)在精确异常发生时,提供一个单周期指令输出至多路选择器(515);所述的单周期指令为处理器指令集内的任意单周期指令。
6.如权利要求1所述的单发射流水线处理器,其特征在于,所述的指令缓冲存储器的输出指令与PC值相对应,该指令来自指令缓冲存储器(529 )或者主存。
7.如权利要求1所述的单发射流水线处理器,其特征在于,所述的异常检测模块(516)输出停止取指标志信号和指令选择信号,分别连接至指令缓冲存储器(529)和多路选择器(515); 当停止取指标志信号有效时,则流水线中出现异常,停止向指令缓冲存储器(529)继续取指;指令缓冲存储器(529)检测到停止取指标志信号有效时,置处理器的流水使能信号有效; 当指令选择信号有效时控制多路选择器(515)输出快速响应模块(517)的输出指令至译码级。
8.如权利要求7所述的单发射流水线处理器,其特征在于,所述的流水使能信号连接至异常标志寄存器的使能端。
专利摘要本实用新型公开了一种单发射流水线处理器,包括取指级、译码级、执行级、存储器访问级和写回级,其特征在于,在译码级、执行级、存储器访问级和写回级相邻两级之间均设有异常标志寄存器;在取指级中增设异常检测模块、多输入或门、多路选择器和快速响应模块。本实用新型适用于单发射流水线处理器的高效率精确异常处理,可以大大提高精确异常发生时的取指效率,杜绝精确异常发生时再次发生取指令异常的情况,在一定程度提高嵌入式处理器的性能。
文档编号G06F11/07GK203164952SQ201320150240
公开日2013年8月28日 申请日期2013年3月28日 优先权日2013年3月28日
发明者陈庆宇, 盛廷义, 段青亚, 吴龙胜 申请人:中国航天科技集团公司第九研究院第七七一研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1