专利名称:流水线处理器的异常管理的制作方法
背景技术:
本发明涉及在处理器中的异常管理。
可编程微处理器(例如,数字信号处理器)一般都包括异常处理硬件,该硬件主要用于处理在处理指令过程中所遇到的错误。例如,处理器可以会遇到非法的指令(不支持的操作代码),未对准的指令,访问存储器保护区域的指令,非法的存储器地址,总线错误,等等。
在检测到上述错误的事件中,异常管理器硬件一般都包括对应的软件程序,该软件程序常常称之为错误管理器,用于响应错误的条件。
图1是根据本发明实施例所构成的可编程处理器实例的方框图。
图2是说明可编程处理器的执行流水线实例的方框图。
图3是根据本发明实施例的异常流水线的电路图。
图4是根据本发明实施例的异常流水线的另一电路图。
描述图1是说明采用根据本发明实施例处理异常的可编程处理器实例的方框图。处理器2可以包括执行流水线4,异常流水线5和控制单元6。
异常流水线4可以具有多个适用于同时处理多条指令的流水线级。指令可以执行流水线4第一级装入并通过后续各级处理。在系统的一个周期中,数据可以在流水线4的各级之间通过。指令的结构以较快的方式出现在流水线的结束位置处。
控制单元6可以根据系统时钟控制指令和/或数据在执行流水线4中的流动。例如,在指令的处理过程中,控制单元6可以直接使流水线4的各个部分解码指令并同时执行所对应的操作,该操作可以包括,例如,将结果写回到存储器。
在错误的条件事件中,执行流水线4的各个级都可以产生一个或多个异常信号7,该信号可以采用表示特殊错误条件的异常代码的形式。异常流水线5可以具有多个流水线的级,用于接受异常流水线4的异常并且传输与所响应产生错误条件的指令同步的异常。正如以下所详细讨论的,异常流水线5是与执行流水线“互锁”的,以确保通过异常流水线5流动的异常保持着与在执行流水线4中流动的指令的同步。例如,如果在执行流水线4中出现停止条件,异常流水线5就可以停止相同数量的周期。
图2是说明在根据本发明实施例的可编程处理器执行流水线的方框图。控制单元6可以插入控制信号18,来控制通过执行流水线4的指令和数据的流动。
流水线4,例如,可以具有五级指令输入(IF),指令解码(DEC),地址计算(AC),执行(EX)和写回(WB)。指令可以在第一级(IF)由输入单元11从存储器件输入,例如,从主存储器8或从指令高速缓存器中输入,以及在第二级(DEC)由指令解码单元12解码。在下一个时钟周期,该结果传递到第三级(AC),在该级中,数据地址发生器13可以计算执行操作的任何存储器地址。
在执行级(EX)中,执行单元15可以进行一个或多个由指令所指定的操作,例如,两个数字的相加或相乘、执行单元15可以包含进行操作的一些指定硬件,例如,一个或多个算术逻辑单元(ALU),浮点单元(FPU)和桶形移位寄存器。可以将多个数据施加到执行单元15,从而得到由数据地址发生器13产生的地址,从存储器恢复的数据或从数据寄存器14恢复的数据。在最后以及(WB)中,写回单元16可以将所有的结果写回到数据存储器或数据寄存器14。
流水线4的级可以包括存储电路,例如,流水线寄存器19,用于存储当前级的任何结果。级寄存器19一般是根据系统时钟来锁存结果。级寄存器19接受控制信号18,该信号包括一个或多个停止信号,该信号可以控制级寄存器19是否停止锁存前一级的结果。采用这种方式,控制单元6可以同步停止流水线4的一级或多级。正如以下将详细讨论的,异常流水线5(图1)也接受控制信号18并且与执行流水线4同步停止。
执行流水线4的各个级可以产生一个或多个异常信号(EXPS),用于指示在所对应级中已经检测到的错误条件。例如,当遇到未对准的指令时,输入单元11可以插入一个异常信号17。当解码不支持(非法)的指令操作代码时,解码单元12可以插入一个异常信号17。当计算出非法存储器地址时,数据地址发生器13可以插入一个异常信号17。当操作结果为错误条件(例如,溢出条件)时,执行单元就插入一个异常信号。当指令试图将结果写回回到存储器的包含区域时,写回单元16就可以插入一个异常信号。上述所列出的错误只是用于举例的目的并且仅仅表示在一条指令执行过程中可能出现错误的子集。
图3是说明具有多级的异常流水线5的实例方框图。异常流水线5可以具有例如,指令输入(IF),指令解码(DEC),地址计算(AC),执行(EX)和写回(WB)。异常流水线5的各级可以接受执行流水线4所对应级的一个或多个异常17。例如,异常流水线5的IF级可以接受一个或多个M异常17A。各异常17可以由N位异常代码来表示。因此,流水线寄存器32可以具有并行存储N位的能力。
异常流水线5的各级包括异常选择单元31,用于选择将进入后续级的最高优先权的异常。例如,指令输入选择单元31A选择在异常流水线5的IF级中出现的M异常中的一个异常。所选择的IF异常在下一个时钟周期中存储在级寄存器32A中。
根据各种异常的优先权,解码选择单元31B选择(1)在异常流水线5的解码级中出现的M异常中的一个异常,或者(2)异常流水线5的IF级传输的在积极存器32A中存储的异常。解码选择单元31B将所选择的异常存储于流水线级寄存器32B。
采用这种方式,在异常流水线5各级中传输的异常与在执行流水线4中传输的各个指令是同步的。在指令保持在执行流水线4的写回级时,来自异常流水线5的对应异常可以出现在exc_code输出,可应用于控制单元6和包括对应错误管理软件程序的异常管理器8。在一个实施例中,用于异常的处理在出现异常WB级之前的几级开始并包括使用的服务程序。
图4是说明异常流水线5的电路35的方框图,该电路可用于控制通过图3所说明的各级异常的流动。正如以下详细讨论的,电路35传输一个和多个异常请求通过一些触发器36;异常请求对应于在图3所示的异常流水线5所传输的异常代码。
异常请求限制在通过电路来传输且与控制指令在执行流水线4中流动的控制信号18相同。例如,第一输入异常信号限制为两个信号(1)“删除(Kill)”信号,该信号表示由于指令流动的变化所对应的指令是否还保持在WB级,以及(2)“停止(Stall)”信号,该信号表示在执行流水线4中所对应的指令已经停止。当这些条件不存在时,触发器36A就锁存着输入异常信号。然而,在停止条件的事件中,触发器36A的输出重新输出并且在随后的时钟周期由复用器选择及锁存。采用这种方式,异常请求与在执行流水线4中的指令保持同步。
同样,在解码级产生的异常请求与触发器36A的输出“或”,以产生组合的解码异常请求,该请求一样限制为“删除”和“停止”条件信号。这样,异常请求信号可以输入电路35的任何一级并且传输到触发器36D,除非在执行流水线中所对应的指令被删除。在这样的事件中,异常请求可复写在电路35上和从电路35中去除。
触发器36D的输出就没有限制成写回级的停止和删除信号。电路35的输出是exception_req信号19,它被异常管理器8接受。响应之后,异常管理器8包括基于图3异常流水线5所提供的当前异常代码16所对应的异常管理软件程序。
虽然再图4中并没有说明,但是输入异常信号是事先限制指令的有效信号,以确保该异常与“valid”指令有关,例如,处理器2指令集所支持的指令。然而,与其它异常信号不同,输入异常信号就没有限制成为有效信号。这就确保了在IF级中所出现的异常可以正确的使用,而与是否输入有效指令无关。然而,在执行流水线4中传输的对应指令可标记成无效指令。
已经讨论了本发明的各种实施例。例如,已经讨论了具有传输异常请求的异常流水线的处理器。该处理器可以应用于包括通用计算系统,数字处理系统,膝上计算器,个人数字助理(PDA)和蜂窝式电话的各种系统中。在这类系统中,处理器与存储器件相耦合,该存储器件包括闪存存储器件或静态随机存储器(SRAM),可用于存储操作系统和其它软件应用程序。各种实施例都在附加权利要求的范围内。
权利要求
1.一种方法,其特征在于,它包括处理在可编程处理器的执行流水线中的指令;以及通过处理器的异常流水线,传播指令的异常。
2.如权利要求1所述方法,其特征在于,处理执行流水线中的指令包括通过N级执行流水线传播指令,并且其中,传播异常流水线中指令的异常状态包括通过N级异常流水线传播指令的异常状态。
3.如权利要求1所述方法,其特征在于,它进一步包括接受来自执行流水线的异常和在异常流水线中存储异常。
4.如权利要求3所述方法,其特征在于,接受异常包括从多级执行流水线中的一级接收一个异常代码,并且其中,存储异常包括在异常流水线的对应级中存储异常代码。
5.如权利要求1所述方法,其特征在于,它进一步包括在异常流水线中传播异常请求位,其中,该异常请求位表示适用于在执行流水线所对应的级中的指令的错误条件。
6.如权利要求1所述方法,其特征在于,它进一步包括当执行流水线停止时停止异常流水线。
7.如权利要求1所述方法,其特征在于,它进一步包括当执行流水线中所对应的指令不能完成执行时清除在异常流水线中的异常。
8.如权利要求4所述方法,其特征在于,它进一步包括当异常已经传输到异常流水线的最后一级时为所述异常提供服务。
9.如权利要求1所述方法,其特征在于,通过异常流水线传播异常包括根据与异常有关的优先顺序在多级异常流水线的几个异常中选择出一个异常。
10.如权利要求1所述方法,其特征在于,在异常流水线的各级中,认证异常的资质以确保所对应的指令没有中止。
11.如权利要求1所述方法,其特征在于,进一步包括除了指令汲取级之外,在异常流水线的各级中,认证异常的资质,以确保所对应的指令有效。
12.一种装置,其特征在于,它包括具有能同时执行一条或多条指令的多级执行流水线;以及具有能传播指令执行所产生异常的多级异常流水线。
13.如权利要求12所述装置,其特征在于,执行流水线和异常流水线都具有N级。
14.如权利要求12所述装置,其特征在于,异常流水线的级包括用于存储异常代码的流水线寄存器。
15.如权利要求12所述装置,其特征在于,异常流水线包括多个用于传播异常请求位的存储电路。
16.如权利要求12所述装置,其特征在于,异常流水线和执行流水线的级是由一个或多个停止信号控制的。
17.如权利要求15所述装置,其特征在于,各级接受删除信号,以复位异常请求位。
18.如权利要求12所述装置,其特征在于,进一步包括从异常流水线的最后一级接收异常请求位的异常管理器。
19.如权利要求12所述装置,其特征在于,所述异常流水线的各级包括根据与异常有关的优先顺序从多个异常中选择一个异常的选择逻辑。
20.如权利要求12所述装置,其特征在于,异常流水线的各级包括对异常请求位进行资质认证的逻辑,以确保指令是有效指令且没有终止。
21.一种系统,其特征在于,它包括闪存存储器件;以及与闪存存储器件相耦合的处理器,其中,所述处理器包括具有能同时执行一条或多条指令的多级的执行流水线,和具有能传播指令执行所产生的异常的多级的异常流水线。
22.如权利要求21所述的系统,其特征在于,所述执行流水线和异常流水线都具有N级。
23.如权利要求21所述的系统,其特征在于,异常流水线的级包括用于存储异常代码的流水线寄存器。
24.如权利要求12所述系统,其特征在于,异常流水线包括多个传播异常请求位的存储电路。
25.如权利要求21所述的系统,其特征在于,异常流水线和执行流水线的级是由一个或多个停止信号同步控制的。
26.如权利要求21所述的系统,其特征在于,处理器进一步包括从异常流水线的最后一级接收异常请求位的异常管理器。
全文摘要
在一个实施例中,可编程处理器包括执行流水线和异常流水线。执行流水线可以是处理指令的多级执行流水线。异常流水线可以是传输指令执行所产生异常的多级异常流水线。前者和异常流水线可以具有相同数量的级并且可以相同的时钟周期进行操作。当指令从执行流水线的一级流到执行流水线的最后一级时,该异常可以同样从异常流水线的相对应一级流到异常流水线的相对应最后一级。
文档编号G06F9/38GK1481529SQ01820708
公开日2004年3月10日 申请日期2001年12月10日 优先权日2000年12月15日
发明者C·P·罗思, R·P·辛格, G·A·奥弗坎普, C P 罗思, 奥弗坎普, 辛格 申请人:英特尔公司, 模拟设备股份有限公司