CN109284223B - 可配置的调试方法和系统 - Google Patents
可配置的调试方法和系统 Download PDFInfo
- Publication number
- CN109284223B CN109284223B CN201710599350.8A CN201710599350A CN109284223B CN 109284223 B CN109284223 B CN 109284223B CN 201710599350 A CN201710599350 A CN 201710599350A CN 109284223 B CN109284223 B CN 109284223B
- Authority
- CN
- China
- Prior art keywords
- debug
- trace data
- processor
- components
- unit
- 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
- 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
技术领域
本发明通常涉及处理装置,且尤其涉及调试架构。
背景技术
为了提高处理性能并检测程序设计错误,许多处理器包括调试组件,所述调试组件在程序执行期间生成状态信息(被称为调试踪迹数据)。调试踪迹数据反映在其生成时处理器的不同组件的状态。调试组件可以是可编程的,使得调试踪迹数据响应于由程序员定义的标准而生成。程序员可以采用调试器来读取和分析所生成的踪迹数据,并且基于分析而调节程序的设计。然而,传统的调试架构不够灵活,并且在正常操作期间可能会不利地影响处理器的性能。
发明内容
本发明提供了一种用于处理器的调试架构,所述调试架构通过识别所述调试踪迹数据的优先级,并且按照优先级顺序处理所述踪迹调试数据以生成所述组件的状态信息,以对来自处理系统的多个组件的调试踪迹数据划分优先级。在一些实施方案中,调试单元独立于所述处理系统的其余部分而被供电。在一些实施方案中,调试单元将调试踪迹数据存储在踪迹控制缓冲区处,所述踪迹控制缓冲区是由所述处理系统在正常操作期间采用的存储器资源的一部分。
附图说明
通过参考附图,可以更好地理解本公开,并且其许多特征和优点对于本领域技术人员而言将变得显而易见。在不同附图中使用相同的参考符号表示相似或相同的项目。
图1是根据一些实施方案的包括调试单元的处理系统的方框图,所述调试单元识别来自处理系统的多个组件的调试踪迹数据的优先级。
图2是根据一些实施方案的图1的调试单元的实例,所述调试单元识别来自处理系统的多个组件的调试踪迹数据的不同优先级。
图3是根据一些实施方案的图1的调试单元的实例,所述调试单元从与向处理系统的处理器核心供应电压的功率域分开的功率域接收电压。
图4是根据一些实施方案的图1的调试单元的实例,所述调试单元将调试单元的踪迹控制缓冲区的一部分分配作为用于处理系统的组件的存储器。
图5是示出根据一些实施方案的用于识别来自处理系统的多个组件的调试踪迹数据的优先级的方法的流程图。
具体实施方式
图1-5示出了用于处理器的调试架构,所述处理器通过识别踪迹的优先级并按照优先级顺序处理所述踪迹来生成组件的状态信息而对来自处理系统的多个组件的调试踪迹数据(又被称为踪迹)划分优先级。通过对来自处理系统的多个组件中的一个或多个的踪迹的处理划分优先级,调试单元可以提供有关组件的运行的目标更明确的状态信息。
此外,在一些实施方案中,调试组件放置在与向处理系统的处理器核心供应电压的功率域分开的专用功率域中,使得可以独立于处理系统的其余部分来对调试系统供电,从而降低处理器的总功耗。
此外,在一些实施方案中,调试单元将踪迹存储在踪迹控制缓冲区处,所述踪迹控制缓冲区是由处理系统在正常操作期间采用的存储器资源的一部分。因此,可以在调试操作期间将存储器资源分配作为踪迹缓冲区,并且在处理系统的正常(非调试)操作期间也可以将所述存储器资源采用作为存储器。处理系统因此可以更有效地利用其存储器资源。
为了通过实例来说明,程序员可以基于来自处理系统的组件的踪迹而从调试单元收集状态信息,以更好地理解软件对处理器的各种组件的影响。基于状态信息,程序员可以针对特定处理系统的组件优化软件。例如,在处理软件的过程中,处理器核心、预取器、高速缓存控制器和存储器控制器可以生成含有与当前工作负载有关的信息的踪迹并且向调试单元发送所述踪迹。调试单元从各种组件接收踪迹,并且向外部调试器生成组件中的每一个的状态信息,所述外部调试器识别软件代码和所述组件的性能信息的问题。性能信息可以例如指示高速缓存处的高速缓存缺失率高于阈值水平,或软件中的特定例程对存储器控制器造成了压力。程序员可以使用性能信息来考虑处理系统的性能特征,并且调节软件以更有效地利用处理系统的组件。
然而,常规调试单元并未对从处理器的其他组件向调试单元提供踪迹的顺序划分优先级或者并未控制所述顺序,并且因此无法有效地从特定组件产生踪迹。为了促进对从处理器的组件中的一个或多个提供踪迹划分优先级,本文描述的调试系统向踪迹中的每一个分派优先级并且按照优先级顺序处理所述踪迹。
此外,常规调试单元从电压源接收电压,所述电压源还向处理器的处理器核心供应电压。因此,当处理器核心接收电压时,甚至是在调试单元尚未被激活来执行调试功能的情况下,常规调试单元也处于“始终接通”状态,从而导致不必要的功耗。在一些实施方案中,本文描述的调试系统从与向处理器的处理器核心供应电压的电压源分开的电压源接收电压。通过从单独的电压源接收电压,调试系统可以在调试功能被激活时选择性地向调试单元施加电压,从而使得处理器能够在调试功能未被激活时节省功率。
另外,常规调试单元将踪迹存储在专门分配来存储踪迹的踪迹控制缓冲区处。当存储在踪迹控制缓冲区处的踪迹数据的量下降到第一阈值以下时,不会使用踪迹控制缓冲区处的可用存储器,从而导致存储器的使用效率低下。相反,当存储在踪迹控制缓冲区处的踪迹数据的量高于第二阈值时,常规调试单元不会从处理系统的存储器模块分配除了踪迹控制缓冲区之外的存储器。在一些实施方案中,当存储在踪迹控制缓冲区处的踪迹数据的量下降到第一阈值量以下时,调试单元会分配踪迹控制缓冲区的一部分。在一些实施方案中,当存储在踪迹控制缓冲区处的踪迹数据的量超过第二阈值量时,调试单元会分配存储有关处理器的组件的数据的存储器模块的一部分来存储踪迹数据。
图1示出了处理系统100,所述处理系统包括处理器110和外部调试器125。处理器110包括调试单元120,所述调试单元对来自处理器110的多个组件130、132、134、136的踪迹划分优先级,并且从独立于向处理器110的处理器核心152供应电压的处理器核心电压155的调试单元电压126接收电压。处理器110通常被配置来执行呈计算机程序的形式组织的指令集,以便于代表电子装置执行任务。因此,处理器110可以用在各种电子装置中的任一种中,诸如台式或膝上型计算机、服务器、智能手机、平板计算机、游戏控制台等等。
为了促进对在处理器110处执行的软件的详细故障排除,处理系统100包括外部调试器125。外部调试器125被配置来相对于处理器110的硬件和/或固件特征分析由外部用户调用的软件程序或例程。外部调试器125被配置来响应于外部用户或调试程序在外部调试器125处发起调试会话而激活调试单元120。外部调试器125接收在处理器110的调试单元120处收集和处理的调试数据,并且分析所述调试数据以提供有关处理器110在其执行软件程序或例程的指令时的性能的信息。
为了促进指令执行,处理器110包括处理器核心152和存储器150。处理器核心152被配置来连同存储器150和多个组件130、132、134、136一起执行来自执行软件的指令。多个组件130、132、134、136可以包括一个或多个高速缓存控制器、高速缓存、预取器、算术逻辑单元、加载/存储单元、存储器控制器、处理器核心以及存储器。在一些实施方案中,处理器110的模块中的每一个形成在同一个半导体管芯上,并且在一些实施方案中,组件130、132、134、136中的一些形成在同一个半导体管芯上以形成处理器110的至少一部分,并且存储器150形成在不同的半导体管芯上并且经由一根或多根总线或信号线连接至处理器110。在一些实施方案中,存储器150的至少一部分形成在与处理器110的组件相同的半导体管芯上。
在一些实施方案中,组件1-N(130、132、134、136)中的一个或多个是被配置成结合存储器150一起工作的高速缓存。在这类实施方案中,高速缓存(组件1 130)和存储器150各自都是通常被配置来存储数据的存储器装置,并且因此可以是随机存取存储器(RAM)存储器模块、非易失性存储器装置(例如,快闪存储器)等等。如本文进一步所描述,高速缓存和存储器150形成处理器110的存储器层次。此外,处理器110的存储器层次可以包括其他存储器模块,诸如图1中未示出的附加高速缓存。
处理器核心152包括指令流水线,所述指令流水线具有例如用于提取指令的提取阶段;用于将每个提取的指令解码为一个或多个操作的解码阶段;用于执行操作的执行阶段;以及用于使已经完成执行操作的指令引退的引退阶段。基于指令生成的一组操作在本文中被称为存储器存取指令操作,并且是对从处理器110的存储器层次加载数据(加载操作)的请求,并且是对在处理器110的存储器层次处存储数据(存储操作)的请求。由处理器核心152生成的存储器存取请求表示对加载或存储正被执行软件使用或已知所述执行软件即将需要的数据的请求,并且在本文中被称为需求请求。
组件1-N(130、132、134、136)中的一个或多个可以是高速缓存控制器,所述高速缓存控制器是通常被配置来通过在处理器核心152、一个或多个高速缓存与存储器150之间移动数据来管理处理器110的存储器层次的模块。具体而言,高速缓存是包括多个条目的存储器装置,由此每个条目与存储器150的一个或多个地址相关联。响应于存储器存取请求,高速缓存控制器审阅存储在相关联的高速缓存的一个或多个条目处的数据,以确定所述条目中的任一个是否存储与存储器存取请求所指向的存储器地址相关联的数据。如果是这样,那么高速缓存控制器指示高速缓存命中并且在所识别的条目处通过以下方式来满足存储器存取请求:将数据存储在所述条目处(在存储操作的情况下)或者向处理器核心152提供所识别的条目处的数据(在加载操作的情况下)。
如果与存储器地址相关联的数据并未存储在相关联的高速缓存的条目处,那么高速缓存控制器指示高速缓存缺失,并且向存储器150发出对所述存储器地址处的数据的请求。在从存储器150接收到数据之后,高速缓存控制器将数据存储在相关联的高速缓存的条目处,进而向处理器核心152提供所述数据,从而满足存储器存取请求。
在一些实施方案中,为了支持提高的存储器存取效率,处理系统可以将组件1-N(130、132、134、136)中的一个包括作为预取器,所述预取器监测向高速缓存控制器发出的需求请求以识别模式并且基于所识别的模式而预测将在不久的将来将成为处理器核心152的需求请求的目标的存储器地址。预取器向高速缓存控制器发出指向所识别的存储器地址的存储器存取请求(在本文中被称为预取请求)。高速缓存控制器通过以下方式来处理与需求请求类似的预取请求:首先识别与预取请求所指向的存储器地址相关联的数据是否已经存储在相关联的高速缓存的条目处,并且如果尚未存储,那么从存储器150请求数据并且将所述数据存储在高速缓存的条目处。
在一些实施方案中,一个或多个高速缓存中的每一个的每个条目与存储器地址的子集相关联,并且仅允许与所述子集相关联的数据的单元(被称为高速缓存行)存储在所述条目处。例如,在一些实施方案中,高速缓存是N路组相联高速缓存,其具有M个组并且M组中的每一个包括N个条目。M组中的每一个被分派了不同的存储器地址子集,使得在数据与条目的分派子集中的存储器地址相关联的情况下,高速缓存控制器仅将数据存储在所述条目处。
组件1-N(130、132、134、136)中的每一个被配置来分别生成调试踪迹数据160、162、164、166,所述调试踪迹数据指示相关联的组件在指令在处理器核心152处执行时的性能特征。例如,调试踪迹数据160、162、164、166可以包括对应的组件1-N(130、132、134、136)的变量值,所述变量值指示组件1-N(130、132、134、136)中的每一个相对于执行软件的需求如何运行。
调试单元120包括踪迹控制缓冲区124,所述踪迹控制缓冲区用于存储等待在调试单元120处处理的调试踪迹数据160、162、164、166。在至少一个实施方案中,踪迹控制缓冲区124被实施为队列,所述队列被配置来按照如由踪迹选择模块122指示的优先级顺序而存储未决调试踪迹数据。在至少一个实施方案中,踪迹控制缓冲区124被实施为包括易失性存储器的任何形式的存储器。在调试单元120完成对调试踪迹数据的处理时,所述调试单元向踪迹控制缓冲区124提供要其准备另一种调试踪迹数据的控制信令。作为响应,踪迹控制缓冲区124选择接下来的调试踪迹数据并且向调试单元120提供所述调试踪迹数据。
调试单元电压126向调试单元120供应电压,所述电压与由处理器核心电压155向处理器核心152供应的电压是分开的。由于调试单元电压126独立地向调试单元120供应电压,所以调试单元120不一定在从处理器核心电压155向处理器核心152供应电压的所有时间接收电压。在一些实施方案中,调试单元电压126响应于外部调试器125断言用于激活调试单元120的信号而向调试单元120供应电压。在一些实施方案中,调试单元电压126响应于外部调试器125停止断言用于激活调试单元120的信号或者断言用于停用调试单元120的信号而停止向调试单元120供应电压。
处理器110包括路由器1-N(140、142、144、146),所述路由器1-N对应于组件1-N(130、132、134、136)中的每一个并且被配置来捕获由组件1-N(130、132、134、136)中的每一个生成的调试踪迹数据160、162、164、166。路由器1-N(140、142、144、146)经由总线115而向调试单元120提供调试踪迹数据160、162、164、166。
为了促进对调试踪迹数据的目标更明确的处理,调试单元120包括踪迹选择模块122。踪迹选择模块122被配置来根据一个或多个协议来分别识别由组件1-N(130、132、134、136)生成的调试踪迹数据160、162、164、166中的每一个的优先级。协议可以是基于外部用户通过外部调试器125而指示的优先级、或其他因素,诸如来自组件1-N(130、132、134、136)中的每一个的调试踪迹数据160、162、164、166的量和特征。在一些实施方案中,踪迹选择模块122将循环顺序协议应用于调试踪迹数据160、162、164、166,使得例如路由器1 140首先提供来自组件1 130的踪迹调试数据160,然后路由器2 142提供来自组件2 132的踪迹调试数据162,之后路由器3 144提供来自组件3 134的踪迹调试数据164,依此类推,直到路由器N 146提供来自组件N 136的踪迹调试数据166为止,在此之后路由器1 140在下一个时间段内提供来自组件1 130的踪迹调试数据160,并且针对路由器2-N的其余部分重复所述过程。在一些实施方案中,除非到达调试单元的调试踪迹数据的吞吐量超过阈值,否则踪迹选择模块122识别循环顺序协议,在所述吞吐量超过阈值的情况下,踪迹选择模块122应用优先级顺序协议,所述优先级顺序协议识别来自组件1-N(130、132、134、136)中的一些的调试踪迹数据的不同优先级。
为了说明,在操作中,处理器110执行来自执行软件的指令,并且外部用户激活外部调试器125的调试功能。外部调试器125断言用于激活调试单元120的信号,响应于此,调试单元电压126向调试单元120供应电压。组件1-N(130、132、134、136)结合处理器核心152和存储器150一起执行其相应的指定功能,以执行执行软件的指令,并且生成调试踪迹数据160、162、164、166,所述调试踪迹数据指示对应的组件1-N(130、132、134、136)的性能特征。基于因素,诸如来自外部调试器的指令以及从组件1-N(130、132、134、136)中的每一个接收的踪迹调试数据的量和/或特征,调试单元120的踪迹选择模块122应用识别调试踪迹数据160、162、164、166中的每一个的优先级的协议。路由器1-N(140、142、144、146)根据由踪迹选择模块122应用的协议所识别的优先级顺序经由总线115而向调试单元120提供分别来自组件1-N(130、132、134、136)中的每一个的调试踪迹数据160、162、164、166。踪迹控制缓冲区124按照如由踪迹选择模块122所指示的优先级顺序来存储调试踪迹数据160、162、164、166,直到调试踪迹数据160、162、164、166被调试单元120处理为止。调试单元120从踪迹控制缓冲区124接收调试踪迹数据160、162、164、166,并且处理调试踪迹数据160、162、164、166以基于对应的调试踪迹数据160、162、164、166而生成组件1-N(130、132、134、136)中的每一个的状态信息。调试单元120向外部调试器125提供状态信息,并且外部调试器125基于状态信息而识别软件代码和组件1-N(130、132、134、136)的性能信息的问题。
图2示出了根据一些实施方案的调试单元220的实例,所述调试单元应用不同的协议来对从图1的处理器110的多个组件接收的调试踪迹数据进行排序。在所示的实例中,调试单元220包括踪迹选择模块222、踪迹控制缓冲区224以及阈值226。调试单元220被配置来分别从图1的处理器110的多个组件1-N(230、232、234、236)接收调试踪迹数据260、262、264、266。多个组件1-N(230、232、234、236)分别向路由器1-N 240、242、244、246中的每一个提供C1-CN调试踪迹数据260、262、264、266。踪迹选择模块222基于存储在踪迹控制缓冲区224处的调试踪迹数据的量是否超过阈值226而选择性地将循环顺序协议252或优先级顺序协议254应用于来自组件1-N(230、232、234、236)的调试踪迹数据260、262、264、266,并且向路由器1-N 240、242、244、246传达所应用的协议。在一些实施方案中,踪迹选择模块222选择性地将事件触发协议(未示出)应用于来自组件1-N(230、232、234、236)的调试踪迹数据260、262、264、266,其中优先级顺序取决于处理器110的功率模式。根据由所应用的协议指示的优先级顺序,路由器1-N 240、242、244、246中的每一个经由总线215而向调试单元220提供来自组件1-N(230、232、234、236)中的每一个的C1-CN调试踪迹数据260、262、264、266。
踪迹控制缓冲区224按照由所应用的协议识别的顺序从路由器1-N 240、242、244、246中的每一个接收C1-CN调试踪迹数据260、262、264、266,并且存储C1-CN调试踪迹数据260、262、264、266,直到调试单元220处理C1-CN调试踪迹数据260、262、264、266为止。踪迹选择模块222将存储在踪迹控制缓冲区224处的调试踪迹数据的量与阈值226进行比较。在一些实施方案中,如果存储在踪迹控制缓冲区224处的调试踪迹数据的量低于阈值226,那么踪迹选择模块222将循环顺序协议252应用于流入的C1-CN调试踪迹数据260、262、264、266。相反,在一些实施方案中,如果存储在踪迹控制缓冲区224处的调试踪迹数据的量处于或高于阈值226,那么踪迹选择模块222将优先级顺序协议252应用于流入的C1-CN调试踪迹数据260、262、264、266,在此情况下,向来自组件1-N 230、232、234、236中的一些的调试踪迹数据分派高于来自组件1-N 230、232、234、236中的其他部分的调试踪迹数据的优先级。例如,如果在踪迹选择模块222应用循环协议252时存储在踪迹控制缓冲区224处的调试踪迹数据的量等于或高于阈值226,那么踪迹选择模块222可以切换成应用优先级顺序协议252,以如由调试单元220生成的状态信息所指示识别由具体有执行软件的需求负担的组件生成的调试踪迹数据的较高优先级。
优先级顺序协议252的优先级顺序可以是基于从组件1-N 230、232、234、236中的一些接收的调试踪迹数据的量或特征,或者所述优先级顺序可以是基于如由从图1的外部调试器125接收的控制信号所指示的外部用户的偏好。例如,在一些实施方案中,踪迹选择模块222可以应用优先级顺序协议254以响应于识别出来自组件3 234的调试踪迹数据的指示组件3 234的异常性能特征的模式而对来自组件3 234的C3调试踪迹数据264识别相对较高的优先级。在一些实施方案中,踪迹选择模块222可以应用优先级顺序协议254以响应于从图1的外部调试器125接收到指示对组件1 230的性能特征特别感兴趣的信号而对来自组件1 230的C1调试踪迹数据260识别相对较高的优先级。
在一些实施方案中,踪迹选择模块222应用事件触发协议,由此踪迹选择模块222从路由器1-N 240、242、244、246中的每一个接收C1-CN调试踪迹数据260、262、264、266的顺序响应于处理器110的行为的变化而变化。例如,当处理器110处于空闲模式时,踪迹选择模块222按照第一顺序从路由器1-N 240、242、244、246中的每一个接收C1-CN调试踪迹数据260、262、264、266;并且当处理器110处于激活模式时,踪迹选择模块222按照第二顺序从路由器1-N 240、242、244、246中的每一个接收C1-CN调试踪迹数据260、262、264、266。在一些实施方案中,踪迹选择模块222维护事件表(未示出),所述事件表指示对应于处理器110的每个活动模式而从路由器1-N 240、242、244、246中的每一个接收C1-CN调试踪迹数据260、262、264、266的顺序。
图3示出了根据一些实施方案的图1的调试单元的实例,所述调试单元从与向处理系统的处理器核心供应电压的功率域分开的功率域接收电压。处理器310包括处理器核心352和处理器核心电压355,所述处理器核心电压被配置来向处理器核心352供应电压。处理器310还包括调试单元320和调试单元电压326,所述调试单元电压被配置来向调试单元320供应电压。由调试单元电压326供应的电压独立于向处理器核心352供应电压的处理器核心电压355,使得调试单元电压326在处理器核心电压355向处理器核心352供应电压时不一定向调试单元320供应电压。
调试单元电压326被配置来接收由外部调试器325断言用于激活调试单元320的信号,从而接收调试踪迹数据。响应于接收到所述信号,调试单元电压326向调试单元320供应电压。在一些实施方案中,当外部调试器325停止断言用于激活调试单元的信号327时,调试单元电压326停止向调试单元320供应电压。在一些实施方案中,外部调试器325断言用于停用调试单元(未示出)的信号,响应于此,调试单元电压326停止向调试单元320供应电压。通过响应于断言用于激活调试单元320的控制信号327而独立地向调试单元320供应电压,处理器310节省了功率。
在一些实施方案中,调试单元电压326向调试单元320供应可变电压,这取决于因素,诸如处理器110正处于低功率模式,或调试踪迹数据的吞吐量高于阈值水平。例如,在一些实施方案中,如果处理器110处于低功率模式,那么调试单元电压326向调试单元320供应相对较低的电压。作为另一个实例,在一些实施方案中,如果到达调试单元320的调试踪迹数据的吞吐量高于阈值水平,那么调试单元电压326在调试单元320的设计参数内向调试单元320供应相对较高的电压,以提高调试单元320的处理能力。
图4示出了根据一些实施方案的图1的调试单元420的实例,所述调试单元将调试单元420的踪迹控制缓冲区424的一部分分配作为用于处理器410的组件430-436的存储器。处理器410包括调试单元420、多个组件430-436、缓冲区控制模块415以及高速缓存445。调试单元420包括踪迹控制缓冲区424,其中一部分可以由缓冲区控制模块415分配作为临时存储器435,以增加处理器410的高速缓存445。在处理器410的组件430-436在处理器410执行执行软件的指令时执行其指定功能时,组件430-436生成写入数据470以存储在存储器450处,并且向调试单元420提供调试踪迹数据460-466并将所述调试踪迹数据存储在踪迹控制缓冲区424处,直到调试单元420处理调试踪迹数据460-466为止。
缓冲区控制模块415监测存储在踪迹控制缓冲区424处的调试踪迹数据460-466的量以及存储在高速缓存445处的写入数据470的量。在一些实施方案中,如果缓冲区控制模块415识别到存储在踪迹控制缓冲区424处的调试踪迹数据的量低于第一阈值水平,并且存储在高速缓存445处的数据的量高于第二阈值水平,那么缓冲区控制模块415将踪迹控制缓冲区424的一部分分配作为临时分配存储器435。缓冲区控制模块415之后将来自组件430-436的流入的写入数据470存储在临时分配的存储器435中,直到存储在高速缓存445处的数据的量下降到第三阈值水平以下或者存储在踪迹控制缓冲区处的调试踪迹数据的量超过第四阈值水平为止。在一些实施方案中,第一阈值水平低于第四阈值水平。在一些实施方案中,第三阈值水平低于第二阈值水平。
在一些实施方案中,缓冲区控制模块415被配置来响应于存储在踪迹控制缓冲区处的调试踪迹数据的量高于阈值而临时地分配高速缓存445的一部分来存储调试踪迹数据。通过选择性地分配踪迹控制缓冲区424的部分来存储写入数据470并分配高速缓存445的部分来存储调试踪迹数据460-466,缓冲区控制模块可更有效地利用在高速缓存445和踪迹控制缓冲区424处可用的存储器。
图5是示出根据一些实施方案的用于识别来自图1的处理器110的多个组件的调试踪迹数据的优先级的方法的流程图。在方框502处,组件1-N 130、132、134、136生成调试踪迹数据。在方框504处,踪迹选择模块122识别调试踪迹数据的吞吐量是否高于阈值。例如,在一些实施方案中,图2的踪迹选择模块222确定存储在踪迹控制缓冲区224处的调试踪迹数据的量是否超过阈值226。
如果调试踪迹数据的吞吐量高于阈值,那么在方框506处,图1的踪迹选择模块122应用仲裁协议以基于优先级而从组件1-N 130、132、134、136接收调试踪迹数据。例如,在一些实施方案中,图2的踪迹选择模块222应用优先级顺序协议254,在所述优先级顺序协议下,踪迹选择模块222基于从组件1-N 230、232、234、236中的一些接收的调试踪迹数据的量或特征,或者基于如由从图1的外部调试器125接收的控制信号所指示的外部用户的偏好而识别由组件1-N 230、232、234、236提供的调试踪迹数据的优先级。
如果调试踪迹数据的吞吐量不高于阈值,那么在方框508处,图1的踪迹选择模块122应用仲裁协议以基于循环顺序而从组件1-N 130、132、134、136接收调试踪迹数据。例如,在一些实施方案中,图2的踪迹选择模块222应用循环协议252,在所述循环协议下,调试单元220首先从组件1 230接收C1调试踪迹数据260,然后从组件2 232接收C2调试踪迹数据262,之后从组件3 234接收C3调试踪迹数据264,依次类推,直到调试单元220从组件N 236接收CN调试踪迹数据266为止,在此之后调试单元220从组件1 230接收C1调试踪迹数据260,以此类推。
在方框510处,图1的调试单元120按照从组件1-N 130、132、134、136接收调试踪迹数据的顺序来处理所述调试踪迹数据,以基于对应的调试踪迹数据160、162、164、166而生成组件1-N(130、132、134、136)中的每一个的状态信息。在方框512处,调试单元120向外部调试器125提供状态信息,并且在方框514处,外部调试器125基于状态信息而识别软件代码和组件1-N(130、132、134、136)的性能信息的问题。方法流程之后返回至方框502。
在一些实施方案中,上文描述的技术的某些方面可以由执行软件的处理系统的一个或多个处理器来实施。软件包括存储或以其他方式有形地体现在非暂态计算机可读存储介质上的一个或多个可执行指令集。软件包括指令和某些数据,所述指令和某些数据在由一个或多个处理器执行时操纵一个或多个处理器来执行上文描述的技术的一个或多个方面。非暂态计算机可读存储介质可以包括例如磁盘或光盘存储装置、固态存储装置诸如快闪存储器、高速缓存、随机存取存储器(RAM)或者一种或多种其他非易失性存储器装置等等。存储在非暂态计算机可读存储介质上的可执行指令可以是呈源代码、汇编语言代码、对象代码或者由一个或多个处理器解释或以其他方式可执行的其他指令格式。
计算机可读存储介质可以包括在使用期间可由计算机系统访问以向所述计算机系统提供指令和/或数据的任何存储介质或存储介质的组合。这种存储介质包括但不限于:光学介质(例如,压缩盘(CD)、数字通用盘(DVD)、蓝光盘)、磁性介质(例如,软盘、磁带或磁性硬盘驱动器)、易失性存储器(例如,随机存取存储器(RAM)或高速缓存)、非易失性存储器(例如,只读存储器(ROM)或快闪存储器)或基于微机电系统(MEMS)的存储介质。计算机可读存储介质可以嵌入计算系统(例如,系统RAM或ROM)中,固定地附接至计算系统(例如,磁性硬盘驱动器),可移除地附接至计算系统(例如,光盘或基于通用串行总线(USB)的快闪存储器),或者经由有线或无线网络(例如,网络可访问存储器(NAS))而耦合至计算机系统。
应注意,并不需要上文在一般描述中描述的全部活动或元件,可能不需要特定活动或装置的一部分,并且可以执行除了所描述那些之外的一个或多个其他活动,或者包括其他元件。此外,列出活动的顺序并不一定是执行所述活动的顺序。此外,已经参考特定实施方案描述了所述概念。然而,本领域普通技术人员了解到,在不脱离如以下权利要求中所阐述的本公开的范围的情况下,可以进行各种修改和改变。因此,说明书和附图被认为是说明性的而不是限制性意义的,并且所有这些修改意在被包括在本公开的范围内。
上文已相对于特定实施方案描述了益处、其他优点以及问题的解决方案。然而,所述益处、优点、问题的解决方案,以及可以使得任何益处、优点或解决方案显现或变得更为显著的任何特征,都不应解释为是任何或所有权利要求的关键、必需或必要特征。此外,上文公开的特定实施方案仅是说明性的,因为可以对于受益于本文教义的本领域技术人员而言显而易见的不同但等效的方式修改和实践公开的主题。并不意在限于本文所示的构造或设计的细节,而是限于以下权利要求书中所述内容。因此,显而易见的是,可以改变或修改上文公开的特定实施方案,并且所有这类变化被认为处于公开主题的范围内。因此,以下权利要求中阐述了本文寻求的保护。
Claims (20)
1.一种调试方法,所述方法包括:
根据协议识别来自处理器的多个组件的调试踪迹数据的优先级,其中,所述协议是通过外部调试器所指示;
基于所述优先级而向所述处理器的调试单元提供所述调试踪迹数据;以及
在所述调试单元处按照接收所述调试踪迹数据的顺序来处理所述调试踪迹数据,以生成与所述多个组件的各组件相关的状态信息。
2.如权利要求1所述的调试方法,其还包括:
在与向所述处理器的处理器核心施加电压的功率域分开的功率域处向所述调试单元施加电压。
3.如权利要求2所述的调试方法,其还包括响应于激活调试功能而激活所述调试单元。
4.如权利要求1所述的调试方法,其还包括:
将所述调试踪迹数据存储在踪迹控制缓冲区处;以及
将踪迹控制缓冲区的至少一部分分配作为用于所述处理器的组件的存储器。
5.如权利要求1所述的调试方法,其还包括:
响应于所述调试单元的踪迹控制缓冲区存储超过阈值量的调试踪迹数据,分配所述处理器的高速缓存的一部分来存储调试踪迹数据。
6.如权利要求1所述的调试方法,其中所述优先级指示循环顺序。
7.如权利要求1所述的调试方法,其中所述优先级是基于从所述多个组件中的一个或多个接收的调试踪迹数据的量或特征。
8.如权利要求7所述的调试方法,其中所述优先级是基于所述调试踪迹数据超过阈值的吞吐量。
9.一种调试方法,所述方法包括:
向调试单元提供来自处理器的第一组件的第一调试踪迹数据;
向所述调试单元提供来自所述处理器的第二组件的第二调试踪迹数据;
基于仲裁协议而在所述调试单元处按照顺序接收所述第一调试踪迹数据和所述第二调试踪迹数据,其中,所述仲裁协议是通过外部调试器所指示;以及
在所述调试单元处按照接收所述第一调试踪迹数据和所述第二调试踪迹数据的所述顺序来处理所述第一调试踪迹数据和所述第二调试踪迹数据,以生成与所述第一组件和所述第二组件的各组件相关的状态信息。
10.如权利要求9所述的调试方法,其还包括:
从与向所述处理器的处理器核心供应电压的功率域分开的功率域向所述调试单元供应电压。
11.如权利要求10所述的调试方法,其还包括响应于激活调试功能而向所述调试单元供应电压。
12.如权利要求9所述的调试方法,其还包括:
响应于在所述调试单元处接收所述第一调试踪迹数据或所述第二调试踪迹数据,由所述调试单元分配所述处理器的高速缓存的一部分来存储所述第一调试踪迹数据或所述第二调试踪迹数据。
13.如权利要求9所述的调试方法,其还包括:
响应于存储在踪迹控制缓冲区处的调试踪迹数据的量低于阈值而分配所述调试单元的所述踪迹控制缓冲区的至少一部分来存储来自所述处理器的组件的写入数据。
14.如权利要求9所述的调试方法,其中所述仲裁协议包括基于循环顺序而接收所述第一调试踪迹数据和所述第二调试踪迹数据。
15.如权利要求9所述的调试方法,其中所述仲裁协议包括基于优先级顺序而接收所述第一调试踪迹数据和所述第二调试踪迹数据。
16.如权利要求15所述的调试方法,其中所述仲裁协议包括响应于所述第一调试踪迹数据或所述第二调试踪迹数据的吞吐量超过阈值而基于优先级来接收所述第一调试踪迹数据和所述第二调试踪迹数据。
17.一种处理器,所述处理器包括:
多个组件,所述多个组件被配置来生成调试踪迹数据;以及
调试单元,所述调试单元被配置来基于通过外部调试器所指示的仲裁协议选择从所述多个组件接收所述调试踪迹数据的顺序来处理所述调试踪迹数据,以生成与所述多个组件的各组件相关的状态信息。
18.如权利要求17所述的处理器,其还包括用于向所述调试单元供应电压的功率域,所述功率域与向所述处理器的处理器核心供应电压的功率域是分开的。
19.如权利要求17所述的处理器,其还包括踪迹控制缓冲区,所述踪迹控制缓冲区被配置来存储调试踪迹数据,其中所述踪迹控制缓冲区被进一步配置来响应于存储在所述踪迹控制缓冲区处的调试踪迹数据的量低于阈值而存储有关所述处理器的组件的数据。
20.如权利要求17所述的处理器,其中仲裁协议包括基于循环顺序和优先级顺序中的一个而进行选择来从所述多个组件中的一个或多个接收所述调试踪迹数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710599350.8A CN109284223B (zh) | 2017-07-21 | 2017-07-21 | 可配置的调试方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710599350.8A CN109284223B (zh) | 2017-07-21 | 2017-07-21 | 可配置的调试方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109284223A CN109284223A (zh) | 2019-01-29 |
CN109284223B true CN109284223B (zh) | 2023-10-20 |
Family
ID=65185644
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710599350.8A Active CN109284223B (zh) | 2017-07-21 | 2017-07-21 | 可配置的调试方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109284223B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117691554B (zh) * | 2023-12-13 | 2024-08-09 | 国网四川省电力公司德阳供电公司 | 一种母线保护的快速调试方法、装置及介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1133455A (zh) * | 1994-12-28 | 1996-10-16 | 株式会社东芝 | 微处理器与调试系统 |
JP2000347899A (ja) * | 1999-06-03 | 2000-12-15 | Nec Corp | マイクロコンピュータ |
CN1924825A (zh) * | 2005-08-30 | 2007-03-07 | 国际商业机器公司 | 用于具有不同处理器频率的自适应跟踪的方法及设备 |
CN101261601A (zh) * | 2008-04-25 | 2008-09-10 | 浙江大学 | 一种微处理器调试方法及所用的微处理器调试模块 |
CN102075389A (zh) * | 2011-01-27 | 2011-05-25 | 大唐移动通信设备有限公司 | 一种调试方法和设备 |
CN102662889A (zh) * | 2012-04-24 | 2012-09-12 | 华为技术有限公司 | 中断处理方法、中断控制器及处理器 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2389432B (en) * | 2002-06-07 | 2005-09-07 | Advanced Risc Mach Ltd | Instruction tracing in data processing systems |
JP2011243110A (ja) * | 2010-05-20 | 2011-12-01 | Renesas Electronics Corp | 情報処理装置 |
US20130031419A1 (en) * | 2011-07-28 | 2013-01-31 | International Business Machines Corporation | Collecting Debug Data in a Secure Chip Implementation |
US8935577B2 (en) * | 2012-08-28 | 2015-01-13 | Freescale Semiconductor, Inc. | Method and apparatus for filtering trace information |
US9720797B2 (en) * | 2015-06-30 | 2017-08-01 | Nxp Usa, Inc. | Flash memory controller, data processing system with flash memory controller and method of operating a flash memory controller |
-
2017
- 2017-07-21 CN CN201710599350.8A patent/CN109284223B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1133455A (zh) * | 1994-12-28 | 1996-10-16 | 株式会社东芝 | 微处理器与调试系统 |
JP2000347899A (ja) * | 1999-06-03 | 2000-12-15 | Nec Corp | マイクロコンピュータ |
CN1924825A (zh) * | 2005-08-30 | 2007-03-07 | 国际商业机器公司 | 用于具有不同处理器频率的自适应跟踪的方法及设备 |
CN101261601A (zh) * | 2008-04-25 | 2008-09-10 | 浙江大学 | 一种微处理器调试方法及所用的微处理器调试模块 |
CN102075389A (zh) * | 2011-01-27 | 2011-05-25 | 大唐移动通信设备有限公司 | 一种调试方法和设备 |
CN102662889A (zh) * | 2012-04-24 | 2012-09-12 | 华为技术有限公司 | 中断处理方法、中断控制器及处理器 |
Also Published As
Publication number | Publication date |
---|---|
CN109284223A (zh) | 2019-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9697125B2 (en) | Memory access monitor | |
US11467769B2 (en) | Managed fetching and execution of commands from submission queues | |
US10599578B2 (en) | Dynamic cache bypassing | |
US9032417B2 (en) | Information processing apparatus and information processing apparatus control method | |
US9852008B2 (en) | Computer-readable recording medium storing execution information notification program, information processing apparatus, and information processing system | |
US20060174228A1 (en) | Adaptive pre-fetch policy | |
JP6679145B2 (ja) | 仮想プロセッサ・スレッド・グループを使用する処理装置内の割込みを処理するための方法、処理装置、およびプログラム | |
US10191847B2 (en) | Prefetch performance | |
CN109308220B (zh) | 共享资源分配方法及装置 | |
CN107544926B (zh) | 处理系统及其访存方法 | |
KR20160061863A (ko) | 이기종 스토리지 및 처리 메커니즘을 갖는 컴퓨팅 시스템 및 그것의 동작 방법 | |
US10915446B2 (en) | Prefetch confidence and phase prediction for improving prefetch performance in bandwidth constrained scenarios | |
WO2020040857A1 (en) | Filtered branch prediction structures of a processor | |
CN106951374B (zh) | 用于检查块页地址的方法及其装置 | |
US20130031310A1 (en) | Computer system | |
CN104461735A (zh) | 一种虚拟化场景下分配cpu资源的方法和装置 | |
KR20100016347A (ko) | 멀티스레드 프로세서를 위한 스레드 디엠퍼시스 명령 | |
US11216052B2 (en) | Modifying an operating state of a processing unit based on waiting statuses of blocks | |
CN115357377A (zh) | 内存控制调度方法、装置、计算机设备及存储介质 | |
US20090165004A1 (en) | Resource-aware application scheduling | |
CN109284223B (zh) | 可配置的调试方法和系统 | |
CN105612505B (zh) | Cpu调度的方法和装置 | |
US9710409B2 (en) | Interrupt control apparatus and interrupt control method | |
US20120072632A1 (en) | Deterministic and non-Deterministic Execution in One Processor | |
CN110968418A (zh) | 基于信号-槽的大规模有约束并发任务的调度方法与装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |