多处理器系统以及使多处理器系统的调试处理同步的方法.pdf

上传人:000****221 文档编号:966397 上传时间:2018-03-21 格式:PDF 页数:14 大小:582.71KB
返回 下载 相关 举报
摘要
申请专利号:

CN200780031145.6

申请日:

2007.08.20

公开号:

CN101506777A

公开日:

2009.08.12

当前法律状态:

撤回

有效性:

无权

法律详情:

发明专利申请公布后的视为撤回IPC(主分类):G06F 11/36申请公布日:20090812|||实质审查的生效|||公开

IPC分类号:

G06F11/36

主分类号:

G06F11/36

申请人:

NXP股份有限公司

发明人:

乌韦·施特伯

地址:

荷兰艾恩德霍芬

优先权:

2006.8.21 EP 06119260.5

专利代理机构:

北京天昊联合知识产权代理有限公司

代理人:

陈 源;张天舒

PDF下载: PDF下载
内容摘要

本发明涉及用于使具有多个处理器(2.1-2.3)的多处理器系统(1)的调试处理同步的方法和系统,该方法包括以下步骤:如果通过STOP信号(STOP#2.1-STOP#2.3)请求用于处理器(2.1-2.3)之一的调试处理,那么对其他处理器(2.1-2.3)声明HALT信号(HALT#2.1-HALT#2.3)直到对它们声明了用于调试请求的STOP信号(STOP#2.1-STOP#2.3)为止;对已经完成调试处理的每个处理器(2.1-2.3)声明各自的HALT信号(HALT#2.1-HALT#2.3)直到其他处理器(2.1-2.3)已经完成它们各自的调试处理为止;在取消全部HALT信号(HALT#2.1-HALT#2.3)和/或STOP信号(STOP#2.1-STOP#2.3)的声明并且完成全部调试处理之后,同步启动全部处理器(2.1-2.3)。

权利要求书

1.  一种用于使具有多个处理器(2.1-2.3)的多处理器系统(1)的调试处理同步的方法,包括以下步骤:
如果通过STOP信号(STOP#2.1-STOP#2.3)请求用于处理器(2.1-2.3)之一的调试处理,那么对其他处理器(2.1-2.3)声明HALT信号(HALT#2.1-HALT#2.3)直到对它们声明了用于调试请求的STOP信号(STOP#2.1-STOP#2.3)为止,
对已经完成调试处理的每个处理器(2.1-2.3)声明各自的HALT信号(HALT#2.1-HALT#2.3)直到其他处理器(2.1-2.3)已经完成它们各自的调试处理,
在取消对全部HALT信号(HALT#2.1-HALT#2.3)和/或STOP信号(STOP#2.1-STOP#2.3)的声明并且完成全部调试处理之后,同步启动全部处理器(2.1-2.3)。

2.
  如权利要求1所述的方法,其中如果声明了请求处理器(2.1-2.3)调试处理的STOP信号(STOP#2.1-STOP#2.3),那么就取消对该处理器(2.1-2.3)的HALT信号(HALT#2.1-HALT#2.3)的声明。

3.
  如权利要求1或2所述的方法,其中取消对所述处理器(2.1-2.3)的HALT信号(HALT#2.1-HALT#2.3)的声明直到预定定时器和/或计数器已经达到0值为止。

4.
  如前述权利要求之一所述的方法,其中当对处理器(2.1-2.3)的HALT信号(HALT#2.1-HALT#2.3)的声明已经经过预定时间和/或预定数目的迭代时,声明该处理器(2.1-2.3)的STOP信号(STOP#2.1-STOP#2.3)。

5.
  如前述权利要求之一所述的方法,其中如果请求了用于处理器(2.1-2.3)的调试处理,那么就声明该处理器(2.1-2.3)的STOP信号(STOP#2.1-STOP#2.3)。

6.
  如前述权利要求之一所述的方法,其中取消对各个处理器(2.1-2.3)的HALT信号(HALT#2.1-HALT#2.3)的声明直到每个处理器(2.1-2.3)都进入RUN状态为止。

7.
  如前述权利要求之一所述的方法,其中如果处理器(2.1-2.3)运行在调试处理中,那么就取消对该处理器(2.1-2.3)的HALT信号(HALT#2.1-HALT#2.3)和STOP信号(STOP#2.1-STOP#2.3)的声明。

8.
  如前述权利要求之一所述的方法,其中实现两个交叉触发器矩阵(3.1,3.2),这两个交叉触发器矩阵(3.1,3.2)包括作为每个处理器(2.1-2.3)的输入信号的调试模式信号(DBGM#2.1-DBGM#2.3),这两个交叉触发器矩阵生成了作为每个处理器(2.1-2.3)的输出信号的HALT信号(HALT#2.1-HALT#2.3)和STOP信号(STOP#2.1-STOP#2.3)。

9.
  一种用于使得具有多个处理器(2.1-2.3)的多处理器系统(1)的调试处理同步的系统,包括:
两个交叉处理器矩阵(3.1,3.2),包括作为每个处理器(2.1-2.3)的输入信号的调试模式信号(DBGM#2.1-DBGM#2.3)以及作为每个处理器(2.1-2.3)的输出信号的STOP信号(STOP#2.1-STOP#2.3)和HALT信号(HALT#2.1-HALT#2.3),
如果通过一个交叉触发器矩阵(3.2)的STOP信号(STOP#2.1-STOP#2.3)请求用于处理器(2.1-2.3)之一的调试处理并且直到这个交叉触发器矩阵(3.2)对其他处理器(2.1-2.3)声明用于调试请求的各自的STOP信号(STOP#2.1-STOP#2.3)为止,另一交叉触发器矩阵(3.1)对所述其他处理器(2.1-2.3)声明HALT信号(HALT#2.1-HALT#2.3),
所述另一交叉触发器矩阵(3.1)对已经完成调试处理的每个处理器(2.1-2.3)声明各自的HALT信号(HALT#2.1-HALT#2.3)直到其他处理器(2.1-2.3)已经完成它们各自的调试处理为止,
在取消全部HALT信号(HALT#2.1-HALT#2.3)和/或STOP信号(STOP#2.1-STOP#2.3)的声明并且完成全部调试处理之后,全部处理器(2.1-2.3)同步启动。

10.
  如权利要求9所述的系统,其中每个处理器(2.1-2.3)在至少三条数据线上与所述两个交叉触发器矩阵(3.1,3.2)相连,该三条数据线包括一条用于所述HALT信号(HALT#2.1-HALT#2.3)的数据线、一条用于所述STOP信号(STOP#2.1-STOP#2.3)的数据线以及一条用于调试模式信号(DBGM#2.1-DBGM#2.3)的数据线。

11.
  如权利要求9或10所述的系统,其中每个处理器(2.1-2.3)都与各自的调试模块(4.1-4.3)相连。

说明书

多处理器系统以及使多处理器系统的调试处理同步的方法
技术领域
本发明涉及使得多处理器系统的调试处理同步的方法和系统。
背景技术
在计算机系统的研发过程中,硬件和/或软件的调试是很复杂的工作。对于多处理器系统来说,这项工作甚至更困难和复杂。通常,在片上系统(简称为SoC)上集成了一个或多个微处理器或数字信号处理器,所述片上系统包括对诸如ROM、RAM、EEPROM之类的存储器,包括计数定时器、实时定时器、电源之类的外设,诸如USB、以太网、FireWire线缆和模拟接口之类的外部接口等的选取。当调试这样的多处理器系统时,在处理器中的一个发生故障的情况下,理想的是停止其他处理器,使得错误数据不会通过通信网络而传播。例如,当利用多个调试器来调试多个处理器时,发生了以下不同的问题:
—当调试器给出用于第一处理器的运行命令时,片上系统同步硬件检测该运行命令并且停止第一处理器直到第二处理器得到该运行命令为止。
—当用户给出RUN命令时,调试器声明(assert)STEP和RUN信号。当调试器从之前遇到的断点启动处理器时,这种操作是典型的。在片上系统内,这个顺序像是两个独立的RUN命令。通过处理器同步的简单实现,第二处理器根据第一处理器的第一步进命令而启动,并且在该步进完成之后停止,这并非想要的操作。应该避免这些“虚警”。
而且,在片上系统的主机侧上包括标准调试器,这些调试器并非设计用于多核调试,并且不知道连接到片上系统的其他处理器或调试器。当调试一个处理器时,在这样的多处理器系统中开启和停止处理器和外设期间的通常问题是,用户想检查当第一处理器遇到停止条件时第二处理器做些什么。而且,在系统被调试并且可能进入暂停时第二处理器可以改变系统的状态,同时等待来自第一处理器的响应,并且在调试失败之后再次启动。如果像DMA(直接存储器存取)控制器或定时器的外设保持运行而系统被调试,则所述外设也能改变系统的状态。因此,想要的是处理器的同步运行和停止。
在JP 2228742A1中,描述了针对多个处理器的同步调试方法。例如,在存储跟踪信息时,处理器将中断信号输出到中断信号线并将其发送到其他处理器。因此,其他处理器定时地和同时地接收该中断信号,并且同时将同步信号标志作为跟踪信息存储在它们自己的跟踪存储器中。随后,在处理器的跟踪存储器中存储和保持了同步信号标志,这些同步信号标志相对于时间彼此不存在偏移。因此,消除了处理器的执行程序的历史之间的时间延迟,并且使得这些处理器彼此同步以执行安全调试。这些同步调试方法使用了中断信号和同步信号标志以及跟踪信息,而没有处理器的同步启动和停止。
发明内容
因此,本发明的一个目的是提供一种用于使得多处理器系统的调试处理同步的方法和系统,其提供了包括使处理器彼此察觉到启动、停止和调试的同步机制。
包括本发明的特征的使得多处理器系统的调试处理同步的方法和系统解决了给出的问题。
在各个从属权利要求中给出了本发明的有利实施例。
根据本发明,给出了用于使得具有多个处理器的多处理器系统的调试处理同步的方法,包括以下步骤:
如果通过STOP信号请求用于处理器之一的调试处理,那么对其他处理器声明HALT信号直到对它们声明了用于调试请求的STOP信号为止,
对已经完成调试处理的每个处理器声明各自的HALT信号直到其他处理器已经完成它们各自的调试处理,
在取消对全部HALT信号和/或STOP信号的声明并且完成全部调试处理之后,同步启动全部处理器。
如果实际上允许处理器运行,那么除了用于调试请求(简称为DBREQ信号)的常规STOP信号之外的这种HALT信号的实现方式允许处理器同步启动,另外声明了HALT信号。而且,HALT信号允许同步停止。常规调试器(诸如所谓的AxD或者例如gdb调试器)按步执行并且随后在用户给出RUN命令时运行。在调试器从断点启动处理器时以及在通过将“断点指令”插入调试代码来实现断点时,这种操作是典型的。例如,调试器越过断点,再次设置断点,并且随后运行处理器。对于同步停止来说,其他处理器根据调试器的第一STEP命令启动并且在该STEP完成之后停止。当调试器现在给出最终的RUN命令时,其他处理器已再次处于调试模式中。为了检测处理器是否已经停止以及另外检测其各自的调试器是否已经完成调试处理,必须对剩余处理器的STOP信号进行声明。在处理器已经停止的情况下,在调试器和调试处理仍在起作用时,仅声明额外的HALT信号。由下文提出并描述的所述HALT信号和两个交叉触发器矩阵的方案作出以下假设,调试模式信号(简称为DBGMODE)的快速转换(toggling)表示“自动调试器相互作用”而慢速转换表示“用户相互作用”。所述HALT信号能够被分成pre-HALT信号和post-HALT信号。如果单独一个处理器已经处于调试模式,那么在未处于调试模式的各个处理器上pre-HALT信号停止。在已经完成调试处理的各个处理器上Post-HALT信号停止,直到其他处理器已经完成了调试处理为止。
在可能的实施例中,如果声明了请求各个处理器的调试处理的STOP信号,那么就取消对各个处理器的pre-HALT信号的声明。换言之:STOP信号优先于HALT信号,即,当声明了STOP信号时,各个HALT信号不起作用。在可替代的具体实施例中,取消各个处理器的pre-HALT信号的声明直到定时器和/或计数器已经从预定值倒计数到0值为止。在另一具体实施例中,当对各个处理器的pre-HALT信号的声明已经经过预定时间和/或预定迭代数目时,声明该处理器的STOP信号。当各个HALT信号在“足够的时间段”上处于稳定时或者当(例如通过总线系统)写入STOP_SETTLED位时,仅声明STOP信号。可通过内部计时器或计数器或者例如通过控制器或调试监测器例如在主机侧从外部自动完成对实际时间或STOP_SETTLED位的状态的检测。
在另一实施例中,如果请求了用于各个处理器的调试处理,那么就取消对该处理器的STOP信号以及已声明的HALT信号的声明。可以通过各个处理器声明调试模式信号(简称为DBGMODE)或者通过在处理器上运行的调试监测器经由总线系统声明调试模式标志来请求调试处理。
有利地是,取消对各个处理器的post-HALT信号的声明直到每个处理器都进入RUN状态为止。特别地,如果全部处理器已经完成它们的调试模式,那么就取消早先已经完成其调试模式的各个处理器的post-HALT信号。
在有益的实施例中,实现了两个交叉触发器矩阵。实现HALT矩阵和STOP矩阵来生成上述HALT信号和/或STOP信号。两个矩阵包括作为每个处理器的输入信号的调试模式信号,该矩阵生成了作为每个处理器的输出信号的HALT信号或STOP信号。
实现本发明的目的的技术方案包括用于使得具有多个处理器的多处理器系统的调试处理同步的系统,所述系统包括:
两个交叉触发器矩阵,包括作为每个处理器的输入信号的调试模式信号以及作为每个处理器的输出信号的STOP信号和HALT信号,
如果通过另一交叉触发器矩阵的STOP信号请求针对处理器之一的调试处理并且直到另一交叉触发器矩阵对其他处理器声明用于调试请求的各自的STOP信号为止,交叉触发器矩阵之一对其他处理器声明HALT信号,
所述交叉触发器矩阵对已经完成调试处理的每个处理器声明各自的HALT信号直到其他处理器已经完成它们的各自的调试处理为止,
在取消对全部HALT信号和/或STOP信号的声明并且完成全部调试处理之后,全部处理器同步启动。
在所述调试系统中,有利地是,每个处理器在至少三条数据线上与所述两个交叉触发器矩阵相连,该三条数据线包括一条用于所述HALT信号的数据线、一条用于所述STOP信号的数据线以及一条用于调试模式信号的数据线。为了检测并提供调试处理模式和/或请求,每个处理器都与各自的调试器模块相连。
本发明的用于多处理器系统的一种简单的同步调试方法是有利的:在一个或多个处理器的调试模式期间,通过利用两个交叉触发器矩阵来对用于同步启动和/或停止处理器的额外的HALT信号进行声明或取消声明。
附图说明
图1示出了利用包括两个交叉触发器矩阵的三个处理器来使得多处理器系统的调试处理同步的系统的框图,
图2示出了针对具有两个处理器的多处理器系统的两个交叉触发器矩阵的输出信号的状态转换图。
具体实施方式
以下将更具体地来描述本发明。
图1示出了用于使得包括三个处理器2.1-2.3的多处理器系统2的调试处理同步的系统1的框图。系统1包括具有两个交叉触发器矩阵3.1和3.2的交叉触发器逻辑3。一个交叉触发器矩阵3.1将从各个调试模式信号DBGM#2.1到DBGM#2.3生成各个处理器2.1到2.3的HALT信号HALT#2.1到HALT#2.3。另一个交叉触发器矩阵3.2将从各个调试模式信号DBGM#2.1到DBGM#2.3生成各个处理器2.1到2.3的STOP信号STOP#2.1到STOP#2.3。
在调试系统1中,每个处理器2.1到2.3均与至少三条数据线上的所述两个交叉触发器矩阵3.1和3.2连接,该三条数据线包括一条用于所述HALT信号HALT#2.1到HALT#2.3的数据线、一条用于所述STOP信号STOP#2.1到STOP#2.3的数据线以及一条用于所述调试模式信号DBGM#2.1到DBGM#2.3的数据线。为了检测各自的调试处理模式和/或提供调试处理请求,每个处理器2.1到2.3均与各个调试器模块4.1到4.3连接。
可由处理器2.1到2.3的各自的调试器4.1到4.3来声明调试模式信号DBGM#2.1到DBGM#2.3。可选地,可通过调试监测器来声明调试模式标志,从而经由各个处理器2.1到2.3来声明调试模式信号DBGM#2.1到DBGM#2.3。
本发明涉及用于对所述多处理器系统2的调试处理进行同步的方法。现在利用用于多处理器系统2的状态转换图来具体描述调试方法的可能的实施例,该多处理器系统2包括利用用于交叉触发的交叉触发器逻辑3的两个处理器2.1到2.2,并且所述两个处理器2.1到2.2的同步开始和停止。
图2示出了用于具有两个处理器2.1和2.2的多处理器系统1的两个交叉触发器矩阵3.1和3.2的输出信号HALT#2.1到HALT#2.2和STOP#2.1到STOP#2.2的状态转换图的可能的实施例。
为了在调试处理期间使得处理器2.1和2.2彼此同步,存在以下不同的具体步进和定时点:
定时点1:两个处理器2.1和2.2都在运行。
定时点2:如果针对处理器2.1到2.2之一声明了调试模式信号DBGM#2.1到DBGM#2.2,那么有利地配置交叉触发器逻辑3来生成HALT信号HALT#2.1到HALT#2.2和STOP信号STOP#2.1到STOP#2.2。如果在至少2秒内声明了各自的HALT信号HALT#2.1到HALT#2.2,则STOP矩阵3.2被配置来例如生成STOP信号STOP#2.1到STOP#2.2。
定时点3:针对处理器2.1声明了调试模式信号DBGM#2.1。如果设置了调试模式信号DBGM#2.1,则处理器2在调试处理期间遇到断点,并且对另外的处理器8声明各自的HALT信号HALT#2.2。处理器2.2现在处在暂停状态并且停止。处理器2.1处在调试处理中。
定时点4:在内部和/或外部定时器或计数器从预定值(例如从2秒钟)倒计时到0值之后,可以取消用于处理器2.2的各自的HALT信号HALT#2.2的声明。另外或可选地,由各个处理器2.2的各自的STOP信号STOP#2.2来取消对各自的HALT信号HALT#2.2的声明,各自的STOP信号STOP#2.2请求所述处理器2.2的调试处理并且在定时器或计数器达到0值之后或者如果用户已经设置调试处理模式标志而自动声明。请求各个处理器2.2的调试处理的声明的STOP信号STOP#2.2声明了交叉触发器逻辑3中的调试模式信号DBGM#2.2。现在,处理器2.2和处理器2.1二者都运行在调试处理中。
定时点5:在启动的调试处理期间,处理器2.1到2.2与它们的调试器4.1到4.2进行通信,反之亦然。
定时点6:调试器4.1给出运行命令RUN,这产生了用于各个处理器2.1的步进和运行命令。处理器2.1从断点运行。
定时点6a:调试器4.1的步进命令通常取消对调试模式信号DBGM#2.1的声明。因为另一个处理器2.2仍处在调试处理中,所以声明用于各个处理器2.1的HALT信号HALT#2.1直到所述处理器2.2已经完成了其各自的调试处理为止。处理器2.1保持在暂停状态直到处理器2.2已经完成了其各自的调试处理为止。直到处理器2.1处于运行状态才能提供来自调试器4.1的步进命令。调试器4.1等待对开始步进命令的响应。
定时点7:各个处理器2.2的调试器4.2声明运行命令。利用调试器4.2的运行命令来取消调试模式信号DBGM#2.2的声明。同样取消各个处理器2.1的HALT信号HALT#2.1的声明直到所述处理器2.2进入RUN状态为止。全部处理器2.1和2.2都处于RUN状态。
定时点8:调试器4.1被设置一个请求。处理器2.1再次进入调试模式。在步进命令完成之后,声明另一个处理器2.1的调试模式信号DBGM#2.1和HALT信号HALT#2.1。
定时点9:调试器4.1设置运行命令,以完成从处理器2.1断点开始的运行。取消对调试模式信号DBGM#2.1和HALT信号HALT#2.2的声明并且同步启动处理器2.1和2.2。因为例如在声明调试模式信号DBGM#2.1之后的小于2秒内调试器4.1设置了运行命令,所以没有声明各自的调试模式信号DBGM#2.2。
总的来说,使用HALT信号HALT#2.1到HALT#2.3来使得处理器2.1到2.3彼此停止。当各自的调试器4.1到4.3已经完成调试处理以及与各个处理器2.1到2.3的自动交互时,各自的STOP信号STOP#2.1到STOP#2.3代替了各自的HALT信号HALT#2.1到HALT#2.3。此时,调试器4.1到4.3和处理器2.1到2.3等待用户输入。当调试器4.1到4.3把各个处理器2.1到2.3相继设置在RUN状态时,HALT矩阵3.1防止这些处理器实际执行直到最后的处理器2.1到2.3已经完成其调试处理并且进入RUN状态。

多处理器系统以及使多处理器系统的调试处理同步的方法.pdf_第1页
第1页 / 共14页
多处理器系统以及使多处理器系统的调试处理同步的方法.pdf_第2页
第2页 / 共14页
多处理器系统以及使多处理器系统的调试处理同步的方法.pdf_第3页
第3页 / 共14页
点击查看更多>>
资源描述

《多处理器系统以及使多处理器系统的调试处理同步的方法.pdf》由会员分享,可在线阅读,更多相关《多处理器系统以及使多处理器系统的调试处理同步的方法.pdf(14页珍藏版)》请在专利查询网上搜索。

本发明涉及用于使具有多个处理器(2.1-2.3)的多处理器系统(1)的调试处理同步的方法和系统,该方法包括以下步骤:如果通过STOP信号(STOP#2.1-STOP#2.3)请求用于处理器(2.1-2.3)之一的调试处理,那么对其他处理器(2.1-2.3)声明HALT信号(HALT#2.1-HALT#2.3)直到对它们声明了用于调试请求的STOP信号(STOP#2.1-STOP#2.3)为止;对已。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1