CN101501650B - 比较处理器指令集操作模式的调试电路 - Google Patents
比较处理器指令集操作模式的调试电路 Download PDFInfo
- Publication number
- CN101501650B CN101501650B CN200780029330.1A CN200780029330A CN101501650B CN 101501650 B CN101501650 B CN 101501650B CN 200780029330 A CN200780029330 A CN 200780029330A CN 101501650 B CN101501650 B CN 101501650B
- Authority
- CN
- China
- Prior art keywords
- instruction
- instruction set
- operator scheme
- address
- processor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- 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
-
- 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
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
-
- 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/3628—Software debugging of optimised code
-
- 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/366—Software debugging using diagnostics
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
一种处理器操作以执行两个或两个以上指令集,每一指令集处于不同的指令集操作模式。当执行每一指令时,调试电路将当前指令集操作模式与由程序设计员发送的目标指令集操作模式进行比较,并输出其匹配的警告或指示。所述警告或指示可额外取决于遵循预定目标地址范围内的指令地址。所述警告或指示可包括暂停执行的断点信号,且/或其作为所述处理器的外部信号而输出。可额外输出所述处理器在所述指令集操作模式下检测到匹配的指令地址。另外或替代地,所述警告或指示可包括开始或停止追踪操作、引起异常,或任何其它已知调试器功能。
Description
技术领域
本发明大体上涉及处理器的领域,且明确地说涉及一种经由调试电路来调试处理器上的代码的系统和方法,其包含考虑处理器指令集操作模式。
背景技术
现代处理器是极其复杂的系统。大多数现代处理器采用管线结构,其中各具有多个执行步骤的连续指令在执行时重叠。许多称为“超标量”处理器的处理器包含用于并行指令执行的两个或两个以上单独管线。为了避免管线中由于分支指令造成的停止,大多数处理器采用各种形式的分支预测,其中当分支被预测为被采取时推测性地取出指令和执行指令。为了改进性能,许多现代处理器将逻辑寄存器地址与相应的物理存储器存储寄存器分离,这称为寄存器重命名。为了向程序提供无限、快速存储器的错觉,许多处理器在虚拟地址空间中执行代码,从而在数据遍历存储器层级(例如,寄存器、高速缓冲存储器、主存储器)时将地址转译为一个或一个以上物理地址空间。由于此复杂性,现代处理器内的代码执行非常难以准确地跟踪和验证。明确地说,异常(anomaly)可能非常难以调试。
另外,在现代处理器上执行的软件本身极其复杂。随着精简指令集计算(RISC)处理器结构的出现,大部分计算和逻辑计算复杂性从处理器指令迁移到优化编译器。也就是说,编译器从相对较小的处理器指令集构建复杂的操作,每一处理器指令均针对特定、具体功能而优化。对于给定计算任务,这导致更冗长且复杂的指令序列,包含(例如)逻辑、算术、加载/存储和分支操作。此复杂的代码在错误引起异常程序行为时可能难以调试。
为了辅助调试在复杂处理器上执行的复杂代码的使人畏缩的任务,将调试工具构建到许多处理器中。这些调试工具可包括用于识别特定指令和/或数据模式的地址和数据比较器。调试工具可额外包含地址范围比较器,使得调试或追踪可限于预定代码段。其它调试工具可包含计数器、定序器等,以提供在指定条件(其指定断点和/或追踪触发)时的灵活性。追踪信息可在芯片外提供,例如经由专门总线提供,或可存储在专门芯片上缓冲器中。断点可触发一个或一个以上外部信号,例如以装备和/或触发逻辑分析器或照亮LED;可引起异常(exception),从而将代码执行分支到调试例行程序;或可简单地暂停执行,从而允许检查各种寄存器和高速缓冲存储器的内容。用使对处理器性能和功率消耗的影响减到最小的方式,将这些在正常处理器执行期间不予利用的调试工具设计到处理器电路中。
程序设计员可在根据相关指令集编码执行指令之前明确地设置正确的指令集操作模式。然而,错误的软件有时可能会分支到既定在处于一个指令集操作模式时执行的特定指令地址,而同时处理器实际上是处于某个其它指令集操作模式。在此情况下,处理器可能会试图使用不正确的指令集解码来执行所述地址处的指令,从而导致不正确的结果。
举例来说,一些版本的ARM处理器结构包含至少两个指令集操作模式:32位ARM模式和16位拇指(Thumb)模式。表1列举ARM指令的代码片断:
000096F0 cpy r4,r0
000096F4 bl 0xA8A0
000096FC cpy r1,r4
00009700 ldr r0,[r0,#0x8]
表1:ARM模式指令编码
表2列举在拇指模式下解译的相同代码:
000096F0 and r0,r0
000096F2 b 0x9A36
000096F4 lsl r1,r5,#0x11
000096F6 add.w r0,r0,r4,lsl#0x4
000096FA b 0x9A3E
000096FC lsl r0,r1,#0x0
000096FE b 0x9222
00009700and r 0,r2
表2:拇指模式指令编码
尤其注意96F2、96FA及96FE处的分支指令。由于不正确的分支,可能难以确认错误导致在如表2中的拇指模式下解译表1的ARM代码的点,且因此难以调试错误。此困难之所以出现,是因为现有技术调试电路不包含作为对触发断点、启始追踪等的逻辑的输入的处理器指令集操作模式。
支持两个或两个以上操作“模式”(例如,管理员和用户模式,或真实和受保护模式)的大多数处理器通过引起异常并分支到模式切换例行程序而在模式之间切换。通过设置断点或在模式切换例行程序的指令地址上开始追踪而使用现有技术调试工具和软件来容易地检测此操作。在不引起异常的前提下切换指令集操作模式的处理器是难以用不包含作为触发断点、启始追踪等时的考虑因素的处理器指令集操作模式的现有技术调试工具诊断的代码行为的一个实例。
发明内容
根据一个或一个以上实施例,操作以执行两个或两个以上指令集的处理器中的调试电路识别处理器从一个指令集操作模式切换成不同的指令集操作模式的地址,并输出模式切换的警告或指示。所述警告或指示可包括暂停执行的断点信号,且/或作为处理器的外部信号而输出。可额外输出处理器切换指令集操作模式的指令地址。或者,所述警告或指示可包括开始或停止追踪操作、引起异常,或任何其它已知调试器功能。
一个实施例涉及一种在具有至少两个不同指令集操作模式的处理器上调试包括多个指令的软件代码的方法。在执行任何代码指令之前接收目标指令集操作模式。执行代码指令,且针对所执行的每一指令,将当前处理器指令集操作模式与目标指令集操作模式进行比较。如果当前处理器指令集操作模式与目标指令集操作模式匹配,则触发警告。
另一实施例涉及一种在具有至少第一和第二指令集操作模式的处理器上执行软件的方法。识别处理器从第一指令集操作模式切换成第二指令集操作模式的地址,并响应于所述识别而触发警告。
又一实施例涉及一种操作以根据两个或两个以上指令集编码执行指令的处理器,每一指令集编码处于不同的指令集操作模式。所述处理器包含当前指令集操作模式指示符,和操作以存储目标指令集操作模式指示符的数据存储位置。所述处理器还包含:执行单元,其操作以根据当前指令集操作模式来执行指令;以及比较电路,其操作以在执行每一指令后将当前指令集操作模式与目标指令集操作模式进行比较,并在当前指令集操作模式与目标指令集操作模式匹配的情况下输出指示。
再一实施例涉及一种操作以执行两个或两个以上指令集编码的处理器,每一指令集编码处于不同的指令集操作模式。所述处理器包含比较电路,其操作以检测指令集操作模式的变化,并响应于所述检测而输出指令集操作模式变化的指示和变化发生的指令地址。
附图说明
图1是处理器的功能方框图。
图2是包含调试电路的处理器管线的功能方框图。
图3是诊断/调试过程的流程图。
具体实施方式
图1描绘处理器10的功能方框图。处理器10根据控制逻辑14在指令执行管线12中执行指令。控制逻辑14维持程序计数器(PC)15,并设置或清除一个或一个以上状态寄存器16中的位以指示(例如)当前指令集操作模式、关于算术运算和逻辑比较的结果(零、进位、相等、不相等)的信息等。在一些实施例中,管线12可以是具有多个并行管线的超标量设计。管线12也可称为执行单元。通用寄存器(GPR)堆20提供可由管线12存取且包括存储器层级的顶部的寄存器。
在不同的指令集操作模式下执行来自至少两个指令集的指令的处理器10额外包含调试电路18,其操作以在执行每一指令后将至少一预定目标指令集操作模式与当前指令集操作模式进行比较,并提供两者之间匹配的指示。下文更详细描述调试电路18。
管线12从指令高速缓冲存储器(I-高速缓冲存储器)26取出指令,其中存储器地址转译和许可由指令侧转译后备缓冲器(ITLB)28管理。从数据高速缓冲存储器(D-高速缓冲存储器)30存取数据,其中存储器地址转译和许可由主转译后备缓冲器(TLB)32管理。在各种实施例中,ITLB 28可包括TLB 32的一部分的副本。或者,ITLB 28与TLB 32可整合。类似地,在处理器10的各种实施例中,I-高速缓冲存储器26与D-高速缓冲存储器30可整合或合并。I-高速缓冲存储器26和/或D-高速缓冲存储器30中的未中(miss)引起存储器接口34存取主(芯片外)存储器38、40。存储器接口34可以是对总线互连42的主控输入(masterinput),所述总线互连42实施到一个或一个以上存储器装置38、40的共享总线。额外主控装置(未图示)可额外连接到总线互连42。
处理器10可包含输入/输出(I/O)接口44,其可以是外围总线上的主控装置,I/O接口44可跨所述外围总线存取各种外围装置48、50。所属领域的技术人员将认识到,处理器10的许多变化是可能的。举例来说,处理器10可包含用于I-高速缓冲存储器26和D-高速缓冲存储器30中的任一者或其两者的二级(L2)高速缓冲存储器。另外,处理器10中描绘的功能区块中的一者或一者以上可从特定实施例中省略。可驻存在处理器10中的其它功能区块(例如,JTAG控制器、指令预解码器、分支目标地址高速缓冲存储器等)与本发明的描述没有密切关系,且为了清楚起见而将其省略。
图2描绘调试电路18的一个实施例的功能方框图。调试电路18包含目标指令集操作模式寄存器52、地址范围开始地址寄存器54和地址范围结束地址寄存器56。程序设计员在诊断/调试操作之前经由诊断软件加载寄存器52、54、56。在每一指令的执行期间将写入到目标指令集操作模式寄存器52的值与当前处理器指令集操作模式进行比较,以触发断点、追踪功能或其它警告。开始地址寄存器54和结束地址寄存器5456的值分别是调试电路18将监视以寻找当前指令集操作模式与目标指令集操作模式之间的匹配的目标地址范围的开始和结尾。
所属领域的技术人员将容易认识到的是,调试电路18可包含额外可定制参数和额外功能区块,从而启始断点、追踪等以在各种各样的条件下进行触发。为了清楚起见已从图2省略了这些参数和区块,但一般来说其可包含此项技术中已知的所有调试电路参数和功能性。
在诊断/调试运行之前,程序设计员加载开始地址寄存器54和结束地址寄存器56以界定目标地址范围,其可从单个地址到被测试的代码的整个地址范围变动。在其它实施例中,可提供多个开始和结束地址寄存器以界定多个目标地址范围。程序设计员额外加载目标指令集操作模式寄存器52。举例来说,在完全在ARM模式下执行代码的ARM处理器的情况下,例如,如果处理器10在拇指模式下在由寄存器54、56界定的地址范围内执行指令,则程序设计员可在寄存器52中加载指示拇指模式的值,以设置引起调试电路18暂停执行的断点。
在诊断/调试操作期间,在比较逻辑(例如,与门58)中将存储在目标指令集操作模式寄存器52中的值与指示处理器10的当前指令集操作模式的状态寄存器位进行比较。举例来说,在ARM处理器10中,可监视当前程序状态寄存器(CPSR)16的位5。仅当处理器10的当前指令集操作模式与由目标指令集操作模式寄存器52指示的指令集操作模式匹配时,才将断言比较逻辑58的输出60。
在处理器10在不同的指令集操作模式下执行来自两个以上指令集的指令的实施例中,目标指令集操作模式寄存器52和CPSR(或其它状态寄存器)16的模式指示符位将包括多位值,且比较逻辑58可包含例如解码器等额外电路。在各种实施例中,可利用当前指令集操作模式的其它指示(例如指令解码逻辑的输出)代替CPSR 16。
同时,在地址比较逻辑68中将PC 15的当前值与地址范围寄存器54、56进行比较。每当PC 15的当前值属于目标地址范围内时,断言地址比较逻辑68的输出70。在各种实施例中,“当前”指令地址的指示可视要求或需要而不同于PC 15。举例来说,地址比较电路68可在管线12的解码级、执行级或任何其它管线级中比较指令的地址。另外,可使用更动态的地址,例如管线12中待交付执行的最后指令的地址。
地址比较逻辑68的输出70与指令集操作模式指示符比较逻辑58在与门72处进行与运算,以产生指示在目标地址范围内发生的当前指令集操作模式与目标指令集操作模式之间的日匹配(day match)的输出20。在一个实施例中,提供输出20作为对处理器的输出(见图1)。此输出20可装备和/或触发逻辑分析器,照亮LED,或触发某一其它动作或警报。在一个实施例中,如图1中所描绘,指令集操作模式匹配指示符输出20可包括对控制器14的输入,以暂停处理器10的执行。
在一个实施例中,指令集操作模式匹配指示符输出20可初始化或终止指令追踪操作,其中追踪信息引导到处理器10的输出引脚或存储在芯片上追踪缓冲器(未图示)中。在一个实施例中,如图2中所描绘,指令集操作模式匹配指示符输出20可触发指令集操作模式匹配地址寄存器74,从而捕获PC 15的值,且因此捕获可能在当前指令集操作模式与目标指令集操作模式之间检测到匹配的指令的地址。这可能在检测从一个指令集操作模式到另一指令集操作模式的变化时尤其有价值。此寄存器74的输出76可路由到处理器10的引脚以用于外部检查。
在一个实施例中,指令集操作模式匹配指示符输出20可引起异常,从而将代码执行分支到预定义的例行程序。此指令集模式匹配例行程序可(例如)读取指令集操作模式匹配地址寄存器74。一般来说,指令集操作模式匹配指示符输出20可视要求或需要触发任何已知调试器操作。
图3描绘根据本发明的一个或一个以上实施例调试代码的方法。在方框78处开始,程序设计员初始化调试电路寄存器(方框80)。这可包括(例如)加载目标指令集操作模式寄存器52,以及通过加载开始地址寄存器54和结束地址寄存器56而设置目标地址范围。可视要求或需要初始化额外调试电路寄存器(未图示)。
程序设计员接着开始执行待调试的代码(方框82),从而在代码序列中连续取出和执行下一指令(方框84)。不管地址如何,如果处理器10的当前指令集操作模式不与程序设计员在目标指令集操作模式寄存器52中设置的指令集操作模式匹配(方框86),那么取出和执行下一指令(方框84)直到待调试的代码的结尾为止(方框88),在此情况下方法在方框90处停止。
如果在执行指令(方框84)后,指令地址在预定地址范围内,且当前指令集操作模式与程序设计员在目标指令集操作模式寄存器52中设置的指令集操作模式匹配(方框86),那么调试电路断言输出20且可采取程序设计员指定的任何数目的动作。
举例来说,调试电路输出20可引起处理器10采取异常,从而将代码执行分支到指令集操作模式匹配例行程序(方框92)。调试电路输出20可引起管线控制器14暂停执行(方框94),从而允许程序设计员检查各种寄存器、高速缓冲存储器线等的内容。调试电路18可在外部断言输出20(方框96),所述输出20可用于使逻辑分析器待命或触发逻辑分析器、点亮LED等。调试电路18可额外输出指令集操作模式匹配地址以用于外部检查(方框98)。调试电路18可开始或停止追踪操作(方框100)。尽管描绘为替代方案,但在给定实施例中,调试电路18可执行方框92-96中的两者或两者以上。一般来说,调试电路18可在已检测到当前指令集操作模式与目标指令集操作模式之间的匹配后采取此项技术中已知对在处理器10上调试代码有益的任何动作。
如本文所使用,术语“指令集”是指处理器10借以将指令数据(例如,I高速缓冲存储器线的内容)解译为可执行指令的编码集。术语“指令集操作模式”是指处理器10的根据特定指令集编码来解译指令数据的可识别的操作模式。明确地说,“指令集操作模式”有别于与许可(例如,管理员与用户模式)、存储器寻址(例如,真实与受保护模式)等有关的已知处理器操作“模式”。
尽管已相对于本发明的特定特征、方面和实施例描述本发明,但将明白,在本发明的广泛范围内可能有许多变更、修改和其它实施例,且因此所有变更、修改和实施例应视为在本发明的范围内。因此当前实施例应在所有方面解释为说明性而不是限定性的,且希望在所附权利要求书的含义和等效范围内的所有变化均包含在其中。
Claims (26)
1.一种在具有至少两个不同指令集操作模式的处理器上调试包括多个指令的软件代码的方法,其包括:
在执行任何代码指令之前接收目标指令集操作模式;
执行代码指令,且针对所执行的每一指令,将当前处理器指令集操作模式与所述目标指令集操作模式进行比较;以及
如果所述当前处理器指令集操作模式与所述目标指令集操作模式匹配,则触发警告。
2.根据权利要求1所述的方法,其中所述警告包括暂停指令执行。
3.根据权利要求1所述的方法,其中所述警告包括控制追踪操作。
4.根据权利要求1所述的方法,其中所述警告包括引起异常。
5.根据权利要求1所述的方法,其中所述警告包括输出指示所述当前处理器指令集操作模式与所述目标指令集操作模式之间的匹配的信号。
6.根据权利要求1所述的方法,其中所述警告包括输出所述当前处理器指令集操作模式与所述目标指令集操作模式匹配所针对的指令的地址。
7.根据权利要求1所述的方法,其进一步包括:
在执行任何代码指令之前接收目标地址范围;
针对所执行的每一指令,将当前指令地址与所述目标地址范围进行比较;以及
仅在所述当前处理器指令集操作模式与所述目标指令集操作模式匹配且所述当前指令地址在所述目标地址范围内的情况下,才触发所述警告。
8.一种在具有至少两个不同的指令集操作模式的处理器上执行软件的方法,其包括:
针对所执行的每一指令,将当前处理器指令集操作模式与目标指令集操作模式进行比较,并且将当前指令地址与目标地址范围比较;以及
如果所述当前处理器指令集操作模式与所述目标指令集操作模式相匹配,并且所述当前指令地址与所述目标地址范围相匹配,则识别所述当前处理器指令集操作模式与所述目标指令集操作模式相匹配的地址;以及
触发警告。
9.根据权利要求8所述的方法,其中所述警告包括暂停指令执行。
10.根据权利要求8所述的方法,其中所述警告包括控制追踪操作。
11.根据权利要求8所述的方法,其中所述警告包括引起异常。
12.根据权利要求8所述的方法,其中所述警告包括输出指示指令集操作模式的变化的信号。
13.根据权利要求8所述的方法,其中所述警告包括输出所识别的指令的所述地址。
14.一种操作以根据两个或两个以上指令集编码执行指令的处理器,每一指令集编码处于不同的指令集操作模式,所述处理器包括:
状态寄存器,其操作以存储当前指令集操作模式指示符;
数据存储位置,其操作以存储目标指令集操作模式指示符;
执行单元,其操作以根据当前指令集操作模式来执行指令;以及
比较电路,其操作以在执行每一指令后将所述当前指令集操作模式与所述目标指令集操作模式进行比较,并在所述当前指令集操作模式与所述目标指令集操作模式匹配的情况下输出指示。
15.根据权利要求14所述的处理器,其中所述指示包括操作以暂停指令执行的信号。
16.根据权利要求14所述的处理器,其中所述指示包括操作以控制追踪操作的信号。
17.根据权利要求14所述的处理器,其中所述指示包括操作以引起异常的信号。
18.根据权利要求14所述的处理器,其中所述指示包括指示所述当前指令集操作模式与所述目标指令集操作模式匹配的信号。
19.根据权利要求14所述的处理器,其中所述指示包括当在所述当前指令集操作模式与所述目标指令集操作模式之间检测到匹配时执行的指令的地址。
20.根据权利要求14所述的处理器,其进一步包括操作以存储目标地址范围的数据存储位置,且其中所述比较电路操作以仅在所述当前指令集操作模式与所述目标指令集操作模式匹配且当前执行的所述指令的地址属于所述目标地址范围内的情况下才输出指示。
21.一种操作以执行两个或两个以上指令集编码的处理器,每一指令集编码处于不同的指令集操作模式,所述处理器包括:
比较电路,其操作以针对所执行的每一指令,将当前处理器指令集操作模式与目标指令集操作模式进行比较,并且将当前指令地址与目标地址范围比较;
如果所述当前处理器指令集操作模式与所述目标指令集操作模式相匹配,则输出所述当前处理器指令集操作模式与所述目标指令集操作模式相匹配的指示;以及
如果所述当前处理器指令集操作模式与所述目标指令集操作模式相匹配,并且所述当前指令地址与所述目标地址范围相匹配,则输出所述当前处理器指令集操作模式与所述目标指令集操作模式相匹配的指令地址。
22.根据权利要求21所述的处理器,其中所述指示包括操作以暂停指令执行的信号。
23.根据权利要求21所述的处理器,其中所述指示包括操作以控制追踪操作的信号。
24.根据权利要求21所述的处理器,其中所述指示包括操作以引起异常的信号。
25.根据权利要求21所述的处理器,其中所述指示包括指示指令集操作模式的变化的信号。
26.根据权利要求21所述的处理器,其中所述指示包括所述指令集操作模式变化地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611183722.0A CN106909501B (zh) | 2006-08-09 | 2007-08-03 | 比较处理器指令集操作模式的调试电路 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/463,379 | 2006-08-09 | ||
US11/463,379 US8352713B2 (en) | 2006-08-09 | 2006-08-09 | Debug circuit comparing processor instruction set operating mode |
PCT/US2007/075194 WO2008021763A1 (en) | 2006-08-09 | 2007-08-03 | Debug circuit comparing processor instruction set operating mode |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611183722.0A Division CN106909501B (zh) | 2006-08-09 | 2007-08-03 | 比较处理器指令集操作模式的调试电路 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101501650A CN101501650A (zh) | 2009-08-05 |
CN101501650B true CN101501650B (zh) | 2016-12-07 |
Family
ID=38891045
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611183722.0A Active CN106909501B (zh) | 2006-08-09 | 2007-08-03 | 比较处理器指令集操作模式的调试电路 |
CN200780029330.1A Active CN101501650B (zh) | 2006-08-09 | 2007-08-03 | 比较处理器指令集操作模式的调试电路 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611183722.0A Active CN106909501B (zh) | 2006-08-09 | 2007-08-03 | 比较处理器指令集操作模式的调试电路 |
Country Status (13)
Country | Link |
---|---|
US (1) | US8352713B2 (zh) |
EP (2) | EP3009936A1 (zh) |
JP (2) | JP5546859B2 (zh) |
KR (1) | KR101019278B1 (zh) |
CN (2) | CN106909501B (zh) |
BR (1) | BRPI0715163B1 (zh) |
CA (1) | CA2658829C (zh) |
ES (1) | ES2588185T3 (zh) |
HU (1) | HUE029441T2 (zh) |
IN (1) | IN2014MN01895A (zh) |
MX (1) | MX2009001458A (zh) |
RU (1) | RU2429525C2 (zh) |
WO (1) | WO2008021763A1 (zh) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2864655B1 (fr) * | 2003-12-31 | 2006-03-24 | Trusted Logic | Procede de controle d'integrite de programmes par verification d'empreintes de traces d'execution |
US7555605B2 (en) * | 2006-09-28 | 2009-06-30 | Freescale Semiconductor, Inc. | Data processing system having cache memory debugging support and method therefor |
US20080162900A1 (en) * | 2006-12-29 | 2008-07-03 | Andre Rolfsmeier | System, Method and Apparatus for Observing a Control Device |
CN101777021B (zh) * | 2010-01-21 | 2012-07-04 | 龙芯中科技术有限公司 | 微处理器中精确数据断点的实现装置及其方法 |
US9639451B2 (en) | 2010-01-25 | 2017-05-02 | Nxp Usa, Inc. | Debugger system, method and computer program product for utilizing hardware breakpoints for debugging instructions |
GB2482701C (en) * | 2010-08-11 | 2018-12-26 | Advanced Risc Mach Ltd | Illegal mode change handling |
GB2483906C (en) * | 2010-09-24 | 2019-10-09 | Advanced Risc Mach Ltd | Selection of debug instruction set for debugging of a data processing apparatus |
US8914615B2 (en) | 2011-12-02 | 2014-12-16 | Arm Limited | Mapping same logical register specifier for different instruction sets with divergent association to architectural register file using common address format |
WO2013142948A1 (en) * | 2012-03-30 | 2013-10-03 | Irdeto Canada Corporation | Method and system for preventing and detecting security threats |
KR102013582B1 (ko) | 2012-09-07 | 2019-08-23 | 삼성전자 주식회사 | 혼합 모드 프로그램의 소스 코드 오류 위치 검출 장치 및 방법 |
JP2014085859A (ja) * | 2012-10-24 | 2014-05-12 | Renesas Electronics Corp | 半導体集積回路装置 |
US9268563B2 (en) * | 2012-11-12 | 2016-02-23 | International Business Machines Corporation | Verification of a vector execution unit design |
RU2635044C2 (ru) * | 2013-06-27 | 2017-11-08 | Интел Корпорейшн | Режим слежения в устройстве обработки в системах трассировки команд |
GB2527088B (en) * | 2014-06-11 | 2021-07-14 | Advanced Risc Mach Ltd | Executing debug program instructions on a target apparatus processing pipeline |
US9626267B2 (en) * | 2015-01-30 | 2017-04-18 | International Business Machines Corporation | Test generation using expected mode of the target hardware device |
US10031834B2 (en) | 2016-08-31 | 2018-07-24 | Microsoft Technology Licensing, Llc | Cache-based tracing for time travel debugging and analysis |
US11269640B2 (en) * | 2017-02-13 | 2022-03-08 | Qualcomm Incorporated | Speculative transitions among modes with different privilege levels in a block-based microarchitecture |
US10169196B2 (en) * | 2017-03-20 | 2019-01-01 | Microsoft Technology Licensing, Llc | Enabling breakpoints on entire data structures |
US10534881B2 (en) * | 2018-04-10 | 2020-01-14 | Advanced Micro Devices, Inc. | Method of debugging a processor |
US10740220B2 (en) * | 2018-06-27 | 2020-08-11 | Microsoft Technology Licensing, Llc | Cache-based trace replay breakpoints using reserved tag field bits |
US11468199B2 (en) | 2020-07-22 | 2022-10-11 | Apple Inc. | Authenticated debug for computing systems |
US12020062B2 (en) | 2020-10-20 | 2024-06-25 | Micron Technology, Inc. | Method of executing programmable atomic unit resources within a multi-process system |
US11586439B2 (en) | 2020-10-20 | 2023-02-21 | Micron Technology, Inc. | Detecting infinite loops in a programmable atomic transaction |
US11436187B2 (en) * | 2020-10-20 | 2022-09-06 | Micron Technology, Inc. | Method of notifying a process or programmable atomic operation traps |
CN113127285B (zh) * | 2021-06-17 | 2021-10-08 | 北京燧原智能科技有限公司 | 一种错误数据调试方法、装置、芯片及计算机设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5680620A (en) * | 1995-06-30 | 1997-10-21 | Dell Usa, L.P. | System and method for detecting access to a peripheral device using a debug register |
GB2374694A (en) * | 2001-02-26 | 2002-10-23 | Advanced Risc Mach Ltd | Storing instruction set information |
CN1450450A (zh) * | 2003-05-15 | 2003-10-22 | 复旦大学 | 采用双指令集的32位嵌入式微处理器 |
Family Cites Families (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06202907A (ja) | 1993-01-06 | 1994-07-22 | Hitachi Ltd | デバッグ支援装置 |
US5781750A (en) * | 1994-01-11 | 1998-07-14 | Exponential Technology, Inc. | Dual-instruction-set architecture CPU with hidden software emulation mode |
US5481684A (en) * | 1994-01-11 | 1996-01-02 | Exponential Technology, Inc. | Emulating operating system calls in an alternate instruction set using a modified code segment descriptor |
US5574927A (en) * | 1994-03-25 | 1996-11-12 | International Meta Systems, Inc. | RISC architecture computer configured for emulation of the instruction set of a target computer |
US5638525A (en) * | 1995-02-10 | 1997-06-10 | Intel Corporation | Processor capable of executing programs that contain RISC and CISC instructions |
US6408386B1 (en) * | 1995-06-07 | 2002-06-18 | Intel Corporation | Method and apparatus for providing event handling functionality in a computer system |
US5774686A (en) * | 1995-06-07 | 1998-06-30 | Intel Corporation | Method and apparatus for providing two system architectures in a processor |
JP3623840B2 (ja) * | 1996-01-31 | 2005-02-23 | 株式会社ルネサステクノロジ | データ処理装置及びマイクロプロセッサ |
US5963737A (en) * | 1996-04-18 | 1999-10-05 | International Business Machines Corporation | Interupt vectoring for trace exception facility in computer systems |
DE19701166A1 (de) * | 1997-01-15 | 1998-07-23 | Siemens Ag | Verfahren zur Überwachung der bestimmungsgemäßen Ausführung von Softwareprogrammen |
US6631514B1 (en) * | 1998-01-06 | 2003-10-07 | Hewlett-Packard Development, L.P. | Emulation system that uses dynamic binary translation and permits the safe speculation of trapping operations |
JPH11338710A (ja) * | 1998-05-28 | 1999-12-10 | Toshiba Corp | 複数種の命令セットを持つプロセッサのためのコンパイル方法ならびに装置および同方法がプログラムされ記録される記録媒体 |
US6480818B1 (en) * | 1998-11-13 | 2002-11-12 | Cray Inc. | Debugging techniques in a multithreaded environment |
US6430674B1 (en) * | 1998-12-30 | 2002-08-06 | Intel Corporation | Processor executing plural instruction sets (ISA's) with ability to have plural ISA's in different pipeline stages at same time |
US7013456B1 (en) * | 1999-01-28 | 2006-03-14 | Ati International Srl | Profiling execution of computer programs |
US7065633B1 (en) * | 1999-01-28 | 2006-06-20 | Ati International Srl | System for delivering exception raised in first architecture to operating system coded in second architecture in dual architecture CPU |
US6826748B1 (en) * | 1999-01-28 | 2004-11-30 | Ati International Srl | Profiling program execution into registers of a computer |
US7275246B1 (en) * | 1999-01-28 | 2007-09-25 | Ati International Srl | Executing programs for a first computer architecture on a computer of a second architecture |
US6446197B1 (en) * | 1999-10-01 | 2002-09-03 | Hitachi, Ltd. | Two modes for executing branch instructions of different lengths and use of branch control instruction and register set loaded with target instructions |
US6449712B1 (en) * | 1999-10-01 | 2002-09-10 | Hitachi, Ltd. | Emulating execution of smaller fixed-length branch/delay slot instructions with a sequence of larger fixed-length instructions |
US7793261B1 (en) * | 1999-10-01 | 2010-09-07 | Stmicroelectronics Limited | Interface for transferring debug information |
US6609247B1 (en) * | 2000-02-18 | 2003-08-19 | Hewlett-Packard Development Company | Method and apparatus for re-creating the trace of an emulated instruction set when executed on hardware native to a different instruction set field |
US7149878B1 (en) * | 2000-10-30 | 2006-12-12 | Mips Technologies, Inc. | Changing instruction set architecture mode by comparison of current instruction execution address with boundary address register values |
US6760864B2 (en) * | 2001-02-21 | 2004-07-06 | Freescale Semiconductor, Inc. | Data processing system with on-chip FIFO for storing debug information and method therefor |
US6901583B1 (en) * | 2001-07-19 | 2005-05-31 | Hewlett-Packard Development Company, L.P. | Method for testing of a software emulator while executing the software emulator on a target machine architecture |
US7865948B1 (en) * | 2001-12-03 | 2011-01-04 | Advanced Micro Devices, Inc. | Method and apparatus for restricted execution of security sensitive instructions |
US7017030B2 (en) * | 2002-02-20 | 2006-03-21 | Arm Limited | Prediction of instructions in a data processing apparatus |
JP2003256237A (ja) | 2002-02-27 | 2003-09-10 | Toshiba Corp | 割り込み発生装置、割り込み発生方法および割り込み発生プログラム |
GB0225649D0 (en) * | 2002-11-04 | 2002-12-11 | Transitive Technologies Ltd | Incremental validation |
US20060149927A1 (en) * | 2002-11-26 | 2006-07-06 | Eran Dagan | Processor capable of multi-threaded execution of a plurality of instruction-sets |
EP1628235A1 (en) * | 2004-07-01 | 2006-02-22 | Texas Instruments Incorporated | Method and system of ensuring integrity of a secure mode entry sequence |
US7958335B2 (en) * | 2005-08-05 | 2011-06-07 | Arm Limited | Multiple instruction set decoding |
US7757221B2 (en) * | 2005-09-30 | 2010-07-13 | Intel Corporation | Apparatus and method for dynamic binary translator to support precise exceptions with minimal optimization constraints |
-
2006
- 2006-08-09 US US11/463,379 patent/US8352713B2/en active Active
-
2007
- 2007-08-03 EP EP15194129.1A patent/EP3009936A1/en not_active Ceased
- 2007-08-03 WO PCT/US2007/075194 patent/WO2008021763A1/en active Application Filing
- 2007-08-03 CN CN201611183722.0A patent/CN106909501B/zh active Active
- 2007-08-03 RU RU2009108321/08A patent/RU2429525C2/ru active
- 2007-08-03 HU HUE07813770A patent/HUE029441T2/en unknown
- 2007-08-03 EP EP07813770.0A patent/EP2054808B1/en active Active
- 2007-08-03 ES ES07813770.0T patent/ES2588185T3/es active Active
- 2007-08-03 JP JP2009523924A patent/JP5546859B2/ja active Active
- 2007-08-03 CN CN200780029330.1A patent/CN101501650B/zh active Active
- 2007-08-03 BR BRPI0715163-2A patent/BRPI0715163B1/pt active IP Right Grant
- 2007-08-03 MX MX2009001458A patent/MX2009001458A/es active IP Right Grant
- 2007-08-03 KR KR1020097004853A patent/KR101019278B1/ko active IP Right Grant
- 2007-08-03 IN IN1895MUN2014 patent/IN2014MN01895A/en unknown
- 2007-08-03 CA CA2658829A patent/CA2658829C/en active Active
-
2012
- 2012-10-12 JP JP2012227313A patent/JP5788370B2/ja active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5680620A (en) * | 1995-06-30 | 1997-10-21 | Dell Usa, L.P. | System and method for detecting access to a peripheral device using a debug register |
GB2374694A (en) * | 2001-02-26 | 2002-10-23 | Advanced Risc Mach Ltd | Storing instruction set information |
CN1450450A (zh) * | 2003-05-15 | 2003-10-22 | 复旦大学 | 采用双指令集的32位嵌入式微处理器 |
Also Published As
Publication number | Publication date |
---|---|
CN101501650A (zh) | 2009-08-05 |
CN106909501B (zh) | 2021-02-05 |
EP2054808A1 (en) | 2009-05-06 |
US20080040587A1 (en) | 2008-02-14 |
CA2658829C (en) | 2016-01-05 |
WO2008021763A1 (en) | 2008-02-21 |
HUE029441T2 (en) | 2017-02-28 |
JP5546859B2 (ja) | 2014-07-09 |
KR101019278B1 (ko) | 2011-03-07 |
RU2009108321A (ru) | 2010-09-20 |
MX2009001458A (es) | 2009-02-19 |
EP2054808B1 (en) | 2016-05-25 |
BRPI0715163A2 (pt) | 2013-06-11 |
BRPI0715163B1 (pt) | 2023-05-09 |
KR20090051205A (ko) | 2009-05-21 |
ES2588185T3 (es) | 2016-10-31 |
CN106909501A (zh) | 2017-06-30 |
JP5788370B2 (ja) | 2015-09-30 |
IN2014MN01895A (zh) | 2015-07-10 |
JP2010500661A (ja) | 2010-01-07 |
CA2658829A1 (en) | 2008-02-21 |
EP3009936A1 (en) | 2016-04-20 |
US8352713B2 (en) | 2013-01-08 |
JP2013058217A (ja) | 2013-03-28 |
RU2429525C2 (ru) | 2011-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101501650B (zh) | 比较处理器指令集操作模式的调试电路 | |
US6754856B2 (en) | Memory access debug facility | |
CN104169889B (zh) | 在事务执行模式中的运行时间检测采样的方法和系统 | |
US7809989B2 (en) | Performing diagnostic operations upon an asymmetric multiprocessor apparatus | |
CN104380264B (zh) | 运行时间检测报告 | |
US5878208A (en) | Method and system for instruction trace reconstruction utilizing limited output pins and bus monitoring | |
US7506205B2 (en) | Debugging system and method for use with software breakpoint | |
US5838897A (en) | Debugging a processor using data output during idle bus cycles | |
US5894575A (en) | Method and system for initial state determination for instruction trace reconstruction | |
US6792563B1 (en) | Method and apparatus for bus activity tracking | |
US7555605B2 (en) | Data processing system having cache memory debugging support and method therefor | |
CN107577593B (zh) | 使用执行单一步骤来诊断编码 | |
Foutris et al. | Assessing the impact of hard faults in performance components of modern microprocessors | |
CN107122128A (zh) | 数据存储 | |
JPH0528002A (ja) | マイクロプロセツサ | |
Melear | Emulation techniques for microcontrollers with internal caches and multiple execution units |
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 |