本发明专利技术提供了多核架构中的调试。一种对多核处理器架构内的线程执行进行监测的方法,该多核处理器架构包括用于处理线程的多个互连的处理器单元,该方法包括:接收多个线程参数指示符,这些线程参数指示符表示与一个或多个线程的功能和/或标识和/或执行位置有关的多个参数;将这些线程参数指示符中的至少一个与第一多个预定标准进行比较,该第一多个预定标准中的每一个都代表了感兴趣的指示符;以及根据作为所述比较的结果而被识别为感兴趣的线程参数指示符来生成输出。
【技术实现步骤摘要】
本专利技术涉及在多核架构中进行调试的方法和设备。技术背景近年来,为了使硅效率(即,“应用可实现的”ΜΙΡ/mm2或ΜΙΡ/mW)最大化,出现了一种制造包含多个核的处理器的趋势。这种多核架构理想地适于运行基于线程的应用,因为线程定义了包含执行状态、指令流和数据组的自主工作包,该线程通过定义可以与其他线程并行执行。然而,这种并行执行对在这些多核架构上使用的软件调试进程引入了另外的问题。软件调试是对计算机应用的执行中的错误进行定位和改正的总称。软件调试所面临的关键问题之一是海森堡臭虫(Heisenberg bug)(也称为“探针效应(probe effect)”)。出于调试目的(例如,为了提高系统诊断的级别)而添加的任意代码都可能稍微改变同时和/或并行执行的线程的定时。这带来了程序缺陷(bug)被掩饰的风险,这些程序缺陷在同一应用的发行版本中可能会被发现。另外,难以在生成中存在很多调试代码时提取有意义的性能测量值和测定值(instrumentation)。这是因为如高速缓存和互连性能的二级效应可能会受到附加代码的影响,并且对代码大小有更明显的影响。另外,由于其开发中使用了很多资源,所以对于提高为这种多核架构开发的软件的可重用性存在不断增长的需求。过去,用于多核架构的应用是在定制的基础上编写的,从而开发出可移植性很差的硬件专用应用。另外,这些应用的调试也非常特殊。
技术实现思路
根据本专利技术的第一方面,提供了一种对多核处理器架构中的线程执行进行监测的方法,该多核处理器架构包括用于处理这些线程的多个互连的处理器元件,该方法包括接收多个线程参数指示符,这些线程参数指示符表示与一个或多个线程的功能和/或标识有关的多个参数;将这些线程参数指示符中的至少一些与第一多个预定标准进行比较,每一个预定标准都代表了感兴趣的指示符;以及根据作为所述比较的结果被识别为感兴趣的线程参数指示符来生成输出。这提供了以下的能力在线程级别对在多核处理器架构上运行的应用进行调试和跟踪,而无需出于线程级别调试的目的而专门添加代码。另外,还提供了以下的优点使得能够对多核架构应用进行调试,而不需要引入附加代码而因此引入探针效应。根据本专利技术的另一方面,提供了一种用于多核处理器架构的线程级别软件调试控制器,该多核处理器架构具有多个互连的处理器元件,每一个元件都提供用于处理线程的资源,所述调试控制器与所述处理器元件中的每一个进行通信,并且包括用于对该多核处理器架构中的线程的分配和执行进行监测的监测器逻辑。附图说明本专利技术可以按照多种方式来实现,下面将参照附图并通过示例的方式来描述某些实施例,在附图中图1示出了典型的多核处理器架构系统的逻辑布局的示意性框图2示出了图1的逻辑布局的一种示例性实现的示意性框图,其中线程管理和分配控制器与专用存储器设备和控制器客户端(client) —起结合在通用多核处理器架构中;图3再次以框图的形式示出了结合有图2的元件的基于现有的片上系统(SoC)总线的架构的示例;图4示出了图1、2和3的控制器的外部连接的更详细视图5示出了图2和3的存储器设备的更详细视图6示出了图2、3和4的控制器的内部构成的更详细视图7示出了如图2和3所示的控制器客户端的示意性框图7B示出了在单个控制器客户端用作用于多个处理资源的代理的情况下该系统的示意性框图8示出了硬件控制器客户端的更详细示意性框图9示出了线程描述符、控制器、处理资源和共享系统存储器之间的典型关系;图10示出了根据本专利技术实施例的结合有调试架构的典型多核处理器架构系统的逻辑布局的一种示例性实现的示意性框图。在图10中,控制器用作用于调试控制的中心仲裁器;图IOb示出了根据本专利技术实施例的结合有调试架构的典型多核处理器架构系统的逻辑布局的另一示例性实现的示意性框图。在图IOb中,不是本专利技术的一部分的附加组件提供了包括控制器的多核处理器架构内的所有核之间的调试事件集合;图11示出了图10和IOb的线程调试控制器的外部连接的更详细视图12a示出了图10和IOb的线程调试控制器的跟踪缓冲器的外部连接的更详细视图12b示出了图12a的跟踪缓冲器的典型输出的时序图13示出了图10和IOb的线程调试控制器的外部连接的另一详细视图,包括到图2的控制器的多个子块的连接;图14示出了图11的线程调试管理器的内部构成的功能框图15示出了图14的调试机之一的逻辑框图16示出了图14的调试机之一的物理框图17示出了图14的调试机的级联(concatenation)能力的示例;图18示出了在单字EventWatch情况下调试机内的指令数据流;图19示出了在双字EventWatch情况下调试机内的指令数据流;图20示出了图14的示例性静态事件过滤器模块的功能框图21示出了图20的静态事件过滤器模块中的事件过滤器掩码(mask)的示例性分配;以及图22示出了图14的跟踪数据格式化器/压缩器模块的示例的框图。具体实施方式图1示出了典型的多核处理器架构的示例的系统框架的逻辑视图。该框架包括多个处理资源150,每个处理资源都可以与该多核架构中的其他处理资源150相似或不相似。 处理资源150可以是能够执行指令的任意形式的硬件或其等价物,因此可以包括通用处理资源150,或者具有有效限制指令集的处理资源150,例如输入输出设备。该系统框架还包括集中线程管理和分配系统,该集中线程管理和分配系统包括线程管理和分配控制器130以及经由存储器接口 180连接至该控制器的专用紧密连接的存储器190。每个处理资源150都能够通过互连115来访问控制器130。应该理解,图1的结构的实现不需要任何特定的互连策略(即,控制器130与各个处理资源150进行通信或者各个处理资源150与控制器130进行通信所用的结构,以及各个处理资源150与系统资源,例如存储器140,进行通信所用的结构);具体地说,同样可以采用点对点链接、中央系统总线或者甚至是管道架构,只要处理资源150中的每一个都应当能够直接或间接(即,通过其他处理资源150或其他方式)与控制器130进行通信。图2再次仅以示例的方式示出了实现图1的逻辑结构的多核处理器。图2的多核处理器采用了多个处理资源150,每一个处理资源都通过系统互连160而连接。系统互连 160进而通过输入接口 100和输出接口 110与控制器130进行通信。在图3的示例中,系统互连160被布置为传统的中央总线,该中央总线将处理资源150中的每一个彼此连接并将处理资源150中的每一个与控制器130连接,还将处理资源150中的每一个与诸如系统存储器的共享系统资源140连接。可以通过多种目前可用的接口技术中的任意一种来实现与共享系统资源140的连接。存储器可以由目前可用的中央计算机存储器技术中的任意一种来构成,例如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM),或者双倍数据速率随机存取存储器(DDR RAM)。如图2所示,多个处理资源150中的每一个都具有被构造用于从中央控制器130 接收控制信息,并根据所接收的控制信息来管理处理资源150的相关联的控制器客户端 120。下面更详细地描述控制器客户端120的功能和用途。每个处理资源150还具有用于通过系统互连160与控制器130进行通信的相关联的互连代理17本文档来自技高网...
【技术保护点】
【技术特征摘要】
...
【专利技术属性】
技术研发人员:马克·大卫·李佩特,阿耶温·翁,
申请(专利权)人:科威尔公司,富士通半导体股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。