CN102365624B - 多处理器数据处理系统和多处理器数据处理方法 - Google Patents

多处理器数据处理系统和多处理器数据处理方法 Download PDF

Info

Publication number
CN102365624B
CN102365624B CN2010800155110A CN201080015511A CN102365624B CN 102365624 B CN102365624 B CN 102365624B CN 2010800155110 A CN2010800155110 A CN 2010800155110A CN 201080015511 A CN201080015511 A CN 201080015511A CN 102365624 B CN102365624 B CN 102365624B
Authority
CN
China
Prior art keywords
processor
debugging
synchronous
clock
request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN2010800155110A
Other languages
English (en)
Other versions
CN102365624A (zh
Inventor
威廉·C·莫耶
吉米·谷穆佳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NXP USA Inc
Original Assignee
Freescale Semiconductor Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Freescale Semiconductor Inc filed Critical Freescale Semiconductor Inc
Publication of CN102365624A publication Critical patent/CN102365624A/zh
Application granted granted Critical
Publication of CN102365624B publication Critical patent/CN102365624B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1679Temporal synchronisation or re-synchronisation of redundant processing components at clock signal level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3632Software debugging of specific synchronisation aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1695Error detection or correction of the data by redundancy in hardware which are operating with time diversity

Abstract

一种系统包括第一处理器(12)、第二处理器(14)、被耦合到第一处理器的第一时钟(54)、以及被耦合到第一处理器和第二处理器的第三时钟(56)。第一处理器包括被耦合以接收第三时钟的调试电路(58)、被耦合以接收第一时钟的同步电路(48、43),其中,同步电路接收用于进入调试模式的第一请求,并提供第一同步调试进入请求信号(51或25),并且其中,所述第一同步调试进入请求信号相对于第一时钟是同步的;以及输入端,其用于从第二处理器接收第二同步调试进入请求信号(27),其中,第一处理器等待进入调试模式,直至第一同步调试进入请求信号和第二同步调试进入请求信号两者被断言。

Description

多处理器数据处理系统和多处理器数据处理方法
技术领域
本公开大体上涉及数据处理,并且更具体地涉及多处理器数据处理系统中的调试信令。
背景技术
用于集成电路数据处理系统的某些应用要求比平均水平更高的可靠性。例如,遥控自动驾驶仪、防抱死制动器、汽车安全气袋、和其中故障可能导致伤害的其它系统是要求高度可靠的操作的系统的示例。
存在许多方式改善可靠性。例如,在存储器中,可以通过添加在主组件出现故障时接替的冗余组件来改善可靠性。在多处理器系统中,已经通过以“步伐一致”的方式运行多个处理器来实现更好的可靠性。当两个或更多处理器正在步伐一致地运行时,每个处理器同时地或在相互之间预定偏移内(即在相互之间的预定数目的时钟内)执行相同的指令流。然而,当调试此类多处理器系统时会出现问题。例如,调试端口相对于多处理器系统内的一个或多个处理器的处理器时钟域的异步性质可能会引起保持步伐一致方面的问题,因为一个处理器的动作在调试进入和退出命令的同步之后可能是不同的。也就是说,多处理器系统内的另一处理器可能不会在相同的时钟周期同步调试进入和退出命令,因此可能招致可见的调试模式进入或退出方面的延迟,从而导致失去步伐一致。
发明内容
根据本发明的一个方面,提供了一种多处理器数据处理系统,包括:第一处理器;第二处理器;被耦合到所述第一处理器的第一时钟;被耦合到所述第二处理器的第二时钟;以及被耦合到所述第一处理器和所述第二处理器的第三时钟,其中,所述第三时钟相对于所述第一时钟是异步的。其中,所述第一处理器包括:被耦合以接收所述第三时钟的调试电路;被耦合以接收所述第一时钟的同步电路,所述同步电路接收相对于所述第三时钟同步的用于进入调试模式的第一请求并提供第一同步调试进入请求信号,其中,所述第一同步调试进入请求信号相对于所述第一时钟是同步的;以及输入端,用于从所述第二处理器接收第二同步调试进入请求信号。其中,所述第一处理器等待进入调试模式,直至所述第一同步调试进入请求信号和所述第二同步调试进入请求信号两者被断言。
优选地,所述调试电路包括调试请求寄存器位,并且其中,响应于所述调试请求寄存器位被断言,用于进入调试模式的所述第一请求被提供给所述同步电路。
优选地,所述第一处理器包括第一程序计数器且所述第二处理器包括第二程序计数器,并且其中,当所述第一处理器和所述第二处理器两者处于调试模式时,所述第一处理器递增所述第一程序计数器且所述第二处理器同时地递增所述第二程序计数器。
优选地,所述第一处理器和所述第二处理器进入调试模式,并在所述调试模式期间步伐一致地执行相同指令。
优选地,所述第一处理器和所述第二处理器进入调试模式,并在所述调试模式期间执行相同指令,其中,由所述第一处理器进行的相同指令的执行与由所述第二处理器进行的相同指令的执行相比偏移所述第一时钟的十个或更少周期。
优选地,所述同步电路从所述调试电路接收用于退出调试模式的请求,并提供第一同步调试退出命令信号,其中,所述第一同步调试退出命令信号相对于所述第一时钟是同步的,并且其中,所述第一处理器进一步包括:第一输出端,用于从所述第一处理器向所述第二处理器传输所述第一同步调试进入请求信号;第二输出端,用于从所述第一处理器向所述第二处理器传输所述第一同步调试退出命令信号;以及输入端,用于从所述第二处理器接收第二同步调试退出命令信号。其中,所述第一处理器等待退出所述调试模式,直至所述第一同步调试退出命令信号和所述第二同步调试退出命令信号两者被断言。
根据本发明的一个方面,提供了一种多处理器数据处理方法,包括:使用第一时钟作为调试电路的第一部分的时钟;使用第二时钟作为调试电路的第二部分的时钟,其中,所述第一时钟相对于所述第二时钟是异步的;从调试电路的所述第一部分向同步电路传输用于进入调试模式的第一请求,其中,用于进入调试模式的所述第一请求相对于所述第二时钟是异步的;第一处理器使用于进入调试模式的所述第一请求与所述第二时钟同步以产生第一同步调试进入请求;所述第一处理器监视从第二处理器接收到的第二同步调试进入请求;以及所述第一处理器等待进入所述调试模式,直至所述第一同步调试进入请求和所述第二同步调试进入请求两者被断言。
所述方法进一步包括:从所述第一处理器向第二处理器传输所述第一同步调试进入请求。
所述方法进一步包括:从调试电路的所述第一部分向同步电路传输用于退出调试模式的请求,其中,用于退出调试模式的所述请求相对于所述第二时钟是异步的;所述第一处理器使用于退出调试模式的所述请求与所述第二时钟同步以产生第一同步调试退出命令;所述第一处理器监视从所述第二处理器接收到的第二同步调试退出命令;以及所述第一处理器等待退出所述调试模式,直至所述第一同步调试退出命令和所述第二同步调试退出命令两者被断言。
根据本发明的一个方面,提供了一种多处理器数据处理方法,包括:向第一处理器和第二处理器输入测试时钟;向所述第一处理器输入第一处理器时钟;向所述第二处理器输入第二处理器时钟,其中,所述测试时钟相对于所述第一处理器时钟是异步的,并且其中,所述测试时钟相对于所述第二处理器时钟是异步的;所述第一处理器接收用于进入调试模式的第一请求;所述第二处理器接收用于进入调试模式的第二请求,其中,用于进入调试模式的所述第一请求和用于进入调试模式的第二请求与所述测试时钟同步;所述第一处理器使用于进入调试模式的所述第一请求相对于所述第一处理器时钟同步以产生第一同步调试进入请求;所述第二处理器使用于进入调试模式的所述第二请求相对于所述第二处理器时钟同步以产生第二同步调试进入请求;所述第一处理器从所述第二处理器接收所述第二同步调试进入请求,并使用所述第二同步调试进入请求来确定进入调试模式的时间;以及所述第二处理器从所述第一处理器接收所述第一同步调试进入请求,并使用所述第一同步调试进入请求来确定进入调试模式的时间。
附图说明
以示例的方式来图示本发明,并且本发明不受到附图的限制,在附图中,相同的附图标记指示类似的要素。图中的要素是出于简单和明了的目的而图示的,并且不一定按比例绘制。
图1以框图的形式图示根据实施例的多处理器系统。
图2以框图的形式图示根据实施例的图1的多处理器系统内的处理器的调试控制的一部分。
图3以图表的形式图示根据实施例的图2的调试控制的调试命令寄存器。
图4以表格的形式图示根据实施例的图3的调试命令寄存器的各种字段的说明。
图5以图表方式图示根据实施例的图2的调试控制的调试控制寄存器。
图6以表格的形式图示根据实施例的图5的调试控制寄存器的字段的说明。
图7图示根据非步伐一致模式下的调试进入信令的一个示例的图1或图2的各种信号的时序图。
图8图示根据步伐一致模式下的调试进入信令的一个示例的图1或图2的各种信号的时序图。
图9图示根据步伐一致模式下的调试进入信令的另一示例的图1或图2的各种信号的时序图。
图10图示根据非步伐一致模式下的调试退出信令的一个示例的图1或图2的各种信号的时序图。
图11图示根据步伐一致模式下的调试退出信令的一个示例的图1或图2的各种信号的时序图。
图12图示根据步伐一致模式下的调试退出信令的另一示例的图1或图2的各种信号的时序图。
具体实施方式
通常,提供其中多个处理器、核或中央处理单元(CPU)以诸如步伐一致的同步方式来操作的多处理器数据处理系统。然而,由于调试活动的异步性质,诸如进入调试模式和从调试模式退出,可能失去步伐一致性。例如,当步伐一致地运行一对处理器时,在每个处理器中使用同步电路以保证异步输入相对于处理器的时钟是同步的。然而,由于在此类同步电路内可能发生的可能亚稳定性,两个处理器中的每一个中的同步电路的同步输出实际上可能不同,导致在使用与处理器时钟异步地操作的调试控制接口来执行调试操作时失去步伐一致。在这种情况下,调试程序需要解决此步伐一致的失去,并尝试重新同步。因此,在一个实施例中,使用诸如步伐一致调试接口的交叉信令接口来迫使进入和退出调试模式在处理器之间是协调的(例如,以保证两个处理器同时或相互之间在预定数目的时钟周期内进入或退出调试模式)。在一个实施例中,交叉信令保证处理器将通过有条件地延迟一个处理器中的调试进入和退出,直至另一处理器已看到同一请求来保持步伐一致。在包括不止两个处理器的系统中,可以使用交叉信令来有条件地延迟一个处理器中的调试进入和退出,直至所有其它处理器已看到相同的请求为止。并且,在一个实施例中,基于处理器实际上是否在步伐一致模式下操作来有条件地使用交叉信令接口。
本文所使用的术语“总线”用来指示可以用来传输一个或多个各种形式的信息(诸如数据、地址、控制或状态)的多个信号或导体。本文所讨论的导体可以被图示或描述为单个导体、多个导体、单向导体、或双向导体。然而,不同的实施例可以改变导体的实施方式。例如,可以使用单独的单向导体而不是双向导体,反之亦然。并且,可以用连续地或以时间复用方式传输多个信号的单个导体来替换多个导体。同样地,可以将载送多个信号的单个导体分离成载送这些信号的子集的多个不同导体。因此,存在用于传输信号的许多选择。
当分别涉及信号、状态位、或类似设备到其逻辑真或逻辑假状态的呈现时,本文使用术语“断言”或“置位”和“否定”(或“取消断言”或“清除”)。如果逻辑真状态是逻辑电平1,则逻辑假状态是逻辑电平0。并且,如果逻辑真状态是逻辑电平0,则逻辑假状态是逻辑电平1。
本文所述的每个信号可以被设计为正或负逻辑,其中,能够由在信号名称之上的横号或信号名之后的字母“B”来指示负逻辑。在负逻辑信号的情况下,信号是低电平有效,其中,逻辑真状态对应于逻辑电平0。在正逻辑信号的情况下,信号是高电平有效,其中,逻辑真状态对应于逻辑电平1。请注意,可以将本文所述的任何信号设计为负或正逻辑信号。因此,在替换实施例中,可以将被描述为正逻辑信号的那些信号实现为负逻辑信号,并且可以将被描述为负逻辑信号的那些信号实现为正逻辑信号。
图1以框图形式图示根据实施例的数据处理系统10的简化视图。系统10包括处理器12、处理器14、其它模块22、系统互连24、以及调试接口20。处理器12包括调试控制16、步伐一致模式启用机构32、程序计数器15、以及处理器控制逻辑38。步伐一致模式启用机构32、程序计数器15、以及处理器控制逻辑38中的每一个被耦合到调试控制16。步伐一致模式启用机构32向调试控制16提供步伐一致模式指示符42,并且处理器控制逻辑38经由信号40与调试控制16通信。处理器14包括调试控制18、步伐一致模式启用机构34、程序计数器17、以及处理器控制逻辑39。步伐一致模式启用机构34、程序计数器17、以及处理器控制逻辑39中的每一个被耦合到调试控制18。步伐一致模式启用机构34向调试控制18提供步伐一致模式指示符36,并且处理器控制逻辑39经由信号41与调试控制18通信。在所示实施例中,处理器12和14是基本上相同的,并且可以是任何类型的处理器,诸如,例如通用处理器、数字信号处理器(DSP)等。在其它实施例中,处理器12和14可以相互不同。例如,处理器12可以是通用处理器且处理器14可以是DSP。并且,即使仅示出了两个处理器,本领域的技术人员也将认识到所述实施例还可适用于具有不止两个处理器的系统。另外,在其它实施例中,处理器12和14可以包括与所描绘的不同的逻辑块,或者可以存在图1未示出的附加逻辑块。例如,处理器12和14中的每一个可以包括一个或多个执行单元、指令获取(fetch)单元、指令解码单元、总线接口单元等,其可以全部被耦合到相应处理器的处理器控制逻辑。因此,处理控制逻辑38和39能够分别控制处理器12和14的操作。处理器12和14的操作在本领域中是已知的,因此将仅在描述本发明的实施例所需的程度上进行讨论。
处理器12和14及其它模块22(如果有的话)被双向地耦合到系统互连24。请注意,可以存在图1中未示出的被耦合到系统互连24的附加功能块。在一个实施例中,可以将系统互连24表征为包括被耦合到系统的每个块的多个导体的总线。在另一实施例中,系统互连24可以是允许系统块之间的同时通信的常规“交叉开关(cross bar)”型总线。在另一实施例中,系统互连24可以是高级高性能总线(AHB)。AHB是在由ARM有限公司发布的AMBA规范版本2中介绍的总线协议。在另一实施例中,系统互连24可以是另一类型的系统互连系统。
系统10包括在处理器12中的调试控制16与处理器14中的调试控制18之间的步伐一致调试接口30。在一个实施例中,步伐一致调试接口30包括以下信号:从调试控制16提供给调试控制18的同步调试进入请求25、从调试控制16提供给调试控制18的同步调试退出命令26、从调试控制18提供给调试控制16的同步调试进入请求27、以及从调试控制18提供给调试控制16的同步调试退出命令28。请注意,在调试控制16和18之间可以存在附加信号。调试接口20在调试控制16和18与外部调试程序(未示出)之间对接。例如,在一个实施例中,调试接口20可以是JTAG端口、或至少其一部分。调试接口20可以在外部调试程序与位于系统10的各处理器中的调试控制之间传送调试命令和结果。
在操作中,处理器12和14使用同一处理器时钟、PCLK54(图1中未示出)来操作,并且能够相互步伐一致地操作。在一个实施例中,可以断言在处理器12和14中的每一个中的步伐一致模式启用机构,以启用步伐一致模式。在一个实施例中,响应于由系统10内的电路(在处理器12和14内部或外部)(未示出)提供的系统信号来启用步伐一致模式。在替换实施例中,处理器12和14可以始终步伐一致地操作。当处理器12和14步伐一致地运行时,每个处理器同时地或相互之间在预定偏移内(即,相互之间在预定数目的时钟内)执行相同的指令流。例如,在一个实施例中,当步伐一致地运行时,处理器14中的相同指令的执行与处理器12中的相同指令的执行相比偏移十个PCLK或更少的周期。并且,当处理器12和14在步伐一致模式下运行时(即使在调试模式下),每个处理器同时更新其相应的程序计数器(分别为程序计数器15和程序计数器17)。
当步伐一致地运行时,可以经由调试接口20从外部调试程序向调试控制16和18提供调试命令。响应于这些调试命令,处理器12和处理器14中的每一个可以进入调试模式。然而,为了保持步伐一致地运行,处理器12和处理器14应同时或相互之间在预定数目的时钟内进入调试模式。在某些实施例中,调试接口20使用诸如TCLK56的时钟进行操作,其相对于处理器12和14所使用的时钟是异步的,并且还可以具有不同的频率,诸如在一个实施例中的低得多的频率。因此,在一个实施例中,当需要进入调试模式时,每个处理器等待直至其已看到调试命令,并准备好进入调试模式,并且另一处理器已看到同一调试命令,并且也准备好进入调试模式。因此,在一个实施例中,当处理器准备好进入调试模式时,该处理器的调试控制断言同步调试进入请求信号,使得另一处理器可以知道其准备好进入调试模式的时间。以这种方式,处理器将等待进入调试模式,直至另一处理器也准备好这样做。类似的讨论适用于退出调试模式,其中,当处理器将退出调试模式时,该处理器的调试模式断言同步调试退出命令,使得另一处理器可以知道该处理器准备好退出调试模式的时间。下面将参考图2~12来描述操作的其它细节。
图2以框图形式图示调试控制16的一部分。调试控制16包括控制电路43、同步电路48、调试控制寄存器44、以及调试命令寄存器46。控制电路43接收来自处理器14的步伐一致模式指示符42、程序计数器15、PCLK54、同步调试进入请求27;来自处理器14的同步调试退出命令28;以及来自同步电路48的同步输出52。请注意,同步输出52可以包括同步DR51和同步GO53。控制电路43还经由信号40与处理器控制逻辑38通信。同步电路48接收PCLK54并向控制电路43提供同步输出52。调试控制寄存器44和调试命令寄存器46与调试接口20通信并向同步电路48提供异步输入50。调试电路58包括调试控制寄存器44和调试命令寄存器46并接收测试时钟(TCLK)56.因此,请注意调试电路58根据可以相对于PCLK54异步的TCLK56进行操作。因此,异步输入50可以相对于PCLK54是异步的。然而,可替换地,TCLK56可以相对于PCLK54是同步的。并且,从调试接口20进入的输入可以与PCLK54异步。因此,请注意,调试电路的第一部分(诸如调试电路58)能够使用第一时钟(诸如TCLK56)进行操作,而调试电路的第二部分(诸如同步电路48和控制电路43)能够使用与第一时钟异步的第二时钟(诸如PCLK54)进行操作。在参考图3~6讨论调试控制寄存器44和调试命令寄存器46之后,将更详细地描述图2的操作。
图3图示根据本发明的实施例的调试命令寄存器46。调试命令寄存器46包括用于存储读/写命令位的R/W字段60、用于存储go命令位的GO字段62、用于存储退出命令位的EX字段64、以及用于存储寄存器选择指示符的RS字段66。图4图示描述调试命令寄存器46中的每个字段的操作的表格。读/写命令位指定数据传输的方向。例如,当R/W60被清除至逻辑电平0时,与该命令相关联的数据被写入由RS66指定的寄存器,并且当其被置位为逻辑电平1时,读取包含在由RS66指定的寄存器中的数据。当GO62被清除至逻辑电平0时,不采取行动。当GO62被置位为逻辑电平1时,执行指令寄存器(IR)(在处理器12内)中的指令。为了执行该指令,处理器12离开调试模式并执行该指令。如果EX64被清除至逻辑电平0,则处理器12在执行指令之后立即返回调试模式。如果EX64被置位为逻辑电平1,且未断言其它调试请求源,则处理器12继续进行正常操作。因此,如果EX64被置位为逻辑电平1,则处理器12将离开调试模式并重新开始正常操作直至生成另一调试请求。
图5图示根据本发明的一个实施例的调试控制寄存器44。调试控制寄存器44包括用于存储调试请求控制位的DR字段70。图6图示描述DR70的操作的表格。DR70用来无条件地请求处理器12输入调试模式。因此,当DR70被清除至逻辑电平0时,不进行调试模式请求,并且当其被置位为逻辑电平1时,处理器12将在下一个指令边界处进入调试模式。
请注意,可以使用一个或多个寄存器来实现调试命令寄存器46和调试控制寄存器44,每个寄存器具有任何数目的字段,每个字段具有任何数目的位并被以任何方式来进行组织。
因此,返回参考图2,响应于例如来自外部调试程序的命令,调试接口20可以置位或者清除寄存器44和46的字段以生成进入调试模式的请求或使得从调试模式退出。由于调试电路58根据TCLK56进行操作,所以响应于来自调试接口20的命令,根据TCLK56(例如,响应于TCLK56的上升或下降沿)来更新寄存器44和46的字段。同步电路48从寄存器44和46接收异步输入50。例如,当DR70或GO62被置位或清除,其作为输入被同步电路48接收。由于这些位被与TCLK56同步地置位或清除,所以其可以相对于PCLK54异步。根据PCLK54操作的同步电路48使DR70和GO62与PCLK54同步,以产生DR70的同步型式,即同步DR51、以及GO62的同步型式,即同步GO53,其每个被同步(即同步化)至PCLK54。因此,同步电路48进行操作以使从调试电路58接收到的异步输入50同步以向控制电路43提供相应的同步输出52(其中,同步DR51和同步GO53可以被包括在同步输出52中)。
使用这些同步输出,控制电路43能够适当地警告处理器14其被同步且准备好采取适当行动(诸如退出或进入调试模式)。例如,响应于用于进入调试模式的DR70的断言,同步电路48向控制电路43提供同步DR51。在这里,可以认为处理器12准备好进入调试模式。因此,控制电路43响应于同步DR51的断言,能够向处理器14的调试控制18提供同步调试进入请求25,以向调试控制18指示处理器12准备好进入调试模式。然而,处理器12在接收到来自处理器14的调试控制18的断言的同步调试进入请求27之前将不会进入调试模式,其中,所述断言的同步调试进入请求27指示处理器14也接收到进入调试模式的请求(诸如经由其相应调试控制寄存器的位中的DR位的断言),并且也响应于此准备好进入调试模式。因此,处理器12在处理器14也准备好进入调试模式之前将不会进入调试模式,并且反之亦然。以这种方式,两个处理器能够以步伐一致的方式、即同时地进入调试模式。处理器14同样地在处理器12警告处理器14其准备好进入调试模式且处理器14本身也准备好进入调试模式之前将不会进入调试模式。
类似的操作适用于退出调试模式。例如,响应于用于退出调试模式的GO62的断言,同步电路48向控制电路43提供同步GO53。在这里,可以认为处理器12准备好退出调试模式。因此,控制电路43响应于同步GO53的断言能够向调试控制18或处理器14提供同步调试退出命令26,以向调试控制18指示处理器12准备好退出调试模式。然而,处理器12在接收到来自处理器14的调试控制18的断言的同步调试退出命令28之前将不会退出调试模式,其中,所述断言的同步调试退出命令28指示处理器14也接收到退出调试模式的命令(诸如经由其相应调试命令寄存器的位中的GO位的断言)并且也响应于此准备好退出调试模式。因此,处理器12在处理器14也准备好退出调试模式之前将不会退出调试模式,并且反之亦然。以这种方式,两个处理器能够以步伐一致的方式、即同时地退出调试模式。处理器14同样地在处理器12警告处理器14其准备好退出调试模式且处理器14本身也准备好退出调试模式之前将不会退出调试模式。
在一个实施例中,一旦处理器12和处理器14处于调试模式,则可以使用两个处理器中的TCLK56时钟来执行由外部调试程序经由调试接口20请求的后续操作,使得在处理器12与处理器14之间不要求那些操作的同步和事件的后续握手,因此使通信简化。在替换实施例中,在两个处理器中可以使用处理器时钟PCLK54来执行所请求的操作,或者可以将PCLK54切换到与调试控制16内的控制58同步的替换时钟,因此避免对控制信令的进一步同步的任何需要。在某些实施例中,调试或测试时钟与正常处理器时钟之间的此时钟切换可以允许很大程度的信令简化。
请注意,在一个实施例中,同步调试进入请求25是同步DR51的延迟型式(例如由于通过组合或顺序逻辑的传播而导致被延迟)。也就是说,同步调试进入请求25可以是与同步DR51相同的信号,仅仅被延迟PCLK54的一个或多个时钟周期。也就是说,响应于同一事件,同步DR51和同步调试进入请求信号25两者被断言(即,响应于同步电路48对经由调试电路58接收到的用于进入调试模式的请求进行同步,两者被断言)。对于同步调试退出命令26而言相同的可能是如下的情况,即,其可以仅仅是同步GO53的同步型式。也就是说,响应于同一事件,同步GO53和同步调试退出请求信号26两者被断言(即,响应于同步电路48对经由调试电路58接收到的用于退出调试模式的命令进行同步,两者被断言)。
并且,请注意,由同步电路48输出的同步DR51的任何部分或同步调试进入请求25的任何部分可以被用作确定处理器12进入调试模式的时间的同步调试进入请求信号。例如,在一个实施例中,处理器12将等待进入调试模式,直至从处理器14接收到同步调试进入请求27和的同步DR51两者都被断言。在替换实施例中,处理器12将等待进入调试模式,直至从处理器14接收到的同步调试进入请求信号27和同步调试进入25两者都被断言。因此,由于响应于同一事件,同步DR52和同步调试进入请求25两者被断言,如上所述,所以请注意可以使用同步DR51或同步调试进入请求25作为被处理器12用来确定进入调试模式的时间的同步调试进入请求信号。同样地,对于替换实施例而言,由同步电路48输出的同步GO53的任何部分或同步调试退出命令26的任何部分可以被用作确定处理器12退出调试模式的时间的同步调试退出命令信号。
仍参考图2,请注意,可以使用任何类型的已知同步电路来使输入50同步至PCLK54。例如,在一个实施例中,对于每个输入和相应输出而言,同步电路可以包括由PCLK54作为时钟的许多串联连接D型触发器。可以在第一串联连接触发器的数据输入端处提供异步输入,并且可以在最后一个串联连接触发器的数据输出端处提供相应的同步输出,其中,然后将使数据输出相对于PCLK54同步。例如,在一个实施例中,可以向串联连接的一系列的三个D型触发器提供DR70和GO62中的每一个,其中,分别地,该系列中的第一触发器的数据输入端接收DR70或GO62,且该系列中的第三和最后一个触发器的数据输出端提供同步DR51或同步GO53。可替换地,可以使用任何数目的触发器,或者可以使用其它类型的同步电路。
在一个实施例中,调试控制电路18与调试控制电路16相同,并且包括控制电路、同步电路、调试控制寄存器、以及被以相同的方式耦合且以与在调试控制电路16中相同的方式操作的调试命令寄存器。因此,在本实施例中,上文相对于调试控制电路16和处理器12提供的相同说明也同样地适用于调试控制电路18和处理器14。经由调试接口20同样可以对调试控制电路18的调试控制寄存器的DR位和调试命令寄存器的GO位进行断言或者否定。对于某些实施例而言,可以将使处理器12进入调试模式(例如通过断言处理器12中的DR50)的第一请求视为与作为第二请求的用于进入调试模式的请求相同的请求,其中,所述第二请求使处理器14进入调试模式(例如,通过断言处理器14中的DR位)。然而,替换实施例可以替代地将到多个处理器的此类请求视为多个不同的请求,因为涉及多个处理器。类似于处理器12,处理器14将不会进入或退出调试模式,直至其准备好这样做(由其同步DR或同步GO信号的断言来指示),并且其从处理器12分别接收到断言的同步调试进入请求27或同步调试退出命令28。在一个实施例中,处理器12和14两者根据同一处理器时钟(诸如PCLK54)进行操作,其中,每个处理器12和14的调试电路的异步部分根据同一测试时钟(诸如TCLK56)进行操作。然而,在替换实施例中,可以将第三时钟用于处理器14,使得处理器14可以根据其自己的处理器时钟进行操作,所述其自己的处理器时钟可以与处理器12所使用的PCLK54相同,但是也可以不同。
在一个实施例中,即使可以由调试接口20同时将每个处理器的相应调试控制电路的DR或GO位置位或清除,也有可能不能同时地提供来自处理器12的同步电路48的同步输出和来自处理器14的同步电路的同步输出。即使处理器12和14的同步电路是相同的,基于各种因素,其中的一个可以花费一个周期或更长时间来使输入同步以提供同步输出。如果每个处理器将简单地依赖于其各自的同步电路的输出来进入或退出调试模式,而不从另一处理器接收关于其是否准备好进入或退出调试模式的任何指示,则可能的是,两个处理器可能由于同步时间的差而相差一个周期或更多地进入或退出调试模式,因此导致步伐一致性的丧失。因此,通过包括步伐一致调试接口30并使用这些信号来将进入调试模式或从调试模式退出延迟,直至系统中的其他步伐一致处理器准备好做相同的事,如上所述,才能够防止步伐一致性的丧失。在替换实施例中,其中,在每个处理器中使用不同类型的同步电路,如上所述的步伐一致调试接口的使用也可以帮助防止步伐一致的丧失。
并且,在一个实施例中,如由每个处理器的相应的步伐一致模式启用指示符向每个处理器的调试控制电路所指示的,仅在处理器12和14在步伐一致模式下操作时,使用步伐一致调试接口30,或者将进入调试模式或从调试模式退出延迟。请注意,在某些实施例中,当在步伐一致模式下操作时,处理器12和14在两个处理器之间有延迟(预定时钟偏移)的情况下进行操作,并且操作可能不在同一时钟周期上发生。除此之外,当步伐一致模式未被启用时,每个处理器能够在相应控制电路从相应同步电路接收到同步DR或GO命令时进入或退出调试模式。也就是说,当处理器12和14未在步伐一致模式下操作时,则其在其中处理器12和14充当单独、独立处理器的独立模式下操作。
下面将参考图7~12的时序图来进一步讨论系统10的操作。然而,相同的描述还可以适用于系统10内的任何处理器。在每个时序图中,提供PCLK54和TCLK56作为头两个信号。(并且,请注意,用于程序计数器15和程序计数器17的、在图7~12中的每一个中使用的程序计数器值采取十六进制格式。)
图7图示用于在步伐一致操作被禁用的情况下用于进入调试模式的示例性时序。因此,图7中的最后一个信号,即,步伐一致模式被否定。在本示例中,由DR70的断言来请求进入调试模式(其中,还可以同时地对处理器14的DR位进行断言)。如箭头81所示,DR70的断言响应于TCLK56的上升沿在周期1期间发生。在这里,DR70相对于PCLK54是异步的。然后使DR70同步至PCLK54(通过同步电路48),如箭头82所示,导致在周期3中的同步DR51。如箭头83所示,控制电路43响应于同步DR51的断言,稍后在周期3中对同步调试进入请求25(其从调试控制16输出)断言。并且,如箭头84所示,响应于同步DR51的断言,处理器12在周期4中进入调试模式。(请注意当调试模式信号处于逻辑电平1时,处理器12处于调试模式,并且当其处于逻辑电平0时,处理器12不处于调试模式。)如上所述,由于PCLK54与TCLK56之间的关系不是固定的,所以在处理器12和14中DR的同步型式(同步DR)可能不同。因此,即使可以与DR70同时地置位处理器14的DR位,处理器14的同步DR在周期4之前也可能未被处理器14的同步电路输出,如箭头85所示,其中,周期4比在处理器12中提供同步DR51的时间迟一个周期。稍后在周期4中,如箭头86所示,处理器14的控制电路断言同步调试进入请求27(在调试控制18的输出端处)。并且,响应于周期4中的同步DR的断言,处理器14在周期5中进入调试模式,如箭头87所指示的。因此,请注意在本示例中,处理器14比处理器12迟一个周期地进入调试模式。然而,由于步伐一致模式未被启用,所以调试控制16的输入端处的接口信号(同步调试进入请求27)和调试控制18的输入端处的接口信号(同步调试进入请求25)被忽视,因此不通过处理器有条件地进入调试模式。因此,每个处理器的程序计数器在处于调试模式时以不同的值结束(如在周期6和7中看到的),并因此处理器12和14此时不同步。
图8图示用于在步伐一致操作被启用的情况下进入调试模式的示例性时序。因此,图8中的最后一个信号,即,步伐一致模式被断言。在本示例中,由DR70的断言来请求进入调试模式(其中,还可以同时地断言处理器14的DR位)。如箭头91所示,DR70的断言响应于TCLK56的上升沿在周期1期间发生。在这里,DR70相对于PCLK54是异步的。然后使DR70同步至PCLK54(通过同步电路48),导致在周期3中得到同步DR51,如箭头92所示。如箭头93所示,控制电路43响应于同步DR51的断言,稍后在周期3中对同步调试进入请求25(其为来自调试控制16的输出)断言。如箭头94所示,同步调试进入请求25的此断言然后传播至调试控制18的输入端。如上所述,由于PCLK54与TCLK56之间的关系不是固定的,所以在处理器12和14中DR的同步型式(同步DR)可能不同。因此,即使可以与DR70同时地置位处理器14的DR位,处理器14的同步DR在周期4之前也可能未被处理器14的同步电路输出,如箭头95所示,其中,周期4比在处理器12中提供同步DR51的时间迟一个周期。稍后在周期4中,如箭头96所示,处理器14的控制电路对同步调试进入请求27断言(在调试控制18的输出端处)。如箭头97所示,同步调试进入请求27的此断言然后传播至调试控制16的输入端。
与在其中处理器12响应于同步DR51的断言,在周期4中进入调试模式的图7中不同,处理器12延迟对调试模式的进入,直至发生同步DR51的断言,且接收到同步调试进入请求27的断言,如箭头98所指示的。因此,处理器12延迟对调试模式的进入直至周期5,而不是如在图7中所作地在周期4中进入。同样地,如箭头99所示,处理器14在同步DR的断言发生且接收到同步调试进入请求25的断言时进入调试模式。因此,处理器14也在周期5中进入调试模式。因此,两个处理器保持同步而不丧失步伐一致。因此,通过使用同步调试进入请求信号,能够保持步伐一致。与图7中的示例相反,如在周期5~7中所示,用于处理器12和处理器14的程序计数器值在处于调试模式的同时是相同的值。
图9图示用于在步伐一致操作被启用的情况下进入调试模式的另一示例性时序。因此,图9中的最后一个信号,即,步伐一致模式被断言。在本示例中,由DR70的断言来请求进入调试模式(其中,还可以同时地对处理器14的DR位断言)。如箭头101所示,DR70的断言响应于TCLK56的上升沿在周期1期间发生。在这里,DR70相对于PCLK54是异步的。然后使DR70同步至PCLK54(通过同步电路48),导致在周期3中得到同步DR51,如箭头105所示。如箭头106所示,控制电路43响应于同步DR51的断言稍后在周期3中对同步调试进入请求25(其为来自调试控制16的输出)断言。如箭头103所示,同步调试进入请求25的此断言然后传播至调试控制18的输入端。如上所述,由于PCLK54与TCLK56之间的关系不是固定的,所以在处理器12和14中DR(同步DR)的同步型式可能不同。然而,在图9中,如箭头102所示,同样由处理器14的同步电路在周期4中输出处理器14的同步DR。稍后在周期3中,如箭头109所示,处理器14的控制电路对同步调试进入请求27断言(在调试控制18的输出端处)。如箭头104所示,同步调试进入请求27的此断言然后传播至调试控制16的输入端。
仍参考图9,如箭头107所示,当在调试控制16的输出端处对同步调试进入请求25断言,并由调试控制16接收到断言的同步调试进入请求27时,处理器12进入调试模式。同样地,如箭头108所示,当在调试控制18的输出端处对同步调试进入请求27断言,并由调试控制18接收到断言的同步调试进入请求25时,处理器14进入调试模式。因此,在本示例中,作为除了从另一处理器接收到用于进入调试模式的断言的同步调试进入请求之外还等待同步DR被断言的替代,每个处理器除了从另一处理器接收到断言的同步调试进入请求之外还进行等待,直至其对将被提供给另一处理器的其的同步调试进入请求进行断言。因此,两个处理器在本示例中也保持同步而不失去步伐一致。因此,通过使用同步调试进入请求信号,能够保持步伐一致。
图10图示用于在步伐一致操作被禁用的情况下退出调试模式的示例性时序。因此,图10中的最后一个信号,即,步伐一致模式被否定。在本示例中,由GO62的断言来请求从调试模式退出(其中,还可以同时地对处理器14的GO位断言)。如箭头111所示,响应于TCLK56的上升沿在周期1期间发生GO62的断言。在这里,GO62相对于PCLK54是异步的。GO62然后被同步至PCLK54(通过同步电路48),导致在周期3中得到同步GO53,如箭头112所示。如箭头113所示,控制电路43响应于同步GO53的断言稍后在周期3中对同步调试退出命令26断言(其从调试控制16被输出)。并且,响应于同步GO53的断言,处理器12在周期4中退出调试模式,如箭头114所示,并且开始指令处理,如程序计数器值2000、2004等的序列能够看到的。如上所述,由于PCLK54与TCLK56之间的关系是不固定的,在处理器12和14中GO的同步型式(同步GO)可以不同。因此,即使可以与GO62同时地置位处理器14的GO位,处理器14的同步GO在周期4之前也可能未被处理器14的同步电路输出,如箭头115所示,其中,周期4比在处理器12中提供同步GO53的时间迟一个周期。稍后在周期4中,如箭头116所示,处理器14的控制电路对同步调试退出命令28断言(在调试控制18的输出端处)。并且,响应于周期4中的同步GO的断言,处理器14在周期5中进入调试模式,如箭头117所指示的。因此,请注意在本示例中,处理器14比处理器12迟一个周期地退出调试模式。然而,由于步伐一致模式未被启用,所以调试控制16的输入端处的接口信号(同步调试退出命令28)和调试控制18的输入端处的接口信号(同步调试退出命令26)被忽视,因此不通过处理器有条件地退出调试模式。因此,每个处理器的程序计数器以不同的值结束(如在周期6和7中看到的),并因此处理器12和14此时不同步。
图11图示用于在步伐一致操作被启用的情况下退出调试模式的示例性时序。因此,图11中的最后一个信号,即,步伐一致模式被断言。在本示例中,通过GO62的断言来请求从调试模式退出(其中,还可以同时地对处理器14的GO位断言)。如箭头121所示,响应于TCLK56的上升沿在周期1期间发生GO62的断言。在这里,GO62相对于PCLK54是异步的。GO62然后被同步至PCLK54(通过同步电路48),导致在周期3中得到同步GO53,如箭头122所示。如箭头123所示,控制电路43响应于同步GO53的断言,稍后在周期3中对同步调试退出命令26断言(其从调试控制16被输出)。如箭头124所示,同步调试退出命令26的此断言然后传播至调试控制18的输入端。如上所述,由于PCLK54与TCLK56之间的关系不是固定的,所以在处理器12和14中GO的同步型式(同步GO)可能不同。因此,即使可以与GO62同时地置位处理器14的GO位,处理器14的同步GO在周期4之前也可能未被处理器14的同步电路输出,如箭头125所示,其中,周期4比在处理器12中提供同步GO53的时间迟一个周期。稍后在周期4中,如箭头126所示,处理器14的控制电路对同步调试退出命令28断言(在调试控制18的输出端处)。如箭头127所示,同步调试退出命令28的此断言然后传播至调试控制16的输入端。
与在其中处理器12响应于同步GO53的断言在周期4中退出调试模式的图10中不同,处理器12延迟从调试模式退出,直至发生同步GO53的断言,且接收到同步调试退出命令28的断言,如箭头128所指示的。因此,处理器12延迟退出调试模式直至周期5,而不是如在图10中所作地在周期4中退出。同样地,如箭头129所示,处理器14在同步GO的断言发生且接收到同步调试退出命令26的断言时退出调试模式。因此,处理器14也在周期5中退出调试模式。因此,两个处理器保持同步而不失去步伐一致。因此,通过使用同步调试退出命令信号,能够保持步伐一致。
图12图示用于在步伐一致操作被启用的情况下退出调试模式的另一示例性时序。因此,图12中的最后一个信号,即,步伐一致模式被断言。在本示例中,由GO62的断言来请求从调试模式退出(其中,还可以同时地对处理器14的GO位断言)。如箭头131所示,响应于TCLK56的上升沿在周期1期间发生GO62的断言。在这里,GO62相对于PCLK54是异步的。GO62然后被同步至PCLK54(通过同步电路48),导致在周期3中得到同步GO53,如箭头133所示。如箭头134所示,控制电路43响应于同步GO53的断言,稍后在周期3中对同步调试退出命令26断言(其从调试控制16被输出)。如箭头135所示,同步调试退出命令26的此断言然后传播至调试控制18的输入端。如上所述,由于PCLK54与TCLK56之间的关系不是固定的,所以在处理器12和14中GO的同步型式(同步GO)可能不同。然而,在图12中,如箭头132所示,同样由处理器14的同步电路在周期3中输出处理器14的同步GO。稍后在周期3中,如箭头139所示,处理器14的控制电路对同步调试退出命令28断言(在调试控制18的输出端处)。如箭头136所示,同步调试退出命令28的此断言然后传播至调试控制16的输入端。
仍参考图12,如箭头137所示,当在调试控制16的输出端处对同步调试退出命令26断言并由调试控制16接收到断言的同步调试退出命令28时,处理器12退出调试模式。同样地,如箭头138所示,当在调试控制18的输出端处对同步调试退出命令26断言并由调试控制18接收到断言的同步调试退出命令26时,处理器14退出调试模式。因此,在本示例中,作为除了从另一处理器接收到用于退出调试模式的断言的同步调试退出命令之外还等待同步GO被断言的替代,每个处理器除了从另一处理器接收到断言的同步调试退出命令之外还进行等待,直至其对将被提供给另一处理器的其的同步调试退出命令进行断言。因此,两个处理器在本示例中也保持同步而不失去步伐一致。因此,通过使用同步调试退出命令信号,能够保持步伐一致。
因此,至此应理解的是,交叉信令的使用如何被用于保证在步伐一致模式下操作的系统内的处理器能够在不丧失步伐一致的情况下进入和退出调试模式。以这种方式,即使进入和退出调试模式,系统中的多个处理器也能够保持同步。
由于在很大程度上实现本发明的设备由本领域的技术人员已知的电子组件和电路组成,所以将不会以比如上所述认为理解和认识本发明的根本概念所需的更大的程度来解释电路细节,以免使本发明的讲授内容含糊难懂或分散注意力。
可以使用多种不同的信息处理系统来实现可适用的上述实施例中的某些。例如,虽然图1及其讨论描述了示例性信息处理架构,但提出此示例性架构仅仅是为了在讨论本发明的各种方面时提供有用的参考。当然,已经出于讨论的目的简化了架构的描述,并且其仅仅是根据本发明可以使用的许多不同类型的适当架构中的一个。本领域的技术人员将认识到逻辑块之间的边界仅仅是说明性的,并且替换实施例可以合并逻辑块或电路元件,或对各种逻辑块或电路元件应用功能的取代分解。
因此,应当理解的是,本文描述的架构仅仅是示例性的,并且实际上,可以实现许多其它架构,所述其他架构实现相同的功能。简要地,但仍很明确地,将实现相同功能的组件的任何布置被有效地“关联”,使得实现期望的功能。因此,可以被组合以实现特定功能的本文中的任何两个组件视为相互"关联",使得实现期望的功能,而不管架构或中间组件如何。同样地,还可以将被这样关联的任何两个组件视为被相互“可操作地连接”或“可操作地耦合”以实现期望功能。
并且,例如,在一个实施例中,系统10的所示元件是位于单个集成电路上或同一器件内的电路。可替换地,系统10可以包括被彼此互连的任何数目的分离的集成电路或单独器件。例如,其它模块22(如果有的话)可以位于与处理器12和14相同的集成电路上,或位于在分离的集成电路上,或位于与系统10的其它元件离散地分离的另一外围或从属装置内。
此外,本领域的技术人员将认识到,上述操作的功能之间的边界仅仅是说明性的。可以将多个操作的功能组合成单个操作,和/或可以将单个操作的功能分布在附加操作中。此外替换实施例可以包括特定操作的多个实例,并且在各种其它实施例中可以改变操作的顺序。
虽然在本文中参考特定实施例描述了本发明,但在不脱离如所附权利要求书所阐述的本发明的范围的情况下可以进行各种修改和变更。因此,应将说明书和附图视为说明性而不是限制性的,并且所有此类修改意图被包括在本发明的范围内。本文相对于特定实施例所述的任何益处、优点、或问题的解决方案意图不应该被理解为任何或所有权利要求的关键、要求、或本质特征或要素。
本文所使用的术语“耦合”并不意图局限于直接耦合或机械耦合。
此外,本文所使用的术语“一”被定义为一个或多于一个。并且,不应将权利要求中的诸如“至少一个”和“一个或多个”的引用性短语的使用理解为意指由不定冠词“一”对另一权利要求元素的引用将包含该引用的权利要求元素的任何特定权利要求局限于仅包含一个此类要素的发明,即使在同一权利要求中包括引用性短语“一个或多个”或“至少一个”和诸如“一”的不定冠词时也是如此。这也适用于定冠词的使用。
除非另外说明,诸如“第一”和“第二”的术语用来任意地区别此类术语描述的要素。因此,这些术语不一定意图指示此类要素的时间或其它优先次序排列。
以下讨论针对本发明的各种实施例。
项目1包括如下的系统,其包括第一处理器、第二处理器、被耦合到第一处理器的第一时钟、被耦合到第二处理器的第二时钟、以及被耦合到第一处理器和第二处理器的第三时钟。第一处理器包括被耦合以接收第三时钟的调试电路、被耦合以接收第一时钟的同步电路、接收用于进入调试模式的第一请求并提供第一同步调试进入请求信号的同步电路、以及用于从第二处理器接收第二同步调试进入请求信号的输入端。第一同步调试进入请求信号相对于第一时钟是同步的,并且第一处理器等待进入调试模式,直至第一同步调试进入请求信号和第二同步调试进入请求信号两者被断言。项目2包括项目1的系统,其中,所述第三时钟相对于第一时钟是异步的。项目3包括项目2的系统,其中,所述第三时钟相对于第二时钟是异步的。项目4包括项目1的系统,其中,调试电路包括调试请求寄存器位,并且其中,响应于调试请求寄存器位被断言,进入调试模式的第一请求被提供给同步电路。项目5包括项目1的系统,其中,第一处理器包括第一程序计数器且第二处理器包括第二程序计数器,并且其中,当第一处理器和第二处理器两者处于调试模式时,第一处理器递增第一程序计数器且第二处理器同时地递增第二程序计数器。项目6包括项目1的系统,其中,第一处理器和第二处理器进入调试模式,并在调试模式期间步伐一致地执行相同指令。项目7包括项目1的系统,其中,第一处理器和第二处理器进入调试模式并在调试模式期间执行相同指令,并且其中,由第一处理器进行的相同指令的执行与由第二处理器进行的相同指令的执行相比偏移第一时钟的十个或更少的周期。项目8包括项目1的系统,其中,所述同步电路包括从调试电路接收用于退出调试模式的请求,并提供第一同步调试退出命令信号,其中,第一同步调试退出命令信号相对于第一时钟是同步的,并且其中,第一处理器进一步包括用于将第一同步调试进入请求信号从第一处理器传输至第二处理器的第一输出端、用于将第一同步调试退出命令信号从第一处理器传输至第二处理器的第二输出端、以及用于从第二处理器接收第二同步调试退出命令信号的输入端,其中,第一处理器等待退出调试模式,直至第一同步调试退出命令信号和第二同步调试退出命令信号两者被断言。项目9包括项目1的系统,其中,第二处理器包括被耦合以接收第三时钟的调试电路、被耦合以接收第二时钟的同步电路,其中,同步电路接收用于进入调试模式的第二请求并向第一处理器提供第二同步调试进入请求信号、以及用于从第一处理器接收第一同步调试进入请求信号的输入端。项目10包括项目9的系统,其中,所述第二处理器等待进入调试模式,直至第一同步调试进入请求信号和第二同步调试进入请求信号两者被断言。
项目11包括一种方法,其包括使用第一时钟作为调试电路的第一部分的时钟;使用第二时钟作为调试电路的第二部分的时钟,其中,第一时钟相对于第二时钟是异步的;从调试电路的第一部分向同步电路传输用于进入调试模式的第一请求,其中,进入调试模式的第一请求相对于第二时钟是异步的;第一处理器使用于进入调试模式的第一请求与第二时钟同步以产生第一同步调试进入请求;第一处理器监视从第二处理器接收到的第二同步调试进入请求;以及第一处理器等待进入调试模式,直至第一同步调试进入请求和第二同步调试进入请求两者被断言。项目12包括项目11的方法,并且进一步包括从第一处理器向第二处理器传输第一同步调试进入请求。项目13包括项目11的方法,并且进一步包括启用用于第一处理器和第二处理器的步伐一致操作,其中,步伐一致操作包括在调试模式期间,在第一处理器和第二处理器中执行相同指令。项目14包括项目11的方法,并且进一步包括从调试电路的第一部分向同步电路传输用于退出调试模式的请求,其中,用于退出调试模式的请求相对于第二时钟是异步的;第一处理器使退出调试模式的请求与第二时钟同步以产生第一同步调试退出命令;第一处理器监视从第二处理器接收到的第二同步调试退出命令;以及第一处理器等待退出调试模式,直至第一同步调试退出命令和第二同步调试退出命令两者被断言。项目15包括项目11的方法,并且进一步包括第二处理器使用于进入调试模式的第二请求与第三时钟同步以产生第二同步调试进入请求,其中,第一时钟相对于第三时钟是异步的。项目16包括项目15的方法,其中,第二时钟和第三时钟是异步的。项目17包括项目15的方法,并且进一步包括在进入调试模式之前,第二处理器监视从第一处理器接收到的第一同步调试进入请求,并且第二处理器在第一同步调试进入请求和第二同步调试进入请求两者被断言之后在调试模式下执行一个或多个指令。项目18包括项目11的方法,其中,第一处理器和第二处理器在同一集成电路上形成。
项目19包括一种方法,其包括向第一处理器和第二处理器输入测试时钟;向第一处理器输入第一处理器时钟;向第二处理器输入第二处理器时钟,其中,该测试时钟相对于第一处理器时钟是异步的,并且其中,所述测试时钟相对于第二处理器时钟是异步的;第一处理器接收用于进入调试模式的第一请求;第二处理器接收用于进入调试模式的请求,其中,用于进入调试模式的第一请求和用于进入调试模式的第二请求与测试时钟同步;第一处理器使用于进入调试模式的第一请求相对于第一处理器时钟同步以产生第一同步调试进入请求;第二处理器使用于进入调试模式的请求相对于处理器时钟同步以产生第二同步调试进入请求;第一处理器从第二处理器接收第二同步调试进入请求,并使用第二同步调试进入请求来确定进入调试模式的时间;以及第二处理器从第一处理器接收第一同步调试进入请求,并使用第一同步调试进入请求来确定进入调试模式的时间。项目20包括项目19的方法,其中,第一处理器在进入调试模式之前等待,直至第一同步调试进入请求和第二同步调试进入请求两者被断言,并且其中,第二处理器在进入调试模式之前等待,直至第二同步调试进入请求和第一同步调试进入请求两者被断言。

Claims (10)

1.一种多处理器数据处理系统,包括:
第一处理器;
第二处理器;
被耦合到所述第一处理器的第一时钟;
被耦合到所述第二处理器的第二时钟;以及
被耦合到所述第一处理器和所述第二处理器的第三时钟,其中,所述第三时钟相对于所述第一时钟是异步的,
其中,所述第一处理器包括:
被耦合以接收所述第三时钟的调试电路;
被耦合以接收所述第一时钟的同步电路,所述同步电路接收相对于所述第三时钟同步的用于进入调试模式的第一请求并提供第一同步调试进入请求信号,
其中,所述第一同步调试进入请求信号相对于所述第一时钟是同步的;以及
输入端,用于从所述第二处理器接收第二同步调试进入请求信号,
其中,所述第一处理器等待进入调试模式,直至所述第一同步调试进入请求信号和所述第二同步调试进入请求信号两者被断言。
2.根据权利要求1所述的系统,其中,所述调试电路包括调试请求寄存器位,并且其中,响应于所述调试请求寄存器位被断言,用于进入调试模式的所述第一请求被提供给所述同步电路。
3.根据权利要求1所述的系统,其中,所述第一处理器包括第一程序计数器且所述第二处理器包括第二程序计数器,并且其中,当所述第一处理器和所述第二处理器两者处于调试模式时,所述第一处理器递增所述第一程序计数器且所述第二处理器同时地递增所述第二程序计数器。
4.根据权利要求1所述的系统,其中,所述第一处理器和所述第二处理器进入调试模式,并在所述调试模式期间步伐一致地执行相同指令。
5.根据权利要求1所述的系统,其中,所述第一处理器和所述第二处理器进入调试模式,并在所述调试模式期间执行相同指令,其中,由所述第一处理器进行的相同指令的执行与由所述第二处理器进行的相同指令的执行相比偏移所述第一时钟的十个或更少周期。
6.根据权利要求1所述的系统,其中,所述同步电路从所述调试电路接收用于退出调试模式的请求,并提供第一同步调试退出命令信号,其中,所述第一同步调试退出命令信号相对于所述第一时钟是同步的,并且其中,所述第一处理器进一步包括:
第一输出端,用于从所述第一处理器向所述第二处理器传输所述第一同步调试进入请求信号;
第二输出端,用于从所述第一处理器向所述第二处理器传输所述第一同步调试退出命令信号;以及
输入端,用于从所述第二处理器接收第二同步调试退出命令信号,
其中,所述第一处理器等待退出所述调试模式,直至所述第一同步调试退出命令信号和所述第二同步调试退出命令信号两者被断言。
7.一种多处理器数据处理方法,包括:
使用第一时钟作为调试电路的第一部分的时钟;
使用第二时钟作为调试电路的第二部分的时钟,
其中,所述第一时钟相对于所述第二时钟是异步的;
从调试电路的所述第一部分向同步电路传输用于进入调试模式的第一请求,
其中,用于进入调试模式的所述第一请求相对于所述第二时钟是异步的;
第一处理器使用于进入调试模式的所述第一请求与所述第二时钟同步以产生第一同步调试进入请求;
所述第一处理器监视从第二处理器接收到的第二同步调试进入请求;以及
所述第一处理器等待进入所述调试模式,直至所述第一同步调试进入请求和所述第二同步调试进入请求两者被断言。
8.根据权利要求7所述的方法,进一步包括:从所述第一处理器向第二处理器传输所述第一同步调试进入请求。
9.根据权利要求7所述的方法,进一步包括:
从调试电路的所述第一部分向同步电路传输用于退出调试模式的请求,
其中,用于退出调试模式的所述请求相对于所述第二时钟是异步的;
所述第一处理器使用于退出调试模式的所述请求与所述第二时钟同步以产生第一同步调试退出命令;
所述第一处理器监视从所述第二处理器接收到的第二同步调试退出命令;以及
所述第一处理器等待退出所述调试模式,直至所述第一同步调试退出命令和所述第二同步调试退出命令两者被断言。
10.一种多处理器数据处理方法,包括:
向第一处理器和第二处理器输入测试时钟;
向所述第一处理器输入第一处理器时钟;
向所述第二处理器输入第二处理器时钟,
其中,所述测试时钟相对于所述第一处理器时钟是异步的,并且
其中,所述测试时钟相对于所述第二处理器时钟是异步的;
所述第一处理器接收用于进入调试模式的第一请求;
所述第二处理器接收用于进入调试模式的第二请求,
其中,用于进入调试模式的所述第一请求和用于进入调试模式的第二请求与所述测试时钟同步;
所述第一处理器使用于进入调试模式的所述第一请求相对于所述第一处理器时钟同步以产生第一同步调试进入请求;
所述第二处理器使用于进入调试模式的所述第二请求相对于所述第二处理器时钟同步以产生第二同步调试进入请求;
所述第一处理器从所述第二处理器接收所述第二同步调试进入请求,并使用所述第二同步调试进入请求来确定进入调试模式的时间;以及
所述第二处理器从所述第一处理器接收所述第一同步调试进入请求,并使用所述第一同步调试进入请求来确定进入调试模式的时间。
CN2010800155110A 2009-04-08 2010-03-23 多处理器数据处理系统和多处理器数据处理方法 Active CN102365624B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/420,521 2009-04-08
US12/420,521 US8275977B2 (en) 2009-04-08 2009-04-08 Debug signaling in a multiple processor data processing system
PCT/US2010/028300 WO2010117618A2 (en) 2009-04-08 2010-03-23 Debug signaling in a multiple processor data processing system

Publications (2)

Publication Number Publication Date
CN102365624A CN102365624A (zh) 2012-02-29
CN102365624B true CN102365624B (zh) 2013-10-16

Family

ID=42935272

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010800155110A Active CN102365624B (zh) 2009-04-08 2010-03-23 多处理器数据处理系统和多处理器数据处理方法

Country Status (5)

Country Link
US (1) US8275977B2 (zh)
JP (1) JP5459807B2 (zh)
CN (1) CN102365624B (zh)
TW (1) TWI483181B (zh)
WO (1) WO2010117618A2 (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5400443B2 (ja) 2009-03-25 2014-01-29 スパンション エルエルシー 集積回路、デバッグ回路、デバッグコマンド制御方法
TW201145016A (en) * 2010-06-15 2011-12-16 Nat Univ Chung Cheng Non-intrusive debugging framework for parallel software based on super multi-core framework
GB2483907A (en) * 2010-09-24 2012-03-28 Advanced Risc Mach Ltd Privilege level switching for data processing circuitry when in a debug mode
US8700955B2 (en) 2011-09-22 2014-04-15 Freescale Semiconductor, Inc. Multi-processor data processing system having synchronized exit from debug mode and method therefor
US9110142B2 (en) * 2011-09-30 2015-08-18 Freescale Semiconductor, Inc. Methods and apparatus for testing multiple-IC devices
US8819485B2 (en) * 2012-03-12 2014-08-26 Infineon Technologies Ag Method and system for fault containment
JP6360387B2 (ja) 2014-08-19 2018-07-18 ルネサスエレクトロニクス株式会社 プロセッサシステム、エンジン制御システム及び制御方法
CN104484258A (zh) * 2014-12-05 2015-04-01 中国航空工业集团公司第六三一研究所 一种多处理器的同步调试支持电路
CN106776186B (zh) * 2016-12-29 2020-04-07 湖南国科微电子股份有限公司 一种多cpu架构下的cpu运行状态调试方法和系统
CN106933721B (zh) * 2017-02-15 2020-06-26 北京四方继保自动化股份有限公司 一种就地化保护装置串口远程监视方法
US10606764B1 (en) * 2017-10-02 2020-03-31 Northrop Grumman Systems Corporation Fault-tolerant embedded root of trust using lockstep processor cores on an FPGA
JP6981920B2 (ja) * 2018-05-25 2021-12-17 ルネサスエレクトロニクス株式会社 半導体装置、およびデバッグ方法
JP7073285B2 (ja) * 2019-01-09 2022-05-23 ルネサスエレクトロニクス株式会社 動作検証プログラム、動作同期方法及び異常検出装置
JP7378254B2 (ja) * 2019-09-19 2023-11-13 キヤノン株式会社 マルチプロセッサデバイス
CN111240834B (zh) * 2020-01-02 2024-02-02 北京字节跳动网络技术有限公司 任务执行方法、装置、电子设备和存储介质
US11892505B1 (en) * 2022-09-15 2024-02-06 Stmicroelectronics International N.V. Debug and trace circuit in lockstep architectures, associated method, processing system, and apparatus

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050039074A1 (en) * 2003-07-09 2005-02-17 Tremblay Glenn A. Fault resilient/fault tolerant computing
US20050149892A1 (en) * 2003-12-29 2005-07-07 Yee Oceager P. System and method for debugging system-on-chips using single or n-cycle stepping
US20070130492A1 (en) * 2005-12-02 2007-06-07 Piyush Jamkhandi Testable design methodology for clock domain crossing

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5452437A (en) 1991-11-18 1995-09-19 Motorola, Inc. Methods of debugging multiprocessor system
US5313618A (en) * 1992-09-03 1994-05-17 Metalink Corp. Shared bus in-circuit emulator system and method
US5537655A (en) * 1992-09-28 1996-07-16 The Boeing Company Synchronized fault tolerant reset
JPH07261814A (ja) * 1994-03-16 1995-10-13 Yaskawa Electric Corp Pcのデュアルシステムにおける割込み同期方法
JP3175757B2 (ja) * 1996-08-13 2001-06-11 日本電気株式会社 デバッグシステム
US6145100A (en) * 1998-03-04 2000-11-07 Advanced Micro Devices, Inc. Debug interface including timing synchronization logic
SE9801678L (sv) * 1998-05-13 1999-11-14 Axis Ab Datorchip och datoranordning med förbättrad avlusningsförmåga
US6321329B1 (en) * 1999-05-19 2001-11-20 Arm Limited Executing debug instructions
US6343358B1 (en) * 1999-05-19 2002-01-29 Arm Limited Executing multiple debug instructions
US6826717B1 (en) 2000-06-12 2004-11-30 Altera Corporation Synchronization of hardware and software debuggers
US7188063B1 (en) 2000-10-26 2007-03-06 Cypress Semiconductor Corporation Capturing test/emulation and enabling real-time debugging using an FPGA for in-circuit emulation
US7206733B1 (en) 2000-10-26 2007-04-17 Cypress Semiconductor Corporation Host to FPGA interface in an in-circuit emulation system
US6675334B2 (en) * 2001-05-31 2004-01-06 Texas Instruments Incorporated Apparatus and method for multi-cycle memory access mapped to JTAG finite state machine with external flag for hardware emulation
US7774190B1 (en) * 2001-11-19 2010-08-10 Cypress Semiconductor Corporation Sleep and stall in an in-circuit emulation system
US6993674B2 (en) * 2001-12-27 2006-01-31 Pacific Design, Inc. System LSI architecture and method for controlling the clock of a data processing system through the use of instructions
EP1398700A1 (de) * 2002-09-12 2004-03-17 Siemens Aktiengesellschaft Verfahren und Schaltungsanordnung zur Synchronisation redundanter Verarbeitungseinheiten
US7805638B2 (en) * 2003-06-18 2010-09-28 Nethra Imaging, Inc. Multi-frequency debug network for a multiprocessor array
US7219265B2 (en) * 2003-12-29 2007-05-15 Agere Systems Inc. System and method for debugging system-on-chips
US7237144B2 (en) * 2004-04-06 2007-06-26 Hewlett-Packard Development Company, L.P. Off-chip lockstep checking
DE102004038590A1 (de) 2004-08-06 2006-03-16 Robert Bosch Gmbh Verfahren zur Verzögerung von Zugriffen auf Daten und/oder Befehle eines Zweirechnersystems sowie entsprechende Verzögerungseinheit
JP2006079142A (ja) * 2004-09-07 2006-03-23 Fujitsu Ltd マルチプロセッサ装置
DE102005037222A1 (de) * 2004-10-25 2007-02-15 Robert Bosch Gmbh Verfahren und Vorrichtung zur Auswertung eines Signals eines Rechnersystems mit wenigstens zwei Ausführungseinheiten
CN101048757A (zh) 2004-10-25 2007-10-03 罗伯特·博世有限公司 在拥有至少两个执行单元的计算机系统中切换的方法和装置
WO2006045798A1 (de) 2004-10-25 2006-05-04 Robert Bosch Gmbh Verfahren und vorrichtung zur datenverteilung aus wenigstens einer datenquelle in einem mehrprozessorsystem
JP4154610B2 (ja) * 2004-12-21 2008-09-24 日本電気株式会社 フォールトトレラントコンピュータ及びその制御方法
US20060161818A1 (en) * 2005-01-14 2006-07-20 Ivo Tousek On-chip hardware debug support units utilizing multiple asynchronous clocks
US7549092B2 (en) * 2005-09-29 2009-06-16 Hynix Semiconductor, Inc. Output controller with test unit
TWI331278B (en) * 2007-03-14 2010-10-01 Ind Tech Res Inst Debug method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050039074A1 (en) * 2003-07-09 2005-02-17 Tremblay Glenn A. Fault resilient/fault tolerant computing
US20050149892A1 (en) * 2003-12-29 2005-07-07 Yee Oceager P. System and method for debugging system-on-chips using single or n-cycle stepping
US20070130492A1 (en) * 2005-12-02 2007-06-07 Piyush Jamkhandi Testable design methodology for clock domain crossing

Also Published As

Publication number Publication date
WO2010117618A2 (en) 2010-10-14
JP5459807B2 (ja) 2014-04-02
US20100262811A1 (en) 2010-10-14
WO2010117618A3 (en) 2011-01-13
US8275977B2 (en) 2012-09-25
JP2012523616A (ja) 2012-10-04
TWI483181B (zh) 2015-05-01
CN102365624A (zh) 2012-02-29
TW201044268A (en) 2010-12-16

Similar Documents

Publication Publication Date Title
CN102365624B (zh) 多处理器数据处理系统和多处理器数据处理方法
US11741030B2 (en) High performance interconnect
US5434804A (en) Method and apparatus for synchronizing a JTAG test control signal to an on-chip clock signal
US9823983B2 (en) Electronic fault detection unit
US4864496A (en) Bus adapter module for interconnecting busses in a multibus computer system
US4979097A (en) Method and apparatus for interconnecting busses in a multibus computer system
El Salloum et al. The ACROSS MPSoC–A new generation of multi-core processors designed for safety–critical embedded systems
US7487377B2 (en) Method and apparatus for fault tolerant time synchronization mechanism in a scaleable multi-processor computer
CN100530155C (zh) 活锁解析方法、设备和系统
US9836104B2 (en) Power sequencing by slave power sequencers sharing a command bus
JP2002023884A5 (zh)
US6629257B1 (en) System and method to automatically reset and initialize a clocking subsystem with reset signaling technique
US4858234A (en) Method and apparatus for error recovery in a multibus computer system
CN103885421A (zh) 一种标准总线控制器
US4837767A (en) Bus adapter module with improved error recovery in a multibus computer system
US5905875A (en) Multiprocessor system connected by a duplicated system bus having a bus status notification line
US20100318884A1 (en) Clock and reset synchronization of high-integrity lockstep self-checking pairs
JP3891994B2 (ja) 順番のある(in−order)キューをドレインする(drain)システムおよび方法
US7631136B2 (en) State negotiation method in PCI-E architecture
CN104412221A (zh) 时钟域之间的数据传输
KR100198416B1 (ko) 이중화 제어시스템에서의 동기제어를 위한 동기신호 감시회로
JP4197798B2 (ja) デバッグ能力を有するチップ
JP2006163864A (ja) システムlsiのデバッグ方法及び装置
JPS58121468A (ja) マルチプロセツサ装置
JPH08328998A (ja) ファイル制御装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP01 Change in the name or title of a patent holder

Address after: Texas in the United States

Patentee after: NXP America Co Ltd

Address before: Texas in the United States

Patentee before: Fisical Semiconductor Inc.

CP01 Change in the name or title of a patent holder