CN1279449C - 微处理器 - Google Patents
微处理器 Download PDFInfo
- Publication number
- CN1279449C CN1279449C CNB2004100386728A CN200410038672A CN1279449C CN 1279449 C CN1279449 C CN 1279449C CN B2004100386728 A CNB2004100386728 A CN B2004100386728A CN 200410038672 A CN200410038672 A CN 200410038672A CN 1279449 C CN1279449 C CN 1279449C
- Authority
- CN
- China
- Prior art keywords
- signal
- address
- register
- bus
- data
- 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.)
- Expired - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
- G06F11/364—Software debugging by tracing the execution of the program tracing values on a bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
- G06F11/3656—Software debugging using additional hardware using a specific debug interface
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及一种微处理器,其特征在于,包括:一个处理器内核,用以执行程序;一个中断电路,用以在一个存取地址与一个设定的地址相符合时或在一个存取地址和数据与一个设定地址和数据相符合时,产生一个中断请求或设置一个触发请求信号送到所述的处理器内核;和一个程序计数器跟踪器,用以提供一个外部状态信号,用以指示在中断电路设置同样信号之后触发请求信号已经发出。
Description
本案是中国专利申请号为01144011.2的专利申请案的分案申请。
技术领域:
本发明涉及一种微处理器和调试系统。该调试系统用于跟踪程序计数器的功能和通知用户当前的地址或数据已被存取。
背景技术:
图1是根据现有技术实现的调试系统,称为内部电路仿真器。
该系统包括:用户目标系统500和用于调试目标系统500的调试器505,目标系统500含有微处理器501,存贮器503以及输入输出部件502,调试器含有调试微处理器506与监控程序存贮器507。
为调试目标系统500,要移去或禁止微处理器501工作,而调试器505的插针连到微处理器501,使得微处理器506能代替微处理器501的操作。使微处理器506执行贮存在存贮器507的监控程序,以实现对保存在存贮器503中的用户程序的控制。
微处理器506执行用户程序,并存取存贮器503的数据与输入输出部件502。调试器505含有跟踪存贮器508,使得微处理器506能够提供关于内部状态的跟踪信息。例如,可以提供通常微处理器501经处理器总线504不能提供的程序计数器的数值。
然而,图1的现有技术必须把目标系统500中的微处理器501的所有引线连到调试器505。例如,微处理器501有70条引线,用于30条地址信号线、4条字节允许信号线。1条读信号线,1条写信号线、1条读确认信号线。1条写确认信号线和32条数据信号线。调试器505具有用于这些引线的插针,成本昂贵,且工作不稳定。为了能存取目标系统500的存贮器503和调试器505的存贮器507,微处理器506必须从一组总线转换到另一组总线,因而,不能应用于高速微处理器。
如果目标微处理器具有外围元件,并且可能有不同的引线排列,这样,调试器必须具有同样引线排列的探针。当调试器505的探针连到目标系统500时可能影响和使得目标系统500信号不稳定。
图2是根据另一种现有技术实现的调试系统,称为只读存贮器监控程序。
用户目标系统510具有一个连到宿主机517的串行接口,存贮器513贮存监控程序514,微处理器511执行监控程序,访问存贮器514、输入输出部件515和寄存器516,使用软件断点指令执行和控制用户程序。
这种现有技术,借用用户存贮器513贮存监控程序514。如果目标系统510的存贮系统不完善,则监控程序514本身也将不稳定。如果存贮器513的容量较小,则将没有存放监控程序514的空间。由于监控模式是由用户中断启动,则某些程序将不能被调试。虽然安装在目标系统510上的串行接口512对于调试是必不可少的,但调试之后,则不再使用。这种现有技术的调试性能不好,因为它没有硬件断点也不能跟踪程序计数器。
图3仍然是根据另一种现有技术的调试系统。
用户目标系统520具有微处理器521,该微处理器含有串行接口526和定序器525。串行接口526与调试工具529通信。调试工具529向接口526发送信号,而定序器525对信号进行解释,为了影响信号,定序器525暂停用户程序的执行,存取寄存器528使用总线控制器527存取输入输出部件523和存贮器524,并控制用户程序。串行接口526通常不能与宿主机530直接通信。因此,调试工具529要把来自宿主机530的命令转换成微处理器521能理解的信号,而把来自微处理器521的信号转换成宿主机530能理解的数据格式。
微处理器521含有必须访问微处理器521和调试工具529的定序器525。这样,这种现有技术由于采用复杂的连接逻辑,而使芯片面积增加。如果目标系统520要提供复加的寄存器,由于复杂的工作,必须相应地修改定序器525。这种现有技术不能跟踪程序计数器。
如上所述,这些现有技术不能跟踪程序计数器,即使他们能够跟踪,他们必须通过处理器总线,在调试处理器与目标系统之间连接许多信号。根据图1的现有技术,调试程序505的微处理器506必须访问存贮器503和目标系统500中的输入输出部件502,其困难在于控制这些存取操作的时序。
图2的现有技术是在用户存贮器513中存放监控程序,它减少用户存贮的空间。用这种现有技术进行调试是不可靠的和不充分的。
图3的现有技术是在目标系统520中的微处理器521中包含定序器525,对来自调试工具529发送的信号进行解释并执行。换句话说,这种现有技术涉及目标系统与调试工具之间的复杂的连接。如果要修改处理器521,则要做复杂的工作,对定序器525进行修改。
图2和图3的现有技术均没有触发功能。虽然图1的现有技术在调试微处理器506可能有触发功能,但也要有用于提供触发信息的附加信号。
发明内容:
本发明的目的在于提供一个配置在用户目标系统中的微处理器,用于以目标系统与调试器之间的少量信号实现调试功能。
本发明的另外目的在于提供一个配置在用户目标系统中的微处理器,借助在目标系统上微处理器的操作,方便地存取目标系统的存贮器和输入输出部件。实现调试功能。
本发明的其它目的在于提供一个配置在用户目标系统中的微处理器,以少量的信号实现跟踪程序计数器的调试功能。
本发明的其它目的还在于提供一个配置在用户目标系统中的微处理器,以最少的硬设备通过共享地址、通过带有硬件断点功能和触发功能的数据比较器、以及共享具有程序计数器信息和触发器信息的输出信号,实现调试功能。
为了达到这些目的,本发明的第一个方面是一种微处理器,它具有处理机内核(代码块)和调试模块。处理机内核执行用户程序和监控程序,以便调试用户目标系统。调试模块通过内部调试接口和处理器总线连到处理机内核。调试模块具有一个接口,通过它处理机内核执行保存在一个在调试工具内的监控程序,调试模块还有一个用于向处理器内核发出中断和异常请求的运行控制器,用它把处理器内核从用户程序切换到监控程序。
本发明的第二方面是一个调试系统,在此系统中,调试器存储一个监控程序,用于调试用户目标系统。目标系统包括:微处理器、存贮器和输入/输出单元。微处理器具有处理机内核和调试模块。处理机内核执行用户程序或监控程序。调试模块通过内部调试接口和处理器总线连接到处理机内核,通过外部调试接口连接到调试器。调试模块的接口能使得处理机内核执行监控程序。调试模块还有运行控制器,用于向处理机内核发出中断和异常请求,把处理机内核从用户程序切换到监控程序。存贮器通过处理器总线与微处理器相连,并存贮对于微处理器执行用户程序所必要的信息。输入/输出单元通过处理器总线连接到微处理器。
根据本发明的第一方面和第二方面,目标系统的微处理器具有调试功能,以减少目标系统与调试器之间的信号数量。根据本发明的第一方面和第二方面,在调试期间,微处理器操作,方便地访问目标系统的存储器和输入/输出单元。
本发明的第三方面是提供一种微处理器,它具有一个能执行程序的处理机内核和能跟踪程序计数器的跟踪器。跟踪器通过内部调试接口连接到处理机内核,提供程序计数器信号,表示处理机内核将要执行的指令地址,传送输出信号的信号线的数量要少于指令地址的位数。
根据本发明的第三部分,目标系统的微处理器具有调试功能,以减少用于跟踪程序计数器的接口信号的数目。
本发明的第四方面是提供一种微处理器,它具有执行程序的处理机内核、断点电路和程序计数器跟踪器。当存贮的地址与设置的地址相符合、或当被存取的地址和数据与设置的地址和数据相符合,则断点电路向处理机内核提供断点请求和触发请求。跟踪器提供一个触发请求已是可用的外部状态信号信息。
根据本发明的第四方面,目标系统的微处理器具有调试功能,地址比较器共享硬件的断点功能和触发功能,跟踪器的输出用于提供触发信号,以使硬件减至最低限度。
根据本发明,这里提供一种微处理器,其特征在于,包括:一个处理机内核,经由一个内部调试接口和处理机总线连接到一个调试模块,用于执行程序,所述的调试模块包括:一个中断电路和一个程序计数器跟踪器,所述的中断电路,用以在一个存取地址与一个设定的地址相符合时或在一个存取地址和数据与一个设定地址和数据相符合时,产生一个中断请求或设置一个触发请求信号送到所述的处理机内核;和所述的程序计数器跟踪器,用于提供一个外部状态信号,用于指示在所述的中断电路设置所述触发请求信号之后该触发请求信号已经发出。
本发明的这些目的和其它的目的、特征和优点从下文描述的优选实施例并参照附图将会更加明了。
附图说明:
图1示出根据一个现有技术的、用于调试用户目标系统的调试系统。
图2示出根据另一现有技术的、用于调试用户目标系统的调试系统。
图3示出根据又一个现有技术的、用于调试用户目标系统的调试系统。
图4示出根据本发明的一个实施例的调试系统和微处理器。
图5示出根据所述实施例的调试模块。
图6示出根据图4所示的实施例的寄存器电路。
图7示出根据图6所示的寄存器电路的调试控制寄存器(DCR)。
图8示出根据图6所示的寄存器电路的指令断点地址0寄存器(IBA0)。
图9示出根据图6所示的寄存器电路的指令断点控制0寄存器(IBC0)。
图10示出根据图6所示的寄存器电路的指令断点状态寄存器(IBS)。
图11示出根据图6所示的寄存器电路的数据断点地址0寄存器(DBA0)。
图12示出根据图6所示的寄存器电路的数据断点控制0寄存器(DBC0)。
图13示出根据图6所示的寄存器电路的数据断点状态寄存器(DBS)。
图14示出根据图6所示的寄存器电路的处理器总线断点地址0寄存器(PBA0)。
图15示出根据图6所示的寄存器电路的处理器总线断点数据0寄存器(PBD0)。
图16是图6所示的寄存器电路的处理器总线屏蔽0寄存器(PBM0)。
图17是图6所示的寄存器电路的处理器总线控制0寄存器(PBC0)。
图18是图6所示的寄存器电路的处理器总线断点状态寄存器(PBS)。
图19是图5所示的调试模块的指令/数据地址断点电路。
图20是图5所示的调试模块的处理器总线断点电路。
图21是图5所示的调试模块的串行监控总线电路。
图22是串行监控总线电路读操作的定时图。
图23是串行监控总线电路写操作的定时图。
图24是根据指令CFC0的串行监控总线电路读操作的定时图。
图25是根据指令CTC0的串行监控总线电路写操作的定时图。
图26是图21示出的串行监控总线电路的操作流程图。
图27是串行监控总线电路的读操作流程图。
图28是串行监控总线电路的写操作流程图。
图29是图5示出的调试模块的程序计数器跟踪器。
图30是根据转移指令程序计数器输出的定时图。
图31是根据间接跳转指令程序计数器输出的定时图。
图32是根据异常和间接跳转指令的程序计数器输出的定时图。
图33示出指令/数据地址跟踪触发器的时间图。
图34示出响应异常产生指令而产生的指令/数据地址跟踪触发器的定时图。
图35示出响应间接指令而产生的指令/数据跟踪触发器的定时图。
图36示出当调试异常发生时的输出信号PCST[2:0]的定时图。
图37示出当调试异常发生的同时还提供目标程序计数器的输出时的信号PCST[2:0]的定时图。
图38示出调试方式之后在正常方式被恢复时的信号PCST[2:0]的定时图。
图39示出目标程序计数器的输出的定时图。
图40示出下一个间接转换发生而且目标程序计数器提供输出时的定时图。
图41示出异常发生的同时目标程序计数器提供输出的定时图。
图42示出图5所示的调试模块的外部接口电路。
图43示出扩展的IBS寄存器。
图44示出根据本发明的另一个实施例的调试系统。
具体实施方式:
调试系统具有用户目标系统70和调试器60。
目标系统70具有微处理器10、存贮器40和输入输出部件50。微处理器10具有调试功能。
微处理器10具有处理机内核20和调试模块30。处理机内核20通过处理机总线80访问存贮器40和输入/输出部件50并执行程序。处理机内核20通过内部调试接口和处理机总线80连接到调试模块。调试模块30通过外部调试接口连接到调试器60。
调试系统采用调试方式执行监控程序;还采用正常方式执行用户程序。
〔调试方式〕
处理机内核20产生调试异常,或者产生调试复位以启动调试方式。处理机内核20跳转到调试异常向量地址FF20-0200或者跳转到调试复位向量地址FF20-0000并设置(assert)调试方式信号DM。通过这些向量地址在调试器60中访问存贮器。处理机内核20通过调试模块30去执行存放在调试程序60中的监控程序。监控程序通过指定用户程序首地址和末地址以及对存贮器和寄存器读、写执行和控制用户程序。处理机内核20可以通过执行返回指令返回到正常方式并执行用户程序。这样,处理机内核20跳转到由返回指令所指定的地址,并对调试方式信号DM取反。
〔正常方式〕
在正常方式下,调试系统执行用户程序,同时,跟踪程序计数器。通过产生一个调试异常,或者通过硬件断点、软件断点或调试中断产生的用于处理机内核20的调试复位信号可以使调试系统从正常方式转换到调试方式。
在正常方式下,能够对程序计数器跟踪功能、硬件断点功能、软件断点功能、调试中断功能、调试复位功能和跟踪触发的功能进行解释。
当处理机内核20执行存放在存贮器40的用户程序的同时,程序计数器跟踪功能对程序计数器中的值进行跟踪。在处理机内核20执行用户程序时,程序计数器信息被发送到内部调试接口,调试模块30处理该信息并通过外调试接口将已处理的信息送到调试器60。
当有预设定地址的指令在执行、或当预设定地址的数据被存取时,硬件断点功能产生一个调试异常,使得处理机内核20执行监控程序。更确切地说,就是调试模块30对处理机内核20执行的指令的地址与存放在调试模块30的地址进行比较、或者把处理机内核20存取数据的地址与存放在调试模块30的数据地址进行比较,或是把处理机内核20提供的数据与存贮在调试模块30的数据进行比较,如果他们之间彼此符合,调试模块向处理机内核20发出调试异常请求或调试中断请求。
软件断点功能产生一条导致调试异常的软件断点指令,使得处理机内核20执行监控程序。
调试中断功能设置一个产生调试异常的调试中断信号,使得处理机内核20执行监控程序。
调试复位功能设置一个使调试复位的调试复位信号,对处理机内核20和调试模块30的内部状态初始化。然后,处理机内核20进行调试方式,并从调试复位向量地址FF20-0000,启动调试程序。
跟踪触发功能使得微处理器10发出一个表明有预设定地址的指令执行或预设定地址的数据被存取的外部信号。为了响应该信号,调试器60接通/关断程序计数器跟踪功能。在调试模块30把被处理器内核20执行的指令地址与存贮在调试模块30的指令地址进行比较,或把被处理器内核20存取的数据的地址与存贮在调试模块30的数据地址进行比较,或是把从处理器内核20发送到内部调试接口和处理机总线80的数据与存贮在调试模块30的数据进行比较之后,如果它们之间彼此相符合,向调试器60提供触发器信息,实现跟踪触发功能。
调试模块30的详细说明。
图5是调试模块30的内部框图。
调试模块30含有指令/数据地址断点电路31、程序计数器跟踪器32、处理机总线断点电路33、串行监控总线电路34、寄存器电路35、外部接口电路36和时钟发生器37。
指令/数据地址断点电路31通过内部调试接口连到处理机内核20。电路31把处理机20提供的指令地址与设置在寄存器电路35的指令地址比较,如果他们相符合,向处理器内核20提供指令地址断点异常请求。电路31还把处理器内核20提供的数据地址与设置在寄存器电路35的数据地址相比较,如果他们彼此相符合,向处理机内核20提供一个数据地址断点异常请求。
程序计数器跟踪32通过内部调试接口连接到处理机内核20,以便处理由处理机内核20提供的程序计数器跟踪信息,并将已处理的信息提供给外部接口电路36。
处理机总线断点电路33通过处理器总线80连到处理机内核20。电路33监控在处理机总线80的总线周期,当用于设置在寄存器电路35中的地址和数据的总线周期进行时,向处理机内核20发出异常请求。
串行监控总线电路34通过处理器总线80连到处理机内核20,并且当处理机内核20执行调试器60的监控程序时,起接口作用。
寄存器电路35包括控制寄存器,用于控制调试模块30各种功能。寄存器35通过处理器总线80和内部调试接口连接到处理机内核20,使得处理机内核20能够读、写控制寄存器的内容。控制寄存器的内容被送到调试模块30的各个单元和处理机内核20,以控制调试功能。
外部接口电路36使调试模块30的程序计数器跟踪32和串行监控总线电路34以及处理机内核20与调试器60相接口。
时钟发生器37将时钟信号CLK分频,并向串行监控总线电路34提供时钟信号CLK2。
〔外部信号〕
调试模块30采用下面8种专用的接口信号与外部调试器60通信:
1.SDAD/TPC(输出)
2.SDI/DINT*(输入)
3.DCLK(输出)
4.DRESET*(输入)
5至7、PCST〔2:0〕(输出)
8.DBGE*(输入)
(1)、调式时钟信号DCLK(输出)
这个信号是送到调试器60的时钟输出信号,用来控制串行监控总线和程序计数器跟踪接口的定时。用于串行监控总线的操作,这个信号是由处理机内核20的操作时钟信号的频率二分频形成的。
(2)、调试复位信号DRESET*(输入到上拉(pull-up)端钮)。
这个信号是低有效的信号(low-active),它的设置使调试模块30初始化,而无须考虑输入信号DBGE*。当不使用调试器60时,该信号端钮断开。
(3)、程序计数器跟踪状态信号PCST〔2:0〕(输出)
这个信号表示下列程序计数器跟踪状态和串行监控总线方式:
111:流水线失速状态(STL)
110:已获取(Taken)转移/跳转状态(JMP)(具有程序计数器输出)
101:已获取转移/跳转状态(BRT)(没有程序计数器输出)
100:异常状态(EXP)(具有异常向量码输出)
011:顺序异常状态(SEQ)(指令运行)
010:在流水线失速情况下,跟踪触发器输出状态(TST)
001:运行时,跟踪触发器输出状态(TSQ)
000:调试方式(DBM)(0:低电平,1:高电平)
(4)、调试器允许信号DBGE*(输入到上拉端钮)
这个信号指示是否调试器被连接。如果调试器60断开,信号是高;如果调试器被连接,则信号是低。
如果信号DBGE*是高,表示调试器断开,处理器内核20的信号DEV是低,并且调试异常向量地址是FF200200。用户复位信号RESET*使调试模块30的功能初始化,并且禁止调试器60的功能。这时,输出信号SDA0/TPC、ELK和PCST〔2:0〕变成高。
如果信号DBGE*是低,则表示调试器60接通,信号DEV是高,调试异常向量地址是FF20一0200(在监控区域)。用户复信号不对调试模块30初始化。
(5)、串行数据和地址输出/目标程序计数器信号SDA0/TPC(输出)
当信号PCST〔2:0〕表示调试方式(DBM)时,这个信号做为串行数据和地址输出信号SDA0,当信号PCST〔2:0〕不表示调试方式时,则这个信号做为目标程序计器信号TPC。
当信号PCST〔2:0〕表示调试方式时,则信号SDA0以串行方式,一位一位地提供数据、地址、读/写和字节允许信号。在一个总线周期开始之前,为时钟周期提供一个低电平起始位信号。
在读操作时,按低电平起始位,地址位A〔2〕到A〔19〕,读/写位R/W*和字节允许位BE〔0〕*到BE〔3〕*的顺序提供信号。在写操作时,按低电平起始位,A〔2〕到A〔9〕,R/W*,BE〔0〕*到BE〔3〕*和数据位D〔0〕到 D〔31〕。
当信号PCST〔2:0〕表示正常方式时,则信号TPC提供转移/跳转指令的目标地址以及异常/中断的向量数。目标地址从位A〔2〕到位A〔31〕顺序提供。
(6)、串行数据输入/调试中断信号SDI/DINT*(输入到上拉端钮)
当信号PCST〔2:0〕表示调试方式时,则这个信号做为串行监控总线接口信号SDI;当信号PCST〔2:0〕表示正常方式时,则这个信号做为程序计数器跟踪接口信号DINT*。
信号SDI是数据输入信号,在读操作中,当接收一个在时钟周期内为低的外部起始位时,数据输入操作从下一个时钟开始。当在写操作中有低电平输入时,则总线周期结束。
在读操作中,数据各位按低电平起始位,数据位D〔0〕到D〔31〕的顺序提供。在写操作中,仅接收低电平结束位。
信号DINT*是来自调试器60的调试中断输入信号。当不使用调试器60时,则端钮是断开的。
图6是寄存器电路35的详图。
寄存器电路35由地址译码器351和寄存器部位352组成。
地址译码器351接收经由处理器总线80从处理器内核20送来的地址输入信号A〔31:0〕、读信号RD*、写信号WR*、调试方式信号DM和内核时钟信号CLK。当读寄存器部位352的一个寄存器时,地址译码器351接收指定寄存器的设备地址码,断言一个对应于该寄存器的寄存器读信号,并断言一个送到处理器内核20的读确认信号RDACK*。
当向寄存器部件352寄存器按给定地址写入数据时,地址译码器351对应于该寄存器的寄存器写信号、读确认信号RDACK*和写确认信号WRACK*。
在正常方式下,寄存器部件352是不可存取的。这样,在读总线周期地址译码器351只设置送到处理器内核20的读确认信号RDACK*,而在写总线周期,仅设置送到处理器内核20的写确认信号WARCK*,因此,读出的值是不确定的,而写入数据也是无效的。
如果寄存器DCR的存贮保护位MP被调置,即使在调试方式下,寄存器部件352的寄存器,除了寄存器DCR外都是不可存取的。这样,在读总线周期,地址译码器351只设置读确认信号RDACK*;在写总线周期仅设置写确认信号WRACK*,因此,读出来的值是不确定的,写入的数据也无效。
表1是地址译码的操作
被存取的寄存器 | 地址A[31:2] | 读RD* | 写WR* | DM | MP | 读确认RDACK* | 写确认WRACK* | 被设置的信号 |
DCR | FF300000 | 低 | 高 | 高 | × | 低高 | 高低 | DCR 读DCR 写 |
高 | 低 | |||||||
IBS | FF300004 | 低 | 高 | 高 | 0 | 低高 | 高低 | IBS 读IBS 写 |
高 | 低 | |||||||
DBS | FF300008 | 低 | 高 | 高 | 0 | 低高 | 高低 | DBS 读DBS 写 |
高 | 低 | |||||||
PBS | FF30000C | 低 | 高 | 高 | 0 | 低高 | 高低 | PBS 读PBS 写 |
高 | 低 | |||||||
IBA0 | FF300010 | 低 | 高 | 高 | 0 | 低高 | 高低 | IBA0 读IBA0 写 |
高 | 低 | |||||||
IBC0 | FF300014 | 低 | 高 | 高 | 0 | 低高 | 高低 | IBC0 读IBC0 写 |
高 | 低 | |||||||
DBA0 | FF300020 | 低 | 高 | 高 | 0 | 低高 | 高低 | DBA0 读DBA0 写 |
高 | 低 | |||||||
DBC0 | FF300024 | 低 | 高 | 高 | 0 | 低高 | 高低 | DBC0 读DBC0 写 |
高 | 低 | |||||||
PBA0 | FF300030 | 低 | 高 | 高 | 0 | 低高 | 高低 | PBA0 读PBA0 写 |
高 | 低 | |||||||
PBD0 | FF300034 | 低 | 高 | 高 | 0 | 低高 | 高低 | PBD0 读PBD0 写 |
高 | 低 | |||||||
PBM0 | FF300038 | 低 | 高 | 高 | 0 | 低高 | 高低 | PBM0 读PBM0 写 |
高 | 低 | |||||||
PBC0 | FF30003C | 低 | 高 | 高 | 0 | 低高 | 高低 | PBC0 读PBC0 写 |
高 | 低 | |||||||
- | FF300xxx | 低 | 高 | 高 | × | 低高 | 高低 | -- |
高 | 低 | |||||||
- | FF300004~FF300FFC | 低 | 高 | 高 | 1 | 低 | 高 | - |
高 | 低 | 高 | 低 | - |
寄存器部件352包括调试控制寄存器(DCR)指令。断点状态(IBS)寄存器、数据、断点状态(DBS)寄存器、处理器总线断总状态(PBS)寄存器、指令断点地址0(IBA0)寄存器、指令、断点控制0(IBC0)寄存器,数据断点地址0(DBA0)寄存器、数据、断点控制0(DBC0)寄存器、处理器总线断点地址0(PBA0)寄存器、处理器总线断点数据0(PBD0)寄存器、处理器总线断点数据屏蔽0(PBM0)寄存器和处理器总线断点控制0(PBC0)寄存器。
当调试复位信号DRESET*被设置,或是当为高电平,而表示调试器60断开的信号DEGE*用户复位信号RESET*激活时,则所有寄存复位。
解释寄存器功能
图7是调试控制寄存器(DCR)
跟踪方式位TM(复位到0)
这一位规定程序计数器跟踪操作
0:实时提供程序计数器跟踪信息
1:提供完整的程序计数器跟踪信息(不保证实时操作)。
位TM被送到程序计数器跟踪器32。
屏蔽用户复位MRST(复位到0)
这一位规定用户复位屏蔽
0:调试异常时,屏蔽用户复位
1:调试异常时,允许用户复位
位MRST被送到外部接口电路36。
存贮保护位MP(复位到1)
0:在调试方式下,允许对监控区进行写操作。
1:在调试方式下,除了寄存器DCR阻止写操作之处,保护监控区域(FF20-0000到FF3F-FFFF)
位MP被送到地址译码器351和串行监控总线电路34。
屏蔽非屏蔽中断位MNmI(复位到1)
0:屏蔽处理器内核20的NmI。
1:允许NmI。
位MVmI被送到处理器内核20。
屏蔽中断位MInt(复位到1)
0:屏蔽处理器内核20的外中断(Int〔5:0〕*)
1:允许外中断(Int[5:0〕*)
位MInt被送到外部接口电路36。
Endian存贮器位ENM。
当用户进行复位操作时,这一位表示Endian信号的值,这一位是只读位,对该位的写操作是无效的。
0:小的endian。
1:大的endian。
当用户复位信号RESET*为低,在内核时钟信号上升沿,通过锁存endian信号形成位ENM。
暂停状态位HIS
当信号DINT*有效,这一位表示暂停信号的值。位HIS是只读位,对这一位的写操作是无效的。
0:非暂停状态
1:暂停状态
通过在调试中断信号DINT的上升沿锁住暂停信号形成HIS位。
打盹(doze)状态位DZS。
当信号DINT*有效这一位表示打盹信号的值。该位是只读位,对这一位的写操作是无效的。
0:非打盹状态
1:打盹状态
在调试中断信号DINT*的下降边锁存打盹信号形成位DZS。
图8是指令断点地址0寄存器IBA0。
指令断点地址字段IBA。
寄存器IBA0的字段存贮指令断点地址,它是虚拟地址。字段IBA送到指令/数据地址断点电路31。
图9是指令断点控制0寄存器IBC0。
断点允许位BE(复位到0)
这一位规定指令地址断点功能的有效性。
0:禁止指令地址断点功能。
1:允许指令地址断点功能。
如果将被运行的指令的虚拟地址与设置在寄存器IBA的地址相符合,且当位BE为1,则向处理器内核20发出指令断点请求,使寄存器IBS的位、BS0置位。(处理器内核20产生指令地址断点异常,刚好在运行的指令地址符合之前)位BE送往到断点电路31。
跟踪触发允许位TE(复位置0)。
这一位表示指令地址跟踪触发功能的有效性。
0:禁止指令地址跟踪触发功能
1:允许指令地址跟踪解发功能。
如果被运行的指令的虚拟地址与寄存器IBA0地址设置相符合,并且表明允许指令地址跟踪触发功能的位TE为1,则信号PCST〔2:0〕代表跟踪触发的输出状态TST(0/0)或TSQ(001),使得寄存器IBS的位BS0置位。位TE送往断点电路31。
图10是指令中断状态寄存器IBS
中断通道号字段BCN
该字段表示一个指令断点的通道号。它是只读字段,对该字段的写操作将是无效的。
0000:空(保留)
0001:1个通道:
1111:15个通道(保留)
断点状态0位BS0
这是一个表明产生指令地址、断点或指令地址跟踪触发的状态位。
0:无指令地址断点,也没有通道0的指令地址跟踪触发。
1:指令地址断点异常的发生或指令地址跟踪触发并且寄存器IBC0中位BE为1或TE为1
则表明指令的虚地址与设置地址相符合。
通过向BS0写0将BS0清除。当一个从断点电路31发出的BS0置位信号被调置则BS0被置位。
图11是数据断点地址0寄存器DBA0
数据断点地址字段DBA。
该字段存放一个数据断点地址,这个地址是虚地址。这个字段送往断点电路31。
图12是数据断点控制0寄存器PBC0。
断点允许位BE(复位置0)
这个位规定数据地址断点功能的有效性。
0:禁止数据地址断点功能。
1:允许数据地址断点功能
若被存取的数据的虚地址与在寄存器DBA0中设置的地址相符合且寄存器DBA0的位BE为1,将产生一个数据断点请求送往处理器内核20,并置位寄存器DBS的位BS0。位BE被送往断点电路31。
跟踪触发允许位TE(复位置0)
这个位规定数据地址跟踪触发功能的有效性。
0:禁止数据地址跟踪触发功能
1:允许数据地址跟踪触发功能
若被存取的数据的虚地址与寄存器DBA0中设置的地址相符合,并且位TE为1,则表明允许数据地址跟踪触发功能。信号PCST〔2:0〕表示跟踪触发输出状态TST(0/0)或TSQ(001),并且寄存器DBS的位BS0被置位。位TE被送往断点电路31。
图13是数据断点状态寄存器DBS。
断点通道号字段BCN
该字段表明数据断点的通道号。它是只读的,对该字段的写操作是无效的。
0000:空(保留)。
0001:1个通道。
…
1111:15个通道(保留)
断点状态0位BS0。
这是一个表明一个数据地址断点或数据地址跟踪触发已经发生的状态位。
0:没有数据地址断点或通道0的数据地址跟踪触发。
1:在数据的虚地址与设置地址相符合,并且位BE为1或寄存器DBC0中的TE为1时发生了数据地址断点异常或数据地址跟踪触发。
通过向BS0写0将BS0清除。当从断点电路31发出的BS0置位信号被设置后,BS0被置位。
图14是处理器总线断点地址寄存器PBA0。
处理器总线断点地址字段PBA。
该字段存储处理器总线断点跟踪触发功能的断点地址。这个地址是物理地址。该字段PBA被送往处理器总线断点电路33。
图15是处理器总线断点数据0寄存器PBD0。
处理器总线断点数据字段PBD。
该字段存放处理器总线断点/跟踪触发功能的断点数据。字段PBD被送往处理器总线断点电路33。
图16是处理器总线屏蔽0寄存器PBM0。
处理器总线断点数据屏蔽字段PBM。
该字段表示禁止(屏蔽)某些存储在寄存器PBD0中的数据比较的位。这些位是根据处理机总线断点/跟踪触发功能而设置的位。
0:允许寄存器PBD0中的相应位进行比较。
1:禁止寄存器PBD0中的相应位进行比较。
字段PBM被送往处理器总线断点电路33。
图17是处理器总线控制0寄存器PBC0。
断点允许位BE(复位置0)
这一位规定处理器总线断点的有效性。
0:禁止处理器总线断点。
1:允许处理器总线断点。
若一个地址和数据与设置的值相符合,则一个调试中断请求被发送给处理器内核20,位BE被送往处理器总线断点电路33。
跟踪触发器允许位TE(复位置0)。
该位规定一个处理器总线跟踪触发的有效性。
0:禁止处理器总线跟踪触发。
1:允许处理器总线跟踪触发。
若一个地址和数据与设置的值相符合,那么信号PCST〔2:0〕代表跟踪触发输出状态TST(0/0)或TSQ(001)。位TE被送往处理器总线断点电路33。
从非高速缓存区取指令位IFUC。
该位规定一个地址和数据是否和设定值比较,用于从非高速缓存区取指令。
0:禁止比较。
1:允许比较
位IFUC被送往处理器总线断点电路33。
从非高速缓存区数据加载位DLUC。
该位规定高速缓存区加载的数据是否进行地址和数据的比较。
0:禁止比较。
1:允许比较。
位DLUC被送往处理器总线中断电路33。
存储数据到非高速缓存区位DSUC。
该位表示当数据被存储到非高速缓存区时,是否进行地址和数据的比较。
0:禁止比较。
1:允许比较。
位DSUC是被送往处理器总线断点电路33。
存储数据到高速缓存区位DSCA。
该位规定当数据被存储到高速缓存区时,是否进行地址和数据的比较。
0:禁止比较。
1:允许比较。
位DSCA被送往处理器断点电路33。
图18是处理器总线断点状态寄存器PBS。
断点通道号字段BCN。
该字段规定处理器总线断点的通道号。
0000:0通道(保留)。
0001:1通道
…
1111:15通道(保留)
断点状态0位BS0(复位置0)
这是一个表示是否发生了处理器总线断点或一个处理器总线跟踪触发的状态位。
0:没有通道0的处理器总线断点或处理器总线跟踪触发。
1:通道0的处理器总线断点或处理器总线跟踪触发,且BE是1或在寄存器PBE0中位TE被置1。
通过向BS0写0将它清除。若位BE为1,到处理器内核20的断点调试请求也被清除。当一个从处理器总线断点电路33发出的BS0置位信号被设置,位BS0被置位。
图19是指令/数据地址断点电路31,该电路具有一个指令地址比较器311、一个数据地址比较器312和“与”电路313、314、315和316。
若断点允许位BE或寄存器IBC0中的触发允许位TE被置位,并且一个从处理器内核20发出的指令地址允许信号被设置,那么,比较器311将从处理器内核20来的输入指令地址和存储在寄存器IBA0中的地址进行比较。若它们符合,则比较器311给寄存器IBS中的位BS0提供一个信号使它置位,若寄存器IBC0中的BE位在这时置位,“与”电路313的输出被设置,则提供给处理器内核20一个指令地址断点请求。若寄存器IBC0的TE位被置位,“与”电路314的输出被设置,则提供给程序计数器跟踪器32一个指令地址跟踪触发请求。
若寄存器DBC0的位BE或TE被置位,并且若一个从处理器内核20发出的数据地址允许信号被设置,那么,比较器312对从处理器内核20发出的输入数据地址与存储在寄存器DBA0中的地址进行比较。若它们相符合,比较器312提供一个信号来置位寄存器DBA0中的位BS0。若寄存器DBC0中的位BE在这时置位,“与”电路315的输出被设置,则提供一个数据地址中断请求给处理器内核20。若寄存器DBC0的位TE被置位,“与”电路316的输出被设置,则提供一个数据地址跟踪触发请求给程序计数器跟踪器。
图20是处理器总线断点电路33的详图。
电路33监控处理器总线的总线操作,并且若在寄存器中发生了用于地址和数据设置的总线操作,电路33则提供一个调试中断请求给处理器内核20。
电路33具有一个处理器总线地址比较器331,一个带有屏蔽的数据比较器332和“与”电路333,334和335。
当寄存器PBC0的断点允许位BE或触发允许位TE被置位,比较器331将处理总线中的地址和在设置在寄存器PBA0中的地址进行比较。寄存器PBC0的位DSCA,DSUC,DLUC和IFUC规定关于非高速缓存区/高速缓存区、存储数据/加载数据和指令获取的比较的有效性。表2是比较器331的操作。它们是根据信号ID(指示是否为指定获取或数据存取),读信号RD*,写信号WR*,和信号CACHE*而进行的。
表2
存取类型 | ID | RD* | WR* | CACHE* | 处理器总线地址-(PBA0) | IFUC | DLUC | DSUC | DSCA | 比较器输出 |
读(地址不匹配) | X | L | H | X | 不匹配 | X | X | X | X | L |
写(地址不匹配) | X | H | L | X | 不匹配 | X | X | X | X | L |
从非高速缓存区的指令获取 | H | L | H | H | 匹配 | 1 | X | X | X | H |
0 | X | X | X | L | ||||||
从非高速缓存区的数据加载 | L | L | H | H | 匹配 | X | 1 | X | X | H |
X | 0 | X | X | L | ||||||
存储数据到非高速缓存区 | L | H | L | H | 匹配 | X | X | 1 | X | H |
X | X | 0 | X | L | ||||||
存储数据到高速缓存区 | L | H | L | L | 匹配 | X | X | X | 1 | H |
X | X | X | X | L |
在读信号RD*为低的读总线周期中,数据比较器332将从处理器总线80输入的数据DIN〔31:0〕和在寄存器PBD0中存储的数据进行比较,它只比较那些在寄存器PBM0中相应位为0的位。在写信号WR*为低的写总线周期中,比较器332将处理器总线80的输出数据DOUT〔31:0〕和在寄存器PBD0中存储的数据进行比较。它只比较在寄存器PBM0中相应位为0的那些位。
若比较器331和332的每个输出均为高,亦既,如果地址和数据与设置的地址和数据相符合。“与”电路333的输出被设置,则请求寄存器电路35设置寄存器PBS的位BS0。若这时寄存器PBC0的位BE被置位,“与”电路334的输出被设置,则提供给处理器内核20一个调试中断请求。若寄存器PBC0的TE位被置位,则“与”电路335的输出被设置,发出处理器总线跟踪触发请求给程序计数器跟踪器32。
图21是串行监控总线电路34的详图。电路34具有一个串行监控总线控制器341,一个串行输出电路342和一个串行输入电路343。
串行监控总线控制器341以处理器总线80接收数据输出信号DOUT〔31:0〕、地址信号A〔31:20〕、读信号RD、写信号WR*、协处理器读信号CPRD*、协处理器写信号CPWR*和调试方式信号DM、控制器341也接收来自时钟发生器37产生的时钟信号CLK2、寄存器电路35的寄存器DCR的MP位以及外部接口电路产生的信号SDI。
控制器341向处理器总线80提供一个读确认信号RDACK*。写确认信号WRACK*。协处理器读确认信号CPRDACK*、和协处理器写确定信号CPWRACK*、控制器341向串行输出电路342提供一个串行监控总线读/写信号,串行监控总线字节允许信号、串行监控总线数据信号、和用于电路342的输出移位寄存器的数据加载信号和输出移位信号,控制器341向串行输入电路343提供用于输入移位寄存器345的输入移位信号和用于输出缓冲区346的输出允许信号。串行监控总线读/写信号在读总线操作期间为高,在写总线操作期间为低。
当一个从控制器341到输出移位寄存器344的数据加载信号被设置,一个起始位(固定值为低)、地址位A〔1〕到A〔19〕,串行监控总线读/写信号,串行监控总线字节允许信号,串行监控总线数据信号被从LSB加载到输出移位寄存器344。当到寄存器344的输出移位信号被设置,寄存器344中的值以MSB向LSB移动一位。MSB被置为高。输出移位寄存器344的LSB的值由输出信号SDA0来进位。
当从控制器341到输入移位寄存器345的输入信号被设置,寄存器345的值从LSB向MSB移动一位,输入信号SDI的值被置于LSB中。
图21中的串行监控总线电路34的操作将被解释如下:
当处理器内核20在调试方式下存取从0XFF200000到0XFF2F-FFFF这个区域;或当协处理器在调试方式下执行读/写操作(CTC0,CFC0),通过串行监控总线电路34存取调试器60中的存储器。使用串行监控总线的写操作期间。电路34以串行方式一位一位地提供一个地址信号,一个总线控制信号和一个数据信号做为输出信号SDA0在读操作期间,电路34以串行方式一位一位地提供一个地址信号,一个总线控制信号做为输出信号SDA0。并接收通过输入信号SDI进位的数据。
串行监控总线电路34的操作按照时钟信号CLD2进行。CLK2是通过将处理器内核20的操作时钟信号CLK进行一次分频得到的。
a)通过读/写总线操作存取
在读总线操作期间,处理器内核20提供地址A〔31:0〕来存取和设置信号RD*、当读确认信号RDACK*被设置时,数据DIN〔31:0〕被读出并且总线操作结束。
在写总线操作期间,处理器内核20发送一个存取地址A〔31:0〕和一个要写入的数据〔31:0〕并设置信号WR*。当写确认信号WRACK*被设置时,总线操作结束。
若在调试方式下,处理器内核20对下面提到的监控区域执行总线操作,那么调试器60通过串行监控总线电路34被访问。
监控区域在0XFF20-0000与0XFF2F-FFFF之间扩展了1兆。
(A〔31:20〕)=1111-1111-0010(0:低,1:高)
例如,写总线操作用存储指令(SW)操作将数据写入存储器。下面是一个存储指令的例子:
SW r8 0X0004(r9)
在这个例子中,一个存储器地址是通过向通用寄存器r9加一个16位偏移量0X0004来获得。要访问监控区域,通用寄存器的值必须提前设置到0XFF20-0000到0XFF2F-0000之间。
串行监控总线电路34,从低位中提供地址信号A〔19:2〕,在读操作期间提供高电平信号或在写操作期间提供低电平信号作为输出信号SDA0。此后,字节允许信号BE〔3:0〕*从低位开始提供。在读操作期间,32位数据做为输入信号SDI被接收,并以数据DIN〔31:0〕提供给处理器总线80。在写操作期间,从处理器总线80来的数据D0UT〔31:0〕由输出信号SDA0来进位。
从处理器内核20来的18位地址信号A〔19:2〕、用来存取1兆的内存空间。
处理器内核20的字节允许信号BE〔3:0〕送到串行监控总线,用以存取一个字节、半个字或三个字节,即使是进行字节、半字或三字节访问时,串行总线仍然传送32位的数据D〔31:0〕。当写字节、半字或三字节数据时,信号BE〔3:0〕中与数据D〔31:0〕中有用字节对应的位将被设置。在进行读操作时,与信号BE〔3:0〕中非有效位对应的字节将被微处理器内核20忽略。
如果DCR寄存器的MP位为1,监控区处于调试方式的保护之下,则对从FF20-0000到FF2F-FFFF区域内的写操作将被忽略。在这种情况下,串行监控总线电路34只向微处理器内核20返回VVRACK*信号,用以终止总线操作。
在调试方式下,当读取FF20-0000至FF2F-FFFF区的数据时,将从串行监控总线得到正确的数值,而不必考虑MP位的值。
在正常方式下,对FF20-0000至FF2F-FFFF监控区的写操作将被忽略,而且读操作的结果是不确定的。此时串行监控总线电路34返回WRACK*或RDACK*信号到处理器内核20并结束总线操作。
b)协处理器总线操作的存取(CTC0/CFC0)
当执行CFC0指令时,处理器内核20执行协处理器的读总线操作,而执行CTC0指令时,是协处理器的写总线操作。在协处理器总线操作时,CFC0和CTC0指令被提供给处理器总线的地址A〔31:0〕,如下所示:
A〔31:0〕 COP0 CT rt rd 0
A〔31:0〕 COP0 CF rt rd 0
CFC0(0:低电平,1:高电平)
rt:通用寄存器
rd:协处理器的控制寄存器(对于串行监控无意)
在协处理器读操作时,处理器内核20设置CPRD*信号,而当协处理器读确认信号CPRDACK*被设置时,读取数据DIN〔31:0〕并结束总线操作。
在协处理器写操作时,处理器内核20设置CPWR*信号,并提供一个处理器内核20中的通用寄存器的值,做为数据总线信号D0UT〔31:0〕。当协处理器写确认信号CPVVRACK*设置时,处理器内核20结束总线操作。
处理器内核20用指令CTC0和CFC0执行协处理器总线操作,通过串行监控总线存取调试器60。
串行监控总线电路34提供每个周期传送一位的总线周期信号,做为输出信号SDA0。处理器内核20的地址信号A〔19:2〕从低位提供。此后,在协处理器读操作时,是一个高电平信号,而协处理器的写操作时是低电平信号。串行监控总线的字节允许信号是四个时钟周期的低电平信号,与处理器总线的BE〔3:0〕信号无关。
对CFC0指令的响应是接收32位的输入信号SDI并作为数据信号DIN〔31:0〕提供给处理器总线。而对CTC0指令的响应是把处理器总线的输出信号D0UT〔31:0〕作为输出信号SDA0。
在调试方式下,串行监控总线的写操作按照CTC0指令执行,不考虑监控区的保护,即不考虑DCR寄存器MP位的值。同样地,串行监控总线的读操作按照指令CFC0执行。
在正常方式下,根据CTC0指令,写操作将被忽略,根据CFC0指令读操作的结果则是不确定的,调试模块只返回CPRDACK*和CDWRACK*信号到处理器内核20并结束总线操作。
串行监控总线操作的时序图解释如下:
a)串行监控总线的读操作。
图22是串行监控总线读操作的时序图。
(1)在周期1中,处理器内核20启动0XFF2F-FFFF到0XFF2F-FFFF(A〔31:20〕=1111-1111-0010)的读操作,处理器内核20提供地址A〔31:0〕进行存取并设置信号RD*,同时设置用于指明所读字节位置的字节允许信号BE〔3:0〕。
(2)在周期2中,串行监控总线电路34确认启动读操作,并提供由时钟信号CLK2形成的一个时钟周期的低电平信号作为输出信号SDA0,CLK2是通过内核时钟信号CLK=分频得到的。
(3)在周期3到25中,电路34提供地址位A〔2〕到A〔19〕,一个高电平位(指明读操作),和处理器内核20的字节允许位BE〔0〕*到BE〔3〕*作为输出信号SDA0,每个CLK2的周期传一位。
(4)在周期n中,调试器60在输出数据前提供一个时钟周期的低电平,作为信号SDI。在接收到低电平信号后,电路34在周期n+1到n+32中,以每个时钟周期一位和速度接收数据D〔0〕到D〔3〕。
(5)在周期n+33中,电路34向处理器内核20设置确认信号RDACK*并提供所读的32位数据D〔31:0〕,作为数据信号DIN〔31:0〕。
(6)在周期n+33中,处理器内核20读取数据信号DIN〔31:0〕,读操作结束。
b)串行监控总线的写操作。
图23是串行监控总线写操作的时序图。
(1)在周期1中,处理器内核20启动0XFF20-0000至0XFF2F-FFFF(A〔31:20〕=1111-1111-0010)的写操作。处理器内核20提供一个存取地址A〔31:0〕并设置信号WR*,同时设置字节允许信号BE〔3:0〕指明所写数据的字节位置。
(2)在周期2中,串行监控总线电路34确认写操作的开始并提供时钟信号CLK2的一个时钟周期的低电平,作为输出信号SDA0。
(3)在周期3到57,电路34提供地址位A〔2〕到A〔19〕、一个低电平(指明写操作)、字节允许位BE〔0〕*到BE〔3〕*作为输出信号SDA0,并写入由处理器内核20提供的数据D0UT〔0〕到D0UT〔31〕。
(4)在周期n,调试器60结束写数据并提供一个时钟周期的低电平,作为输入信号SDI。
(5)在周期n+1,电路34检测低电平信号并设置写确认信号WRACK*到处理器内核20。
(6)在周期n+1,处理器内核20结束写操作。
c)按指令CFC0进行读总线操作。
图24是根据指令CFC0的读总线操作的时序图。
(1)在周期1,处理器内核20根据指令CFC0启动协处理器读总线操作,向处理器总线提供地址A〔31:21〕=01000000010并设置信号CPRD*。
(2)在周期2,串行监控总线电路34确认读操作的开始并提供由CLK2信号确定的一个时钟周期的低电平信号作为输出信号SDA0。
(3)在周期3到20,电路34提供地址A〔31:21〕的地址位A〔2〕~A〔19〕作为输出信号SDA0。在周期21,输出一个时钟周期的高电平信号指明是读操作。在周期22至25,输出四个时钟周期的低电平信号而不考虑处理器总线的字节允许信号。
(4)在周期n,调试器60在提供数据之前输出一个时钟周期的低电平信号作为输入信号SDI,电路34接收到低电平信号后,在n+1到n+32周期读数据D〔0〕到D〔31〕。
(5)在周期n+33,电路34设置协处理器读确认信号CPRDACK*到处理器内核20,并提供数据总线信号DIN〔31:0〕和要读取的32位数据D〔31:0〕。
(6)在周期n+33,处理器内核20读信号DIN〔31:0〕并结束协处理器读总线操作。
d)根据指令CTC0的写总线操作。
图25是根据CTC0指令进行写总线操作的时序图。
(1)在周期1,处理的内核20根据指令CTC0启动协处理器写总线操作,提供一个处理器总线地址A〔31:21〕=0100-0000-110,并设置信号CPWR*。
(2)在周期2,串行监控总线电路34确认写操作的开始并提供一个由信号CLK2确定的一个时钟的低电平,作为输出信号SDAO。
(3)在周期3到20,电路34提供地址A〔31:21〕的地址位A〔2〕至A〔19〕作为输出信号SDA0。在周期21,输出一个时钟周期的低电平信号指明为写操作。在周期22至25,输出信号SDA0变为四个时钟周期的低电平信号而不考虑处理器总线的字节允许信号。在周期26至57,输出信号SOAD提供数据总线的输出位IDOUT〔0〕至IDOUT〔31〕。
(4)在周期n中,调试器60完成写数据并提供一个时钟的低电平作为输入信号SDI。
(5)在周期n+1,电路34检测该低电平信号,并设置协处理器写确认信号CPWRCK*到处理
(6)在周期n+1,处理器内核20结束协处理器写总线操作。
图26是串行监控总线控制器341的操作的流程图。
控制器341监控处理器总线80的操作。
(1)在步骤S120,S124和S125,串行监控总线读操作启动,因为,有一个地址A〔31:20〕=0XFF2,读电平RD*(低)被设置,信号DM是高电平指明为调试方式。
(2)在步骤S120,S124,S132和S133,设置处理器内核20的RDACK信号以结束总线操作,尽管A〔31:20〕=0XFF2并设置了RD*信号(低电平),但因为DM信号为低电平,则表示正常方式。
(3)在步骤S120、S121,S126和S127,串行监控总线的写操作启动,因为A〔31:20〕=0XFF2,写信号WR*(低)被设置,信号DM为高指明是调试方式,而且寄存器DCR的MP位为0,指明为写允许状态。
(4)在步骤S120、S121,S126,S134和S135,设置微处理器内核20的WRACK*信号结束总线操作。尽管A〔31:20〕=0XFF2并且设置了写信号WR*(低),但因为信号DM为低指明为正常方式,或寄存器DCR的MP位为1指明为写禁止状态。
(5)在步骤S120、S122,S128和S129,串行监控总线的协处理器读操作开始,因为A〔31:21〕=0100-0000-010,用于指令CFC0的协处理器读总线信号CPRD*被设置,而且信号DM为高指明为调试方式。
(6)在步骤S120,S121,S128,S136和S137,处理器内核20的CPRDACK*信号被设置,则结束总线操作。虽然A〔31:21〕=0100-0000-010且用于指令CFC0的CPRD信号(低)被设置,但是,因为信号DM为低,指明是正常方式。
(7)在步骤S120,S121,S122,S123,S130和S131,串行监控总线的协处理器读操作启动,因为A〔31:21〕=0100-0000-110,指令CTC0的协处理器写总线操作信号CPWR(低)被设置,且信号DM为高指明为调试方式。
(8)在步骤S120,S121,S122,S123,S138和S139,设置处理器内核20的CPWRACK*信号以结束总线操作。尽管A〔31:21〕=01D0-0000-110且设置了指令CTC0的信号CPWR*(低),但因为信号DM为低说明是正常方式。
图27是串行监控总线电路34进行读操作的流程图。
在读操作中,串行监控总线控制器341在周期1中,向输出移位寄存器344提供:高电平的串行监控总线读/写信号,串行监控总线字节允许信号BE〔3:0〕和高电平的串行监控总线数据信号,并设置一个数据装入信号。
根据指令CFC0,在协处理器读总线操作中,串行监控总线控制器341向输出移位寄存器344提供:高电平的串行监控总线读/写信号,低电平的字节允许信号,高电平的串行监控总线数据信号,并设置数据装入信号。移位寄存器334锁存这些值和位于LSB的低电平信号。
输出信号SBA0置为低,控制器341在周期2中,设置输出移位信号。
从周期3至周期25,控制器341设置输出移位信号。寄存器344在周期1锁存的位,以每个时钟周期一位的速度送出,作为输出信号SDA0。
从周期26至周期n,控制器341等待被设置的输入信号SDI变为低电平。
从周期n+1至周期n+32,控制器341设置输入移位信号到串行输入电路343,而输入信号SDI送输入数据D〔0〕至D〔31〕再到输入移位寄存器345。
在周期n+33,控制器341在读操作中,设置处理器总线的读确认信号RDACK*。在协处理器读总线操作中,控制器341设置协处理器读确认信号CPRDACK*。输出允许信号到串行输入电路343被设置,输入寄存器345中的数据D〔31:0〕由数据总线输入信号DIN〔31:0〕传送。
图28是串行监控总线电路34写操作的流程图。
在写操作中,串行控制总线控制器341在周期1中,向输出移位寄存器344提供低电平的串行监控总线读/写信号,串行监控总线字节允许信号BE〔3:0〕和串行监控总线的数据信号DOUT〔31:0〕,并设置数据装入信号。
根据指令CTC0在协处理器的写总线操作中,控制器341向寄存器提供低电平的串行监控总线读/写信号,4位低电平的串行监控总线字节允许信号和串行监控总线数据信号DOUT〔31:0〕,并设置数据装入信号。寄存器344在周期1锁存这些数值和位于LSB的低电平信号。
在周期2,输出信号SDA0置为低,控制器341设置输出移位信号。
从周期3至57,控制器341设置输出移位信号。寄存器344在周期1锁存的数据由输出信号SDA0以每个时钟周期一位的速度传送。
从周期58至n,控制器341等待被设置的输入信号SDI变为低。
在周期n+1,控制器341在写操作中,向处理器总线设置写确认信号WRACK*,若为协处理器总线操作,控制器341设置协处理器写确认信号CPWRACK*。
下面介绍程序计数器跟踪器32。
间接跳转,直接跳转和转移定义如下:
间接跳转
跳转的目标地址是存贮于寄存器或内存中的值,也就是,跳转指令本身不指明跳转的目标地址。
直接跳转
跳转指令的目标地址由程序计数器和指令中的编码确定。
转移(或条件转移)
这一类跳转指令的目标是由程序计数器与指令中几部分代码和共同确定。转移是否实际执行取决于条件,若转移被实际执行则称之为“进入转移”,否则称为“末进入转移”。
图29是程序计数器跟踪器32的详图。
跟踪器32接收来自处理器内核20下列信号:
调试方式信号DM
该信号说明当前方式是调试方式还是正常方式。
流水线执行信号
该信号指示指令的执行。
30位的目标程序计数器〔31:2〕信号
这些信号指明转移或跳转指令的目标地址或是异常处理的向量地址。当设置间接跳转、直接跳转、转移进入和异常发生信号时,则该信号有效。
间接跳转信号
该信号表示执行了一个间接跳转。
直接跳转信号
该信号表示执行了一个直接跳转。
转移进入信号
该信号表示执行了一条转移指令并进入转移。
异常发生信号
该信号表示异常已经发生。
跟踪器32向处理器内核20提供如下信号以全面跟踪程序计数器。
流水线失速请求信号
该信号阻塞了处理器内核20的流水线处理,从而完全地让目标程序计数器产生输出。当跟踪器32正在接收目标程序计数器的间接跳转信号时发生了下一个间接跳转,则跟踪器32设置流水线失速请求信号,停止处理器内核20的流水线处理。一旦目标程序计数器的信号完成流水线失速请求信号被取消,灰复流水线处理。
跟踪器32接收来自指令/数据地址断点电路31或处理器总线断点电路33的触发请求。跟踪器32接收DCR寄存器的TM位和调试允许信号DBGE*。若DBGE*信号被设置为低电位,它表示调试器60有效。
跟踪器32在正常方式下,把处理器内核20提供的程序计数器跟踪信息转换成一位的程序计数输出TPC和一个三位状态信号PCST〔2:0〕,供调试器60使用。
下面说明信号PCST〔2:0〕和TPC
a)PCST〔2:0〕
指令的执行状态由信号PCST〔2:0〕以每个时钟一位的速度传送(0:低,1:高)。
111:流水线失速状态(STL)
该状态说明当没有跟踪触发请求时,则指令的执行尚未完成。
110:转移/跳转进入状态(JMP)(用程序计数器输出)
该状态表示执行了进入转移或跳转指令,且目标地址将由信号TPC传送。
101:转移/跳转进入状态(BRT)(没有程序计数器输出)
该状态表明执行了进入转移或直接跳转指令,但信号TPC不传送目标地址。
100:异常状态(EXP)(异常向量码输出)
该状态表示出现了一个异常,异常处理的向量码将由信号TPC传送。
011:顺序执行状态(SEQ)(指令执行)
该状态表示在JMP,BRT或TSQ状态下执行指令。当转移指令没有进入时也建立这一状态。
010:流水线失速中的跟踪触发器输出状态(TST)
该状态表明地址跟踪触发器或处理器总线跟踪触发器在指令仍在执行中的一个时钟周期发生了请求。
000:调试方式(DBM)
在正常方式下不能达到该状态。
信号TPC用来提供转移或跳转指令的目标地址。在信号PCST〔2:0〕指明状态″110″(JMP)的时钟周期里,目标地址从低位A〔2〕开始以每个时钟周期一位的速度传送。在信号PCST〔2:0〕指明状态″100″(EXP)的时钟周期时,一个三位的异常向量从低位开始按代码(0),代码(1),代码(2)的顺序以每个时钟一位的速度传送。异常向量地址和三位代码如下所示:
向量地址代码(2:0)
Reset,Nmi BFCO-00004(100)
UTLB(BEV=0)8000-00000(000)
UTLB(BEV=1)BFCO-01006(110)
其它(BEV=0)8000-00801(001)
其它(BEV=1)BFCO-01807(111)
由于目标地址由信号TPC一位一位地按顺序发送,在当前转移/跳转指令正由TPC信号传送时,可能发生下一条转移指令,跳转指令或异常,TPC信号传送的目标地址的优先权如下:
a)当传送目标程序计数器信号时,产生了一个新的间接跳转指令,则停止当前的目标程序计数器信号,开始新的间接跳转指令的目标程序计数器信号。
b)当传送目标程序计数器信号时发生了异常,则挂起目标程序计数器信号,传送三位的异常向量码,然后灰复被挂起的信号。
c)当传送目标程序计数器信号时发生了新的直接跳转或转移指令,不传送直接跳转或转移指令的目标地址。只有当不传送目标程序计数器信号时,才能传送直接跳转或转移指令的目标程序计数器信号。
下面结合图示介绍程序计数器跟踪输出的示例。
(例1)转移指令的程序计数器跟踪。
图30是用于转移指令程序计数器跟踪信号的示例。
当第一个进入的转移指令〃beq″执行时,输出信号TPC没有传送目标程序计数器信号,信号PCST〔2:0〕指明状态TMP,信号TPC开始为指令″beq″传送目标程序计数器信号,作为对非进入转移指令″bne″的响应,信号PCST〔2:0〕指明状态码SEQ,作为对再次进入转移指令″bne″的响应信号TPC并不传送目标程序计数器信号,因为信TPC正为第一条转移指令″beq″传送目标程序计数器信号。这时,信号PCST〔2:0〕指明状态为BRT。
(例2):间接跳转指令的程序计数器跟踪。
图31是用于间接跳转指令的程序计数器跟踪信号示例。
作为对第一条间接跳转指令″jr1″的响应,信号PCST〔2:0〕指明状态为JMP,信号TPC开始传送目标程序计数器信号。作为对非进入转移指令″bne″的响应,信号PCST〔2:0〕指明状态为SEQ,作为对第二条间接转移指令″jr2″的响应,信号TPC停止传送第一条间接跳转指令″jr1″的目标程序计数器信号,开始为第二条指令″jr2″传送目标程序计器信号。这时,信号PCST〔2:0〕指明状态为JMP。
(例3)异常和间接跳转指令的程序计数器跟踪。
图32是异常和间接跳转指令的程序计数器跟踪示例。
作为对软件断点指令″break″的响应,产生一个异常,信号PCST〔2:0〕指明状态为EXP,这时,信号TPC开始传送异常向量代码,在非进入转移指令″bne″,信号PCST〔2:0〕指明状态SEQ,在间接跳转指令″jr2″,信号TPC传送用于″jr2″指令的目标程序计数器信号,该信号PCST〔2:0〕指明状态JMP。
下面介绍信号PCST〔2:0〕的跟踪触发状态TSQ或TST。
当地址和数据在同一总线周期出现时,发生一个指令/数据地址断点或处理器总线断点,产生一个表示状态TSQ或TST的信号PCST〔2:0〕。
当指令地址跟踪触发请求、数据地址跟踪触发请求或处理器总线跟踪触发请求产生时,信号PCST〔2:0〕指明状态为TSQ或TST。若信号PCST〔2:0〕可能在将要表明状态SEQ或STL的时钟周期里指明状态TSQ或TST。
a)指令/数据地址跟踪触发发生时,信号PCST〔2:0〕指明状态为TSQ。若跟踪触发由进入转移指令、跳转指令或不使信号PCST〔2:0〕指明状态SEQ的指令产生时,跟踪触发的输出将被推迟。若没有跟踪触发请求,信号PCST〔2:0〕在即将表示状态SEQ或STL的时钟周期里,表示状态TSQ或TST。
(例1)指令/数据地址跟踪触发示例。
图33是指令/数据地址跟踪触发的示例。
作为对产生指令跟踪触发或数据地址跟踪触发或数据地址跟踪触发的指令″add″的响应,信号PCST〔2:0〕指明状态TSQ。
(例2)由异常引起的指令/数据地址触发的示例。
图34是由异常引起的指令/数据地址触发的示例。
如果软件断点″break″产生时了指令地址跟踪触发或数据地址跟踪触发,信号PCST〔2:0〕指明状态EXP,在下一个时钟周期,指明用于流水线失速的跟踪触发状态TST。
(例3)由间接跳转指令引起的指令/数据地址跟踪触发的示例。
当间接跳转指令″jr2″引起指令地址跟踪触发或数据地址跟踪触发时,信号PCST〔2:0〕指明状态为JMP。在下一个时钟周期里,指明用于指令执行条件的跟踪触发状态TSQ。
b)处理器总线跟踪触发
当发生一个处理器总线跟踪触发请求时,信号PCST〔2:0〕指明状态TSQ或TST。若信号PCST〔2:0〕正指明状态JMP、BRT或EXP时,跟踪触发状态TSQ或TST将被推迟,若没有跟踪触发请求时,信号PCST〔2:0〕将在本应指明状态SEQ或STL的下一个时钟周期里指明状态为TSQ或TST。
下面介绍调试方式状态DBM的产生
若处理器内核20引起一个调试异常或调试复位,则设置高电平的调试方式信号DM进入调试方式。然后,跟踪器32提供信号PCST〔2:0〕表明调试方式状态DBM。
图36是当调试异常出现时,信号PCST〔2:0〕的输出时间图。
当没有提供目标程序计数器信号时,在引起调试异常的指令结束后,立即启动调试方式,提供出调试异常发生前的程序计数器跟踪信息。
图37是当调试异常发生时,传送目标程序计数器信号的PCST〔2:0〕的时序。
在这种情况下,在目标程序计数器信号结束后,启动调试方式,提供出直到调试异常即将发生前的指令的程序计数器跟踪信息。当目标程序计数器信号传送的同时,信号PCST〔2:0〕指明状态为STL。
图38是从调试方式返回时信号PCST〔2:0〕的时序。
调试方式一直持续到由调试异常或调试方式发送的返回指令DERET的转移延迟间隙指令出现为止。正常方式从DERET指令的一条目标指令开始,启动程序计数器跟踪。
回到图29,解释跟踪器32。
跟踪器32有一个程序计数器跟踪控制器321,一个目标程序计数移位寄存器322,一个异常向量编码器323,一个异常编码移位寄存器324和一个选择器325。
控制器321还有一个异常编码输出状态位326和一个目标程序计数器输出计数器329。
下面说明跟踪器321的操作。
表3是当寄存器DCR的TM位为0时,信号PCST〔2:0〕的输出。在表3中,″1″表示有效状态,″X″表示″无关″状态。
表3
调试方式信号DM | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | |||
间接跳转信号 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | × | × | |||
直接跳转信号 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | × | × | |||
转移进入信号 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | × | × | |||
异常发生信号 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | × | × | |||
流水线执行信号 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | × | × | |||
触发请求信号 | 0 | 0 | × | × | × | × | 1 | 1 | 1 | 0 | |||
提供TPC或异常码(内部状态) | × | × | × | 1 | 0 | 1 | 0 | × | × | × | × | 1 | 0 |
PCST[2:0]输出 | STL | SEQ | EXP | BRT | JMP | BRT | JMP | JMP | TST | TSQ | TST | STL | DBM |
在该表中,触发请求信号是指令地址跟踪触发请求信号,数据地址跟踪触发请求信号和处理器总线跟踪触发请求信号的″或″。
当五位的计数器327非0时,它表示正在传送信号TPC。当异常代码输出状态位326为1时,传送异常量时代码。在表3中,当计数器327非0或异常代码输出状态位326为1时,则内部状态″输出TPC或异常代码″为1。计数器327以如下方式更新:
(1)当信号TPC不传送目标程序计数器信号,或者新的程序计数器信号将被传送时,计数器327被请零。
(2)当信号TPC正传送异常向量,内部状态指明正在传送程序计器信号时,计数器327保持不变。
(3)当计数器327达到30时将被清零。表明目标程序计数器输出完成。
(4)除(1)、(2)、(3)的其它情况下,计数器327自增加1。此时,信号TPC正在传送目标程序计数器信号。
当异常发生时,在三个时钟周期内,异常代码输出状态位326设置一个表示正在传送异常代码的内部状态。设置状态位326后,异常代码移位信号和异常代码输出开关信号也被设置。当信号PCST〔2:0〕指明状态EXP时,异常代码装入信号被设置。此时,异常向量编码器323的输出装入到异常代码移位寄存器324中,设置目标程序计数器装入信号,信号PCST〔2:0〕指明状态JMP。然后,目标程序计数器的值装入到目标程序计数器移位寄存器322中。当计数器327非0,且状态位326未设置时,则目标程序计数器移位信号被设置。
当DCR寄存器的TM位为1时,程序计数器跟踪彻底结束。若信号DBGE*置,则TM位置位,而且在传送用于间接跳转指令的目标程序计数器信号时,发生了下一条间接跳转指令,则控制器321设置流水线失速请求信号,以停止处理器内核20的流水线处理。当前的目标程序计数器传送结束后,流水线失速信号取消并灰复流水线操作。
表4是TM位为1时,信号PCST〔2:0〕的输出。在表4中,″1″表示有效状态,″X″表示″无关″状态。
表4
调试方式信号DM | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | ||||
间接跳转指令 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | × | × | ||||
直接跳转指令 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | × | × | ||||
转移进入指令 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | × | × | ||||
异常发生信号 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | × | × | ||||
流水线执行信号 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | × | × | ||||
触发请求信号 | 0 | 0 | × | × | × | × | 1 | 1 | 1 | 0 | ||||
传送目标程序计数器或异常代码(内部状态) | × | × | × | 1 | 0 | 1 | 0 | 1 | 0 | × | × | × | 1 | 0 |
PCST[2:0]输出 | STL | SEQ | EXP | BRT | JMP | BRT | JMP | STL | JMP | TST | TSQ | TST | STL | DBM |
流水线失速请求信号 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
在传送目标程序计数器信号时,或异常代码过程中,由于执行间接跳转指令而使间接跳转信号有效时,对处理器内核20的流水线失效请求被激活。指明目标程序计数器信号或异常代码正在传送的内部状态,在目标程序计数器信号开始后的30个时钟周期里为激活态。
当控制器321的目标程序计数器装入信号被设置时,目标程序计数器移位寄存器322装入目标程序计数器的输出值。当控制器321的目标程序计数器移位信号被设置时,寄存器322把它的值每次一位地从MSB移向LSB。
异常向量编码器323,根据向量地址的位A〔29〕,A〔8〕和A〔7〕编码出的异常向量地址。如下所示:
向量地址 | (A29,A8,A7) | 编码 | |
Reset,NmiUTLB(BEV=0)UTLB(BEV=1)其它(BEV=0)其它(BEV=1) | BFC0-00008000-0000BFC0-01008000-0080BFC0-0180 | (100)(000)(110)(001)(111) | 40617 |
编码器323把目标程序计数器输出的地址位A〔29〕,A〔8〕和A〔7〕传送到异常代码移位寄存器324中。
当控制器321的异常代码装入信号设置时,寄存器从编码器323中装入异常向量代码,当控制器321的异常代码移位信号设置时,异常代码移位寄存器324中的值一位一位地从MSB移向LSB。
当控制器321异常代码输出开关信号置位时,选择器325向信号TPC提供寄存器324的LSB。当异常代码输出开关信号取消时,选择器325向信号TPC提供寄存器322的LSB。
将用参考时间图解释跟踪器32的操作。
图39是当提供了一个目标程序计数器信号时,跟踪器32的操作。
当计数器327保持″0″并且一个间接跳转信号,或直接跳转信号,或进入转移信号被设置时,则控制器321设置目标程序计数器装入信号。
在下一个时钟,LSB,即被装入到寄存器322的目标地址A
〔2〕被送给信号TPC。同时,信号PCST〔2:0〕指示状态JMP,控制器321设置目标程序计数器移位信号,结果,寄存器322由MSB向LSB移一位且在下一时钟A〔3〕位提供给信号TPC。目标程序计数器移位信号不断地设置,把程序计数器的输出提供给信号TPC,直到计数器327计数到30为止。当计数器327计满30时,被清0,并且目标程序计数器移位信号被取消,结束目标程序计数器对信号TPC的输出。
图40是当下一个间接跳转出现,同时目标程序计数器信号被提供时,跟踪器322的操作。
当第二个间接跳转出现时,计数器327被清0,目标程序计数器装入信号被设置。在下一个时种,则LSB,即被装入到寄存器322的目标地址A〔2〕位被送往信号TPC。同时,信号PCST〔2:0〕指示状态JMP,且控制器321设置目标程序计数器移位信号。从下一个时钟起,每个周期目标地址都传送给信号TPC。
图41是在提供了目标程序计数器信号,出现异常时的操作时间图。
当一个目标程序计数器信号正在传送时,异常出现信号被设置,则异常代码装入信号也被设置,把异常代码装入到异常代码移位寄存器324中,从下一个时钟起,异常代码输出状态位326、异常代码移位信号和异常代码输出开关信号被设置,用三个时钟周期传送异常代码。在此期间,目标程序计数器移位信号无效。当状态位326和异常代码开关信号取消时,信号TPC重新传送目标程序计数器信号。
图42是外部接口电路36的详图。
外部接口电路36有一个DBM代码测试器361,选择器362和363,屏蔽电路364,365和366,输出缓冲器367A367B和367C,上拉电阻输入缓冲器368A、368B和368C以及输入缓冲器369A和369B。
当信号PCST〔2:0〕指明调试方式状态DBM(000),则DBM代码测试器361设置一个输出信号。
当DBM代码测试器361的输出被设置,即它是调试方式时,则选择器362提供分频时钟信号CLK2。当DBM代码测试器361输出无效时,即它是正常方式时,则选择器362提供内核时钟CLK。
当DBM代码测试器361的输出被设置,即它是调试方式,则选择器363提供串行监控总线34的输出SDAD;当DBM代码测试器361输出无效时,即它是正常方式,则选择器363提供跟踪器32的信号TPC。
在调试方式下,屏蔽电路364屏蔽外部输入信号DINT*/SDI,使得输入到处理机内核20的信号KINT*总是无效。
当寄存器DCR的MINT位为0时,屏蔽电路365对处理机内核20置位信号Int〔5:0〕,得以屏蔽中断。
当寄存器DCR的MRST位是0时,在调试异常处理器执行期间(信号DM为高),则屏蔽电路366屏蔽用户复位信号RESET*。
输出缓冲器367A向外提供选择器362的输出作为信号DCLK;输出缓冲器367B向外提供选择器363的输出作为信号TPC/SDAD;输出缓冲器367C向外提供跟踪器32的信号PCST〔2:0〕作为外部信号PCST〔2:0〕。
上拉电阻输入缓冲器368A接收外部信号DINT*/SDI,由于该缓冲器有上拉电阻,所以,当外部信号DINT*/SDI断开时,则输出总是高电平。上拉电阻输入缓冲器368B接收外部信号DBGE*,由于该缓冲器有上拉电阻,所以,若外部信号DBGE*断开时,同输出总是高电平。上拉电阻输入缓冲器368C接收外部信号DRESET*,由于该缓冲器有上拉电阻,所以,当外部信号DRESET*断开时,则输出总是高电平。
当调试器60断开时,则外部信号DINT*/SDI,DBGE*和DRESET*也断开,然后,这些信号成为高电平内部信号,因而,调试方式的功能被禁止。
输入缓冲器369A接收外部中断信号INT〔5:0〕*,输入缓冲器369B接收外部用户复位信号RESET*。
图44示出根据本发明的另一实施例的微处理器和调试系统。
这个实施例的特征在于微处理器10与存贮器90和外围电路100结合在一起,这个实施例的其它安排则与第一实施例相同。
处理机内核20通过内部处理器总线80读存贮器90的程序,执行读程序,从存贮器90读数据或把数据写入存储器,并访问外围电路100。在调试方式时,处理机内核20通过调试模块30执行调试器60的监控程序。
如果调试模块30和调试器60的功能和接口信号的定时彼此相同,则第一实施例的调试器60将被用于第二实施例,而不必考虑联合存贮器90和外围电路100的差异。
如果第二实施例的微处理机内核20的功能与第一实施例的相同,则与第一实施例相同的监控程序将用于第二实施例。
上述两个实施例使用各自的指令/数据地址断点通道和处理器总线断点通道。本发明则不受这种安排的限制,可以使用两个或多个通道。图43示出涉及15个指令地址断点通道的寄存器IBS。
上述两个实施例使用各自的具有位宽一位的串行监控总线。本发明不受这种安排的限制。如果许多微处理器外部信号都用于串行监控总线,则位宽可以是两倍或更多位。
上述两个实施例使用各自的外部信号,用于传送目标程序计数器的输出。本发明不受这种安排的限制。目标程序计数器的输出可由多个外部信号传送(如果多个外部信号可以得到的话)。
根据上述的两个实施例,时钟发生器37对用于处理机内核的时钟信号CLK二分频。本发明则不受这个限制。串行监控总线电路的时钟信号的频率可以和时钟信号的相同,或整数倍或倍数2的乘方。
如上所述,本发明能使调试器的硬件与许多功能共享,并减少了连接到调试器的信号的数量。而现有技术必须采用例如30个地址信号、4个字节允许信号、1个读信号、1个写信号、1个读确认信号、1个写确认信号、32个数据信号,总共70个信号将用户目标系统连接到调试器。换言之,本发明只用8个信号将用户目标程序系统连到调试器,从而使插针数量降到最低限度并降低成本。
根据本发明,一个用户目标系统的微处理器访问存贮器和I/O单元,为了为调试器定时提供方便的条件,与调试器无关的信号不受调试的影响。如果微处理器的运行速度太高,本发明能够降低调试工具与微处理器之间的通信速度。
与图2的现有技术相比,本发明把监控程序存放在调试器的存贮器中,而没有使用用户存贮器。为了启动监控一个目标系统,本发明使用专用的调试异常和调试复位,而不限制用户中断。用户目标系统无需具有用于调试的串行接口,本发明能使用硬件断点。
与图3的现有技术相比,本发明无需在微处理器上安装定序器来简化用于调试的逻辑电路。由于本发明使用监控程来访问寄存器,所以只要修改监控程序便可访问附加的寄存器。
总之,本发明提供了一个带有调试功能的用户目标系统的微处理器,从而减少了用于连接目标系统与调试器的信号。在调试过程中,本发明运行目标系统的微处理器,使得便于访问目标系统的存贮器和输入/输出部件。
根据本发明,在正常方式下,当用户程序运行时,调试工具和调试模块中的寄存器是不可访问的,使得调试工具的存贮器和寄存器决不会被用户程序破坏,从而提高了系统的可靠性。
即使在调试方式启动之后,本发明也禁止访问调试工具和调试模块的控制寄存器。当一个启动调试方式的调试异常出现时,如果用户程序对调试工具或调试模块的控制寄存器的写操作不完全,通过置位寄存器DCR的MP位来禁止写操作,这就避免了用户程序对调试工具的存贮器和寄存器的破坏,从而提高了调试系统的可靠性。
根据本发明在调试方式下,根据指令CTCO对调试工具的写操作总是允许进行,而无需考虑MP位的值。由于监控区的地址与写指令的存贮器是分开准备的,所以无需使用通用寄存器。
因此,通用寄存器的内容将不会被写操作破坏,它的值也可以在调试异常出现之后存入调试工具的存贮器中。这样,本发明的调试工具决不会破坏用户通用寄存器的内容。
本发明提供一个带有调试功能的用户目标系统的微处理器,使得消除了用于传送程序计器输出的接口信号。
本发明提供了一个带有调试功能的用户目标系统的微处理器,以最少的硬件实现触发功能。
对于那些熟练的技术人员,在领会了本公开秘密的学习之后,因此,在不离本技术领域的情况下,进行各种各样的改进将是完全可能的。
Claims (2)
1.一种微处理器,其特征在于,包括:
一个处理机内核,经由一个内部调试接口和处理机总线连接到一个调试模块,用于执行程序,所述的调试模块包括:一个中断电路和一个程序计数器跟踪器,
所述的中断电路,用以在一个存取地址与一个设定的地址相符合时或在一个存取地址和数据与一个设定地址和数据相符合时,产生一个中断请求或设置一个触发请求信号送到所述的处理机内核;和
所述的程序计数器跟踪器,用于提供一个外部状态信号,用于指示在所述的中断电路设置所述触发请求信号之后该触发请求信号已经发出。
2.根据权利要求1的微处理器,其特征在于,所述的程序计数器跟踪器对所述的处理机内核的内部状态编码,提供所述外部状态信号,用以指示编码的内部状态;
当所述的处理机内核处于第一内部状态并且所述的触发请求信号已被设置时,所述的第一内部状态对应于正在执行一条跳转指令或产生了一个异常,所述的程序计数器跟踪器提供所述外部状态信号,用于指示没有触发请求的内部状态,此时不考虑已设置的触发请求信号;和
当所述的处理机内核处于第二内部状态并且所述的触发请求信号已被设置时,所述的第二内部状态对应于正在顺序地执行指令或引起了流水线失速,所述的程序计数器跟踪器提供所述外部状态信号,用于指示有触发请求。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP32899394 | 1994-12-28 | ||
JP328993/1994 | 1994-12-28 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB011440112A Division CN1316368C (zh) | 1994-12-28 | 1995-12-28 | 微处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1540518A CN1540518A (zh) | 2004-10-27 |
CN1279449C true CN1279449C (zh) | 2006-10-11 |
Family
ID=18216413
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100386728A Expired - Lifetime CN1279449C (zh) | 1994-12-28 | 1995-12-28 | 微处理器 |
CN95120196A Expired - Lifetime CN1122226C (zh) | 1994-12-28 | 1995-12-28 | 微处理器与调试系统 |
CNB011440112A Expired - Lifetime CN1316368C (zh) | 1994-12-28 | 1995-12-28 | 微处理器 |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN95120196A Expired - Lifetime CN1122226C (zh) | 1994-12-28 | 1995-12-28 | 微处理器与调试系统 |
CNB011440112A Expired - Lifetime CN1316368C (zh) | 1994-12-28 | 1995-12-28 | 微处理器 |
Country Status (5)
Country | Link |
---|---|
US (1) | US5978937A (zh) |
EP (1) | EP0720093B1 (zh) |
KR (1) | KR100255026B1 (zh) |
CN (3) | CN1279449C (zh) |
DE (1) | DE69523884T2 (zh) |
Families Citing this family (171)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2752592B2 (ja) * | 1994-12-28 | 1998-05-18 | 日本ヒューレット・パッカード株式会社 | マイクロプロセッサ、マイクロプロセッサ−デバッグツール間信号伝送方法及びトレース方法 |
US5724505A (en) * | 1996-05-15 | 1998-03-03 | Lucent Technologies Inc. | Apparatus and method for real-time program monitoring via a serial interface |
EP0840223B1 (en) * | 1996-10-31 | 2002-05-15 | STMicroelectronics Limited | Microcomputer capable of accessing an external memory |
EP0840222B1 (en) * | 1996-10-31 | 2002-09-11 | STMicroelectronics Limited | Microcomputer with debugging system |
US5983017A (en) * | 1996-11-12 | 1999-11-09 | Lsi Logic Corporation | Virtual monitor debugging method and apparatus |
US6154856A (en) * | 1997-04-08 | 2000-11-28 | Advanced Micro Devices, Inc. | Debug interface including state machines for timing synchronization and communication |
US6189140B1 (en) * | 1997-04-08 | 2001-02-13 | Advanced Micro Devices, Inc. | Debug interface including logic generating handshake signals between a processor, an input/output port, and a trace logic |
US6314530B1 (en) | 1997-04-08 | 2001-11-06 | Advanced Micro Devices, Inc. | Processor having a trace access instruction to access on-chip trace memory |
JP3542463B2 (ja) * | 1997-07-29 | 2004-07-14 | Necエレクトロニクス株式会社 | 集積回路装置、その動作制御方法 |
KR100576006B1 (ko) * | 1997-08-30 | 2006-08-01 | 삼성전자주식회사 | 실시간오퍼레이팅시스템의효율적인온라인디버깅처리및그를위한프로세스스케쥴링방법 |
US6356960B1 (en) | 1997-10-29 | 2002-03-12 | Sgs-Thomson Microelectronics Limited | Microprocessor having an on-chip CPU fetching a debugging routine from a memory in an external debugging device in response to a control signal received through a debugging port |
US6311325B1 (en) * | 1998-10-22 | 2001-10-30 | International Business Machines Corporation | Method and apparatus for profiling processes in a data processing system background of the invention |
US6175914B1 (en) | 1997-12-17 | 2001-01-16 | Advanced Micro Devices, Inc. | Processor including a combined parallel debug and trace port and a serial port |
US6230119B1 (en) * | 1998-02-06 | 2001-05-08 | Patrick Michael Mitchell | Integrated circuit with embedded emulator and emulation system for use with such an integrated circuit |
US6145100A (en) * | 1998-03-04 | 2000-11-07 | Advanced Micro Devices, Inc. | Debug interface including timing synchronization logic |
GB9805479D0 (en) * | 1998-03-13 | 1998-05-13 | Sgs Thomson Microelectronics | Microcomputer |
GB9805486D0 (en) | 1998-03-13 | 1998-05-13 | Sgs Thomson Microelectronics | Adapter |
US6687865B1 (en) | 1998-03-25 | 2004-02-03 | On-Chip Technologies, Inc. | On-chip service processor for test and debug of integrated circuits |
JP3671667B2 (ja) * | 1998-03-31 | 2005-07-13 | セイコーエプソン株式会社 | マイクロコンピュータ、電子機器及びデバッグシステム |
US6438715B1 (en) * | 1998-05-04 | 2002-08-20 | Stmicroelectronics N.V. | Trace operations in an integrated circuit for a disk drive |
US6145123A (en) * | 1998-07-01 | 2000-11-07 | Advanced Micro Devices, Inc. | Trace on/off with breakpoint register |
CN1071038C (zh) * | 1998-08-04 | 2001-09-12 | 英业达股份有限公司 | 用于调试串行通讯的诊断装置 |
DE19835610A1 (de) * | 1998-08-06 | 2000-02-10 | Siemens Ag | Programmgesteuerte Einheit und Verfahren zum Debuggen derselben |
US6738778B1 (en) * | 1998-12-11 | 2004-05-18 | International Business Machines Corporation | Method and apparatus for monitoring the execution of a program |
JP3736980B2 (ja) | 1998-12-28 | 2006-01-18 | 富士通株式会社 | マイクロコントローラの評価装置および評価方法 |
US6378124B1 (en) | 1999-02-22 | 2002-04-23 | International Business Machines Corporation | Debugger thread synchronization control points |
US6587967B1 (en) * | 1999-02-22 | 2003-07-01 | International Business Machines Corporation | Debugger thread monitor |
US6446221B1 (en) * | 1999-05-19 | 2002-09-03 | Arm Limited | Debug mechanism for data processing systems |
JP4335999B2 (ja) * | 1999-05-20 | 2009-09-30 | 株式会社ルネサステクノロジ | プロセッサ内蔵半導体集積回路装置 |
JP4260984B2 (ja) * | 1999-06-04 | 2009-04-30 | 株式会社東芝 | 情報処理装置および情報処理方法 |
US6668339B1 (en) * | 1999-07-28 | 2003-12-23 | Mitsubishi Denki Kabushiki Kaisha | Microprocessor having a debug interruption function |
JP2001147821A (ja) | 1999-09-10 | 2001-05-29 | Toshiba Corp | プロセッサ |
US6298394B1 (en) * | 1999-10-01 | 2001-10-02 | Stmicroelectronics, Ltd. | System and method for capturing information on an interconnect in an integrated circuit |
US6859891B2 (en) * | 1999-10-01 | 2005-02-22 | Stmicroelectronics Limited | Apparatus and method for shadowing processor information |
US7793261B1 (en) * | 1999-10-01 | 2010-09-07 | Stmicroelectronics Limited | Interface for transferring debug information |
US6601189B1 (en) | 1999-10-01 | 2003-07-29 | Stmicroelectronics Limited | System and method for communicating with an integrated circuit |
GB2362729B (en) * | 1999-12-23 | 2004-02-11 | St Microelectronics Sa | Memory access debug facility |
JP2001202270A (ja) * | 2000-01-21 | 2001-07-27 | Mitsubishi Electric Corp | 内部バストレース機能付プロセッサ |
US6769076B1 (en) * | 2000-02-07 | 2004-07-27 | Freescale Semiconductor, Inc. | Real-time processor debug system |
US6842811B2 (en) * | 2000-02-24 | 2005-01-11 | Pts Corporation | Methods and apparatus for scalable array processor interrupt detection and response |
DE60139219D1 (de) * | 2000-03-02 | 2009-08-27 | Texas Instruments Inc | Dynamisch konfigurierbare Debug-Schnittstelle mit gleichzeitiger Verwendung von Fehlerbeseitigung von mehreren Prozessorkernen |
US7113902B2 (en) * | 2000-03-02 | 2006-09-26 | Texas Instruments Incorporated | Data processing condition detector with table lookup |
US6732311B1 (en) * | 2000-05-04 | 2004-05-04 | Agere Systems Inc. | On-chip debugger |
WO2001093040A1 (fr) * | 2000-05-30 | 2001-12-06 | Matsushita Electric Industrial Co., Ltd. | Systeme et procede d'analyse de compteur de programme, et dispositif a semi-conducteur |
JP4409056B2 (ja) * | 2000-06-30 | 2010-02-03 | 富士通株式会社 | Lsi,lsiを搭載した電子装置、デバッグ方法、lsiのデバッグ装置 |
US6728906B1 (en) * | 2000-08-24 | 2004-04-27 | Triscend Corporation | Trace buffer for a configurable system-on-chip |
US8103496B1 (en) | 2000-10-26 | 2012-01-24 | Cypress Semicondutor Corporation | Breakpoint control in an in-circuit emulation system |
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 |
US7765095B1 (en) | 2000-10-26 | 2010-07-27 | Cypress Semiconductor Corporation | Conditional branching in an in-circuit emulation system |
US6724220B1 (en) | 2000-10-26 | 2004-04-20 | Cyress Semiconductor Corporation | Programmable microcontroller architecture (mixed analog/digital) |
US8176296B2 (en) | 2000-10-26 | 2012-05-08 | Cypress Semiconductor Corporation | Programmable microcontroller architecture |
US8160864B1 (en) | 2000-10-26 | 2012-04-17 | Cypress Semiconductor Corporation | In-circuit emulator and pod synchronized boot |
US8149048B1 (en) | 2000-10-26 | 2012-04-03 | Cypress Semiconductor Corporation | Apparatus and method for programmable power management in a programmable analog circuit block |
US6842879B1 (en) | 2000-11-21 | 2005-01-11 | Unisys Corporation | Methods and apparatus for facilitating the design of an adapter card of a computer system |
US6484273B1 (en) * | 2000-11-29 | 2002-11-19 | Lsi Logic Corporation | Integrated EJTAG external bus interface |
US6986026B2 (en) * | 2000-12-15 | 2006-01-10 | Intel Corporation | Single-step processing and selecting debugging modes |
US6857083B2 (en) * | 2000-12-18 | 2005-02-15 | International Business Machines Corporation | Method and system for triggering a debugging unit |
JP3913470B2 (ja) * | 2000-12-28 | 2007-05-09 | 株式会社東芝 | システムlsi |
US7287147B1 (en) | 2000-12-29 | 2007-10-23 | Mips Technologies, Inc. | Configurable co-processor interface |
US7237090B1 (en) | 2000-12-29 | 2007-06-26 | Mips Technologies, Inc. | Configurable out-of-order data transfer in a coprocessor interface |
US7178133B1 (en) * | 2001-04-30 | 2007-02-13 | Mips Technologies, Inc. | Trace control based on a characteristic of a processor's operating state |
US7124072B1 (en) | 2001-04-30 | 2006-10-17 | Mips Technologies, Inc. | Program counter and data tracing from a multi-issue processor |
KR100422586B1 (ko) * | 2001-04-30 | 2004-03-12 | 주식회사 하이닉스반도체 | 유에스비 마이크로 컨트롤러 유닛 디버깅 방법 |
US7181728B1 (en) | 2001-04-30 | 2007-02-20 | Mips Technologies, Inc. | User controlled trace records |
US7069544B1 (en) * | 2001-04-30 | 2006-06-27 | Mips Technologies, Inc. | Dynamic selection of a compression algorithm for trace data |
US7134116B1 (en) | 2001-04-30 | 2006-11-07 | Mips Technologies, Inc. | External trace synchronization via periodic sampling |
US7185234B1 (en) | 2001-04-30 | 2007-02-27 | Mips Technologies, Inc. | Trace control from hardware and software |
US7065675B1 (en) | 2001-05-08 | 2006-06-20 | Mips Technologies, Inc. | System and method for speeding up EJTAG block data transfers |
US7043668B1 (en) | 2001-06-29 | 2006-05-09 | Mips Technologies, Inc. | Optimized external trace formats |
US7231551B1 (en) | 2001-06-29 | 2007-06-12 | Mips Technologies, Inc. | Distributed tap controller |
JP2003177938A (ja) * | 2001-12-07 | 2003-06-27 | Fujitsu Ltd | 電子装置及びそのデバッグ認証方法 |
US6889344B2 (en) * | 2001-08-09 | 2005-05-03 | International Business Machines Corporation | System and method for exposing hidden events on system buses |
US6768358B2 (en) * | 2001-08-29 | 2004-07-27 | Analog Devices, Inc. | Phase locked loop fast power up methods and apparatus |
US20030056071A1 (en) * | 2001-09-18 | 2003-03-20 | Triece Joseph W. | Adaptable boot loader |
DE10148157B4 (de) * | 2001-09-28 | 2006-05-18 | Infineon Technologies Ag | Programmgesteuerte Einheit |
GB2380826A (en) * | 2001-10-12 | 2003-04-16 | Siroyan Ltd | Debugging of processors |
US20030074650A1 (en) * | 2001-10-17 | 2003-04-17 | Tankut Akgul | Debugger operating system for embedded systems |
US7406674B1 (en) | 2001-10-24 | 2008-07-29 | Cypress Semiconductor Corporation | Method and apparatus for generating microcontroller configuration information |
US8078970B1 (en) | 2001-11-09 | 2011-12-13 | Cypress Semiconductor Corporation | Graphical user interface with user-selectable list-box |
US8042093B1 (en) | 2001-11-15 | 2011-10-18 | Cypress Semiconductor Corporation | System providing automatic source code generation for personalization and parameterization of user modules |
US7844437B1 (en) | 2001-11-19 | 2010-11-30 | Cypress Semiconductor Corporation | System and method for performing next placements and pruning of disallowed placements for programming an integrated circuit |
US7774190B1 (en) | 2001-11-19 | 2010-08-10 | Cypress Semiconductor Corporation | Sleep and stall in an in-circuit emulation system |
US7770113B1 (en) | 2001-11-19 | 2010-08-03 | Cypress Semiconductor Corporation | System and method for dynamically generating a configuration datasheet |
US8069405B1 (en) | 2001-11-19 | 2011-11-29 | Cypress Semiconductor Corporation | User interface for efficiently browsing an electronic document using data-driven tabs |
US6971004B1 (en) | 2001-11-19 | 2005-11-29 | Cypress Semiconductor Corp. | System and method of dynamically reconfiguring a programmable integrated circuit |
US7117352B1 (en) * | 2002-02-13 | 2006-10-03 | Lsi Logic Corporation | Debug port disable mechanism |
JP2003263337A (ja) * | 2002-03-08 | 2003-09-19 | Seiko Epson Corp | デバック機能内蔵型マイクロコンピュータ |
JP2003263339A (ja) * | 2002-03-08 | 2003-09-19 | Seiko Epson Corp | デバック機能内蔵型マイクロコンピュータ |
US7266848B2 (en) * | 2002-03-18 | 2007-09-04 | Freescale Semiconductor, Inc. | Integrated circuit security and method therefor |
US8103497B1 (en) | 2002-03-28 | 2012-01-24 | Cypress Semiconductor Corporation | External interface for event architecture |
EP1349071A1 (en) * | 2002-03-29 | 2003-10-01 | STMicroelectronics N.V. | Integrated circuit with direct debugging architecture |
US7308608B1 (en) | 2002-05-01 | 2007-12-11 | Cypress Semiconductor Corporation | Reconfigurable testing system and method |
US20030233601A1 (en) * | 2002-06-17 | 2003-12-18 | Vaid Kushagra V. | Non-intrusive signal observation techniques usable for real-time internal signal capture for an electronic module or integrated circuit |
US6687129B1 (en) | 2002-08-29 | 2004-02-03 | Hewlett-Packard Development Company, L.P. | Circuit board and frame assembly |
JP2004102331A (ja) * | 2002-09-04 | 2004-04-02 | Renesas Technology Corp | 半導体装置 |
US7761845B1 (en) | 2002-09-09 | 2010-07-20 | Cypress Semiconductor Corporation | Method for parameterizing a user module |
US8374841B2 (en) * | 2002-11-22 | 2013-02-12 | Texas Instruments Incorporated | Precise detection of triggers and trigger ordering for asynchronous events |
CN100440140C (zh) * | 2003-02-11 | 2008-12-03 | Vi实验室有限公司 | 用于调节计算机软件的执行的系统和方法 |
US7216276B1 (en) | 2003-02-27 | 2007-05-08 | Marvell International Ltd. | Apparatus and method for testing and debugging an integrated circuit |
US7496818B1 (en) | 2003-02-27 | 2009-02-24 | Marvell International Ltd. | Apparatus and method for testing and debugging an integrated circuit |
US7444571B1 (en) * | 2003-02-27 | 2008-10-28 | Marvell International Ltd. | Apparatus and method for testing and debugging an integrated circuit |
WO2004097545A2 (en) * | 2003-05-01 | 2004-11-11 | Maz Laboratory | A method of executing a computer program |
US7159101B1 (en) | 2003-05-28 | 2007-01-02 | Mips Technologies, Inc. | System and method to trace high performance multi-issue processors |
US20050060690A1 (en) * | 2003-09-15 | 2005-03-17 | Kuo-Jung Tung | Microprocessor system with software emulation processed by auxiliary hardware |
US7194663B2 (en) * | 2003-11-18 | 2007-03-20 | Honeywell International, Inc. | Protective bus interface and method |
US7065593B2 (en) * | 2003-12-17 | 2006-06-20 | Tellabs Petaluma, Inc. | Centralized, double bandwidth, directional, shared bus communication system architecture |
WO2005091144A2 (fr) * | 2004-02-23 | 2005-09-29 | Stmicroelectronics S.A. | Surveillance de l’execution d’un programme par un processeur d’un circuit electronique |
US7295049B1 (en) | 2004-03-25 | 2007-11-13 | Cypress Semiconductor Corporation | Method and circuit for rapid alignment of signals |
US8286125B2 (en) | 2004-08-13 | 2012-10-09 | Cypress Semiconductor Corporation | Model for a hardware device-independent method of defining embedded firmware for programmable systems |
US8069436B2 (en) | 2004-08-13 | 2011-11-29 | Cypress Semiconductor Corporation | Providing hardware independence to automate code generation of processing device firmware |
CN100371907C (zh) * | 2004-11-19 | 2008-02-27 | 凌阳科技股份有限公司 | 用于处理器的追踪调试方法及系统 |
CN100359486C (zh) * | 2004-11-24 | 2008-01-02 | 中兴通讯股份有限公司 | 一种调试操作系统内核态程序的方法及装置 |
US7332976B1 (en) | 2005-02-04 | 2008-02-19 | Cypress Semiconductor Corporation | Poly-phase frequency synthesis oscillator |
JP2006268727A (ja) * | 2005-03-25 | 2006-10-05 | Seiko Epson Corp | 集積回路装置、デバッグシステム、マイクロコンピュータ及び電子機器 |
US7400183B1 (en) | 2005-05-05 | 2008-07-15 | Cypress Semiconductor Corporation | Voltage controlled oscillator delay cell and method |
US8089461B2 (en) | 2005-06-23 | 2012-01-03 | Cypress Semiconductor Corporation | Touch wake for electronic devices |
US7437616B2 (en) * | 2005-12-15 | 2008-10-14 | Atmel Corporation | Dual CPU on-chip-debug low-gate-count architecture with real-time-data tracing |
US8085067B1 (en) | 2005-12-21 | 2011-12-27 | Cypress Semiconductor Corporation | Differential-to-single ended signal converter circuit and method |
KR101242602B1 (ko) * | 2006-02-08 | 2013-03-19 | 삼성전자주식회사 | 테스트 회로를 내장한 시스템 온 칩 |
US8067948B2 (en) | 2006-03-27 | 2011-11-29 | Cypress Semiconductor Corporation | Input/output multiplexer bus |
JP2007328403A (ja) * | 2006-06-06 | 2007-12-20 | Matsushita Electric Ind Co Ltd | バス監視回路および情報処理検査システム |
JP4795147B2 (ja) * | 2006-07-11 | 2011-10-19 | 富士通株式会社 | 伝送装置 |
WO2008032477A1 (fr) * | 2006-09-15 | 2008-03-20 | Mitsubishi Electric Corporation | Système de déboguage |
US20080179386A1 (en) * | 2006-10-26 | 2008-07-31 | Daniel Oberan | Atm dispensable non-cash media sheet with separable folding card and process of dispensing from automated teller |
TWI331278B (en) * | 2007-03-14 | 2010-10-01 | Ind Tech Res Inst | Debug method |
US8040266B2 (en) | 2007-04-17 | 2011-10-18 | Cypress Semiconductor Corporation | Programmable sigma-delta analog-to-digital converter |
US7737724B2 (en) | 2007-04-17 | 2010-06-15 | Cypress Semiconductor Corporation | Universal digital block interconnection and channel routing |
US8516025B2 (en) | 2007-04-17 | 2013-08-20 | Cypress Semiconductor Corporation | Clock driven dynamic datapath chaining |
US9564902B2 (en) | 2007-04-17 | 2017-02-07 | Cypress Semiconductor Corporation | Dynamically configurable and re-configurable data path |
US8092083B2 (en) | 2007-04-17 | 2012-01-10 | Cypress Semiconductor Corporation | Temperature sensor with digital bandgap |
US8026739B2 (en) | 2007-04-17 | 2011-09-27 | Cypress Semiconductor Corporation | System level interconnect with programmable switching |
US8130025B2 (en) | 2007-04-17 | 2012-03-06 | Cypress Semiconductor Corporation | Numerical band gap |
US8065653B1 (en) | 2007-04-25 | 2011-11-22 | Cypress Semiconductor Corporation | Configuration of programmable IC design elements |
US8266575B1 (en) | 2007-04-25 | 2012-09-11 | Cypress Semiconductor Corporation | Systems and methods for dynamically reconfiguring a programmable system on a chip |
US9720805B1 (en) | 2007-04-25 | 2017-08-01 | Cypress Semiconductor Corporation | System and method for controlling a target device |
US8049569B1 (en) | 2007-09-05 | 2011-11-01 | Cypress Semiconductor Corporation | Circuit and method for improving the accuracy of a crystal-less oscillator having dual-frequency modes |
CN101458725B (zh) * | 2007-12-14 | 2012-01-25 | 上海海尔集成电路有限公司 | 微控制器芯片及其调试方法 |
TWI426381B (zh) * | 2008-11-28 | 2014-02-11 | Hon Hai Prec Ind Co Ltd | 嵌入式系統之測試裝置及方法 |
US8074118B2 (en) * | 2009-01-28 | 2011-12-06 | Dspace Digital Signal Processing And Control Engineering Gmbh | Method for influencing a control unit and manipulation unit |
US8171341B2 (en) * | 2009-01-28 | 2012-05-01 | Dspace Digital Signal Processing And Control Engineering Gmbh | Method for controlling an operating mechanism and a manipulation unit |
US8166344B2 (en) * | 2009-01-28 | 2012-04-24 | Dspace Digital Signal Processing And Control Engineering Gmbh | Method for controlling an operating mechanism and a manipulation unit |
US8375250B2 (en) * | 2009-03-04 | 2013-02-12 | Infineon Technologies Ag | System and method for testing a module |
US9448964B2 (en) | 2009-05-04 | 2016-09-20 | Cypress Semiconductor Corporation | Autonomous control in a programmable system |
US20120072777A1 (en) * | 2009-05-27 | 2012-03-22 | Mitsubishi Electric Corporation | Debugging device, debugging method, and computer program for sequence program |
CN101739338B (zh) * | 2009-12-21 | 2012-05-23 | 龙芯中科技术有限公司 | 一种处理器地址数据跟踪的装置及方法 |
CN103279326A (zh) * | 2009-12-23 | 2013-09-04 | 上海高性能集成电路设计中心 | 一种用于软件调试的微处理器数据流地址匹配自陷装置 |
CN102360329B (zh) * | 2011-09-29 | 2014-11-05 | 西北工业大学 | 总线监控与调试控制装置及进行总线监控与总线调试的方法 |
CN102662835B (zh) * | 2012-03-23 | 2015-10-28 | 凌阳科技股份有限公司 | 一种针对嵌入式系统的程序调试方法及嵌入式系统 |
KR20150008441A (ko) * | 2012-05-07 | 2015-01-22 | 마이크로칩 테크놀로지 인코포레이티드 | 리셋 조건 트레이스 기능들을 갖춘 프로세서 디바이스 |
CN103514077B (zh) * | 2012-06-21 | 2017-08-25 | 深圳市祈飞科技有限公司 | 计算机系统瘫痪报警装置及报警方法 |
US9489287B2 (en) * | 2013-08-23 | 2016-11-08 | Atmel Corporation | Breaking code execution based on time consumption |
JP6309919B2 (ja) * | 2015-06-23 | 2018-04-11 | ファナック株式会社 | データ取得機能を有する数値制御装置 |
US9419621B1 (en) | 2015-09-18 | 2016-08-16 | Freescale Semiconductor, Inc. | System on chip and method of operating a system on chip |
WO2017072664A1 (en) * | 2015-10-27 | 2017-05-04 | Marvell World Trade Ltd. | System and method for establishing a trusted diagnosis/debugging agent over a closed commodity device |
US10120740B2 (en) * | 2016-03-22 | 2018-11-06 | Micron Technology, Inc. | Apparatus and methods for debugging on a memory device |
CN106126360B (zh) * | 2016-06-28 | 2020-08-25 | 海信视像科技股份有限公司 | 地址空洞屏蔽方法及装置 |
CN106250260B (zh) * | 2016-08-03 | 2019-07-23 | 北京小米移动软件有限公司 | 处理器溢出监控和调试方法及装置 |
CN106970877A (zh) * | 2017-03-15 | 2017-07-21 | 杭州中天微系统有限公司 | 控制调试请求的装置及数据处理器 |
CN107301102B (zh) * | 2017-06-22 | 2020-05-26 | 湖南国科微电子股份有限公司 | 一种处理器调试方法及系统 |
CN109284223B (zh) * | 2017-07-21 | 2023-10-20 | 超威半导体(上海)有限公司 | 可配置的调试方法和系统 |
CN110476153A (zh) * | 2018-03-09 | 2019-11-19 | 深圳市汇顶科技股份有限公司 | 访问指令sram的方法和电子设备 |
US11105850B2 (en) * | 2018-05-24 | 2021-08-31 | Seagate Technology Llc | Secure debug system for electronic devices |
JP6981920B2 (ja) * | 2018-05-25 | 2021-12-17 | ルネサスエレクトロニクス株式会社 | 半導体装置、およびデバッグ方法 |
JP6961553B2 (ja) | 2018-08-30 | 2021-11-05 | 株式会社東芝 | 情報処理装置、システム及び方法 |
CN111737103A (zh) * | 2019-03-25 | 2020-10-02 | 阿里巴巴集团控股有限公司 | 一种包括调试单元的处理器和调试系统 |
JP7378254B2 (ja) * | 2019-09-19 | 2023-11-13 | キヤノン株式会社 | マルチプロセッサデバイス |
CN113672554B (zh) * | 2021-07-06 | 2023-12-29 | 平头哥(杭州)半导体有限公司 | 处理器核、处理器、片上系统和调试系统 |
CN114024878A (zh) * | 2021-11-18 | 2022-02-08 | 芯翼信息科技(上海)有限公司 | 数据传输方法、装置、介质和设备 |
CN114510432B (zh) * | 2022-04-20 | 2022-07-12 | 苏州浪潮智能科技有限公司 | 一种寄存器调试平台和调试方法 |
CN116340188B (zh) * | 2023-05-26 | 2023-08-04 | 深流微智能科技(深圳)有限公司 | Gpu芯片渲染任务的调试方法及系统 |
CN116383091B (zh) * | 2023-05-29 | 2023-08-29 | 珠海妙存科技有限公司 | eMMC验证平台的启动方法、启动装置及存储介质 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63155336A (ja) * | 1986-12-19 | 1988-06-28 | Hitachi Ltd | デ−タ処理装置 |
DE3740762A1 (de) * | 1987-01-22 | 1988-08-04 | Nat Semiconductor Corp | Datenverarbeitungssystem mit einer externen schnittstelle |
US5084814A (en) * | 1987-10-30 | 1992-01-28 | Motorola, Inc. | Data processor with development support features |
CN1019336B (zh) * | 1988-12-02 | 1992-12-02 | 霍尼威尔布尔公司 | 微处理器定向中断 |
EP0453268B1 (en) * | 1990-04-20 | 1997-10-22 | Hitachi, Ltd. | A microprocessor for inserting a bus cycle to output an internal information for an emulation |
US5581695A (en) * | 1990-05-09 | 1996-12-03 | Applied Microsystems Corporation | Source-level run-time software code debugging instrument |
US5493723A (en) * | 1990-11-06 | 1996-02-20 | National Semiconductor Corporation | Processor with in-system emulation circuitry which uses the same group of terminals to output program counter bits |
JPH06290076A (ja) * | 1993-04-05 | 1994-10-18 | Nec Ic Microcomput Syst Ltd | デバッグ装置 |
JPH0744419A (ja) * | 1993-08-03 | 1995-02-14 | Nec Ic Microcomput Syst Ltd | マイコン開発支援装置 |
US5539901A (en) * | 1993-09-30 | 1996-07-23 | Intel Corporation | Method and apparatus for system management mode support for in-circuit emulators |
US5630052A (en) * | 1993-09-30 | 1997-05-13 | Intel Corporation | System development and debug tools for power management functions in a computer system |
US5533192A (en) * | 1994-04-21 | 1996-07-02 | Apple Computer, Inc. | Computer program debugging system and method |
US5615331A (en) * | 1994-06-23 | 1997-03-25 | Phoenix Technologies Ltd. | System and method for debugging a computing system |
US5630102A (en) * | 1994-12-19 | 1997-05-13 | Intel Corporation | In-circuit-emulation event management system |
JP2752592B2 (ja) * | 1994-12-28 | 1998-05-18 | 日本ヒューレット・パッカード株式会社 | マイクロプロセッサ、マイクロプロセッサ−デバッグツール間信号伝送方法及びトレース方法 |
US5544311A (en) * | 1995-09-11 | 1996-08-06 | Rockwell International Corporation | On-chip debug port |
-
1995
- 1995-12-28 CN CNB2004100386728A patent/CN1279449C/zh not_active Expired - Lifetime
- 1995-12-28 CN CN95120196A patent/CN1122226C/zh not_active Expired - Lifetime
- 1995-12-28 US US08/580,158 patent/US5978937A/en not_active Expired - Lifetime
- 1995-12-28 DE DE69523884T patent/DE69523884T2/de not_active Expired - Lifetime
- 1995-12-28 EP EP95120662A patent/EP0720093B1/en not_active Expired - Lifetime
- 1995-12-28 KR KR1019950061484A patent/KR100255026B1/ko not_active IP Right Cessation
- 1995-12-28 CN CNB011440112A patent/CN1316368C/zh not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP0720093A1 (en) | 1996-07-03 |
US5978937A (en) | 1999-11-02 |
KR100255026B1 (ko) | 2000-05-01 |
CN1362677A (zh) | 2002-08-07 |
DE69523884T2 (de) | 2002-06-27 |
DE69523884D1 (de) | 2001-12-20 |
CN1133455A (zh) | 1996-10-16 |
CN1316368C (zh) | 2007-05-16 |
EP0720093B1 (en) | 2001-11-14 |
KR960024921A (ko) | 1996-07-20 |
CN1540518A (zh) | 2004-10-27 |
CN1122226C (zh) | 2003-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1279449C (zh) | 微处理器 | |
CN1021380C (zh) | 计算系统的命令传递 | |
CN1240005C (zh) | 将生产测试接口接至全局串行总线的方法和装置 | |
CN1584824A (zh) | 一种基于cisc结构的微处理器构架及指令实现方式 | |
CN1916961A (zh) | 可中断图形处理单元及其控制方法 | |
CN1265313C (zh) | 智能型电源开关 | |
CN1916962A (zh) | 存储和回存状态上下文在图形处理单元的方法和装置 | |
CN1472646A (zh) | 适应性强具备最佳化功能的编译装置 | |
CN1498367A (zh) | 信息处理装置、存储器管理装置、存储器管理方法及信息处理方法 | |
CN1605058A (zh) | 关于嵌入式字段可编程门阵列核心的接口结构 | |
CN1912926A (zh) | 可中断图形处理单元处理多个程序的方法和图形处理单元 | |
CN1932776A (zh) | 嵌入式操作系统中接口测试的自动化运行方法 | |
CN1641567A (zh) | 自堆栈快取存储器进行快速推测性弹出操作方法及装置 | |
CN1564136A (zh) | 基于目标机上的ejtag部件的交叉调试器实现方法 | |
CN1226026A (zh) | 数据处理装置 | |
CN1577291A (zh) | 程序调试装置、程序调试方法及程序 | |
CN1244052C (zh) | 非易失性存储器微机芯片及其测试方法 | |
CN1469241A (zh) | 处理器、程序变换装置和变换方法以及计算机程序 | |
CN1484787A (zh) | 处理器流水线中的硬件指令翻译 | |
CN1664777A (zh) | 用于控制信息处理设备的内部状态的装置和方法 | |
CN1932783A (zh) | 存储器控制装置 | |
CN1269052C (zh) | 支持缩小代码长度的常量还原型处理器 | |
CN1516001A (zh) | 一种新型risc流水线微控制器构架及其操作方法 | |
CN1770130A (zh) | 总线控制器件及方法、仲裁器件及方法和集成电路器件 | |
CN1491383A (zh) | 使用协处理器的数据处理 |
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 | ||
CX01 | Expiry of patent term |
Granted publication date: 20061011 |
|
EXPY | Termination of patent right or utility model |