CN114902059A - 调试状态机触发的扩展性能监控计数器 - Google Patents

调试状态机触发的扩展性能监控计数器 Download PDF

Info

Publication number
CN114902059A
CN114902059A CN202080091140.8A CN202080091140A CN114902059A CN 114902059 A CN114902059 A CN 114902059A CN 202080091140 A CN202080091140 A CN 202080091140A CN 114902059 A CN114902059 A CN 114902059A
Authority
CN
China
Prior art keywords
event
dsm
debug
data
indication
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.)
Pending
Application number
CN202080091140.8A
Other languages
English (en)
Inventor
蒂姆·佩利
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of CN114902059A publication Critical patent/CN114902059A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/31705Debugging aspects, e.g. using test circuits for debugging, using dedicated debugging test circuits
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3177Testing of logic operation, e.g. by logic analysers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • G06F11/3656Software debugging using additional hardware using a specific debug interface
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

一种集成电路(IC)[100]包括调试控制器[102]、调试状态机(DSM)[104]和扩展性能监控计数器(EPMC)[106]。该调试控制器在调试互连件[110]上选择性地输出调试数据。该DSM基于调试数据和事件列表[304]识别事件并输出识别该事件的DSM指示[124]。该EPMC指示包括所识别的事件的多个检测到的事件。该EPMC响应于该DSM指示来指示所识别的事件。

Description

调试状态机触发的扩展性能监控计数器
背景技术
随着集成电路(IC)复杂性的增加,测试、监控和调试这些IC变得更加复杂。自动测试设备(ATE)和逻辑分析仪被用来为制造的芯片提供给定输入值。当检测到错误时,会利用目标信号来确定原因。在许多情况下,这个过程会耗费大量时间和人力。片上逻辑和性能监控计数器(PMC)被用来协助IC调试、验证和性能分析。PMC用于在芯片验证期间和正常操作期间跟踪和指示特定事件的发生。然而,如果不对IC进行物理重新设计,常规PMC通常只跟踪相对较少的各种事件。
附图说明
通过参考附图,更好地理解本公开,并且使得本领域技术人员容易明白其许多特征和优点。在不同附图中使用相同附图标记指示类似或相同项。
图1是根据一些实施方案的包括调试状态机和扩展性能监控计数器的集成电路的实现方式的框图。
图2是根据一些实施方案的包括调试状态机和扩展性能监控计数器的集成电路的另一实现方式的框图。
图3是示出根据一些实施方案的示例性调试状态机的框图。
图4是示出根据一些实施方案的检测事件并向扩展性能监控计数器提供调试状态机指示的方法的流程图。
图5是根据一些实施方案的包括调试状态机触发的扩展性能监控计数器的处理系统的框图。
具体实施方式
如本文所述,在各种实施方案中,集成电路(IC)包括至少一个调试状态机(DSM),其将指示发送到扩展性能监控计数器(EPMC)。更具体地,DSM接收调试数据(例如,经由调试互连件)、流水线触发(例如,来自一个或多个知识产权(IP)设备的数据)、或两者。DSM将接收到的数据与存储事件列表进行比较。响应于指示由事件列表指定的事件已经发生的比较,DSM向EPMC发送DSM指示。EPMC经由IC接口指示已检测到指定的事件。因此,基于调试数据、流水线触发或两者检测和指示指定的事件。在一些情况下,检测和指示基于调试数据、流水线触发或两者生成的信息为性能分析、设备调试、验证覆盖或生产解决方案提供了附加选项。
在一些实现方式中,DSM的事件列表是可调整的,诸如经由直接用户输入、经由基本输入/输出系统(BIOS)更新或经由安全固件更新。在一些实施方案中,事件列表不是一起存储在存储设备中的条件的正式列表,而是硬件的配置,当接收到各种特定组的信号或触发(例如,对应于各种指定的事件)时,其生成已检测到相应事件的指示。因此,在一些情况下,与修改DSM之前相比,DSM向EPMC指示不同事件的发生。此外,EPMC输出对不同事件的发生的指示。因此,在一些情况下,EPMC所报告的事件列表会在EPMC制造之后进行修改,从而提供额外的芯片灵活性。
一些IC包括性能监控计数器(PMC),这些PMC通常不连接到调试互连件、流水线设备(例如,IP设备)或两者。在此类系统中,PMC仅限于指示从其他来源接收到的数据,诸如基于事件的中断。例如,在一些情况下,PMC对进入和退出的特定功率状态进行计数,但不指示在每个功率状态中花费的时钟周期的数量,即使在一些系统中,此类信息在调试互连件上可用。另外,在一些情况下,PMC具有固定架构作为PMC制造的一部分。因此,在这些IC中,PMC仅限于指示固定的事件列表,其不包括由调试互连件、流水线触发或两者指示的至少一些事件。在一些情况下,期望用户或程序员接收对由调试互连件、流水线触发或两者发信号通知的事件的指示,或者在制造PMC之后改变由PMC指示的事件。
图1示出了根据一些实施方案的IC 100。在所示实施方案中,IC100包括调试控制器102、DSM 104和EPMC 106。调试互连件110将调试控制器102连接到DSM 104。DSM-EPMC互连件112将DSM104连接到EPMC 106。尽管为了清楚起见,示出的实施方案仅示出了三个部件,但在各种实施方案中,其他部件也是可以考虑的。
在一些实施方案中,如下面参考图5进一步讨论的,IC 100是台式或膝上型计算机、服务器、智能电话、平板电脑、游戏控制台或其他电子设备等设备的一部分。该设备包括中央处理单元(CPU)、图形处理单元(GPU)、系统内存控制器、系统输入/输出(IO)设备和总线控制器、以及外围协处理器元件。在各种实施方案中,任何或所有这些部件都包含DSM和性能监控计数器。在各种实施方案中,作为执行各种程序或指令序列的一部分,任何或所有这些部件将基于指令的采样数据126发送到EPMC 106,在各个可观察点将调试源信息120发送到调试控制器102,或两者兼而有之。
在所示实施方案中,各种调试源信息120(例如,通信接口上的交叉触发信号、捕获信号、时钟停止信号、错误信号、性能监控(“perfmon”)信号或事件、中断、断点、基于微码的触发(例如,断点、性能监控、中断和错误事件)、定时器溢出、故障信号重新同步、功率状态变化信号、功耗信号、发送逻辑块的特定内部逻辑的状态信号或它们的任何组合)被提供给调试控制器102。响应于接收到调试源信息120,调试控制器102选择性地输出调试源信息120作为调试互连件110(例如,调试总线)上的调试数据122。例如,在一些情况下,调试控制器102包括一个或多个多路复用器并在调试源信息120输入之间轮换,将接收到的数据作为调试数据122输出。
DSM 104接收调试互连件110上的调试数据122并将接收到的数据与存储在DSM104处的事件列表(例如,可编程事件信息)进行比较。响应于确定调试数据122指示已完成的事件,DSM 104生成DSM指示124,指示已识别已完成的事件。在一些实施方案中,事件列表包括多个事件。在其他实施方案中,事件列表仅包括单个事件。在一些实施方案中,事件列表是DSM 104中的硬件配置,其检测和指示各种事件而不将条件一起存储在存储器设备中。在各种实施方案中,如下面参考图3进一步讨论的,DSM 104识别单条件事件、多条件事件或两者。例如,在一些情况下,DSM 104响应于检测到故障信号重新同步而生成DSM指示124。又如,在一些情况下,响应于接收到指示第一功率状态转换(例如,转换到特定阶段)的调试数据122,DSM 104跟踪在功率状态转换的特定阶段花费的时钟周期的数量。响应于接收到指示第二功率状态转换(例如,从特定阶段的转换出)的调试数据122,DSM 104生成DSM指示124。在一些情况下,DSM指示124指示在特定阶段花费的周期的数量。因此,在各种实施方案中,DSM 104响应于指示特定状态的调试数据122生成DSM指示124,响应于信号序列生成DSM指示124,或进行两者。此外,如下面参考图2所描述的,在各种实施方案中,DSM 104响应于各种输入(例如,经由调试互连件110或从其他设备接收的信号)生成各种其他控制信号。
在所示实施方案中,DSM 104的事件列表可经由事件列表更新来修改。在一些情况下,事件列表更新是直接从用户接收的(例如,作为自定义事件选择输入),以根据需要用于监控、分析和调试。在其他情况下,事件列表更新经由基本输入/输出系统(BIOS)更新或安全固件更新(例如,由IC 100的制造商响应于监控来自客户的监控事件的请求而执行)执行。因此,在一些情况下,在IC 100制造之后修改由DSM 104经由DSM指示124识别的事件。
EPMC 106进行计数并输出对与各种操作(例如,退役指令)相关联的各种事件的指示(例如,提供采样分析或在达到预定阈值时生成输入)作为事件数据128。例如,在一些情况下,EPMC 106经由基于事件的中断数据126接收对IC 100的一个或多个设备(例如CPU)进入和退出的功率状态的指示,对进入的特定功率状态进行计数,并输出结果为事件数据128。此外,在所示实施方案中,EPMC106经由DSM-EPMC互连件112接收DSM指示124作为标准事件,并响应DSM指示124输出DSM事件数据130。因此,在些情况下,EPMC 106输出指示对进入的特定功率状态的计数的事件数据128,并且还输出指示在特定功率状态下花费的周期的数量的DSM事件数据130。在各种实施方案中,事件数据128、DSM事件数据130或两者经由输入/输出(I/O)接口(例如,用户接口)输出或保存到存储器设备中的事件日志。因此,EPMC106基于经由调试互连件110接收的调试源信息120输出事件数据,与仅在基于事件的中断数据126的基础上生成的事件数据相比,在一些情况下,该事件数据包括附加信息。此外,由于DSM 104的事件列表是可修改的,因此在一些情况下,EPMC 106是可定制的性能监控器。
图2是示出根据一些实施方案的IC 200的框图。在所示实施方案中,IC 200包括图1的调试控制器102、DSM 104、EPMC 106、调试互连件110和DSM-EPMC互连件112,以及流水线设备202、流水线输入互连件204和流水线输出互连件206。尽管为了清楚起见,示出的实施方案仅示出了三个部件,但在各种实施方案中,其他部件也是可以考虑的。
如上面参考图1所述,在一些实施方案中,调试控制器102基于调试源信息120生成调试数据122。DSM 104响应于基于调试数据122检测到事件而生成DSM指示124。EPMC 106在基于事件的中断数据126的基础上生成事件数据128并且基于DSM指示124生成DSM事件数据130。
另外,在所示实施方案中,DSM 104响应于来自流水线设备202的流水线触发210(例如,响应于调试数据122的一个或多个实例、流水线触发210的一个或多个实例或它们的任何组合)生成DSM指示124。在各种实施方案中,流水线设备202经由流水线输入互连件204将流水线触发发送到DSM 104(为简单起见被示出为流水线触发210)。例如,在一些情况下,流水线触发210包括以下中的一者或多者:捕获信号、时钟停止信号、错误信号、性能监控(“perfmon”)信号或事件、中断信号、断点指示、基于微码的触发(例如,断点、性能监控、中断和错误事件)和定时器溢出信号。
除了生成DSM指示124之外,在一些情况下,DSM 104响应于流水线触发210、调试数据122或两者生成流水线动作212。DSM 104经由流水线输出互连件206发送流水线动作(为简单起见示为流水线动作212)。流水线动作212指示流水线设备202执行各种动作。例如,在一些情况下,流水线动作212包括以下中的一者或多者:本地停止时钟信号、全晶片停止时钟信号、针对存储器设备的自刷新信号、通信接口接收禁用信号、跟踪存储信号、机器检查异常(MCE)信号、调试事件信号、调试微码中断触发、设置和清除DSM微码寄存器中的各个位的指令、操作停止信号、结构刷新信号、启动将调试数据存储到状态捕获缓冲区(例如,到调试记录缓冲区(DRB)并溢出到保留的高速缓存路或系统存储器)的指令、停止将调试数据存储到状态捕获缓冲区的指令、将时钟计数存储到状态捕获缓冲区的指令、以及更改队列大小的指令。
因此,在一些情况下,DSM 104跟踪未由基于事件的中断数据126指示的数据。然而,因为EPMC 106输出DSM事件数据130,所以该跟踪的数据在一些情况下对用户是透明的。此外,因为DSM 104的事件列表是可修改的,所述EPMC 106的输出在IC 200制造之后是可修改的。
图3是描绘根据一些实施方案的示例性DSM 104的框图。DSM104包括事件检测部件302。事件检测部件302包括事件列表304。尽管在所示示例中,事件列表304包括多个事件,但在其他实施方案中,事件列表304仅包括单个事件。另外,虽然在所示示例中,事件列表304对应于一起存储在存储器设备中的数据(例如,事件条件),但在其他实施方案中,事件列表304是DSM 104中的硬件配置,其检测和指示各种事件而不将事件条件一起存储在存储器设备中。
在所示示例中,DSM 104接收调试数据122、流水线触发210或两者。事件检测部件302将接收到的数据与事件列表304进行比较,并基于比较确定是否检测到事件。响应于检测到事件,DSM 104发送DSM指示124,指示检测到的事件。此外,在所示实施方案中,事件检测部件302确定是否基于接收到的数据生成流水线动作212。然而,在其他实施方案中,流水线动作212是使用DSM 104的不同硬件生成的。
为了说明的目的,图3示出了导致生成DSM指示124的潜在事件的四个示例。特别地,响应于指示内部功率状态监控计数的调试数据122(其中功率状态监控器指示高于第一值的值),DSM 104发送指示功率状态监控计数的DSM指示124。又如,响应于指示内部功率状态监控计数的调试数据122(其中功率状态监控器指示低于第二值的值),DSM 104发送DSM指示124,指示功率状态监控计数。在一些实施方案中,第一值、第二值或两者是指示在集成电路的晶片电压范围内观察到的晶片电压的代理值。在其他实施方案中,第一值、第二值或两者是实际电压。此外,响应于指示故障信号重新同步为高的调试数据122或响应于处于活动状态的流水线触发210,DSM 104发送DSM指示124。另外,在一些情况下,事件列表304中的事件是多条件事件。例如,响应于指示已经发生第一功率状态改变的调试数据122,DSM 104开始计数时钟周期(例如,通过增大计数器或通过标记当前计数器值)。响应于指示已经发生第二功率状态改变的调试数据122,DSM 104停止计数时钟周期并且发送计数的时钟周期的数量作为DSM指示124。
图4在一些实施方案中,方法400由诸如图1的DSM 104的DSM实现。在一些实施方案中,方法400由一个或多个处理器响应于由计算机可读存储介质存储的一个或多个指令而启动。
在框402,DSM接收事件数据。例如,在一些情况下,DSM 104接收调试数据122、流水线触发210或两者。在框404,DSM确定事件数据是否匹配DSM的事件列表中的多条件事件的下一个条件。例如,在一些情况下,事件数据指示已经发生功率状态相变,如上面参考图3所讨论的。响应于事件数据匹配多条件事件的下一个条件,方法400进行到框406。响应于事件数据不匹配多条件事件的下一个条件,方法400进行到框402。
在框406,响应于事件数据匹配多条件事件的下一个条件,DSM确定事件是否由于接收到事件数据而完成。例如,在一些情况下,事件数据指示已经发生第二功率状态相变。响应于事件完成,方法400进行到框410。响应于事件未完成,方法400进行到框402。在框408,响应于事件数据未能匹配多条件事件的下一个条件,DSM确定事件数据是否匹配事件列表中的单条件事件。例如,在一些情况下,事件数据指示故障信号重新同步为高或流水线触发生效。响应于事件数据匹配单条件事件,方法400进行到框410。响应于事件数据未能匹配单条件事件,方法400进行到框402。
在框410,响应于完成多条件事件或响应于事件数据匹配单条件事件,DSM将DSM指示发送到扩展性能监控计数器。例如,响应于识别到完成的事件,DSM 104向EPMC 106发送DSM指示124。随后,方法400返回框402。相应地,描绘了检测事件并向扩展性能监控计数器提供调试状态机指示的方法。
图5是根据一些实施方案的描绘包括调试状态机触发的扩展性能监控计数器的处理系统500的框图。在所示实施方案中,处理系统500内的各种部件包括DSM和EPMC,用于调查和跟踪片上硬件的功能。如上所述,DSM从一个或多个源接收触发(例如,调试数据或流水线触发)并基于这些触发选择给定动作(例如,发送DSM指示或流水线动作)。这些源包括同一核心或控制器内的部件、同一核心或控制器之外的其他片上部件、以及附加片外部件。在一些实施方案中,DSM经由网络(例如,覆盖双向交叉触发网络)互连件。尽管所示实施方案包括各种部件中的DSM和EPMC,但在其他实施方案中,DSM和EPMC被包括在更少、附加或不同的部件中。另外,虽然DSM和EPMC在所示实施方案中成对出现,但在其他实施方案中,DSM、EPMC或两者分开出现。
在一些情况下,处理系统500中会出现多个分时序列。例如,在一些情况下,序列包括软件进程、软件线程、系统级事务或功率性能状态(p-states)。序列包括一个或多个要在由OS或片上硬件调度的被测IC上执行的指令。序列标识(ID)用于区分序列。例如,使用进程ID、线程ID、系统级事务ID、p-state ID或它们的任何组合。在一些情况下,序列与其他序列共享IC内的硬件资源(例如,执行单元、队列、调度程序、进程状态或存储器空间)。
在一些实施方案中,处理系统500中的一个或多个处理器核心(例如,多线程处理器核心532-1到532-2或图形处理器核心542)执行多线程应用。另外,在一些情况下,处理系统500在多个功率性能状态中的一个功率性能状态下操作。此外,在一些情况下,多个独立的系统级事务级别在处理系统500上操作。进程、线程和p-state中的每一者都是序列的示例。
在一些实施方案中,处理系统500中的DSM 520、534(DSM 534-1到534-2)或544中的一个或多个DSM跟踪统计数据和操作行为,包括片上互连件状态和I/O设备互连件状态。DSM 520、534、544或其任何组合提供状态信息、存储的参数和组合控制逻辑,用于在处理独立序列期间测试片上硬件。不是为硬件所处理的每个序列复制完整的DSM的实例,而是共享一些静态资源,诸如状态和存储的参数。如上所述,DSM 520、534和544中的一个或多个DSM包括在处理系统500制造之后可修改的事件列表。因此,在一些情况下,由DSM520、534和544跟踪的各种测试和参数在处理系统500制造之后发生变化。
如上所述,EPMC 522、536(EPMC 536-1到536-2)或546中的一个或多个EPMC类似地跟踪并提供用于调试、代码分析和细化以及操作系统操作的状态信息。在所示实施方案中,EPMC 522、536和546从DSM 520、534和544中的一个或多个EPMC接收DSM指示。在一些情况下,EPMC 522、536和546将接收到的DSM指示输出为DSM事件数据。此外,在一些情况下,EPMC522、536和546将接收到的DSM指示与接收到的基于事件的中断数据组合以生成事件数据。
如图所示,处理系统500包括各种单元508(通用处理单元508-1到508-2)和单元510(例如,图形处理单元)。单元508包括相应的通用多线程处理器核心532和对应的高速缓存子系统530(例如,高速缓存子系统530-1到530-2)。类似地,单元510包括图形处理器核心542和缓冲器540。
在一些实施方案中,每个多线程处理器核心532包括具有一个或多个多阶段流水线的超标量微架构。在一些情况下,多线程软件应用使其软件线程中的每一个软件线程由多线程处理器核心532中的一个相应单独流水线处理。另选地,能够经由在某些功能单元处的控制来处理多个线程的流水线处理每个线程。在另外的示例中,由流水线利用多个线程中的一个相应线程的专用资源和所有多个线程所使用的共享资源的组合来处理这些线程中的每个线程。在各种实施方案中,每个多线程处理器核心532包括用于根据给定通用指令集处理指令的电路。
通常,每个多线程处理器核心532访问针对数据和指令的一级(L1)高速缓存。在一些情况下,存在多个片上级别(L2、L3等)的高速缓存。在一些实施方案中,这些级别的高速缓存中的一个或多个级别的高速缓存位于处理器核心之外并且位于高速缓存存储器子系统530中的一个相应高速缓存存储器子系统内。另外,在一些情况下,处理系统500包括一个或多个专用核心,诸如GPU、另一类型的单指令多数据(SIMD)核心、或数字信号处理器(DSP)。在所示实施方案中,处理系统500包括单元510。在所示实施方案中,单元510包括多个并行数据路径,其包括多个流水线阶段,其中每个阶段具有多个算术逻辑单元(ALU)部件并且针对数据流中的多个数据值在单个指令上操作。
在所示实施方案中,处理系统500还包括通过交叉开关506连接到单元508和510的共享高速缓冲存储器子系统504。单元508和510经由交叉开关506和存储器控制器502直接访问本地存储器和片外存储器。
在一些情况下,存储控制器502将处理系统500连接到片外存储器设备,诸如动态随机存取存储器(DRAM)、磁盘存储器和离线存档存储器。因此,存储器控制器502包括用于与存储器设备交接的控制电路。另外,在一些实施方案中,存储器控制器502包括用于对存储器请求进行排队的请求队列。类似于单元508和510,在所示实施方案中,存储器控制器502包括DSM 520和EPMC 522。
在所示实施方案中,接口512包括集成通道电路以将信号直接链接到其他处理节点,诸如另一处理器。因此,在一些情况下,接口512利用一个或多个相干链路来对另一处理节点的处理器片上高速缓存和片外存储器进行节点间访问。该技术的示例包括HyperTransport和QuickPath。I/O接口550为I/O设备从处理系统500到共享高速缓冲存储器子系统504和单元508和510提供接口。此外,在一些情况下,I/O接口550提供到EPMC 522、536和546中的一个或多个EPMC的接口。在一些情况下,I/O接口550另外与平台和I/O控制器集线器(未示出)通信以进行数据控制和访问。在一些情况下,集线器响应在相应链路上接收的控制分组和消息,并响应于从处理系统500接收的信息和命令生成控制分组和响应分组。在一些情况下,集线器在片上执行通常由常规南桥芯片组在片外执行的操作。在一些实施方案中,集线器还包括相应的DSM、EPMC或两者。
测试接口514包括用于根据给定协议(诸如IEEE 1149.1标准测试访问端口和边界扫描架构或联合测试行动组(JTAG)标准)测试处理系统500的接口。在一些情况下,测试接口514用于经由DSM接口560对DSM 520、534和544中的一个或多个DSM进行编程。在一些实施方案中,对DSM进行编程包括将特定值写入对应于给定DSM的寄存器(诸如对应于事件列表的寄存器)中。在一些情况下,对DSM进行编程确定DSM响应哪些触发以及响应中采取的动作类型。
在一些情况下,DSM 520、534和544各自被不同地编程。另选地,在一些情况下,DSM520、534和544中的两个或更多个DSM以类似方式被编程。此外,在一些情况下,DSM 520、534和544中的任何给定的一个DSM响应于特定触发事件采取特定动作,而不管执行的编程如何。类似地,在各种实施方案中,EPMC 522、536和546被类似地或不同地设计并且报告类似的数据或不同的数据。
如本文所公开,在一些实施方案中,集成电路(IC)包括:调试控制器,该调试控制器被配置为在调试互连件上选择性地输出调试数据;调试状态机(DSM),该DSM被配置为基于调试数据识别事件并响应于识别到事件输出DSM指示,其中DSM被配置为基于可编程事件信息识别事件;以及扩展性能监控计数器(EPMC),该EPMC被配置为指示多个检测到的事件,包括所识别的事件,其中EPMC被配置为响应于DSM指示来指示所识别的事件。在一方面,EPMC还被配置为响应于接收到基于事件的中断数据而输出事件数据,其中基于事件的中断数据不同于调试数据。在另一方面,DSM还被配置为基于至少一个流水线触发来识别事件。在又一方面,DSM被配置为经由基本输入/输出系统(BIOS)更新或安全固件更新接收可编程事件信息。
在一方面,DSM被配置为从用户接收可编程事件信息。在另一方面,所识别的事件是多条件事件,并且其中DSM还被配置为响应于确定调试数据指示所识别事件的最后一个条件而输出DSM指示。在又一方面,DSM指示包括在所识别的事件的第一条件和所识别的事件的最后一个条件之间经过的循环的计数。在又一方面,指示所识别的事件包括将描述所识别的事件的数据存储在存储器设备的事件日志中。在另一方面,指示所识别的事件包括将描述事件的数据发送到用户界面。
在一些实施方案中,一种方法包括:由调试状态机(DSM)经由调试互连件接收第一调试数据;由DSM将第一调试数据与存储在DSM中的事件列表进行比较;以及响应于第一调试数据匹配事件列表的第一条目的第一部分,向扩展性能监控计数器(EPMC)发送指示已经检测到第一事件的DSM指示。在一方面,该方法包括:在接收第一调试数据之前,由DSM接收与第一条目的第二部分匹配的第二调试数据,第一条目对应于多条件事件,并且第一条目的第一部分对应于多条件事件的最后一个条件。在另一方面,该方法包括在发送DSM指示之后,由DSM接收对事件列表的更新。
在一方面,该方法包括:在接收到对事件列表的更新之后,由DSM经由调试互连件接收第二调试数据;由DSM将第二调试数据与事件列表进行比较;以及响应于第二调试数据匹配事件列表的第一条目的更新的第一部分,向EPMC发送指示已经检测到第二事件的第二DSM指示,其中第二事件不同于第一事件,并且其中DSM指示与第二DSM指示相同。在另一方面,接收对事件列表的更新包括经由基本输入/输出系统(BIOS)更新或安全固件更新接收更新。在又一方面,接收对事件列表的更新包括从用户接收更新。
在一些实施方案中,一种方法包括:调试状态机(DSM),该DSM被配置为响应于接收到调试数据和流水线触发数据,基于存储在DSM处的事件列表来识别事件,并且响应于识别到该事件输出DSM指示;和扩展性能监控计数器(EPMC),该EMPC被配置为响应于接收到基于事件的中断数据、DSM指示或两者来指示包括所识别的事件的多个检测到的事件中的一个或多个事件。在一方面,指示所识别的事件包括指示期间发生所识别的事件的时钟周期的计数。在另一方面,所识别的事件包括功率状态相变。在又一方面,DSM指示包括功率状态监控计数。在又一方面,所识别的事件包括故障事件重新同步。
在一些实施方案中,计算机可读存储介质包括在使用期间可由计算机系统访问以将指令和/或数据提供给计算机系统的任何非暂时性存储介质或非暂时性存储介质的组合。在各种实施方案中,此类存储介质包括但不限于光学介质(例如,压缩光盘(CD)、数字通用光盘(DVD)、蓝光光盘)、磁性介质(例如,软盘、磁带或磁性硬盘)、易失性存储器(例如,随机存取存储器(RAM)或高速缓存)、非易失性存储器(例如,只读存储器(ROM)或快闪存储器)或基于微机电系统(MEMS)的存储介质。在一些实施方案中,计算机可读存储介质嵌入在计算系统中(例如,系统RAM或ROM)、固定地附接到计算系统(例如,磁性硬盘驱动器)、可移除地附接到计算系统(例如,光盘或基于通用串行总线(USB)的快闪存储器),或者经由有线或无线网络耦合到计算机系统(例如,网络可访问存储装置(NAS))。
在一些实施方案中,上文所描述的技术的某些方面由执行软件的处理系统的一个或多个处理器实现。软件包括存储或以其他方式有形地体现在非暂时性计算机可读存储介质上的一个或多个可执行指令集。在一些实施方案中,软件包括在由一个或多个处理器执行时操纵一个或多个处理器来执行上面所描述的技术的一个或多个方面的指令和某些数据。例如,在一些情况下,非暂时性计算机可读存储介质包括磁盘或光盘存储设备、固态存储设备(诸如快闪存储器、高速缓存、随机存取存储器(RAM)或一个或多个其他非易失性存储器设备)等。在一些实施方案中,存储在非暂时性计算机可读存储介质上的可执行指令为源代码、汇编语言代码、对象代码或者由一个或多个处理器解译或可以其他方式执行的其他指令格式。
应注意,并不需要上文在一般描述中所描述的所有活动或元件,特定活动或装置的一部分是不需要的,并且进行一个或多个其他活动,或者包括除所述的那些元件之外的元件。此外,列出活动的顺序不一定是执行活动的顺序。另外,已经参考具体实施方案描述了相应概念。然而,本领域普通技术人员应了解,在不脱离如所附权利要求书中所阐述的本公开范围的情况下,可作出各种修改和改变。因此,本说明书和附图将被视为说明性而非限制性的,并且所有此类修改都意图被包括在本公开的范围内。
上文已经参照具体实施方案描述了益处、其他优点以及问题的解决方案。然而,所述益处、优点、问题解决方案以及使任何益处、优点或问题解决方案出现或变得更突出的任何特征都不应被解释为是任何或所有权利要求的关键、必需或必要特征。此外,以上所公开的特定实施方案只是说明性的,因为所公开的主题可以按受益于本文教导的本领域的技术人员显而易知的不同但等效的方式来修改和实践。除了如所附权利要求中所描述的之外,并不意图限制本文所示的构造或设计的细节。因此,明显的是,上文所公开的特定实施方案可被更改或修改,并且所有此类变化都被认为是在所公开的主题的范围内。因此,本文所寻求的保护正如在所附权利要求书中阐述的那般。
在本公开内容中,在一些情况下,不同实体(其被不同地称为“部件”、“单元”、“设备”等)被描述或要求为“被配置”以执行一个或多个任务或操作。该规划([实体]被配置为[执行一个或多个任务])在本文中用于指代结构(即,物理的东西,诸如电子电路)。更具体地,该规划用于指示该结构被布置为在操作期间执行一个或多个任务。可以说一个结构“被配置为”执行一些任务,即使该结构当前没有被操作。“被配置为存储数据的存储设备”旨在涵盖例如具有在操作期间存储数据的电路的集成电路,即使所讨论的集成电路当前没有被使用(例如,其未连接电源)。因此,被描述或引用为“被配置为”执行某些任务的实体是指物理的东西,诸如设备、电路、存储可执行以实现任务的程序指令的存储器等。该短语在本文中不用于指无形的东西。此外,术语“被配置为”并不意指“可配置为”。例如,未编程的现场可编程门阵列不会被视为“被配置为”执行一些特定功能,尽管它可以在编程后“可配置为”执行该功能。另外,在所附权利要求中叙述结构“被配置为”执行一个或多个任务的明确意图不应被解释为具有装置加功能元件。

Claims (20)

1.一种集成电路(IC)[100],所述IC包括:
调试控制器[102],所述调试控制器被配置为在调试互连件[110]上选择性地输出调试数据[122];
调试状态机(DSM)[104],所述DSM被配置为基于所述调试数据识别事件并响应于识别到所述事件输出DSM指示[124],其中所述DSM被配置为基于可编程事件信息识别所述事件;以及
扩展性能监控计数器(EPMC)[106],所述EPMC被配置为指示包括所述识别的事件的多个检测到的事件,其中所述EPMC被配置为响应于所述DSM指示来指示所述识别的事件。
2.根据权利要求1所述的IC,其中所述EPMC还被配置为响应于接收到基于事件的中断数据[126]而输出事件数据[128],其中所述基于事件的中断数据不同于所述调试数据。
3.根据权利要求1或权利要求2所述的IC,其中所述DSM还被配置为基于至少一个流水线触发[210]来识别所述事件。
4.根据任一前述权利要求所述的IC,其中所述DSM被配置为经由基本输入/输出系统(BIOS)更新或安全固件更新接收所述可编程事件信息。
5.根据任一前述权利要求所述的IC,其中所述DSM被配置为从用户接收所述可编程事件信息。
6.根据任一前述权利要求所述的IC,其中所述识别的事件是多条件事件,并且其中所述DSM还被配置为响应于确定所述调试数据指示所述识别的事件的最后一个条件而输出所述DSM指示。
7.根据权利要求6所述的IC,其中所述DSM指示包括在所述识别的事件的第一条件和所述识别的事件的所述最后一个条件之间经过的循环的计数。
8.根据任一前述权利要求所述的IC,其中指示所述识别的事件包括将描述所述识别的事件的数据存储在存储器设备的事件日志中。
9.根据任一前述权利要求所述的IC,其中指示所述识别的事件包括将描述所述事件的数据发送到用户界面。
10.一种方法,其包括:
由调试状态机(DSM)[104]经由调试互连件[110]接收第一调试数据[122];
由所述DSM将所述第一调试数据与存储在所述DSM处的事件列表[304]进行比较;以及
响应于所述第一调试数据匹配所述事件列表的第一条目的第一部分,将DSM指示[124]发送到指示已经检测到第一事件的扩展性能监控计数器(EPMC)[126]。
11.如权利要求10所述的方法,其还包括:
在接收所述第一调试数据之前,由所述DSM接收与所述第一条目的第二部分匹配的第二调试数据,其中所述第一条目对应于多条件事件,并且其中所述第一条目的所述第一部分对应于所述多条件事件的最后一个条件。
12.根据权利要求10或权利要求11所述的方法,其还包括在发送所述DSM指示之后,由所述DSM接收对所述事件列表的更新。
13.根据权利要求12所述的方法,其还包括:
在接收到对所述事件列表的所述更新之后,由所述DSM经由所述调试互连件接收第二调试数据;
由所述DSM将所述第二调试数据与所述事件列表进行比较;以及
响应于所述第二调试数据匹配所述事件列表的所述第一条目的更新的第一部分,向所述EPMC发送指示已经检测到第二事件的第二DSM指示,其中所述第二事件不同于所述第一事件,并且其中所述DSM指示与所述第二DSM指示相同。
14.根据权利要求12或权利要求13所述的方法,其中接收对所述事件列表的所述更新包括经由基本输入/输出系统(BIOS)更新或安全固件更新接收所述更新。
15.根据权利要求12、权利要求13或权利要求14所述的方法,其中接收对所述事件列表的所述更新包括从用户接收所述更新。
16.一种集成电路(IC)[100],所述集成电路包括:
调试状态机(DSM)[104],所述DSM被配置为响应于接收到调试数据[122]和流水线触发数据[210],基于存储在所述DSM处的事件列表[304]识别事件,并响应于识别到所述事件输出DSM指示[124];和
扩展性能监控计数器(EPMC)[106],所述EPMC被配置为响应于接收到基于事件的中断数据[126]、所述DSM指示或两者,指示包括所述识别的事件的多个检测到的事件中的一个或多个事件。
17.根据权利要求16所述的IC,其中指示所述识别的事件包括指示发生所述识别的事件的时钟周期的计数。
18.根据权利要求17所述的IC,其中所述识别的事件包括功率状态相变。
19.根据权利要求17或权利要求18所述的IC,其中所述DSM指示包括功率状态监控计数。
20.根据权利要求16所述的IC,其中所述识别的事件包括故障事件重新同步。
CN202080091140.8A 2019-12-09 2020-12-04 调试状态机触发的扩展性能监控计数器 Pending CN114902059A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/707,336 US12072378B2 (en) 2019-12-09 2019-12-09 Debug state machine triggered extended performance monitor counter
US16/707,336 2019-12-09
PCT/US2020/063269 WO2021118876A1 (en) 2019-12-09 2020-12-04 Debug state machine triggered extended performance monitor counter

Publications (1)

Publication Number Publication Date
CN114902059A true CN114902059A (zh) 2022-08-12

Family

ID=76209649

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080091140.8A Pending CN114902059A (zh) 2019-12-09 2020-12-04 调试状态机触发的扩展性能监控计数器

Country Status (6)

Country Link
US (1) US12072378B2 (zh)
EP (1) EP4073526A4 (zh)
JP (1) JP2023504188A (zh)
KR (1) KR20220113423A (zh)
CN (1) CN114902059A (zh)
WO (1) WO2021118876A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11853251B2 (en) * 2022-05-04 2023-12-26 Qualcomm Incorporated On-die chip-to-chip (C2C) link state monitor

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5812830A (en) * 1996-11-14 1998-09-22 Hewlett-Packard Company Debug system with raw mode trigger capability
US20060167658A1 (en) * 2005-01-27 2006-07-27 International Business Machines Corporation Method, apparatus, and computer program product in a performance monitor for sampling all performance events generated by a processor
US7770142B1 (en) * 2006-10-30 2010-08-03 Cadence Design Systems, Inc. Modeling power management for an integrated circuit
US20100321051A1 (en) * 2007-02-14 2010-12-23 Noriaki Suzuki Semiconductor integrated circuit, debug/trace circuit and semiconductor integrated circuit operation observing method
CN103299282A (zh) * 2010-12-02 2013-09-11 超威半导体公司 调试状态机和包括所述调试状态机的处理机
US20140053036A1 (en) * 2012-08-15 2014-02-20 Scott P. Nixon Debugging multiple exclusive sequences using dsm context switches
US20150268302A1 (en) * 2014-03-20 2015-09-24 Ultrasoc Technologies Ltd Routing Debug Messages
US20160274187A1 (en) * 2015-03-17 2016-09-22 Intel Corporation Method, apparatus and system for dynamic bandwidth management in systems
US20180164372A1 (en) * 2016-12-12 2018-06-14 Samsung Electronics Co., Ltd. Highly flexible performance counter and system debug module
KR20180067432A (ko) * 2016-12-12 2018-06-20 삼성전자주식회사 성능 및 디버그 모니터링을 위한 장치, 시스템 및 방법

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7519510B2 (en) * 2004-11-18 2009-04-14 International Business Machines Corporation Derivative performance counter mechanism
US9037911B2 (en) 2010-12-09 2015-05-19 Advanced Micro Devices, Inc. Debug state machines and methods of their operation
US8887168B2 (en) 2011-07-14 2014-11-11 Advanced Micro Devices, Inc. Method and apparatus for monitoring and sharing performance resources of a processor
TWI472912B (zh) * 2012-09-11 2015-02-11 Univ Nat Cheng Kung 以電路內部事件作為觸發條件之除錯控制系統及其方法
US9442815B2 (en) * 2012-10-31 2016-09-13 Advanced Micro Devices, Inc. Distributed on-chip debug triggering with allocated bus lines
US9304844B2 (en) * 2013-02-27 2016-04-05 Qualcomm Incorporated System and method for preserving critical debug data in a portable computing device
US9514842B2 (en) 2014-09-24 2016-12-06 Apple Inc. Memory testing system

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5812830A (en) * 1996-11-14 1998-09-22 Hewlett-Packard Company Debug system with raw mode trigger capability
US20060167658A1 (en) * 2005-01-27 2006-07-27 International Business Machines Corporation Method, apparatus, and computer program product in a performance monitor for sampling all performance events generated by a processor
US7770142B1 (en) * 2006-10-30 2010-08-03 Cadence Design Systems, Inc. Modeling power management for an integrated circuit
US20100321051A1 (en) * 2007-02-14 2010-12-23 Noriaki Suzuki Semiconductor integrated circuit, debug/trace circuit and semiconductor integrated circuit operation observing method
CN103299282A (zh) * 2010-12-02 2013-09-11 超威半导体公司 调试状态机和包括所述调试状态机的处理机
US20140053036A1 (en) * 2012-08-15 2014-02-20 Scott P. Nixon Debugging multiple exclusive sequences using dsm context switches
US20150268302A1 (en) * 2014-03-20 2015-09-24 Ultrasoc Technologies Ltd Routing Debug Messages
US20160274187A1 (en) * 2015-03-17 2016-09-22 Intel Corporation Method, apparatus and system for dynamic bandwidth management in systems
US20180164372A1 (en) * 2016-12-12 2018-06-14 Samsung Electronics Co., Ltd. Highly flexible performance counter and system debug module
KR20180067432A (ko) * 2016-12-12 2018-06-20 삼성전자주식회사 성능 및 디버그 모니터링을 위한 장치, 시스템 및 방법

Also Published As

Publication number Publication date
US20210173004A1 (en) 2021-06-10
JP2023504188A (ja) 2023-02-01
EP4073526A1 (en) 2022-10-19
US12072378B2 (en) 2024-08-27
EP4073526A4 (en) 2024-01-03
KR20220113423A (ko) 2022-08-12
WO2021118876A1 (en) 2021-06-17

Similar Documents

Publication Publication Date Title
Dixit et al. Silent data corruptions at scale
US7392431B2 (en) Emulation system with peripherals recording emulation frame when stop generated
US20140053036A1 (en) Debugging multiple exclusive sequences using dsm context switches
TWI632462B (zh) 開關裝置及偵測積體電路匯流排之方法
US10331531B2 (en) Self-testing in a processor core
US10810094B2 (en) Methods and apparatus for anomaly response
US7519510B2 (en) Derivative performance counter mechanism
US11625316B2 (en) Checksum generation
US9495239B1 (en) User-configurable error handling
US8060793B2 (en) Processor operation inspection system and operation inspection circuit
US9015374B2 (en) Virtual interrupt filter
Shibin et al. On-line fault classification and handling in IEEE1687 based fault management system for complex SoCs
CN114902059A (zh) 调试状态机触发的扩展性能监控计数器
US10242179B1 (en) High-integrity multi-core heterogeneous processing environments
KR101196494B1 (ko) 다수의 클록 도메인 사이의 결정을 촉진하는 장치, 시스템,방법 및 머신 판독 가능한 매체
US9092333B2 (en) Fault isolation with abstracted objects
Mazouz et al. Statistical validation methodology of CPU power probes
US12020063B2 (en) Preflight checks for hardware accelerators in a distributed system
Salfner et al. Cross-core event monitoring for processor failure prediction
US8458539B2 (en) G-ODLAT on-die logic analyzer trigger with parallel vector finite state machine
US12093212B2 (en) External quiesce of a core in a multi-core system
US20080195896A1 (en) Apparratus and method for universal programmable error detection and real time error detection
TW202343246A (zh) 在大型尺度基礎建設裡偵測無聲資料損毀
CN113742113A (zh) 一种嵌入式系统健康管理方法、设备及储存介质
JP2009110110A (ja) 監視制御システム、監視制御方法、および監視制御プログラム

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