CN1770112A - 芯片硬件上利用多重异步时钟的除错支持单元 - Google Patents
芯片硬件上利用多重异步时钟的除错支持单元 Download PDFInfo
- Publication number
- CN1770112A CN1770112A CNA200510095971XA CN200510095971A CN1770112A CN 1770112 A CN1770112 A CN 1770112A CN A200510095971X A CNA200510095971X A CN A200510095971XA CN 200510095971 A CN200510095971 A CN 200510095971A CN 1770112 A CN1770112 A CN 1770112A
- Authority
- CN
- China
- Prior art keywords
- clock
- unit
- debug
- mentioned
- debugger
- 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.)
- Granted
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
- G06F11/26—Functional testing
- G06F11/273—Tester hardware, i.e. output processing circuits
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明是关于一种连接一除错器与一欲除错系统的除错支持单元,其中上述的除错器是使用一测试时钟,上述的欲除错系统是使用一个或多个运作时钟。此除错支持单元使用该测试时钟与该除错器相连通讯的一测试时钟单元与一个或多个系统时钟单元,每一个系统时钟单元是对应至上述的一个或多个运作时钟,并且与该欲除错系统和该测试时钟单元相连通讯。其中上述的一个或多个系统时钟单元与此欲除错系统通讯时使用相对应的运作时钟,上述的一个或多个系统时钟单元与此测试时钟单元通讯时使用上述的测试时钟。
Description
技术领域
本发明涉及一种芯片硬件上的支持单元(supportunits),尤其是一种芯片硬件上利用多重异步时钟的除错支持单元。
背景技术
数字信号处理(DSP,Digital Signal Processing)技术通常指电子信号的数字呈现的检查与处理过程。利用数字信号处理技术进行处理的电子信号通常是真实世界声音与/或影像的数字呈现。
数字信号处理器是已对数字信号处理作最佳化处理的特殊用途微处理器,其通常用于处理实时数字信号,如配合一实时操作系统(RTOS,Real-Time Operating System)进行作业。所谓的实时操作系统是为一种可同时接受多个工作并加以处理的操作系统。该种操作系统通常会对上述所接收的工作排定其优先级,并可允许具有较高优先权的工作插断较低优先权的工作。另外,该种实时操作系统通常对于内存的管理方式是尽可能减少内存单元被某一特定工作锁定的时间以及减少内存单元被锁定的区域大小。当多个工作同时试图存取同一内存区块的机会减少后,即可允许上述多个工作异步化地执行。
数字信号处理器一般被运用于嵌入式(embedded)系统。所谓的嵌入式系统通常是指一种整合于一较大装置的特殊用途计算器。嵌入式系统大多是采用一种被客制化于某一特殊用途的小型(small footprint)实时操作系统。数字信号的处理经常是利用包含一数字信号处理器与一实时操作系统的一嵌入式系统进行实作。
一般而言,数字信号处理器是相当复杂的装置,其中可能包含一个以上的微处理器、内存总线与其它电子组件。除了数字信号处理器以外,嵌入式系统可包含如次系统处理器/加速器、固件与/或其它微处理器与集成电路等额外组件。
当设计如嵌入式系统、数字信号处理器与/或其它额外组件之类的电子组件时,至少于其发展的早期阶段中,此类电子组件通常会因为其在设计时所产生的一或多个错误(bugs)而出现一种未在预期中的功能。而针对此种电子组件所进行的错误辨识与移除过程称的为除错(debugging)。
除错过程可能冗长而困难。除错的困难有部份来自于现代电子组件的极端复杂性。通常仅能透过一个或更多个如当机或失效之类的常见问题观测到有一错误存在,然而很难判定是此电子组件设计的哪一部份导致上述错误发生。
除错电子组件的困难亦来自于非常不容易观测到欲除错电子组件内部所发生导致当机或其它失效的情况。于大多数情况下,人们仅能透过尝试错误的方式观测错误与获得解决,而非透过推导演绎的方式。
为进行除错,一除错器可能要与欲除错的电子组件连接。此除错器可为执行一个或多个除错应用程序的一计算机系统,其可与欲除错的电子组件进行更精细的互动以便测知与修正错误。
然而,最常发生的情况是除错器与待除错的电子组件分别根据独立不同的时钟执行。上述作法可能导致一个问题,即根据独立不同时钟执行的数字装置可能缺乏交换信息的一有效率装置。于除错器与待除错电子组件之间经常进行交换的信息需要使用昂贵的同步硬件,例如采用多余的内存缓冲区以将资料由一时钟的使用领域复制至另一时钟的使用领域。此外,多数于除错器与待除错电子组件之间交换信息的系统要求待除错电子组件的时钟必须为除错器的测试时钟的某一精确倍数;例如许多系统要求受测的运作时钟(functional clock)必须至少为测试时钟的两倍。上述的解决方法可能昂贵且受到重重限制。
据此,亟需新系统与方法提供于芯片上的硬件除错支持单元以减少由于运作时钟与测试时钟比例关系所衍生的硬件实作需求与价格。
发明内容
本发明的目的在于,提供一种芯片硬件上利用多重异步时钟的除错支持单元,其可提供于芯片上的硬件除错支持单元以减少由于运作时钟与测试时钟比例关系所衍生的硬件实作需求与价格。
本发明是关于一种除错支持单元以连接一除错器与一欲除错系统,该除错器是使用一测试时钟,该欲除错系统是使用一个或多个运作时钟,其特征在于,该除错支持单元包含:
一测试时钟单元,该测试时钟单元是使用该测试时钟与该除错器相连通讯;以及
一个或多个系统时钟单元,每一个该系统时钟单元是对应至该一个或多个运作时钟,并且与该欲除错系统和该测试时钟单元相连通讯,
其中上述的一个或多个系统时钟单元与该欲除错系统通讯时使用相对应的该运作时钟,该一个或多个系统时钟单元与该测试时钟单元通讯时使用该测试时钟。
其中上述的每一个该系统时钟单元还与该除错器相连通讯,该一个或多个系统时钟单元与该欲除错系统通讯时使用相对应的该运作时钟,该一个或多个系统时钟单元与该除错器通讯时使用该测试时钟。
其中还包含一个或多个时钟切换单元,每一个该时钟切换单元是对应至该一个或多个运作时钟,每一个该时钟切换单元是与该测试时钟单元与其所对应的该系统时钟单元相连通讯,当每一个该系统时钟单元与该测试时钟单元通讯时,每一个该系统时钟单元所对应的该时钟切换单元送出一时钟信号至所对应的该系统时钟单元,当每一个该系统时钟单元与该欲除错系统通讯时,该时钟信号是为该系统时钟单元所对应的运作时钟。
其中上述的欲除错系统为一数字信号处理器。
其中上述的欲除错系统、测试时钟单元与系统时钟单元是位于一整合式装置或一微芯片中。
本发明一电子组件的除错方法,其特征在于,该电子组件的除错方法包含:
提供一个或多个系统时钟单元以对应至一个或多个运作时钟,当该一个或多个系统时钟单元与一除错器通讯时,该一个或多个运作时钟为该除错器所使用的一时钟,当该一个或多个系统时钟单元与该电子组件通讯时,该一个或多个运作时钟为该电子组件具有的一个或多个硬件时钟的其中一个相对应的硬件时钟。
其中上述的该除错器是为与执行一除错应用程序的一计算机系统进行通讯的一除错支持单元。
其中上述的除错器是为执行一除错应用程序的一计算机系统。
其中当每一个该系统时钟单元与该除错器相连通讯时,一时钟切换单元将该一个或多个运作时钟设定为该除错器所使用的时钟,当每一个该系统时钟单元与该电子组件相连通讯时,该时钟切换单元将该一个或多个运作时钟设定为该电子组件具有的该一个或多个硬件时钟的其中一个相对应的硬件时钟。
其中上述的除错器是为与执行一除错应用程序的一计算机系统进行通讯的一除错支持单元。
其中上述的除错器是为执行一除错应用程序的一计算机系统。
其中上述的时钟切换单元是根据该除错器或该除错支持单元送至该时钟切换单元的一指令以设定该一个或多个运作时钟。
附图说明
为进一步说明本发明的具体技术内容,以下结合实施例及附图详细说明如后,其中:
图1是为根据本发明一实施例的一欲除错电子组件与一除错支持单元的一方块示意图;
图2是为根据本发明实施例中测试存取协议的一实作范例的一方块示意图;
图3是为根据本发明一实施例的一除错支持单元的一方块示意图;
图4是为根据本发明一实施例描述除错器如何存取除错支持单元缓存器的一流程示意图;
图5是为根据本发明一实施例描述除错器如何将资料写入欲除错系统的一流程示意图;
图6是为根据本发明一实施例描述除错器如何自欲除错系统读出资料的一流程示意图;
图7是为根据本发明一实施例描述除错器如何读取追踪缓冲区的一流程示意图;
图8是为根据本发明一实施例的一概念性时钟切换电路的一方块示意图;
图9是为根据本发明另一实施例的一时钟切换电路的一方块示意图;
图10是为根据本发明一实施例的一测试时钟活动侦测电路的一方块示意图;
图11是为根据本发明一实施例的一时钟控制电路的一方块示意图;以及
图12是为根据本发明提供的系统与方法所实作的一计算机系统范例的一方块示意图。
具体实施方式
本发明在此所探讨的方向为一种芯片硬件上利用多重异步时钟的除错支持单元。为了能彻底地了解本发明,将在下列的描述中提出详尽的步骤及其组成。显然地,本发明的施行并未限定于除错的技术者所熟习的特殊细节。另一方面,众所周知的组成或步骤并未描述于细节中,以避免造成本发明不必要的限制。本发明的较佳实施例会详细描述如下,然而除了这些详细描述之外,本发明还可以广泛地施行在其它的实施例中,且本发明的范围不受限定,其以之后的专利范围为准。
如前所述,对如数字信号处理器或其相关装置等电子组件进行除错的困难之一,在于缺乏观测欲除错的电子组件内部工作情况的能力。
除错电子装置的一种方式是将一除错支持单元整合入于欲除错的电子组件。例如,若上述欲除错的电子组件是实作于一微芯片上,则此除错支持单元可为此微芯片上的一除错单元。请参考图1所示,其是为根据本发明一实施例的一欲除错电子组件12与一除错支持单元13的一方块示意图。于本实施例中,此除错支持单元13可被置入一整合装置,例如为此欲除错电子组件12的一电路组件。于一范例中,此除错支持单元13可被整合入包含上述欲除错电子组件12的一微芯片11。此微芯片11可被视为一系统芯片(SOC,system-on-chip)。于上述的范例中,上述欲除错电子组件12亦可被称为一欲除错系统(SUD,system-under-debug)12。当此除错支持单元13可被整合入一微芯片时,此除错支持单元13可被视为于芯片上的除错单元,上述欲除错系统12则可被视为于芯片上的欲除错系统12。
上述的除错支持单元13可提供专属硬件的支持以供一外部除错器14对上述欲除错系统12进行除错。此除错支持单元13可为上述外部除错器14与欲除错系统12的一接口。据此,上述除错支持单元13提供上述外部除错器14一种装置以便接入此欲除错系统12的内部并且观测其作业情况,于此同时可最小化此欲除错系统12用以接受测试所需的处理能力。上述作法可允许此欲除错系统12受测时的操作情况如同正常操作情况一般,可大幅度地增加除错的有效性。
上述的除错器14可为一计算机系统,其已经设定用于对此欲除错系统12进行除错。例如,上述的除错器14可为执行一个或以上除错应用程序的一计算机系统。
上述除错器14具有许多不同型态,其可单独或以两个以上的群组型态进行运用。不同的除错器14可支持不同的除错功能。某些除错功能包含:系统开机、软件执行的激活/停止/继续、设定程序地址或资料停止点、对芯片上内存位置或缓存器进行读写、软件指令的步进(stepping)与软件执行追踪的监控。
上述除错器14可透过连接至上述除错支持单元13的一外部总线15与此欲除错系统12连接。此外部总线15可于上述除错器14与除错支持单元13之间传输资料与控制信息。此外,上述外部总线15可遵循一个或更多接口标准。例如,此外部总线15可使用符合联合测试行动群/测试存取协议(JTAG/TAP,Joint Test Action Group/Test AccessProtocol)的控制接口。上述的联合测试行动群是已成为国际电子电机工程师协会(IEEE)所订定的标准1149.1,本发明将此标准作为参考基础。
请参考图2所示,其是为根据本发明实施例中测试存取协议的一实作范例的一方块示意图,其用以连接除错器与系统芯片。一除错器21可透过测试存取协议23与一系统芯片22连接。此测试存取协议23可包含一测试时钟信号(TCK)24以将此除错器21的测试时钟频率传送至上述的除错支持单元。此外,上述的测试存取协议23可包含一测试重置信号(TRST)25以利此除错器21将一重置信号传送至上述除错支持单元。上述的测试存取协议23可还包含一测试模式控制信号(TMS)26以供此除错器21控制其对于上述除错支持单元的存取功能。再者,此测试存取协议23可还包含一序列资料输入信号(TDI)27与一序列资料输出信号(TDO)28以供此除错器21与除错支持单元交换的额外信息,例如同步信息等。
本发明实施例所提供的于芯片上硬件除错支持的系统与方法,是利用一除错支持单元与执行于一测试时钟速度下的—除错器和执行于一个或多个运作时钟速度下的一欲除错系统沟通,其中上述的运作时钟可不与此测试时钟同步。
请合并参考图1与图3所示。其中,除错支持单元31可包含一测试时钟单元测试时钟单元(DBG_TCK)32与上述的外部除错器14连接,例如透过一测试存取协议接口。上述除错支持单元31可包含一个或多个系统时钟单元(DBG_SCLK)35,其每一个皆与上述欲除错系统12中以某一特定时钟执行的部份连接。例如当欲除错系统12包含以各自独立时钟执行的许多部分时,则此除错支持单元31即包含多个系统时钟单元35以各自连接上述欲除错系统12的相对应部份。然而为简化说明之故,于本发明实施例中所描述的欲除错系统12是以单一运作时钟(CLK)执行,故本发明的实施例可能仅示出单一个系统时钟单元35以连接上述的欲除错系统12。
上述的测试时钟单元测试时钟单元32可能依循由此测试存取协议接口自上述外部除错器14所接收的测试时钟进行运作,其可令外部除错器14与此测试时钟单元测试时钟单元32之间的资料沟通具有效率。上述的测试时钟单元测试时钟单元32可还包含一测试存取协议控制器33以透过测试存取协议控制于外部除错器14与此测试时钟单元测试时钟单元32之间的信息流。此测试时钟单元测试时钟单元32可还包含一测试时钟缓存器组34。
上述测试时钟缓存器组34可包含一控制与状态缓存器(T_CSR),其可用于自上述除错器14提供一异步控制除错命令至此欲除错系统12。例如由上述除错器14所发出的除错命令可先存放于上述控制与状态缓存器,并且于对适当时钟同步化化后,异步地传送至上述的欲除错系统12。
此欲除错系统12可能具有许多模式,例如一正常作业模式与一除错模式。于上述正常作业模式下,此欲除错系统12可正常地执行其功能,例如执行应用程序等。于上述除错模式时,此欲除错系统12的执行过程可被中断。例如当遭遇一除错事件时,此欲除错系统12停止执行并可进入上述除错模式,所谓除错事件可能是一个外部停止命令或触发一断点等事件。
此欲除错系统12尚能具有其它模式,诸如一重置模式与一开机模式。当处于重置模式下,此欲除错系统12正进行一系统的重置作业。于开机模式时,此欲除错系统12可能正处于重置模式与正常作业模式的转换过程。
上述控制与状态缓存器可额外用于监控此欲除错系统12的一模式状态。例如,记录此欲除错系统12的模式状态信息(亦即一欲除错系统模式信号SUD_MODE)可由此欲除错系统12送出,与上述测试时钟单元测试时钟单元32的测试时钟同步化后送抵上述的控制与状态缓存器。上述的除错器14可据此得知欲除错系统12的状态,比如周期性地检视此控制与状态缓存器。然而,上述的除错器14亦可无视于欲除错系统12模式而径行检视此控制与状态缓存器。
上述测试时钟缓存器组34可包含一个或多个设定/资料除错缓存器(T_CD)。上述的设定/资料除错缓存器是用于储存应用于上述欲除错系统12的除错设定/控制信息。此除错器14可于除错模式时存取上述设定/资料除错缓存器。上述的系统时钟单元35与欲除错系统12可于正常作业模式下利用储存于上述设定/资料除错缓存器内的信息。例如,由此除错器14所提供的新断点设定可储存于上述设定/资料除错缓存器内,而处于正常作业模式的系统时钟单元35可触发一除错事件以停止上述欲除错系统12的执行过程。又比如可储存属于欲除错系统12的一指令于上述设定/资料除错缓存器内,而令处于正常作业模式的欲除错系统12执行此一指令。
根据本发明的某些实施例,上述控制与状态缓存器可于欲除错系统12的各种模式下用于传送如命令与状态之类的特殊资料,而上述设定/资料除错缓存器则可用于传送一般资料。当上述欲除错系统12处于除错模式、重置模式或开机模式时,上述除错器14可存取此设定/资料除错缓存器。而当上述欲除错系统12处于正常运作模式时,上述除错器14则无法存取此设定/资料除错缓存器。
此除错支持单元31可还包含一专属时钟切换电路(CLK_SW)37,其可透过上述的测试存取协议接受测试时钟信号,此时钟切换电路37亦可由上述的欲除错系统12接受运作时钟。据此,上述的时钟切换电路37可提供一同步化时钟信号(S_CLK)39,此同步化时钟信号39若非为上述的运作时钟,即为测试时钟。此外,上述的时钟切换电路37可自上述测试时钟单元测试时钟单元32接受一时钟选择信号(CLK_SEL)38以决定此同步化时钟信号39应设定为上述的运作时钟或测试时钟。例如,此时钟切换电路37可接受逻辑值为1的一时钟选择信号38以令此同步化时钟信号39设定为上述的测试时钟;此时钟切换电路37可接受逻辑值为0的一时钟选择信号38以令此同步化时钟信号39设定为上述的运作时钟。此外,亦可将接受一时钟选择信号38视为逻辑值为1的信号,而未接受到一时钟选择信号38视为接受逻辑值为0的信号。
上述的系统时钟单元35可能由此同步化时钟信号39驱动。据此,上述系统时钟单元35即可根据由此测试时钟单元测试时钟单元32所发出的时钟选择信号38,使用上述的运作时钟或测试时钟作为其时钟来源。
根据本发明的某些实施例,储存于上述系统时钟单元35的除错信息可直接为此除错器14存取,故此除错信息不需复制至上述测试时钟单元测试时钟单元32的缓存器以供此除错器14存取。
当上述的系统时钟单元35使用上述的运作时钟作为其时钟来源时,例如当此欲除错系统12处于正常运作模式下,此系统时钟单元35是与此欲除错系统12同步,因此于此系统时钟单元35与此欲除错系统12间具有一稳定的联机关系。此稳定联机可允许资料同步地自此欲除错系统12传送至上述的系统时钟单元35,与/或自上述的系统时钟单元35传送至此欲除错系统12。
上述的系统时钟单元35可包含一个或更多个同步时钟缓存器36,其可称为同步设定/资料除错缓存器(S_CD)。此同步设定/资料除错缓存器用于将上述除错器14所提供的除错信息提供至此欲除错系统12。例如,此除错器14可于除错模式时传送信息至上述同步设定/资料除错缓存器,而此欲除错系统12可于正常作业模式下利用储存于上述同步设定/资料除错缓存器内的信息。上述的系统时钟单元35可还利用此同步设定/资料除错缓存器以撷取此欲除错系统12执行时期(runtime)的信息。例如,上述的系统时钟单元35可于此欲除错系统12处于正常作业模式时,将此同步设定/资料除错缓存器中原本由除错器14所提供的信息换成由此欲除错系统12所得来的信息。
当上述系统时钟单元35使用上述测试时钟时,如当此欲除错系统12处于除错模式下,上述系统时钟单元35可与上述测试时钟单元测试时钟单元32与除错器14执行同步;据此,上述系统时钟单元35与上述测试时钟单元测试时钟单元32和除错器14之间具有一稳定的联机关系。此稳定联机可允许资料同步地自此系统时钟单元35与上述的测试时钟单元测试时钟单元32和除错器14之间进行传送。据此,上述的外部除错器14可存取此同步设定/资料除错缓存器。
请参考图4所示,其是为根据本发明一实施例描述除错器如何存取除错支持单元缓存器的一流程示意图。无论上述欲除错系统处于何种操作模式下,此外部除错器于步骤41存取上述测试时钟单元测试时钟单元的控制与状态缓存器。若此欲除错系统是处于正常运作模式而非除错模式下,如判定步骤42的“否”路径,则此外部除错器仅能如步骤41存取上述的控制与状态缓存器。若此欲除错系统是处于除错模式下,如判定步骤42的“是”路径,则此外部除错器可选择其所欲存取的设定/资料除错缓存器与/或同步设定/资料除错缓存器。上述选择缓存器的方法可利用联合测试行动群/测试存取协议送出关于上述测试时钟信号、测试模式控制信号与序列资料输入信号的一适当序列。若此外部除错器欲存取一同步设定/资料除错缓存器,如判定步骤43的“是”路径,则此外部除错器则于步骤48选择所欲存取的同步设定/资料除错缓存器,并且将同步化时钟信号设定为测试时钟。据此,此外部除错器于步骤49中存取所欲的同步设定/资料除错缓存器。若此外部除错器不欲存取一同步设定/资料除错缓存器,如判定步骤43的“否”路径,则可于步骤44中选择所欲存取的设定/资料除错缓存器或控制与状态缓存器,并且将同步化时钟信号设定为运作时钟。若选择存取控制与状态缓存器,如判定步骤45的“是”路径,则此外部除错器可于步骤47中存取此控制与状态缓存器。若非选择存取控制与状态缓存器,即选择设定/资料除错缓存器,如判定步骤45的“否”路径,则此外部除错器可于步骤47中存取此设定/资料除错缓存器。
请参考图5所示,其是为根据本发明一实施例描述除错器如何将资料写入欲除错系统的一流程示意图。此外部除错器可于步骤51中,选择同步设定/资料除错缓存器并且将同步化时钟信号设定为测试时钟。接着于步骤52,此外部除错器转移一数据值与一指令至上述被择定的同步设定/资料除错缓存器。此外部除错器于下一步骤53中选择控制与状态缓存器并且将同步化时钟信号设定为运作时钟。之后,此外部除错器可于步骤54中转送一“注入”(INJECT)指令至欲除错系统。上述的“注入”指令于欲除错系统接收前,先于系统时钟单元中被同步为运作时钟。于步骤55,欲除错系统即转换为正常运作模式。接着,欲除错系统于步骤56执行来自此同步设定/资料除错缓存器内的指令,并且将上述的资料值送入此欲除错系统的目的地。最后于步骤57中,欲除错系统于执行上述的“注入”指令后,即重新进入除错模式。
请参考图6所示,其是为根据本发明一实施例描述除错器如何自欲除错系统读出资料的一流程示意图。首先于步骤60,此外部除错器选择同步设定/资料除错缓存器并且将同步化时钟信号设定为测试时钟。其后,此外部除错器于步骤61转送一数据移动指令至上述被选择的同步设定/资料除错缓存器。此外部除错器于下一步骤62中选择控制与状态缓存器并且将同步化时钟信号设定为运作时钟。之后,此外部除错器可于步骤63中转送一“注入”(INJECT)指令至欲除错系统。于步骤64,欲除错系统即转换为正常运作模式。接着,欲除错系统于步骤65执行来自此同步设定/资料除错缓存器内的资料移动指令,并将其所指定的欲除错系统资料传送至一同步设定/资料除错缓存器。于步骤66中,欲除错系统于执行上述的“注入”指令即重新进入除错模式。其后,此外部除错器于步骤67中检查控制与状态缓存器,判断欲除错系统是否已经重新进入除错模式。接着此外部除错器于步骤68选择上述储放资料的同步设定/资料除错缓存器,并且将同步化时钟信号设定为测试时钟。最后于步骤69中,此外部除错器即可读出上述同步设定/资料除错缓存器所储放的资料。
当欲除错系统于正常运作模式中执行时,可能希望储存一追踪缓冲区(trace buffer)以便收集关于此欲除错系统执行时的珍贵资料,以便供给外部除错器进行除错的用。例如,上述追踪缓冲区可储存此欲除错系统所执行的每一跳跃指令的标的地址。上述的跳跃指令包含分支指令、呼叫指令与返回指令等。请参考图7所示,其是为根据本发明一实施例描述除错器如何读取追踪缓冲区的一流程示意图。当欲除错系统处于正常运作模式时,欲除错系统所纪录的追踪缓冲区信息可于步骤71中存放于系统时钟单元缓存器的追踪缓冲区。仅需欲除错系统持续执行程序,则于图7标出的循环可不断重复执行。当上述追踪缓冲区尚未储满时,如判定步骤72的“否”路径,则资料持续如步骤71般存放于追踪缓冲区内。当上述追踪缓冲区已被储满时,如判定步骤72的“是”路径,则欲除错系统于步骤73中暂时转换为除错模式。接着,除错器于步骤74将读取上述追踪缓冲区内资料,例如将追踪缓冲区的整个内容转移至除错器。于其后的步骤75中,此追踪缓冲区的内容会被清除。最后,欲除错系统于步骤76中回复至正常运作模式后,再如步骤71般将资料持续存放于追踪缓冲区内。
如上所述,时钟切换电路必须同步化时钟信号切换为运作时钟或测试时钟。请参考图8所示,其是为根据本发明一实施例的一概念性时钟切换电路的一方块示意图。此概念性时钟切换电路可用于描述形成一时钟切换电路81的基本逻辑规则。上述的时钟切换电路81可接收上述的测试时钟、运作时钟与一测试时钟选择信号(TCK_SEL)作为输入。当上述的测试时钟选择信号为逻辑值1时,一与门(AND gate)82接受逻辑值0为其第一输入值,以及接受上述的运作时钟为其第二输入值,故此与门82的输出值将持续为逻辑值0。当上述的测试时钟选择信号为逻辑值1时,一与门83接收上述的测试时钟为其第一输入值,以及接受上述的逻辑值1为其第二输入值;当此测试时钟上升时,此与门83的输出值将为逻辑值1;故此与门83的输出值为上述的测试时钟。接着,一或门84将会接收此测试时钟为其第一输入值,以及接受上述的逻辑值0为其第二输入值;当此测试时钟上升时,此或门84的输出值将为逻辑值1;故此或门84的输出值为上述的测试时钟。
反的,当上述的测试时钟选择信号为逻辑值0时,上述的与门82接收逻辑值1为其第一输入值,以及接受上述的运作时钟为其第二输入值;故此与门82的输出值将为上述的运作时钟。当上述的测试时钟选择信号为逻辑值0时,上述的与门83接收上述的测试时钟为其第一输入值,以及接受上述的逻辑值0为其第二输入值;故此与门83的输出值将为逻辑值0。上述的或门84将会接受上述的逻辑值0为其第一输入值,以及接受运作时钟为其第二输入值;当此运作时钟上升时,此或门84的输出值将为逻辑值1;故此或门84的输出值为上述的运作时钟。
请参考图9所示,其是为根据本发明另一实施例的一时钟切换电路的一方块示意图。一包含复数个与非门的多任务器结构92是于架构上等价于图8标出的时钟切换电路。然而,图9标出的时钟切换电路91甚至可于上述的测试时钟选择信号不同步于运作时钟与测试时钟时,提供运作时钟与测试时钟之间清晰无碍(glitch free)的切换。当两个重置信号(测试重置信号TRST与功能性重置信号RST_N)为有效(active)时,运作时钟将会驱动成为同步化时钟信号的输出。当上述的测试重置信号TRST为有效时(负逻辑有效active low),测试时钟单元测试时钟单元即令上述的测试时钟选择信号为失效(inactive)。若除错器欲选择存取任一个同步设定/资料除错缓存器时,则上述的测试时钟选择信号被设为有效(正逻辑有效active high)。据此,当此除错器欲准备与/或正存取任一个同步设定/资料除错缓存器的时,上述的测试时钟选择信号被设为有效(正逻辑有效active high),其导致此时钟切换电路驱动上述的测试时钟为其输出;否则,此时钟切换电路驱动上述的运作时钟为其输出。当欲除错系统处于正常运作模式时,系统时钟单元可以与遵循运作时钟的欲除错系统同步运作。当此欲除错系统处于除错模式、开机模式,与/或被除错器存取之时,系统时钟单元可以测试时钟同步运作。
图9标出的时钟切换电路利用两组正反器(flip-flop),其每一组皆以双重正反同步器(dual-flop synchronizer)串行方式连接两时钟信号,亦即测试时钟与运作时钟。上述的双重正反同步器可避免当信号改变状态过于接近时钟变换边缘时所造成的不稳定/拟稳态(meta-stability)现象。
当欲除错系统已经除错完毕与/或准备进入量产时,可关闭上述的除错支持单元以节省欲除错系统执行正常作业时消耗的电力,例如当上述的除错支持单元被整合入一个数字信号处理系统时。根据本发明实施例所提供的测试时钟单元测试时钟单元可轻易地被关闭,例如仅需令上述的测试重置信号为负逻辑有效(active low)与令测试时钟为0。同样地,透过全域时钟闸控(gating),系统时钟单元亦可被关闭,例如测试时钟单元测试时钟单元可加入一测试时钟活动侦测电路。
请参考图10所示,其是为根据本发明一实施例的一测试时钟活动侦测电路的一方块示意图。于此实施例中,当未连接外部除错器,亦即上述的测试重置信号(/TRST)与功能性重置信号(RST_N)皆被关闭(off)与失效时,可令上述的测试重置信号(/TRST)重置以令测试时钟单元保持于重置状态,并且于未侦测同步化时钟信号(S_CLK)时,释放(release)功能性重置信号(functional reset)RST_N以令系统时钟单元保持于重置状态。
上述的测试时钟活动侦测电路可控制一全域时钟闸控单元(cell),其位于负责提供系统时钟单元时钟的时钟控制电路中。请参考图11所示,其是为根据本发明一实施例的一时钟控制电路的一方块示意图。此时钟控制电路可利用测试时钟与运作时钟等根时钟以驱动系统中的测试时钟、运作时钟与同步化时钟信号的时钟树(clock tree)。
图10标出的测试时钟活动侦测电路可用于控制图11标出的时钟控制电路的最高层整合式全域时钟闸控单元。
请参考图12所示,其是为根据本发明提供的系统与方法所实作的一计算机系统范例的一方块示意图。本发明提供的系统与方法可以于一计算机系统中执行的一软件应用程序的形式进行实作,此计算机系统可为一大型主机、个人计算机与手持计算机等。上述的软件应用程序是储存于此计算机系统可存取的一纪录媒介,其可透过一实体线路或一无线网络联机进行存取,例如局域网络或网际网络。
上述的计算机系统通常指称为一系统1000,其可包含一中央处理器1001、一随机存取内存1004、一打印机接口1010、一显示单元1011、一局域网络数据传输控制器1005、一局域网络接口1006、一网络控制器1003、一内部总线1002与一个以上的输入装置1009,如鼠标键盘等。如图12所示,此系统1000尚可透过一联机1007连接至如一硬盘1008之类的一资料储存装置。
显然地,依照上面实施例中的描述,本发明可能有许多的修正与差异。因此需要在其附加的权利要求项的范围内加以理解,除了上述详细的描述外,本发明还可以广泛地在其它的实施例中施行。上述仅为本发明的较佳实施例而已,并非用以限定本发明的申请专利范围;凡其它未脱离本发明所揭示的精神下所完成的等效改变或修饰,均应包含在下述申请专利范围内。
Claims (12)
1.一种除错支持单元以连接一除错器与一欲除错系统,该除错器是使用一测试时钟,该欲除错系统是使用一个或多个运作时钟,其特征在于,该除错支持单元包含:
一测试时钟单元,该测试时钟单元是使用该测试时钟与该除错器相连通讯;以及
一个或多个系统时钟单元,每一个该系统时钟单元是对应至该一个或多个运作时钟,并且与该欲除错系统和该测试时钟单元相连通讯,
其中上述的一个或多个系统时钟单元与该欲除错系统通讯时使用相对应的该运作时钟,该一个或多个系统时钟单元与该测试时钟单元通讯时使用该测试时钟。
2.根据权利要求1所述的除错支持单元,其特征在于,其中上述的每一个该系统时钟单元还与该除错器相连通讯,该一个或多个系统时钟单元与该欲除错系统通讯时使用相对应的该运作时钟,该一个或多个系统时钟单元与该除错器通讯时使用该测试时钟。
3.根据权利要求1所述的除错支持单元,其特征在于,其中还包含一个或多个时钟切换单元,每一个该时钟切换单元是对应至该一个或多个运作时钟,每一个该时钟切换单元是与该测试时钟单元与其所对应的该系统时钟单元相连通讯,当每一个该系统时钟单元与该测试时钟单元通讯时,每一个该系统时钟单元所对应的该时钟切换单元送出一时钟信号至所对应的该系统时钟单元,当每一个该系统时钟单元与该欲除错系统通讯时,该时钟信号是为该系统时钟单元所对应的运作时钟。
4.根据权利要求1所述的除错支持单元,其特征在于,其中上述的欲除错系统为一数字信号处理器。
5.根据权利要求1所述的除错支持单元,其特征在于,其中上述的欲除错系统、测试时钟单元与系统时钟单元是位于一整合式装置或一微芯片中。
6.一电子组件的除错方法,其特征在于,该电子组件的除错方法包含:
提供一个或多个系统时钟单元以对应至一个或多个运作时钟,当该一个或多个系统时钟单元与一除错器通讯时,该一个或多个运作时钟为该除错器所使用的一时钟,当该一个或多个系统时钟单元与该电子组件通讯时,该一个或多个运作时钟为该电子组件具有的一个或多个硬件时钟的其中一个相对应的硬件时钟。
7.根据权利要求6所述的电子组件的除错方法,其特征在于,其中上述的该除错器是为与执行一除错应用程序的一计算机系统进行通讯的一除错支持单元。
8.根据权利要求6所述的电子组件的除错方法,其特征在于,其中上述的除错器是为执行一除错应用程序的一计算机系统。
9.根据权利要求6所述的电子组件的除错方法,其特征在于,其中当每一个该系统时钟单元与该除错器相连通讯时,一时钟切换单元将该一个或多个运作时钟设定为该除错器所使用的时钟,当每一个该系统时钟单元与该电子组件相连通讯时,该时钟切换单元将该一个或多个运作时钟设定为该电子组件具有的该一个或多个硬件时钟的其中一个相对应的硬件时钟。
10.根据权利要求9所述的电子组件的除错方法,其特征在于,其中上述的除错器是为与执行一除错应用程序的一计算机系统进行通讯的一除错支持单元。
11.根据权利要求9所述的电子组件的除错方法,其特征在于,其中上述的除错器是为执行一除错应用程序的一计算机系统。
12.根据权利要求10所述的电子组件的除错方法,其特征在于,其中上述的时钟切换单元是根据该除错器或该除错支持单元送至该时钟切换单元的一指令以设定该一个或多个运作时钟。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/036,445 | 2005-01-14 | ||
US11/036,445 US20060161818A1 (en) | 2005-01-14 | 2005-01-14 | On-chip hardware debug support units utilizing multiple asynchronous clocks |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1770112A true CN1770112A (zh) | 2006-05-10 |
CN100388215C CN100388215C (zh) | 2008-05-14 |
Family
ID=36685365
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB200510095971XA Active CN100388215C (zh) | 2005-01-14 | 2005-08-29 | 芯片硬件上利用多重异步时钟的除错支持单元及除错方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20060161818A1 (zh) |
CN (1) | CN100388215C (zh) |
TW (1) | TWI288871B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106294228A (zh) * | 2016-08-17 | 2017-01-04 | 上海兆芯集成电路有限公司 | 输入输出扩展芯片以及其验证方法 |
CN106326049A (zh) * | 2016-08-16 | 2017-01-11 | 广东欧珀移动通信有限公司 | 一种故障定位方法及终端 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8275977B2 (en) * | 2009-04-08 | 2012-09-25 | Freescale Semiconductor, Inc. | Debug signaling in a multiple processor data processing system |
US8627160B2 (en) | 2010-04-21 | 2014-01-07 | Lsi Corporation | System and device for reducing instantaneous voltage droop during a scan shift operation |
US9032356B2 (en) | 2013-03-06 | 2015-05-12 | Lsi Corporation | Programmable clock spreading |
GB2527108A (en) | 2014-06-12 | 2015-12-16 | Ibm | Tracing data from an asynchronous interface |
KR20160050794A (ko) * | 2014-10-31 | 2016-05-11 | 삼성에스디에스 주식회사 | 3차원 프린팅 제어 장치 및 방법 |
US9672135B2 (en) * | 2015-11-03 | 2017-06-06 | Red Hat, Inc. | System, method and apparatus for debugging of reactive applications |
US10527673B2 (en) | 2016-08-01 | 2020-01-07 | Microsoft Technology Licensing, Llc | Hardware debug host |
CN112559437B (zh) * | 2019-09-25 | 2024-07-30 | 阿里巴巴集团控股有限公司 | 一种调试单元及处理器 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5678003A (en) * | 1995-10-20 | 1997-10-14 | International Business Machines Corporation | Method and system for providing a restartable stop in a multiprocessor system |
US6018815A (en) * | 1996-10-18 | 2000-01-25 | Samsung Electronics Co., Ltd. | Adaptable scan chains for debugging and manufacturing test purposes |
US5805608A (en) * | 1996-10-18 | 1998-09-08 | Samsung Electronics Co., Ltd. | Clock generation for testing of integrated circuits |
US5701308A (en) * | 1996-10-29 | 1997-12-23 | Lockheed Martin Corporation | Fast bist architecture with flexible standard interface |
US5828824A (en) * | 1996-12-16 | 1998-10-27 | Texas Instruments Incorporated | Method for debugging an integrated circuit using extended operating modes |
US6112298A (en) * | 1996-12-20 | 2000-08-29 | Texas Instruments Incorporated | Method for managing an instruction execution pipeline during debugging of a data processing system |
US5900753A (en) * | 1997-03-28 | 1999-05-04 | Logicvision, Inc. | Asynchronous interface |
US6167365A (en) * | 1998-02-06 | 2000-12-26 | Texas Instruments Incorporated | Method of initializing CPU for emulation |
US6687865B1 (en) * | 1998-03-25 | 2004-02-03 | On-Chip Technologies, Inc. | On-chip service processor for test and debug of integrated circuits |
US6966021B2 (en) * | 1998-06-16 | 2005-11-15 | Janusz Rajski | Method and apparatus for at-speed testing of digital circuits |
US6820051B1 (en) * | 1999-02-19 | 2004-11-16 | Texas Instruments Incorporated | Software emulation monitor employed with hardware suspend mode |
US6601189B1 (en) * | 1999-10-01 | 2003-07-29 | Stmicroelectronics Limited | System and method for communicating with an integrated circuit |
JP4190114B2 (ja) * | 1999-11-10 | 2008-12-03 | 株式会社ルネサステクノロジ | マイクロコンピュータ |
US7168032B2 (en) * | 2000-12-15 | 2007-01-23 | Intel Corporation | Data synchronization for a test access port |
US7007213B2 (en) * | 2001-02-15 | 2006-02-28 | Syntest Technologies, Inc. | Multiple-capture DFT system for detecting or locating crossing clock-domain faults during self-test or scan-test |
US6823224B2 (en) * | 2001-02-21 | 2004-11-23 | Freescale Semiconductor, Inc. | Data processing system having an on-chip background debug system and method therefor |
US7370256B2 (en) * | 2001-09-28 | 2008-05-06 | Inapac Technology, Inc. | Integrated circuit testing module including data compression |
US6903582B2 (en) * | 2002-12-13 | 2005-06-07 | Ip First, Llc | Integrated circuit timing debug apparatus and method |
US7308625B1 (en) * | 2003-06-03 | 2007-12-11 | Nxp B.V. | Delay-fault testing method, related system and circuit |
US7055117B2 (en) * | 2003-12-29 | 2006-05-30 | Agere Systems, Inc. | System and method for debugging system-on-chips using single or n-cycle stepping |
US7219265B2 (en) * | 2003-12-29 | 2007-05-15 | Agere Systems Inc. | System and method for debugging system-on-chips |
US7290188B1 (en) * | 2004-08-31 | 2007-10-30 | Advanced Micro Devices, Inc. | Method and apparatus for capturing the internal state of a processor for second and higher order speepaths |
-
2005
- 2005-01-14 US US11/036,445 patent/US20060161818A1/en not_active Abandoned
- 2005-08-16 TW TW094127863A patent/TWI288871B/zh active
- 2005-08-29 CN CNB200510095971XA patent/CN100388215C/zh active Active
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106326049A (zh) * | 2016-08-16 | 2017-01-11 | 广东欧珀移动通信有限公司 | 一种故障定位方法及终端 |
CN106326049B (zh) * | 2016-08-16 | 2019-07-19 | Oppo广东移动通信有限公司 | 一种故障定位方法及终端 |
CN106294228A (zh) * | 2016-08-17 | 2017-01-04 | 上海兆芯集成电路有限公司 | 输入输出扩展芯片以及其验证方法 |
CN106294228B (zh) * | 2016-08-17 | 2019-06-04 | 上海兆芯集成电路有限公司 | 输入输出扩展芯片以及其验证方法 |
Also Published As
Publication number | Publication date |
---|---|
US20060161818A1 (en) | 2006-07-20 |
TWI288871B (en) | 2007-10-21 |
CN100388215C (zh) | 2008-05-14 |
TW200624833A (en) | 2006-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1770112A (zh) | 芯片硬件上利用多重异步时钟的除错支持单元 | |
CN102103535B (zh) | 多核处理器、多核处理器的调试系统和调试方法 | |
CN102508781B (zh) | 多核架构中的调试 | |
CN100504798C (zh) | 处理器故障隔离的方法和装置 | |
CN101458652B (zh) | 微控制器嵌入式在线仿真调试系统 | |
CN101529390B (zh) | 用于多线程数字信号处理器的非侵入性线程选择性调试方法及系统 | |
CN101535962B (zh) | 用于可信/不可信数字信号处理器调试操作的方法及系统 | |
CN101408862B (zh) | 一种嵌入式系统测试方法 | |
CN101382583B (zh) | 多核微处理器jtag调试方法 | |
CN101458725B (zh) | 微控制器芯片及其调试方法 | |
WO2018148405A1 (en) | Real-time capture of traffic upon failure for protocol debug | |
CN1949723A (zh) | 一种atca中jtag器件远程维护的方法及系统 | |
CN101937392A (zh) | 一种嵌入式软件动态缺陷检测方法 | |
CN1845120A (zh) | 一种恶意代码自动分析系统及方法 | |
CN101681191A (zh) | 在电能转换期间的数字信号处理器调试 | |
CN101102566B (zh) | 一种手机jtag调试接口信号设计方法及其调试方法 | |
CN1698044A (zh) | 利用可附着子模块的电子设备的快速配置 | |
CN1243307C (zh) | 通过jtag对单板进行测试的方法以及设备 | |
Spannagel et al. | The pxarCore Library-Technical Documentation, Reference Manual, and Sample Applications | |
JP3929572B2 (ja) | 集積回路装置及びその通信方法 | |
CN101256217B (zh) | 一种高监控覆盖率片上系统调试平台 | |
CN1230885C (zh) | 一种边界扫描芯片容错测试方法及系统 | |
US20030233221A1 (en) | JTAG server and sequence accelerator for multicore applications | |
CN1737767A (zh) | 芯片电子硬件上具有中止执行能力的除错支援单元及方法 | |
CN1462979A (zh) | 一种flash芯片的加载方法和jtag控制器 |
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 |