CN102193856A - 跟踪数据优先级选择 - Google Patents

跟踪数据优先级选择 Download PDF

Info

Publication number
CN102193856A
CN102193856A CN2011100433447A CN201110043344A CN102193856A CN 102193856 A CN102193856 A CN 102193856A CN 2011100433447 A CN2011100433447 A CN 2011100433447A CN 201110043344 A CN201110043344 A CN 201110043344A CN 102193856 A CN102193856 A CN 102193856A
Authority
CN
China
Prior art keywords
data
output device
priority
tracking output
described data
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
CN2011100433447A
Other languages
English (en)
Other versions
CN102193856B (zh
Inventor
J·M·霍尔利
M·J·威廉斯
K·E·克尼邦
A·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 CN102193856A publication Critical patent/CN102193856A/zh
Application granted granted Critical
Publication of CN102193856B publication Critical patent/CN102193856B/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
    • 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

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)
  • Bus Control (AREA)

Abstract

以执行程序指令的处理器的形式向集成电路2提供数据源6,该数据源6经总线互连16被连接到跟踪输出设备8。该跟踪输出设备8是存储器映射的。被映射到跟踪输出设备8的不同存储器地址与不同优先级相关联。写到至少一个存储器地址的跟踪数据具有第一优先级,其中所述跟踪数据被接受或所述传送被延迟直到所述数据可以由所述跟踪输出设备8处理。与不同的存储器地址相关联的另一优先级是这样的:所述数据总是被接受但如果跟踪输出设备8在该时刻不具有处理(例如存储)该数据的能力则被丢弃。

Description

跟踪数据优先级选择
技术领域
本发明涉及数据处理系统领域。更具体地,本发明涉及具有产生跟踪数据输出能力的数据处理系统。
背景技术
在数据处理系统领域中,提供用于产生跟踪输出数据的机制是公知的。该跟踪数据在硬件和/或软件的开发期间可以被用于诊断和调试目的。在这种数据处理系统中出现的问题是:跟踪数据的量太大以至于当被捕获时或输出前在设备上没有充足的资源以缓存所述跟踪数据和/或没有充足的带宽以将所述跟踪数据发送到所述设备外。处理该问题的一种方式是丢弃不可能缓存或传送出所述设备的跟踪数据。然而,这遭受如下缺点的困扰:重要的诊断信息可能出现在该被丢弃的跟踪数据中。另一种可能性是停止该设备直到跟踪数据缓冲器中的空间变为是可获得的或者将所述跟踪数据传送出该设备的能力变为是可获得的。该方法的缺点在于停止该设备或相反改变其定时会以掩盖或改变正被检查的故障或引入附加的故障的方式影响该设备的操作。
发明内容
从一方面看,本发明提供了用于处理数据的装置,包括:
数据源,所述数据源被配置为产生数据;以及
跟踪输出设备,所述跟踪输出设备被耦合到所述数据源并被配置为从所述数据源接收所述数据,并从所述装置输出跟踪数据;其中
所述数据源动态地选择将与所述数据相关联的多个优先级中的一个;
所述跟踪输出设备响应具有第一优先级的所接收的数据以执行如下操作之一:(i)如果所述跟踪输出设备准备好处理所述数据,则从所述数据源接受所述数据;以及(ii)如果所述跟踪输出设备没有准备好处理所述数据,则延迟从所述数据源接受所述数据直到所述跟踪输出设备准备好处理所述数据;以及
所述跟踪输出设备响应具有第二优先级的所接收的数据以处理来自所述数据源的所述数据以及,如果所述跟踪输出设备不能处理所述数据,则丢弃所述数据。
使用该技术,所述数据源能够选择与被发送到所述跟踪输出设备的所述跟踪数据相关联的优先级,并且所述跟踪输出设备可以响应该优先级以便管理所述跟踪输出设备处理所接收的跟踪数据的能力。更特别地,如果所述跟踪输出设备准备好处理所述跟踪数据则所述跟踪输出设备可以接受具有第一优先级的跟踪数据,并且如果所述跟踪输出设备没有准备好处理所述跟踪数据,则可以延迟(stall)所述接受直到所述跟踪输出设备准备好处理所述数据。处理所述跟踪数据可能意味着简单地将所述跟踪数据存储在所述跟踪输出设备中。这样,由于该跟踪数据的接受将被延迟直到所述跟踪输出设备准备好处理所述数据,故第一优先级的跟踪数据将不会被丢失。从所述数据源接受具有第二优先级的由所述跟踪输出设备接收的跟踪数据,但是,如果所述跟踪输出设备不能够处理该跟踪数据,则其被丢弃。这样,所述数据以不对进一步处理产生妨碍的方式被接受,并且如果所述跟踪输出设备不能处理该数据则所述跟踪输出设备丢弃所述数据。使用这些不同的优先级,重要的跟踪数据可以与所述第一优先级相关联,以便将从本质上保证由所述跟踪输出设备接受而较不重要的数据可以与第二优先级相关联,使用其将被从数据源接受,以便避免对处理产生妨碍并且如果所述跟踪输出设备在该时间点不具有处理该跟踪数据的能力则仍然将被丢弃。
该跟踪输出设备可以包括数据缓冲存储器,该数据缓冲存储器被配置为在从所述装置输出所述跟踪数据之前存储该跟踪数据。该数据缓冲存储器中的存储空间的可用性或不可用性可以被用于控制跟踪输出设备对接收的具有不同优先级的跟踪数据的响应。当所述数据缓冲存储器具有足以存储该跟踪数据的空容量时将接受具有第一优先级的所接收的跟踪数据,并且当所述数据缓冲存储器在该时刻不具有存储所述跟踪数据的足够容量时将触发该数据的接受的延迟。
关于具有第二优先级的跟踪数据,当所述数据缓冲存储器不具有存储该跟踪数据的足够空容量时,所述跟踪输出设备将不能处理该跟踪数据并因此该跟踪数据将被丢弃。
使用所述数据缓冲器中可用空间与由N+F(P)给出的值的比较也可以确定处理数据的能力,其中N是要被存储在所述缓冲器中的数据的字节大小并且F(P)是优先级函数。
本技术的一种类型的实施例使用是总线主设备的数据源、是总线从设备的跟踪输出设备,以及将所述数据源耦合到所述跟踪输出设备的总线互连。这种类型的布置是灵活的并允许设计者将跟踪输出设备放置在系统内的实质上任何位置并提供从借助于所述总线互连而被连接的各种不同总线主设备到该跟踪输出设备的访问。
当所述跟踪输出设备是被映射到多个存储器地址的存储器映射从设备时可以简化与所述跟踪输出设备的通信。
可以布置多个存储器地址以便到不同存储器地址的写入被用于将不同优先级与由所述跟踪输出设备接收的跟踪数据相关联。因此,映射到跟踪输出设备的一个存储器地址可以被用于接收第一优先级的数据并且映射到所述跟踪输出设备的不同存储器地址可以被用于接收第二优先级的数据。这样,数据源可以选择(例如,在软件控制下)将数据写入到被映射到所述跟踪输出设备内的存储区域中的哪个存储位置,并因此动态地选择将与该数据相关联的优先级。
在另一类实施例中,所述数据源可以是主处理器并且所述跟踪输出设备可以是被耦合到该主处理器的协处理器。在此类实施例中,响应于所述主处理器的指令流中的协处理器指令,数据可以从所述主处理器被发送到用作跟踪输出设备的协处理器。所述协处理器指令可以指定将与要被传送到用作跟踪输出设备的所述协处理器的数据相关联的优先级。
如下是可能的:系统的用户可以配置该系统以便在系统中出现具有所述第一优先级的跟踪数据的多次写入,该多次写入延迟所述传送直到该跟踪数据被接受。在这种情形中,可能出现延迟的建立以便实质上妨碍该处理的整体向前进程以及不能获得有用的诊断或调试信息。为了提供用于处理这种情况的机制,所述跟踪输出设备可以响应于覆写信号而改变与由跟踪输出设备接收的数据相关联的优先级。因此,所述覆写信号可以被用于以能够避免以不期望的方式进行该数据延迟处理的方式而有效地减少与由跟踪输出设备所接收的数据相关联的优先级
从另一方面看,本发明提供了用于处理数据的装置,包括:
用于产生数据的数据源部件;以及
跟踪输出部件,所述跟踪输出部件被耦合到所述数据源部件,用于从所述数据源部件接收所述数据并从所述装置输出跟踪数据;其中
所述数据源部件动态地选择将与所述数据相关联的多个优先级中的一个;
所述跟踪输出部件响应于所接收的具有第一优先级的数据执行如下操作之一:(i)如果所述跟踪输出部件准备好处理所述数据,则从所述数据源部件接受所述数据;以及(ii)如果所述跟踪输出部件没有准备好处理所述数据,则延迟从所述数据源部件接受所述数据直到所述跟踪输出设备准备好处理所述数据;以及
所述跟踪输出部件响应所接收的具有第二优先级的数据以接受来自所述数据源部件的所述数据以及,如果所述跟踪输出部件不能处理所述数据,则丢弃所述数据。
从另一方面看,本发明提供了处理数据的方法,包括如下步骤:
使用数据源产生数据;
使用被耦合到所述数据源的跟踪输出设备从所述数据源接收所述数据;以及
从所述装置输出跟踪数据;其中
所述数据源动态地选择将与所述数据相关联的多个优先级中的一个;
所述跟踪输出设备响应于所接收的具有第一优先级的数据执行如下操作之一:(i)如果所述跟踪输出设备准备好处理所述数据,则从所述数据源接受所述数据;以及(ii)如果所述跟踪输出设备没有准备好处理所述数据,则延迟从所述数据源接受所述数据直到所述跟踪输出设备准备好处理所述数据;以及
所述跟踪输出设备响应于所接收的具有第二优先级的数据以接受来自所述数据源的所述数据以及,如果所述跟踪输出设备不能处理所述数据,则丢弃所述数据。
通过如下将结合附图而被阅读的示例性实施例的详细描述,本发明的上述以及其他目的、特征和优点将是显而易见的。
附图说明
图1示例性地示出了具有跟踪能力并被耦合到诊断设备的片上系统集成电路;
图2是示意性地示出了在数据源内执行的将优先级与被发送到跟踪输出设备的数据相关联的处理的流程图;
图3是示意性地示出了在跟踪输出设备内执行的接收具有不同优先级的数据的处理的流程图;
图4是示出了被映射到跟踪输出设备的不同范围的存储地址如何与不同优先级和不同的其他属性相关联的表格;
图5示意性地示出了其中处理器被耦合到用作跟踪输出设备的协处理器的另一实施例。
具体实施方式
图1示出了将跟踪数据输出到诊断设备4的片上系统集成电路2。所述集成电路2包括执行程序指令的处理器核心6、跟踪输出设备8、另外的总线主设备10以及另两个总线从设备12、14。所述处理器6、跟踪输出设备8、主设备10以及从设备12、14全部经总线互连16(这可以在标准共享总线和点对点互连之间变化)而被连接。所述处理器6是总线主设备并且所述跟踪输出设备是总线从设备。
所述跟踪输出设备8是在系统的存储地址空间内映射的存储器并具有与所述跟踪输出设备8相关联的存储器地址的范围。诸如处理器6或总线主设备10(例如DMA单元)的总线主设备可以向目标存储器地址执行写操作。如果该目标存储器地址在被映射到所述跟踪输出设备8的存储器地址的范围内,则该写交易将横穿所述总线互连16而到跟踪输出设备8。所述总线互连16(诸如根据由ARM有限公司设计的AMBA互连的协议)的传输协议被用于控制穿过所述总线的传送。这些传输协议允许接收从设备(在此情况下为跟踪输出设备8)接受所述传送或指示在其中所述数据应被保留在所述总线上直到所述从设备准备好接受该数据的延迟条件。当延迟发生时,一些或所有的总线互连16可能对其他设备的使用变为不可用,并因此可能损害集成电路2继续处理的整体能力。
所述跟踪输出设备8包括数据缓冲存储器18,写入到跟踪输出设备8的数据可以被存储在该数据缓冲存储器18中直到其被输出到诊断设备4(直接地或以改进的形式,诸如压缩的形式)。用于输出到诊断设备4的可用带宽可能是窄的,并因此当监测集成电路2的操作周期时大量的数据可能需要被缓冲在该数据缓冲存储器18中。
图2是示意性的示出了在数据源中执行的将数据发送到跟踪输出设备8的处理的流程图。在步骤20,处理等待直到有要被发送的跟踪数据。在步骤22,确定所述跟踪数据是否与第一优先级相关联。如果所述跟踪数据与所述第一优先级相关联,则处理前进到步骤24,在其中跟踪数据被写入到映射到所述跟踪输出设备8的目标存储器地址并与第一优先级相关联。如果在步骤22确定所述跟踪数据不与所述第一优先级相关联,则处理前进到步骤26。在步骤26,所述跟踪数据被写入到映射到所述跟踪输出设备8的目标存储器地址并与第二优先级相关联。
根据以上内容,可以看出在软件控制下操作的数据源(诸如处理器6)可以动态地选择将与要被发送的跟踪数据相关联的优先级。可以给予重要的跟踪数据第一优先级以增加该数据将从集成电路2被输出到诊断设备4的可能性。较不重要但如果可能输出也会有用的跟踪数据可以与第二优先级相关联,并因此将以不延迟处理的方式被所述跟踪输出设备8接受,并且如果没有处理(例如缓存)该跟踪数据的能力则仍然简单地被丢弃。
图3是示意性地示出了当接收跟踪数据时由所述跟踪输出设备8执行的处理的流程图。在步骤28,所述跟踪输出设备8等待要在总线互连16上被声明有效(assert)的数据。当数据被声明有效时,步骤30确定与该数据相关联的目标存储器地址是否被映射到跟踪输出设备8。如果所述目标存储器地址没有被映射到所述跟踪输出设备,则该数据被指定到诸如从设备12或从设备14的另一从设备,并且跟踪输出设备8内的处理前进到步骤32,在该步骤32,总线上的数据被忽略。
如果在步骤30确定与总线上的数据相关联的目标存储器地址被映射到所述跟踪输出设备8,则步骤34用于确定特定的目标存储器地址是否与第二优先级相关联。如果所述目标存储器地址与第二优先级相关联,则处理前进到步骤36。如果所述目标存储器地址不与所述第二优先级相关联,则在本示例实施例中,其将与第一优先级相关联,并且处理前进到步骤38。
在步骤36,所述跟踪输出设备从所述总线接受跟踪数据并向所述数据源发送回确认。步骤40确定在所述数据缓冲存储器中是否有可用空间以存储该跟踪数据。如果没有可用空间以存储所述跟踪数据,则步骤42丢弃该跟踪数据并且处理继续进行。在步骤36立即从总线接受所述跟踪数据的效果在于总线被释放用于进一步处理。而且,集成电路2内的其他处理操作的定时将不会受到所述跟踪输出设备8是否处理或没有处理第二优先级的跟踪数据的影响。这是重要的,因为其停止了与该第二优先级的跟踪数据相关联的操作,当试图执行诊断操作时以可以掩盖或改变故障或产生新的故障的方式改变集成电路2的行为。
如果在步骤40的确定是在数据缓冲存储器18中存储所述跟踪数据的空间是可获得的,则步骤44将用于随后从所述装置输出的跟踪数据存储在所述数据缓冲存储器18中。
如果在步骤34确定与总线互连16上接收的数据相关联的目标存储器地址不是与第二优先级相关联,则处理前进到步骤38,该步骤38处理第一优先级的跟踪数据。步骤38确定在数据缓冲存储器18中是否有可用的空间以存储所述跟踪数据。如果当前没有可用的空间,则处理前进到步骤46,在该步骤46,延迟所述总线互连16并且所述跟踪数据被保持在总线互连16上直到数据缓冲存储器18中用于存储该跟踪数据的空间是可获得的(例如,所述数据缓冲存储器18对诊断设备4至少部分的被用尽)。这样,重要的跟踪数据可以与第一优先级相关联,并且可以确保这些重要的跟踪数据总是被写入到数据缓冲存储器18中,并由此即使在数据缓冲存储器18中空间暂时是不可获得的,这些重要的跟踪数据也可以被捕获用于分析。
如果在步骤38确定缓存空间是可获得的,则处理前进到步骤48,在该步骤48,从总线互连16接受跟踪数据并将确认信号返回给发起的总线主设备。随后处理前进到步骤44,在该步骤44,所述跟踪数据被存储在所述数据缓冲存储器18中。
可以理解的是:延迟总线互连16或其至少一部分中的步骤46的动作对于集成电路2的整体操作是插入的(intrusive)。可能产生过多数量的这种延迟操作以及这些可能足以妨碍集成电路2的适当的操作。由于此原因,如图1中所示出的,覆写信号被提供到跟踪输出设备8中。当被声明有效时该覆写信号的动作将会改变与由跟踪输出设备8接收的数据相关联的优先级。因此,如果该覆写信号被声明有效,则如下是可能的,不论其相关联的目标存储器地址,由所述跟踪输出设备8接收的所有数据将与第二优先级相关联,以便其将被接受而不会引起任何延迟,并且如果此时没有充足的处理(例如,存储)该数据的能力,则其将被丢弃。
如下也是可能的:通过比较数据缓冲器的空容量是否大于或等于N+F(P)来确定所述数据是否应被接受用于处理(例如存储在数据缓冲器中)的决定,其中N是以字节计的要被存储的数据的大小以及F(P)是数据的优先级的单调递增函数(当P是最高优先级时F(P)可以等于零)。
图4是示出了可以被映射到跟踪输出设备8的存储器地址的范围的表格。所述跟踪输出设备8具有与其相关联的基地址。图4示出了与该基地址的偏移量,其一起定义了与该跟踪输出设备8相关联的存储器地址的范围。如图所示,这些偏移量的第一集合提供了与第一优先级相关联的存储器地址。该第一优先级可以被认为保证写入到这些存储器地址的跟踪数据将从所述跟踪输出设备8被输出,即所述跟踪输出设备8将接受该数据或延迟总线直到其接受该数据以便该数据将最终从所述跟踪输出设备被输出到所述诊断设备4。
第二偏移量的范围定义了与跟踪输出设备8相关联的存储器地址的范围,其提供了第二优先级,以便写入到这些存储器地址的跟踪数据被认为具有第二优先级。该第二优先级可以被认为向所述集成电路2的操作提供恒定定时,因为具有该第二优先级的写入到跟踪输出设备8的跟踪数据基本上将总是以其不改变所述集成电路2的操作的整体定时的方式立即地被所述跟踪输出设备8接受。
可以看出:在与所述第一优先级和第二优先级相关联的这些存储器地址的范围内,存在地址的进一步细分,其被提供以将其他特性与写入到那些地址的跟踪数据相链接。在本示例中,取决于在被映射到所述跟踪输出设备8的存储器地址的范围内要写入数据的特定存储器地址,所接收的数据可以可选地被标记并可选地被打上时间戳。
图5是示意性地示出了使用本技术的另一实施例的图。在本实施例中,片上系统集成电路50被提供有耦合到协处理器54的处理器52。所述协处理器54用作跟踪输出设备并包括数据缓冲存储器56。所述协处理器54向诊断设备58发送跟踪数据。
在处理器52的指令流中协处理器指令(诸如ARM、MCR指令)当执行时用于向协处理器54发送跟踪数据。该协处理器指令的编码指示要被传送到所述协处理器54的数据是否具有第一优先级或第二优先级。如果要被传送的数据具有第一优先级而所述协处理器54在该时间点不能接受该数据,例如所述数据缓冲存储器56是满的,则所述协处理器54向所述处理器54发布延迟信号,指示要被传送的数据应该被继续向协处理器54声明有效,直到所述协处理器54能够接受该数据。指示要被传送的数据具有第二优先级的MCR指令的编码控制协处理器54立即接受该数据并且如果在该时刻数据缓冲存储器56中没有充足的存储空间,则简单地丢弃该数据。
协处理器指令的指令编码可以是ARM MCR指令,其中协处理器目标寄存器为“0”指示第一优先级,并且协处理器目标寄存器为“1”指示第二优先级。从处理器52被传送的跟踪数据可以被存储在处理器52的源寄存器中,诸如处理器52的通用寄存池中的通用寄存器。
在上文中已讨论了第一优先级和第二优先级。可以理解,本技术不限于只具有两个优先级的实施例。作为示例,提供三个优先级是可能的。第一优先级可以类似于之前讨论的第一优先级,其中所述数据可以被立即接受或者所述接受被延迟直到跟踪输出设备准备好处理该数据。第二优先级可以是数据总是被接受,但如果数据缓冲存储器中没有足够空间以存储该数据,则所述数据被丢弃。第三优先级可以是所述数据总是被接受,但被丢弃,除非数据缓冲存储器中存在多于阈值量的空的容量。因此,当数据缓冲存储器相对空时该第三优先级的跟踪数据将只被存储在数据缓冲存储器中,由此为第二优先级或第一优先级的较高优先级数据保留数据缓冲存储器中的空的空间。
在当数据源是DMA引擎时的情况下,所述跟踪输出设备能够与DMA引擎相交互以节流要发送到跟踪输出设备的数据。尽管通过延迟总线而延迟DMA传送是可能的,但如下是很可能的:由于与跟踪输出设备可以将数据发送出跟踪缓存器相比,DMA可以更快得多地将数据传送到跟踪输出设备,长的DMA传送(例如1000字节)会引起总线花费其大多数时间被延迟。如果跟踪输出设备当满时丢弃DMA数据,则所述跟踪输出设备可能会丢弃DMA发送给它的大多数数据。当DMA引擎正被用于发送大量的低优先级数据时这种效果是特别不期望的,因为长时间延迟总线以发送低优先级数据会严重影响程序性能和/或发送较高优先级数据的能力,并且丢弃大量数据有可能使剩余的数据无用。
为了解决该问题,提供了限制将数据发送至跟踪输出设备的速率的机制:
1)在DMA的数据源中可以出现速度限制机制。例如,如果DMA正从低速外设向缓冲存储器拷贝数据则应该没有问题。
2)可以向所述DMA引擎添加速度限制机制。例如,DMA引擎可以具有计数器(该计数器计数每个信道上的传送之间的周期)并且仅当所述计数器达到某个阈值时发送数据或使用“漏桶”机制(即,当数据到达时,其被存储在“桶”/缓存器中。如果所述“桶”是满的,则丢弃新到达的数据。以恒定速率从所述“桶”清空数据)
3)速度限制机制构造在上述技术上并具有从跟踪输出设备返回到所述DMA的反馈机制。
已知的DMA引擎提供了握手线,该握手线允许外设指示它们是否准备好接受交易(读取或写入)。所述跟踪输出设备可以使用这些握手线从DMA引擎请求更多数据,如下:
对于每个信道:
使P是信道的优先级。
使N是存储所述跟踪数据需要的字节数。
如果N+g(P)字节在跟踪输出设备的缓存器中是可获得的,并且在该信道上没有未完成的(outstanding)请求:
所述跟踪输出设备使用握手线请求该信道上的数据。
所述跟踪输出设备在该信道上设置标记,指示存在未完成的请求。
所述DMA引擎通过在该信道上发送数据而响应。
当数据到达一些信道上时,关于是否接受或丢弃该数据并清理用于该信道的未完成请求标记的判决被进行。如果延迟该数据,则不清理该标记直到该数据最终被接受(如果在缓存器中存在足够的空间则清理所述标记允许所述跟踪输出设备触发另一请求)。
潜伏期意味着所述跟踪输出设备可以现在具有用于容纳数据的空间,但在数据从DMA到达时,可能没有足够的空间。在该阶段,所述跟踪输出设备会延迟或丢弃该数据。为了降低该事件的可能性,用于使用握手线请求数据的阈值应该高于用于接受数据的阈值。满足G(P)>F(P)意味着如果使用握手线请求数据,则当所述数据被接收时其将立即被接受的概率(更)高。′G(P)′与′F(P)′之间的差别明显地将取决于从DMA请求数据和所请求的数据的到达之间的潜伏期,并也取决于可以同时从其他源接收的数据量。
所述潜伏期也意味着跟踪输出设备可以向DMA引擎进行多个请求。所述“未完成请求标记”避免了该情况的发生。
处理该潜伏期问题的另一方式在于从信道请求数据具有两个副作用:
1)在缓存器中为所请求的数据保留空间。
2)如果设置所述“未完成请求标记”,则无条件地接受数据(因为我们已经为其保留了空间)。这的变化在于优先级取决于“未完成请求标记”:未完成交易提高了信道的优先级。
所述跟踪输出设备从所述数据源请求数据的技术也可以单独地被使用,或者此处所述的其他技术而被使用。
尽管此处已参考附图详细地描述了本发明的示例性实施例,可以理解的是:本发明并不限于这些精确的实施例,并且本领域技术人员可以在其中进行各种改变和修改,而不脱离如由随附的权利要求所限定的本发明的范围和精神。

Claims (21)

1.一种用于处理数据的装置,包括:
数据源,所述数据源被配置为产生数据;以及
跟踪输出设备,所述跟踪输出设备被耦合到所述数据源并被配置为从所述数据源接收所述数据,并被配置为从所述装置输出跟踪数据;其中
所述数据源动态地选择将与所述数据相关联的多个优先级中的一个;
所述跟踪输出设备响应于所接收的具有第一优先级的数据执行如下操作之一:(i)如果所述跟踪输出设备准备好处理所述数据,则从所述数据源接受所述数据;以及(ii)如果所述跟踪输出设备没有准备好处理所述数据,则延迟从所述数据源接受所述数据直到所述跟踪输出设备准备好处理所述数据;以及
所述跟踪输出设备响应于所接收的具有第二优先级的数据以接受来自所述数据源的所述数据以及,如果所述跟踪输出设备不能处理所述数据,则丢弃所述数据。
2.根据权利要求1所述的装置,其特征在于,其中当所述数据从所述数据源被发送到所述跟踪输出设备时,不论所述跟踪输出设备是否准备好处理所述数据,与所述第一优先级相关联的数据从所述装置被输出。
3.根据权利要求1所述的装置,其特征在于,其中不论所述跟踪输出设备是否能处理所述数据,都从所述数据源接受与所述第二优先级相关联的数据,以便所述装置的处理操作的定时不依赖于所述跟踪输出设备是否能处理所述数据而被改变。
4.根据权利要求1所述的装置,其特征在于,其中所述跟踪输出设备包括数据缓冲存储器,所述数据缓冲存储器被配置为在从所述装置输出所述数据之前存储所述数据。
5.根据权利要求4所述的装置,其特征在于,其中:(i)当所述数据缓冲存储器具有足以存储所述数据的空容量时,所述跟踪输出设备准备好处理所述数据;以及(ii)当所述数据缓冲存储器不具有足以存储所述数据的空容量时,所述跟踪输出设备没有准备好处理所述数据。
6.根据权利要求4所述的装置,其特征在于,其中(i)当所述数据缓冲存储器具有大于或等于N+F(P)的空容量时,所述跟踪输出设备准备好处理所述数据;以及当所述数据缓冲存储器具有小于N+F(P)的空容量时,所述跟踪输出设备没有准备好处理所述数据,其中N是存储所述数据所需的字节数以及F(P)是P的函数,其中P是所述数据的优先级。
7.根据权利要求6所述的装置,其特征在于,其中F(P)是单调递增函数。
8.根据权利要求6所述的装置,其特征在于,其中当所述数据的所述优先级具有最高优先级时F(P)=0。
9.根据权利要求4所述的装置,其特征在于,其中当所述数据缓冲存储器不具有足以存储所述数据的空容量时,所述跟踪输出设备不能处理所述数据。
10.根据权利要求1所述的装置,其特征在于,其中所述数据源是总线主设备,所述跟踪输出设备是总线从设备,并且所述数据源和所述跟踪输出设备通过总线互连而被耦合。
11.根据权利要求10所述的装置,其特征在于,其中所述跟踪输出设备是被映射到多个存储地址的存储映射从设备。
12.根据权利要求11所述的装置,其特征在于,其中所述数据源将所述数据写入到被映射到所述跟踪输出设备的不同存储地址以将不同的优先级与所述数据相关联。
13.根据权利要求1所述的装置,其特征在于,其中所述数据源是主处理器,并且所述跟踪输出设备是被耦合到所述主处理器的协处理器。
14.根据权利要求13所述的装置,其特征在于,其中响应于所述主处理器的指令流内的协处理器指令,所述数据被从所述主处理器发送到所述协处理器。
15.根据权利要求14所述的装置,其特征在于,其中所述协处理器指令指定将与所述数据相关联的优先级。
16.根据权利要求1所述的装置,其特征在于,其中所述数据源执行控制与所述数据相关联的优先级的计算机程序指令。
17.根据权利要求1所述的装置,其特征在于,其中所述跟踪输出设备响应于覆写信号以改变与由所述跟踪输出设备接收的数据相关联的优先级。
18.根据权利要求1所述的装置,其特征在于,其中所述跟踪输出设备被配置为根据所述数据源的优先级请求来自所述数据源的数据。
19.根据权利要求18所述的装置,其特征在于,其中所述数据源的所述优先级与所述数据的所述优先级相同。
20.一种用于处理数据的装置,包括:
数据源部件,所述数据源部件用于产生数据;以及
跟踪输出部件,所述跟踪输出部件被耦合到所述数据源部件,用于从所述数据源部件接收所述数据,并且用于从所述装置输出跟踪数据;其中
所述数据源部件动态地选择将与所述数据相关联的多个优先级中的一个;
所述跟踪输出部件响应于所接收的具有第一优先级的数据执行如下操作之一:(i)如果所述跟踪输出部件准备好处理所述数据,则从所述数据源部件接受所述数据;以及(ii)如果所述跟踪输出部件没有准备好处理所述数据,则延迟从所述数据源部件接受所述数据直到所述跟踪输出设备准备好处理所述数据;以及
所述跟踪输出部件响应于所接收的具有第二优先级的数据以接受来自所述数据源部件的所述数据以及,如果所述跟踪输出部件不能处理所述数据,则丢弃所述数据。
21.一种处理数据的方法,包括如下步骤:
使用数据源产生数据;
使用被耦合到所述数据源的跟踪输出设备从所述数据源接收所述数据;以及
从所述装置输出跟踪数据;其中
所述数据源动态地选择将与所述数据相关联的多个优先级中的一个;
所述跟踪输出设备响应于所接收的具有第一优先级的数据执行如下操作之一:(i)如果所述跟踪输出设备准备好处理所述数据,则从所述数据源接受所述数据;以及(ii)如果所述跟踪输出设备没有准备好处理所述数据,则延迟从所述数据源接受所述数据直到所述跟踪输出设备准备好处理所述数据;以及
所述跟踪输出设备响应于所接收的具有第二优先级的数据以接受来自所述数据源的所述数据以及,如果所述跟踪输出设备不能处理所述数据,则丢弃所述数据。
CN201110043344.7A 2010-02-17 2011-02-17 用于处理数据的装置和处理数据的方法 Active CN102193856B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1002728.2A GB2477936B (en) 2010-02-17 2010-02-17 Trace data priority selection
GB1002728.2 2010-02-17

Publications (2)

Publication Number Publication Date
CN102193856A true CN102193856A (zh) 2011-09-21
CN102193856B CN102193856B (zh) 2016-01-13

Family

ID=42113983

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110043344.7A Active CN102193856B (zh) 2010-02-17 2011-02-17 用于处理数据的装置和处理数据的方法

Country Status (4)

Country Link
US (1) US8887001B2 (zh)
JP (1) JP5591729B2 (zh)
CN (1) CN102193856B (zh)
GB (1) GB2477936B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8719641B2 (en) * 2011-08-25 2014-05-06 International Business Machines Corporation Priority buffering for trace data in trace queue
US8838861B2 (en) * 2012-05-09 2014-09-16 Qualcomm Incorporated Methods and apparatuses for trace multicast across a bus structure, and related systems
GB2501333B (en) * 2012-07-09 2014-03-05 Ultrasoc Technologies Ltd Debug architecture
US9519564B1 (en) * 2012-09-28 2016-12-13 EMC IP Holding Company LLC Trace saving intervals
US9231595B2 (en) 2013-06-12 2016-01-05 International Business Machines Corporation Filtering event log entries
US9639447B2 (en) * 2013-11-05 2017-05-02 Texas Instruments Incorporated Trace data export to remote memory using remotely generated reads
US9971716B2 (en) * 2013-12-20 2018-05-15 Telefonaktiebolaget Lm Ericsson (Publ) Method, system and architecture for bus transaction logger
EP3179371A1 (en) * 2015-12-08 2017-06-14 Gilwa GmbH embedded systems Method and device for non-intrusively collecting function trace data
US11126537B2 (en) * 2019-05-02 2021-09-21 Microsoft Technology Licensing, Llc Coprocessor-based logging for time travel debugging
US20230267084A1 (en) * 2022-02-22 2023-08-24 Texas Instruments Incorporated Tracing for High Bandwidth Masters in SoC

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030229823A1 (en) * 2002-06-07 2003-12-11 Swaine Andrew B Generation of trace signals within a data processing apparatus
US20080016408A1 (en) * 2006-07-14 2008-01-17 Abernathy Christopher M System and Method for Streaming High Frequency Trace Data Off-Chip
US20080046674A1 (en) * 2004-06-14 2008-02-21 Eric Bernasconi Interface Device for Debugging and/or Tracing a Computer System Comprising One or Multiple Masters and One or Multiple Slaves Working Together
CN101438250A (zh) * 2006-03-09 2009-05-20 Arm有限公司 用于生成跟踪数据的设备、方法和计算机程序产品

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02220145A (ja) * 1989-02-22 1990-09-03 Nec Corp プログラムトレース方式
JPH06139105A (ja) * 1992-10-28 1994-05-20 Fuji Xerox Co Ltd ソフトウェアのトレース装置
JPH0883200A (ja) * 1994-09-14 1996-03-26 Toshiba Corp プログラマブルコントローラ
GB2413667B (en) * 2002-06-07 2006-09-27 Advanced Risc Mach Ltd Generation of trace signals within a data processing apparatus
GB2389931B (en) * 2002-06-07 2005-12-14 Advanced Risc Mach Ltd Generation of trace elements within a data processing apparatus
CN100442244C (zh) * 2004-05-12 2008-12-10 Nxp股份有限公司 具有跟踪协处理器的数据处理设备、系统和方法
JP2007141072A (ja) * 2005-11-21 2007-06-07 Sharp Corp トレース情報出力装置
US7653848B2 (en) * 2006-07-14 2010-01-26 International Business Machines Corporation Selectively engaging optional data reduction mechanisms for capturing trace data
US7558987B2 (en) * 2006-08-29 2009-07-07 Texas Instruments Incorporated Token-based trace system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030229823A1 (en) * 2002-06-07 2003-12-11 Swaine Andrew B Generation of trace signals within a data processing apparatus
US20080046674A1 (en) * 2004-06-14 2008-02-21 Eric Bernasconi Interface Device for Debugging and/or Tracing a Computer System Comprising One or Multiple Masters and One or Multiple Slaves Working Together
CN101438250A (zh) * 2006-03-09 2009-05-20 Arm有限公司 用于生成跟踪数据的设备、方法和计算机程序产品
US20080016408A1 (en) * 2006-07-14 2008-01-17 Abernathy Christopher M System and Method for Streaming High Frequency Trace Data Off-Chip

Also Published As

Publication number Publication date
JP5591729B2 (ja) 2014-09-17
US8887001B2 (en) 2014-11-11
JP2011170848A (ja) 2011-09-01
CN102193856B (zh) 2016-01-13
GB201002728D0 (en) 2010-04-07
GB2477936B (en) 2016-02-10
US20110202801A1 (en) 2011-08-18
GB2477936A (en) 2011-08-24

Similar Documents

Publication Publication Date Title
CN102193856A (zh) 跟踪数据优先级选择
EP3821348B1 (en) Streaming engine
TWI416405B (zh) 平行積體電路、物理處理單元和操作積體電路的方法
CN103810133B (zh) 用于管理对共享读缓冲器资源的访问的方法和装置
CN1554050B (zh) 具有自适应优先权控制器的数据处理器及其方法
CN108459877A (zh) 数据处理
US9703595B2 (en) Multi-core system with central transaction control
US11902149B2 (en) Sync network
EP1750202A1 (en) Combining packets for a packetized bus
US6868087B1 (en) Request queue manager in transfer controller with hub and ports
TWI506444B (zh) 改良mmio請求處置之處理器及方法
US8606976B2 (en) Data stream flow controller and computing system architecture comprising such a flow controller
US20070220361A1 (en) Method and apparatus for guaranteeing memory bandwidth for trace data
CN110134623A (zh) 可定制的多队列dma接口
CN110188059A (zh) 数据有效位统一配置的流控式fifo缓存结构及方法
EP1899827B1 (en) Device and method for executing a dma task
US20070073928A1 (en) High-speed input/output signaling mechanism using a polling CPU and cache coherency signaling
WO2005036313A2 (en) Queue register configuration structure
WO2014206229A1 (zh) 一种加速器以及数据处理方法
CN108958903B (zh) 嵌入式多核中央处理器任务调度方法与装置
CN111290983A (zh) Usb传输设备及传输方法
JP2009521054A (ja) ダイナミックキャッシュ管理装置及び方法
CN109992539B (zh) 双主机协同工作装置
US20070280224A1 (en) System and method for an output independent crossbar
EP2133798A1 (en) Inter-processor communication system, processor, inter-processor communication method, and communication method

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

Effective date of registration: 20180531

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.

TR01 Transfer of patent right