CN101625657A - 监控数据处理设备和概括监控数据 - Google Patents

监控数据处理设备和概括监控数据 Download PDF

Info

Publication number
CN101625657A
CN101625657A CN200910140225A CN200910140225A CN101625657A CN 101625657 A CN101625657 A CN 101625657A CN 200910140225 A CN200910140225 A CN 200910140225A CN 200910140225 A CN200910140225 A CN 200910140225A CN 101625657 A CN101625657 A CN 101625657A
Authority
CN
China
Prior art keywords
data
visit
processing equipment
data processing
monitor
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.)
Granted
Application number
CN200910140225A
Other languages
English (en)
Other versions
CN101625657B (zh
Inventor
A·D·赖德
K·E·克尼博恩
J·古芬斯
L·D·史密斯
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.)
Anne science and Technology (China) Co., Ltd.
ARM Ltd
Original Assignee
Advanced Risc Machines Ltd
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 Risc Machines Ltd filed Critical Advanced Risc Machines Ltd
Publication of CN101625657A publication Critical patent/CN101625657A/zh
Application granted granted Critical
Publication of CN101625657B publication Critical patent/CN101625657B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3471Address tracing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/348Circuit details, i.e. tracer hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Alarm Systems (AREA)

Abstract

本发明涉及监控数据处理设备和概括监控数据。公开了一种数据处理设备,其包括监控电路,用于监控在开始和结束事件之间发生的、对所述数据处理设备内多个可寻址的位置的访问,所述监控电路包括:用于存储标识要监控的所述多个可寻址的位置的数据的地址位置存储装置和监控数据存储装置;所述监控电路响应于所述开始事件的检测,检测对所述多个可寻址位置的访问和把有关所述检测的访问的概括的监控数据存储在所述监控数据存储装置中;以及所述监控电路响应于所述结束事件的检测,停止收集所述监控数据;所述监控电路响应于清洗事件的检测,输出所述存储的监控数据和清洗所述监控数据存储装置。

Description

监控数据处理设备和概括监控数据
技术领域
本发明涉及数据处理领域,具体地涉及数据处理系统的监控。
背景技术
数据处理设备正变得越来越复杂,因此,不提取和分析大量数据,将越来越难分析它们的性能,不管是为了最佳化还是发现故障。
而且,数据处理设备越来越多地具有多个处理器。这些多个处理器常常访问相同的数据存储装置,因此,在一个处理器在与另一个处理器访问某一存储的变量的时间大致相同的时间写入到该存储的变量的场合下,出现竞争条件问题。由于在处理器之间的不足的同步,将出现这样的问题。
当调节多处理器系统的性能时将出现不同但相关的问题。程序员需要明白由于例如总线竞争在不同的处理器上在同一时间运行两段代码的性能暗示。
而且,重要的是能够检验函数只在它们的许可范围内访问存储器的某些部分,而不在这个范围以外访问存储器。
检验竞争条件的一个已知的方法是通过动态竞争检测机制,例如,在Savage等人的“Eraser:a dynamic data race detector for multithreadedprograms”,ACM transactions on computer Systems(TOCS)卷15,号4,1997年11月,第391-411页,1997中描述的擦除器系统。擦除器系统修改它正在监控的程序,以便监控每个共享的存储器参考和验证观察到一致的锁定行为。诸如这样的运行时间修改具有与其有关的两个问题。首先,它可以引起很大的减慢(擦除器典型地使得系统变慢到原来的1/30到1/10),因此它不能在实时系统中应用,其次,它修改软件,因此它不能被使用来检测通过与加速器交互而引起的问题,即所述加速器或者是不可编程的(例如,DMA控制器)或者没有足够丰富的指令组来表示监控代码,或者是在因为实际的或法律的原因不能修改代码的场合下。
检验竞争条件的另一个方法是通过静态竞争检测机制,例如,由Detlefs等人在HP实验室技术报告SRC-RR-159中描述的“Extended StaticChecking(扩展的静态检验)”(ESC)http://www.hpl.hp.com/techreports/compaq-DEC/SRC-RR-159.HTML;和在Engels等人的“Checking SystemRules Using System-Specific,Programmer-Written Compiler Extensions”,Proceedings of the 4th Symposium on Operating system Design andImplementation中描述的MC系统。
这两个静态方法都通过执行对程序的静态分析而工作,目的是检测在程序中的大多数竞争条件,而不是证明它们是不存在的。MC是通过检验在获取锁和释放锁时程序员遵循所建立的(人工验证的)惯用语而工作,而ESC执行关于程序的更深的推理,它也可以检测诸如超过阵列边界写入那样的问题。静态分析避免与动态检测相关联的开销,但它不能发现动态检测可以抓住的某些竞争条件。此外,静态分析工具通常只支持有限的锁定协定组,而当使用不同的锁定协定时不能进行检测(或报告许多错误肯定)。
有许多可用的工具,用于对处理系统进行简要描述,以便提供它的性能的指示。例如,许多操作系统具有工具,这些工具产生显示每个CPU有多忙、有多少存储器在使用中、和这些数目如何随时间变化的图。
这些简要描述工具可以依赖于由系统硬件提供的性能计数器。例如,大多数现代处理器可以对事件进行计数,如所执行的指令的数目或缓存遗漏的数目。这些计数器典型地以两个模式被使用。在一个模式中(我们将把它称为“单触发模式”),程序员(或工具)修改程序,在任务开始时打开计数器,并在任务结束时读出计数器数值。这个数值呈现给用户或先被存储,在以后的时间点再呈现给用户。在另一个模式中(我们把它称为“周期采样”),周期性中断触发一个库,来读出性能计数器和把数值流出到存储装置,用于以后检查。它们例如可被显示为图。
在两种情形下,需要处理器读出当前的计数器数值。这个要求使得该过程受侵害(测量动作可能会毁坏结果)。它也对负责读取性能计数器的处理器施加开销,这最终限制进行测量的粒度和还可能限制精度。
与单触发模式相比较,在“周期采样”模式下使用性能计数器具有缺点,即人们希望监控的任务可能在一个采样周期的半途开始,并在另一个采样周期的半途结束,导致不精确的性能指数。这种不精确性可以通过减小采样周期而被减小,但这增加了侵害的程度,而且只要有某些不精确性,就不能确信地说一个事件在某个任务期间肯定发生或在该任务期间肯定不发生。
性能计数器的周期采样的一个变例是随机采样。这解决了当采样周期是正在测量的事件的频率的精确的倍数时出现的某些问题,但没有减小不精确性。
精确性和侵害的问题可以通过提供追踪所有的感兴趣的事件的硬件而被解决。片外的工具可以概括这种追踪,以产生非常详细的、精确的曲线图。这样的方法的缺点在于,如果事件以高的频率发生,则为了产生追踪需要很大的带宽,为了存储它需要大量的存储装置,以及需要大量处理来概括它。如果一个人想要单独地检查事件,那么这是有用的,但对于性能简要描述或对于检测竞争条件,这是小题大做的。
希望能够在实时期间分析复杂的系统,而不需要收集和从而输出和处理非常大量的数据。
发明内容
从第一方面看来,本发明提供数据处理设备,其包括监控电路,用于监控在开始和结束事件之间发生的、在所述数据处理设备内对多个可寻址的位置的访问,所述监控电路包括:用于存储标识要监控的所述多个可寻址的位置的数据的地址位置存储装置和监控数据存储装置;所述监控电路响应于所述开始事件的检测,以检测对所述多个可寻址位置的访问和把有关所述检测的访问的概括的监控数据存储在所述监控数据存储装置中;以及所述监控电路响应于所述结束事件的检测,以停止收集所述监控数据;所述监控电路响应于清洗事件的检测,以输出所述存储的监控数据和清洗所述监控数据存储装置。
本发明认识到,当通过使用传统的追踪方法追踪数据处理系统的活动时,生成包括代表在系统内的逐步的活动的数据的追踪流,并输出这个数据,以使得片外工具可以概括它。然而,该方法的缺点在于,活动会以高的频率发生,从而需要大量的带宽来产生追踪,需要大量的存储装置来存储它,以及需要大量处理来概括它。对于越来越复杂的系统,这个问题变得越来越严重。本发明通过使用开始和结束事件作为限制而限制及时监控的访问,并在空间上进一步限制到特定的地址位置而解决这个问题。而且,系统然后仅仅收集和输出检测的访问的概括,然后清除监控数据存储装置。
这样,可以生成与在特定的事件之间出现的和到特定的地址范围的访问有关的监控数据组。因此,所生成的监控数据可以在时间上和空间上被瞄准。而且,通过只输出出现的访问的概括,数据输出量的带宽可以大大地减小,概括的类型的适当的选择可以帮助保证,所输出的减少的数据是有用的数据。
在一些实施例中,所述开始事件、所述结束事件和所述清洗事件是同一个事件,以使得响应于所述同一个事件,所述监控电路停止监控,输出所述监控数据,清洗所述监控数据存储装置和开始再次检测对所述多个可寻址的位置的访问。
如果同一个事件触发数据的开始、结束和清洗,则通过在每个事件时输出数据,实际上达到对系统的连续监控。因此,监控的数据被分段,并且收集对于不同的时间段的访问数据的概括。如果需要在两个更宽地间隔开的事件之间的信息,则这些可被组合在一起。
在其它实施例中,开始、结束和清洗事件可以是不同的事件,或替换地,可以是,开始事件也是清洗事件,从而触发清洗,或结束事件也是清洗事件,从而触发数据的输出和数据存储装置的清洗。
在一些实施例中,所述开始、结束和清洗事件,每个包括任务的开始、任务的结束、存储器阻挡指令、特定的时间消逝、计数器溢出、计数器到达阈值、写入到控制寄存器、访问预定的区域内的地址、中断、打断点出现、发送事件指令、等待事件指令、负荷独有的指令(如在例如ARM处理器中发现的)、存储装置独有的指令(如在例如ARM处理器中发现的)、原子存储器(atomic memory)操作(诸如基本比较与交换指令)、在总线上的存储器阻挡指示、在总线上的负荷独有的指示、在总线上的存储装置独有的指示、在总线上的原子存储器访问指示、和定时器之一。
可以触发数据的输出和数据存储装置的清洗和检测的重新开始的不同的事件可以是许多事情。实际上可以使用有助于监控其间的访问的任何事件。如果希望监控在该任务内出现的访问,实例是任务的开始和结束,以及存储器阻挡指令,即被使用来保证在这个时刻执行对存储器的所有的待决的访问的指令。替换地,事件可以是预定的时间消逝或计数器溢出或达到阈值。如果在监控电路中使用计数器,后两种情形是特别有用的,因为这避免被存储在计数器中的数据丢失。替换地,事件可包括写入到控制寄存器。这个例子允许在用户的控制下进行触发,因为在处理器中的各种事件可以由用户选择,以便触发把数值写入到控制触发器。在另一个实施例中,事件可以是对特定的区域内特定的地址的访问,这个特定的区域可以是存储对存储器区域的锁定的地方,因此,访问在那里指明存储器范围是被锁住还是被开锁,或它可以是装置从其开始的区域,在这种情形下,访问在那里指示:设备要被开始。替换地,事件可以是出现中断或断点。
在一些实施例中,所述监控数据输出还包括标识所述开始、清洗和结束事件的至少一项的信号。
可以是,开始事件、结束事件或清洗事件被多个信号触发。在这种情形下,可能希望发送具有监控数据的信号的指示,因为这将提供与监控数据有关的、允许它更容易进行分析的附加信息。
在一些实施例中,所述监控数据还包括指示每次访问的时间的时间戳数据。
在监控时有用的另外的数据是时间戳数据,因为知道什么事件在什么时间出现,常常是有用的,因为然后可以精确地推导出这些事件的次序。如果处理器包括具有它的访问的时间戳数据,则这个数据对于监控是有用的,以及在一些实施例中,它和监控数据一起被存储。
在一些实施例中,所述检测的访问的所述概括包括通过散列函数被计算的所述访问的指印,而在其它实施例中,所述检测的访问的所述概括包括所述访问的计数。
所述检测的访问可以以许多方式进行概括,这包括把数据组合,以使得需要输出较少的数据并且数据仍旧是有用的。因此,散列函数可被使用来组合最新的访问信息。数值序列的散列可被选择为如果两个序列的散列是相同的,则有非常高的概率是序列也是相同的。也就是,散列函数可被使用来生成对于数值序列的“签名”。计算数值序列的散列是码片上的概括数据的数值的良好的说明:原始的数值序列是大的(需要高的带宽来进行追踪和大的空间用来存储),并且是笨拙的(序列可以具有可变的长度和需要许多操作来进行比较),而概括插进存储器的仅仅一个或两个数据字中,并且可以通过使用仅仅几个操作进行比较。替换地,数据访问次数的计数可以是有用的,并且计数器可被使用来计数这个次数,并且可以输出这个次数,而不是关于每个各个访问的信息。
在一些实施例中,所述监控电路包括计数器,用于计数对所述多个可寻址的位置的访问的次数。
如果需要访问的计数,则在监控电路中可以使用计数器来计数所述访问。这样的计数器可以是环绕计数器,或它可以是饱和计数器。饱和计数器具有优点,即它避免如果在事件之间发生溢出时对于环绕计数器可能出现的完全错误的信息被输出的风险。在一些实施例中,计数器可以是1比特饱和计数器,这可被使用于其中重要的是检测是否发生特定的访问而不是访问的次数的场合。
在一些实施例中,所述多个可寻址的位置包括一个地址范围、多个地址范围、一组特定的地址和一个地址范围的反(inverse)的至少一项。
多个可寻址的位置可以是一个地址范围或多个地址范围,或它可以是以不同的方式选择的一组特定的地址。替换地,它可以是一个地址范围的反,以使得它是特定的范围以外的任何地址。如果希望检验特定的实体或过程是否访问它允许的范围以外的地址的话,后者可以是有用的。
在一些实施例中,所述多个可寻址的位置包括多个地址范围,以及所述检测的访问的所述概括包括关于所述访问是对于所述多个地址范围的哪个地址的指示。
对于其进行访问的多个地址范围可被各个地监控,以使得关于对每个范围的访问的信息被分开地存储,或对几个范围的访问可被集中在一起,如果信息是所需要的信息的话。
在一些实施例中,所述检测的访问的所述概括还包括指示访问的类型的数据、标识作出所述访问的实体的标识符、指示由至少一个所述实体进行的每种类型的所述访问的次数的数据和关于所述访问是对多个地址范围中的哪个地址范围的指示的至少一项。
除了访问次数以外,概括还可包括访问的类型、和标识作出访问的实体的标识符。实体可以是许多事物,诸如某种主体,例如处理器或加速器。概括还可包括关于例如它是读出还是写入的访问类型的信息。访问的计数可以是访问的总数的计数,或可以是来自不同的实体的不同的访问类型可能被分开地计数。当为了性能或为了检错原因分析处理设备时,可以看到,关于在两个事件之间出现的由每个实体对特定的地址或特定的范围的地址的访问的次数和类型的信息是有用的信息,因此,这样地概括信息将减小数据输出而同时保持它的许多价值。
在一些实施例中,所述监控电路包括多个计数器,每个计数器涉及到一个或多个所述实体、一个或多个所述多个地址范围和数据访问的类型的至少一项。
记录实体在其中执行访问的数据的一个方法是使得计数器与每个实体有关和每次在实体进行特定的访问时给计数器加增量。对于每个实体可以有一个计数器,或可能希望计数由两个实体或几个实体一起作出访问,或对于每个实体可以有几个计数器,每个计数不同的类型的访问。计数器也可以被使用于不同的地址范围。
在一些实施例中,所述监控电路被耦接到在所述数据处理设备内的总线端口,所述实体包括多个总线主控器。
虽然数据处理设备可以以许多方式被安排,但可能希望监控电路被耦接到总线端口,这可以是总线主控器端口或总线受控器端口,监控电路然后可以通过查看在总线主控器端口上的、表示从其发送信号的主控器的信号而确定哪个实体发送哪个访问。
虽然在一些实施例中监控数据存储装置可以以许多方式被形成,但所述监控数据存储装置包括高速缓冲存储器。
在一些实施例中,所述检测的访问的所述概括还包括还包括指示访问的类型的数据、标识作出所述访问的实体的标识符、指示由至少一个所述实体进行的每种类型的所述访问的次数的数据和关于所述访问是对多个地址范围中的哪个地址范围的指示的至少一项,所述高速缓冲存储器被配置成存储多组监控数据,每组监控数据与一个或多个所述实体、数据访问类型和一个或多个所述多个地址范围的至少一项有关。
高速缓冲存储器可以有效地存储多组监控数据,由此避免需要许多单独的数据存储装置,诸如单独的计数器。这可以是存储信息的有效的方式。
在一些实施例中,所述监控电路包括逻辑,用于响应于对所述高速缓冲存储器已充满的检测和检测的访问,清洗所述多组监控数据中的一组监控数据。
使用高速缓冲存储器来存储信息的一个优点在于,要被检测的许多访问可以不发生。在这样的情形下,在高速缓冲存储器中不使用存储空间,高速缓冲存储器只存储已出现的访问的计数。如果访问确实出现,并且没有更多空间来存储它,则在一些实施例中,与不同的访问有关的、已收集的较早先数据被输出,然后存储空间可被使用来存储新检测的访问。
在一些实施例中,所述数据处理设备包括多个处理单元和多个监控电路。
这里使用的监控电路可被使用来监控具有诸如处理器那样的几个处理单元、总线主控器和DMA控制器的复杂的数据处理设备。为了做到这一点,单个监控电路可以与由多个处理器检测访问相结合地使用,或可以使用多个监控电路,每个监控一个或几个处理器。这些多个电路可以由不同的开始和结束事件触发,或它们可以由同一个事件触发。
在一些实施例中,所述数据处理设备还包括事件配置存储装置,所述数据处理设备适配于响应于预定的指令写入到所述事件配置存储装置,所述监控电路响应于在所述事件配置存储装置中存储的数值,或者开始监控所述多个可寻址的位置,输出所述监控数据,或者清洗所述监控数据。
监控电路可以响应于在事件配置存储装置中存储的数值,以开始监控,停止监控,输出和清洗监控数据。在这样的情形下,数据处理设备响应于特定的指令写入到事件配置存储装置,因此,开始和停止监控可以由被插入到代码中的指令控制,并由数据处理设备处理。
在一些实施例中,数据处理设备包括用于接收用于更新所述地址位置存储装置的数据的数据输入端,所述地址位置存储装置用于存储标识所述多个可寻址的位置的数据。
用于存储标识多个可寻址的位置的数据的地址位置存储装置可被更新,以使得设备可配置来监控不同的地址。这可以响应于由用户或许经由调试程序(debugger)输入的、在数据输入端处的信号而完成。替换地,它可以由来自处理器的信号进行更新。
在一些实施例中,所述数据处理设备还包括来自所述数据处理设备的输出端,用于响应于所述清洗事件输出所述监控数据,所述清洗事件包括由所述数据处理设备生成的内部事件。
监控数据可以响应于清洗事件通过例如把该监控数据流出追踪端口而直接从数据处理设备输出。该清洗事件包括由该数据处理设备生成的内部事件以便实际上该设备自发输出监控数据而不是对对该监控数据的外部请求作出反应。替换地,在其它实施例中,它可被存储在数据处理设备上的存储器中,供以后被访问和分析。
按照本发明的第二方面,提供了监控数据处理设备的方法,包括执行以下步骤多次:检测开始事件;检测对多个可寻址的位置的访问,和把有关所述检测的访问的概括的监控数据存储在所述监控数据存储装置;检测结束事件;输出所述存储的监控数据;以及清除所述监控数据存储装置。
按照本发明的第三方面,提供了用于分析由按照本发明的第一方面的数据处理设备生成的监控数据的方法,包括以下步骤:
接收在多个开始和结束事件之间生成的、与对多个地址位置作出的访问的概括有关的多组监控数据;
组合来自不同监控数据组的监控数据,以便生成与更宽地间隔开的开始和结束事件有关的新的监控数据组;以及
结合标识所述开始和结束事件和所述多个地址位置的数据分析所述监控数据。
由本发明的第一方面的数据处理设备输出的监控数据需要进行分析。这个监控数据被生成为多组监控数据,每组与在特定的事件之间发生的访问相关。当分析数据时,这些组的有些组被组合,以便生成与更宽地间隔开的开始和结束事件有关的新的监控数据组。这样地组合这个监控数据使得它能够如想要的那样被分析,以使得在直接触发监控组的收集的事件与开始和结束不同的监控组的其它事件之间发生的访问可被用作为监控信息。
在一些实施例中,所述监控数据还包括对哪个实体执行所述访问的指示;所述分析步骤包括确定实体是否访问在对于所述实体的允许的范围以外的地址。
通过选择要被监控的适当的地址范围和区分作出所述访问的实体,监控数据可被使用来确定特定的实体是否执行对在允许范围以外的地址范围进行访问。这是有用的信息,它表示在系统中可能有错误的地方。
替换地,在其它实施例中,所述监控数据还包括对哪个实体执行所述访问的指示;所述分析步骤包括确定不同的实体是否对于在一个所述监控数据组内的同一个地址范围执行写入和读出。
分析在两个事件之间从不同的实体对同一个地址范围的不同的读出和写入的访问,还可以指示可能有竞争条件的地方。例如,如果当实体开始任务时或当实体结束任务时所述同一个事件被触发,和如果所述同一个地址范围对应于应当由一个任务一次独有地访问的变量,则如果一个实体对地址范围执行非零次数的写入并且其它实体对该地址范围执行非零次数的读出或写入,则它是错误。应当指出,任务是对于本申请中的处理的同义词。
替换地,在其它实施例中,监控数据可被用作系统的性能的指示。在这样的实施例中,所述分析步骤包括通过把访问次数除以在所述事件之间的时间,而确定在不同的事件之间所述数据处理设备的性能。
本发明的第四方面提供计算机程序产品,其可操作来在数据处理器上运行时控制数据处理器执行按照本发明的第三方面的方法的步骤。
从结合附图被阅读的、以下的说明性实施例的详细说明将明白本发明的以上的和其它的目的、特征和优点。
附图说明
图1示出按照本发明的实施例的、具有监控电路的数据处理设备;
图2a示出按照本发明的实施例的、具有存储器观看单元和监控概括单元的数据处理设备;
图2b示出按照本发明的实施例的、具有存储器观看单元和对应的监控概括单元的数据处理设备;
图3示出按照本发明的另一个实施例的数据处理设备;
图4示意地示出具有不同的开始和结束事件的不同的处理过程;
图5示出按照本发明的实施例的监控电路;
图6示出按照本发明的实施例的、生成监控数据的方法;以及
图7是示出按照本发明的实施例的、分析监控数据的方法的流程图。
具体实施方式
图1示出数据处理设备5,包括用于监控连接存储器30与处理器40和DMA 50的总线20的监控电路10。
来自处理器40和DMA50的、对从存储器30读出数据和写入数据到存储器30的数据访问请求沿总线20传递,并被监控电路10监控。
在本实施例中,监控电路10被配置成监控对特定的地址范围的访问,该特定的地址范围由被存储在数据存储装置12中的信息标识。数据存储装置12由用户使用调试程序(debugger)经由输入60被更新,因此,监控电路可被重新配置成监控不同的地址范围。
监控电路10响应于特定的“开始”事件,开始收集来自总线的监控数据。在本实施例中,所收集的监控数据是检测到的对指定的地址范围内的地址的访问请求。这些请求触发在监控电路10内的“增量计数器”信号,并且这信号被发送到该电路内的计数器14,16。在检测到读出的情形下,信号被发送到读出计数器14,而写入的检测触发要被发送到写入计数器16的信号。因此,计数器14计数检测到的读出,计数器16计数检测到的写入。在本实施例中,为了简化起见,只示出了两个计数器,但本领域技术人员将会看到,可以有更多的计数器,每个计数器或许与不同的地址范围和/或请求访问的实体相关,以使得可以计数来自不同的实体的在不同的地址范围中的读出和写入。
在本实施例中,另外的事件触发监控电路以输出它的监控数据,在这种情形下是计数器14和16中的数值。监控数据经由输出端7被输出到分析逻辑130,在其中分析该数据。此后,计数器被清除,以及当再次检测到特定的“开始”事件时计数重新开始。
触发监控的开始和数值的输出和计数器的清洗的事件可以是许多事物,但在本实施例中,它是对DMA开始或结束存储器转移或存储器阻挡指令由处理器执行的检测。存储器阻挡指令是被使用来保证任何待决的存储器访问在随后的指令被执行之前被执行的指令。因此,响应于存储器阻挡指令,将执行对于指定的存储器的任何待决的读出或写入。所以这些指令当被使用来触发监控数据的输出时可以是有用的,因为可以看到,在这个时间点将已经执行了所有的待决的读出或写入。因此,处理器40命令DMA 50开始存储器转移,并且该开始指令沿总线行进,并由监控电路10检测。当存储器转移是完整时,DMA 50可以藉助于中断将这一点指示给处理器40。这不是沿总线发送的,因此需要分开的通道来把它路由到监控电路10,因为正是这个信号是监控电路的结束事件。应当指出,在本实施例中,从处理器到DMA的开始信号用作为开始事件,然而,在一些实施例中,DMA可能没有响应于来自处理器40的开始存储器转移请求,而立即开始存储器转移。在这样的情形下,DMA可能具有到监控电路10的另一条线,当它确实开始执行请求的存储器转移时可以沿这条线发送信号,替换地,监控电路可以检测在总线上的存储器访问请求,并且这个检测可以用作为开始事件。
在本实施例中,计数器12和14是饱和计数器。在其它实施例中,可以使用环绕计数器,只要它们是足够大,以使得它们不大可能环绕。在其它实施例中,如果仅仅希望检测是否已经出现特定的访问而不是检测那些访问的数目的话,可以使用1比特饱和计数器。
虽然在本实施例中,被存储在数据存储装置12中的地址位置标识符标识地址范围,但在其它实施例中,它可以标识多个范围。替换地,它可被使用于比较器,该比较器通过地址不匹配而不是匹配,而被触发,以便标识在特定的范围以外的任何地址。如果对于处理有已知的允许范围,和希望检验它没有访问这个范围以外的位置,则这可以是有用的。因此,可以看到,这个系统可以以许多不同的方式被设计成监控不同的指定的事情,而输出已经被概括的这个数据并不需要高的带宽。
图2a示出按照替换实施例的数据处理设备5。在本实施例中,有几个监控电路或存储器观看单元70a,b和c。存储器观看单元70a监控由处理器42进行的访问,而存储器观看单元70b监控由处理器44进行的访问。存储器观看单元70c监控对数据存储装置46进行的访问,这些各个存储器观看单元监控被指定的、在特定的地址范围中的访问,并且它们把标识它们已检测的访问的信号发送到中央概括单元72。概括单元72具有多个数据存储装置,用于存储来自不同的存储器观看单元的信息。这些可包括用来计数来自特定的存储器观看单元的特定的类型的访问的数目的计数器,或它们可包括数据存储装置,用于存储通过访问信号被接收的、表示访问发生的时间的时间戳信息,或它们可包括散列函数生成器,用于生成和存储被检测到的访问的散列函数。另外,它们可记录由于竞争造成的停止(stall)的次数,如果这样的事件被任何存储器观看单元监控的话。概括单元72还包括用于接收清洗信号的输入。在本实施例中,这个清洗信号响应于中断而被生成,它既用作“开始”、“结束”和“清洗”事件,使得被存储在不同的计数器和数据存储装置的数据被输出到存储器80,被清洗或清除;又用作从不同的存储器观看单元70a,70b,70c中再次收集的信息。因此,实际上,中断结束特定的监控组,输出数据,清洗数据存储装置,和由此开始新的监控组。因为中断不沿总线行进,所以中断需要从处理器42被分开地发送到概括单元72。
可被使用的示例性散列函数生成器可以使用循环冗余检验(CRC)函数,以及序列的概括由数据序列的CRC和序列的长度组成。两种情形是特别感兴趣的:
a)由任务访问的地址序列常常在每次该任务执行时是相同的,所以任务执行的地址序列的散列可被用作函数的签名,以便或者i)通过比较它与系统中所有的任务的地址访问的散列而标识任务,或者ii)通过比较地址序列的散列与任务的先前的执行的地址序列的散列,而认识到任务表现得不同于正常:如果签名是不同的,则任务表现得不同。
b)如果一个任务把数值序列以与另一个任务从存储器读出该数值序列的相同的次序写入到存储器,则第一任务的输出的散列将匹配于加到第二任务的输入的散列。如果我们知道任务之间的数据的流动以及该任务以特定的次序写入/读出它们的一个变量,则这个特性可被使用来通过比较应当匹配(和在数据转移期间例如还没有被毁坏)的数据签名而检验数据正在从一个任务正确地转移到另一个任务。如果任务仅仅把数据从存储器的一个区域复制到另一个区域,则被读出的数据的签名应当与被重写的数据的签名相同的,这样,我们可以确认通过比较任务的输入和输出签名而正确地执行存储器复制。
如果我们不知道任务之间的数据的流动,那么这个特性可被使用来通过查找其中一个任务的输出总是具有与加到以后任务的输入相同的签名的情形而重建在系统中的部分的数据流动。
在本实施例中,不是把监控数据外部地输出到数据处理设备5,而是把它发送到数据处理设备内的存储器80,在其中存储它。然后,它可以以后被访问用于分析。
图2b示出与图2a类似的实施例,但在这个实施例中,每个存储器观看单元70a和70b具有它自己的概括单元72a和72b。这些概括单元响应于同一个信号开始和停止收集数据,输出这个收集的数据,并清除它们的计数器。在本实施例中,数据被输出到输出端口60a和60b。输出的数据可被分开地分析,替换地,两个输出数据流可以通过使用软件将它们的对应的开始/停止/清洗事件进行关联而被合并成单个数据流。
应当指出,虽然在这些实施例中存储器观看单元监控在特定的地址范围中的被指定的访问,但它们也可以被使用来响应于检测到特定的访问而触发例外,因此可被使用来实施观看点或存储器保护单元。
图3示出本发明的替换实施例。在这个实施例中,数据处理设备5具有存储器观看单元80,它观看主总线90和监控由主控器M1和M2对受控器S1和S2的访问。访问也可以由在不同的总线92上的其它主控器作出,并且如果需要访问在这个总线上的设备,这些可以经由总线桥接器95被发送到主总线90。桥接器95发送访问信息,但去除有关哪个主控器生成信号的信息,因此,为了标识哪些访问来自于总线92上的哪些主控器,在本实施例中,使用监控主控器M3的总线主控器端口的另外的存储器观看单元85。
在本实施例中,每个存储器观看单元80,85收集与对于在地址范围内指定的特定的地址范围的访问有关的数据,和响应于相同的“结束”事件动作而输出这个数据。在这种情形下,存储器观看单元80,85响应于在控制寄存器97中的、由数据处理设备5设置的特定的数值,这些数值向存储器观看单元指示开始监控或结束监控。在这个控制寄存器97中的数值由处理器响应于由用户插入在代码中的指令而进行设置。因此,监控的开始和结束可以由用户控制。
虽然在本实施例中,存储器观看单元80和85被示出为响应于相同的事件的分开的单元,但在一些实施例中,它们可以由不同的事件触发而开始和结束监控。在这样的情形下,它们收集的信息将被分开地分析,虽然它也可以被组合。
图4示意地示出对于在本实施例中由不同的处理器P0,P1和P2执行的不同的处理A,B和C的监控如何被不同的开始和停止事件触发。在这种情形下,开始和停止事件是特定的过程的开始和停止。因此,对于不同的过程收集不同的监控数据组。这个信息可被分开地分析,或它可被组合。例如,如果概括是在开始和停止事件之间的访问的次数,则相邻的概括可通过相加在每个概括中访问次数而被组合。同样地,如果概括是访问序列的CRC(循环冗余检验函数)和访问次数,则概括可以如下地组合:
令<crc1,M>是第一概括
其中crc1是访问的CRC,和M是该CRC包括的比特数
令<crc2,N>是第二概括
其中crc2是访问的CRC,和N是该CRC包括的比特数,组合的概括是<CRC((crc1<<N)xor crc2),M+N>
其中‘crc1<<N’是第一crc向左移位N比特
xor计算它的自变量(argument)的异或值
以及CRC对它的输入数据计算CRC。
图5更详细地示出用于监控总线90的监控电路10。监控电路10包括比较器105,用于比较访问的地址与存储的选择的地址范围。在本实施例中,有两个被存储的不同地址范围,比较器根据哪个地址范围被匹配而输出不同的信号。响应于检测到在一个范围内的地址,指出产生访问的实体和所述访问是读出还是写入,以及对应于在这个地址范围内的来自于这种类型的实体的这种类型的访问的、在高速缓冲存储器110内的计数器110a被加增量。在本实施例中,有根据地址范围、实体和访问的类型被计数的、许多不同类型的访问,因此,在监控电路10中有许多计数器。这些计数器在本实施例中被实施为非零计数器的高速缓冲存储器。当这些计数器的许多计数器可以在长时间间隔内为零时这被完成,因此不是提供许多计数器,而是保持非零计数器的超高速存储器,当计数器被加增量时,它被加到这个高速缓冲存储器中。在本实施例中,如果需要新的计数器,但在高速缓冲存储器内没有更多的未使用的计数器是可用的,则输出一个计数器值和清除计数器。要输出和清除的计数器可以以许多方式进行选择,例如,可以使用循环方法。还有定时器,也用作为结束、开始和清洗事件,以使得如果计数器在指定的时间内没有变为充满的,则在这个时刻,通过输出端11输出数据,并且清除计数器。
在本实施例中,比较器105通过找出地址的匹配而检测在指定的范围内的访问。在其它实施例中,它可被使用来通过检测不匹配而检测在地址范围以外的访问。如果知道,任务应当只访问特定的地址范围内的地址或它不应当访问特定的范围(例如存储存储器的锁的地方),则这可以是有用的。
本领域技术人员应当看到,组合来自每个实施例的不同的单元的不同的实施例是可能的。例如,如果需要监控由几个处理器或加速器,诸如DMA引擎,作出的访问,则使用几个监控电路可能是有利的。这些可被放置在每个处理单元的总线主控器端口上,或放置在总线桥接器上,或放置在被附加到被监控的存储器的总线上。它们实际上可被放置在其中它们可以检测访问,如果需要,检测从其发送访问的实体,以及可能地,检测诸如时间戳那样的附加信息的任何地方。
如果监控的目的是要检测竞争条件,则必须在由可能牵涉到竞争的任何处理单元进行的访问之间加以区分。因此,在这样的情形下,在不同的处理单元之间的访问需要在它们之间加以区分,以使得由两个不同的处理单元在特定的时间内对同一个地址范围的访问可被标识为潜在的竞争条件。如果不需要这样做,则可不必在来自不同的处理单元的访问之间加以区分,并且所需要的全部可以是仅仅计数沿特定的总线的访问。取决于所需要的事物,可以使用计数不同的事物的不同的监控电路。
就开始和结束特定的检测组的信号而言,取决于所监控的内容,这些可以是不同的事物。例如,无论何时任务在处理单元上开始时,可以发送开始信号,以及无论何时任务在处理单元上完成时,可以发送结束信号。这样,可以检测到在任务处理期间作出的访问。在这种情形下,开始和结束事件信号可以通过对于来自硬连线加速器的多个开始/停止信号的逻辑或运算被生成。替换地,它可以是指示功能调用(function call)的开始或结束的中断点。在一些实施例中,开始和/或结束事件的特性可以依赖于环境而改变,因此,把它与所收集的监控数据一起存储。
允许处理器通过例如把数值写入到诸如图3所示的的硬件上的控制寄存器而明确地生成开始信号,也可以是有用的。这些通知可被插入到在RTOS中的任何处理器间同步原语(synchronisation primitive)中的代码,例如,在处理器内的上下文交换机处,无论何时锁被锁或释放时,或当线程阻挡等待锁时。
就已被监控的地址的范围而言,这些可被存储在监控电路内,通常,可能有多个感兴趣范围,每个可以使存储的访问概括与它们相关联,以使得对不同的地址范围的访问可以分开地被标识,替换地,某些范围可以组合,这样可以监控对这个组合的地址范围的访问。替换地,感兴趣的地址可能不在特定的范围内,它们可以是以某个其它方式,诸如,例如通过轻型滤波器(balloon filter)指定的不同的地址组。
图6是示出按照本发明的实施例的、生成监控数据的方法的流程图。在检测到开始事件后,监控对于某些指定的可寻址的位置的访问,并且以某种形式,或许作为计数器中的计数值,存储检测的访问的概括。这个过程继续进行,直至检测的结束事件为止,此后输出在监控期间收集的存储的数据,并且清洗监控数据存储装置。在检测到随后的开始事件后,处理过程重新开始。
图7是示出按照本发明的实施例的、分析监控数据的方法的流程图。在这个方法中,接收例如通过图6的方法生成的监控数据组。这些监控数据组的某些监控数据互相组合,以便产生在更宽地间隔开的事件之间的新的监控数据组。然后至少结合标识开始和结束事件和指定的地址位置的数据,对数据进行分析。也可以收集和存储附加的数据,这也可以被使用于分析。这样的数据可包括指示每个访问的时间的时间戳数据、指示执行访问的实体的实体数据、访问数据的类型以及开始和/或结束事件的特性。
虽然这里参照附图详细地描述了本发明的说明性实施例,但应当看到,本发明不限于那些精确的实施例,以及本领域技术人员可以在那里实施各种改变和修改,而不背离如由所附权利要求指定的本发明的范围和精神。

Claims (26)

1.一种数据处理设备,包括监控电路,用于监控在开始和结束事件之间发生的、对所述数据处理设备内多个可寻址的位置的访问,所述监控电路包括:
(i)用于存储标识要监控的所述多个可寻址的位置的数据的地址位置存储装置和监控数据存储装置;
(ii)所述监控电路响应于所述开始事件的检测,检测对所述多个可寻址位置的访问和把有关所述检测的访问的概括的监控数据存储在所述监控数据存储装置中;
(iii)所述监控电路响应于所述结束事件的检测,停止收集所述监控数据;
(iv)所述监控电路响应于清洗事件的检测,输出所述存储的监控数据和清洗所述监控数据存储装置。
2.按照权利要求1的数据处理设备,其中所述开始事件、所述结束事件和所述清洗事件是同一个事件,以使得响应于所述同一个事件,所述监控电路输出所述监控数据,清洗所述监控数据存储装置和开始检测对所述多个可寻址的位置的访问。
3.按照权利要求1的数据处理设备,其中所述开始、结束和清洗事件,每个包括任务的开始、任务的结束、存储器阻挡指令、预定的时间消逝、计数器溢出、计数器到达阈值、写入到控制寄存器、访问特定的区域内的地址、中断、打断点出现、发送事件指令、等待事件指令、负荷独有的指令、存储装置独有的指令、原子存储器操作、在总线上的存储器阻挡指示、在总线上的负荷独有的指示、在总线上的存储装置独有的指示、在总线上的原子存储器访问指示、和定时器之一。
4.按照权利要求3的数据处理设备,其中所述监控数据输出还包括标识所述开始、清洗和结束事件的至少一项的信号。
5.按照权利要求1的数据处理设备,其中所述监控数据还包括指示每次访问的时间的时间戳数据。
6.按照权利要求1的数据处理设备,其中所述检测的访问的所述概括包括通过散列函数被计算的所述访问的指印。
7.按照权利要求1的数据处理设备,其中所述检测的访问的所述概括包括所述访问的计数。
8.按照权利要求7的数据处理设备,其中所述监控电路包括计数器,用于计数对所述多个可寻址的位置的访问的次数。
9.按照权利要求1的数据处理设备,其中所述多个可寻址的位置包括一个地址范围、多个地址范围、一组特定的地址和一个地址范围的反的至少一项。
10.按照权利要求1的数据处理设备,其中所述多个可寻址的位置包括多个地址范围,以及所述检测的访问的所述概括包括关于所述访问是对于所述多个地址范围的哪个地址范围的指示。
11.按照权利要求1的数据处理设备,其中所述检测的访问的所述概括还包括指示访问的类型的数据、标识作出所述访问的实体的标识符、指示由至少一个所述实体进行的每种类型的所述访问的次数的数据和关于所述访问是对多个地址范围中的哪个地址范围的指示的至少一项。
12.按照权利要求11的数据处理设备,其中所述监控电路包括多个计数器,每个计数器涉及:一个或多个所述实体、一个或多个所述多个地址范围和数据访问的类型的至少一项。
13.按照权利要求11的数据处理设备,其中所述监控电路被耦接到在所述数据处理设备内的总线端口,所述实体包括多个总线主控器。
14.按照权利要求1的数据处理设备,其中所述监控数据存储装置包括高速缓冲存储器。
15.按照权利要求14的数据处理设备,其中所述检测的访问的所述概括还包括:指示访问的类型的数据、标识作出所述访问的实体的标识符、指示由至少一个所述实体进行的每种类型的所述访问的次数的数据和关于所述访问是对多个地址范围中的哪个地址范围的指示的至少一项,所述高速缓冲存储器被配置成存储多组监控数据,每组监控数据与一个或多个所述实体、数据访问类型和一个或多个所述多个地址范围的至少一项有关。
16.按照权利要求15的数据处理设备,其中所述监控电路包括用于响应于所述高速缓冲存储器已满的检测和检测的访问,清洗所述多组监控数据之一的逻辑。
17.按照权利要求1的数据处理设备,所述数据处理设备包括多个处理单元和多个监控电路。
18.按照权利要求1的数据处理设备,所述数据处理设备还包括事件配置存储装置,所述数据处理设备适配于响应于预定的指令写入到所述事件配置存储装置,所述监控电路响应于在所述事件配置存储装置中存储的数值,或者开始监控所述多个可寻址的位置,输出所述监控数据,或者清洗所述监控数据。
19.按照权利要求1的数据处理设备,包括用于接收用于更新所述地址位置存储装置的数据的数据输入,所述地址位置存储装置用于存储标识所述多个可寻址的位置的数据。
20.按照权利要求1的数据处理设备,包括从所述数据处理设备的输出,用于响应于所述清洗事件输出所述监控数据,所述清洗事件包括由所述数据处理设备生成的内部事件。
21.一种监控数据处理设备的方法,包括多次执行以下步骤:
(i)检测开始事件;
(ii)检测对多个可寻址的位置的访问,和把有关所述检测的访问的概括的监控数据存储在所述监控数据存储装置中;
(iii)检测结束事件;
(iv)输出所述存储的监控数据;以及
(v)清除所述监控数据存储装置。
22.一种用于分析由按照权利要求1的数据处理设备生成的监控数据的方法,包括以下步骤:
(i)接收在多个开始和结束事件之间生成的、与对多个地址位置作出的访问的概括有关的多组监控数据;
(ii)从连接或重叠多组监控数据来组合监控数据,以便生成与更宽地间隔开的开始和结束事件有关的新的监控数据组;以及
(iii)结合标识所述开始和结束事件和所述多个地址位置的数据,分析所述监控数据。
23.按照权利要求22的方法,
(i)其中所述监控数据还包括对哪个实体执行了所述访问的指示;
(ii)所述分析步骤包括确定实体是否访问在对于所述实体允许的范围以外的地址。
24.按照权利要求22的方法,
(i)其中所述监控数据还包括对哪个实体执行了所述访问的指示;
(ii)所述分析步骤包括确定不同的实体是否对于在所述监控数据组之一内的同一个地址范围执行了写入和读出。
25.按照权利要求22的方法,
(i)其中所述分析步骤包括通过把访问次数除以在所述事件之间的时间,而确定在不同的事件之间所述数据处理设备的性能。
26.一种计算机程序产品,其可操作来在数据处理器上运行时控制数据处理器以执行按照权利要求22的方法的步骤。
CN200910140225.6A 2008-07-09 2009-07-09 监控数据处理设备和概括监控数据 Active CN101625657B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB0812560.1 2008-07-09
GB0812560A GB2461716A (en) 2008-07-09 2008-07-09 Monitoring circuitry for monitoring accesses to addressable locations in data processing apparatus that occur between the start and end events.

Publications (2)

Publication Number Publication Date
CN101625657A true CN101625657A (zh) 2010-01-13
CN101625657B CN101625657B (zh) 2014-04-09

Family

ID=39718215

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910140225.6A Active CN101625657B (zh) 2008-07-09 2009-07-09 监控数据处理设备和概括监控数据

Country Status (4)

Country Link
US (1) US9858169B2 (zh)
JP (1) JP5328531B2 (zh)
CN (1) CN101625657B (zh)
GB (2) GB2461716A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104169886A (zh) * 2012-03-16 2014-11-26 国际商业机器公司 通过地址的运行时间检测间接采样
CN104704474A (zh) * 2012-03-16 2015-06-10 国际商业机器公司 用于管理的运行时间的基于硬件的运行时间检测设施
CN105991363A (zh) * 2015-02-12 2016-10-05 中兴通讯股份有限公司 监控处理方法及装置
CN107710174A (zh) * 2015-06-16 2018-02-16 北欧半导体公司 存储器监视单元
CN109086193A (zh) * 2017-06-13 2018-12-25 阿里巴巴集团控股有限公司 监控方法、装置及系统
CN110941569A (zh) * 2019-11-18 2020-03-31 新华三半导体技术有限公司 数据处理方法、装置及处理器芯片
CN111858256A (zh) * 2015-12-25 2020-10-30 北京忆芯科技有限公司 命令队列监控电路、数据交换方法及其设备

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102010047718A1 (de) * 2010-10-07 2012-04-12 Infineon Technologies Ag Vorrichtung und Verfahren zum Formatieren und Vorauswählen von Trace Daten
US8510604B2 (en) * 2011-03-02 2013-08-13 Microsoft Corporation Static data race detection and analysis
US9471315B2 (en) 2012-03-16 2016-10-18 International Business Machines Corporation Run-time instrumentation reporting
US9430238B2 (en) 2012-03-16 2016-08-30 International Business Machines Corporation Run-time-instrumentation controls emit instruction
US9465716B2 (en) 2012-03-16 2016-10-11 International Business Machines Corporation Run-time instrumentation directed sampling
US9454462B2 (en) 2012-03-16 2016-09-27 International Business Machines Corporation Run-time instrumentation monitoring for processor characteristic changes
US9367316B2 (en) 2012-03-16 2016-06-14 International Business Machines Corporation Run-time instrumentation indirect sampling by instruction operation code
US9280447B2 (en) 2012-03-16 2016-03-08 International Business Machines Corporation Modifying run-time-instrumentation controls from a lesser-privileged state
US9411591B2 (en) 2012-03-16 2016-08-09 International Business Machines Corporation Run-time instrumentation sampling in transactional-execution mode
US9250902B2 (en) 2012-03-16 2016-02-02 International Business Machines Corporation Determining the status of run-time-instrumentation controls
US9442824B2 (en) 2012-03-16 2016-09-13 International Business Machines Corporation Transformation of a program-event-recording event into a run-time instrumentation event
US9158660B2 (en) 2012-03-16 2015-10-13 International Business Machines Corporation Controlling operation of a run-time instrumentation facility
US9047400B2 (en) * 2012-08-29 2015-06-02 Freescale Semiconductor, Inc. Data processor device for handling a watchpoint and method thereof
US9069896B2 (en) 2012-08-29 2015-06-30 Freescale Semiconductor, Inc. Data processor device for handling a watchpoint and method thereof
US9256399B2 (en) 2013-06-27 2016-02-09 Atmel Corporation Breaking program execution on events
US9645870B2 (en) * 2013-06-27 2017-05-09 Atmel Corporation System for debugging DMA system data transfer
US9830245B2 (en) 2013-06-27 2017-11-28 Atmel Corporation Tracing events in an autonomous event system
WO2015088534A1 (en) * 2013-12-12 2015-06-18 Intel Corporation Techniques for detecting race conditions
US9411542B2 (en) * 2014-02-21 2016-08-09 Analog Devices Global Interruptible store exclusive
US20150317158A1 (en) 2014-04-03 2015-11-05 Applied Micro Circuits Corporation Implementation of load acquire/store release instructions using load/store operation with dmb operation
JP6318976B2 (ja) * 2014-08-22 2018-05-09 富士通株式会社 デバッグ回路、デバッガ装置、半導体装置及びデバッグ方法
CN104268530B (zh) * 2014-09-29 2017-07-11 深圳市汇顶科技股份有限公司 指纹检测电路及其电容式指纹传感器、移动终端
CN110795150A (zh) * 2015-07-21 2020-02-14 安培计算有限责任公司 依dmb操作用加载/存储操作实施加载撷取/存储释放指令
US10949202B2 (en) 2016-04-14 2021-03-16 International Business Machines Corporation Identifying and tracking frequently accessed registers in a processor
US10289516B2 (en) 2016-12-29 2019-05-14 Intel Corporation NMONITOR instruction for monitoring a plurality of addresses
CN109710666A (zh) * 2018-11-12 2019-05-03 济南大学 一种对串口通讯的实时数据监测方法
JP7218556B2 (ja) 2018-12-06 2023-02-07 富士通株式会社 演算処理装置および演算処理装置の制御方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6530031B1 (en) * 1999-11-08 2003-03-04 International Business Machines Corporation Method and apparatus for timing duration of initialization tasks during system initialization
US6697925B1 (en) * 2000-12-22 2004-02-24 Unisys Corporation Use of a cache ownership mechanism to synchronize multiple dayclocks
US7143251B1 (en) * 2003-06-30 2006-11-28 Data Domain, Inc. Data storage using identifiers
CN101059772A (zh) * 2006-04-21 2007-10-24 株式会社东芝 性能监测设备和数据收集方法

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5051944A (en) * 1986-04-17 1991-09-24 Ncr Corporation Computer address analyzer having a counter and memory locations each storing count value indicating occurrence of corresponding memory address
JPS62287345A (ja) 1986-06-06 1987-12-14 Fuji Electric Co Ltd メモリアクセス状況監視装置
US5274811A (en) * 1989-06-19 1993-12-28 Digital Equipment Corporation Method for quickly acquiring and using very long traces of mixed system and user memory references
JPH0359731A (ja) 1989-07-28 1991-03-14 Nec Corp デバッグ装置
JPH05216718A (ja) 1992-02-04 1993-08-27 Mitsubishi Electric Corp デバッグ方法
JP2902861B2 (ja) 1992-07-14 1999-06-07 株式会社東芝 トレース機能付バッファ装置
USRE38514E1 (en) * 1994-11-18 2004-05-11 Apple Computer, Inc. System for and method of efficiently controlling memory accesses in a multiprocessor computer system
US6021261A (en) * 1996-12-05 2000-02-01 International Business Machines Corporation Method and system for testing a multiprocessor data processing system utilizing a plurality of event tracers
US6154857A (en) 1997-04-08 2000-11-28 Advanced Micro Devices, Inc. Microprocessor-based device incorporating a cache for capturing software performance profiling data
US6427196B1 (en) * 1999-08-31 2002-07-30 Intel Corporation SRAM controller for parallel processor architecture including address and command queue and arbiter
US6574721B1 (en) * 1999-08-31 2003-06-03 International Business Machines Corporation Apparatus and method for providing simultaneous local and global addressing using software to distinguish between local and global addresses
JP2001134471A (ja) * 1999-11-09 2001-05-18 Toshiba Corp デバッグ装置及びデバッグ方法
US6581130B1 (en) * 2000-04-04 2003-06-17 Hewlett Packard Development Company, L.P. Dynamic remapping of address registers for address translation between multiple busses
JP4445160B2 (ja) * 2001-05-18 2010-04-07 富士通株式会社 イベント計測装置および方法並びにイベント計測プログラムおよび同プログラムを記録したコンピュータ読取可能な記録媒体並びにプロセッサシステム
JP2003132019A (ja) 2002-07-12 2003-05-09 Hitachi Ltd 計算機システムの障害監視方法
US7069397B2 (en) * 2003-04-15 2006-06-27 Sun Microsystems, Inc Stream based memory manager with function specific hardware logic for accessing data as a stream in memory
US7251649B2 (en) * 2003-10-31 2007-07-31 Hewlett-Packard Development Company, L.P. Method for prioritizing content
US7269708B2 (en) * 2004-04-20 2007-09-11 Rambus Inc. Memory controller for non-homogenous memory system
JP2006293560A (ja) 2005-04-07 2006-10-26 Toshiba Lsi System Support Kk デバッグシステムおよびデバッグ方法
JP4397354B2 (ja) 2005-06-28 2010-01-13 富士通株式会社 テスト記録方法、テスト記録装置、およびテスト記録プログラム
US7624362B2 (en) * 2006-01-11 2009-11-24 Panasonic Corporation Circuit analysis device using processor information
JP2007213556A (ja) 2006-01-11 2007-08-23 Matsushita Electric Ind Co Ltd 回路解析装置
JP4712583B2 (ja) 2006-03-20 2011-06-29 富士通株式会社 ソフトウェア検証プログラム、ソフトウェア検証装置、ソフトウェア検証方法
JP2008041036A (ja) 2006-08-10 2008-02-21 Sony Corp メモリアクセス監視装置およびその方法
KR101334176B1 (ko) * 2007-01-19 2013-11-28 삼성전자주식회사 멀티 프로세서 시스템 온 칩에서의 메모리 관리 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6530031B1 (en) * 1999-11-08 2003-03-04 International Business Machines Corporation Method and apparatus for timing duration of initialization tasks during system initialization
US6697925B1 (en) * 2000-12-22 2004-02-24 Unisys Corporation Use of a cache ownership mechanism to synchronize multiple dayclocks
US7143251B1 (en) * 2003-06-30 2006-11-28 Data Domain, Inc. Data storage using identifiers
CN101059772A (zh) * 2006-04-21 2007-10-24 株式会社东芝 性能监测设备和数据收集方法

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104704474B (zh) * 2012-03-16 2017-08-15 国际商业机器公司 用于管理的运行时间的基于硬件的运行时间检测设施
CN104704474A (zh) * 2012-03-16 2015-06-10 国际商业机器公司 用于管理的运行时间的基于硬件的运行时间检测设施
CN104169886B (zh) * 2012-03-16 2016-08-17 国际商业机器公司 通过地址的运行时间检测间接采样的方法和系统
CN104169886A (zh) * 2012-03-16 2014-11-26 国际商业机器公司 通过地址的运行时间检测间接采样
CN105991363B (zh) * 2015-02-12 2020-11-03 中兴通讯股份有限公司 监控处理方法及装置
CN105991363A (zh) * 2015-02-12 2016-10-05 中兴通讯股份有限公司 监控处理方法及装置
CN107710174A (zh) * 2015-06-16 2018-02-16 北欧半导体公司 存储器监视单元
CN107710174B (zh) * 2015-06-16 2021-12-28 北欧半导体公司 存储器监视单元
CN111858256A (zh) * 2015-12-25 2020-10-30 北京忆芯科技有限公司 命令队列监控电路、数据交换方法及其设备
CN111858256B (zh) * 2015-12-25 2024-05-28 北京忆芯科技有限公司 命令队列监控电路、数据交换方法及其设备
CN109086193A (zh) * 2017-06-13 2018-12-25 阿里巴巴集团控股有限公司 监控方法、装置及系统
CN110941569A (zh) * 2019-11-18 2020-03-31 新华三半导体技术有限公司 数据处理方法、装置及处理器芯片
CN110941569B (zh) * 2019-11-18 2021-01-26 新华三半导体技术有限公司 数据处理方法、装置及处理器芯片

Also Published As

Publication number Publication date
US9858169B2 (en) 2018-01-02
JP5328531B2 (ja) 2013-10-30
US20100077143A1 (en) 2010-03-25
CN101625657B (zh) 2014-04-09
GB2461644A (en) 2010-01-13
GB0812560D0 (en) 2008-08-13
GB0911893D0 (en) 2009-08-19
GB2461716A (en) 2010-01-13
GB2461644B (en) 2012-11-14
JP2010020767A (ja) 2010-01-28

Similar Documents

Publication Publication Date Title
CN101625657B (zh) 监控数据处理设备和概括监控数据
JP5478531B2 (ja) タイムスタンプを生成するための方法、装置およびトレースモジュール
US6012148A (en) Programmable error detect/mask utilizing bus history stack
US8813055B2 (en) Method and apparatus for associating user-specified data with events in a data space profiler
EP0130469B1 (en) Internally distributed monitoring system
US8627335B2 (en) Method and apparatus for data space profiling of applications across a network
US8731688B2 (en) Processing apparatus and method for acquiring log information
EP2239664B1 (en) Context switch sampling
CN101084488A (zh) 用于调试在多核架构中执行的多线程程序的方法和系统
CN101278265A (zh) 使用用户级控制机制进行剖析
US6331957B1 (en) Integrated breakpoint detector and associated multi-level breakpoint techniques
US7076767B1 (en) Method for controlling and collecting information in a data processing system
CN103109276A (zh) 系统测试方法
US20030084376A1 (en) Software crash event analysis method and system
CN103430158A (zh) 使用执行单一步骤来诊断编码
WO2012095762A1 (en) Activity recording system for a concurrent software environment
CN101334744B (zh) 一种检测多处理器系统故障的方法、系统和装置
CN105243023B (zh) 并行运行时错误检测方法
US20100191508A1 (en) Detecting and Recording Performance Events in a Data Processing System
US9195524B1 (en) Hardware support for performance analysis
EP3379418B1 (en) Trace data representation
US7404106B2 (en) Apparatus and method for reporting program halts in an unprotected pipeline at non-interruptible points in code execution
US8468394B2 (en) Method of tracing selected activities within a data processing system by tagging selected items and tracing the tagged items
JP6052847B2 (ja) トランザクション処理装置及び不正トランザクション検出方法
JP2023526554A (ja) 処理回路によって処理されるサンプル操作のプロファイリング

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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20180530

Address after: cambridge

Co-patentee after: Anne science and Technology (China) Co., Ltd.

Patentee after: Advanced Risc Machines Ltd.

Address before: Cambridge County

Patentee before: Advanced Risc Machines Ltd.