利用时间戳对事件进行日志记录的制作方法

文档序号:10654416阅读:276来源:国知局
利用时间戳对事件进行日志记录的制作方法
【专利摘要】本发明的各实施例总体上涉及利用时间戳对事件进行日志记录。具体地,一种日志记录单元被用于对针对计算机系统中的事件的条目进行日志记录。每个条目包括n位时间戳字段和净荷。净荷包括与事件有关的信息,并且时间戳字段包括针对事件的N位时间戳的n个最低有效位,其中N>n。如果时间戳的n个最低有效位与先前条目的时间戳的对应n位相比较已经卷绕,则对包括时间戳的其他位的计时条目进行日志记录。因此,可以确定针对事件的N位时间戳,但是仅仅时间戳的n个最低有效位被存储在针对事件的条目的时间戳字段中。因此,在不增加每个条目的时间戳字段中的位的数目(n)的情况下(通过具有更大的时间戳)更好地维持存储装置中的事件的时间流。
【专利说明】
利用时间戳对事件进行日志巧录
技术领域
[0001] 本发明的各实施例总体上设及计算机领域,具体地设及利用时间戳对事件进行日 J巳、下己5? O
【背景技术】
[0002] 对与在计算机系统中发生的事件有关的信息进行日志记录常常是有用的。事件可 W是与其有关的信息可能随后是有用的任何出现(例如,动作或过程)。另外,被日志记录的 信息可W是可能有用的任何适当的类型。
[0003] 跟踪是被用于在跟踪日志中记录与程序的运行有关的信息的日志记录的示例。信 息可W例如由程序员用于调试目的。包含在跟踪日志中的信息还可W由系统管理员和/或 技术支持人员用于诊断关于软件的问题。可W使得数据被存储在跟踪日志中的事件的一些 示例是:由程序抛出的异常,从存储器读取数据,对变量的值进行改变等等。事件中的每个 事件将在特定时间发生,并且跟踪日志存储针对每个事件的时间戳W指示事件的时间。因 此,通过分析存储在跟踪日志中的数据,可W标识出计算机系统中的事件的时间流。
[0004] 针对每个事件,条目可W被存储在存储装置中,即被存储在跟踪日志中。作为示 例,存储装置可W被配置为存储针对事件的48位条目。图1示出了包括48位的条目100的示 例,其中条目包括18位时间戳字段102、6位ID字段104和24位数据字段106JD字段104和数 据字段106可W共同地被称为条目的"净荷",使得条目包括时间戳和净荷。当要被日志记录 的事件发生时,可W (例如,基于计算机系统中的时钟)确定针对事件的时间戳。在该示例 中,时间戳包括要被存储在针对事件的时间戳字段102中的18位。ID字段104包括引发事件 发生的处理元件(例如,计算机系统内的CPU、信号处理单元或其他处理元件)的指示。数据 字段106包括与发生的事件有关的数据,例如,W指示异常已经发生、W指示变量已经改变 它的值或者与事件有关的任何其他适当的信息。
[0005] 事件发生的频率对于不同计算机系统可W是不同的,并且可W随时间而变化。例 如,数字信号处理器(DSP)可W运行,从而在数据信号被发送到计算机系统或从计算机系统 接收数据信号时使得事件非常快速地发生,但是事件发生的频率可能在计算机系统停止发 送或接收信号时减小。
[0006] 计时时钟可W被用于确定针对要被日志记录在存储装置中的事件的时间戳。使用 较快的计时时钟增大时间戳的分辨率,运允许在对事件的计时中标识出更大精度,但是使 得时间戳更频繁地"卷绕"。例如,如果18位被用于针对事件的时间戳(如图1所示),则2"个 独特的时间戳是可用的,并且在21S个计时器滴答之后,时间戳将循环回到第一个值。也就是 说,利用n位时间戳和计时时钟频率f,在时间t的事件的时间戳将与在时间的事件的 时间戳相同。在时间戳从它的最大值增加 W返回到它的最小值时,时间戳"卷绕",例如,在 2"位时间戳从值2D-1返回到零时,2"位时间戳将卷绕。
[0007] 作为示例,诸如DSP的信号处理单元将使用相对高频率的计时时钟用于事件日志 记录,运是因为事件在信号处理单元中非常快速地发生,并且时间戳优选地具有足够的分 辨率W指示事件在计算机系统中的相对计时。例如,计时时钟的频率可W是350MHz,运意味 着利用2"位时间戳,时间戳将每74化S(町
卷绕一次。运意味着时间戳可 W在大于74化S的时间段内变得有歧义。也就是说,如果存在至少74化S的时间段,在该时间 段期间没有事件被日志记录,则在跟踪日志中的事件的正确时间流丢失。注意,事件可能W 不规则的间隔发生。一种保持在更大的时间段内时间戳无歧义,并且减小W运种方式丢失 正确时间流的可能性的方式是增加被用于时间戳的位的数目。例如,如果24位被用于时间 戳,其中计时时钟在350MHz,则时间戳将每47.9ms (即.
)卷绕一次。因此,将 必须存在长得多的时间段(64倍之长),在该时间段期间没有使时间戳变得有歧义W及事件 的正确时间流丢失的事件发生。
[000引然而,常常存在对可W存储在跟踪日志中的数据量的严格约束,并且因此增大每 个条目的大小W允许更多的时间戳位可能是不利的。运在事件W高频率发生的计算机系统 中(例如,在包括信号处理单元的计算机系统中)的情况下尤其如此。因此增加在存储在跟 踪日志中的每个条目中的位的数目可能不是有益的。因此,如果被用于时间戳的位的数目 被增加,则可W被使用在条目的净荷中(即,ID字段和数据字段中)的位的数目将被减少。然 而,运可能不是期望的,运是因为更少的净荷位将意味着针对事件的更少的信息可W被存 储在条目中。
[0009] 因此,当设置针对事件的条目的格式时,在条目内的时间戳位的数目与净荷位的 数目之间存在权衡。

【发明内容】

[0010] 本
【发明内容】
被提供用于W简化的形式介绍下面在【具体实施方式】中进一步描述的 一系列概念。本
【发明内容】
不旨在确定要求保护的主体的关键特征或必要特征,也不旨在用 于限制要求保护的主体的范围。
[0011] 提供了一种用于通过使得条目被存储在存储装置中来对事件进行日志记录的日 志记录单元,其中所述条目中的每个条目包括n位时间戳字段和净荷,所述日志记录单元包 括控制逻辑,所述控制逻辑被配置为:确定针对要被日志记录的事件的时间戳,其中所确定 的时间戳包括N位,其中N〉n;在所确定的时间戳的N-n个最高有效位中的一个或多个最高有 效位与针对先前事件的时间戳的N-n个最高有效位中的对应一个或多个最高有效位不同的 情况下,使得包括所确定的时间戳的k位的集合的计时条目被存储在所述存储装置中,其中 针对所述先前事件的先前条目被存储在所述存储装置中,所述k位是比所确定的时间戳的n 个最低有效位更多的所确定的时间戳的有效位;并且使得针对所述事件的条目被存储在所 述存储装置中,其中所确定的时间戳的所述n个最低有效位被包括在针对所述事件的所述 条目的所述时间戳字段中。例如,所述k位可W是除了所确定的时间戳的n个最低有效位W 外的所确定的时间戳的下k个最低有效位。
[0012] 提供了一种通过将条目存储在存储装置中来对事件进行日志记录的方法,所述条 目中的每个条目包括n位时间戳字段和净荷,所述方法包括:确定针对要被日志记录的事件 的时间戳,其中所确定的时间戳包括N位,其中N〉n;在所确定的时间戳的N-n个最高有效位 中的一个或多个最高有效位与针对先前事件的时间戳的N-n个最高有效位中的对应一个或 多个最高有效位不同的情况下,将计时条目存储在所述存储装置中,其中针对所述先前事 件的先前条目被存储在所述存储装置中,所述计时条目包括所确定的时间戳的k位的集合, 所述k位是比所确定的时间戳的n个最低有效位更多的所确定的时间戳的有效位;并且将针 对所述事件的条目存储在所述存储装置中,其中所确定的时间戳的n个最低有效位被包括 在针对所述事件的所述条目的所述时间戳字段中。
[0013] 提供了一种从被配置为存储条目的存储装置检索与特定事件有关的信息的方法, 所述条目中的每个条目包括n位时间戳字段和净荷,并且其中所述特定事件与包括N位的时 间戳相关联,其中N〉n,所述方法包括:从所述存储装置读取针对所述特定事件的特定条目, 其中所述时间戳的n个最低有效位被包括在所述特定条目的所述时间戳字段中;标识所述 存储装置中在所述特定条目前面的计时条目,其中所标识的计时条目包括针对所述特定条 目的所述时间戳的k位的集合,所述k位是比所述时间戳的n个最低有效位更多的所述时间 戳的有效位;并且将来自所标识的计时条目的所述时间戳的所述k位与来自所述特定条目 的所述时间戳字段的所述时间戳的所述n位连接在一起W用于在构建针对所述特定事件的 所述时间戳中使用。
[0014] 本文中描述的日志记录单元可W W硬件被实现在集成电路上。可W提供一种计算 机可读代码,当所述代码运行在计算机上时所述计算机可读代码适于执行本文中描述的方 法中的任何的步骤。另外,可W提供一种计算机可读代码,所述计算机可读代码用于生成根 据本文中描述的示例中的任何的日志记录单元。所述计算机可读代码可W被编码在计算机 可读存储介质上。
[0015] 本领域技术人员容易理解,W上特征可W在适当的情况下被组合,并且可W与本 文中描述的示例的方面中的任何方面进行组合。
【附图说明】
[0016] 现在将参考附图详细描述示例,在附图中:
[0017] 图1示出了在现有技术系统中针对要被日志记录的事件的条目的格式;
[0018] 图2是包括日志记录单元的计算机系统的示意图;
[0019] 图3示出了图示在第一示例中的对事件进行日志记录的方法的流程图;
[0020] 图4示出了在第一示例中的时间戳的格式;
[0021 ]图5示出了日志记录单元的针对要被日志记录的事件的条目的格式;
[0022] 图6示出了在第一示例中被存储在日志记录存储装置中的多个条目;
[0023] 图7示出了图示从第一示例中的日志记录存储装置检索与特定事件有关的信息的 方法的流程图;
[0024] 图8示出了在第二示例中的时间戳的格式;
[0025] 图9示出了图示在第二示例中的对事件进行日志记录的方法的流程图;
[0026] 图10示出了在第二示例中被存储在日志记录存储装置中的多个条目;
[0027] 图11示出了图示从第二示例中的日志记录存储装置检索与特定事件有关的信息 的方法的流程图;W及
[0028] 图12示出了用于生成实现处理系统的集成电路的集成电路制造系统。
[0029] 附图图示了各种示例。技术人员将认识到附图中的图示的元件边界(例如,框、框 的组或者其他形状)表示边界的一个示例。可能的是,在一些示例中,一个元件可W被设计 为多个元件或者多个元件可W被设计为一个元件。在合适的情况下,在整个附图中使用共 同的附图标记来指示相似的特征。
【具体实施方式】
[0030] 现在将仅通过举例的方式来描述实施例。
[0031] 在本文中描述的示例中,针对事件确定的时间戳中的位的数目可W被增加,由此 减少时间戳卷绕的频率。运意味着时间戳在更大长度的时间内是没有歧义的,并且存储在 日志记录单元中的事件的时间流较不频繁地丢失。运同时在同时降低包括在针对各自的事 件的各个条目中的时间戳位的数目而不增加每个条目的位的数目的情况下来实现。因此, 可W改善或至少维持W上在【背景技术】部分提到的权衡的每个方面。
[0032] 运可能看起来是反直观的,但是运通过认识到被日志记录的事件的序列将具有相 似的时间戳来实现。具体地,快速连续地发生的事件的序列的最高有效位将彼此相同或彼 此非常相似。如果事件的序列的时间戳的最高有效位彼此相同,则运些位不需要针对事件 的序列的条目中的每个重复地被存储。相反,时间戳的位的最低有效子段(时间戳的n个最 低有效位)可W被存储在针对事件的条目的时间戳字段中。如果时间戳的n个最低有效位与 在跟踪日志中的先前条目的时间戳的对应n位相比较已经卷绕(即从值改变为0),则包 括时间戳的其他位(例如,最高有效位)的额外条目被日志记录。W运种方式,可W确定针对 事件的N位时间戳,但是仅仅时间戳的n个最低有效位被存储在针对事件的条目中,其中N〉 打O
[0033] 图2示出了包括本文中描述的示例中的可W被用于对事件进行日志记录的日志记 录单元202的计算机系统。可W为跟踪日志记录单元的日志记录单元202包括控制逻辑204 和存储装置206。控制逻辑204可W W硬件、软件、固件或它们的任何组合来实施。存储装置 206可W是存储器并且被配置为存储针对事件的条目,例如针对已经在计算机系统中发生 的事件的条目。在该示例中,存储装置206被包括在日志记录单元202中,然而在其他示例 中,针对事件的条目被日志记录在其中的存储装置可W在日志记录单元202的外部,并且可 W例如被实施在系统存储器214中的随机存取存储器(RAM)中。计算机系统还包括在不同示 例中可W不同的其他单元,但是在图2中示出的示例中,计算机系统包括中央处理单元 (CPU)208、信号处理单元210(例如,DSP)、图形处理单元(GPU)212、存储器214和其他设备 216(例如,显示器、摄像头、扬声器、等等),取决于计算机系统被设计的用途。计算机系统还 包括可W由日志记录单元202用于确定时间戳的计时时钟218。注意,由日志记录单元202用 于确定时间戳的计时时钟218可W与由计算机系统使用的系统时钟不同(或在一些示例中 相同)W调节由计算机系统的部件执行的操作的计时。计算机系统的部件可W经由通信总 线220彼此通信。例如,计算机系统可W被实施在诸如移动电话、平板电脑、笔记本电脑、电 视之类的设备或任何其他适当的设备中。在示例中,信号处理单元210可W被配置为处理已 经在设备处接收到的或要从设备被发送的信号(例如,电视信号,或者通过适当的通信链 路,例如,经由蜂窝电话网络和/或经由互联网的通信信号)。通常,运样的信号处理W非常 高的速率来执行,由此创建W非常高的频率被日志记录的事件。计算机系统中的其他部件 (例如,CPU 208、GPU 212、存储器214和其他设备216)还可W引发要由日志记录单元202日 志记录的事件发生。日志记录单元202可W维持针对来自不同部件的事件的单独的日志记 录,或者来自不同部件的事件可W全部被存储在相同的日志记录中。图2中示出的计算机系 统可W是具有专口功能(例如,用于实时地接收和处理广播信号)的嵌入式系统,并且因此 嵌入式系统可W包括图2中示出的部件的子集(例如,用于信号处理的嵌入式系统可W不包 括GPU)。
[0034] 参考图3中示出的流程图来描述第一示例中的日志记录单元202的操作。事件发生 在图2中示出的计算机系统的处理单元中,并且如果那些事件要被日志记录,则在步骤S302 中,日志记录单元202接收要被日志记录的事件的指示。具体地,在控制逻辑204处接收事件 的指示。日志记录单元202可W监测计算机系统中的其他处理单元的操作W检测要被日志 记录的事件的发生。备选地或附加地,计算机系统中的处理单元可W将事件的指示发送到 日志记录单元202。在两种实施方式中,控制逻辑204接收在步骤S302中要被日志记录的事 件的指示。
[0035] 在步骤S304中,控制逻辑204确定针对要被日志记录的事件的N位时间戳。使用计 时时钟218来确定时间戳。图4示出了其中时间戳400包括36位(即,N = 36)的示例。时间戳 400包括:(i)上段402,其包括k个最高有效位,W及(ii)下段404,其包括n个最低有效位。在 图4中示出的示例中,k = 24并且n=12,其中N=k+n。时间戳的n个最低有效位要被包括在针 对被日志记录在存储装置206中的事件的条目的时间戳中。
[0036] 图5示出了要被存储在存储装置206中的针对事件的条目500的格式。条目500包括 n位时间戳字段502和净荷。在该示例中,n = 12。净荷包括ID字段504和数据字段506。在该示 例中,ID字段504包括12位并且数据字段包括k位,其中k = 24 JD字段504包括引发事件发生 的处理单元的指示(例如,图2中示出的计算机系统内的CPU 208或信号处理单元210或其他 处理单元)。数据字段506包括与发生的事件有关的数据,例如,W指示异常已经发生,或者 W指示变量已经改变了它的值等等。
[0037] 在步骤S306中,控制逻辑204确定是否存在已经存储在存储装置206中的其他条 目。如果当前条目将是存储在存储装置中的第一条目,则方法传递到步骤S310,否则方法传 递到步骤S308。运是因为针对要被包括在存储装置206中的第一条目没有先前条目,因此时 间戳的全部N位将被存储在存储装置206中。
[0038] 在步骤S308中,控制逻辑204确定时间戳400的n个最低有效位404与存储在存储装 置中的先前条目的时间戳的对应n位相比较已经卷绕。确定时间戳的下段(即,时间戳的n个 最低有效位)是否已经卷绕等价于确定时间戳的上段(即,时间戳的N-n个最高有效位)是否 已经改变。换言之,当时间戳的n个最低有效位已经卷绕时,则时间戳的N-n个最高有效位中 的一个或多个最高有效位已经改变。因此,可W认为是在步骤S308中,控制逻辑204确定时 间戳400的N-n个最高有效位402中的一个或多个最高有效位是否与针对先前事件的时间戳 的N-n个最高有效位中的对应一个或多个最高有效位是否不同,其中针对先前事件的先前 条目被存储在存储装置中。如果步骤S308中确定时间戳的n个最低有效位已经卷绕,则方法 传递到步骤S310。如果在步骤S308中确定时间戳的n个最低有效位尚未卷绕,则方法从步骤 S308传递到步骤S312。
[0039] 在步骤S310中,控制逻辑204使计时条目被存储在存储装置206中。计时条目包括 时间戳400的k位402的集合。时间戳400的k位402被包括在计时条目的净荷中,例如,数据字 段506中。时间戳400的n个最低有效位404被包括在计时条目的时间戳字段502中。控制逻辑 204将计时条目的ID字段504设置为指示计时条目的预定值(例如,零值)。通过运种方式,可 W通过标识在ID字段中具有预定值的条目来标识存储装置206中的计时条目。因此,运提供 用于标识在存储装置206中的计时条目的简单方式。
[0040] 在步骤S312中,控制逻辑204使针对事件的条目被存储在存储装置206中。时间戳 400的n个最低有效位被包括在针对事件的条目500的时间戳字段502中。与事件有关的数据 被包括在针对事件的条目500的净荷中。也就是说,针对事件的条目的ID字段504包括使事 件发生的处理单元(例如,信号处理单元210)的指示。数据字段506包括与发生的事件有关 的数据。
[0041] 注意在本文中描述的示例中,针对事件的条目被日志记录在其中的存储装置206 是日志记录单元202的部分。然而,在其他示例中,针对事件的条目被日志记录在其中的存 储装置可W在日志记录单元202的外部,并且可W例如为存储器214的部分,并且可W被实 施在通用RAM中。在运些其他示例中,控制逻辑204执行与本文中详细描述的示例相同的过 程W使得针对要被日志记录的事件的条目被存储在存储装置中(例如,存储器214中)。
[0042] 在一些备选示例中,日志记录单元202可W使用内部存储装置206来临时存储条 目,因为对于日志记录单元而言在存储装置206中存储数据可W比通过总线220发送数据W 用于存储在外部存储器中(例如,存储器214中)更快。存储在存储装置206中的条目可W在 适当的时间,例如,定期地(即,W规则间隔),或者当存储在存储装置206中的数据量超过阔 值时,或者当总线220上的数据流量低于阔值时,被复制到外部日志存储装置。
[0043] 针对发生在计算机系统中的多个事件中的每个执行图3中示出的方法。如果在步 骤S308中控制逻辑204确定时间戳的N-n个最高有效位与针对先前事件的时间戳的对应N-n 个最高有效位相同,则计时条目不需要被存储(即,不执行步骤S310),其中针对先前事件的 先前条目被存储在存储装置中。"先前事件"是针对其的条目被存储在存储装置206中的最 近事件。条目被存储在存储装置206中的顺序被保留,使得最近存储的条目(并且因此最近 事件)易于在存储装置206中标识出。针对事件的条目包括时间戳字段中的时间戳的n个最 低有效位。如果时间戳的n个最低有效位404尚未卷绕,则运意味着时间戳的k个最高有效位 402与先前条目的时间戳的对应k位相同。因此时间戳的k个最高有效位不需要再次被存储 在存储装置206中,即不需要计时条目。
[0044] 在步骤S308中,为了确定时间戳的n个最低有效位是否已经卷绕,控制逻辑204可 W标识存储装置206中的最近存储的计时条目并确定被包括在计时条目的净荷中的时间戳 的k位。运k位将在最近存储的条目不是计时条目的情况下与针对最近存储的条目的时间戳 的k位相同。备选地,日志记录单元202可W包括被用于指示最近存储的计时条目的时间戳 的k位的存储器的专口段,由此无论何时新的计时条目被存储在存储装置206中,都利用针 对新的计时条目的时间戳的k位来替换先前存储在专口段中的k位。通过运种方式,存储器 的专口段将包括最近存储的计时条目的k位的并且易于控制逻辑204在步骤S308中检索运k 位W确定先前条目的时间戳的k位。然而,运将使用日志记录单元202中的k位的存储空间。 当控制逻辑204已经确定与先前条目有关的事件的时间戳的k位时,将运些位与在步骤S304 中确定的时间戳的k位进行比较,并且如果它们相同,则所确定的时间戳的n个最低有效位 尚未卷绕,但是如果它们不同,则所确定的时间戳的n个最低有效位已经卷绕。
[0045] 图6示出了存储在存储装置206中的针对五个事件的序列(事件0到事件4)的多个 条目(602到604)的示例。在步骤S310中,响应于第一事件(事件0)发生,计时条目602被存储 在存储装置206中。针对事件0的时间戳(TSo)的n个最低有效位被存储在计时条目602的时 间戳字段中,并且针对事件0的时间戳的k个最高有效位被存储在计时条目602的数据字段 中。计时条目602的ID字段包括指示条目602是计时条目的预定值IDt。之后,在步骤S312中, 针对事件0的条目604被存储在存储装置206中。针对事件0的时间戳(TSo)的n个最低有效位 被存储在条目604的时间戳字段中,事件0的源的标识符(IDo)被存储在条目604的ID字段 中,并且与事件0有关的数据被存储在条目604的数据字段中。
[0046] 针对第二事件(事件1),时间戳的n个最低有效位与事件0的时间戳相比较尚未卷 绕。因此,响应于事件1发生,计时条目不被存储在存储装置206中。在步骤S312中,针对事件 1的条目606被存储在存储装置206中。针对事件1的时间戳(TSi)的n个最低有效位被存储在 条目606的时间戳字段中,事件1的源的标识符(I化)被存储在条目606的ID字段中,并且与 事件1有关的数据被存储在条目606的数据字段中。
[0047] 针对第=事件(事件2),时间戳的n个最低有效位与事件1的时间戳相比较尚未卷 绕。因此,响应于事件2发生,计时条目不被存储在存储装置206中。在步骤S312中,针对事件 2的条目608被存储在存储装置206中。针对事件2的时间戳(TS2)的n个最低有效位被存储在 条目608的时间戳字段中,事件2的源的标识符(I化)被存储在条目608的ID字段中,并且与 事件2有关的数据被存储在条目608的数据字段中。
[0048] 针对第四事件(事件3),时间戳的n个最低有效位与事件2的时间戳相比较尚未卷 绕。因此,响应于事件3发生,计时条目不被存储在存储装置206中。在步骤S312中,针对事件 3的条目610被存储在存储装置206中。针对事件3的时间戳(TS3)的n个最低有效位被存储在 条目610的时间戳字段中,事件3的源的标识符(I化)被存储在条目610的ID字段中,并且与 事件3有关的数据被存储在条目610的数据字段中。
[0049] 针对第五事件(事件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的数据字段中。
[0050] 从图6可W认识到,针对事件1、事件2和事件3的时间戳的最高有效k位不需要被存 储在存储装置206中,因为它们与存储在计时条目602的数据字段中的针对事件0的时间戳 的最局有效k位相同。
[0051] 图7示出了从存储装置206检索与特定事件有关的信息的方法的流程图。在下面描 述的示例中,日志记录单元202被用于从存储装置206检索日志记录数据。具体地,在下面描 述的示例中,从存储装置206检索与事件2有关的信息。然而,如W上所描述的,在一些其他 示例中,针对被日志记录的事件的条目可W被存储在日志记录单元202外部的日志存储装 置中(例如,存储器214中的RAM中)。在运些其他示例中,除了日志记录单元202W外的单元 可W被用于从日志存储装置检索日志记录数据,但是日志记录数据的检索的原理与在下面 描述的其中是日志记录单元202从存储装置206检索日志记录数据的示例中相同。
[0052] 在步骤S702中,控制逻辑204从存储装置206读取针对特定事件的特定条目(例如, 针对事件2的条目608)。如W上所描述的,与事件2有关的数据被包括在条目608的净荷中。 还如W上所描述的,针对事件2的时间戳(TS2)的n个最低有效位被存储在条目608的时间戳 字段中,因此通过读取条目608,可W确定针对事件的时间戳的运n位。然而,如W上所描述 的,针对事件2的完整时间戳包括N位,其中N〉n,因此存在针对事件2的时间戳的未包括在条 目608中的一些位。
[0053] 在步骤S704中,控制逻辑标识在存储装置中在特定条目之前的计时条目。运可W 通过标识存储装置206中在它的ID字段中具有预定值(IDt)的条目来完成。所标识的计时条 目是在特定条目之前最近存储在存储装置206中的计时条目。因此,在该示例中,在条目608 是针对其的信息被检索的事件的条目的情况下,计时条目602被标识为在条目608之前最近 存储在存储装置206中的计时条目。计时条目602在它的数据字段中具有时间戳的k个最高 有效位。
[0054] 在步骤S706中,控制逻辑将来自所标识的计时条目602的时间戳的k位与来自条目 608的时间戳字段的时间戳的n位连接在一起W由此构建针对事件2的时间戳。在该示例中, k = N-n,使得将k位与n位连接的结果是针对事件的N位时间戳。W运种方式,针对事件2的N 位时间戳即使在时间戳的位中的仅仅n个被包括在针对事件2的条目608中的情况下也被确 定。
[0055] 在W上描述的示例中,N位时间戳被划分成仅仅两段:如图4中示出的,最高有效k 位402和最低有效n位404,使得k = N-n"k位可W被包括在计时条目的数据字段中。然而,在 其他示例中,N位时间戳可W被划分成超过两段。一般地,时间戳可W是任意长度并且其可 W被划分成任意数目的端。图8示出了时间戳800的示例,时间戳800包括56位(即N=56),并 且时间戳800被划分成=段:最高有效m位802,下一最高有效k位804,W及最低有效n位806。 因此,在该示例中k<N-n。具体地,在该示例中N=m+k+n。
[0056] 类似于W上参考图3至图7给出的示例,时间戳的k位是比时间戳的n个最低有效位 更多的时间戳的有效位。具体地,时间戳的k位是除了时间戳的n个最低有效位W外的时间 戳的k个下一最低有效位。然而,在W上参考图8至图11描述的示例中,时间戳包括另外的m 位802,另外的m位802是比时间戳800的k位804更多的有效位。在图8中示出的示例中,时间 戳800被划分成=段,因为它包括太多位移将除了n个最低有效位W外的位中的全部放置到 计时条目的数据字段中。
[0057] 参考图9中示出的流程图来描述第二示例中的日志记录单元202的操作。事件发生 在图2中示出的计算机系统的处理单元中,并且如果那些事件要被日志记录,则在步骤S902 中,日志记录单元202的控制逻辑204接收要被日志记录的事件的指示,如W上关于步骤 S302所描述的。
[0058] 在步骤S904中,控制逻辑204确定针对要被日志记录的事件的N位时间戳。使用计 时时钟218来确定时间戳。在该示例中,时间戳包括如图8中示出的56位。时间戳800的n个最 低有效位806要被包括在针对被日志记录在存储装置206中的事件的条目的时间戳字段中。
[0059] 被存储在存储装置206中的条目的格式与在W上描述的示例中相同并且被示出在 图5中。因此,条目包括n位时间戳字段502和包ID字段和数据字段的净荷,例如,其中n=12, 并且其中ID字段包括12位并且数据字段包括k位,其中k = 24。在该示例中,存在两种类型的 计时条目:(i)第一级计时条目,其在它的净荷中包括k位的时间戳,W及(ii)第二级计时条 目,其在它的净荷中包括m位的时间戳。
[0060] 在步骤S906中,控制逻辑204确定是否存在已经存储在存储装置206中的其他条 目。如果当前条目将是存储在存储装置中的第一条目,则方法传递到步骤S912,否则方法传 递到步骤S908。运是因为针对要被包括在存储装置206中的第一条目没有先前条目,因此时 间戳的全部N位将被存储在存储装置206中。
[0061 ]在步骤S908中,控制逻辑204确定时间戳800的n个最低有效位806与存储在存储装 置中的先前条目的时间戳的对应n位相比较已经卷绕。如W上所描述的,确定时间戳的下段 (即,时间戳的n个最低有效位)是否已经卷绕等价于确定时间戳的上段(即时间戳的N-n个 最高有效位)是否已经改变。因此,可W认为是在步骤S908中,控制逻辑204确定时间戳800 的N-n个最高有效位(802和804)中的一个或多个最高有效位是否与针对先前事件的时间戳 的N-n个最高有效位中的对应一个或多个最高有效位是否不同,针对先前事件的先前条目 被存储在存储装置中。如果步骤S908中确定时间戳的n个最低有效位已经卷绕,则方法传递 到步骤S910。如果在步骤S308中确定时间戳的n个最低有效位尚未卷绕,则方法从步骤S908 传递到步骤S916。关于时间戳的n个最低有效位是否已经卷绕的确定可W如W上所描述的 例如通过确定与存储装置中的先前条目有关的事件的时间戳的k位(例如,通过标识存储装 置206中的先前第一级计时条目或从日志记录单元202的存储器的专口段检索运个)来执 行。
[0062] 在步骤S910中,控制逻辑204确定时间戳800的k位804与针对其的先前条目被存储 在存储装置206中的事件的时间戳的对应k位相比较已经卷绕。确定时间戳的k位是否已经 卷绕等价于确定时间戳的N-k-n个最高有效位是否已经改变。因此,在步骤S910中可W认为 控制逻辑204确定时间戳800的N-k-n个最高有效位802中的一个或多个最高有效位与针对 其的先前条目被存储在存储装置中的先前事件的时间戳的N-k-n个最高有效位中的对应一 个或多个最高有效位是否不同。
[0063] 在步骤S910中,为了确定时间戳的k位是否已经卷绕,控制逻辑204可W标识存储 装置206中的最近存储的第二级计时条目并确定被包括在第二级计时条目的净荷中的时间 戳的m位。运m位将在最近存储的条目不是第二级计时条目的情况下与针对最近存储的条目 的时间戳的m位相同。备选地,日志记录单元202可W包括被用于指示最近存储的计时条目 的时间戳的m位的存储器的专口段,由此无论何时新的第二级计时条目被存储在存储装置 206中,都利用针对新的第二级计时条目的时间戳的m位来替换先前存储在存储器的专口段 中的m位。通过运种方式,存储器的专口段将包括最近存储的第二级计时条目的m位,并且易 于控制逻辑204在步骤S910中检索运m位W确定先前条目的时间戳的m位。然而,运将使用日 志记录单元202中的m位的存储空间。当控制逻辑204已经确定与先前条目有关的事件的时 间戳的m位时,将运些位与在步骤S904中确定的时间戳的m位进行比较,并且如果它们相同, 则所确定的时间戳的k位尚未卷绕,但是如果它们不同,则所确定的时间戳的k位已经卷绕。
[0064] 如果在步骤S910中确定时间戳的k位已经卷绕,则方法传递到步骤S912。如果在步 骤S910中确定时间戳的k位尚未卷绕,则方法从步骤S910传递到步骤S914。
[0065] 在步骤S912中,控制逻辑204使第二级计时条目被存储在存储装置206中。第二级 计时条目包括时间戳800的m位802的集合。时间戳800的m位802被包括在第二级计时条目的 净荷中,例如,数据字段506中。时间戳800的n个最低有效位806被包括在第二级计时条目的 时间戳字段502中。控制逻辑204将第二级计时条目的ID字段504设置为指示第二级计时条 目的预定值(例如值一)。W运种方式,可W通过标识在ID字段中具有第二预定值的条目来 标识存储装置206中的第二级计时条目。因此,运提供用于标识在存储装置206中的第二级 计时条目的简单方式。
[0066] 在步骤S912中,控制逻辑204使第一级计时条目被存储在存储装置206中。第一级 计时条目包括时间戳800的k位804的集合。时间戳800的k位804被包括在第一级计时条目的 净荷中,例如数据字段506中。时间戳800的n个最低有效位806被包括在第一级计时条目的 时间戳字段502中。控制逻辑204将第一级计时条目的ID字段504设置为指示第一级计时条 目的预定值(例如,零值)。W运种方式,可W通过标识在ID字段中具有第一预定值的条目来 标识存储装置206中的第一级计时条目。因此,运提供用于标识在存储装置206中的第一级 计时条目的简单方式。
[0067] 在步骤S916中,控制逻辑204使针对事件的条目被存储在存储装置206中。时间戳 800的n个最低有效位806被包括在针对事件的条目500的时间戳字段502中。与事件有关的 数据被包括在针对事件的条目500的净荷中。也就是说,针对事件的条目的ID字段504包括 引发事件发生的处理单元(例如,信号处理单元210)的指示。数据字段506包括与发生的事 件有关的数据。
[0068] 针对发生在计算机系统中的多个事件中的每个执行图9中示出的方法。如果在步 骤S908中控制逻辑204确定时间戳的n个最低有效位与针对先前事件的时间戳的对应n个最 低有效位相比较尚未卷绕,则计时条目不需要被存储(即不执行步骤S910、步骤S912和步骤 S914),其中针对先前事件的先前条目被存储在存储装置中。"先前条目"是最近存储在存储 装置206中的条目。条目被存储在存储装置206中的顺序被保留,使得最近存储的条目易于 在存储装置206中标识出。如果时间戳的n个最低有效位404尚未卷绕,则运意味着时间戳的 (m+k)个最高有效位802和804与先前条目的时间戳的对应(m+k)位相同。因此时间戳的(m+ k)个最高有效位不需要再次被存储在存储装置206中,即,不需要计时条目。
[0069] 图10示出了存储在存储装置206中的针对六个事件的序列(事件0到事件5)的多个 条目(1002到1022)的示例。在步骤S912中,响应于第一事件(事件0)发生,计时条目1002被 存储在存储装置206中。针对事件0的时间戳(TSo)的n个最低有效位被存储在第二级计时条 目1002的时间戳字段中,并且针对事件0的时间戳的m个最高有效位被存储在第二级计时条 目1002的数据字段中。第二级计时条目1002的ID字段包括指示条目1002是第二级计时条目 的预定值IDt2。之后,在步骤S914中,第一级计时条目1004被存储在存储装置206中。针对事 件0的时间戳(TSo)的n个最低有效位被存储在第一级计时条目1004的时间戳字段中,并且 针对事件0的时间戳的k位被存储在第一级计时条目1004的数据字段中。第一级计时条目 1004的ID字段包括指示条目1004是第一级计时条目的预定值IDti。之后,在步骤S916中,条 目1006被存储在存储装置206中。针对事件0的时间戳(TSo)的n个最低有效位被存储在条目 1006的时间戳字段中,事件0的源的标识符(IDo)被存储在条目1006的ID字段中,并且与事 件O有关的数据被存储在条目1006的数据字段中。
[0070] 针对第二事件和第=事件(事件1和事件2),它们的时间戳的n个最低有效位与事 件0的时间戳相比较尚未卷绕。因此,响应于运些事件发生,计时条目不被存储在存储装置 206中。相反,针对事件1的条目1008被存储在存储装置206中。针对事件1的时间戳(TSi)的n 个最低有效位被存储在条目1008的时间戳字段中,事件1的源的标识符(1化)被存储在条目 1008的ID字段中,并且与事件1有关的数据被存储在条目1008的数据字段中。针对事件2的 条目1010被存储在存储装置206中。针对事件2的时间戳(TS2)的n个最低有效位被存储在条 目1010的时间戳字段中,事件2的源的标识符(I化)被存储在条目1010的ID字段中,并且与 事件2有关的数据被存储在条目1010的数据字段中。
[0071] 针对第四(事件3),时间戳的n个最低有效位与事件2的时间戳相比较已经卷绕,但 是时间戳的k位与事件2的时间戳相比较尚未卷绕。因此,在步骤S914中,第一计时条目1012 被存储在存储装置206中。针对事件3的时间戳(TS3)的n个最低有效位被存储在计时条目 1012的时间戳字段中,针对事件3的时间戳的k位被存储在第一级计时条目1012的数据字段 中。第一级计时条目1012的ID字段包括指示条目1012是第一级计时条目的预定值IDti。针对 事件3的时间戳(TS3)的n个最低有效位被存储在条目1014的时间戳字段中,事件3的源的标 识符(I化)被存储在计时条目1014的ID字段中,并且与事件3有关的数据被存储在条目1014 的数据字段中。
[0072] 针对第五事件(事件4),时间戳的n个最低有效位与事件3的时间戳相比较尚未卷 绕。因此,响应于事件4发生,计时条目不被存储在存储装置206中。在步骤S916中,针对事件 4的条目1016被存储在存储装置206中。针对事件4的时间戳(TS4)的n个最低有效位被存储 在条目1016的时间戳字段中,事件4的源的标识符(ID4)被存储在条目1016的ID字段中,并 且与事件4有关的数据被存储在条目1016的数据字段中。
[0073] 针对第五事件(事件5),时间戳的n个最低有效位和时间戳的k位与事件4的时间戳 相比较已经卷绕。因此,在步骤S912中,第二级计时条目1018被存储在存储装置206中。针对 事件5的时间戳(TSs)的n个最低有效位被存储在第二级计时条目1018的时间戳字段中,并 且针对事件5的m个最高有效位被存储在第二级计时条目1018的数据字段中。第二级计时条 目1018的ID字段包括指示条目1018是第二级计时条目的预定值IDt2。之后,在步骤S914,第 一级计时条目1020被存储在存储装置206中。针对事件5的时间戳(TSs)的n个最低有效位被 存储在第一级计时条目1020的时间戳字段中,并且针对事件5的时间戳的k位被存储在第一 级计时条目1020的数据字段中。第一级计时条目1020的ID字段包括指示条目1020是第一级 计时条目的预定值IDti。之后在步骤S916中,针对事件5的条目1022被存储在存储装置206 中。针对事件5的时间戳(TSs)的n个最低有效位被存储在条目1022的时间戳字段中,事件5 的源的标识符(I化)被存储在条目1022的ID字段中,并且与事件5有关的数据被存储在条目 1022的数据字段中。
[0074] 从图10可W认识到,针对事件1、事件2、事件3和事件4的时间戳的m个最高有效位 不需要被存储在存储装置206中,因为它们与存储在第二级计时条目1002的数据字段中的 针对事件0的时间戳的最高有效m位相同。另外,针对事件1、事件2和事件4的时间戳的k位不 需要被存储在存储装置206中,因为它们与存储在第一级计时条目1004的数据字段中的针 对事件0的时间戳的k位或者存储在第一级计时条目1012的数据字段中的针对事件3的时间 戳的k位相同。
[0075] 图11示出了当如W上参考图8至图10所描述的时间戳被划分成S段时从日志记录 单元202检索与特定事件有关的信息的方法的流程图。在下面描述的示例中,日志记录单元 202被用于从存储装置206检索日志记录数据。具体地,在下面描述的示例中,从存储装置 206检索与事件3有关的信息。然而,如W上所描述的,在一些其他示例中,针对被日志记录 的事件的条目可W被存储在日志记录单元202外部的日志存储装置中(例如,存储器214中 的RAM中)。在运些其他示例中,除了日志记录单元202 W外的单元可W被用于从日志存储装 置检索日志记录数据,但是日志记录数据的检索的原理与在下面描述的其中是日志记录单 元202从存储装置206检索日志记录数据的示例中相同。
[0076] 在步骤Sl 102中,控制逻辑204从存储装置206读取针对特定事件的特定条目(例 如,针对事件3的条目1014)。如W上所描述的,与事件3有关的数据被包括在条目1014的净 荷中。还如W上所描述的,针对事件3的时间戳(TS3)的n个最低有效位被存储在条目1014的 时间戳字段中,因此通过读取条目1014,可W确定针对事件的时间戳的运n位。然而,如W上 所描述的,针对事件3的完整时间戳包括N位,其中N〉n,因此存在针对事件3的时间戳的未包 括在条目1014中的一些位。
[0077] 在步骤S1104中,控制逻辑标识在存储装置中在特定条目之前的第一计时条目。运 可W通过标识存储装置206中在它的ID字段中具有预定值(IDti)的条目来完成。所标识的第 一计时条目是在特定条目之前最近存储在存储装置206中的第一计时条目。因此,在该示例 中,在条目1014是针对其的信息被检索的事件的条目的情况下,第一计时条目1012被标识 为在条目1014之前最近存储在存储装置206中的第一计时条目。第一计时条目1012在它的 数据字段中具有时间戳的k位。
[0078] 在步骤S1106中,控制逻辑标识在存储装置中在特定条目之前的第二计时条目。运 可W通过标识存储装置206中在它的ID字段中具有预定值(IDt2)的条目来完成。所标识的第 二计时条目是在特定条目之前最近存储在存储装置206中的第二计时条目。因此,在该示例 中,在条目1014是针对其的信息被检索的事件的条目的情况下,第二计时条目1002被标识 为在条目1014之前最近存储在存储装置206中的第二计时条目。第二计时条目1002在它的 数据字段中具有时间戳的m个最高有效位。
[0079] 在步骤S1108中,控制逻辑将来自所标识的第二级计时条目1002的时间戳的m位与 来自所标识的第一级计时条目1012的时间戳的k位和来自条目1014的时间戳字段的时间戳 的n位连接在一起W由此构建针对事件3的时间戳。在该示例中,N = m+k+n,使得将m位、k位 和n位连接的结果是针对事件的N位时间戳。W运种方式,针对事件3的N位时间戳即使在时 间戳的位中的仅仅n个被包括在针对事件3的条目1014中的情况下也被确定。
[0080] 根据W上描述的示例,可W增加被包括在时间戳中的位的数目(N),使得时间戳较 不频繁地卷绕,意味着被日志记录的事件的时间流较不频繁地丢失。运在也减少被包括在 条目中的每个的时间戳字段中的位的数目(n)的同时来实现,使得条目的更多位可W被用 于净荷。运被实现的方式是通过在时间戳的n个最低有效位已经卷绕时包括额外的计时条 2邱 目。在总的时间戳卷绕时间了专用于时间戳的普通日志条目(即,非计时条目)的位的 V / \ 数目、W及由时间戳在存储装置206中占据的日志空间的总量之间存在权衡。
[0081] 本文中描述的示例尤其对其中用于日志记录目的的存储器空间可W尤其例如与 逻辑分析器中执行的日志记录相比较有限的跟踪日志记录有用。根据日志记录单元要被使 用的条件(例如,事件发生的预期频率)并且还基于计时时钟218的频率来设置n、k、m和N的 值。备选地,计时时钟218的频率可W基于W下中的一项或多项来设置:(i)事件的预期频 率,(ii)n的值,W及(iii)N的值。增大计时时钟218的频率将增大时间戳的分辨率,由此提 供针对存储在存储装置206中的事件的相对计时的更大准确度。然而,增大计时时钟218的 频率还将减少时间戳将卷绕的时间。例如,利用N位时间戳和f的计时时钟频率,在时间t的 事件的时间戳将与在^的时间的时间戳相同。因此当f增大时,卷绕时间^ ^将减 少。因此,存在考虑在将f设置很高W在事件的计时之间进行区分与将f设置很低W避免时 间戳归因于存在其中没有事件发生的时间段使得被日志记录的事件的时间流丢失而变得 有歧义之间的权衡。因此,基于事件的预期频率来设置计时时钟218的频率f。例如,如果计 算机系统被用于在WiFi收发器中的信号处理,则可能包括指示分组头和数据净荷的事件的 事件很有可能快速地发生,因此计时时钟218的频率可W被设置为很高(例如,在350MHz) W 在不同事件的计时之间进行区分。在相反的示例中,如果计算机系统被用于在电子阅读器 中使用,则事件很有可能W较低的频率发生,因此计时时钟218的频率可W被设置为更低 (例如,在1 OMHz) W避免时间戳在事件之间的时间上变得有歧义。如W上所提到的,由日志 记录单元202使用的计时时钟218可W不被用于调节计算机系统中的其他部件的计时,因此 设置计时时钟218的频率可W不影响由计算机系统的其他部件使用的时钟。
[0082] 如W上在【背景技术】部分所描述的,如果计时时钟的频率是350MHz,则18位时间戳 将每74化S(即
)卷绕一次。然而,当使用在350MHz的计时时钟,(例如,如图 4中所示)36位时间戳将每196s(即
)卷绕一次。另外,当使用在350MHz的计时 时钟时,(例如,如图8中示出的)56位时间戳将大约每年(即
年)卷绕一次。
[0083] 本领域技术人员容易理解,在W上描述的示例中给出的具体数字中的任何能够被 改变为其他适当的值。例如,在W上描述的示例中,每个条目包括48位,但是在其他示例中 条目可W包括不同数目的位。另外,在W上描述的示例中,条目的净荷包括ID字段和数据字 段。在其他示例中,净荷可W包括额外字段或备选字段,并且字段的大小可W与W上描述的 那些不同。另外,一般地,n> 1并且k> 1。
[0084] W上描述的实施例仅仅通过举例的方式来给出。更一般地,如W上所提到的,时间 戳可W被划分成任何数目的段或"等级"。本领域技术人员容易理解如何利用被划分成超过 =段的时间戳来实施本文中描述的方法。
[0085] 在W上描述的示例中,计时条目在它的时间戳字段中包括针对事件的时间戳的n 个最低有效位。例如,图6中示出的计时条目612在它的时间戳字段中包括针对事件4的时间 戳的n个最低有效位(TS4)。然而,注意,当计时条目被存储时存在时间戳的n个最低有效位 的存储的副本。运可W在图6中看到,因为当计时条目(计时条目602和计时条目612)被存储 时,计时条目的时间戳字段中的位与存储装置中的下一条目(条目604和条目614)的时间戳 字段中的位相同。因此,在其他示例中,计时条目的时间戳字段可W包括除了时间戳的n个 最低有效位W外的位。通过运种方式,更多的时间戳位可W被包括在计时条目中。例如,k的 值可W大于能够被包括在条目的数据字段中的位的数目。例如,通过比较图4和图5,可W使 用48位时间戳,其中n = 12并且k = 36,但是仍然可W使用计时条目中的仅仅一个等级,因为 计时条目可W包括时间戳的36位。运可W通过在数据字段506中包括时间戳的24位并且在 计时条目的时间戳字段502中包括时间戳的另外的12位来实现。通过运种方式,时间戳的k 位被分布在计时条目的数据字段和时间戳字段上。运不会引起问题,因为时间戳的n个最低 有效位被包括在下一条目的时间戳字段中(例如,图6中示出的条目604和条目614中)。W运 种方式,去除了对时间戳的n个最低有效位的存储的副本。例如,运将允许在没有额外代价 的情况下根据存储额外计时条目的需要使用48位时间戳(而非如W上所描述的示例中的36 位时间戳)。更一般地,时间戳的k位的集合中的一些位可W被包括在计时条目的净荷中,并 且时间戳的k位的集合中的其他位可W被包括在计时条目的时间戳字段中。
[0086] -般地,W上描述的功能、方法、技术或部件中的任何(例如,日志记录单元202)可 W被实施在使用软件、固件、硬件(例如,固定逻辑电路)或者运些实施方式中的任何组合的 模块中。术语"模块"、"功能"、"部件"、"块"、"单元"和"逻辑"在本文中被用于总体上表示软 件、固件、硬件或其任何组合。
[0087] 在控制逻辑204的软件实施方式的情况下,控制逻辑表示当运行在处理器上时执 行指定任务的程序代码。在一个示例中,描述的控制逻辑可W通过被配置具有W机器可读 形式存储在计算机可读介质上的软件的计算机来执行。计算机可读介质的一个运样的配置 是信号承载介质并且因此被配置为将指令(例如,作为载波)例如经由网络发送到计算设 备。计算机可读介质还可W被配置为非暂态计算机可读存储介质并且因此不是信号承载介 质。计算机可读存储介质的示例包括随机存取存储器(RAM)、只读存储器(ROM)、光盘、闪速 存储器、硬盘存储器和可W使用磁性技术、光学技术和其他技术来存储指令或其他数据,并 且可W由机器访问的其他存储器设备。
[0088] 所述软件可W W包括用于将计算机配置为执行描述的方法的构成部分的计算机 程序代码的计算机程序的形式或者W包括适于在程序在计算机上运行时执行本文中描述 的方法中的任何的全部步骤的计算机程序代码模块的计算机程序的形式,并且其中所述计 算机程序可W被实现在计算机可读介质上。程序代码可W被存储在一个或多个计算机可读 介质中。本文中描述的技术的特征是平台无关的,意味着所述技术可W被实施在具有各种 处理器的各种计算平台上。
[0089] 本领域技术人员还将意识到,本文中描述的功能、技术或方法中的全部或部分可 W由专用电路、专用集成电路、可编程逻辑阵列、现场可编程口阵列等等来实现。例如,所述 模块、功能、部件、单元、或逻辑(例如,日志记录单元202和其部件)可W包括W电路的形式 的硬件。运样的电路可W包括在制造工艺中可用的晶体管和/或其他硬件元件。运样的晶体 管和/或其他元件可W被用于形成实施和/或包含通过举例的方式诸如寄存器、触发器或锁 存器的存储器、诸如布尔运算的逻辑运算符、诸如加法器、乘法器或移位器的数学运算符W 及互连件的电路或结构。运样的元件可W被提供为经典电路或标准单元库、宏、或者在其他 级别的抽象。运样的元件可W被相互连接在特定布置中。所述模块、功能、部件、单元、或逻 辑(例如,日志记录单元202的部件)可W包括为固定功能的电路和可W被编程为执行一个 或多个功能的电路;运样的编程可W根据固件或软件更新或控制机制来提供。在示例中,硬 件逻辑具有实施固定功能操作、状态机或过程的电路。
[0090] 还意图包含"描述"或定义实施W上描述的模块、功能、部件、单元或逻辑(例如,日 志记录单元202的部件)的硬件的配置的软件,例如HDL(硬件描述语言)软件,如被用于设计 集成电路或者用于将可编程忍片配置为实现期望功能。也就是说,可W提供一种计算机可 读存储介质,其具有编码在其上的W集成电路定义数据集的形式的计算机可读程序代码, 所述集成电路定义数据集当在集成电路制造系统中被处理时将所述系统配置为制造被配 置为执行本文中描述的方法中的任何的日志记录单元或者制造包括本文中描述的任何装 置的日志记录单元。IC定义数据集可W W例如W诸如寄存器传输级(RTL)代码的适当的HDL 编写的计算机代码的形式。在集成电路制造系统处理集成电路定义数据集从而将所述系统 配置为制造日志记录单元的示例现在将参考图12进行描述。
[0091] 图12示出了包括布局处理系统1204和集成电路生成系统1206的集成电路(IC)制 造系统1202的示例。IC制造系统1202被配置接收IC定义数据集(例如,定义如在本文中的示 例中的任何中描述的日志记录单元)、处理IC定义数据集并且根据IC定义数据集来生成IC (例如,其实现如在本文中的示例中的任何中描述的日志记录单元)。对IC定义数据集的处 理将IC制造系统1202配置为制造实现如在本文中的示例中的任何中描述的日志记录单元 的集成电路。更具体地,布局处理系统1204被配置为接收并处理ID定义数据集W确定电路 布局。根据IC定义数据集来确定电路布局的方法是本领域中已知的,并且例如可W设及合 成CTL代码W确定要被生成的电路的口级表示,例如在逻辑部件方面(例如,NAND、NOR、AND、 0R、MUX和化IP-FLOP部件)。电路布局可W通过确定针对逻辑部件的位置信息根据电路的口 级表示来确定。运可W自动地或者在用户参与的情况下完成W便优化电路布局。当布局处 理系统1204已经确定电路布局时,其可W将电路布局定义输出到IC生成系统1206 JC生成 系统1206根据电路布局定义来生成1C,如本领域中已知的。例如,IC生成系统1206可W实施 半导体器件制造工艺W生成1C,其可W设及光刻和化学处理步骤的多个步骤序列,期间电 子电路逐渐地被创建在由半导体材料制成的晶片上。电路布局定义可W W掩膜的形式,其 可W被使用在光刻工艺中W用于根据电路定义来生成1C。备选地,被提供到IC生成系统 1206的电路布局定义可W W计算机可读代码的形式,IC生成系统1206可W使用其来形成用 于在生成IC中使用的适当的掩膜。由IC制造系统1202执行的不同工艺可W全部在一个位置 中,例如,通过一方被实施。备选地,IC制造系统1202可W是分布式系统使得工艺中的一些 可W在不同位置处被执行,并且可W通过不同方来执行。例如,W下的阶段中的一些:(i)合 成表示IC定义数据集的CTL代码W形成要被生成的电路的口级表示,(ii)基于口级表示来 生成电路布局,(iii)根据电路布局来形成掩膜,并且(iv)使用掩膜来制造集成电路可W在 不同位置中和/或通过不同方来执行。
[0092] 在其他示例中,在集成电路制造系统处对集成电路定义数据集的处理可W将系统 配置为在没有处理IC定义数据集的情况下制造日志记录单元从而确定电路布局。例如,集 成电路定义数据集可W定义可配置处理器(例如,FPGA)的配置,并且对该数据集的处理可 W将IC制造系统配置为(例如,通过将配置数据加载到FPGA)生成具有该定义的配置的可配 置处理器。
[0093] 在一些示例中,集成电路定义数据集可W包括运行在由数据集定义的硬件上或与 由数据集定义的硬件组合地运行的软件。在图12示出的示例中,IC生成系统还可W由集成 电路定义数据集配置为在制造集成电路时将根据在集成电路定义数据集处定义的程序代 码的固件加载到该集成电路上或者W其他方式向集成电路提供程序代码W用于与集成电 路一起使用。
[0094] 术语'处理器'和'计算机'在本文中用于指代具有使得其可W运行指令的处理能 力的任何设备或其部分或者可W执行所述功能或方法中的全部或部分的专用电路、或者其 任何组合。
[0095] 尽管本主题已经W特定于结构特征和/或方法动作的语言进行描述,但是要理解 权利要求中限定的主题不一定限于W上描述的具体特征或动作。相反,W上描述的具体特 征和动作被公开为实施权利要求的示例形式。应当理解,W上描述的益处和优点可W设及 一个示例或可W设及若干示例。
[0096] 本技术人员容易理解,可W在不丧失寻求的效果的情况下扩展或更改本文中给出 的任何范围或值。本文中描述的方法步骤可W W任何适当的顺序或者在合适的情况下同时 地来执行。在不丧失寻求的效果的情况下,W上描述的示例中的任何的方面可W与描述的 其他示例中的任何的方面进行组合W形成另外的示例。
【主权项】
1. 一种用于通过使得条目被存储在存储装置中来对事件进行日志记录的日志记录单 元,其中所述条目中的每个条目包括η位时间戳字段和净荷,所述日志记录单元包括控制逻 辑,所述控制逻辑被配置为: 确定针对要被日志记录的事件的时间戳,其中所确定的时间戳包括Ν位,其中Ν>η; 在所确定的时间戳的Ν-η个最高有效位中的一个或多个最高有效位与针对先前事件的 时间戳的Ν-η个最高有效位中的对应一个或多个最高有效位不同的情况下,使得包括所确 定的时间戳的k位的集合的计时条目被存储在所述存储装置中,针对所述先前事件的先前 条目被存储在所述存储装置中,所述k位是比所确定的时间戳的η个最低有效位更多的所确 定的时间戳的有效位;以及 使得针对所述事件的条目被存储在所述存储装置中,其中所确定的时间戳的η个最低 有效位被包括在针对所述事件的所述条目的所述时间戳字段中。2. 根据权利要求1所述的日志记录单元,其中所述k位是除了所确定的时间戳的所述η 个最低有效位以外的所确定的时间戳的下k个最低有效位。3. 根据权利要求1或2所述的日志记录单元,其中所述控制逻辑被配置为使得所确定的 时间戳的k位的所述集合被包括在所述计时条目的所述净荷中。4. 根据前述权利要求中的任一项所述的日志记录单元,其中所述控制逻辑被配置为使 得所确定的时间戳的η个最低有效位被包括在所述计时条目的所述时间戳字段中。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 位与来自所述特定条目的所述时间戳字段的所述时间戳的所述η位连接在一起。16. 根据权利要求15所述的日志记录单元,其中所标识的计时条目是在所述特定条目 之前存储在所述存储装置中的最近计时条目。17. -种用于通过将条目存储在存储装置中来对事件进行日志记录的方法,所述条目 中的每个条目包括η位时间戳字段和净荷,所述方法包括: 确定针对要被日志记录的事件的时间戳,其中所确定的时间戳包括Ν位,其中Ν>η; 在所确定的时间戳的Ν-η个最高有效位中的一个或多个最高有效位与针对先前事件的 时间戳的Ν-η个最高有效位中的对应一个或多个最高有效位不同的情况下,将计时条目存 储在所述存储装置中,针对所述先前事件的先前条目被存储在所述存储装置中,所述计时 条目包括所确定的时间戳的k位的集合,所述k位是比所确定的时间戳的η个最低有效位更 多的所确定的时间戳的有效位;以及 将针对所述事件的条目存储在所述存储装置中,其中所确定的时间戳的η个最低有效 位被包括在针对所述事件的所述条目的所述时间戳字段中。18. -种用于从被配置为存储条目的存储装置检索与特定事件有关的信息的方法,所 述条目中的每个条目包括η位时间戳字段和净荷,并且其中所述特定事件与包括Ν位的时间 戳相关联,其中Ν>η,所述方法包括: 从所述存储装置读取针对所述特定事件的特定条目,其中所述时间戳的η个最低有效 位被包括在所述特定条目的所述时间戳字段中; 标识所述存储装置中在所述特定条目前面的计时条目,其中所标识的计时条目包括针 对所述特定条目的所述时间戳的k位的集合,所述k位是比所述时间戳的η个最低有效位更 多的所述时间戳的有效位;以及 将来自所标识的计时条目的所述时间戳的所述k位与来自所述特定条目的所述时间戳 字段的所述时间戳的所述η位连接在一起,以用于在构建针对所述特定事件的所述时间戳 中使用。19. 根据权利要求18所述的方法,其中k = Ν-η,其中所述连接的结果是针对所述特定事 件的所述时间戳。20.根据权利要求18所述的方法,其中k〈N-n,其中所述所标识的计时条目是第一级计 时条目,并且其中所述方法还包括: 标识所述存储装置中的在所标识的第一级计时条目前面的第二级计时条目,其中所标 识的第二级计时条目包括针对所述特定条目的所述时间戳的m位的集合,所述m位是比所述 时间戳的所述k位更多的所述时间戳的有效位; 其中来自所标识的第二级计时条目的所述时间戳的所述m位与来自所标识的第一级计 时条目的所述时间戳的所述k位和来自所述特定条目的所述时间戳字段的所述时间戳的所 述η位连接在一起,以用于在构建针对所述特定事件的所述时间戳中使用。
【文档编号】G06F11/30GK106021058SQ201610170236
【公开日】2016年10月12日
【申请日】2016年3月23日
【发明人】P·默林, G·戴维斯
【申请人】想象技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1