首页 / 专利库 / 专利权 / 专利合作条约 / 第I章 / 国际申请 / 请求书 / 指定 / 调试系统、调试方法及程序

调试系统、调试方法及程序

阅读:632发布:2023-02-14

专利汇可以提供调试系统、调试方法及程序专利检索,专利查询,专利分析的服务。并且在收到从通信端口(1)发送的调试程序激活指令后,调试程序激活指令分发单元(61及71)将收到的调试程序激活指令分发给由这些激活指令 指定 的运行单元。调试程序激活单元(62及72)针对每个运行单元(A和B)被提供,并基于激活指令分发单元(61及71)分发的激活指令,在由这些激活指令指定的运行单元上激活调试程序(63及73)。,下面是调试系统、调试方法及程序专利的具体信息内容。

1.一种调试系统,用于执行对在有多个运行单元执行相连操作的系统 中运行的程序的调试,所述调试系统包括:
激活指令分发装置,用于在收到指示激活调试程序的激活指令后,将 所述激活指令分发给所述多个运行单元;以及
多个调试程序激活装置,它们对应于所述多个运行单元中的每一个被 提供,用于基于已由所述激活指令分发装置分发的激活指令在相应的运行 单元上激活调试程序。
2.如权利要求1所述的调试系统,其中所述激活指令分发装置向对应 于已由所述激活指令指定的所述运行单元的调试程序激活装置发送所述激 活指令。
3.如权利要求1所述的调试系统,其中所述激活指令分发装置向与基 于所述多个运行单元中的每一个的操作状态确定的运行单元相对应的调试 程序激活装置发送所述激活指令。
4.如权利要求1所述的调试系统,其中所述激活指令分发装置检测所 述多个运行单元中的每一个所使用的存储区域的未占用容量,然后向与被 检测的未占用容量中存在剩余的运行单元相对应的调试程序激活装置发送 所述激活指令。
5.如权利要求1所述的调试系统,其中所述激活指令分发装置向与作 为调试目标的运行单元关系很小或无关的运行单元相对应的调试程序激活 装置发送所述激活指令。
6.如权利要求1所述的调试系统,还包括中继装置,所述中继装置对 应于所述多个运行单元中的任意之一被提供,用来将从通信端口发往调试 程序的命令中继到由所述激活指令指定的运行单元上的调试程序。
7.如权利要求1所述的调试系统,还包括多个中继装置,所述多个中 继装置对应于所述多个运行单元中的每一个被提供,用来将从通信端口发 往调试程序的命令中继到由所述激活指令指定的运行单元上的调试程序。
8.如权利要求1所述的调试系统,还包括停止运行单元避免装置,用 于避免将所述激活指令发送到与处于停止状态的运行单元相对应的调试程 序激活装置。
9.如权利要求1所述的调试系统,其中在所述多个运行单元中的任意 一个中待激活的调试程序配备有:
物理-虚拟地址转换装置,用于将虚拟地址转换为物理地址;以及
信息提取装置,其使用已被所述物理-虚拟地址转换装置转换的物理地 址,并考虑到操作系统存储器中安排控制信息的结构以从如下存储区域 中提取必要信息:所述存储区域被作为调试目标并与激活了所述调试程序 的运行单元不同的运行单元所使用。
10.如权利要求1所述的调试系统,还包括差错检测装置,用于从所 述多个运行单元中检测发生差错的运行单元,并生成用于执行对已检出的 运行单元的调试的激活指令。
11.如权利要求1所述的调试系统,其中中断处理器作为当所述多个 运行单元中的每一个中发生中断时首先被激活用于处理中断的程序,该中 断处理器配备有:
信息获取/控制装置,用于当从另一个运行单元生成中断时,在已事先 设置的存储区域中获取信息;以及
响应生成装置,用于将已由所述信息获取/控制装置获取的信息发送到 生成中断的运行单元;
并且,在所述多个运行单元中的任一个中激活的调试程序配备有:
运行单元间中断生成装置,用于对作为调试目标的运行单元生成中 断;以及
响应接收装置,用于接收来自作为调试目标的运行单元的响应。
12.一种调试方法,用于执行对在多个运行单元执行相连操作的系统 中运行的程序的调试,所述方法包括以下步骤:
在收到指示激活调试程序的激活指令后,将所述激活指令分发给所述 多个运行单元;以及
通过对应于所述多个运行单元中的每一个提供的调试程序激活装置, 基于已被分发的所述激活指令在相应的运行单元上激活调试程序。
13.如权利要求12所述的调试方法,其中在所述分发激活指令的步骤 中,所述激活指令被发送到对应于已由所述激活指令指定的运行单元的调 试程序激活装置。
14.如权利要求12所述的调试方法,其中在所述分发激活指令的步骤 中,所述激活指令被发送到与基于所述多个运行单元中的每一个的操作状 态确定的运行单元相对应的调试程序激活装置。
15.如权利要求12所述的调试方法,其中在所述分发激活指令的步骤 中,所述多个运行单元中的每一个使用的存储区域的未占用容量被检测, 且所述激活指令被发送到与被检测的未占用容量中存在剩余的运行单元相 对应的调试程序激活装置。
16.如权利要求12所述的调试方法,其中在所述分发所述激活指令的 步骤中,所述激活指令被发送到与作为调试目标的运行单元关系很小或无 关的运行单元相对应的调试程序激活装置。
17.如权利要求12所述的调试方法,还包括如下步骤,其中对应于所 述多个运行单元中的任意之一提供的中继装置将从通信端口发往调试程序 的命令中继到由所述激活指令指定的运行单元上的调试程序。
18.如权利要求12所述的调试方法,还包括如下步骤,其中对应于所 述多个运行单元中的每一个提供的任意一个中继装置将从通信端口发往调 试程序的命令中继到由所述激活指令指定的运行单元上的调试程序。
19.如权利要求12所述的调试方法,其中在所述分发激活指令的步骤 中,所述激活指令不被发送到与处于停止状态的运行单元相对应的调试程 序激活装置。
20.如权利要求12所述的调试方法,还包括如下步骤,其中:
在所述多个运行单元中的任意一个上激活的调试程序内提供的物理-虚 拟地址转换装置将虚拟地址转换为物理地址;并且
使用已被所述物理-虚拟地址转换装置转换的物理地址并考虑到操作系 统在存储器中安排控制信息的结构,从如下存储区域中提取必要信息:所 述存储区域被作为调试目标并与激活了所述调试程序的运行单元不同的运 行单元所使用。
21.如权利要求12所述的调试方法,还包括从所述多个运行单元中检 测发生差错的运行单元并生成用于执行对已检出的运行单元的调试的激活 指令的步骤。
22.如权利要求12所述的调试方法,还包括如下步骤,其中:
在所述多个运行单元中的任一个上激活的调试程序内提供的运行单元 间中断生成装置对作为调试目标的运行单元生成中断;
在中断处理器中提供的信息获取/控制装置在已经从另一个运行单元生 成中断时,获取已事先设置的存储区域中的信息,其中所述中断处理器是 在所述多个运行单元中的每一个中生成中断时首先被激活用于处理中断的 程序;
已由所述信息获取/控制装置获取的信息被发送到生成中断的运行单 元;并且
已激活调试程序的运行单元接收来自作为调试目标的运行单元的响 应。
23.一种致使计算机运行调试方法的程序,所述调试方法用于执行对 在多个运行单元执行相连操作的系统中运行的程序的调试,所述程序致使 所述计算机运行以下过程,其中:
在收到指示激活调试程序的激活指令后,将所述激活指令分发给所述 多个运行单元;并且
基于已被分发的所述激活指令,对应于所述多个运行单元中的每一个 提供的调试程序激活装置在相应的运行单元上激活调试程序。
24.如权利要求23所述的程序,其中,在所述激活指令被分发的所述 过程中,所述激活指令被发送到对应于已由所述激活指令指定的运行单元 的调试程序激活装置。
25.如权利要求23所述的程序,其中,在所述激活指令被分发的所述 过程中,所述激活指令被发送到与基于所述多个运行单元中的每一个的操 作状态确定的运行单元相对应的调试程序激活装置。
26.如权利要求23所述的程序,其中,在所述激活指令被分发的所述 过程中,所述多个运行单元中的每一个使用的存储区域的未占用容量被检 测,且所述激活指令被发送到与被检测的未占用容量中存在剩余的运行单 元相对应的调试程序激活装置。
27.如权利要求23所述的程序,其中,在所述激活指令被分发的所述 过程中,所述激活指令被发送到与作为调试目标的运行单元关系很小或无 关的运行单元相对应的调试程序激活装置。
28.如权利要求23所述的程序,其中,致使计算机进一步运行如下过 程,其中对应于所述多个运行单元中的任意之一提供的中继装置将从通信 端口发往调试程序的命令中继到由所述激活指令指定的运行单元上的调试 程序。
29.如权利要求23所述的程序,其中,致使计算机进一步运行如下过 程,其中对应于所述多个运行单元中的每一个提供的任意一个中继装置将 从通信端口发往调试程序的命令中继到由所述激活指令指定的运行单元上 的调试程序。
30.如权利要求23所述的程序,其中,在所述激活指令被分发的所述 过程中,所述激活指令不被发送到与处于停止状态的运行单元相对应的调 试程序激活装置。
31.如权利要求23所述的程序,致使计算机进一步运行以下过程,其 中
在所述多个运行单元中的任意一个上激活的调试程序内提供的物理-虚 拟地址转换装置将虚拟地址转换为物理地址;并且
使用已被所述物理-虚拟地址转换装置转换的物理地址并考虑到操作系 统在存储器中安排控制信息的结构,从如下存储区域中提取必要信息:所 述存储区域被作为调试目标并与激活了所述调试程序的运行单元不同的运 行单元所使用。
32.如权利要求23所述的程序,其中,致使计算机进一步运行如下过 程,其中从所述多个运行单元中检测发生差错的运行单元,并生成用于执 行对已检出的运行单元的调试的激活指令。
33.如权利要求23所述的程序,其中,致使计算机进一步运行以下过 程,其中:
在所述多个运行单元中的任一个上激活的调试程序内提供的运行单元 间中断生成装置对作为调试目标的运行单元生成中断;
在中断处理器中提供的信息获取/控制装置在从另一个运行单元生成中 断时,获取已事先设置的存储区域中的信息,其中所述中断处理器是在所 述多个运行单元中的每一个中生成中断时首先被激活用于处理中断的程 序;
已由所述信息获取/控制装置获取的信息被发送到生成中断的运行单 元;并且
已激活调试程序的运行单元接收来自作为调试目标的运行单元的响 应。

说明书全文

技术领域

发明涉及调试系统、调试方法及程序,更具体而言,本发明涉及具 有多个运行单元的系统中的调试系统、调试方法及程序。

背景技术

近年来程序开发规模有了显著增长,调试任务所需时间对产品开发进 度有了越来越多的影响。结果,需要构建一个能够使调试的执行更有效率 的环境。诸如专利文献1“Processor Information Collector and Program Recording Medium Therefor”描述的调试系统之类的使用诊断处理器来支 持调试的方法是一种有效地执行调试的方法。
如图1所示,这类现有技术的调试系统配备有算术处理器组801、存 储器设备802以及用于监控算术处理器组801的操作状态的诊断处理器 803。诊断处理器803还配备有:用于检测组成算术处理器组801的算术 处理器的每一个的停止状态的停止检测器831,用于收集算术处理器的内 部状态的收集器832,用于将算术处理器的内部状态保存在存储器设备 802中的写单元834,以及用于初始化信息处理系统同时使存储器设备802 中算术处理器的内部状态保持不变的初始化单元836。
现有技术的这类配置的调试系统操作如下。
停止检测器831首先检测组成算术处理器组801的算术处理器是否已 进入停止状态。当停止发生时,收集器832收集算术处理器的内部状态并 将所收集的算术处理器的内部状态写入存储器设备802作为算术处理器内 部状态821。然后利用存储器设备802中保存的未加改变的算术处理器的 内部状态来初始化信息处理系统。由于算术处理器的内部状态的信息即使 在初始化之后也保存在存储器设备802中,因此该信息可用于执行有关停 止发生的状态的调试操作。
虽然如专利文献1描述的现有技术之类的系统中安装作为用于调试的 高端(high-function)专用硬件的诊断处理器803的方法可以取得提高调试 效率的效果,但该方法具有需要增加不对正常操作有帮助的额外硬件以及 提高系统成本的缺点。此外,意味着组件内建的设备成本增加的要求特别 严格,这常常阻碍专用硬件的安装。
另一方面,半导体集成电路的小型化和系统LSI的更多功能需求导致 多个诸如CPU之类的运行单元在系统LSI中的安装量的增加。专利文献2 “Resetting Circuit and Resetting Method for Multiple CPU”中公开的调试系 统是用于增加调试效率同时避免用于调试的专用硬件所造成的成本增加的 现有技术的示例。
如图2所示,现有技术的这类调试系统配备有用于控制包含多个CPU (CPU-A901和CPU-B902)的系统LSI的重置和中断的CPU控制电路 903。CPU控制电路903具有将多个CPU(CPU-A901和CPU-B902)之一 设置到调试装置中的能,所述调试装置中用于正常操作的程序被用于调 试的程序所取代。此外,CPU控制电路903还配备有:中断控制电路 904、总线跟踪功能905、母线(strap)采集电路906和调试控制电路 907。
参考图3,本说明接下来涉及具有这类配置的现有技术调试系统的操 作。
首先,当CPU控制电路903检测硬件重置时,调试控制电路907发布 用于重置每个内部功能(未示出)的命令(步骤S91)。
母线采集电路906接下来从母线设置单元908读取诸如母线信息之类 的外部设置信息(步骤S92)。
当已被读取的母线信息指示正常操作时(步骤S93中的“否”),调 试控制电路907基于已被读取的母线信息取消对CPU-A901和CPU-B902 以及对每个功能块的重置(步骤S94)。
当重置被取消时,每个功能块开始工作(步骤S95)。
另一方面,当已被读取的母线信息指示调试时(步骤S93中的 “是”),调试过程开始(步骤S96)。
当母线信息选择CPU-B902作为调试器时(步骤S961中的“B”), 调试控制电路907取消对已被母线信息选择的CPU-B902的重置(步骤 S962)。
然后调试器CPU-B902被激活(步骤S963),并且当完成启动操作后 (步骤S964中的“是”),目标CPU-A901和每个功能块的重置被取消 (步骤S965)。
另一方面,当母线信息选择CPU-A901作为调试器时(步骤S961中 的“A”),调试控制电路907取消对已被母线信息选择的CPU-A901的 重置(步骤S966)。
然后调试器CPU-A901启动(步骤S967),并且当完成启动操作后 (步骤S968中的“是”),目标CPU-B902和每个功能块的重置被取消 (步骤S969)。
当调试在多个运行单元执行相连操作的系统中运行的程序时,涉及多 个运行单元之间通信的并且可由除运行单元之外的组件从外部检查的信息 或者在差错发生期间生成的信息被保存然后被检查。但是在本方法中,差 错发生的原因在很多情况下无法充分调查。另一方面,当使用人工生成由 正常操作程序或向调试技术员汇报发送/接收内容的调试程序生成的发送内 容的调试程序时,差错发生的原因通常可被有效地调查。因此在运行单元 上实施这些调试程序以执行调试任务。
但是,事先实施这些调试程序会增加CPU的负荷,并且由于调试程序 使用存储区域,会影响正常操作程序的操作定时。结果,调试程序的存在 具有阻碍正常操作中可能发生的差错的发生,以及相反,导致只运行正常 操作程序时不应发生的差错的发生的缺点。
另外,在多个运行单元执行相连操作的系统内运行的程序中,发生差 错特别是定时产生的差错的运行单元无法唯一确定,因此这类差错的发生 很难预测。当运行单元进入停止状态或者对运行单元的操作有影响的差错 发生时,调试程序可能对处于停止状态的运行单元不可用,或者调试程序 可能对受影响的操作所处的运行单元不可用。结果,可能必须在不同的运 行单元中操作调试程序。但是,当差错发生的位置无法唯一确定时,不受 差错影响的运行单元也无法确定。
专利文献2描述的现有技术的方法的特征是在重置时指派激活调试程 序的运行单元(调试CPU),并且在改变调试CPU时必须再次执行重 置。结果,当对已在重置时指派的调试CPU的操作有影响的差错发生时, 状态不能被调试。
如上所述,在现有技术的上述调试系统中,当在多个运行单元 (CPU)执行相连操作的系统中执行调试时会出现以下问题:
(1)当调试程序被事先激活时,操作定时与只运行正常操作程序的情 况不同,因此调试程序的存在阻碍了正常操作中可能发生的差错的发生, 或者相反,导致只运行正常操作程序时不应发生的差错发生。
(2)将运行调试程序的运行单元必须事先设置,但对已被设置的运行 单元的操作有影响的差错的发生阻碍了对状态的调试。

发明内容

鉴于上述问题完成本发明,其目标是提供在多个运行单元执行相连操 作的系统中允许在任何时刻任何运行单元上激活调试程序以执行调试任务 的调试系统、调试方法及程序。
为了取得上述目标,本发明的调试系统是用于执行对多个运行单元执 行相连操作的系统中运行的程序的调试的调试系统,所述调试系统包括:
激活指令分发装置,用于在收到指示激活调试程序的激活指令后,将 激活指令分发给多个运行单元;以及
多个调试程序激活装置,它们对应于多个运行单元中的每一个被提 供,用于基于已由激活指令分发装置分发的激活指令在相应的运行单元上 激活调试程序。
激活指令分发装置可向对应于已由激活指令指定的运行单元的调试程 序激活装置发送激活指令。
根据本发明,用于激活调试程序的调试程序激活装置被提供给每个运 行单元,且该调试程序激活装置基于由激活指令分发装置分发的激活指令 来执行调试程序的激活。结果,任何时刻,甚至是在只运行正常操作程序 的状态中已确认差错时,都可以在执行作为差错发生原因的过程的运行单 元上激活调试程序并执行调试操作。
此外,激活指令分发装置可向与基于多个运行单元中的每一个的操作 状态确定的运行单元相对应的调试程序激活装置发送激活指令。
激活指令分发装置还可检测多个运行单元中的每一个使用的存储区域 的未占用容量,然后向与被检测的未占用容量中存在剩余的运行单元相对 应的调试程序激活装置发送激活指令。
该配置可避免由于未占用容量不足无法激活调试程序的状态的发生。
激活指令分发装置还可向与作为调试目标的运行单元关系很小或无关 的运行单元相对应的调试程序激活装置发送激活指令。
该配置可避免诸如在与执行导致差错发生的过程的运行单元一起执行 相连操作的运行单元上激活调试程序之类问题的发生,从而避免了检查差 错发生的原因。
本发明的另一个调试系统还配备有中继(relay)装置,所述中继装置 对应于多个运行单元的任意之一被提供,用来将从通信端口发往调试程序 的命令中继到由激活指令指定的运行单元上的调试程序。
本发明可应用于作为通信端口的通信目标的运行单元固定的系统。
本发明的另一个调试系统还配备有多个中继装置,所述多个中继装置 对应于多个运行单元中的每一个被提供,用来将从通信端口发往调试程序 的命令中继到由激活指令指定的运行单元上的调试程序。
根据本发明,中继装置被提供给每个运行单元用于传递发往调试程序 的命令,通过该命令,即使特定运行单元进入停止状态时,也可在不需要 对作为通信端口的通信目标的运行单元进行复杂切换的前提下,在多个运 行单元上同时激活多个调试程序。
本发明的另一个调试系统还配备有停止运行单元避免装置,用于避免 将激活指令发送到与处于停止状态的运行单元相对应的调试程序激活装 置。
根据本发明,停止运行单元避免装置的配备可以避免调试程序激活指 令被发送到与处于停止状态的运行单元相对应的调试程序激活装置的问 题,从而避免了调试操作的运行。
另外,本发明的另一个调试系统中,在多个运行单元中的任意一个中 待激活的调试程序配备有:
物理-虚拟地址转换装置,用于将虚拟地址转换为物理地址;以及
信息提取装置,使用已被物理-虚拟地址转换装置转换的物理地址,并 考虑到操作系统在存储器中安排控制信息的结构,来从如下存储区域中提 取必要信息:所述存储区域被作为调试目标并与激活了调试程序的运行单 元不同的运行单元所使用。
根据本发明,调试程序中物理-虚拟地址转换装置和信息提取装置的配 备允许调试程序参考被与已激活的运行单元不同的运行单元使用的存储区 域。结果,即使作为调试目标的运行单元处于停止状态时,也可以从外部 检查存储区域的内容。
另外,本发明的另一个调试系统还配备有差错检测装置,用于从多个 运行单元中检测发生差错的运行单元,并生成用于执行对已检出的运行单 元的调试的激活指令。
根据本发明,当多个运行单元中的任意运行单元中发生差错时,用于 调试差错的调试程序激活指令可由差错检测装置生成以自动激活调试程 序。因此,调试任务可在不从外部生成调试程序激活指令的前提下执行。
另外,本发明的另一个调试系统中,中断处理器作为多个运行单元中 的每一个中发生中断时首先被激活用于处理中断的程序,其配备有:
信息获取/控制装置,当中断从另一个运行单元生成时,用于在已事先 设置的存储器中获取信息;以及
响应生成装置,用于将已由信息获取/控制装置获取的信息发送到生成 中断的运行单元;
并且,在多个运行单元中的任一个中激活的调试程序配备有:
运行单元间中断生成装置,用于对作为调试目标的运行单元生成中 断;以及响应接收装置,用于接收来自作为调试目标的运行单元的响应。
根据本发明,中断处理器配备有用于在存储器中获取信息的信息获取/ 控制装置,并且调试程序配备有运行单元间中断生成装置,由此即使在作 为调试目标的运行单元处于停止状态时,也可以获取诸如缓存器或寄存器 之类的存储器中的信息来执行调试任务。
如上述说明所述,本发明中调试程序激活指令分发装置和调试程序激 活装置的配备可以实现使得在任何时刻任何运行单元中能够激活调试程序 的配置,因此本发明可以获得导致在只运行正常操作程序的状态中生成差 错的效果,或者可以继续操作直至差错生成的前一刻然后在执行导致差错 发生的过程的运行单元中激活调试程序,然后实施调试任务。
附图说明
图1是示出传统调试系统的配置示例的框图
图2是示出传统调试系统的另一个配置示例的框图;
图3是用于说明图2所示调试系统的操作的流程图
图4是示出用于操作本发明的目标硬件的配置示例的框图;
图5是示出本发明的第一示例性实施例的调试系统的配置的框图;
图6是示出图5所示调试程序激活指令分发单元的示例的框图;
图7是用于说明图5所示调试系统的操作的流程图;
图8是用于说明图5和图6所示调试程序激活指令分发单元的操作的 流程图;
图9是示出本发明的第二示例性实施例的调试系统的配置的框图;
图10是示出本发明的第三示例性实施例的调试系统的配置的框图;
图11是示出本发明的第四示例性实施例的调试系统的配置的框图;
图12是用于说明图11所示停止运行单元避免单元的操作的流程图;
图13是示出本发明的第五示例性实施例的调试系统的配置的框图;
图14是用于说明图13所示物理-虚拟地址转换器的第二物理-虚拟地 址转换操作的流程图;
图15是用于说明图13所示信息提取器的操作的流程图;
图16是示出本发明的第六示例性实施例的调试系统的配置的框图;
图17是用于说明图16所示差错检测器的第二配置的操作的流程图;
图18是用于说明图16所示差错检测器的第三配置的操作的流程图;
图19是用于说明图16所示差错检测器的第四配置的操作的流程图;
图20是示出本发明的第七示例性实施例的调试系统的配置的框图;
图21是用于说明图20所示调试系统的操作的流程图;
图22是示出本发明的第八示例性实施例的调试系统的配置的框图; 以及
图23是用于说明图22所示调试系统的操作的流程图。

具体实施方式

参考附图,本说明接下来涉及本发明的实施例。
【第一示例性实施例】
参考附图,本说明首先涉及本发明的第一示例性实施例的调试系统。
如图4所示,本示例性实施例的调试系统配备有:两个运行单元A和 B,通信端口1,诸如RAM(随机存取存储器)的可重写存储器单元2, 以及例如由HDD(硬盘驱动器)组成并存储各种程序的程序存储单元3。 存储器单元2的存储区域由运行单元-A程序区域6和运行单元-B程序区域 7组成。
如图5所示,运行单元-A程序区域6配备有:调试程序激活指令分发 单元(图5中表示为“分发单元”)61,调试程序激活单元(图5中表示 为“激活单元”)62,调试程序63,以及正常操作程序64。这些组件被 提供为在运行单元A上运行的程序。
另外,如图5所示,运行单元-B程序区域7还配备有调试程序激活指 令分发单元71、调试程序激活单元72,调试程序73,以及正常操作程序 74。这些组件被提供为在运行单元B上运行的程序。
这种情况下,调试程序激活指令分发单元61和71以及调试程序激活 单元62和72在运行单元A和B上被激活之前仅被存储为存储器单元2中 的程序而不执行各种操作。但是,为了简化说明,本文中调试程序激活指 令分发单元61和71以及调试程序激活单元62和72被描述为单独执行各 种操作的组件。
这些各种程序从程序存储单元3读入存储器单元2并存储到存储器单 元2的预定区域。
在收到从通信端口1发送的调试程序的激活指令(下午简称为“激活 指令”)后,调试程序激活指令分发单元61和71将收到的调试程序分发 到由激活指令指定的运行单元。调试程序激活单元62和72对应于运行单 元A和B的每一个被提供,并基于已由激活指令分发单元61和71分发的 激活指令来激活相应的调试程序63和73。
如图6所示,调试程序激活指令分发单元61配备有:接收来自通信 端口1的激活指令的接收器611;将激活指令发送到调试程序激活单元62 的发送器614;使用运行单元间通信来将激活指令发送到其他运行单元B 的发送器612;使用运行单元间通信来接收从其他运行单元B发送的激活 指令的接收器615;以及改变作为通信端口1的通信目标的运行单元的通 信目标改变单元613。
调试程序激活指令分发单元71类似地配备有:接收器711、发送器 714、发送器712、接收器715以及通信目标改变单元713。
参考图5和图7的流程图,本说明接下来涉及本实施例的调试系统的 总体操作。
已作为外部控制终端(未示出)的输入被施加的激活指令首先被发送 到通信端口1。该激活指令包括指定其中将激活调试程序的运行单元的代 码,以及指定将被激活的调试程序的类型的代码。
这种情况下,已经收到来自通信端口1的调试程序激活指令(步骤 S1)的调试程序激活指令分发单元61和71将该激活指令分发到激活指令 中指定的并且其中将激活调试程序的多个运行单元,并将激活指令发布给 调试程序激活单元62和72(步骤S2)。然后调试程序激活单元62和72 激活调试程序63和73(步骤S3)。
当调试程序63和73接收来自通信端口1的命令(步骤S4)时,由调 试程序63和73提供的命令分析单元(未示出)分析该命令。当从通信端 口1接收的命令为调试命令(步骤S5中的“否”)时,根据该命令运行 操作内容,并执行调试任务。在这种情况下,数据还可取决于操作内容通 过通信端口1来发送和接收。当从通信端口1接收的命令为“结束”命令 (步骤S5中的“是”)时,调试程序63和73结束该调试。
这种情况下的命令分析单元是用于分析收到的由调试程序63和73组 成的命令内容的装置。除了上述“结束”命令,命令类型例如还包括用于 读取存储器或寄存器的内容的命令以及用于将值写入存储器或寄存器的命 令。
参考图6和图8的流程图,本说明接下来涉及调试程序激活指令分发 单元61和71的操作。此处的说明涉及通信端口1的中断目的地的初始值 为运行单元A的情况。
首先,调试程序激活指令从通信端口1发送,中断对运行单元A生成 (步骤S11)且激活指令分发单元61被激活。然后接收器11接收来自通 信端口1的激活指令(步骤S12)并确定目的地。这种情况下,当目的地 为运行单元A(步骤S21中的“是”)时,发送器614将激活指令发送到 运行单元A的调试程序激活单元62(步骤S22)。另一方面,当目的地为 运行单元B(步骤S21中的“否”)时,使用运行单元间通信的发送器 612将激活指令发送到运行单元B(步骤S23)。当B侧运行单元上的激 活指令分发单元71接下来通过接收器715接收该激活指令(步骤S24) 时,通信目标改变单元713将通信端口1的通信目标改变为运行单元B (步骤S25),且发送器714将激活指令发送到调试程序激活单元72。
在本示例性实施例中,说明假设调试程序由来自通信端口1的调试程 序激活指令的接收来激活。也可以有另一个配置,其中使用定时器来应用 激活指令,由此调试程序在固定时间间隔流逝后被激活,然后此时的状态 被检查。或者,根据设置断点(breakpoint)的方法或者作为调试目标的程 序本身在到达特定点时发出激活指令的方法,程序可在程序到达特定位置 时激活调试程序。
另外,虽然此处的说明涉及本实施例中系统配备有两个运行单元A和 B的示例,但本实施例很容易扩展到配备有诸如三个或更多数目的运行单 元的系统。
另外,虽然此处的说明涉及本实施例中激活调试程序的运行单元被事 先指定且调试激活指令分发单元61和71将激活指令分发到由激活指令指 定的运行单元的情况,但激活调试程序的运行单元被自动选择的配置也是 可以的。例如,调试程序激活指令分发单元61和71可具有如下配置,其 中激活指令被发送到与基于运行单元A和B的操作状态确定的运行单元相 对应的调试程序激活单元。这种情况下,运行单元A和B的操作状态例如 指示运行单元A和B的每一个使用的存储区域的未占用容量或者运行单元 A和B之间的连接状态。
当基于运行单元A和B的每一个的存储区域的未占用容量选择了分发 目的地时,激活指令分发单元61和71可具有如下配置,其中运行单元A 和B的每一个的存储区域的未占用容量被检测,且激活指令被分发到与被 检测的未占用容量中存在剩余的运行单元相对应的调试程序激活单元。采 用这类配置的模式包括运行单元A和B的每一个上的激活指令分发单元 61和71检测未占用容量然后将未占用容量汇报给其他运行单元的模式, 以及运行单元A和B的每一个上的激活指令分发单元61和71通过直接参 考其他运行单元使用的存储区域来独立检测未占用容量的模式。
本示例性实施例的说明采用两个运行单元A和B执行相连操作的系统 作为示例。三个或更多运行单元A和B执行相连操作的系统中使用的程序 为调试目标时,激活指令的分发目的地可以通过查清连接状态来确定。
在这种情况下,激活指令分发单元61和71可具有如下配置,其中每 个程序首先检测与其他程序的通信路径有保证,然后将激活指令分发到与 执行相连操作且作为调试目标的程序关系很小或无关的运行单元。作为这 种情况下检测通信路径已有保证的方法,可以采用由程序检测已执行了函 数调用来保证通信路径的方法,或者可以采用调查保存了通信路径的状态 的存储区域的方法。
另一方面,作为调试目标的程序与其他运行单元上工作的程序执行相 连操作时,可以采用如下配置,其中激活指令不仅分发到作为调试目标的 程序工作的运行单元,而且分发到相连的运行单元,然后相连的程序作为 一个集合被当作调试目标。
说明接下来涉及本示例性实施例的调试系统的效果。
在本示例性实施例中,调试程序激活指令分发单元61和71以及调试 程序激活单元62和72一起被提供为在运行单元A和B上运行的程序,并 且还具有如下配置,其中接收激活指令后在运行单元A和B任意之一上激 活调试程序,由此可以实现增加调试任务的效率而不伴随由调试专用的硬 件造成的成本增加。
另外,本示例性实施例中调试程序激活指令分发单元61和71以及调 试程序激活单元62和72的配备使得调试程序可以在任何时刻任何运行单 元上激活。结果,差错可以在只运行正常操作程序的状态中生成,或者可 以运行正常操作程序直至差错生成的前一刻,接着可以在执行导致差错发 生的过程的运行单元上激活调试程序,然后执行调试任务。
另外,本实施例中还可有如下配置,其中可以使用定时器来应用调试 程序的激活指令,然后在固定时间间隔流逝后激活调试程序。该配置的采 用可以消除调试技术员应用激活指令时产生的调试程序的激活定时发散 (divergence)的影响,还可以高时间精度地调整激活定时。
另外,在本示例性实施例中,可采用如下配置,其中通过使用设置断 点的方法或者作为调试目标的程序本身在到达特定位置时发出激活指示的 方法,程序可在程序到达特定点时激活调试程序。采用这种类型的配置, 即使情形阻碍通过只调整激活时刻对到达被观察位置的时刻的固定,调试 程序也可在期望观察的时间点被激活。
此外,在有些情况下,存储区域被已运行的正常操作程序使用,因此 调试程序无法被另外激活。另一方面,调试程序包括无论它们被激活的运 行单元如何都可以执行调试任务的类型。在这种情况下,本示例性实施例 中可采样如下配置,其中每个运行单元的存储区域的未占用容量被检测, 且激活指令被分发到未占用容量有剩余的运行单元。采用这种类型的配置 可以避免发出激活指令时由于未占用容量不足无法激活调试程序的运行单 元。
另外,在运行涉及相连操作的程序的运行单元上激活调试程序对于执 行相连操作且相连操作阻碍调试任务的程序的操作有影响。在这种情况 下,本实施例可采用查清连接状态然后发出激活指令的配置。采用这种类 型的配置,调试程序可在与运行连接了操作的程序的运行单元不同的运行 单元上被激活。
【第二示例性实施例】
参考附图,本说明接下来涉及本发明的第二示例性实施例的调试系 统。
上述说明中描述的第一示例性实施例是将本发明应用到作为通信端口 的通信目标的运行单元可以改变的系统的情况。但是,取决于系统,存在 一些作为通信端口的通信目标的运行单元无法改变,即作为通信端口的通 信目标的运行单元是固定的系统。当本发明被应用到这种类型的系统时, 即使为每个运行单元提供了调试程序激活指令分发单元,也无法将命令发 送到已在非通信端口的通信目标的运行单元上激活的调试程序。
本示例性实施例的调试系统具有可以被应用到作为通信端口的通信目 标的运行单元是固定的系统的配置。
如图9所示,本示例性实施例的调试系统具有如下配置,其中与图5 所示第一示例性实施例的配置相比,添加了用于中继在另一个运行单元中 运行的调试程序的通信的中继单元65。
中继单元65是在两个运行单元A和B的运行单元A上运行的组件, 并将从通信端口1向调试程序63和73发送的命令中继到已由激活指令指 定的运行单元上的调试程序。
本示例性实施例中作为通信端口1的通信目标的运行单元固定为运行 单元A。当来自通信端口1的命令的目的地为运行单元A时,中继单元65 发送命令到运行单元A的调试程序63,来自通信端口1的命令的目的地为 运行单元B时,中继单元65发送该命令到运行单元B的调试程序73。
本示例性实施例的激活指令分发单元61和71使得图6所示激活指令 分发单元61和71的通信目标改变单元613和713、A侧运行单元上的运 行单元间通信接收器615以及B侧运行单元上的运行单元间通信发送器 712和通信端口接收器711可以省略。
本示例性实施例的总体操作与本发明的第一示例性实施例的总体操作 相同。不同于图8所示用于改变通信端口的通信目标的步骤的省略,激活 指令分发单元61和71的操作与本发明的第一示例性实施例相同。
虽然本示例性实施例的说明涉及配备有两个运行单元A和B的系统的 示例,本实施例很容易扩展到诸如三个或更多数目的运行单元。
说明接下来涉及本示例性实施例的调试系统的效果。
在本示例性实施例中,运行单元A程序区域6中提供了中继单元65 用于中继通信到调试程序63和73,且该中继单元65的提供是为了将通信 中继到在运行单元B中运行的调试程序73。因此本发明可被应用到作为通 信端口1的通信目标的运行单元固定为运行单元A且不可改变的系统。此 外,由于不直接与通信端口1通信的运行单元B上的调试程序73也可以 通过中继单元65来进行通信,因此多个调试程序63和73可在多个运行单 元A和B上同时使用。
【第三示例性实施例】
参考附图,本说明接下来涉及本发明的第三示例性实施例的调试系 统。
与第一示例性实施例的调试系统相同,本示例性实施例的调试系统是 如下系统,其中本发明被应用到允许作为通信端口的通信目标的运行单元 改变的系统。
在允许作为通信端口的通信目标的运行单元改变的系统中,命令可以 通过切换通信端口来发送到调试程序。但是,当多个调试程序同时运行 时,料想切换通信端口中会出现问题。此外,改变作为通信端口的通信目 标的运行单元的处理需要一定量的开销。
结果,即使作为通信端口的通信目标的运行单元可以改变,使用图9 所示第二示例性实施例的调试系统中的中继单元来将各种类型的命令中继 到调试程序也能排除改变通信端口的处理需要并获得处理的减少。
但是,当采用该中继单元只在特定运行单元中提供的配置时,提供中 继单元的运行单元中停止状态(stalled state)的发生也会阻碍中继单元本 身发挥作用。
结果,本示例性实施例的调试系统具有如下配置,其中为每个运行单 元提供中继单元,以便即使在任何运行单元中发生停止状态,各种类型的 命令也可被中继到调试程序。
下面的说明涉及将本发明应用到存在三个运行单元A、B和C的系统 中的情况。
如图10所示,本示例性实施例的调试系统具有如下配置,与图5所 示第一示例性实施例中的配置相比,新添加运行单元C程序区域8,还添 加了A侧运行单元上的中继单元65、B侧运行单元上的中继单元75以及 C侧运行单元上的中继单元85用于中继在其他运行单元中运行的调试程序 的通信。
本实施例中的中继单元65、75和85是分别运行于三个运行单元A、 B和C的组件;这些中继单元65、75和85将从通信端口1发往调试程序 63、73和83的命令中继到已由激活指令指定的运行单元上的调试程序。
运行单元C程序区域8配备有:调试程序激活指令分发单元81,调试 程序激活单元82,调试程序83和正常操作程序84。这些组件形成为在运 行单元C上运行的程序。
本示例性实施例中激活指令分发单元61和71的操作类似于本发明的 第一示例性实施例的操作。此外,激活指令分发单元81的操作类似于激 活指令分发单元61和71的操作。但是,由于在激活第二及后续调试程序 时切换被认为是无意义的,因此在激活指令分发单元61、71和81的操作 中改变通信端口1的通信目标的步骤无需执行。
虽然说明涉及本示例性实施例中配备有三个运行单元A、B和C的系 统的示例,但本示例性实施例很容易扩展到任意数目的运行单元,如四个 或更多。
说明接下来涉及本示例性实施例的调试系统的效果。
在本示例性实施例中,在运行单元A、B和C的每一个中提供中继单 元65、75和85用于中继通信到调试程序,且本实施例具有如下配置,允 许在其他运行单元中运行的调试程序的通信在任何运行单元处被中继。结 果,即使特定的运行单元中发生停止状态,多个调试程序63、73和83也 可在多个运行单元A、B和C中同时使用而不需要麻烦地切换作为通信端 口1的通信目标的运行单元A、B和C。
例如,在图10所示本示例性实施例的调试系统中,描述了分别激活 三个调试程序63、73和83的示例。
在图10的示例中,运行单元A被设为作为通信端口1的通信目标的 运行单元。结果,各种类型的命令通过为运行单元A提供的中继单元65 被中继到调试程序63、调试程序73和调试程序83。运行单元A由于任何 原因进入停止状态时,中继单元65也停止发挥作用。结果,作为通信端 口1的通信目标的运行单元从运行单元A变为运行单元B,且通过在运行 单元B中提供的中继单元75可实现将各种命令中继到调试程序73和83。 通过这种方式,调试程序可在两个运行单元B和C上同时被激活而无需为 每个通信切换作为通信端口1的通信目标的运行单元的麻烦处理,所述通 信例如去往运行单元B的与调试程序73的通信以及去往运行单元C的与 调试程序83的通信。
【第四示例性实施例】
参考附图,本说明接下来涉及本发明的第四示例性实施例的调试系 统。
在上述第一至第三示例性实施例中,调试程序激活指令被分发到由调 试程序激活指令指定的运行单元或分发到由激活指令分发单元选择的运行 单元。但是,有些情况下,调试程序将被激活的运行单元已进入停止状 态,因此调试程序的激活是不可能的。
为了避免发生这类问题,本示例性实施例的调试系统具有如下配置, 其中当选择调试程序可以被激活的运行单元时,处于停止状态因此调试程 序无法被激活的运行单元不被选择。
如图11所示,本示例性实施例的调试系统具有如下配置,其中与图5 所示第一示例性实施例的配置相比,提供了停止运行单元避免单元(图11 中称为“避免单元”)66和76来运行这样的进程,该进程用于避免停止 运行单元并将激活指令发送到可以运行程序的运行单元的激活指令分发单 元。
为调试程序可被激活的多个运行单元A和B的每一个安排停止运行单 元避免单元66和76。然后停止运行单元避免单元66和76执行处理以使 得激活指令不发送到处于停止状态的运行单元。
更具体而言,运行单元A的停止运行单元避免单元66通知通信端口1 将运行单元A当作作为激活指令的分发源的运行单元(换言之,作为通信 端口1的通信目标的运行单元),并且运行单元B的停止运行单元避免单 元76通知通信端口1将运行单元B当作激活指令的分发源。
在如图4中配备有两个运行单元A和B的系统中,停止运行单元避免 单元66和76被配置为交替激活为“运行单元A、B、A、B、...、A、 B”。配备有三个或更多运行单元的系统中,停止运行单元避免单元被配 置为使用定时器或者通过正常操作期间使用的定时器中断处理器中的程序 来相继激活。实现停止运行单元避免单元66和76的实际方法不必要求交 替激活或相继激活,但将要描述的本配置对于有效地结合差错检测器更可 取。
定时器中断处理器是在定时器中断发生时首先被激活以处理定时器中 断的程序。若运行单元配备有定时器中断功能,则该定时器中断处理器是 通常使用的程序。
本示例性实施例的总体操作与本发明的第一示例性实施例的总体操作 相同,除了增加了用于选择可在图7的流程图中接收激活指令之前激活调 试程序的运行单元的步骤。
参考图12,本说明接下来涉及停止运行单元避免单元66和76的操 作。在图12中,步骤S71和步骤S74不是故意的选择,而是根据在该时 间点的条件必然的选择过程。换言之,步骤S72是由运行单元A运行的过 程,但运行单元A处于停止状态时程序不运行。结果,步骤S71的分支指 示向步骤S73继续而不执行步骤S72的过程。类似地,步骤S75是由运行 单元B运行的过程,但运行单元B处于停止状态时程序不运行。结果,步 骤S74的分支指示向步骤S76继续而不执行步骤S75的过程。此处的说明 假设B是作为调试程序的激活指令分发源的运行单元(换言之,作为通信 端口1的通信目标的运行单元)的初始值。
首先,在步骤S71阶段,当运行单元A不处于停止状态时(步骤S71 中的“否”),运行单元A上的停止运行单元避免单元66将作为调试程 序激活指令分发源的运行单元的设置值改变为运行单元A(步骤S72)。 该过程通过改变通信端口1的通信目标来执行。当此刻存在激活指令时 (步骤S73中的“是”),激活指令被发送到已被设置的运行单元(这种 情况下,为运行单元A)(步骤S77)。
另一方面,当步骤S73中不存在激活指令(步骤S73中的“否”)时 且如果运行单元B不处于停止状态(步骤S74中的“否”),运行单元B 上的停止运行单元避免单元76则将作为调试程序激活指令分发源的运行 单元改变为运行单元B(步骤S75)。若此刻存在激活指令(步骤S76中 的“是”),则激活指令被发送到已被设置的运行单元(这种情况下,为 运行单元B)(步骤S77)。若不存在激活指令(步骤S76中的 “否”),则过程返回开始。
若步骤S71处运行单元A停止,则过程前进到步骤S73而不执行步骤 S72的过程,但若存在激活指令,则作为调试程序激活指令分发源的运行 单元为运行单元B。结果,调试程序激活指令被发送到停止的运行单元因 而无法激活的状态可以避免。另一方面,若步骤S74处运行单元B停止, 则同样的发明可以避免调试程序激活指令被发送到未能激活的运行单元B 的状态。
本方法很容易扩展到存在三个或更多运行单元的情况,并且若任何运 行单元在工作,则工作的运行单元被设为调试程序激活指令的分发源。
但是,涉及以下情况时需要小心:
一个小心点是如下情况,其中作为调试程序激活指令分发源的运行单 元在步骤S72中改变为运行单元A,接着运行单元A在步骤S73中收到激 活指令之前停止。步骤S75和步骤S76之间的情况相同。这种情况下,调 试程序激活指令不被接受,但固定的时间间隔流逝后,作为调试程序激活 指令分发源的运行单元被非停止的运行单元改变,因此希望存在激活失败 时激活指令在固定时间间隔流逝后被发出的配置。考虑到所有运行单元停 止的情况可采用如下配置,其中过程终止,且在尽管激活指令已重发固定 次数激活仍失败时生成差错报告。
另一个小心点是如下情况,其中虽然通过前述方法处理调试程序激活 指令分发单元可以实现运行,但由激活指令指定的调试程序将被激活的运 行单元中的停止状态会阻碍激活。这种情况下可采用如下配置,其中若固 定的时间间隔流逝后无法确认激活,则生成差错报告。但是,若差错检测/ 激活指令生成器(待述)的差错检测方法检测到停止状态并确定激活不可 能,则优选使用立即生成差错报告并在另一个运行单元上激活调试程序的 方法。
为了消除分开指定用于激活的运行单元的必要,优选采用如下配置, 其中参考与作为调试目标且与激活了调试程序的运行单元不同的运行单元 有关的存储区域,激活调试程序用于分析作为调试目标的运行单元或者用 于分析在该运行单元上工作的程序的状态,并且在作为激活指令分发源的 运行单元上激活调试程序。这种情况下,在激活指令分发单元的功能中, 对将激活指令转移到另一个运行单元的功能的需要可以排除。
说明接下来涉及本示例性实施例的调试系统的效果。
在本示例性实施例中,采用如下配置,其中停止运行单元避免单元66 和76阻止激活指令被发往调试程序不能运行的运行单元,结果,即使运 行单元由于差错而停止且运行单元的操作受影响,只要存在可用的运行单 元,仍可在该运行单元上激活调试程序。
【第五示例性实施例】
说明接下来涉及本发明的第五示例性实施例。
在上述第一到第四示例性实施例中,调试程序能够只参考与已激活的 运行单元有关的存储区域。但是,在有些情况下,在作为调试目标的运行 单元上工作的程序的状态可以通过参考存储区域被使用的方式来分析。
本示例性实施例的调试系统具有如下配置,其中允许从激活了调试程 序的运行单元通过参考作为调试目标的运行单元的存储区域来执行调试任 务。
如图13所示,本示例性实施例的调试系统具有如下配置,其中与图5 所示第一示例性实施例的配置相比,调试程序63和73分别被调试程序67 和77所取代。
调试程序67配备有物理-虚拟地址转换器671和用于分析状态的信息 提取器672。
物理-虚拟地址转换器671将虚拟地址转换成物理地址。
信息提取器672使用已由物理-虚拟地址转换器671转换的物理地址并 考虑到OS(操作系统)在存储器中安排控制信息的结构以从正常操作程 序74正在使用的存储区域中提取必要信息。
调试程序77类似地配备有物理-虚拟地址转换器772和信息提取器 772。
下面的说明涉及在运行单元A上激活调试程序的操作示例,在运行单 元B上激活调试程序77时操作相同。
物理-虚拟地址转换器671执行:第一物理-虚拟地址转换操作,其中 虚拟地址和物理地址的偏移(差别)信息被调整以执行虚拟地址和物理地 址的相互转换;以及第二物理-虚拟地址转换操作,其中物理/虚拟地址转 换表的信息被分析以将虚拟地址和物理地址置于对应关系。
说明首先涉及第一物理-虚拟地址转换操作。
第一物理-虚拟地址转换操作是用于处理诸如OS内核静态保存的区域 之类的保存在宽范围内连续的物理地址的区域(下文称为“连续区域”) 的操作。
在连续区域中,当对应于特定虚拟地址的物理地址已知时,可以发现 虚拟地址和物理地址之间的差别。在连续区域中,当虚拟地址增加n个单 位时,相应的物理地址也增加n个单位。结果,保存虚拟地址和物理地址 之间的差别然后调整该差别可以实现从虚拟地址到物理地址的转换以及从 物理地址到虚拟地址的转换。
虽然由另外的计算获得的值可用作虚拟地址和物理地址的差别,但在 有些OS中,对应于连续区域的起点的虚拟地址是预定的。在这种情况 下,差别可基于指派到每个CPU的存储区域起点处的物理地址信息来计 算。优选如下配置,其中指派到每个CPU的存储区域起点处的物理地址信 息可以获得,且差别可被自动计算。
参考图14,本说明接下来涉及第二物理-虚拟地址转换操作。
第二物理-虚拟地址转换操作是高端OS中使用的方法,而且是用于处 理使用物理-虚拟地址表来控制例如用户程序的虚拟地址的方法的操作。在 用户程序中,对应于连续虚拟地址的存储区域不一定连续且物理地址无法 通过差别来唯一确定,因此需要多道措施。
在第二物理-虚拟地址转换操作中,使用第一物理-虚拟地址转换操作 来获取OS持有的物理-虚拟地址转换表的物理地址(步骤S101)。
该物理地址用于引用物理-虚拟地址转换表以及获取物理-虚拟地址转 换表的内容(步骤S102)。
在高端OS中,物理/虚拟转换表可在多层上提供,且转换不一定通过 单个引用来完成。因此,当转换未完成时(步骤S103中的“否”),接 下来将要引用的物理-虚拟转换表的虚拟地址从物理-虚拟转换表的内容中 获得(步骤S104)。
重复这些过程并获得目标物理地址时(步骤S103中的“是”),获 得的物理地址被汇报(步骤S105),第二物理-虚拟地址转换操作完成。
参考图15,本说明接下来涉及信息提取器672的操作。
物理-虚拟地址转换基于具有充当基点(base point)的数据结构的虚 拟地址被执行(步骤S201),且被引用数据处的物理地址被获得。
当允许直接引用数据的物理地址可被映射时,采用如下配置,其中必 要的数据可通过例如将具有的结构与待引用的数据相似或相同的结构变量 映射到相关物理地址(步骤S202)然后引用数据(步骤S203)来获取。
或者,具有的结构与待引用的数据相似或相同的变量可以事先准备, 然后获取的物理地址用于将待引用数据复制到准备好的变量的区域中,然 后引用这些数据。虽然这种形式允许数据即使在物理地址不允许直接引用 数据时也能被引用,但是它负担了需要用于复制的开销的缺陷
当数据结构简单时,通过这些处理来完成提取(步骤S204中的 “是”)且汇报提取结果(步骤S206),由此完成处理。但是,取决于数 据,例如具有列表结构的数据可以按分散的状态安排。
当必要数据缺失或在初始引用中只是部分可用时(步骤S204中的 “否”),指示下一列表位置的地址被获取(步骤S205)。由于该地址由 虚拟地址记录,因此物理地址通过执行物理-虚拟地址转换来获得(步骤 S201),且下一列表的内容被参阅(步骤S202和步骤S203)。重复该过 程数次直至必要的数据完整。
在本示例性实施例中,在不使用虚拟地址的OS中,不需要步骤S201 的物理-虚拟地址转换,且类似的功能可以通过不包含该处理的过程来实 现。
另外,虽然说明涉及本实施例中配备有两个运行单元A和B的系统的 示例,但本实施例很容易扩展到配备有诸如三个或更多等任意数目的运行 单元的系统。
在本示例性实施例中,提供调试程序用于通过参考与作为调试目标且 与激活了调试程序的运行单元不同的运行单元有关的存储区域来分析调试 目标运行单元的状态或在该运行单元中工作的程序。结果,无论作为调试 目标的运行单元的状态如何,调试任务都可执行。
另一方面,诸如运行单元中提供的寄存器或缓存器之类的资源仅通过 参考运行单元所使用的存储区域无法被检查。因此发生诸如由于无法参考 寄存器内容导致无法获得必要的调试信息,或者由于最新信息继续留在缓 存中因此仅通过参考存储区域无法检查最新信息之类问题的可能性出现。
结果,在本示例性实施例中,用于读出、写入和控制运行单元中提供 的寄存器或缓存器的单元内资源控制单元(未示出)可通过作为调试目标 的运行单元上的调试程序来形成。该单元内资源控制单元由寄存器内容读/ 写单元(未示出)和缓存器控制单元(未示出)组成。
当读寄存器的内容时,读指令被应用到作为调试目标的运行单元上的 调试程序,读由寄存器读/写单元执行,然后汇报结果。当执行写操作时, 写指令及写数据被应用到作为调试目标的运行单元上的调试程序,然后写 由寄存器读/写单元执行。
在接受释放缓存内容的指令后,缓存器控制单元实施控制以使得运行 单元运行缓存器释放命令。当缓存器的释放完成时,最新信息写入存储 器。结果,获取信息的调试程序能够观察其他运行单元中的存储区域。或 者,作为调试目标的运行单元上的调试程序可以具有将读缓存器的内容汇 报给外部的配置。或者,希望存在允许控制缓存器的操作模式或者控制内 容的更新的配置。
在作为调试目标的运行单元上的调试程序运行期间,在该运行单元提 供的寄存器中,操作中使用的寄存器或与诸如程序计数器之类的程序的进 展有关的寄存器的内容被保存于存储器区域的堆栈区域中。但是,存在这 些堆栈区域的内容留在缓存器中且最新值不在存储区域中保存的可能性。 结果,上述缓存器控制单元的使用实现了如下配置,其中所保存的寄存器 的内容或者通过将缓存的内容释放到存储区域或者通过直接读取缓存的内 容来获得,从而实现了在作为调试目标的程序运行期间被保存的寄存器内 容的获取。
通过采用这类操作,当调试程序可以在作为调试目标的运行单元中使 用时,配备有寄存器内容读/写单元和缓存器控制单元的调试程序可在作为 调试目标的运行单元上使用,且存储区域可被参考。结果,获得信息的调 试程序能够实现无法正常运行的寄存器或缓存器读入、写出和控制。
【第六示例性实施例】
说明接下来涉及本发明的第六十例性实施例的调试系统。
在上述第一至第五示例性实施例中,当运行单元中发生某些类型的差 错时,来自外部控制终端的激活指令的输入是必要的。
本示例性实施例的调试系统具有如下配置,其中即使激活指令不作为 来自外部的控制终端的输入来应用,当运行单元中发生某些类型的差错 时,激活指令也会自动生成。
如图16所示,本示例性实施例的调试系统具有如下配置,其中与图 5所示第一示例性实施例的调试系统相比,添加了差错检测器68和78用 于检测差错的发生。
差错检测器68和78在运行单元A和B中检测到差错的发生后生成调 试程序激活指令。
在这种情况下,系统可具有这样的配置以使得差错检测器68和78的 差错检测只汇报给外部控制终端。但是,优选采用配备有如下装置的配 置,所述装置用于在检测到差错发生的时刻暂停差错发生的运行单元或程 序、作为差错发生原因的运行单元或程序或者其他运行单元或程序。
配备有差错检测器68和78的运行单元不一定需要与配备有调试程序 激活单元62和72的运行单元一致,且差错检测器68和78可只在运行单 元A和B中提供。
本实施例的总体操作与上述示例性实施例的任意一个的总体操作相 同,除了在接收调试程序激活指令的步骤之前添加了通过差错检测器68 和78检测差错的步骤。
说明接下来涉及差错检测器68和78的配置和操作。
差错包括其发生由系统汇报的差错(下文称为“运行期间差错”)和 阻碍正常操作且不由系统汇报的差错。运行期间差错包括不当的存储器参 考、不当的命令运行和硬件异常。阻碍正常操作的差错包括由无限循环和 失控造成的停止。
说明首先涉及瞄准运行期间差错的差错检测器68和78的第一配置。 在这种情况下,差错检测器68和78的每一个由用于接收系统的差错汇报 的差错接收器(未示出)和用于汇报差错的发生的通知单元(未示出)组 成。在具有使特定程序在运行期间差错发生后运行的配置的系统中,差错 检测器可在特定程序中提供。
当差错检测器作为运行单元上的程序被提供以瞄准运行期间差错时, 差错被运行期间差错发生的运行单元的差错检测器检测。在这种情况下, 激活调试程序的运行单元可成为差错发生然后激活指令生成的运行单元。 另一方面,当调试程序在运行期间发生差错的运行单元中被激活时,程序 的激活对运行单元或存储区域造成的效果阻碍差错原因的确定的可能性出 现。在这种情况下,优选采用如下配置,其中调试程序激活指令被发给另 一个运行单元,且第五示例性实施例中的调试程序67和77被激活。
说明接下来涉及瞄准阻碍正常操作的差错的差错检测器68和78的第 二配置。在这种情况下,差错检测器68和78由以下部件组成:更新信息 读取单元(未示出),用于读取已被在作为调试目标的运行单元上运行的 程序更新的信息;正常更新检查单元(未示出),用于检查信息更新是否 被正确执行;以及差错发生通知单元(未示出),用于汇报差错的发生。
参考图17,本说明接下来涉及差错检测器68和78的第二配置的操 作。此处的说明涉及如下示例,其中差错发生通知单元被提供为调试程序 激活指令生成器,其用于在检测到差错的发生后生成调试程序激活指令。
更新信息读取单元首先读取已被另一个运行单元上运行的程序更新的 信息(步骤S301)。基于该信息,正常更新检查单元检查更新是否在正确 地执行(步骤S302)。若更新在正确地执行(步骤S303中的“是”), 则正常更新检查单元检查下一更新。若检测到由于发生差错因此更新不正 常(步骤S303中的“否”),则调试程序激活指令生成器生成调试程序 激活指令(步骤S304)并将激活指令应用到调试程序激活单元。被程序更 新的信息可通过提供用于更新信息的程序来获取。但是,通过使用在系统 内部被OS用作被程序更新的信息的时间信息,不提供另外的程序也可实 现差错检测器。
说明接下来涉及瞄准阻碍正常操作的差错的差错检测器68和78的第 三配置。在这种情况下,差错检测器68和78每个都配备有以下部件:中 断生成器(未示出),用于生成作为调试目标的运行单元的中断;响应检 查单元(未示出),用于检查来自作为调试目标的运行单元的响应,以及 激活指令生成器(未示出),用于生成调试程序激活指令。此外,作为运 行单元的运行单元还配备有用于响应指示的响应单元。
参考图18,本说明接下来涉及差错检测器的第三配置的操作。
中断生成器首先对其他运行单元生成中断(步骤S311),然后等待响 应返回(步骤S312)。当预定时间间隔内收到响应时(步骤S313中的 “是”),确定操作正常,生成下一中断。若预定时间间隔内未返回响应 (步骤S313中的“否”),则确定由于差错不可能有响应,且激活指令 生成器生成调试程序激活指令(步骤S314)并将激活指令应用到调试程序 激活单元。虽然此处的说明涉及确定标准是预定时间间隔内响应返回的情 况,但是确定标准还可以取决于返回的响应是正常的还是非正常的。
说明接下来涉及用于瞄准阻碍正常操作的差错的差错检测器68和78 的第四配置。该配置可以通过添加如下装置来实现,所述装置用于调查停 止运行单元避免单元(图11的停止运行单元避免单元66和76)中当前选 择了哪个运行单元,以选择可以激活调试程序的运行单元,所述停止运行 单元避免单元避免已停止的运行单元。
参考图19,本说明接下来涉及差错检测器68和78的第四配置的操 作。
在如图19的差错检测器68和78的第四配置中,除了图12中停止运 行单元避免单元66和76的操作外,还添加了用于确定当前由停止运行单 元避免单元66和76设置了哪个运行单元的步骤S78和S79。
在图19中,步骤S71和步骤S74不是故意的选择,而是根据这些时 刻的状态不可避免的选择过程。换言之,步骤S72是由运行单元A运行的 过程,且运行单元A停止时该程序不运行。结果,步骤S71的分支示出处 理前进到步骤S73而不执行步骤S72的过程。类似地,步骤S75是由运行 单元B运行的过程,且运行单元B停止时该程序不运行。结果,步骤S74 的分支示出处理前进到步骤S76而不执行步骤S75的过程。在这种情况 下,说明假设作为调试程序激活指令分发源的运行单元的初始值为运行单 元B。
当运行单元A未停止时(步骤S71的“否”),初始设置值为运行单 元B(步骤S78的“是”),因此运行单元A上的程序将作为调试程序激 活指令分发源的运行单元改变为运行单元A(步骤S72)。另一方面,当 运行单元A停止时(步骤S71的“是”),处理前进到步骤S73而不执行 步骤S72的过程。若此处不存在激活指令(步骤S73的“否”),则若运 行单元B未停止(步骤S74的“否”),则处理前进到步骤S79的调查。 在步骤S79中,设置为调试程序激活指令分发源的运行单元被调查。若设 置的运行单元为A(步骤S79的“是”),则该调查是正常的。若设置的 运行单元不为A(步骤S79的“否”),则指示无法运行步骤S72,从而 可以检测到运行单元A上的差错。在这种情况下,处理前进到步骤S77, 激活指令被发送到设置的运行单元(这种情况下为运行单元B),然后调 试程序被激活。若运行单元B在这种情况下停止(步骤S74的“是”), 则差错在步骤S78中被类似地检测(步骤S78的“否”),且调试程序被 激活。
差错检测器的上述第一至第四配置不互相排斥,可以任何方式结合。
说明接下来涉及本示例性实施例的调试系统的效果。
在本示例性实施例中,采用配备有差错检测器68和78并且可以检查 差错的发生的配置,从而,即使在检查差错的发生很麻烦的系统中,也可 激活调试程序,且在验证差错发生后开始调试任务。
另外,在本示例性实施例中,可采用提供了如下装置的配置,所述装 置用于在检测到差错发生后停止发生差错的运行单元或程序,停止作为差 错发生原因的运行单元或程序,或者停止另一个运行单元或程序。采用这 类配置能够避免差错发生后的处理进展妨碍对差错发生原因的调查的情 况。
另外,在本示例性实施例中,可提供差错检测器68和78用于在检测 到差错的发生后生成调试程序激活指令。这类配置的采用允许调试任务可 在不要求调试技术员确定调试程序将被激活的运行单元或调试程序的类型 然后激活调试程序的前提下开始。
【第七示例性实施例】
说明接下来涉及本发明的第七示例性实施例的调试系统。
根据第五示例性实施例的上述调试系统,有关特定运行单元的存储内 容即使在运行单元停止时也能被读取。但是,已进入停止状态的运行单元 的寄存器或缓存器的内容就连第五示例性实施例调试系统也无法读取。这 种无能为力起源于如下事实,即运行单元进入停止状态时寄存器或缓存器 的内容通常无法读取。
本示例性实施例的调试系统具有如下配置,当特定的运行单元停止 时,该配置允许该运行单元的寄存器和缓存器的内容被读取以执行调试。
如图20所示,本示例性实施例的调试系统具有如下配置,其中与上 述第一示例性实施例的配置相比,运行单元A程序区域6中的调试程序63 配备有运行单元间中断生成器(图20中表示为“中断生成器”)631和响 应接收器632,另外,在作为调试目标的运行单元中运行的中断处理器69 配备有响应生成器691和信息获取/控制单元692。
运行单元间中断生成器631对作为调试目标的运行单元B生成中断。 响应接收器632通过响应生成器791接收来自作为调试目标的运行单元B 的响应。
当中断已从另一个运行单元B生成时,信息获取/控制单元692获取事 先设置的诸如寄存器、缓存器和闪存之类的存储区域中的信息。响应生成 器691将由信息获取/控制单元692获得的信息发送到导致生成中断的运行 单元B。
在图5所示的第一示例性实施例中,中断处理器69未示出,但中断 处理器是典型运行单元中被提供为标准的程序。
另外,本示例性实施例的调试系统具有如下配置,其中运行单元B程 序区域7中的调试程序73类似地配备有运行单元间中断生成器731和响应 接收器732,且在作为调试目标的运行单元中运行的中断处理器79配备有 响应生成器791和信息获取/控制单元792。
虽然图20示出将本示例性实施例的调试系统应用到第一示例性实施 例的配置的示例,但是可将该调试系统类似地应用到第二至第六示例性实 施例。
参考图21的流程图,本说明接下来涉及本示例性实施例的调试系统 的操作。此处的说明涉及从运行单元A的调试程序63执行B侧运行单元 的调试的示例。
调试程序63首先对作为目标的运行单元B发布运行单元间中断(步 骤S401),之后运行单元B的中断处理器79被激活(步骤S402)。在该 中断处理器79中,信息获取/控制单元792用来执行对作为目标的运行单 元B的寄存器、缓存器和闪存的信息收集、写入和控制(步骤S403)。 然后响应生成器791生成对运行单元A的响应(步骤S404),且运行单 元A使用响应接收器632接收该响应(步骤S405)。当这些操作的内容 仅为控制时,响应中只需要包含涉及控制结果的信息。另一方面,当操作 的内容包含信息收集时,响应还包含所收集的信息。
此外,可采用如下配置,其中中断处理器79是在B侧运行单元上周 期性生成的定时器中断的中断处理器,且其中运行单元A使用通信单元 (未示出)来将用于执行目标处理的运行控制的指令应用到运行单元B。 但是,这样的配置引起用于执行运行控制的定时只是周期性生成定时器中 断的定时的限制。
在本示例性实施例中,可以通过同样的方案来实现从运行单元B的调 试程序73执行A侧运行单元的调试这一情况下的操作。
虽然此处本示例性实施例中的说明涉及配备有两个运行单元A和B的 系统的示例,但是该应用很容易扩展到配备有诸如三个或更多等任意数目 的运行单元的系统。
说明接下来涉及本示例性实施例的调试系统的效果。
在本示例性实施例中,调试程序63和73配备有运行单元间中断生成 器631和731以及响应接收器632和732;且在作为调试目标的运行单元 中运行的中断处理器配备有信息获取/控制单元692和792以及响应生成器 691和791。然后作为调试目标的运行单元经历中断,所述中断随后从不 是作为调试目标的运行单元的运行单元上工作的调试程序中生成,且信息 收集和控制由中断处理器执行。
如前面的说明中所描述,中断处理器是中断生成时首先被激活用于处 理中断的程序。结果,运行单元A和B的中断处理器69和79中信息获取 /控制单元692和792以及响应生成器691和791的分别提供使得即使在运 行单元A和B已停止时也能读取已进入停止状态的运行单元的缓存器或寄 存器的内容。
【第八示例性实施例】
说明接下来涉及本发明的第八示例性实施例的调试系统。
上述第一至第七示例性实施例是在运行单元进入停止状态时执行特定 运行单元的调试的系统。
可以考虑如下情况,其中当运行单元进入停止状态时,正在被正常操 作程序运行的特定过程经历失控。当特定过程以这种方式经历失控时,整 体运行单元进入停止状态并且甚至在其他过程无故障时也停止工作。
本示例性实施例的调试系统具有如下配置,其中即使在特定过程经历 失控且运行单元进入停止状态时,发生失控的处理也暂停且差错被纠正以 将停止的运行单元返回到正常状态。
图22示出本示例性实施例的调试系统的配置。图22示出如下配置, 其中当运行单元B变成作为调试目标的运行单元时,只能从运行单元A为 运行单元B执行调试。当任何运行单元经历来自其他任意运行单元的调试 时,必须在每个运行单元中提供同样的配置。
如图22所示,本示例性实施例的调试系统具有如下配置,其中与图5 所示第一示例性实施例的调试系统的配置相比,调试程序63配备有运行 单元间中断生成器(图22中表示为“中断处理器”)631和响应接收器 632,且在运行单元B中运行的中断处理器79配备有响应生成器791和过 程控制单元793,运行单元B是作为调试目标的运行单元。
运行单元间中断生成器631对作为调试目标的运行单元B生成中断。 响应接收器632通过响应生成器791接收来自作为调试目标的运行单元的 响应。
过程控制单元793实施对在作为调试目标的运行单元B上激活的正常 操作程序74的过程控制并暂停经历失控的过程。响应生成器791将作为 过程控制单元793的过程控制结果获得的信息发送到运行单元B,对运行 单元B已生成了中断。
参考图23的流程图,本说明接下来涉及本示例性实施例的调试系统 的操作。图23示出从运行单元A的调试程序63执行B侧运行单元上的过 程控制的示例。
调试程序63首先对作为调试目标的运行单元B发布运行单元间中断 (步骤S401),之后运行单元B的中断处理器79被激活(步骤S402)。 在该中断处理器79中,过程控制单元793用于实施对在运行单元B中运 行的正常操作程序74的过程控制(步骤S406)。然后响应由响应生成器 791生成并发送到运行单元A(步骤S404),且运行单元A使用响应接收 器632接收响应(步骤S405)。
另外,可采用如下配置,其中在B侧运行单元上周期性生成的定时器 中断的中断处理器被当作中断处理器79,且运行单元A使用通信单元 (未示出)来给运行单元B发指令用于执行对目标过程的运行控制。但是 这种配置的情况下,所实施运行控制的定时只限于周期性生成的定时中断 的定时。
以下方法是用于实现对作为控制目标的过程的处理控制的具体方法。
在第一过程控制方法中,OS的调度程序配备有过程控制变更单元, 用于基于来自外部的指令变更由调度程序实施的过程控制。于是过程控制 可通过将过程变更指令从中断处理器79中的过程控制单元793发送到过 程控制变更单元来实现。
在第二过程控制方法中,提供过程控制信号发布单元,用于通过类似 OS的API(应用程序接口)(诸如系统调用)的程序从中断处理器79中 的过程控制单元793向作为控制目标的过程发布过程控制信号。于是该方 法可以通过由过程控制信号发布单元向作为控制目标的过程发布过程控制 信号来实现。
在第三过程控制方法中,在中断处理器79中提供地址变更单元,用 于将存储区域中保存的作为控制目标的过程的返回地址改变为另一地址。 于是该方法可以通过由中断处理器79中的地址变更单元将返回地址改变 为错误地址从而生成错误地址引用异常来实现。
在这种情况下,因为由异常引起的非正常终止过程由OS执行,所以 仅生成异常的过程就可导致过程终止。但是,各种类型的过程控制可以通 过采用导致实施不同于非正常终止过程的控制的配置来执行,如在异常处 理器中促使过程终止。
在第四过程控制方法中,在中断处理器79中提供命令变更单元,用 于将存储区域中保存的作为控制目标的过程的返回地址处存在的命令改变 为其他命令。该方法可以通过由中断处理器79中的命令变更单元将返回 地址处的存在的命令替换为调试命令或错误命令并生成异常来实现。因为 OS执行由异常引起的非正常终止过程,所以仅生成异常的过程就可导致 过程终止。但是,各种过程控制可以通过采用导致执行不同于非正常终止 过程的控制的配置来实施,如在异常处理器中促使过程终止。
存在用于从被提供为用户过程的调试程序发布用于过程控制的系统调 用和用于执行过程控制的现有方法。当这类方法被使用且在运行单元上运 行的任意过程经历失控时,控制不转移到调试程序,结果过程控制无法实 施。但是,当从内部中断处理器79执行过程控制的上述过程控制的任一 个被使用时,由于中断处理器79以高于用户过程的优先级被执行,因此 即使存在经历失控的过程,也可执行过程控制。
在本示例性实施例中,可以通过同样的方案来实现从运行单元B的调 试程序执行A侧运行单元上的调试这一情况下的操作。
虽然本说明的提供涉及本实施例中配备有两个运行单元A和B的系统 的示例,但是本发明很容易扩展到配备有诸如三个或更多等任意数目的运 行单元的系统。
说明接下来涉及本示例性实施例的调试系统的效果。
在本示例性实施例中,采用如下配置,其中在由作为调试目标的运行 单元B运行的中断处理器79中提供过程控制单元793,且对作为调试目标 的过程的控制从中断处理器79的内部执行。然后对作为调试目标的运行 单元B的中断从不是作为调试目标的运行单元B的运行单元A上工作的 调试程序63中生成并在中断处理器79中实施过程控制,由此可以从除作 为调试目标的运行单元B以外的运行单元A执行过程控制。此外,由于过 程控制是从以高于用户过程的优先级运行的中断处理器79内部执行的, 因此即使存在经历失控的过程,经历失控的过程也可暂停,发生差错的状 态可被分析以执行诸如变量内容校正之类的过程,进而,程序可再次运行 以观察差错是否已被解决。通过重复这些过程,停止的运行单元最终可返 回到正确的操作。
工业适用性
本发明可应用于在配备有多个运行单元的系统LSI中使用的调试系 统。本发明还可应用于在配备有多个运行单元的嵌入式系统中使用的调试 系统并可应用于配备有多个运行单元的计算机系统
专利文献1:JP-A-H11-184736
专利文献2:JP-A-2004-164113
相关专利内容
标题 发布/更新时间 阅读量
指定位置检测单元 2020-05-12 352
为云资源指定状态 2020-05-12 623
邻近人物指定设备 2020-05-12 418
色指定控制装置及色指定控制方法 2020-05-11 948
相邻人指定设备 2020-05-11 489
抢占指定路由器的方法 2020-05-12 529
地图上区间指定系统 2020-05-12 8
多个目标光学指定器 2020-05-12 628
网络中指定路由的方法 2020-05-12 674
设备指定系统 2020-05-11 806
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈