本发明专利技术涉及用于使具有多个处理器(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)。
【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及使得多处理器系统的调试处理同步的方法和系统。
技术介绍
在计算机系统的研发过程中,硬件和/或软件的调试是很复杂的 工作。对于多处理器系统来说,这项工作甚至更困难和复杂。通常, 在片上系统(简称为SoC)上集成了一个或多个微处理器或数字信号 处理器,所述片上系统包括对诸如ROM、 RAM、 EEPROM之类的存 储器,包括计数定时器、实时定时器、电源之类的外设,诸如USB、 以太网、FireWire线缆和模拟接口之类的外部接口等的选取。当调试 这样的多处理器系统时,在处理器中的一个发生故障的情况下,理想 的是停止其他处理器,使得错误数据不会通过通信网络而传播。例如, 当利用多个调试器来调试多个处理器时,发生了以下不同的问题一当调试器给出用于第一处理器的运行命令时,片上系统同步硬件检测该运行命令并且停止第一处理器直到第二处理器得到该运行命令为止。一当用户给出RUN命令时,调试器声明(assert) STEP和 RUN信号。当调试器从之前遇到的断点启动处理器时,这种 操作是典型的。在片上系统内,这个顺序像是两个独立的RUN 命令。通过处理器同步的简单实现,第二处理器根据第一处理 器的第一步进命令而启动,并且在该步进完成之后停止,这并 非想要的操作。应该避免这些"虚警"。 而且,在片上系统的主机侧上包括标准调试器,这些调试器并 非设计用于多核调试,并且不知道连接到片上系统的其他处理器或调 试器。当调试一个处理器时,在这样的多处理器系统中开启和停止处5理器和外设期间的通常问题是,用户想检查当第一处理器遇到停止条 件时第二处理器做些什么。而且,在系统被调试并且可能进入暂停时 第二处理器可以改变系统的状态,同时等待来自第一处理器的响应, 并且在调试失败之后再次启动。如果像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信号,g卩,当声明了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信号请求针对处理器之 一的调试处理并且直到另一交叉触发器矩阵对其他处理器声明用于 调试请求的各自的STO本文档来自技高网...
【技术保护点】
一种用于使具有多个处理器(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)。
【技术特征摘要】
【国外来华专利技术】...
【专利技术属性】
技术研发人员:乌韦施特伯,
申请(专利权)人:NXP股份有限公司,
类型:发明
国别省市:NL[荷兰]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。