单步处理的制作方法

文档序号:6475849阅读:198来源:国知局
专利名称:单步处理的制作方法
背景本发明涉及可编程处理器。
可编程处理器,例如,用于计算机和数字信号处理系统的微处理器,都可以采用比人类运算速度更快方式来执行指令。然而,当处理器产生错误时,特别是由多种原因所产生的错误时,所快速产生的错误往往是人类难以直接观察到引发错误的原因。各种技术,一般称之为“调试”技术,都可以用于追踪到错误的源和错误的多个源。


图1是说明流水线可编程处理例子的方框图;图2是说明一例可执行流水线的示意图;图3是说明适用于单步调试处理的流程图;图4是说明适用于另一种单步调试处理的流程图;图5是说明适用于选择一种单步调试处理的处理的流程图。
具体实施例方式
图1是说明与主存储器16和输入/输出设备22相耦合的可编程处理器10的方框图。处理器10包括控制单元12,执行流水线14和输入/输出接口18,并且可以是(例如)数字信号处理器。
控制单元12可以控制指令和数据通过流水线14的指令流。例如,在指令的处理过程中,控制单元12可以控制流水线14的各个部分来解码指令,并执行相对应的操作,该操作包括(例如)将结果写回到主存储器16。
控制单元12可以包括执行处理器20,该处理器可以保持出现异常时在流水线中需要处理的预定义指令的地址。控制单元12也可以包括控制寄存器25,它存储着与控制功能相关的数据。在控制寄存器中的控制位23A和23B包含了与单步调试技术有关的信息,以下将作更加详细的讨论。采用两位的总线24,流水线14可以检测到控制位23A和23B的状态。
主存储器16可以存储诸如指令和数据的信息。主存储器16可以由静态随机存储器(SRAM),动态随机存储器(DRAM),闪存等组成。处理器10可以包括图1中未显示的部件,例如,指令高速缓存器。用户可以采用一种或多种输入-输出设备22与处理器10通讯,这些输入-输出设备包括通过接口18与处理器10相耦合的键盘,鼠标,摄像头或其它定位设备。处理器10可以采用一种或多种输入-输出设备22与用户通讯,这些输入-输出设备包括通过接口18与处理器10相耦合的显示屏幕或打印机。
图2说明了一例流水线14。流水线14可有五级指令输入(IF),指令解码(DEC),地址计算(AC),执行(EX)和写回(WB)。在第一级(IF),可以通过输入单元30从存储器16或从指令高速缓存器输入指令,并且在第二级(DEC),由指令解码单元32对指令进行解码。在下一个时钟周期,该结果进入到第三级(AC),在该级中,数据地址产生器36计算要执行操作的任意存储器的地址。在执行级(EX)中,执行单元38可以执行所指定的操作,例如,两个数值的相加或相乘。在最后级(WB)中,其结果可以写回到主存储器16或数据寄存器40。
流水线14一般可包括级寄存器42,它可以作为临时存储器存储单元来使用并用于提供各级之间的结果各其它信息。除了寄存器42和数据寄存器40之外,流水线14还可以包括其它存储器单元或寄存器,用于保持指令、地址、数据或其它信息。
对在流水线14中不同级中的几个指令,流水线14一般以基本同时发生的方式来处理指令。例如,当指令处于WB级时,另一个指令可以处于EX级,而其它指令可以处于AC级。然而,在某些情况下,这有利于处理一条指令,随后在完成后续指令的处理之前,检查处理器10的状态和/或各个寄存器中的内容。采用这样方式处理指令称之为“单步调试”并可以对诸如调试过程进行讨论。调试可以涉及,例如,执行指令和检查存储器单元的内容,例如,该检查的存储单元可以是在执行下一指令之前的寄存器。存储单元的单步调试和检查可以允许用户来理解是否存在着基于硬件或基于软件的错误,以识别在硬件或软件中的问题,以及观察软件指令之间的相互作用。在处理器10成为产品之前,调试也可以工作于处理器10的研发过程中。同样,调试也可以在处理器成为产品之后进行。
当用户要开始单步调试时,用户可以通过输入-输出设备22(例如,键盘)向处理器10发出命令。处理器10可以提供不同模式的单步调试,以及用户可以另外指定所需要的方式。
单步调试的一种模式正如图3所说明,它用于讨论在各条指令之后的异常。一般来说,异常是紧跟着正常的程序执行之后,同时允许在流水线14出现异常之前的指令能够完成执行操作。一旦初始化这种模式的单步调试(50)之后,控制单元12指令输入单元30输入单个指令,该指令通过流水线的各级来处理(52)。当指令到达WB级时,流水线14产生异常(54)。该异常可以特别定义成单步异常,并且可以定义成不进行误差管理程序。
响应单步异常之后,控制单元12一般删除流水线14中的指令(56),并且程序控制异常管理器20(58)。当出现单步异常时,异常管理器20包括在流水线14中要处理的预先所定义指令的地址(60)。该指令可以包括检测处理状态和输出有关通过输入/输出界面18状态的信息(62),检测寄存器内容和输出该内容(64),以及清除异常(66)。指令可以用于检测特殊寄存器的内容和特殊处理器状态。此外,输出信息可以包括对输入/输出设备22(例如打印机和显示屏幕)发送信息,也可以包括向主存储器16写入信息。图3所示的指令(60)仅仅只是一个例子,也可以执行其它指令,例如,主存储器16或高速缓冲器的转存的内容,或者保存和恢复处理器的状态。
当清除异常(66)和已经执行了异常管理器的其它指令时,通过检测在流水线14中的其它指令(52),一旦完成之后该步骤就会产生其它异常(54),控制单元12可以继续单步调试处理。所发送的指令一般是预先发送给流水线14但由于原先管理器异常的原因在完成异常之前被删除(56)的指令。用户也可以选择中止单步操作(70)。
对某些目的来说,采用单步异常的单步调试是非常有用的,并且往往是又快又便宜,以及通常不需要增建硬件。然而,该技术并不适用于所有的目的。例如,该技术并不可以有效地应用于调试异常管理器的自身。此外,该技术也不可以有效地应用于调试协议系统资源,例如,高层事件管理程序。高层事件管理程序可以具有(例如)比异常更高的优先权,进而可以获得高于异常的权限以及可以避免异常的出现。
单步调试的另一探讨是进入高层操作模式(例如仿真模式),以及将各个指令单独输入到流水线14。一般来说,处理器可以具有许多操作的模式,例如,可以具有用户模式和超级用户模式,在下文中将作进一步的详细讨论。仿真模式是适用于诸如调试操作的操作模式。典型的是,在仿真模式中,流水线14输入来自仿真指令寄存器的指令,而不是来自主存储器16或指令高速缓存器的指令。流水线14一般也只是读写来自仿真数据寄存器的数据,而不是来自主存储器或数据缓存器的数据。
图4是说明适用于单步调试的示例处理的流程图,它包括了在仿真模式中操作的处理器10。典型的是,处理器10是在非仿真模式的模式下开始操作的,例如,在用户模式或超级用户制模式下。处理器10可以具有比用户、键控和仿真模式更多或更少的操作模式。操作的用户模式一般是最普遍的操作形式。处理器所运行的应用程序通常涉及操作的用户模式。在用户模式中,某些处理器功能和系统资源被设置在范围以外和不能被访问。试图访问受限制功能的或资源一般会产生差错类型异常。相反,超级用户模式表示具有更高优先权的操作模式,在该模式中,所有的处理器功能和资源都是有效的。仿真模式通常是具有比超级用户更高优先权的操作模式,允许对在范围之外的系统资源进行调试。因而,当系统资源需要进行调试时最好能采用在仿真模式下的单步调试。
要开始单步调试(80),先将指令发送到流水线14(82)。当指令到达WB级时,流水线14产生仿真事件(84)。仿真模式可以包括适用于不同处理器架构的不同方式,例如,向特殊处理器端口施加信号或者执行为仿真模式所设计的软件。一旦处于仿真模式,高层处理器功能和资源都是有效的,并且对处理器的输入和输出都是可以调整的。控制单元12一般删除在流水线14中的指令(86)以及进入到仿真服务程序的控制(88)。仿真服务程序包括检测处理器状态和通过输入/输出接口18输出有关状态信息的指令(92),还包括检测寄存器内容并输出该内容的指令(94)。输出信息可以包括对输出寄存器的检测信息以及对输入/输出设备22的检测信息,还可以包括对主存储器16的写回信息。仿真模式一般是采用“返回(return)”指令来中止的,该指令使处理器10返回到在进入仿真模式之前的操作状态并且包括准备输入的下一条指令的地址(96)。典型的是,从各步骤之后(96)仿真模式的返回是自动的,以致于所继续的单步调试(98)可以包括分别名临的各个单步操作。如果没有给出进入仿真模式的命令,则单步操作就中止(100)。
单步调试的控制可以多种方式来调整。图5说明了一种控制单步调试的举例方法,它采用一位或多位控制位,控制位可以自动产生单步调试操作和指令。所设置一位或多位控制位可以由逻辑来检测,该逻辑可以触发异常或者仿真事件。在图1所示的举例处理器10中,显示了在控制寄存器25中存储了两个控制位23A和23B,并且对流水线14都是有效的。控制位23A和23B也可以存储在其它地方,或者可以存储在任意类型的存储元件中。然而,许多处理器架构都支持控制寄存器。
两个控制位23A和23B的使用允许单步调试中的灵活性。控制位23A和23B可以设置成四种明显不同的逻辑结构‘0-0’,‘0-1’,‘1-0’,和‘1-1’。该结构可以指定四种不同的结果。例如,‘0-0’可以是正常的,表示没有产生任何形式的单步调试。设置控制位23A和23B(110)包括将位的‘0-0’结构转变成一些其它结构。单步的模式是控制位23A和23B的功能(112)。例如,‘0-1’结构可以产生进入仿真模式的单步调试(118),而与处理器10是在用户模式还是在超级用户模式无关。同样,例如,‘1-0’结构可以产生利用异常的单步调试(116),而与处理器10是在用户模式还是在超级用户模式无关。最后,例如,‘1-1’结构可以根据处理器10当前操作模式产生对单步调试形式的选择(114)。当处理器10正处于用户模式操作时,‘1-1’结构可以使处理器10进入到异常所采用的单步(116),但是当处理器10正处于超级用户模式工作时, ‘1-1’结构可以使处理器10进入到仿真模式(118)所指定的单步。在表1中综合了由以下技术所获得的结果。

表1
已经讨论了本发明的许多实施例。例如,已经讨论了在各个指令异常之后或者在将处理器处于仿真模式之后的单步调试的方法。处理器可以在包括通用计算系统、数字处理系统、膝上计算机、个人数字助理(PDA)和蜂窝式电话等多种系统中实施。在这些内容中,上述讨论的单步调试技术可以方便地应用于在客户购买前后的系统测试。在这类系统中,处理器可以与存储器件相耦合,该存储器件包括闪存存储器件或SRAM器件,它可以存储操作系统和其它软件应用程序。各种实施例都在下列权利要求的范围之内。
权利要求
1.一种方法,其特征在于,包括选择多种调试模式中的一种模式作为处理器当前操作模式的功能。
2.如权利要求1所述方法,其特征在于,还包括在执行了一条指令之后产生一个异常。
3.如权利要求1所述方法,其特征在于,还包括在执行了一条指令之后调用处理器的仿真模式。
4.如权利要求1所述方法,其特征在于,所选择的调试模式包括当操作模式包括用户模式时选择第一调试模式,以及当操作模式包括超级用户模式时选择第二调试模式。
5.一种方法,其特征在于,包括接受指令;接受信号;选择调试信号功能的模式,其中,所选择的调试模式包括当信号是第一信号时选择第一调试模式,以及当信号是第二信号时选择第二调试模式;以及,执行指令。
6.如权利要求5所述方法,其特征在于,还包括产生一个异常。
7.如权利要求5所述方法,其特征在于,还包括调用仿真事件。
8.如权利要求5所述方法,其特征在于,还包括检测寄存器内容;以及,输出寄存器内容。
9.如权利要求5所述方法,其特征在于,指令由处理器接受并用于在多种状态中进行操作,该方法还包括检测处理器的状态;以及,输出处理器的状态。
10.如权利要求5所述方法,其特征在于,指令由处理器接受,该方法还包括选择单步调试的模式作为处理器操作模式的功能。
11.一种器件,其特征在于,包括处理器,该处理器适于在包括仿真模式的多种工作模式中操作;控制寄存器,可用于存储控制位的状态;以及,异常管理器;其中,处理器用于选择多种调试模式中的一种模式作为控制位的功能。
12.如权利要求11所述器件,其特征在于,处理器用于选择多种调试模式中的一种模式作为处理器当前操作模式的功能。
13.如权利要求11所述器件,还包括异常逻辑,它可以用于检测控制位的状态和触发异常事件作为控制位状态的功能。
14.如权利要求11所述器件,还包括仿真逻辑,它可以用于检测控制位的状态和触发异常事件作为控制位状态的功能。
15.如权利要求11所述器件,其特征在于,控制位是第一控制位,该系统还包括第二控制位,并且其中,单步调试的模式是第二控制位状态的功能。
16.如权利要求11所述器件,其特征在于,处理器是数字信号处理器。
17.一种器件,其特征在于,包括处理器,该处理器用于在包括仿真模式的多种工作模式中操作;其中,处理器用于选择多种调试模式中的一种模式作为处理器当前操作模式的功能。
18.如权利要求17所述器件,还包括用于存储控制位状态的控制寄存器,其特征在于,处理器用于选择多种调试模式中的一种模式作为控制位状态的功能。
19.如权利要求18所述器件,其特征在于,还包括异常管理器;以及,用于检测控制位状态和触发异常事件作为控制位状态的功能的逻辑。
20.如权利要求18所述器件,其特征在于,还包括用于检测控制位状态和触发仿真事件作为控制位状态的功能的逻辑。
21.如权利要求17所述器件,其特征在于,处理器是数字信号处理器。
22.一种系统,其特征在于,包括处理器,该处理器用于在多种工作模式中操作;控制寄存器,可用于存储控制位的状态;输入/输出设备;以及,异常管理器;其中,处理器用于选择多种调试模式中的一种模式作为控制位的功能。
23.如权利要求22所述系统,其特征在于,处理器用于根据当前的操作模式来选择多种调试模式中的一种模式。
24.如权利要求22所述系统,其特征在于,还包括与处理器相耦合的存储器件。
25.如权利要求22所述系统,其特征在于,还包括用于检测控制位状态和触发异常事件作为控制位状态的功能的逻辑。
26.如权利要求22所述系统,其特征在于,还包括用于检测控制位状态和触发仿真事件作为控制位状态的功能的逻辑。
27.如权利要求22所述系统,其特征在于,控制位是第一控制位,该系统还包括第二控制位,并且其中,处理器用于根据第二控制位的状态来选择多种调试模式中的一种模式。
全文摘要
在一个实施例中,所披露的技术使得可编程处理器每次能处理一条指令。单步调试可以通过在每一条指令之后的异常或者在每一条指令之后的仿真模式来实现。特殊的单步调试技术可以基于控制位的状态,或者可以基于处理器当前的操作模式,或者基于上述两者。
文档编号G06F9/38GK1489729SQ01820700
公开日2004年4月14日 申请日期2001年12月10日 优先权日2000年12月15日
发明者C·P·罗思, R·P·辛格, T·迪恩, R·科拉格特拉, M·赫夫曼, R·里文, C P 罗思, 蚵, 裉乩, 辛格 申请人:英特尔公司, 模拟设备股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1