CN101529390B - 用于多线程数字信号处理器的非侵入性线程选择性调试方法及系统 - Google Patents
用于多线程数字信号处理器的非侵入性线程选择性调试方法及系统 Download PDFInfo
- Publication number
- CN101529390B CN101529390B CN2007800395339A CN200780039533A CN101529390B CN 101529390 B CN101529390 B CN 101529390B CN 2007800395339 A CN2007800395339 A CN 2007800395339A CN 200780039533 A CN200780039533 A CN 200780039533A CN 101529390 B CN101529390 B CN 101529390B
- Authority
- CN
- China
- Prior art keywords
- thread
- debug
- digital signal
- signal processor
- debugging
- 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 - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 94
- 238000012545 processing Methods 0.000 claims abstract description 30
- 230000004044 response Effects 0.000 claims abstract description 14
- 238000012360 testing method Methods 0.000 claims description 17
- 230000008859 change Effects 0.000 claims description 8
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 claims description 6
- 229910052710 silicon Inorganic materials 0.000 claims description 6
- 239000010703 silicon Substances 0.000 claims description 6
- 230000008569 process Effects 0.000 abstract description 65
- 238000004891 communication Methods 0.000 abstract description 16
- 230000005540 biological transmission Effects 0.000 abstract description 3
- 238000013461 design Methods 0.000 abstract description 3
- 230000006870 function Effects 0.000 description 14
- 230000009466 transformation Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 230000008878 coupling Effects 0.000 description 5
- 238000010168 coupling process Methods 0.000 description 5
- 238000005859 coupling reaction Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000001413 cellular effect Effects 0.000 description 3
- 230000001976 improved effect Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000001228 spectrum Methods 0.000 description 2
- 230000008093 supporting effect Effects 0.000 description 2
- 201000002569 3-methylglutaconic aciduria type 5 Diseases 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 230000002045 lasting effect Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 230000013011 mating Effects 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/3009—Thread control instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
Abstract
本发明揭示用于数字信号处理器的设计及使用的技术,包含(但不限于)用于处理通信(例如CDMA)系统中的发射的技术。所揭示的方法及系统在包含使用断点指令来产生调试事件的多线程过程中提供处理指令。产生调试事件响应于断点指令的执行而发生且响应于所述调试事件而执行调试指令。所述调试指令通过将至少一个或一个以上线程转变到调试模式中来调试所述多线程处理器中的处理指令。本发明产生调试返回以用于报告所述多线程处理器的所述线程的子组中正执行的调试指令。
Description
技术领域
本发明所揭示的标的物涉及数据通信。更特定来说,本发明涉及一种用于多线程数字信号处理器的新颖及经改进的非侵入性线程选择性调试方法及系统。
背景技术
电信及支持视频、复杂的音频、视频会议及其它丰富的软件应用的其它类型的电子设备日益地包括信号处理。信号处理需要快速的数学计算及以复杂而重复的算法的数据产生。许多应用需要实时的计算,即,信号是时间的连续函数,所述信号必须被取样且转换为数字信号以供进行数字处理。处理器必须执行在样本到达时对其实施离散计算的算法。最优化数字信号处理器(DSP)的架构以处置此类算法。良好的信号处理引擎的特性包含:快速灵活的算数计算单元、往来于所述计算单元的不受限制的数据流、所述计算单元中的经扩展的精确度及动态范围、双地址产生器、有效的程序定序及易于编程。
DSP技术的一个有前景的应用包含例如支持经由卫星或陆地链路在用户之间的话音及数据通信的码分多址(CDMA)系统的通信系统。CDMA技术在多址通信系统中的使用揭示于名称为″使用卫星或陆地中继器的扩频多址通信系统(SPREADSPECTRUM MULTIPLE ACCESS COMMUNICATION SYSTEM USING SATELLITEOR TERRESTRIAL REPEATERS)″的第4,901,307号美国专利及名称为″用于在CDMA蜂窝式远程手持机系统中产生波形的系统及方法(SYSTEM AND METHODFOR GENERATING WAVEFORMS IN A CDMA CELLULAR TELEHANDSETSYSTEM)″的第5,103,459号美国专利中,此二者均受让于所请求标的物的受让人。
CDMA系统通常经设计以符合一个或一个以上标准。这种第一代的一个标准是″用于双模宽带扩频蜂窝式系统的TIA/EIA/IS-95终端基站兼容性标准″,在下文中称为IS-95标准。所述IS-95 CDMA系统能够发射话音数据及包数据。可更有效地发射包数据的较新一代标准是由名称为″第三代合作伙伴计划″(3GPP)的联盟提供的,且包含于一组可公开获得的文档中,其中包含3G TS 25.211号、3G TS 25.212号、3G TS 25.213号及3G TS 25.214号文档。3GPP标准在下文中称为W-CDMA标准。
例如,采用W-DCMA标准的复杂DSP操作软件需要稳健的开发工具。此类开发工具可包含用于代码产生、集成、测试、调试及评估应用性能的开发工具。在开发及操作软件或复杂DSP应用(例如高级电信应用)时,需要精密而非侵入性的调试软件。也就是说,调试软件应用不但须足以稳健以监视、测试及支持软件缺陷及操作问题的校正,而且其必须可操作以在调试操作期间不干扰核心处理器软件。否则,在使用此类调试软件期间将不会检测到或适当地检测到核心处理软件中的任何问题。
例如,循环精确剖析及非侵入性调试特征对于最优化及调试实时视频软件来说是关键的。同样,开发板需要对将大量测试数据移入及移出处理器的支持以启用广泛的实时测试。这些及其它情况需要非侵入性核心处理器软件调试。因此,在多线程数字信号处理器中存在以非侵入性方式调试多线程操作软件的需要。此外,在其中存在实时操作软件的环境中,侵入性调试程序可导致的软件的任何改变均可明确地改变处理器中的发生,这既有害于确定软件操作问题,又有害于任何必要的调试操作。
从上文可显而易见,需要可以交互作用而又对多线程数字信号处理器的实时行为无侵入性的方式来操作的DSP调试过程。
在多线程DSP中,一个或一个以上线程之间的交互作用也可导致核心处理器故障。虽然个别线程可如所编程及所需要个别地操作,但情况仍如此。同样,操作线程的不同组合可仍导致调试软件分析对其有益的不同类型的编程问题。
此外,在多线程DSP中,可存在许多点,即需要进行调试操作的断点。此类断点可由于硬件条件、软件条件、外部条件及其它影响核心处理器应用的条件而发生。一种灵活类型的多线程DSP调试软件应用将优选地适应需要核心处理器应用调试的各种各样的条件。事实上,灵活性可要求调试软件根据使调试软件进入操作的那些条件而变化(即使是动态地)。
依据这些考虑,很明显,需要一种支持调试个别线程的多线程DSP调试过程。
还需要一种准许根据核心处理应用的需要对一个、两个或更多个线程进行线程选择性调试操作的多线程DSP调试过程。
还需要一种准许多线程DSP将调试过程与影响DSP操作的各种各样的条件结合的方法及系统,所述条件包含(例如)硬件条件、软件条件、外部条件及可针对其建立调试断点的其它条件。
发明内容
本发明揭示用于为多线程数字信号处理器提供非侵入性线程选择性调试方法及系统的技术,所述技术既改善了数字信号处理器的操作又改善了数字信号处理器指令在日渐强大的软件应用中的有效使用,所述应用包含在个人计算机、个人数字助理、无线手持机及类似电子装置中操作的应用,且增大了相关联的数字信号处理器速度及服务品质。
根据所揭示标的物的一个方面,提供一种对多线程数字信号处理器进行非侵入性调试的方法及系统。所述方法及系统允许将调试指令存储在第一组寄存器中且将处理指令存储在第二组寄存器中。所述第二组寄存器不同于所述第一组寄存器。所述方法及系统在使用所述多线程数字信号处理器的至少一个或一个以上线程的多线程过程中进一步执行处理指令。所述处理指令的子集是用于产生至少一个调试事件的断点指令。所述过程响应于对所述断点指令中的至少一者的执行而产生至少一个调试事件且响应于所述调试事件而执行调试指令,所述调试指令允许通过将所述多线程数字信号处理器的至少一个或一个以上线程转变到调试操作模式中来对处理指令在多线程数字信号处理器中的执行进行非侵入性调试。本发明从所述多个调试指令的执行中产生调试返回以用于报告所述多线程数字信号处理器的线程的子组中正执行的调试指令。
根据本文中所提供的说明,所揭示标的物的这些及其它优点以及额外的新颖特征将显而易见。此发明内容的意图并非对所请求标的物进行全面说明,而是提供本标的物的某些功能的简短概述。通过检查下文中的图式及详细说明,本文提供的其它系统、方法、特征及优点对于所属领域的技术人员将显而易见。所有此类额外的系统、方法、特征及优点均意在包含于此说明书内,且在所附权利要求书的范围内。
附图说明
结合附图阅读下文列举的详细说明,所揭示标的物的特征、性质及优点将变得更加显而易见,其中所有图式中相同的参考字符均对应地标识,且其中:
图1是可实施本发明的通信系统的简化方块图;
图2图解说明用于实施本发明教示的DSP架构;
图3提供所揭示标的物的技术优点的数字信号处理器的一个实施例的架构方块图;
图4呈现本发明的模式控制方面的功能方块图,其中包含在非侵入性调试操作模式中的操作;
图5显示用于实现本发明的调试操作的模式控制寄存器;且
图6显示本发明各种非侵入性调试算法方面的流程图。
具体实施方式
关于一种用于多线程数字信号处理器的非侵入性线程选择性调试方法及系统的所揭示标的物具有用于本文所呈现的益处可对其有利的任何类型的多线程处理的应用。一种此应用出现于电信中,且特定来说出现在采用一个或一个以上数字信号处理电路的无线手持机中。为解释可如何使用这一无线手持机,图1提供可实施所揭示的中断处理方法及系统的所呈现实施例的通信系统10的简化方块图。在发射发射器单元12处,通常以块为单位将数据从数据源14发送到发射(TX)数据处理器16,发射数据处理器16将所述数据格式化、编码及处理以产生一个或一个以上模拟信号。接着将所述模拟信号提供给发射发射器(TMTR)18,发射发射器18对基带信号进行调制、滤波、放大及上变频以产生经调制信号。接着经由天线20将所述经调制信号发射到一个或一个以上接收器单元。
在接收器单元22处,所发射的信号由天线24接收且被提供到接收器(RCVR)26。在接收器26内,对所接收的信号进行放大、滤波、下变频、解调及数字化以产生同相(I)及(Q)样本。所述样本接着由接收(RX)数据处理器28解码及处理以恢复所发射的数据。以与发射发射器单元12处执行的编码及处理互补的方式执行接收器单元22处的解码及处理。接着将所恢复的数据提供到数据汇30。
上文描述的信号处理支持发射话音、视频、包数据、消息传送及其它类型的单向通信。双向通信系统支持双向数据发射。然而,图1中为简便起见未显示其它方向的信号处理。通信系统10可以是码分多址(CDMA)系统、时分多址(TDMA)通信系统(例如,GSM系统)、频分多址(FDMA)通信系统或支持通过陆地链路在用户之间的话音及数据通信的其它多址通信系统。在特定实施例中,通信系统10是符合W-CDMA标准的CDMA系统。
图2图解说明可充当图1的发射数据处理器16及接收数据处理器28的DSP 40架构。应强调,DSP 40仅表示大量可能的数字信号处理器实施例中的一个实施例,其可有效地使用本文呈现的教示及概念。因此,在DSP 40中,线程T0:T5(参考数字42到52)含有来自不同线程的指令集。电路54表示指令存取机构,且用于提取线程T0:T5的指令。电路54的指令被排入指令队列56中。指令队列56中的指令准备被发布到处理器管线66中(见下文)。可由发布逻辑电路58从指令队列56中选择单个线程,例如线程T0。读取所选线程的寄存器堆60,并将所读取的数据发送到执行数据路径62供用于槽0:槽3。在此实例中,槽0:槽3保证本实施例中采用的包分组组合。
来自执行数据路径62的输出去往寄存器堆写入电路64,还经配置以适应个别线程T0:T5,以返回来自DSP 40的操作的结果。因此,来自电路54且在到寄存器堆写入电路64之前的数据路径形成处理管线66。本实施例可采用具有多达6个线程T0:T5的单个处理器。处理器管线66具有6级,其匹配从电路54将数据项提取到寄存器60及64所必需的处理器循环的最小数目。DSP 40在处理器管线66内同时地执行不同线程T0:T5的指令。也就是说,DSP 40提供6个独立的程序计数器、用以区别处理器管线66内的线程T0:T5的指令的内部标记机构及触发线程交换的机构。
因此,DSP 40提供一种经设计以用于在各种各样的信号、图像及视频处理应用上具有高性能及低功率的通用数字信号处理器。图3提供DSP 40架构的简要概述,其中包含所揭示标的物的一个显现的相关联指令集架构的某些方面。DSP 40架构的实施方案支持交错多线程(IMT)。在此执行模型中,硬件通过交错来自管线中的不同线程的指令来支持多个硬件线程T0:T5的同时执行。此特性允许DSP 40包含主动时钟频率,同时仍维持高核心及存储器使用率。IMT在不需要昂贵的补偿机构(例如,无序执行、广泛转发网络等)的情况下提供高通过量。此外,DSP 40可包含IMT的变化形式,例如M艾哈迈德(M.Ahmed)等人所著且名称为″可变交错的多线程处理器方法及系统(Variable Interleaved Multithreaded Processor Method and System)″及″用于在多线程处理器中进行可变线程分配及交换的方法及系统(Method and System for Variable Thread Allocation and Switching in a Multithreaded Processor)″的共同受让的美国专利申请案中揭示的那些变化形式及新颖方法。″
图3特别提供了用于应用于可采用所揭示标的物的教示的单个线程的DSP 40的核心处理架构70方块图。方块图70描绘经由总线接口(I/F)73从AXI总线74接收指令的共享指令高速缓冲存储器72,所述指令包含混合的16-位及32-位指令。这些指令到达线程T0:T5的定序器76、用户控制寄存器78及监督器控制寄存器80。所揭示标的物的核心级系统架构还包含硅中调试系统(ISDB)82,所述硅中调试系统经由JTAG接口84与核心处理器70介接,下文将对此二者进行更详细描述。
定序器76将混合的双向超标量指令及四向VLIW指令提供给S-管道单元86、M-管道单元88、LD[加载]-管道90及LD/ST[存储]-管道单元92,其均与通用寄存器94通信。AXI总线74还经由具有共享数据高速缓冲存储器96的总线I/F 73将LD/ST指令传送给线程T0:T5。可选L2高速缓冲存储器/TCM 98信号包含具有共享数据TCM100的LD/ST指令,所述LD/ST指令进一步流向线程通用寄存器94。MSM专用控制器104从AHB外围总线102借助T0:T5传送中断,其中包含中断控制器指令、调试指令及定时指令。全局控制寄存器106借助线程T0:T5传送控制寄存器指令。
因此,DSP 40包含6个虚拟DSP核心,每一核心皆含有全局控制寄存器106及专用监督器控制寄存器80。全局控制寄存器106在所有线程之间共享。每一线程共享一共用数据高速缓冲存储器及一共用指令高速缓冲存储器。加载、存储及提取操作由共用总线接口服务。使用高性能AXI总线74及较低性能AHB总线102将数据及指令业务连接到核心外存储器及外围装置。集成的级2存储器(高速缓冲存储器及/或TCM)输入98是可选的。可通过存储器映射的加载及存储来进行外围装置存取。AHB与AXI之间的物理地址分区可配置在MSM层级处。
显然,所呈现的DSP 40的架构可演进且随时间而改变。例如,DSP 40可使用的指令高速缓冲存储器的数目可从6改变为1或其它高速缓冲存储器数目。超标量分派、TCM 100处的L1数据及其它架构方面可改变。然而,本发明标的物可在各种各样的配置中且对于DSP 40的一系列修改具有持续关联性。
ISDB 82经由JTAG接口84为DSP 40提供硬件调试器。ISDB 82通过共享系统或仅监督器寄存器以及所有线程之间的全局控制寄存器106来经由JTAG接口84提供软件调试特征,所述仅监督器寄存器以每线程为基础被分为若干监督器控制寄存器80。系统控制寄存器用于每线程中断及异常控制及每线程存储器管理活动。全局寄存器允许与ISDB 82交互作用以进行调试操作。
ISDB 82使得软件开发者能够在DSP 40操作时调试其软件。可使用ISDB 82硬件与在ISDB 82中操作的软件调试器程序的组合来调试DSP 40操作系统软件。ISDB82支持个别地调试硬件线程。用户可暂停线程执行,观察并更改线程寄存器,观察并更改指令及数据存储器、单步骤线程,向线程填塞指令,且重新开始线程执行。可信的用户可存取所有的ISDB 82特征,而不可信的用户仅可存取一个或一个以上特征。
ISDB 82可与调试器接口卡介接以全部通过JTAG接口84与驻存在程序计数器上的ISDB 82调试软件通信。主机调试器软件可通过读取及写入ISDB控制寄存器来与ISDB 82交互作用。例如,可通过识别将发生读取/写入的ISDB寄存器的40-位包以及32-位数据有效负载来进行通信。支持此操作的包格式可多达64个控制寄存器,每一控制寄存器均可为32位宽。
ISDB 82包含用于在调试操作期间控制安全的可信寄存器。如果已设置可信的ISDB 82,则所有ISDB 82寄存器对调试器软件均可见,且所有ISDB命令均可供使用。在可信的ISDB被清除的情况下,则ISDB 82仅准许一组受限制的操作。
可使得某些ISDB 82寄存器对核心软件可见。这些寄存器可经由监督器模式控制寄存器传送指令而被存取。所述核心指令包含断点指令。当设置可信的ISDB时,此指令致使执行线程进入调试模式120。此转变将线程控制移位到ISDB 82。除了执行断点的线程之外,其它线程可根据ISDB 82编程任选地进入调试模式120。如果ISDB82不可信或未被启用,则将此指令视为NOP。优选地,所述断点指令是包中的唯一指令。
图4呈现用于DSP 40的各种模式控制方面的处理模式图表110,其中包含ISDB82在调试过程期间的操作。图5显示用于实现本发明的调试操作的模式控制寄存器122。在一个实施例中,协助到/从所揭示的操作模式的转变的模式控制寄存器122包含占据位31到22的预留区段;等待位21到16;预留位16到6;及错误位5到0。虽然模式控制寄存器122可以许多不同方式来实施,但图5的说明性实施例可辅助了解以下对ISDB 82的论述,其中包含ISDB 82所拥有的各种性质及其所实现的操作。
现在参照图4,DSP 40支持对于所有线程具全局性且对于个别线程又具局部性的处理模式。每一DSP 40硬件线程个别地支持用户模式112及监督器模式114两种执行模式以及等待模式116、关断模式118及调试模式120三种非处理模式,所有这些模式均可出现于图4中。一个线程的模式与其它线程无关,例如,一个线程可处于等待模式116中,而另一线程则处于用户模式112中,等等。图4的每线程模式状态图表由各种指令或事件支持。这些指令或事件包含:“Except”(异常)或内部异常事件、“Int”(中断)或外部中断事件、“RTE”(返回)或来自异常模式的软件返回指令及“SSR”或SSR寄存器指令的更新、“Stop”(停止)或可从任何模式输入的软件停止指令、“Start”(开始)或同样可从任何模式输入的软件开始指令、“trap”(陷阱)或软件陷阱指令、“Wait”(等待)或软件等待指令、“Resume”(重新开始)或软件重新开始指令、“DE”或调试事件及“DR”或调试指令。虽然所揭示标的物的不同实施方案中的功能可与本文呈现的功能略有不同,但可对“Start”、“Wait”、“Resume”、“DE”及/或“DR”的含义给予其与所请求标的物的范围相一致的最宽泛的解释。
在用户模式112及监督器模式114两种模式中,寄存器在DSP 40中均可用。用户模式寄存器分为一组通用寄存器及一组控制寄存器。通用寄存器用于所有通用计算,其中包含地址产生、标量及向量算术。控制寄存器支持例如硬件环路、谓词等专用功能。
通用寄存器为32位宽且可作为单个寄存器或作为两个寄存器的经对准对而被存取。通用寄存器堆提供指令的所有操作数,其中包含供加载/存储的地址、用于数字指令的数据操作数及用于向量指令的向量操作数。
DSP 40寄存器及指令支持采用标准C语言惯例的软件堆栈的有效使用。所述堆栈从高地址向低地址生长。堆栈指针寄存器指向堆栈顶部的最后有效元素。进栈操作首先使堆栈指针递减且接着将数据写入到堆栈,而出栈操作则从堆栈读取且接着使堆栈指针递增。
堆栈上的程序帧含有用于函数调用的返回地址及所述程序所需要的所有局部变量及数据。另外,帧指针存储在返回地址之后。此帧指针含有堆栈上的先前程序帧的地址。其目的是通过允许调试器检查存储器中的堆栈来促进调试且容易地确定调用次序、函数参数等。
调试模式120是一种其中线程正等待来自ISDB 82的命令的特殊状态。一旦发生ISDB调试事件(例如通过执行软件断点指令、来自ISDB 82的断开命令或硬件断点的发生),所指示的线程即可进入调试模式120。当处于调试模式120中时,所述核心由ISDB 82经由来自JTAG接口84的命令来控制。当ISDB 82因执行重新开始命令而释放线程时,所述线程可根据其当前的模式设置重新开始操作。当线程处于调试模式120中时,其由ISDB 82控制且不能由其它线程控制。可忽略来自正在运行的线程且以调试模式120中的线程为目标的Wait、Resume、Start或Stop指令。类似地,调试模式120中的线程可忽略非遮罩式中断(NMI)。
硬件重置模式(未显示)及调试模式120对于所有线程具全局性。不考虑任何线程的处理状态,一旦断定硬件重置管脚,DSP 40即可进入硬件重置模式。在硬件重置模式中,所有寄存器均设置到其重置值。在去断定所述硬件重置管脚之前不可发生任何处理。当断定重置管脚时,处理器可转变到重置模式中且所有寄存器均可重置到其硬件重置值。在去断定重置管脚之后,可给予线程T0软重置中断。此可致使线程T0进入监督器模式114且在重置向量位置处开始执行。所有其它线程可保持关断。此时,软件可自由地个别地控制每一线程的模式转变。
每一线程可具有在模式控制寄存器122中的控制到及从所述线程的关断模式118的转变的一个转变位。经由Stop指令写入到所述转变位关断相关联的线程。经由Start指令写入到所述转变位接通所述线程且触发软重置中断。每一线程可包含在模式控制寄存器122中的用于控制到及从等待模式116的转变的一个等待位。经由等待指令写入到等待位可使相关联的线程闲置,而经由重新开始指令写入可致使所述线程重新开始,无论其在设置等待模式116之前正进行什么操作。
通过使用断点,DSP 40的6个线程可个别地进入及退出调试模式120。断点触发器可来自5个源,其对应于ISDB 82中所支持的5种不同类型的断点。这些断点包含硬件断点、软件断点、ETM断点、JTAG接口断点及外部断点。一旦命中断点,线程即从其当前模式(例如,等待/运行)转变到调试模式120。在调试模式120中,所述线程等待来自ISDB 82的命令。关断模式118中的线程断电且可不接受来自ISDB 82的任何命令。进入调试模式120的等待时间由实施方案界定。例如,实施方案可在进入调试模式120之前选择完成既定的操作,例如完成未决加载请求。在一个实施例中,线程识别符寄存器含有8-位读取/写入字段且用于保持软件线程识别符。此字段由硬件调试器用来匹配断点。
存在进入断点过程的若干不同方式。例如,存在两个硬件断点。如果寄存器等于预定值,则当程序计数器(PC)匹配所述预定值时,所述过程则进入到调试模式120中。除PC之外,可存在其它限定符,例如线程ID,例如地址转译(物理地址或虚拟地址)。ASID是类似于过程中的过程ID或多线程过程中的特定线程的标签。因此,可使用物理地址、虚拟地址、ASID、PC或其它限定符来任选地获得程序在过程空间中的位置确定。
ISDB 82还界定两个输出中断管脚。这些信号从ISDB 82进入到MSM 104中且被固定在MSM层级处。这两个信号是断开事件及JTAG接口84命令。在断开事件命令下,可编程ISDB 82以便一旦在所指示的线程数目上发生断点即使此中断出现。在JTAG接口84命令下,JTAG接口84发送命令来使此中断出现。
硬件断点用线程程序计数器、ASID(地址空间识别符)及线程识别符寄存器中的一者或一者以上与经ISDB编程的值匹配。当满足匹配条件时,线程进入调试模式120。除命中断点的线程之外,其它线程也可经配置以进入调试模式120。此可通过(例如)断点配置寄存器编程来实现。
硬件断点可支持各种特征,其中包含(例如)匹配32-位编程计数器值(其可以是物理的或虚拟的)、匹配6-位ASID值、匹配8-位线程识别符值及/或在命中断点时迫使其它线程进入调试模式120。为设置硬件断点,可通过JTAG接口84且接着通过使用经由ISDB 82配置寄存器启用及配置的断点来设置断点程序计数器及断点配置寄存器。
所揭示的标的物还提供某些软件断点。例如,可使用用户级断点指令来进入硬件调试模式120。当执行此指令时,所述核心检查系统配置ISDB可信位。如果设置ISDB可信位,则线程可进入调试模式120。在可信ISDB被清除或ISDB被停用的情况下,断点指令的执行可被视为NOP。不存在对断点指令的程序计数器地址的限制。然而,不可以其它指令来包化断点指令。
所揭示的标的物还提供用于起始监视DSP 40核心处理器的操作的ETM过程的嵌入式追踪宏或ETM断点。ETM支持各种各样的触发条件。同样,当针对这一转变而设置断点配置时,将硬件断点链接到ETM断点可发生。通过使用ETM(嵌入式追踪映射),ISDB 82提供使用处理器硬件的邻近处理器的区段的能力以达到监视处理器操作的目的。另外,所揭示的标的物提供将一个或一个以上线程上的调试操作链接到发生在一个或一个以上其它线程上的操作的能力。例如,如果一个硬件线程命中断点,则本发明准许开始或停止另一线程中的处理。因此,本发明可保证独立地调试任何一个线程或一组线程以及控制发生在一个线程或一组线程上的事件可如何影响一个线程或一组线程上的操作。
因此,所揭示的标的物提供用于在发生可导致进入到调试模式120中的断点的情况下移动到调试模式120中的路径。所揭示的标的物控制多线程数字信号处理器中的哪一线程或哪些组的线程进入到调试模式120中。ETM断点调试执行可用于处理器调试的操作,例如性能剖析。所述块可提供用于进入调试过程的断点。
在此情况下,针对匹配线程而启用硬件断点及ETM断点线程数目掩码两者。在此情况下,DSP 40可仅当在ETM断点之后触发硬件断点时切换到调试模式120。可忽略在发生ETM断点之前发生的任何硬件断点触发。当将断点配置设置到“0”或不设置时,硬件断点及ETM断点线程数目掩码可正常操作。也就是说,当被启用时,对应的断点触发器可致使线程立即切换到调试模式120。
在ISDB断开命令下触发JTAG接口84断点以使得命令掩码中所指示的线程可进入调试模式120。ISDB 82还通过外部断点来支持多核心调试。当在外部调试请求信号上检测到上升边缘时触发这一断点。一旦此事件发生,外部断点线程数目掩码中所指示的所有线程即可进入调试模式120。
所揭示的标的物的另一特征称为“指令填塞”。当主机调试过程力图检查核心的状态时,指令填塞发生。因此,当断点发生时,所述过程力图检查所述核心以确定所述操作正在所述核心处发生。进行所述操作的机制是,发送处理器指令以达到在正进入调试操作模式120的线程上执行指令的目的。
在指令填塞操作中,所述指令可在调试模式120时间引导处理器读取所有受影响的寄存器或所有受影响的寄存器的一部分。另外,调试模式120可引导处理器加载预定一组或预定类型的指令。除读取及写入所述状态之外,基本上任何指令均可在此过程中被读取或写入到所述核心。例如,如果期望在处理器核心上运行某些算法或过程,则所揭示标的物现在允许设置选项。在指令填塞过程中,到一位置的分支及所述过程可接着释放用于操作的代码。此代码可包含(例如)用于出于所规定的一组原因而执行某些功能的代码。一个此原因可以是处理复杂的数据结构。如果指令为将所有元素读取出既定的数据结构,则所述过程可为重构所述数据结构。这一过程可极为困难。在具有待读出数据结构的指令集的情况下,所述过程可为调用所述指令集以获得特定的指令,接着特定的指令可运行到所需元件(例如元件12)。此将明显地简化许多类型的数据检索及类似的操作。
指令填塞是一种供ISDB 82用以执行核心上的指令的方法。出于各种原因来填塞指令,其中包含用于读取及写入核心寄存器及存储器、用于为用户提取的调试器操作及用于用户输入的指令。为填塞指令,用户必须首先用待执行的32-位指令对填塞指令寄存器进行编程。为进行指令填塞,可通过首先将命令字段设置到填塞代码且接着将线程数目字段设置到用以接收指令的线程来写入ISDB命令寄存器。在可填塞指令之前,所选线程可处于调试模式120中。如果设置线程数目中的一个以上位或所选线程不处于调试模式120中,则结果是不确定的。接着,包括设置所填塞的指令(用户或监督器)的特权级的阶段发生。
在发布填塞命令之后,可以选定的特权级在选定的线程上执行指令。在指令填塞期间,程序计数器不前进。使用程序计数器(导致异常的分支或指令)的所填塞的指令可使用线程的当前程序计数器值。在所填塞的指令导致异常的情况下,ISDB状态寄存器可指示异常已发生。所述线程可保持在调试模式120中。所述线程的经设计的寄存器可反映所述异常状态。优选地,ISDB 82调试软件在填塞可导致异常的指令之后询问ISDB状态寄存器以了解是否发生了异常。
一旦已认识到异常,本文所揭示的过程即包含关于如何处置所述情况的若干选择。例如,调试器软件可选择对异常返回点处的软件或硬件断点进行编程且重新开始线程以运行处置器。接着,调试器可将线程重新引导到OS“帮助器”功能。接下来可发生使用单个步骤步进通过处置器及手动地解决所述问题(例如重新加载TLB)。然而,所述特定策略可根据OS及/或软件调试器实施方案而不同。
可通过填塞适当的指令序列来存取寄存器、高速缓冲存储器及存储器。用于指令的步骤序列可包含使用ISDB调试算法来读取/写入寄存器及高速缓冲存储器。所述调试器软件可通过填塞适当的控制寄存器传送指令来读取/写入线程寄存器以在核心寄存器与ISDB邮箱之间移动数据。可使用监督器特权级来填塞此指令以确保不发生异常。
使用重新开始命令来将线程从调试转变到在核心模式控制寄存器中编程的模式。存在两种重新开始的方式,从JTAG接口84命令或从外部信号。如果从JTAG接口84命令重新开始,则命令掩码中所指示的处于调试模式120中的线程终止到模式控制寄存器中所指示的模式。如果从外部信号重新开始,则外部重新开始线程数目掩码中所指示的处于调试模式120中的线程转变到模式控制寄存器中所指示的模式。
执行ISDB重置命令迫使硬件重置且导致整个DSP(所有线程)重置。此可将所有寄存器设置到初始值,例如关断线程1-5,且向线程T0发送重置中断。如果需要仅重置某些线程,则此可以首先以适当的掩码设置填塞Start指令的程序来完成。此可导致重置中断对所于指示的线程而未决。接着所述过程包括在所需线程上执行ISDB重新开始指令。
另一类型的断点是JTAG接口84断点,其中主机将命令发送到处理器且宣告断开。基本存在进入的外部管脚。在此实施例中,ISDB 82控制控制寄存器可由调试器主机软件经由JTAG接口84来存取。ISDB 82提供可由主机系统用来配置ISDB 82以执行不同调试任务且与DSP 40核心处理器通信的各种控制寄存器。例如,ISDB 82状态寄存器指示ISDB 82的当前状态。ISDB 82状态寄存器的位指示哪些线程处于“等待”对运行模式中且其它位指示哪些线程处于“关断”模式中。其反映核心模式控制寄存器的E位字段。通常不能调试(例如)关断的线程。因此,如果ISDB命令被发送到关断的线程,则结果是不确定的。其它调试模式120状态位指示哪些线程处于调试模式120中。如果这些位指示线程处于调试模式120中,则等待/运行模式位指示在进入调试模式120之前的模式。
另外其它位可指示填塞指令状态,即,填塞指令过程是否已成功或填塞指令是否导致异常。ISDB命令状态位表示ISDB命令是成功还是失败。另一组位在任何线程处于调试模式120中时提供全局中断停用,以便针对调试模式120中的线程来停用中断,且针对其它线程启用中断。当任何线程处于调试模式120中时,针对所有线程停用中断。
另外其它位可形成指示依据外部重新开始信号重新开始哪些线程的字段。依据外部重新开始信号,对于具有掩码位设置的线程,如果所述线程处于调试模式120中,则其可重新开始其先前的模式,否则不存在任何影响。另一字段指示依据外部断点请求断开哪些线程。在ISDB 82中接收外部断点信号时,对于具有掩码位设置的线程,如果所述线程不处于调试模式120中,则其可进入调试模式120,否则不存在任何影响。
同样,ISDB配置指令可启用或停用ISDB 82的各种特征。当任何线程处于调试模式1200中时,全局中断停用发生,从而针对处于调试模式120中的线程停用中断。ISDB配置寄存器中的另一字段可指示可依据外部重新开始信号重新开始哪些线程。依据外部重新开始信号,对于具有掩码位设置的线程,如果此线程处于调试模式120中,则所述线程重新开始其先前的模式。否则,不存在任何影响。
ISDB寄存器中的又一字段可指示当ISDB 82接收到外部断点请求时断开哪些线程。在接收到外部断点信号时,对于具有掩码位设置的线程,如果所述线程不处于调试模式120中,则其可进入调试模式120。否则不存在任何影响。
对于处于调试模式120中的线程,断点信息寄存器指示哪一触发导致了断点。此可为指示在断点指令执行时断开哪些额外线程的6-位字段。最低有效位可针对线程数目0,下一位针对线程数目1,依此类推。在断点指令执行时,曾执行断点的线程可进入调试模式120。另外,具有设置在此掩码中的位的线程可进入调试模式120。
存在从ISDB 82去往MSM的中断信号断开事件。一旦此掩码中指示的线程数目进入调试模式120中,即使断开事件中断出现。在一个实施例中,位0针对线程数目0,位1针对线程数目1,等等。对于处于调试模式120中的线程,这些位指示导致转变到调试模式120的原因。对于不处于调试模式120中的线程,这些位是不确定的。因此,位指示硬件断点、断点指令执行、ETM断点、JTAG接口84断点、外部断点的存在。同样,其它位可指示断点源。断点程序计数器包含若干寄存器,所述寄存器与断点程序计数器相同,除了所述寄存器控制硬件断点之外。使用断点配置寄存器来与线程的程序计数器寄存器进行比较。
ISDB 82命令寄存器可包含用于指示哪些线程可转变到调试模式120的断开命令。对于重新开始命令,所述断点命令用于指示将重新开始哪些线程。ISTEP命令指示哪些线程将在步进式过程中步进。填塞指令命令指示哪一线程可接收用于执行指令填塞操作的填塞指令。填塞指令特权允许某些所填塞的指令在用户模式中执行,而其它指令则可在监督器模式中执行。
依据断开命令,DSP 40可将线程数目掩码中所指示的所有线程转变到调试模式120。所述重新开始命令致使处理器将线程数目掩码中所指示的所有线程转变到运行模式。步进命令允许数字信号处理器步进用于一个包的线程数目掩码中所指示的所有线程。如果所指示的线程不处于调试模式120中,则不存在任何影响。
填塞命令致使数字信号处理器在线程数目掩码中所指示的线程上执行填塞指令寄存器中所含有的32-位指令。仅可设置所述掩码中的一个位。如果所指示的线程不处于调试模式120中,则所述行为是不确定的。重置命令起始对DSP的硬件重置。将寄存器设置到其初始值,关断线程1到5,且给予线程T0重置中断。依据中断命令,ISDB 82使JTAG接口84命令中断出现。此信号从ISDB 82中进入到MSM 104中且被固定在MSM层级处。ISDB 82启用寄存器启用ISDB 82操作且同时检验“安全”ISDB 82启用位及ISDB 82时钟的状态。
在已寻址支持ISDB 82的操作的各种命令之后,ISDB 82调试操作的例示性过程可更具指令性。因此,图6显示用于本发明各种非侵入性调试算法方面的ISDB 82流程图。虽然可使用各种方法来执行图6的ISDB 82过程流,但所呈现的所揭示标的物的基本流实现了所需的非侵入性调试操作。因此,参照图6,ISDB进入步骤130过程流可从JTAG接口84开始。
非侵入性调试过程流可从ISDB进入步骤130继续进行到ISDB启用询问132,ISDB启用询问132测试是否已启用ISDB以用于DSP 40操作。如果是,则过程流去往硬件断点询问134。硬件断点询问134测试是否已遇到硬件断点。如果没有,则过程流可继续到软件断点询问136。否则,过程流去往调试操作步骤138,调试操作在此步骤开始。软件断点136测试软件断点的存在且在存在软件断点的情况下将ISDB82过程引导到调试操作步骤138。否则,过程流继续到ETM断点询问140。ETM断点140测试ETM断点的存在且在存在ETM断点的情况下将ISDB 82过程引导到调试操作步骤138。否则,过程流继续到JTAG接口84断点询问142。JTAG接口84断点142测试JTAG接口84断点的存在且在存在JTAB断点的情况下将ISDB 82过程引导到调试操作步骤138。否则,过程流继续到外部断点询问144。外部断点144测试外部断点的存在且在存在外部断点的情况下将ISDB 82过程引导到调试操作步骤138。否则,过程流返回到ISDB启用询问132。可在DSP 40的操作期间重复此类型的循环。
一旦ISDB 82过程流去往调试操作步骤138,“等待调试”询问146即测试等待模式116是否有效。如果是,则在等待116模式终止前不会发生调试操作。如果等待模式116不有效,则过程流去往ISTEP调试询问148。ISTEP调试询问148测试个别的步骤调试是否针对ISDB 82操作有效。如果是,则过程流去往ISTEP调试步骤150以执行此类型的调试操作。如果ISTEP调试不有效,则过程流可去往填塞指令询问152。填塞指令询问152测试指令填塞操作是否针对ISDB 82操作有效。如果是,则过程流可继续进行到填塞指令步骤154,从而表示本文所描述的指令填塞操作。如果指令填塞不有效,则过程流去往询问156。
在询问156处发生对是否已通过调试操作产生了核心DSP 40重置指令的测试。如果是,则过程流去往JTAG接口84以用于递送核心DSP 40数字信号处理器重置命令。如果尚未产生此重置命令,则过程流去往中断存在询问158。中断存在询问158测试是否存在对调试操作的中断。如果是,则ISDB 82操作中断且过程流去往JTAG接口84以用于向DSP 40递送调试操作已被如此中断的信号。如果不存在中断信号,则过程流去往重新开始正常线程询问160以用于测试是否将开始正常线程操作且是否将停止调试操作。如果是,则过程流去往JTAG接口84,DSP 40将受影响的线程从调试操作模式120转变到正常操作模式。如果将继续调试操作,则过程流返回到调试操作步骤138。
很明显,ISDB 82过程流的操作可显著地不同且仍在所揭示标的物的范围内。因此,提供图6的ISDB 82过程流以达到作为本发明一个可能的实施例而图解说明的目的。
所揭示标的物的另一方面包含通过DSP 40中的电力崩溃来进行调试。ISDB配置寄存器可由调试软件(经由JTAG接口84)及通过监督器核心软件(经由CR传送指令)两者来读取及写入。核心软件可使用此特征来在电力崩溃时保存及恢复ISDB配置。因为有多个主机来写入这些共享寄存器,所以仅以一致及共同排他的方式来写入所述寄存器可是重要的。
政策是,尽管核心处于断电或加电的过程中,但不允许JTAG接口84来读取/写入这些寄存器。类似地,当JTAG接口84处于修改这些寄存器的过程中时,不允许所述核心断电。通过硬件与软件的组合来加强此政策。系统配置中的位(ISDB核心准备寄存器位)可仅由核心监督软件写入。此位在对DSP 40的硬件重置时被清除。当清除所述位时,所有JTAG接口84读取及写入包均可返回无效状态。通过使用此位,所述核心可向主机软件指示其何时已完成加电序列且准备向ISDB通话。此给予核心恢复热启动加电(恢复)序列中的任何所保存的ISDB 82配置的机会。
通过电力崩溃进行调试的一个实例可存在于其中需要具功率意识的蜂窝电话中。而当需要执行调试时,DSP 40可关断或进入闲置状态。因此,所揭示的标的物提供设置可仅在电力崩溃情况下表明其自身的断点的能力。此提供调试的能力,即使是核心甚至不在操作或“接通”时。
在所揭示的实施例中,通过电力崩溃进行调试包含设置用于与DSP降低电力相关联的配置的一组断点。在DSP降低电力之前,DSP将所述配置保存在特定的寄存器中。这些特定的寄存器及配置允许RAM过程的暂停。因此,当DSP再次增加电力时,所述配置处于执行下一调试操作的位置中。
可以各种方式来实施本文中所揭示的用于多线程数字信号处理器中的非侵入性线程选择性调试的处理特征及功能。例如,不仅DSP 40可执行上文所描述的操作,而且本实施例还可实施于专用集成电路(ASIC)、微控制器、数字信号处理器或经设计以执行本文中所描述的功能的其它电子电路中。此外,本文所描述的过程及特征可存储在用于由此类各种信号及指令处理系统读取及执行的磁性媒体、光学媒体或其它记录媒体中。因此,提供上文对优选实施例的说明以使得所属领域的技术人员均能够制作或使用所请求的标的物。所属领域的技术人员将易于了解对这些实施例的各种修改,且本文中界定的一般原理在可不使用创新能力的情况下适用于其它实施例。因此,本文并不希望将所请求的标的物限定为本文中显示的实施例,而是想要赋予其与本文中所揭示的原理及新颖特征相一致的最宽广范围。
Claims (14)
1.一种用于调试多线程数字信号处理器的非侵入性方法,其包括:
通过使用所述多线程数字信号处理器中的多个线程执行多个处理指令;
识别用于产生至少一个针对所述多个线程中的一个或多个所指示的线程的调试事件的一个或多个断点指令;
在所述多线程数字信号处理器的硅中调试系统处接收所述一个或多个断点指令;
读取所述硅中调试系统的寄存器以确定对应于所述断点指令的所述一个或多个所指示的线程;
响应于执行所述断点指令中的至少一者而产生所述至少一个针对所述一个或多个所指示的线程的调试事件;
响应于所述至少一个调试事件而执行多个调试指令,所述调试指令用于通过将所述多线程数字信号处理器的所述一个或多个所指示的线程转变到调试模式中来非侵入性地调试所述多个处理指令在所述多线程数字信号处理器中的所述执行;及
从所述多个调试指令的所述执行中产生至少一个调试返回以用于报告所述多个调试指令的所述执行。
2.如权利要求1所述的方法,其中所述至少一个调试事件响应于所述多线程数字信号处理器内的内部产生的实例而发生。
3.如权利要求1所述的方法,其中所述至少一个调试事件响应于所述多线程数字信号处理器内的外部产生的实例而发生。
4.如权利要求1所述的方法,其中所述至少一个调试事件响应于程序计数器达到所述多线程数字信号处理器内的预定计数而发生。
5.如权利要求1所述的方法,其中所述多线程数字信号处理器的所述一个或多个所指示的线程转变离开所述调试模式。
6.如权利要求1所述的方法,其中至少一个或多个指令填塞指令执行与所述多线程数字信号处理器的操作相关的预定调试算法。
7.如权利要求1所述的方法,其中所述多线程数字信号处理器中的所述多个调试指令中的至少之一在所述多个调试指令的所述执行与所述多个处理指令的所述执行之间使用联合测试行为组织JTAG接口。
8.一种用于调试多线程数字信号处理器的非侵入性装置,包括:
用于使用所述多线程数字信号处理器的多个线程执行多个处理指令的装置;
用于识别用于产生至少一个针对所述多个线程中的一个或多个所指示的线程的调试事件的一个或多个断点指令的装置;
用于在所述多线程数字信号处理器的硅中调试系统处接收所述一个或多个断点指令的装置;
用于读取所述硅中调试系统的寄存器以确定对应于所述断点指令的所述一个或多个所指示的线程的装置;
用于响应于执行所述一个或多个断点指令中的至少一者而产生所述至少一个针对所述多个线程中的一个或多个所指示的线程的调试事件的装置;
用于响应于所述至少一个调试事件而执行所述多个调试指令的装置,所述调试指令用于通过将所述多线程数字信号处理器的所述一个或多个所指示的线程转变到调试模式中来非侵入性地调试所述多个处理指令在所述多线程数字信号处理器中的所述执行;及
用于从所述多个调试指令的所述执行中产生至少一个调试返回以用于报告所述多个调试指令在所述多线程数字信号处理器的所述一个或多个所指示的线程中的所述执行的装置。
9.如权利要求8所述的装置,其进一步包括用于使所述至少一个调试事件响应于所述多线程数字信号处理器内的内部产生的实例而发生的装置。
10.如权利要求8所述的装置,其进一步包括用于使所述至少一个调试事件响应于所述多线程数字信号处理器内的外部产生的实例而发生的装置。
11.如权利要求8所述的装置,其进一步包括用于使所述至少一个调试事件响应于程序计数器达到所述多线程数字信号处理器内的预定计数而发生的装置。
12.如权利要求8所述的装置,其进一步包括用于将所述多线程数字信号处理器的所述一个或多个所指示的线程转变出所述调试模式的装置。
13.如权利要求8所述的装置,其进一步包括用于填塞用于执行与所述多线程数字信号处理器的操作相关的预定调试算法的指令的装置。
14.如权利要求8所述的装置,其进一步包括用于在所述多个调试指令的所述执行与所述多个处理指令的所述执行之间使用联合测试行为组织JTAG接口的装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/560,217 | 2006-11-15 | ||
US11/560,217 US8370806B2 (en) | 2006-11-15 | 2006-11-15 | Non-intrusive, thread-selective, debugging method and system for a multi-thread digital signal processor |
PCT/US2007/084456 WO2008061067A2 (en) | 2006-11-15 | 2007-11-12 | Non-intrusive, thread-selective, debugging method and system for a multi-threaded digital signal processor |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011103011964A Division CN102360330A (zh) | 2006-11-15 | 2007-11-12 | 用于多线程数字信号处理器的非侵入性线程选择性调试方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101529390A CN101529390A (zh) | 2009-09-09 |
CN101529390B true CN101529390B (zh) | 2011-12-14 |
Family
ID=39361425
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007800395339A Expired - Fee Related CN101529390B (zh) | 2006-11-15 | 2007-11-12 | 用于多线程数字信号处理器的非侵入性线程选择性调试方法及系统 |
CN2011103011964A Pending CN102360330A (zh) | 2006-11-15 | 2007-11-12 | 用于多线程数字信号处理器的非侵入性线程选择性调试方法及系统 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011103011964A Pending CN102360330A (zh) | 2006-11-15 | 2007-11-12 | 用于多线程数字信号处理器的非侵入性线程选择性调试方法及系统 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8370806B2 (zh) |
EP (1) | EP2095237A2 (zh) |
JP (2) | JP2010510581A (zh) |
KR (1) | KR101046137B1 (zh) |
CN (2) | CN101529390B (zh) |
WO (1) | WO2008061067A2 (zh) |
Families Citing this family (62)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102006050715A1 (de) * | 2006-10-10 | 2008-04-17 | Robert Bosch Gmbh | Verfahren und System zum Erzeugen eines gültigen Signals |
US8341604B2 (en) * | 2006-11-15 | 2012-12-25 | Qualcomm Incorporated | Embedded trace macrocell for enhanced digital signal processor debugging operations |
US8533530B2 (en) * | 2006-11-15 | 2013-09-10 | Qualcomm Incorporated | Method and system for trusted/untrusted digital signal processor debugging operations |
US8380966B2 (en) * | 2006-11-15 | 2013-02-19 | Qualcomm Incorporated | Method and system for instruction stuffing operations during non-intrusive digital signal processor debugging |
US7681012B2 (en) * | 2007-01-30 | 2010-03-16 | Texas Instruments Incorporated | Method, system and device for handling a memory management fault in a multiple processor device |
US8356356B2 (en) * | 2007-01-30 | 2013-01-15 | Microsoft Corporation | Anti-debugger comprising spatially and temporally separate detection and response portions |
US9367321B2 (en) * | 2007-03-14 | 2016-06-14 | Xmos Limited | Processor instruction set for controlling an event source to generate events used to schedule threads |
US8898438B2 (en) * | 2007-03-14 | 2014-11-25 | XMOS Ltd. | Processor architecture for use in scheduling threads in response to communication activity |
US8185722B2 (en) * | 2007-03-14 | 2012-05-22 | XMOS Ltd. | Processor instruction set for controlling threads to respond to events |
US8484516B2 (en) * | 2007-04-11 | 2013-07-09 | Qualcomm Incorporated | Inter-thread trace alignment method and system for a multi-threaded processor |
US9710384B2 (en) | 2008-01-04 | 2017-07-18 | Micron Technology, Inc. | Microprocessor architecture having alternative memory access paths |
US8561025B1 (en) * | 2008-03-31 | 2013-10-15 | Apigee Corporation | Flow and module level detecting and debugging with inclusion of generated log statements |
US8156317B2 (en) * | 2008-05-16 | 2012-04-10 | Ati Technologies Ulc | Integrated circuit with secure boot from a debug access port and method therefor |
US9395983B2 (en) * | 2008-08-20 | 2016-07-19 | Freescale Semiconductor, Inc. | Debug instruction for execution by a first thread to generate a debug event in a second thread to cause a halting operation |
US20100049956A1 (en) * | 2008-08-20 | 2010-02-25 | Moyer William C | Debug instruction for use in a multi-threaded data processing system |
US8635603B2 (en) * | 2008-10-21 | 2014-01-21 | International Business Machines Corporation | Handling debugger breakpoints in a shared instruction system |
US8413120B2 (en) * | 2008-10-27 | 2013-04-02 | Advanced Micro Devices, Inc. | Method and system for thread monitoring |
US8868889B2 (en) * | 2010-03-12 | 2014-10-21 | Lsi Corporation | Instruction breakpoints in a multi-core, multi-thread network communications processor architecture |
US9461930B2 (en) | 2009-04-27 | 2016-10-04 | Intel Corporation | Modifying data streams without reordering in a multi-thread, multi-flow network processor |
US9444757B2 (en) | 2009-04-27 | 2016-09-13 | Intel Corporation | Dynamic configuration of processing modules in a network communications processor architecture |
KR20110095050A (ko) * | 2010-02-18 | 2011-08-24 | 삼성전자주식회사 | 공유 라이브러리 디버깅 장치 |
US8112677B2 (en) | 2010-02-26 | 2012-02-07 | UltraSoC Technologies Limited | Method of debugging multiple processes |
US8607202B2 (en) | 2010-06-04 | 2013-12-10 | Lsi Corporation | Real-time profiling in a multi-core architecture |
US20110321017A1 (en) * | 2010-06-29 | 2011-12-29 | International Business Machines Corporation | Computer code debugging method and apparatus providing exception breakpoints |
US10393778B2 (en) * | 2010-10-20 | 2019-08-27 | Signify Holding B.V. | Disaggregation apparatus |
US8694832B2 (en) | 2011-03-03 | 2014-04-08 | International Business Machines Corporation | Assist thread analysis and debug mechanism |
WO2012167536A1 (zh) * | 2011-11-02 | 2012-12-13 | 华为技术有限公司 | 多线程协同仿真方法及系统 |
US8924784B2 (en) * | 2012-04-12 | 2014-12-30 | Freescale Semiconductor, Inc. | Controller for managing a reset of a subset of threads in a multi-thread system |
US10430190B2 (en) * | 2012-06-07 | 2019-10-01 | Micron Technology, Inc. | Systems and methods for selectively controlling multithreaded execution of executable code segments |
US8843900B2 (en) * | 2012-06-12 | 2014-09-23 | Microsoft Corporation | Serial debugging experience for parallel programs |
US8832505B2 (en) * | 2012-06-29 | 2014-09-09 | Intel Corporation | Methods and apparatus to provide failure detection |
CN102955737B (zh) * | 2012-11-06 | 2015-08-12 | 无锡江南计算技术研究所 | 异构处理器体系的程序调试方法和系统 |
EP2917837B1 (en) * | 2012-11-09 | 2019-01-02 | Coherent Logix Incorporated | Real time analysis and control for a multiprocessor system |
JP6086230B2 (ja) * | 2013-04-01 | 2017-03-01 | 日本電気株式会社 | 中央演算装置、情報処理装置、および仮想コア内レジスタ値取得方法 |
EP2962205B1 (de) * | 2013-04-09 | 2018-06-20 | Siemens Aktiengesellschaft | Mehrkern-prozessorsystem mit fehleranalysefunktion |
US9594655B2 (en) | 2013-07-25 | 2017-03-14 | Altera Corporation | Cache debug system for programmable circuits |
US9665466B2 (en) * | 2014-09-02 | 2017-05-30 | Nxp Usa, Inc. | Debug architecture for multithreaded processors |
US9996354B2 (en) * | 2015-01-09 | 2018-06-12 | International Business Machines Corporation | Instruction stream tracing of multi-threaded processors |
US9626220B2 (en) | 2015-01-13 | 2017-04-18 | International Business Machines Corporation | Computer system using partially functional processor core |
US10719420B2 (en) * | 2015-02-10 | 2020-07-21 | International Business Machines Corporation | System level testing of multi-threading functionality including building independent instruction streams while honoring architecturally imposed common fields and constraints |
EP3125108A1 (en) * | 2015-07-31 | 2017-02-01 | ARM Limited | Vector processing using loops of dynamic vector length |
CN105354136B (zh) * | 2015-09-25 | 2018-06-15 | 华为技术有限公司 | 一种调试方法、多核处理器和调试设备 |
US9996448B2 (en) * | 2016-02-25 | 2018-06-12 | Red Hat Israel Ltd | Breakpoint insertion into kernel pages |
US10042737B2 (en) | 2016-08-31 | 2018-08-07 | Microsoft Technology Licensing, Llc | Program tracing for time travel debugging and analysis |
US10031834B2 (en) * | 2016-08-31 | 2018-07-24 | Microsoft Technology Licensing, Llc | Cache-based tracing for time travel debugging and analysis |
US10031833B2 (en) | 2016-08-31 | 2018-07-24 | Microsoft Technology Licensing, Llc | Cache-based tracing for time travel debugging and analysis |
US10324851B2 (en) | 2016-10-20 | 2019-06-18 | Microsoft Technology Licensing, Llc | Facilitating recording a trace file of code execution using way-locking in a set-associative processor cache |
US10310977B2 (en) | 2016-10-20 | 2019-06-04 | Microsoft Technology Licensing, Llc | Facilitating recording a trace file of code execution using a processor cache |
US10489273B2 (en) | 2016-10-20 | 2019-11-26 | Microsoft Technology Licensing, Llc | Reuse of a related thread's cache while recording a trace file of code execution |
US10310963B2 (en) | 2016-10-20 | 2019-06-04 | Microsoft Technology Licensing, Llc | Facilitating recording a trace file of code execution using index bits in a processor cache |
US10540250B2 (en) | 2016-11-11 | 2020-01-21 | Microsoft Technology Licensing, Llc | Reducing storage requirements for storing memory addresses and values |
US10318332B2 (en) | 2017-04-01 | 2019-06-11 | Microsoft Technology Licensing, Llc | Virtual machine execution tracing |
US20180329877A1 (en) * | 2017-05-09 | 2018-11-15 | International Business Machines Corporation | Multilingual content management |
US10296442B2 (en) | 2017-06-29 | 2019-05-21 | Microsoft Technology Licensing, Llc | Distributed time-travel trace recording and replay |
US10459824B2 (en) | 2017-09-18 | 2019-10-29 | Microsoft Technology Licensing, Llc | Cache-based trace recording using cache coherence protocol data |
US10558572B2 (en) | 2018-01-16 | 2020-02-11 | Microsoft Technology Licensing, Llc | Decoupling trace data streams using cache coherence protocol data |
US11907091B2 (en) | 2018-02-16 | 2024-02-20 | Microsoft Technology Licensing, Llc | Trace recording by logging influxes to an upper-layer shared cache, plus cache coherence protocol transitions among lower-layer caches |
US10496537B2 (en) | 2018-02-23 | 2019-12-03 | Microsoft Technology Licensing, Llc | Trace recording by logging influxes to a lower-layer cache based on entries in an upper-layer cache |
US10642737B2 (en) | 2018-02-23 | 2020-05-05 | Microsoft Technology Licensing, Llc | Logging cache influxes by request to a higher-level cache |
GB2580428B (en) * | 2019-01-11 | 2021-08-25 | Graphcore Ltd | Handling exceptions in a machine learning processor |
CN111367742A (zh) * | 2020-03-02 | 2020-07-03 | 深圳中微电科技有限公司 | 调试mvp处理器的方法、装置、终端和计算机可读存储介质 |
KR102305845B1 (ko) | 2020-12-21 | 2021-09-29 | 쿠팡 주식회사 | 코드의 검증을 위한 전자 장치 및 그 방법 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1711524A (zh) * | 2002-11-18 | 2005-12-21 | Arm有限公司 | 在安全模式和非安全模式间切换的处理器 |
Family Cites Families (157)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4080650A (en) * | 1976-07-28 | 1978-03-21 | Bell Telephone Laboratories, Incorporated | Facilitating return from an on-line debugging program to a target program breakpoint |
US4669059A (en) * | 1983-11-07 | 1987-05-26 | Motorola, Inc. | Method and apparatus in a data processor for selectively disabling a power-down instruction |
US4901307A (en) * | 1986-10-17 | 1990-02-13 | Qualcomm, Inc. | Spread spectrum multiple access communication system using satellite or terrestrial repeaters |
US5136717A (en) | 1988-11-23 | 1992-08-04 | Flavors Technology Inc. | Realtime systolic, multiple-instruction, single-data parallel computer system |
US5093914A (en) * | 1989-12-15 | 1992-03-03 | At&T Bell Laboratories | Method of controlling the execution of object-oriented programs |
US5103459B1 (en) * | 1990-06-25 | 1999-07-06 | Qualcomm Inc | System and method for generating signal waveforms in a cdma cellular telephone system |
JPH0855023A (ja) | 1994-07-25 | 1996-02-27 | Motorola Inc | データ処理システムおよびその方法 |
US5551043A (en) * | 1994-09-07 | 1996-08-27 | International Business Machines Corporation | Standby checkpoint to prevent data loss |
US6467054B1 (en) * | 1995-03-13 | 2002-10-15 | Compaq Computer Corporation | Self test for storage device |
WO1997005551A1 (en) * | 1995-07-31 | 1997-02-13 | Verifone, Inc. | Method and apparatus for operating resources under control of a security module or other secure processor |
US5544311A (en) * | 1995-09-11 | 1996-08-06 | Rockwell International Corporation | On-chip debug port |
US5951696A (en) * | 1996-11-14 | 1999-09-14 | Hewlett-Packard Company | Debug system with hardware breakpoint trap |
JPH10207790A (ja) * | 1997-01-20 | 1998-08-07 | Fuji Xerox Co Ltd | 入出力制御装置 |
US5915083A (en) * | 1997-02-28 | 1999-06-22 | Vlsi Technology, Inc. | Smart debug interface circuit for efficiently for debugging a software application for a programmable digital processor device |
US5835705A (en) | 1997-03-11 | 1998-11-10 | International Business Machines Corporation | Method and system for performance per-thread monitoring in a multithreaded processor |
US6275868B1 (en) | 1997-03-12 | 2001-08-14 | Microsoft Corporation | Script Engine interface for multiple languages |
US6314530B1 (en) * | 1997-04-08 | 2001-11-06 | Advanced Micro Devices, Inc. | Processor having a trace access instruction to access on-chip trace memory |
US6094729A (en) | 1997-04-08 | 2000-07-25 | Advanced Micro Devices, Inc. | Debug interface including a compact trace record storage |
US5944841A (en) * | 1997-04-15 | 1999-08-31 | Advanced Micro Devices, Inc. | Microprocessor with built-in instruction tracing capability |
IL126149A (en) * | 1997-09-09 | 2003-07-31 | Sanctum Ltd | Method and system for protecting operations of trusted internal networks |
US6567839B1 (en) | 1997-10-23 | 2003-05-20 | International Business Machines Corporation | Thread switch control in a multithreaded processor system |
US6212544B1 (en) | 1997-10-23 | 2001-04-03 | International Business Machines Corporation | Altering thread priorities in a multithreaded processor |
US6697935B1 (en) | 1997-10-23 | 2004-02-24 | International Business Machines Corporation | Method and apparatus for selecting thread switch events in a multithreaded processor |
US6029248A (en) * | 1997-12-15 | 2000-02-22 | Lucent Technologies Inc. Corporation | Locking system to protect a powered component interface from erroneous access by an attached, powered-off component |
US6018759A (en) | 1997-12-22 | 2000-01-25 | International Business Machines Corporation | Thread switch tuning tool for optimal performance in a computer processor |
US6106571A (en) * | 1998-01-29 | 2000-08-22 | Applied Microsystems Corporation | Relocatable instrumentation tags for testing and debugging a computer program |
US6249907B1 (en) * | 1998-03-24 | 2001-06-19 | International Business Machines Corporation | Method system and article of manufacture for debugging a computer program by encoding user specified breakpoint types at multiple locations in the computer program |
US6757829B1 (en) * | 1998-05-29 | 2004-06-29 | Texas Instruments Incorporated | Program debugging system for secure computing device having secure and non-secure modes |
DE19835610A1 (de) * | 1998-08-06 | 2000-02-10 | Siemens Ag | Programmgesteuerte Einheit und Verfahren zum Debuggen derselben |
US6480818B1 (en) * | 1998-11-13 | 2002-11-12 | Cray Inc. | Debugging techniques in a multithreaded environment |
US6532553B1 (en) * | 1998-12-08 | 2003-03-11 | Arm Limited | Debugging data processing systems |
US6343371B1 (en) * | 1999-01-14 | 2002-01-29 | Compaq Computer Corporation | System and method for statically detecting potential race conditions in multi-threaded computer programs |
US6535905B1 (en) | 1999-04-29 | 2003-03-18 | Intel Corporation | Method and apparatus for thread switching within a multithreaded processor |
US6341347B1 (en) | 1999-05-11 | 2002-01-22 | Sun Microsystems, Inc. | Thread switch logic in a multiple-thread processor |
US6714958B1 (en) | 1999-07-28 | 2004-03-30 | International Business Machines Corporation | Detecting and causing latent deadlocks in multi-threaded programs |
JP2003508864A (ja) * | 1999-09-07 | 2003-03-04 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | スレッド志向デバッギング |
US6684348B1 (en) | 1999-10-01 | 2004-01-27 | Hitachi, Ltd. | Circuit for processing trace information |
WO2001033351A1 (fr) | 1999-10-29 | 2001-05-10 | Fujitsu Limited | Architecture de processeur |
GB2362730B (en) | 1999-12-23 | 2004-02-11 | St Microelectronics Sa | Computer register watch |
US6665802B1 (en) | 2000-02-29 | 2003-12-16 | Infineon Technologies North America Corp. | Power management and control for a microcontroller |
US6947884B2 (en) * | 2000-03-02 | 2005-09-20 | Texas Instruments Incorporated | Scan interface with TDM feature for permitting signal overlay |
US20020087948A1 (en) | 2000-03-02 | 2002-07-04 | Jonathan Dzoba | Configurable debug system with proactive error handling |
US6545549B2 (en) * | 2000-03-02 | 2003-04-08 | Texas Instruments Incorporated | Remotely controllable phase locked loop clock circuit |
US6934937B1 (en) * | 2000-03-30 | 2005-08-23 | Broadcom Corporation | Multi-channel, multi-service debug on a pipelined CPU architecture |
JP2001331340A (ja) | 2000-05-19 | 2001-11-30 | Nec Corp | コードチェックによるモード切替方式および方法 |
US20020065646A1 (en) | 2000-09-11 | 2002-05-30 | Waldie Arthur H. | Embedded debug system using an auxiliary instruction queue |
US6691251B2 (en) * | 2000-11-30 | 2004-02-10 | Palmsource, Inc. | On-chip debugging system emulator |
US7020871B2 (en) * | 2000-12-21 | 2006-03-28 | Intel Corporation | Breakpoint method for parallel hardware threads in multithreaded processor |
US6915416B2 (en) * | 2000-12-28 | 2005-07-05 | Texas Instruments Incorporated | Apparatus and method for microcontroller debugging |
US7093236B2 (en) * | 2001-02-01 | 2006-08-15 | Arm Limited | Tracing out-of-order data |
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 |
US7076804B2 (en) * | 2001-05-11 | 2006-07-11 | International Business Machines Corporation | Automated program resource identification and association |
US7073059B2 (en) * | 2001-06-08 | 2006-07-04 | Hewlett-Packard Development Company, L.P. | Secure machine platform that interfaces to operating systems and customized control programs |
US7823131B2 (en) | 2001-06-29 | 2010-10-26 | Mentor Graphics Corporation | Debugger for a hardware-implemented operating system |
JP2003177938A (ja) * | 2001-12-07 | 2003-06-27 | Fujitsu Ltd | 電子装置及びそのデバッグ認証方法 |
US7131114B2 (en) * | 2001-07-16 | 2006-10-31 | Texas Instruments Incorporated | Debugger breakpoint management in a multicore DSP device having shared program memory |
US7134002B2 (en) | 2001-08-29 | 2006-11-07 | Intel Corporation | Apparatus and method for switching threads in multi-threading processors |
US7017084B2 (en) * | 2001-09-07 | 2006-03-21 | Network Appliance Inc. | Tracing method and apparatus for distributed environments |
US6901527B2 (en) * | 2001-09-21 | 2005-05-31 | International Business Machines Corporation | Synchronizing multiple time stamps distributed within a computer system with main time of day register |
DE10148109B4 (de) * | 2001-09-28 | 2006-10-12 | Infineon Technologies Ag | Verfahren zum Speichern oder Weiterleiten von Daten |
US7080289B2 (en) * | 2001-10-10 | 2006-07-18 | Arm Limited | Tracing multiple data access instructions |
US20030074650A1 (en) | 2001-10-17 | 2003-04-17 | Tankut Akgul | Debugger operating system for embedded systems |
US6834360B2 (en) | 2001-11-16 | 2004-12-21 | International Business Machines Corporation | On-chip logic analyzer |
US20030135720A1 (en) | 2002-01-14 | 2003-07-17 | International Business Machines Corporation | Method and system using hardware assistance for instruction tracing with secondary set of interruption resources |
US7254716B1 (en) * | 2002-02-13 | 2007-08-07 | Lsi Corporation | Security supervisor governing allowed transactions on a system bus |
US7213134B2 (en) | 2002-03-06 | 2007-05-01 | Hewlett-Packard Development Company, L.P. | Using thread urgency in determining switch events in a temporal multithreaded processor unit |
US6615371B2 (en) * | 2002-03-11 | 2003-09-02 | American Arium | Trace reporting method and system |
US7055139B2 (en) | 2002-03-28 | 2006-05-30 | Hewlett-Packard Development Company, L.P. | Multiprocess debugging using multiple conventional debuggers |
GB2389432B (en) * | 2002-06-07 | 2005-09-07 | Advanced Risc Mach Ltd | Instruction tracing in data processing systems |
US7516446B2 (en) * | 2002-06-25 | 2009-04-07 | International Business Machines Corporation | Method and apparatus for efficient and precise datarace detection for multithreaded object-oriented programs |
US7185319B2 (en) | 2002-07-09 | 2007-02-27 | Microsoft Corporation | Debugging distributed applications |
US7512954B2 (en) * | 2002-07-29 | 2009-03-31 | Oracle International Corporation | Method and mechanism for debugging a series of related events within a computer system |
US7346895B2 (en) * | 2002-07-31 | 2008-03-18 | International Business Machines Corporation | Method of tracing data collection |
US7529258B2 (en) * | 2002-08-09 | 2009-05-05 | Lecroy Corporation | Method and system for cascading analyzer trace memories |
DE10244922B4 (de) * | 2002-09-25 | 2009-08-13 | Infineon Technologies Ag | Programmgesteuerte Einheit und Verfahren zum Debuggen von einer programmgesteuerten Einheit ausgeführten Programmen |
US7519862B2 (en) | 2002-10-11 | 2009-04-14 | Broadcom Corporation | Software programmable verification tool having a single built-in self-test (BIST) module for testing and debugging multiple memory modules in a device under test (DUT) |
US7360117B1 (en) * | 2002-10-24 | 2008-04-15 | Verisilicon Holdings (Cayman Islands) Co. Ltd. | In-circuit emulation debugger and method of operation thereof |
GB2411254B (en) | 2002-11-18 | 2006-06-28 | Advanced Risc Mach Ltd | Monitoring control for multi-domain processors |
GB2396930B (en) * | 2002-11-18 | 2005-09-07 | Advanced Risc Mach Ltd | Apparatus and method for managing access to a memory |
GB2396034B (en) | 2002-11-18 | 2006-03-08 | Advanced Risc Mach Ltd | Technique for accessing memory in a data processing apparatus |
US7370210B2 (en) | 2002-11-18 | 2008-05-06 | Arm Limited | Apparatus and method for managing processor configuration data |
US7047451B2 (en) * | 2002-11-22 | 2006-05-16 | Texas Instruments Incorporated | Tracing program counter addresses using native program counter format and instruction count format |
US6948155B2 (en) * | 2002-11-22 | 2005-09-20 | Texas Instruments Incorporated | Little offset in multicycle event maintaining cycle accurate tracing of stop events |
US7219333B2 (en) * | 2002-11-22 | 2007-05-15 | Texas Instruments Incorporated | Maintaining coherent synchronization between data streams on detection of overflow |
US7131113B2 (en) * | 2002-12-12 | 2006-10-31 | International Business Machines Corporation | System and method on generating multi-dimensional trace files and visualizing them using multiple Gantt charts |
US7325169B2 (en) * | 2002-12-17 | 2008-01-29 | Texas Instruments Incorporated | Apparatus and method for trace stream identification of multiple target processor events |
JP4436036B2 (ja) * | 2002-12-18 | 2010-03-24 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 情報処理装置、トレース処理方法、プログラム及び記録媒体 |
US6798713B1 (en) * | 2003-01-31 | 2004-09-28 | Zilog, Inc. | Implementing software breakpoints |
JP3974063B2 (ja) | 2003-03-24 | 2007-09-12 | 松下電器産業株式会社 | プロセッサおよびコンパイラ |
US7013400B2 (en) | 2003-04-24 | 2006-03-14 | International Business Machines Corporation | Method for managing power in a simultaneous multithread processor by loading instructions into pipeline circuit during select times based on clock signal frequency and selected power mode |
US7159101B1 (en) * | 2003-05-28 | 2007-01-02 | Mips Technologies, Inc. | System and method to trace high performance multi-issue processors |
US7222262B2 (en) * | 2003-08-05 | 2007-05-22 | Newisys, Inc. | Methods and devices for injecting commands in systems having multiple multi-processor clusters |
US7383537B2 (en) * | 2003-08-20 | 2008-06-03 | Microsoft Corporation | Debugging an application that employs rights-managed content |
US7600221B1 (en) * | 2003-10-06 | 2009-10-06 | Sun Microsystems, Inc. | Methods and apparatus of an architecture supporting execution of instructions in parallel |
US7321957B2 (en) * | 2003-10-24 | 2008-01-22 | Intel Corporation | Debugging a trusted component in a system |
US7036897B2 (en) * | 2003-10-31 | 2006-05-02 | Hewlett-Packard Company, L.P. | Method and apparatus for operating a printer |
US7328429B2 (en) * | 2003-11-13 | 2008-02-05 | Intel Corporation | Instruction operand tracing for software debug |
US7383540B2 (en) * | 2003-12-12 | 2008-06-03 | International Business Machines Corporation | Altering execution flow of a computer program |
US7475303B1 (en) * | 2003-12-29 | 2009-01-06 | Mips Technologies, Inc. | HyperJTAG system including debug probe, on-chip instrumentation, and protocol |
CA2536610C (en) | 2004-02-05 | 2013-04-30 | Research In Motion Limited | Debugging port security interface |
US7360203B2 (en) * | 2004-02-06 | 2008-04-15 | Infineon Technologies North America Corp. | Program tracing in a multithreaded processor |
US7263599B2 (en) * | 2004-02-06 | 2007-08-28 | Infineon Technologies | Thread ID in a multithreaded processor |
JP4347082B2 (ja) * | 2004-02-23 | 2009-10-21 | 日本電気株式会社 | イベントトレースデータの時刻補正装置,時刻補正方法及び時刻補正プログラム |
JP4409349B2 (ja) | 2004-04-27 | 2010-02-03 | Okiセミコンダクタ株式会社 | デバッグ回路およびデバッグ制御方法 |
US7945900B2 (en) * | 2004-04-29 | 2011-05-17 | Marvell International Ltd. | Debugging tool for debugging multi-threaded programs |
US20060253894A1 (en) | 2004-04-30 | 2006-11-09 | Peter Bookman | Mobility device platform |
US7380276B2 (en) * | 2004-05-20 | 2008-05-27 | Intel Corporation | Processor extensions and software verification to support type-safe language environments running with untrusted code |
US7558920B2 (en) | 2004-06-30 | 2009-07-07 | Intel Corporation | Apparatus and method for partitioning a shared cache of a chip multi-processor |
US7363523B2 (en) | 2004-08-31 | 2008-04-22 | Intel Corporation | Method and apparatus for controlling power management state transitions |
JP4520788B2 (ja) | 2004-07-29 | 2010-08-11 | 富士通株式会社 | マルチスレッドプロセッサ |
US7278058B1 (en) * | 2004-08-25 | 2007-10-02 | Unisys Corporation | Methods and apparatus to diagnose software |
US7814308B2 (en) * | 2004-08-27 | 2010-10-12 | Microsoft Corporation | Debugging applications under different permissions |
US9038070B2 (en) * | 2004-09-14 | 2015-05-19 | Synopsys, Inc. | Debug in a multicore architecture |
US20060129999A1 (en) * | 2004-11-16 | 2006-06-15 | Sony Computer Entertainment Inc. | Methods and apparatus for using bookmarks in a trace buffer |
US7783925B2 (en) | 2004-12-02 | 2010-08-24 | Texas Instruments Incorporated | Receiving control, data, and control segments of communication scan packets |
US7681014B2 (en) | 2005-02-04 | 2010-03-16 | Mips Technologies, Inc. | Multithreading instruction scheduler employing thread group priorities |
US7418629B2 (en) * | 2005-02-11 | 2008-08-26 | International Business Machines Corporation | Synchronizing triggering of multiple hardware trace facilities using an existing system bus |
US7472378B2 (en) | 2005-02-23 | 2008-12-30 | International Business Machines Corporation | Breakpoint management and reconciliation for embedded scripts in a business integration language specified program process |
US20060206902A1 (en) | 2005-03-14 | 2006-09-14 | Sujat Jamil | Variable interleaved multithreaded processor method and system |
US7369954B2 (en) * | 2005-03-17 | 2008-05-06 | International Business Machines Corporation | Event tracing with time stamp compression and history buffer based compression |
US7747985B2 (en) * | 2005-03-18 | 2010-06-29 | Microsoft Corporation | Conformance testing of multi-threaded and distributed software systems |
US7917907B2 (en) | 2005-03-23 | 2011-03-29 | Qualcomm Incorporated | Method and system for variable thread allocation and switching in a multithreaded processor |
JP2006285430A (ja) | 2005-03-31 | 2006-10-19 | Matsushita Electric Ind Co Ltd | Cpuメモリアクセス解析装置 |
US7657875B2 (en) * | 2005-04-12 | 2010-02-02 | International Business Machines Corporation | System and method for collecting a plurality of metrics in a single profiling run of computer code |
US7698686B2 (en) | 2005-04-15 | 2010-04-13 | Microsoft Corporation | Method and apparatus for performance analysis on a software program |
US7558984B2 (en) * | 2005-04-27 | 2009-07-07 | Texas Instruments Incorporated | Apparatus and method for test and debug of a processor/core having advanced power management |
US7536597B2 (en) | 2005-04-27 | 2009-05-19 | Texas Instruments Incorporated | Apparatus and method for controlling power, clock, and reset during test and debug procedures for a plurality of processor/cores |
US8881114B2 (en) | 2005-05-16 | 2014-11-04 | Texas Instruments Incorporated | Stored program writing stall information when a processor stalls waiting for another processor |
US7730545B2 (en) | 2005-05-23 | 2010-06-01 | Arm Limited | Test access control for secure integrated circuits |
US7548911B2 (en) | 2005-05-28 | 2009-06-16 | Microsoft Corporation | Diagnosing problems in distributed systems |
JP2007026051A (ja) * | 2005-07-15 | 2007-02-01 | Matsushita Electric Ind Co Ltd | 情報処理装置および情報処理システム |
US8694621B2 (en) * | 2005-08-19 | 2014-04-08 | Riverbed Technology, Inc. | Capture, analysis, and visualization of concurrent system and network behavior of an application |
WO2007028227A1 (en) | 2005-09-09 | 2007-03-15 | Ibm Canada Limited - Ibm Canada Limitee | Integrating different programming language debug tools for observing thread execution |
US9146832B2 (en) | 2005-10-14 | 2015-09-29 | Oracle International Corporation | Debugging functionality embedded in an application |
JP4388518B2 (ja) | 2005-11-01 | 2009-12-24 | 株式会社ソニー・コンピュータエンタテインメント | スレッドデバッグ装置、スレッドデバッグ方法及びプログラム |
US7770155B2 (en) * | 2005-11-03 | 2010-08-03 | International Business Machines Corporation | Debugger apparatus and method for indicating time-correlated position of threads in a multi-threaded computer program |
US7802233B2 (en) * | 2006-01-30 | 2010-09-21 | Microsoft Corporation | Automated display of trace historical data |
US20070234306A1 (en) * | 2006-03-31 | 2007-10-04 | Klinger Uwe D | Tracing performance of machine-readable instructions |
US20080034350A1 (en) * | 2006-04-05 | 2008-02-07 | Conti Gregory R | System and Method for Checking the Integrity of Computer Program Code |
KR20070109432A (ko) * | 2006-05-11 | 2007-11-15 | 삼성전자주식회사 | 커널 인지 디버깅 장치 및 방법 |
US20070288906A1 (en) | 2006-05-16 | 2007-12-13 | Texas Instruments Incorporated | Efficient transfer of timing information |
US7849315B2 (en) | 2006-05-22 | 2010-12-07 | General Dynamics C4 Systems, Inc. | Method for managing operability of on-chip debug capability |
GB0613289D0 (en) * | 2006-07-04 | 2006-08-16 | Imagination Tech Ltd | Synchronisation of execution threads on a multi-threaded processor |
US8301870B2 (en) * | 2006-07-27 | 2012-10-30 | International Business Machines Corporation | Method and apparatus for fast synchronization and out-of-order execution of instructions in a meta-program based computing system |
US8051162B2 (en) * | 2006-07-28 | 2011-11-01 | Hewlett-Packard Development Company, L.P. | Data assurance in server consolidation |
US7702055B2 (en) * | 2006-09-29 | 2010-04-20 | Mips Technologies, Inc. | Apparatus and method for tracing processor state from multiple clock domains |
GB2443277B (en) * | 2006-10-24 | 2011-05-18 | Advanced Risc Mach Ltd | Performing diagnostics operations upon an asymmetric multiprocessor apparatus |
US7657791B2 (en) | 2006-11-15 | 2010-02-02 | Qualcomm Incorporated | Method and system for a digital signal processor debugging during power transitions |
US8341604B2 (en) | 2006-11-15 | 2012-12-25 | Qualcomm Incorporated | Embedded trace macrocell for enhanced digital signal processor debugging operations |
US8380966B2 (en) | 2006-11-15 | 2013-02-19 | Qualcomm Incorporated | Method and system for instruction stuffing operations during non-intrusive digital signal processor debugging |
US8533530B2 (en) | 2006-11-15 | 2013-09-10 | Qualcomm Incorporated | Method and system for trusted/untrusted digital signal processor debugging operations |
DE102007009909B4 (de) * | 2007-02-28 | 2016-09-08 | Globalfoundries Inc. | Verfahren zum Validieren einer atomaren Transaktion in einer Multikernmikroprozessorumgebung |
US9195462B2 (en) * | 2007-04-11 | 2015-11-24 | Freescale Semiconductor, Inc. | Techniques for tracing processes in a multi-threaded processor |
US8484516B2 (en) | 2007-04-11 | 2013-07-09 | Qualcomm Incorporated | Inter-thread trace alignment method and system for a multi-threaded processor |
US7681078B2 (en) | 2007-05-18 | 2010-03-16 | Freescale Semiconductor, Inc. | Debugging a processor through a reset event |
US8001428B2 (en) * | 2007-10-29 | 2011-08-16 | Arm Limited | Packing trace protocols within trace streams |
-
2006
- 2006-11-15 US US11/560,217 patent/US8370806B2/en not_active Expired - Fee Related
-
2007
- 2007-11-12 EP EP07854618A patent/EP2095237A2/en not_active Withdrawn
- 2007-11-12 CN CN2007800395339A patent/CN101529390B/zh not_active Expired - Fee Related
- 2007-11-12 WO PCT/US2007/084456 patent/WO2008061067A2/en active Application Filing
- 2007-11-12 JP JP2009537298A patent/JP2010510581A/ja not_active Ceased
- 2007-11-12 KR KR1020097012377A patent/KR101046137B1/ko active IP Right Grant
- 2007-11-12 CN CN2011103011964A patent/CN102360330A/zh active Pending
-
2012
- 2012-09-24 JP JP2012209762A patent/JP2013058207A/ja active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1711524A (zh) * | 2002-11-18 | 2005-12-21 | Arm有限公司 | 在安全模式和非安全模式间切换的处理器 |
Also Published As
Publication number | Publication date |
---|---|
WO2008061067A2 (en) | 2008-05-22 |
JP2013058207A (ja) | 2013-03-28 |
EP2095237A2 (en) | 2009-09-02 |
KR20090084938A (ko) | 2009-08-05 |
CN102360330A (zh) | 2012-02-22 |
US8370806B2 (en) | 2013-02-05 |
JP2010510581A (ja) | 2010-04-02 |
CN101529390A (zh) | 2009-09-09 |
US20080115113A1 (en) | 2008-05-15 |
KR101046137B1 (ko) | 2011-07-01 |
WO2008061067A3 (en) | 2008-07-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101529390B (zh) | 用于多线程数字信号处理器的非侵入性线程选择性调试方法及系统 | |
CN101535962B (zh) | 用于可信/不可信数字信号处理器调试操作的方法及系统 | |
CN101529393B (zh) | 用于增强的数字信号处理器调试操作的嵌入式追踪宏单元 | |
CN101681191B (zh) | 在电能转换期间的数字信号处理器调试 | |
CN101529392B (zh) | 在非侵入性数字信号处理器调试期间用于指令填充操作的方法和系统 | |
EP2037367A2 (en) | Inter thread trace alignment method and system for a multi-threaded processor | |
CN101084485A (zh) | 用于改善片上仿真系统中高级语言的仿真速度的装置和方法 | |
CN101727388B (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20111214 Termination date: 20181112 |