CN106021058A - 利用时间戳对事件进行日志记录 - Google Patents

利用时间戳对事件进行日志记录 Download PDF

Info

Publication number
CN106021058A
CN106021058A CN201610170236.9A CN201610170236A CN106021058A CN 106021058 A CN106021058 A CN 106021058A CN 201610170236 A CN201610170236 A CN 201610170236A CN 106021058 A CN106021058 A CN 106021058A
Authority
CN
China
Prior art keywords
timestamp
entry
event
storage device
timing
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
CN201610170236.9A
Other languages
English (en)
Other versions
CN106021058B (zh
Inventor
P·默林
G·戴维斯
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.)
Nordic Semiconductor ASA
Original Assignee
Imagination Technologies 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 Imagination Technologies Ltd filed Critical Imagination Technologies Ltd
Publication of CN106021058A publication Critical patent/CN106021058A/zh
Application granted granted Critical
Publication of CN106021058B publication Critical patent/CN106021058B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • G06F11/3086Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves the use of self describing data formats, i.e. metadata, markup languages, human readable formats
    • 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/3636Software debugging by tracing the execution of the program
    • 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/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging
    • 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
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/835Timestamp
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Library & Information Science (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明的各实施例总体上涉及利用时间戳对事件进行日志记录。具体地,一种日志记录单元被用于对针对计算机系统中的事件的条目进行日志记录。每个条目包括n位时间戳字段和净荷。净荷包括与事件有关的信息,并且时间戳字段包括针对事件的N位时间戳的n个最低有效位,其中N>n。如果时间戳的n个最低有效位与先前条目的时间戳的对应n位相比较已经卷绕,则对包括时间戳的其他位的计时条目进行日志记录。因此,可以确定针对事件的N位时间戳,但是仅仅时间戳的n个最低有效位被存储在针对事件的条目的时间戳字段中。因此,在不增加每个条目的时间戳字段中的位的数目(n)的情况下(通过具有更大的时间戳)更好地维持存储装置中的事件的时间流。

Description

利用时间戳对事件进行日志记录
技术领域
本发明的各实施例总体上涉及计算机领域,具体地涉及利用时间戳对事件进行日志记录。
背景技术
对与在计算机系统中发生的事件有关的信息进行日志记录常常是有用的。事件可以是与其有关的信息可能随后是有用的任何出现(例如,动作或过程)。另外,被日志记录的信息可以是可能有用的任何适当的类型。
跟踪是被用于在跟踪日志中记录与程序的运行有关的信息的日志记录的示例。信息可以例如由程序员用于调试目的。包含在跟踪日志中的信息还可以由系统管理员和/或技术支持人员用于诊断关于软件的问题。可以使得数据被存储在跟踪日志中的事件的一些示例是:由程序抛出的异常,从存储器读取数据,对变量的值进行改变等等。事件中的每个事件将在特定时间发生,并且跟踪日志存储针对每个事件的时间戳以指示事件的时间。因此,通过分析存储在跟踪日志中的数据,可以标识出计算机系统中的事件的时间流。
针对每个事件,条目可以被存储在存储装置中,即被存储在跟踪日志中。作为示例,存储装置可以被配置为存储针对事件的48位条目。图1示出了包括48位的条目100的示例,其中条目包括18位时间戳字段102、6位ID字段104和24位数据字段106。ID字段104和数据字段106可以共同地被称为条目的“净荷”,使得条目包括时间戳和净荷。当要被日志记录的事件发生时,可以(例如,基于计算机系统中的时钟)确定针对事件的时间戳。在该示例中,时间戳包括要被存储在针对事件的时间戳字段102中的18位。ID字段104包括引发事件发生的处理元件(例如,计算机系统内的CPU、信号处理单元或其他处理元件)的指示。数据字段106包括与发生的事件有关的数据,例如,以指示异常已经发生、以指示变量已经改变它的值或者与事件有关的任何其他适当的信息。
事件发生的频率对于不同计算机系统可以是不同的,并且可以随时间而变化。例如,数字信号处理器(DSP)可以运行,从而在数据信号被发送到计算机系统或从计算机系统接收数据信号时使得事件非常快速地发生,但是事件发生的频率可能在计算机系统停止发送或接收信号时减小。
计时时钟可以被用于确定针对要被日志记录在存储装置中的事件的时间戳。使用较快的计时时钟增大时间戳的分辨率,这允许在对事件的计时中标识出更大精度,但是使得时间戳更频繁地“卷绕”。例如,如果18位被用于针对事件的时间戳(如图1所示),则218个独特的时间戳是可用的,并且在218个计时器滴答之后,时间戳将循环回到第一个值。也就是说,利用n位时间戳和计时时钟频率f,在时间t的事件的时间戳将与在时间的事件的时间戳相同。在时间戳从它的最大值增加以返回到它的最小值时,时间戳“卷绕”,例如,在2n位时间戳从值2n-1返回到零时,2n位时间戳将卷绕。
作为示例,诸如DSP的信号处理单元将使用相对高频率的计时时钟用于事件日志记录,这是因为事件在信号处理单元中非常快速地发生,并且时间戳优选地具有足够的分辨率以指示事件在计算机系统中的相对计时。例如,计时时钟的频率可以是350MHz,这意味着利用218位时间戳,时间戳将每749μs(即)卷绕一次。这意味着时间戳可以在大于749μs的时间段内变得有歧义。也就是说,如果存在至少749μs的时间段,在该时间段期间没有事件被日志记录,则在跟踪日志中的事件的正确时间流丢失。注意,事件可能以不规则的间隔发生。一种保持在更大的时间段内时间戳无歧义,并且减小以这种方式丢失正确时间流的可能性的方式是增加被用于时间戳的位的数目。例如,如果24位被用于时间戳,其中计时时钟在350MHz,则时间戳将每47.9ms(即)卷绕一次。因此,将必须存在长得多的时间段(64倍之长),在该时间段期间没有使时间戳变得有歧义以及事件的正确时间流丢失的事件发生。
然而,常常存在对可以存储在跟踪日志中的数据量的严格约束,并且因此增大每个条目的大小以允许更多的时间戳位可能是不利的。这在事件以高频率发生的计算机系统中(例如,在包括信号处理单元的计算机系统中)的情况下尤其如此。因此增加在存储在跟踪日志中的每个条目中的位的数目可能不是有益的。因此,如果被用于时间戳的位的数目被增加,则可以被使用在条目的净荷中(即,ID字段和数据字段中)的位的数目将被减少。然而,这可能不是期望的,这是因为更少的净荷位将意味着针对事件的更少的信息可以被存储在条目中。
因此,当设置针对事件的条目的格式时,在条目内的时间戳位的数目与净荷位的数目之间存在权衡。
发明内容
本发明内容被提供用于以简化的形式介绍下面在具体实施方式中进一步描述的一系列概念。本发明内容不旨在确定要求保护的主体的关键特征或必要特征,也不旨在用于限制要求保护的主体的范围。
提供了一种用于通过使得条目被存储在存储装置中来对事件进行日志记录的日志记录单元,其中所述条目中的每个条目包括n位时间戳字段和净荷,所述日志记录单元包括控制逻辑,所述控制逻辑被配置为:确定针对要被日志记录的事件的时间戳,其中所确定的时间戳包括N位,其中N>n;在所确定的时间戳的N-n个最高有效位中的一个或多个最高有效位与针对先前事件的时间戳的N-n个最高有效位中的对应一个或多个最高有效位不同的情况下,使得包括所确定的时间戳的k位的集合的计时条目被存储在所述存储装置中,其中针对所述先前事件的先前条目被存储在所述存储装置中,所述k位是比所确定的时间戳的n个最低有效位更多的所确定的时间戳的有效位;并且使得针对所述事件的条目被存储在所述存储装置中,其中所确定的时间戳的所述n个最低有效位被包括在针对所述事件的所述条目的所述时间戳字段中。例如,所述k位可以是除了所确定的时间戳的n个最低有效位以外的所确定的时间戳的下k个最低有效位。
提供了一种通过将条目存储在存储装置中来对事件进行日志记录的方法,所述条目中的每个条目包括n位时间戳字段和净荷,所述方法包括:确定针对要被日志记录的事件的时间戳,其中所确定的时间戳包括N位,其中N>n;在所确定的时间戳的N-n个最高有效位中的一个或多个最高有效位与针对先前事件的时间戳的N-n个最高有效位中的对应一个或多个最高有效位不同的情况下,将计时条目存储在所述存储装置中,其中针对所述先前事件的先前条目被存储在所述存储装置中,所述计时条目包括所确定的时间戳的k位的集合,所述k位是比所确定的时间戳的n个最低有效位更多的所确定的时间戳的有效位;并且将针对所述事件的条目存储在所述存储装置中,其中所确定的时间戳的n个最低有效位被包括在针对所述事件的所述条目的所述时间戳字段中。
提供了一种从被配置为存储条目的存储装置检索与特定事件有关的信息的方法,所述条目中的每个条目包括n位时间戳字段和净荷,并且其中所述特定事件与包括N位的时间戳相关联,其中N>n,所述方法包括:从所述存储装置读取针对所述特定事件的特定条目,其中所述时间戳的n个最低有效位被包括在所述特定条目的所述时间戳字段中;标识所述存储装置中在所述特定条目前面的计时条目,其中所标识的计时条目包括针对所述特定条目的所述时间戳的k位的集合,所述k位是比所述时间戳的n个最低有效位更多的所述时间戳的有效位;并且将来自所标识的计时条目的所述时间戳的所述k位与来自所述特定条目的所述时间戳字段的所述时间戳的所述n位连接在一起以用于在构建针对所述特定事件的所述时间戳中使用。
本文中描述的日志记录单元可以以硬件被实现在集成电路上。可以提供一种计算机可读代码,当所述代码运行在计算机上时所述计算机可读代码适于执行本文中描述的方法中的任何的步骤。另外,可以提供一种计算机可读代码,所述计算机可读代码用于生成根据本文中描述的示例中的任何的日志记录单元。所述计算机可读代码可以被编码在计算机可读存储介质上。
本领域技术人员容易理解,以上特征可以在适当的情况下被组合,并且可以与本文中描述的示例的方面中的任何方面进行组合。
附图说明
现在将参考附图详细描述示例,在附图中:
图1示出了在现有技术系统中针对要被日志记录的事件的条目的格式;
图2是包括日志记录单元的计算机系统的示意图;
图3示出了图示在第一示例中的对事件进行日志记录的方法的流程图;
图4示出了在第一示例中的时间戳的格式;
图5示出了日志记录单元的针对要被日志记录的事件的条目的格式;
图6示出了在第一示例中被存储在日志记录存储装置中的多个条目;
图7示出了图示从第一示例中的日志记录存储装置检索与特定事件有关的信息的方法的流程图;
图8示出了在第二示例中的时间戳的格式;
图9示出了图示在第二示例中的对事件进行日志记录的方法的流程图;
图10示出了在第二示例中被存储在日志记录存储装置中的多个条目;
图11示出了图示从第二示例中的日志记录存储装置检索与特定事件有关的信息的方法的流程图;以及
图12示出了用于生成实现处理系统的集成电路的集成电路制造系统。
附图图示了各种示例。技术人员将认识到附图中的图示的元件边界(例如,框、框的组或者其他形状)表示边界的一个示例。可能的是,在一些示例中,一个元件可以被设计为多个元件或者多个元件可以被设计为一个元件。在合适的情况下,在整个附图中使用共同的附图标记来指示相似的特征。
具体实施方式
现在将仅通过举例的方式来描述实施例。
在本文中描述的示例中,针对事件确定的时间戳中的位的数目可以被增加,由此减少时间戳卷绕的频率。这意味着时间戳在更大长度的时间内是没有歧义的,并且存储在日志记录单元中的事件的时间流较不频繁地丢失。这同时在同时降低包括在针对各自的事件的各个条目中的时间戳位的数目而不增加每个条目的位的数目的情况下来实现。因此,可以改善或至少维持以上在背景技术部分提到的权衡的每个方面。
这可能看起来是反直观的,但是这通过认识到被日志记录的事件的序列将具有相似的时间戳来实现。具体地,快速连续地发生的事件的序列的最高有效位将彼此相同或彼此非常相似。如果事件的序列的时间戳的最高有效位彼此相同,则这些位不需要针对事件的序列的条目中的每个重复地被存储。相反,时间戳的位的最低有效子段(时间戳的n个最低有效位)可以被存储在针对事件的条目的时间戳字段中。如果时间戳的n个最低有效位与在跟踪日志中的先前条目的时间戳的对应n位相比较已经卷绕(即从值2n-1改变为0),则包括时间戳的其他位(例如,最高有效位)的额外条目被日志记录。以这种方式,可以确定针对事件的N位时间戳,但是仅仅时间戳的n个最低有效位被存储在针对事件的条目中,其中N>n。
图2示出了包括本文中描述的示例中的可以被用于对事件进行日志记录的日志记录单元202的计算机系统。可以为跟踪日志记录单元的日志记录单元202包括控制逻辑204和存储装置206。控制逻辑204可以以硬件、软件、固件或它们的任何组合来实施。存储装置206可以是存储器并且被配置为存储针对事件的条目,例如针对已经在计算机系统中发生的事件的条目。在该示例中,存储装置206被包括在日志记录单元202中,然而在其他示例中,针对事件的条目被日志记录在其中的存储装置可以在日志记录单元202的外部,并且可以例如被实施在系统存储器214中的随机存取存储器(RAM)中。计算机系统还包括在不同示例中可以不同的其他单元,但是在图2中示出的示例中,计算机系统包括中央处理单元(CPU)208、信号处理单元210(例如,DSP)、图形处理单元(GPU)212、存储器214和其他设备216(例如,显示器、摄像头、扬声器、等等),取决于计算机系统被设计的用途。计算机系统还包括可以由日志记录单元202用于确定时间戳的计时时钟218。注意,由日志记录单元202用于确定时间戳的计时时钟218可以与由计算机系统使用的系统时钟不同(或在一些示例中相同)以调节由计算机系统的部件执行的操作的计时。计算机系统的部件可以经由通信总线220彼此通信。例如,计算机系统可以被实施在诸如移动电话、平板电脑、笔记本电脑、电视之类的设备或任何其他适当的设备中。在示例中,信号处理单元210可以被配置为处理已经在设备处接收到的或要从设备被发送的信号(例如,电视信号,或者通过适当的通信链路,例如,经由蜂窝电话网络和/或经由互联网的通信信号)。通常,这样的信号处理以非常高的速率来执行,由此创建以非常高的频率被日志记录的事件。计算机系统中的其他部件(例如,CPU 208、GPU 212、存储器214和其他设备216)还可以引发要由日志记录单元202日志记录的事件发生。日志记录单元202可以维持针对来自不同部件的事件的单独的日志记录,或者来自不同部件的事件可以全部被存储在相同的日志记录中。图2中示出的计算机系统可以是具有专门功能(例如,用于实时地接收和处理广播信号)的嵌入式系统,并且因此嵌入式系统可以包括图2中示出的部件的子集(例如,用于信号处理的嵌入式系统可以不包括GPU)。
参考图3中示出的流程图来描述第一示例中的日志记录单元202的操作。事件发生在图2中示出的计算机系统的处理单元中,并且如果那些事件要被日志记录,则在步骤S302中,日志记录单元202接收要被日志记录的事件的指示。具体地,在控制逻辑204处接收事件的指示。日志记录单元202可以监测计算机系统中的其他处理单元的操作以检测要被日志记录的事件的发生。备选地或附加地,计算机系统中的处理单元可以将事件的指示发送到日志记录单元202。在两种实施方式中,控制逻辑204接收在步骤S302中要被日志记录的事件的指示。
在步骤S304中,控制逻辑204确定针对要被日志记录的事件的N位时间戳。使用计时时钟218来确定时间戳。图4示出了其中时间戳400包括36位(即,N=36)的示例。时间戳400包括:(i)上段402,其包括k个最高有效位,以及(ii)下段404,其包括n个最低有效位。在图4中示出的示例中,k=24并且n=12,其中N=k+n。时间戳的n个最低有效位要被包括在针对被日志记录在存储装置206中的事件的条目的时间戳中。
图5示出了要被存储在存储装置206中的针对事件的条目500的格式。条目500包括n位时间戳字段502和净荷。在该示例中,n=12。净荷包括ID字段504和数据字段506。在该示例中,ID字段504包括12位并且数据字段包括k位,其中k=24。ID字段504包括引发事件发生的处理单元的指示(例如,图2中示出的计算机系统内的CPU208或信号处理单元210或其他处理单元)。数据字段506包括与发生的事件有关的数据,例如,以指示异常已经发生,或者以指示变量已经改变了它的值等等。
在步骤S306中,控制逻辑204确定是否存在已经存储在存储装置206中的其他条目。如果当前条目将是存储在存储装置中的第一条目,则方法传递到步骤S310,否则方法传递到步骤S308。这是因为针对要被包括在存储装置206中的第一条目没有先前条目,因此时间戳的全部N位将被存储在存储装置206中。
在步骤S308中,控制逻辑204确定时间戳400的n个最低有效位404与存储在存储装置中的先前条目的时间戳的对应n位相比较已经卷绕。确定时间戳的下段(即,时间戳的n个最低有效位)是否已经卷绕等价于确定时间戳的上段(即,时间戳的N-n个最高有效位)是否已经改变。换言之,当时间戳的n个最低有效位已经卷绕时,则时间戳的N-n个最高有效位中的一个或多个最高有效位已经改变。因此,可以认为是在步骤S308中,控制逻辑204确定时间戳400的N-n个最高有效位402中的一个或多个最高有效位是否与针对先前事件的时间戳的N-n个最高有效位中的对应一个或多个最高有效位是否不同,其中针对先前事件的先前条目被存储在存储装置中。如果步骤S308中确定时间戳的n个最低有效位已经卷绕,则方法传递到步骤S310。如果在步骤S308中确定时间戳的n个最低有效位尚未卷绕,则方法从步骤S308传递到步骤S312。
在步骤S310中,控制逻辑204使计时条目被存储在存储装置206中。计时条目包括时间戳400的k位402的集合。时间戳400的k位402被包括在计时条目的净荷中,例如,数据字段506中。时间戳400的n个最低有效位404被包括在计时条目的时间戳字段502中。控制逻辑204将计时条目的ID字段504设置为指示计时条目的预定值(例如,零值)。通过这种方式,可以通过标识在ID字段中具有预定值的条目来标识存储装置206中的计时条目。因此,这提供用于标识在存储装置206中的计时条目的简单方式。
在步骤S312中,控制逻辑204使针对事件的条目被存储在存储装置206中。时间戳400的n个最低有效位被包括在针对事件的条目500的时间戳字段502中。与事件有关的数据被包括在针对事件的条目500的净荷中。也就是说,针对事件的条目的ID字段504包括使事件发生的处理单元(例如,信号处理单元210)的指示。数据字段506包括与发生的事件有关的数据。
注意在本文中描述的示例中,针对事件的条目被日志记录在其中的存储装置206是日志记录单元202的部分。然而,在其他示例中,针对事件的条目被日志记录在其中的存储装置可以在日志记录单元202的外部,并且可以例如为存储器214的部分,并且可以被实施在通用RAM中。在这些其他示例中,控制逻辑204执行与本文中详细描述的示例相同的过程以使得针对要被日志记录的事件的条目被存储在存储装置中(例如,存储器214中)。
在一些备选示例中,日志记录单元202可以使用内部存储装置206来临时存储条目,因为对于日志记录单元而言在存储装置206中存储数据可以比通过总线220发送数据以用于存储在外部存储器中(例如,存储器214中)更快。存储在存储装置206中的条目可以在适当的时间,例如,定期地(即,以规则间隔),或者当存储在存储装置206中的数据量超过阈值时,或者当总线220上的数据流量低于阈值时,被复制到外部日志存储装置。
针对发生在计算机系统中的多个事件中的每个执行图3中示出的方法。如果在步骤S308中控制逻辑204确定时间戳的N-n个最高有效位与针对先前事件的时间戳的对应N-n个最高有效位相同,则计时条目不需要被存储(即,不执行步骤S310),其中针对先前事件的先前条目被存储在存储装置中。“先前事件”是针对其的条目被存储在存储装置206中的最近事件。条目被存储在存储装置206中的顺序被保留,使得最近存储的条目(并且因此最近事件)易于在存储装置206中标识出。针对事件的条目包括时间戳字段中的时间戳的n个最低有效位。如果时间戳的n个最低有效位404尚未卷绕,则这意味着时间戳的k个最高有效位402与先前条目的时间戳的对应k位相同。因此时间戳的k个最高有效位不需要再次被存储在存储装置206中,即不需要计时条目。
在步骤S308中,为了确定时间戳的n个最低有效位是否已经卷绕,控制逻辑204可以标识存储装置206中的最近存储的计时条目并确定被包括在计时条目的净荷中的时间戳的k位。这k位将在最近存储的条目不是计时条目的情况下与针对最近存储的条目的时间戳的k位相同。备选地,日志记录单元202可以包括被用于指示最近存储的计时条目的时间戳的k位的存储器的专门段,由此无论何时新的计时条目被存储在存储装置206中,都利用针对新的计时条目的时间戳的k位来替换先前存储在专门段中的k位。通过这种方式,存储器的专门段将包括最近存储的计时条目的k位的并且易于控制逻辑204在步骤S308中检索这k位以确定先前条目的时间戳的k位。然而,这将使用日志记录单元202中的k位的存储空间。当控制逻辑204已经确定与先前条目有关的事件的时间戳的k位时,将这些位与在步骤S304中确定的时间戳的k位进行比较,并且如果它们相同,则所确定的时间戳的n个最低有效位尚未卷绕,但是如果它们不同,则所确定的时间戳的n个最低有效位已经卷绕。
图6示出了存储在存储装置206中的针对五个事件的序列(事件0到事件4)的多个条目(602到604)的示例。在步骤S310中,响应于第一事件(事件0)发生,计时条目602被存储在存储装置206中。针对事件0的时间戳(TS0)的n个最低有效位被存储在计时条目602的时间戳字段中,并且针对事件0的时间戳的k个最高有效位被存储在计时条目602的数据字段中。计时条目602的ID字段包括指示条目602是计时条目的预定值IDt。之后,在步骤S312中,针对事件0的条目604被存储在存储装置206中。针对事件0的时间戳(TS0)的n个最低有效位被存储在条目604的时间戳字段中,事件0的源的标识符(ID0)被存储在条目604的ID字段中,并且与事件0有关的数据被存储在条目604的数据字段中。
针对第二事件(事件1),时间戳的n个最低有效位与事件0的时间戳相比较尚未卷绕。因此,响应于事件1发生,计时条目不被存储在存储装置206中。在步骤S312中,针对事件1的条目606被存储在存储装置206中。针对事件1的时间戳(TS1)的n个最低有效位被存储在条目606的时间戳字段中,事件1的源的标识符(ID1)被存储在条目606的ID字段中,并且与事件1有关的数据被存储在条目606的数据字段中。
针对第三事件(事件2),时间戳的n个最低有效位与事件1的时间戳相比较尚未卷绕。因此,响应于事件2发生,计时条目不被存储在存储装置206中。在步骤S312中,针对事件2的条目608被存储在存储装置206中。针对事件2的时间戳(TS2)的n个最低有效位被存储在条目608的时间戳字段中,事件2的源的标识符(ID2)被存储在条目608的ID字段中,并且与事件2有关的数据被存储在条目608的数据字段中。
针对第四事件(事件3),时间戳的n个最低有效位与事件2的时间戳相比较尚未卷绕。因此,响应于事件3发生,计时条目不被存储在存储装置206中。在步骤S312中,针对事件3的条目610被存储在存储装置206中。针对事件3的时间戳(TS3)的n个最低有效位被存储在条目610的时间戳字段中,事件3的源的标识符(ID3)被存储在条目610的ID字段中,并且与事件3有关的数据被存储在条目610的数据字段中。
针对第五事件(事件4),时间戳的n个最低有效位与事件3的时间戳相比较已经卷绕。因此,在步骤S310中,计时条目612被存储在存储装置206中。针对事件4的时间戳(TS4)的n个最低有效位被存储在条目612的时间戳字段中,并且针对事件4的时间戳的k个最高有效位被存储在条目612的数据字段中。计时条目612的ID字段包括指示条目612是计时条目的预定值IDt。之后,在步骤S312中,针对事件4的时间戳(TS4)的n个最低有效位被存储在条目614的时间戳字段中,事件4的源的标识符(ID4)被存储在条目614的ID字段中,并且与事件4有关的数据被存储在条目614的数据字段中。
从图6可以认识到,针对事件1、事件2和事件3的时间戳的最高有效k位不需要被存储在存储装置206中,因为它们与存储在计时条目602的数据字段中的针对事件0的时间戳的最高有效k位相同。
图7示出了从存储装置206检索与特定事件有关的信息的方法的流程图。在下面描述的示例中,日志记录单元202被用于从存储装置206检索日志记录数据。具体地,在下面描述的示例中,从存储装置206检索与事件2有关的信息。然而,如以上所描述的,在一些其他示例中,针对被日志记录的事件的条目可以被存储在日志记录单元202外部的日志存储装置中(例如,存储器214中的RAM中)。在这些其他示例中,除了日志记录单元202以外的单元可以被用于从日志存储装置检索日志记录数据,但是日志记录数据的检索的原理与在下面描述的其中是日志记录单元202从存储装置206检索日志记录数据的示例中相同。
在步骤S702中,控制逻辑204从存储装置206读取针对特定事件的特定条目(例如,针对事件2的条目608)。如以上所描述的,与事件2有关的数据被包括在条目608的净荷中。还如以上所描述的,针对事件2的时间戳(TS2)的n个最低有效位被存储在条目608的时间戳字段中,因此通过读取条目608,可以确定针对事件的时间戳的这n位。然而,如以上所描述的,针对事件2的完整时间戳包括N位,其中N>n,因此存在针对事件2的时间戳的未包括在条目608中的一些位。
在步骤S704中,控制逻辑标识在存储装置中在特定条目之前的计时条目。这可以通过标识存储装置206中在它的ID字段中具有预定值(IDt)的条目来完成。所标识的计时条目是在特定条目之前最近存储在存储装置206中的计时条目。因此,在该示例中,在条目608是针对其的信息被检索的事件的条目的情况下,计时条目602被标识为在条目608之前最近存储在存储装置206中的计时条目。计时条目602在它的数据字段中具有时间戳的k个最高有效位。
在步骤S706中,控制逻辑将来自所标识的计时条目602的时间戳的k位与来自条目608的时间戳字段的时间戳的n位连接在一起以由此构建针对事件2的时间戳。在该示例中,k=N-n,使得将k位与n位连接的结果是针对事件的N位时间戳。以这种方式,针对事件2的N位时间戳即使在时间戳的位中的仅仅n个被包括在针对事件2的条目608中的情况下也被确定。
在以上描述的示例中,N位时间戳被划分成仅仅两段:如图4中示出的,最高有效k位402和最低有效n位404,使得k=N-n。k位可以被包括在计时条目的数据字段中。然而,在其他示例中,N位时间戳可以被划分成超过两段。一般地,时间戳可以是任意长度并且其可以被划分成任意数目的端。图8示出了时间戳800的示例,时间戳800包括56位(即N=56),并且时间戳800被划分成三段:最高有效m位802,下一最高有效k位804,以及最低有效n位806。因此,在该示例中k<N-n。具体地,在该示例中N=m+k+n。
类似于以上参考图3至图7给出的示例,时间戳的k位是比时间戳的n个最低有效位更多的时间戳的有效位。具体地,时间戳的k位是除了时间戳的n个最低有效位以外的时间戳的k个下一最低有效位。然而,在以上参考图8至图11描述的示例中,时间戳包括另外的m位802,另外的m位802是比时间戳800的k位804更多的有效位。在图8中示出的示例中,时间戳800被划分成三段,因为它包括太多位移将除了n个最低有效位以外的位中的全部放置到计时条目的数据字段中。
参考图9中示出的流程图来描述第二示例中的日志记录单元202的操作。事件发生在图2中示出的计算机系统的处理单元中,并且如果那些事件要被日志记录,则在步骤S902中,日志记录单元202的控制逻辑204接收要被日志记录的事件的指示,如以上关于步骤S302所描述的。
在步骤S904中,控制逻辑204确定针对要被日志记录的事件的N位时间戳。使用计时时钟218来确定时间戳。在该示例中,时间戳包括如图8中示出的56位。时间戳800的n个最低有效位806要被包括在针对被日志记录在存储装置206中的事件的条目的时间戳字段中。
被存储在存储装置206中的条目的格式与在以上描述的示例中相同并且被示出在图5中。因此,条目包括n位时间戳字段502和包ID字段和数据字段的净荷,例如,其中n=12,并且其中ID字段包括12位并且数据字段包括k位,其中k=24。在该示例中,存在两种类型的计时条目:(i)第一级计时条目,其在它的净荷中包括k位的时间戳,以及(ii)第二级计时条目,其在它的净荷中包括m位的时间戳。
在步骤S906中,控制逻辑204确定是否存在已经存储在存储装置206中的其他条目。如果当前条目将是存储在存储装置中的第一条目,则方法传递到步骤S912,否则方法传递到步骤S908。这是因为针对要被包括在存储装置206中的第一条目没有先前条目,因此时间戳的全部N位将被存储在存储装置206中。
在步骤S908中,控制逻辑204确定时间戳800的n个最低有效位806与存储在存储装置中的先前条目的时间戳的对应n位相比较已经卷绕。如以上所描述的,确定时间戳的下段(即,时间戳的n个最低有效位)是否已经卷绕等价于确定时间戳的上段(即时间戳的N-n个最高有效位)是否已经改变。因此,可以认为是在步骤S908中,控制逻辑204确定时间戳800的N-n个最高有效位(802和804)中的一个或多个最高有效位是否与针对先前事件的时间戳的N-n个最高有效位中的对应一个或多个最高有效位是否不同,针对先前事件的先前条目被存储在存储装置中。如果步骤S908中确定时间戳的n个最低有效位已经卷绕,则方法传递到步骤S910。如果在步骤S308中确定时间戳的n个最低有效位尚未卷绕,则方法从步骤S908传递到步骤S916。关于时间戳的n个最低有效位是否已经卷绕的确定可以如以上所描述的例如通过确定与存储装置中的先前条目有关的事件的时间戳的k位(例如,通过标识存储装置206中的先前第一级计时条目或从日志记录单元202的存储器的专门段检索这个)来执行。
在步骤S910中,控制逻辑204确定时间戳800的k位804与针对其的先前条目被存储在存储装置206中的事件的时间戳的对应k位相比较已经卷绕。确定时间戳的k位是否已经卷绕等价于确定时间戳的N-k-n个最高有效位是否已经改变。因此,在步骤S910中可以认为控制逻辑204确定时间戳800的N-k-n个最高有效位802中的一个或多个最高有效位与针对其的先前条目被存储在存储装置中的先前事件的时间戳的N-k-n个最高有效位中的对应一个或多个最高有效位是否不同。
在步骤S910中,为了确定时间戳的k位是否已经卷绕,控制逻辑204可以标识存储装置206中的最近存储的第二级计时条目并确定被包括在第二级计时条目的净荷中的时间戳的m位。这m位将在最近存储的条目不是第二级计时条目的情况下与针对最近存储的条目的时间戳的m位相同。备选地,日志记录单元202可以包括被用于指示最近存储的计时条目的时间戳的m位的存储器的专门段,由此无论何时新的第二级计时条目被存储在存储装置206中,都利用针对新的第二级计时条目的时间戳的m位来替换先前存储在存储器的专门段中的m位。通过这种方式,存储器的专门段将包括最近存储的第二级计时条目的m位,并且易于控制逻辑204在步骤S910中检索这m位以确定先前条目的时间戳的m位。然而,这将使用日志记录单元202中的m位的存储空间。当控制逻辑204已经确定与先前条目有关的事件的时间戳的m位时,将这些位与在步骤S904中确定的时间戳的m位进行比较,并且如果它们相同,则所确定的时间戳的k位尚未卷绕,但是如果它们不同,则所确定的时间戳的k位已经卷绕。
如果在步骤S910中确定时间戳的k位已经卷绕,则方法传递到步骤S912。如果在步骤S910中确定时间戳的k位尚未卷绕,则方法从步骤S910传递到步骤S914。
在步骤S912中,控制逻辑204使第二级计时条目被存储在存储装置206中。第二级计时条目包括时间戳800的m位802的集合。时间戳800的m位802被包括在第二级计时条目的净荷中,例如,数据字段506中。时间戳800的n个最低有效位806被包括在第二级计时条目的时间戳字段502中。控制逻辑204将第二级计时条目的ID字段504设置为指示第二级计时条目的预定值(例如值一)。以这种方式,可以通过标识在ID字段中具有第二预定值的条目来标识存储装置206中的第二级计时条目。因此,这提供用于标识在存储装置206中的第二级计时条目的简单方式。
在步骤S912中,控制逻辑204使第一级计时条目被存储在存储装置206中。第一级计时条目包括时间戳800的k位804的集合。时间戳800的k位804被包括在第一级计时条目的净荷中,例如数据字段506中。时间戳800的n个最低有效位806被包括在第一级计时条目的时间戳字段502中。控制逻辑204将第一级计时条目的ID字段504设置为指示第一级计时条目的预定值(例如,零值)。以这种方式,可以通过标识在ID字段中具有第一预定值的条目来标识存储装置206中的第一级计时条目。因此,这提供用于标识在存储装置206中的第一级计时条目的简单方式。
在步骤S916中,控制逻辑204使针对事件的条目被存储在存储装置206中。时间戳800的n个最低有效位806被包括在针对事件的条目500的时间戳字段502中。与事件有关的数据被包括在针对事件的条目500的净荷中。也就是说,针对事件的条目的ID字段504包括引发事件发生的处理单元(例如,信号处理单元210)的指示。数据字段506包括与发生的事件有关的数据。
针对发生在计算机系统中的多个事件中的每个执行图9中示出的方法。如果在步骤S908中控制逻辑204确定时间戳的n个最低有效位与针对先前事件的时间戳的对应n个最低有效位相比较尚未卷绕,则计时条目不需要被存储(即不执行步骤S910、步骤S912和步骤S914),其中针对先前事件的先前条目被存储在存储装置中。“先前条目”是最近存储在存储装置206中的条目。条目被存储在存储装置206中的顺序被保留,使得最近存储的条目易于在存储装置206中标识出。如果时间戳的n个最低有效位404尚未卷绕,则这意味着时间戳的(m+k)个最高有效位802和804与先前条目的时间戳的对应(m+k)位相同。因此时间戳的(m+k)个最高有效位不需要再次被存储在存储装置206中,即,不需要计时条目。
图10示出了存储在存储装置206中的针对六个事件的序列(事件0到事件5)的多个条目(1002到1022)的示例。在步骤S912中,响应于第一事件(事件0)发生,计时条目1002被存储在存储装置206中。针对事件0的时间戳(TS0)的n个最低有效位被存储在第二级计时条目1002的时间戳字段中,并且针对事件0的时间戳的m个最高有效位被存储在第二级计时条目1002的数据字段中。第二级计时条目1002的ID字段包括指示条目1002是第二级计时条目的预定值IDt2。之后,在步骤S914中,第一级计时条目1004被存储在存储装置206中。针对事件0的时间戳(TS0)的n个最低有效位被存储在第一级计时条目1004的时间戳字段中,并且针对事件0的时间戳的k位被存储在第一级计时条目1004的数据字段中。第一级计时条目1004的ID字段包括指示条目1004是第一级计时条目的预定值IDt1。之后,在步骤S916中,条目1006被存储在存储装置206中。针对事件0的时间戳(TS0)的n个最低有效位被存储在条目1006的时间戳字段中,事件0的源的标识符(ID0)被存储在条目1006的ID字段中,并且与事件0有关的数据被存储在条目1006的数据字段中。
针对第二事件和第三事件(事件1和事件2),它们的时间戳的n个最低有效位与事件0的时间戳相比较尚未卷绕。因此,响应于这些事件发生,计时条目不被存储在存储装置206中。相反,针对事件1的条目1008被存储在存储装置206中。针对事件1的时间戳(TS1)的n个最低有效位被存储在条目1008的时间戳字段中,事件1的源的标识符(ID1)被存储在条目1008的ID字段中,并且与事件1有关的数据被存储在条目1008的数据字段中。针对事件2的条目1010被存储在存储装置206中。针对事件2的时间戳(TS2)的n个最低有效位被存储在条目1010的时间戳字段中,事件2的源的标识符(ID2)被存储在条目1010的ID字段中,并且与事件2有关的数据被存储在条目1010的数据字段中。
针对第四(事件3),时间戳的n个最低有效位与事件2的时间戳相比较已经卷绕,但是时间戳的k位与事件2的时间戳相比较尚未卷绕。因此,在步骤S914中,第一计时条目1012被存储在存储装置206中。针对事件3的时间戳(TS3)的n个最低有效位被存储在计时条目1012的时间戳字段中,针对事件3的时间戳的k位被存储在第一级计时条目1012的数据字段中。第一级计时条目1012的ID字段包括指示条目1012是第一级计时条目的预定值IDt1。针对事件3的时间戳(TS3)的n个最低有效位被存储在条目1014的时间戳字段中,事件3的源的标识符(ID3)被存储在计时条目1014的ID字段中,并且与事件3有关的数据被存储在条目1014的数据字段中。
针对第五事件(事件4),时间戳的n个最低有效位与事件3的时间戳相比较尚未卷绕。因此,响应于事件4发生,计时条目不被存储在存储装置206中。在步骤S916中,针对事件4的条目1016被存储在存储装置206中。针对事件4的时间戳(TS4)的n个最低有效位被存储在条目1016的时间戳字段中,事件4的源的标识符(ID4)被存储在条目1016的ID字段中,并且与事件4有关的数据被存储在条目1016的数据字段中。
针对第五事件(事件5),时间戳的n个最低有效位和时间戳的k位与事件4的时间戳相比较已经卷绕。因此,在步骤S912中,第二级计时条目1018被存储在存储装置206中。针对事件5的时间戳(TS5)的n个最低有效位被存储在第二级计时条目1018的时间戳字段中,并且针对事件5的m个最高有效位被存储在第二级计时条目1018的数据字段中。第二级计时条目1018的ID字段包括指示条目1018是第二级计时条目的预定值IDt2。之后,在步骤S914,第一级计时条目1020被存储在存储装置206中。针对事件5的时间戳(TS5)的n个最低有效位被存储在第一级计时条目1020的时间戳字段中,并且针对事件5的时间戳的k位被存储在第一级计时条目1020的数据字段中。第一级计时条目1020的ID字段包括指示条目1020是第一级计时条目的预定值IDt1。之后在步骤S916中,针对事件5的条目1022被存储在存储装置206中。针对事件5的时间戳(TS5)的n个最低有效位被存储在条目1022的时间戳字段中,事件5的源的标识符(ID5)被存储在条目1022的ID字段中,并且与事件5有关的数据被存储在条目1022的数据字段中。
从图10可以认识到,针对事件1、事件2、事件3和事件4的时间戳的m个最高有效位不需要被存储在存储装置206中,因为它们与存储在第二级计时条目1002的数据字段中的针对事件0的时间戳的最高有效m位相同。另外,针对事件1、事件2和事件4的时间戳的k位不需要被存储在存储装置206中,因为它们与存储在第一级计时条目1004的数据字段中的针对事件0的时间戳的k位或者存储在第一级计时条目1012的数据字段中的针对事件3的时间戳的k位相同。
图11示出了当如以上参考图8至图10所描述的时间戳被划分成三段时从日志记录单元202检索与特定事件有关的信息的方法的流程图。在下面描述的示例中,日志记录单元202被用于从存储装置206检索日志记录数据。具体地,在下面描述的示例中,从存储装置206检索与事件3有关的信息。然而,如以上所描述的,在一些其他示例中,针对被日志记录的事件的条目可以被存储在日志记录单元202外部的日志存储装置中(例如,存储器214中的RAM中)。在这些其他示例中,除了日志记录单元202以外的单元可以被用于从日志存储装置检索日志记录数据,但是日志记录数据的检索的原理与在下面描述的其中是日志记录单元202从存储装置206检索日志记录数据的示例中相同。
在步骤S1102中,控制逻辑204从存储装置206读取针对特定事件的特定条目(例如,针对事件3的条目1014)。如以上所描述的,与事件3有关的数据被包括在条目1014的净荷中。还如以上所描述的,针对事件3的时间戳(TS3)的n个最低有效位被存储在条目1014的时间戳字段中,因此通过读取条目1014,可以确定针对事件的时间戳的这n位。然而,如以上所描述的,针对事件3的完整时间戳包括N位,其中N>n,因此存在针对事件3的时间戳的未包括在条目1014中的一些位。
在步骤S1104中,控制逻辑标识在存储装置中在特定条目之前的第一计时条目。这可以通过标识存储装置206中在它的ID字段中具有预定值(IDt1)的条目来完成。所标识的第一计时条目是在特定条目之前最近存储在存储装置206中的第一计时条目。因此,在该示例中,在条目1014是针对其的信息被检索的事件的条目的情况下,第一计时条目1012被标识为在条目1014之前最近存储在存储装置206中的第一计时条目。第一计时条目1012在它的数据字段中具有时间戳的k位。
在步骤S1106中,控制逻辑标识在存储装置中在特定条目之前的第二计时条目。这可以通过标识存储装置206中在它的ID字段中具有预定值(IDt2)的条目来完成。所标识的第二计时条目是在特定条目之前最近存储在存储装置206中的第二计时条目。因此,在该示例中,在条目1014是针对其的信息被检索的事件的条目的情况下,第二计时条目1002被标识为在条目1014之前最近存储在存储装置206中的第二计时条目。第二计时条目1002在它的数据字段中具有时间戳的m个最高有效位。
在步骤S1108中,控制逻辑将来自所标识的第二级计时条目1002的时间戳的m位与来自所标识的第一级计时条目1012的时间戳的k位和来自条目1014的时间戳字段的时间戳的n位连接在一起以由此构建针对事件3的时间戳。在该示例中,N=m+k+n,使得将m位、k位和n位连接的结果是针对事件的N位时间戳。以这种方式,针对事件3的N位时间戳即使在时间戳的位中的仅仅n个被包括在针对事件3的条目1014中的情况下也被确定。
根据以上描述的示例,可以增加被包括在时间戳中的位的数目(N),使得时间戳较不频繁地卷绕,意味着被日志记录的事件的时间流较不频繁地丢失。这在也减少被包括在条目中的每个的时间戳字段中的位的数目(n)的同时来实现,使得条目的更多位可以被用于净荷。这被实现的方式是通过在时间戳的n个最低有效位已经卷绕时包括额外的计时条目。在总的时间戳卷绕时间专用于时间戳的普通日志条目(即,非计时条目)的位的数目、以及由时间戳在存储装置206中占据的日志空间的总量之间存在权衡。
本文中描述的示例尤其对其中用于日志记录目的的存储器空间可以尤其例如与逻辑分析器中执行的日志记录相比较有限的跟踪日志记录有用。根据日志记录单元要被使用的条件(例如,事件发生的预期频率)并且还基于计时时钟218的频率来设置n、k、m和N的值。备选地,计时时钟218的频率可以基于以下中的一项或多项来设置:(i)事件的预期频率,(ii)n的值,以及(iii)N的值。增大计时时钟218的频率将增大时间戳的分辨率,由此提供针对存储在存储装置206中的事件的相对计时的更大准确度。然而,增大计时时钟218的频率还将减少时间戳将卷绕的时间。例如,利用N位时间戳和f的计时时钟频率,在时间t的事件的时间戳将与在的时间的时间戳相同。因此当f增大时,卷绕时间将减少。因此,存在考虑在将f设置很高以在事件的计时之间进行区分与将f设置很低以避免时间戳归因于存在其中没有事件发生的时间段使得被日志记录的事件的时间流丢失而变得有歧义之间的权衡。因此,基于事件的预期频率来设置计时时钟218的频率f。例如,如果计算机系统被用于在WiFi收发器中的信号处理,则可能包括指示分组头和数据净荷的事件的事件很有可能快速地发生,因此计时时钟218的频率可以被设置为很高(例如,在350MHz)以在不同事件的计时之间进行区分。在相反的示例中,如果计算机系统被用于在电子阅读器中使用,则事件很有可能以较低的频率发生,因此计时时钟218的频率可以被设置为更低(例如,在10MHz)以避免时间戳在事件之间的时间上变得有歧义。如以上所提到的,由日志记录单元202使用的计时时钟218可以不被用于调节计算机系统中的其他部件的计时,因此设置计时时钟218的频率可以不影响由计算机系统的其他部件使用的时钟。
如以上在背景技术部分所描述的,如果计时时钟的频率是350MHz,则18位时间戳将每749μs(即)卷绕一次。然而,当使用在350MHz的计时时钟,(例如,如图4中所示)36位时间戳将每196s(即)卷绕一次。另外,当使用在350MHz的计时时钟时,(例如,如图8中示出的)56位时间戳将大约每年(即年)卷绕一次。
本领域技术人员容易理解,在以上描述的示例中给出的具体数字中的任何能够被改变为其他适当的值。例如,在以上描述的示例中,每个条目包括48位,但是在其他示例中条目可以包括不同数目的位。另外,在以上描述的示例中,条目的净荷包括ID字段和数据字段。在其他示例中,净荷可以包括额外字段或备选字段,并且字段的大小可以与以上描述的那些不同。另外,一般地,n≥1并且k≥1。
以上描述的实施例仅仅通过举例的方式来给出。更一般地,如以上所提到的,时间戳可以被划分成任何数目的段或“等级”。本领域技术人员容易理解如何利用被划分成超过三段的时间戳来实施本文中描述的方法。
在以上描述的示例中,计时条目在它的时间戳字段中包括针对事件的时间戳的n个最低有效位。例如,图6中示出的计时条目612在它的时间戳字段中包括针对事件4的时间戳的n个最低有效位(TS4)。然而,注意,当计时条目被存储时存在时间戳的n个最低有效位的存储的副本。这可以在图6中看到,因为当计时条目(计时条目602和计时条目612)被存储时,计时条目的时间戳字段中的位与存储装置中的下一条目(条目604和条目614)的时间戳字段中的位相同。因此,在其他示例中,计时条目的时间戳字段可以包括除了时间戳的n个最低有效位以外的位。通过这种方式,更多的时间戳位可以被包括在计时条目中。例如,k的值可以大于能够被包括在条目的数据字段中的位的数目。例如,通过比较图4和图5,可以使用48位时间戳,其中n=12并且k=36,但是仍然可以使用计时条目中的仅仅一个等级,因为计时条目可以包括时间戳的36位。这可以通过在数据字段506中包括时间戳的24位并且在计时条目的时间戳字段502中包括时间戳的另外的12位来实现。通过这种方式,时间戳的k位被分布在计时条目的数据字段和时间戳字段上。这不会引起问题,因为时间戳的n个最低有效位被包括在下一条目的时间戳字段中(例如,图6中示出的条目604和条目614中)。以这种方式,去除了对时间戳的n个最低有效位的存储的副本。例如,这将允许在没有额外代价的情况下根据存储额外计时条目的需要使用48位时间戳(而非如以上所描述的示例中的36位时间戳)。更一般地,时间戳的k位的集合中的一些位可以被包括在计时条目的净荷中,并且时间戳的k位的集合中的其他位可以被包括在计时条目的时间戳字段中。
一般地,以上描述的功能、方法、技术或部件中的任何(例如,日志记录单元202)可以被实施在使用软件、固件、硬件(例如,固定逻辑电路)或者这些实施方式中的任何组合的模块中。术语“模块”、“功能”、“部件”、“块”、“单元”和“逻辑”在本文中被用于总体上表示软件、固件、硬件或其任何组合。
在控制逻辑204的软件实施方式的情况下,控制逻辑表示当运行在处理器上时执行指定任务的程序代码。在一个示例中,描述的控制逻辑可以通过被配置具有以机器可读形式存储在计算机可读介质上的软件的计算机来执行。计算机可读介质的一个这样的配置是信号承载介质并且因此被配置为将指令(例如,作为载波)例如经由网络发送到计算设备。计算机可读介质还可以被配置为非暂态计算机可读存储介质并且因此不是信号承载介质。计算机可读存储介质的示例包括随机存取存储器(RAM)、只读存储器(ROM)、光盘、闪速存储器、硬盘存储器和可以使用磁性技术、光学技术和其他技术来存储指令或其他数据,并且可以由机器访问的其他存储器设备。
所述软件可以以包括用于将计算机配置为执行描述的方法的构成部分的计算机程序代码的计算机程序的形式或者以包括适于在程序在计算机上运行时执行本文中描述的方法中的任何的全部步骤的计算机程序代码模块的计算机程序的形式,并且其中所述计算机程序可以被实现在计算机可读介质上。程序代码可以被存储在一个或多个计算机可读介质中。本文中描述的技术的特征是平台无关的,意味着所述技术可以被实施在具有各种处理器的各种计算平台上。
本领域技术人员还将意识到,本文中描述的功能、技术或方法中的全部或部分可以由专用电路、专用集成电路、可编程逻辑阵列、现场可编程门阵列等等来实现。例如,所述模块、功能、部件、单元、或逻辑(例如,日志记录单元202和其部件)可以包括以电路的形式的硬件。这样的电路可以包括在制造工艺中可用的晶体管和/或其他硬件元件。这样的晶体管和/或其他元件可以被用于形成实施和/或包含通过举例的方式诸如寄存器、触发器或锁存器的存储器、诸如布尔运算的逻辑运算符、诸如加法器、乘法器或移位器的数学运算符以及互连件的电路或结构。这样的元件可以被提供为经典电路或标准单元库、宏、或者在其他级别的抽象。这样的元件可以被相互连接在特定布置中。所述模块、功能、部件、单元、或逻辑(例如,日志记录单元202的部件)可以包括为固定功能的电路和可以被编程为执行一个或多个功能的电路;这样的编程可以根据固件或软件更新或控制机制来提供。在示例中,硬件逻辑具有实施固定功能操作、状态机或过程的电路。
还意图包含“描述”或定义实施以上描述的模块、功能、部件、单元或逻辑(例如,日志记录单元202的部件)的硬件的配置的软件,例如HDL(硬件描述语言)软件,如被用于设计集成电路或者用于将可编程芯片配置为实现期望功能。也就是说,可以提供一种计算机可读存储介质,其具有编码在其上的以集成电路定义数据集的形式的计算机可读程序代码,所述集成电路定义数据集当在集成电路制造系统中被处理时将所述系统配置为制造被配置为执行本文中描述的方法中的任何的日志记录单元或者制造包括本文中描述的任何装置的日志记录单元。IC定义数据集可以以例如以诸如寄存器传输级(RTL)代码的适当的HDL编写的计算机代码的形式。在集成电路制造系统处理集成电路定义数据集从而将所述系统配置为制造日志记录单元的示例现在将参考图12进行描述。
图12示出了包括布局处理系统1204和集成电路生成系统1206的集成电路(IC)制造系统1202的示例。IC制造系统1202被配置接收IC定义数据集(例如,定义如在本文中的示例中的任何中描述的日志记录单元)、处理IC定义数据集并且根据IC定义数据集来生成IC(例如,其实现如在本文中的示例中的任何中描述的日志记录单元)。对IC定义数据集的处理将IC制造系统1202配置为制造实现如在本文中的示例中的任何中描述的日志记录单元的集成电路。更具体地,布局处理系统1204被配置为接收并处理ID定义数据集以确定电路布局。根据IC定义数据集来确定电路布局的方法是本领域中已知的,并且例如可以涉及合成RTL代码以确定要被生成的电路的门级表示,例如在逻辑部件方面(例如,NAND、NOR、AND、OR、MUX和FLIP-FLOP部件)。电路布局可以通过确定针对逻辑部件的位置信息根据电路的门级表示来确定。这可以自动地或者在用户参与的情况下完成以便优化电路布局。当布局处理系统1204已经确定电路布局时,其可以将电路布局定义输出到IC生成系统1206。IC生成系统1206根据电路布局定义来生成IC,如本领域中已知的。例如,IC生成系统1206可以实施半导体器件制造工艺以生成IC,其可以涉及光刻和化学处理步骤的多个步骤序列,期间电子电路逐渐地被创建在由半导体材料制成的晶片上。电路布局定义可以以掩膜的形式,其可以被使用在光刻工艺中以用于根据电路定义来生成IC。备选地,被提供到IC生成系统1206的电路布局定义可以以计算机可读代码的形式,IC生成系统1206可以使用其来形成用于在生成IC中使用的适当的掩膜。由IC制造系统1202执行的不同工艺可以全部在一个位置中,例如,通过一方被实施。备选地,IC制造系统1202可以是分布式系统使得工艺中的一些可以在不同位置处被执行,并且可以通过不同方来执行。例如,以下的阶段中的一些:(i)合成表示IC定义数据集的RTL代码以形成要被生成的电路的门级表示,(ii)基于门级表示来生成电路布局,(iii)根据电路布局来形成掩膜,并且(iv)使用掩膜来制造集成电路可以在不同位置中和/或通过不同方来执行。
在其他示例中,在集成电路制造系统处对集成电路定义数据集的处理可以将系统配置为在没有处理IC定义数据集的情况下制造日志记录单元从而确定电路布局。例如,集成电路定义数据集可以定义可配置处理器(例如,FPGA)的配置,并且对该数据集的处理可以将IC制造系统配置为(例如,通过将配置数据加载到FPGA)生成具有该定义的配置的可配置处理器。
在一些示例中,集成电路定义数据集可以包括运行在由数据集定义的硬件上或与由数据集定义的硬件组合地运行的软件。在图12示出的示例中,IC生成系统还可以由集成电路定义数据集配置为在制造集成电路时将根据在集成电路定义数据集处定义的程序代码的固件加载到该集成电路上或者以其他方式向集成电路提供程序代码以用于与集成电路一起使用。
术语‘处理器’和‘计算机’在本文中用于指代具有使得其可以运行指令的处理能力的任何设备或其部分或者可以执行所述功能或方法中的全部或部分的专用电路、或者其任何组合。
尽管本主题已经以特定于结构特征和/或方法动作的语言进行描述,但是要理解权利要求中限定的主题不一定限于以上描述的具体特征或动作。相反,以上描述的具体特征和动作被公开为实施权利要求的示例形式。应当理解,以上描述的益处和优点可以涉及一个示例或可以涉及若干示例。
本技术人员容易理解,可以在不丧失寻求的效果的情况下扩展或更改本文中给出的任何范围或值。本文中描述的方法步骤可以以任何适当的顺序或者在合适的情况下同时地来执行。在不丧失寻求的效果的情况下,以上描述的示例中的任何的方面可以与描述的其他示例中的任何的方面进行组合以形成另外的示例。

Claims (20)

1.一种用于通过使得条目被存储在存储装置中来对事件进行日志记录的日志记录单元,其中所述条目中的每个条目包括n位时间戳字段和净荷,所述日志记录单元包括控制逻辑,所述控制逻辑被配置为:
确定针对要被日志记录的事件的时间戳,其中所确定的时间戳包括N位,其中N>n;
在所确定的时间戳的N-n个最高有效位中的一个或多个最高有效位与针对先前事件的时间戳的N-n个最高有效位中的对应一个或多个最高有效位不同的情况下,使得包括所确定的时间戳的k位的集合的计时条目被存储在所述存储装置中,针对所述先前事件的先前条目被存储在所述存储装置中,所述k位是比所确定的时间戳的n个最低有效位更多的所确定的时间戳的有效位;以及
使得针对所述事件的条目被存储在所述存储装置中,其中所确定的时间戳的n个最低有效位被包括在针对所述事件的所述条目的所述时间戳字段中。
2.根据权利要求1所述的日志记录单元,其中所述k位是除了所确定的时间戳的所述n个最低有效位以外的所确定的时间戳的下k个最低有效位。
3.根据权利要求1或2所述的日志记录单元,其中所述控制逻辑被配置为使得所确定的时间戳的k位的所述集合被包括在所述计时条目的所述净荷中。
4.根据前述权利要求中的任一项所述的日志记录单元,其中所述控制逻辑被配置为使得所确定的时间戳的n个最低有效位被包括在所述计时条目的所述时间戳字段中。
5.根据权利要求1或2所述的日志记录单元,其中所述控制逻辑被配置为:
使得所确定的时间戳的k位的所述集合中的一些位被包括在所述计时条目的所述净荷中,以及
使得所确定的时间戳的k位的所述集合中的其他位被包括在所述计时条目的所述时间戳字段中。
6.根据前述权利要求中的任一项所述的日志记录单元,其中所述先前事件是最近事件,针对所述最近事件的条目被存储在所述存储装置中。
7.根据前述权利要求中的任一项所述的日志记录单元,其中所述控制逻辑被配置为使得与所述事件有关的数据被包括在针对所述事件的所述条目的所述净荷中。
8.根据前述权利要求中的任一项所述的日志记录单元,其中条目的所述净荷包括:(i)ID字段,以及(ii)数据字段。
9.根据权利要求8所述的日志记录单元,其中所述控制逻辑被配置为将所述计时条目的所述ID字段设置为指示计时条目的预定值。
10.根据前述权利要求中的任一项所述的日志记录单元,其中所述控制逻辑被配置为使用计时时钟来确定针对要被日志记录的所述事件的所述时间戳,并且其中所述计时时钟的频率基于以下的一项或多项来设置:(i)事件的预期频率,(ii)n的值,以及(iii)N的值。
11.根据前述权利要求中的任一项所述的日志记录单元,其中所述控制逻辑被配置为在确定针对所述事件的所述时间戳之前接收要被日志记录的所述事件的指示。
12.根据前述权利要求中的任一项所述的日志记录单元,其中k=N-n,其中所述k位是所确定的时间戳的最高有效位。
13.根据权利要求1至11中的任一项所述的日志记录单元,其中k<N-n,其中包括所确定的时间戳的k位的所述集合的所述计时条目是第一级计时条目,并且其中所述控制逻辑还被配置为在所确定的时间戳的N-k-n个最高有效位中的一个或多个最高有效位与针对所述先前事件的所述时间戳的N-k-n个最高有效位中的对应一个或多个最高有效位不同的情况下,使得包括所确定的时间戳的m位的集合的第二级计时条目被存储在所述存储装置中,针对所述先前事件的先前条目被存储在所述存储装置中,所述m位是比所确定的时间戳的所述k位更多的所确定的时间戳的有效位。
14.根据当从属于权利要求8时的权利要求13所述的日志记录单元,其中所述控制逻辑被配置为:
将第一级计时条目的ID字段设置为指示第一级计时条目的第一预定值;以及
将第二级计时条目的ID字段设置为指示第二级计时条目的第二预定值。
15.根据前述权利要求中的任一项所述的日志记录单元,其中所述控制逻辑还被配置为:
从所述存储装置读取针对特定事件的特定条目;以及
通过以下操作来构建针对所述特定事件的所述时间戳:(i)标识所述存储装置中的在所述特定条目前面的计时条目;并且(ii)将来自所标识的计时条目的所述时间戳的所述k位与来自所述特定条目的所述时间戳字段的所述时间戳的所述n位连接在一起。
16.根据权利要求15所述的日志记录单元,其中所标识的计时条目是在所述特定条目之前存储在所述存储装置中的最近计时条目。
17.一种用于通过将条目存储在存储装置中来对事件进行日志记录的方法,所述条目中的每个条目包括n位时间戳字段和净荷,所述方法包括:
确定针对要被日志记录的事件的时间戳,其中所确定的时间戳包括N位,其中N>n;
在所确定的时间戳的N-n个最高有效位中的一个或多个最高有效位与针对先前事件的时间戳的N-n个最高有效位中的对应一个或多个最高有效位不同的情况下,将计时条目存储在所述存储装置中,针对所述先前事件的先前条目被存储在所述存储装置中,所述计时条目包括所确定的时间戳的k位的集合,所述k位是比所确定的时间戳的n个最低有效位更多的所确定的时间戳的有效位;以及
将针对所述事件的条目存储在所述存储装置中,其中所确定的时间戳的n个最低有效位被包括在针对所述事件的所述条目的所述时间戳字段中。
18.一种用于从被配置为存储条目的存储装置检索与特定事件有关的信息的方法,所述条目中的每个条目包括n位时间戳字段和净荷,并且其中所述特定事件与包括N位的时间戳相关联,其中N>n,所述方法包括:
从所述存储装置读取针对所述特定事件的特定条目,其中所述时间戳的n个最低有效位被包括在所述特定条目的所述时间戳字段中;
标识所述存储装置中在所述特定条目前面的计时条目,其中所标识的计时条目包括针对所述特定条目的所述时间戳的k位的集合,所述k位是比所述时间戳的n个最低有效位更多的所述时间戳的有效位;以及
将来自所标识的计时条目的所述时间戳的所述k位与来自所述特定条目的所述时间戳字段的所述时间戳的所述n位连接在一起,以用于在构建针对所述特定事件的所述时间戳中使用。
19.根据权利要求18所述的方法,其中k=N-n,其中所述连接的结果是针对所述特定事件的所述时间戳。
20.根据权利要求18所述的方法,其中k<N-n,其中所述所标识的计时条目是第一级计时条目,并且其中所述方法还包括:
标识所述存储装置中的在所标识的第一级计时条目前面的第二级计时条目,其中所标识的第二级计时条目包括针对所述特定条目的所述时间戳的m位的集合,所述m位是比所述时间戳的所述k位更多的所述时间戳的有效位;
其中来自所标识的第二级计时条目的所述时间戳的所述m位与来自所标识的第一级计时条目的所述时间戳的所述k位和来自所述特定条目的所述时间戳字段的所述时间戳的所述n位连接在一起,以用于在构建针对所述特定事件的所述时间戳中使用。
CN201610170236.9A 2015-03-24 2016-03-23 利用时间戳对事件进行日志记录 Active CN106021058B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1504975.2 2015-03-24
GB1504975.2A GB2536655B (en) 2015-03-24 2015-03-24 Logging events with timestamps

Publications (2)

Publication Number Publication Date
CN106021058A true CN106021058A (zh) 2016-10-12
CN106021058B CN106021058B (zh) 2021-07-27

Family

ID=53052323

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610170236.9A Active CN106021058B (zh) 2015-03-24 2016-03-23 利用时间戳对事件进行日志记录

Country Status (4)

Country Link
US (1) US10255161B2 (zh)
EP (1) EP3098733B1 (zh)
CN (1) CN106021058B (zh)
GB (1) GB2536655B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113366452A (zh) * 2018-12-18 2021-09-07 美光科技公司 存储器子系统的事件日志信息的管理

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2497154B (en) * 2012-08-30 2013-10-16 Imagination Tech Ltd Tile based interleaving and de-interleaving for digital signal processing
GB2518921B (en) * 2014-03-24 2016-02-17 Imagination Tech Ltd High definition timing synchronisation function
WO2016154841A1 (en) * 2015-03-30 2016-10-06 Telefonaktiebolaget Lm Ericsson (Publ) Load balancing
US10637920B2 (en) * 2017-08-18 2020-04-28 Digital 14 Llc System, method, and computer program product for peer-to-peer event ordering using a two part event identifier
US10764855B1 (en) * 2018-02-26 2020-09-01 Marvell Asia Pte, Ltd. Synchronizing clocks in a wireless network
US11082544B2 (en) 2018-03-09 2021-08-03 Microchip Technology Incorporated Compact timestamp, encoders and decoders that implement the same, and related devices, systems and methods

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102929936A (zh) * 2012-09-26 2013-02-13 东软集团股份有限公司 日志记录方法、日志查询方法及系统
US20130080820A1 (en) * 2009-12-17 2013-03-28 Texas Instruments Incorporated Minimizing the Use of Chip Routing Resources When Using Timestamped Instrumentation Data
US20150082325A1 (en) * 2013-09-15 2015-03-19 Sandisk Technologies Inc. Apparatuses and methods for generating and tracing event codes

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7031869B2 (en) * 2001-12-28 2006-04-18 Hewlett-Packard Development Company, L.P. Method and apparatus for managing timestamps when storing data
US8112425B2 (en) * 2006-10-05 2012-02-07 Splunk Inc. Time series search engine
US20090271434A1 (en) * 2008-04-29 2009-10-29 George H Allan Method and System for Storing Trace Data
US9190906B2 (en) * 2012-05-16 2015-11-17 Intel Deutschland Gmbh Digital event generator, comparator, switched mode energy converter and method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130080820A1 (en) * 2009-12-17 2013-03-28 Texas Instruments Incorporated Minimizing the Use of Chip Routing Resources When Using Timestamped Instrumentation Data
CN102929936A (zh) * 2012-09-26 2013-02-13 东软集团股份有限公司 日志记录方法、日志查询方法及系统
US20150082325A1 (en) * 2013-09-15 2015-03-19 Sandisk Technologies Inc. Apparatuses and methods for generating and tracing event codes

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113366452A (zh) * 2018-12-18 2021-09-07 美光科技公司 存储器子系统的事件日志信息的管理

Also Published As

Publication number Publication date
EP3098733A1 (en) 2016-11-30
US10255161B2 (en) 2019-04-09
US20160283312A1 (en) 2016-09-29
GB2536655B (en) 2017-09-20
GB2536655A (en) 2016-09-28
EP3098733B1 (en) 2020-01-15
GB201504975D0 (en) 2015-05-06
CN106021058B (zh) 2021-07-27

Similar Documents

Publication Publication Date Title
CN106021058A (zh) 利用时间戳对事件进行日志记录
CN104067282B (zh) 状态机晶格中的计数器操作
US9111615B1 (en) RAM-based ternary content addressable memory
US7200688B2 (en) System and method asynchronous DMA command completion notification by accessing register via attached processing unit to determine progress of DMA command
CA2779181C (en) System for updating an associative memory
US9304919B2 (en) Detecting multiple stride sequences for prefetching
US7844422B2 (en) Method and system for changing a description for a state transition function of a state machine engine
JPS62217321A (ja) 高速サ−チプロセツサ
Chen et al. Dr. CU: Detailed routing by sparse grid graph and minimum-area-captured path search
US7562367B1 (en) Sorted-tree-based event queue for discrete event simulators
US11379842B2 (en) Method and system for detecting fraudulent transactions using a fraud detection model trained based on dynamic time segments
CN110312994A (zh) 使用指令地址映射绕过加载指令的存储器访问
CN106598494A (zh) 数据统计方法和装置
CN108959168A (zh) 基于片上内存的sha512全流水电路及其实现方法
CN105717851A (zh) 使用具有计数状态的有限状态机的实时触发
CN206058178U (zh) 得到主移位寄存器的一个或多个检查点的硬件结构
CN108510117A (zh) 吸毒传播预测方法、装置及电子设备
CN109408720A (zh) 基于电子锁屏幕的信息推荐方法、系统及介质
CN104636119A (zh) 用于处理混编指令的方法和设备
US11301587B2 (en) Systems and methods for masking and unmasking of sensitive data
CN110334055B (zh) 一种获取材料计算数据的方法
CN107688596A (zh) 突发话题检测方法及突发话题检测设备
CN107851075A (zh) 用于存储器的频率重置的系统、方法和装置
US20100042864A1 (en) System and method for managing application
US20220293152A1 (en) Random accessing

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20210330

Address after: Trondheim

Applicant after: NORDIC SEMICONDUCTOR ASA

Address before: Hertfordshire

Applicant before: Imagination Technologies Ltd.

GR01 Patent grant
GR01 Patent grant