CN105183628B - 一种嵌入式系统日志收集装置、记录系统及方法 - Google Patents
一种嵌入式系统日志收集装置、记录系统及方法 Download PDFInfo
- Publication number
- CN105183628B CN105183628B CN201510690375.XA CN201510690375A CN105183628B CN 105183628 B CN105183628 B CN 105183628B CN 201510690375 A CN201510690375 A CN 201510690375A CN 105183628 B CN105183628 B CN 105183628B
- Authority
- CN
- China
- Prior art keywords
- daily record
- record data
- buffer
- cpu
- log
- 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.)
- Active
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种嵌入式系统日志收集装置、记录系统及方法,日志收集装置包括:预处理模块:负责收集CPU的日志数据并在每条日志数据后添加时间戳信息;后处理模块:负责将预处理模块处理后的日志数据保存到外置缓存buffer、直接输出到外设输出接口、保存到NVM中。本发明将日志功能从软件剥离出来,交由日志收集装置实现,提高了日志运行效率和整个嵌入式系统的工作效率,降低了整个嵌入式系统,尤其是多CPU的ASIC的制造成本;由LGM统一管理时间戳,降低了日志解析的难度;LGM的主要工作方式、每个关键环节的运行策略均由CPU配置,提高了模块本身及整个系统的灵活性,提高了本发明的适用性。
Description
技术领域
本发明涉及一种嵌入式系统日志收集装置、记录系统及方法。
背景技术
对于嵌入式系统来讲,日志不仅是一种必要、常见且高效的调试开发手段,也是一种重要的产品维护手段。与其它通用CPU系统相比,嵌入式系统的资源有限。其日志系统的实现往往会受到多方面因素的制约,如制造成本、功耗等。其日志系统的要求是在有限的资源下,尽可能保证功能丰富强大、高效且代价小。日志功能越丰富、越强大,在产品、开发、调试、维护过程中所起的作用越大;日志效率越高、实现代价越小,对嵌入式系统资源要求就越低,产品更具竞争力。
嵌入式系统主要由软件完成日志功能,CPU需要参与日志运行的所有环节:生成、记录、管理、输出与保存。常见的日志运行流程如图1所示。
需要记录日志时,首先由软件按照自定义的格式生成日志数据(包括插入时间戳),再将日志数据按需要做如下的处理:直接将日志数据输出到外设接口,如UART;直接将日志数据保存到非易失性介质,如NAND Flash;先将日志数据写到缓存buffer,记录日志流程结束。日志的输出与保存由专门的软件模块或CPU来负责。在多CPU嵌入式系统中,常见的日志记录方法是:每个CPU负责各自日志的生成,包括加入时间戳;为每个CPU分配独立的缓存buffer,生成的日志首先被保存到本地的缓存buffer中;每个CPU需要管理属于自己的缓存buffer;一定条件满足时,由系统中负载最小的CPU负责将其它CPU缓存buffer里的日志数据保存到另外一块大的缓存buffer中,再统一将其输出到外设接口或保存到非易失性介质中。
在上述方案中,日志运行的每个环节均需要软件参与完成,需要占用嵌入式系统中紧张的CPU资源。设计时,为了保证日志功能,会在保证系统所需业务的基础上提高CPU的规格(如时钟、RAM空间等),这会增加系统成本与功耗;日志的输出与保存由软件控制实现,这通常是一个耗时的流程,与系统内其它业务,尤其是关键业务抢夺资源,降低了日志整体运行效率,也大大降低了整个系统的工作效率;多CPU情形下,各个CPU单独管理自己日志的时间戳。这直接导致了日志数据时间先后及关联性不易确认的问题,加大了日志解析的难度。
发明内容
本发明所要解决的技术问题是,针对现有技术不足,提供一种嵌入式系统日志收集装置、记录系统及方法。
为解决上述技术问题,本发明所采用的技术方案是:一种嵌入式系统日志收集装置,包括:
预处理模块:负责收集CPU的日志数据并在每条日志数据后添加时间戳信息;
后处理模块:负责将预处理模块处理后的日志数据保存到外置缓存buffer、或者直接输出到外设输出接口、或者保存到NVM中。
优选地,本发明的装置还包括内部缓存空间:用于暂存由预处理模块处理后的日志数据。
优选地,所述预处理模块包括:
仲裁器:用于为收集控制器从哪一组FIFO中取数据提供仲裁;
FIFO:用于缓存CPU发送的日志数据;
收集控制器:用于从FIFO里取日志数据;根据记录了不同属性日志处理策略的属性表确定是否丢弃日志数据;向待处理的日志数据中插入时间戳,并将插入时间戳后的日志数据写到对应的内部缓存空间中,同时管理内部缓存空间的各子空间和FIFO的状态。
优选地,所述后处理模块包括BE控制器和SRAM控制器,所述BE控制器通过 SRAM控制器将内部缓存空间的日志数据写到外置buffer中,通过 SRAM 控制器将外置Buffer的日志数据读出并送给外设输出接口,同时所述BE控制器负责外置缓存buffer空间的管理。
优选地,所述日志收集装置还包括:
属性表:用于记录不同属性日志数据的处理策略,所述属性表包括多个大小、格式相同的元素,每个元素对应一种日志数据类别;
映射表:用于记录每个类别的日志数据写到内部缓存空间与外置buffer的哪个子空间。
优选地,所述内部缓存空间按照日志数据的类别划分为多个子空间;所述收集控制器管理每个子空间的写指针,所述BE控制器管理每个子空间的读指针。
所述外置缓存buffer按照日志数据的类别划分为多个子空间,方便记录不同类别的日志;所述BE控制器管理每个子空间的读指针与写指针。
本发明还提供了一种嵌入式系统日志记录系统,包括多个CPU、NVM和日志缓冲buffer;所述NVM与所述日志缓冲buffer连接;所述日志缓冲buffer与其中一个用于管理日志缓冲buffer、输出与保存日志的CPU连接;其还包括上述的日志收集装置;所述日志收集装置接收来自各CPU发送的日志数据,在每条日志数据后添加时间戳信息,并将添加了时间戳信息的日志数据输出至所述日志缓冲buffer,所述日志缓冲buffer将所述添加了时间戳信息的日志数据保存到所述NVM中;所述NVM与所述日志收集装置双向通信。
优选地,本发明的日志记录系统还包括外设输出接口;所述日志缓冲buffer与所述外设输出接口连接;所述外设输出接口与所述日志收集装置、用于管理日志缓冲buffer、输出与保存日志的CPU双向通信。
本发明还提供了一种利用上述日志记录系统实现日志记录的方法,包括以下步骤:
1)各CPU构造日志数据;
2)日志收集装置的预处理模块按照CPU配置的顺序从各CPU获取日志数据;
3)对于单一属性的日志数据,将当前系统时间戳信息插入到所获取的日志数据后;对于多属性的日志数据,直接丢弃CPU配置的待丢弃的日志数据,并将当前系统时间戳信息插入到留下的日志数据后;或者忽略CPU的配置信息,将当前系统时间戳信息插入到日志数据后;
4)预处理模块将经步骤3)处理后的数据写到内部缓存空间;
5)判断是否丢弃内部缓存空间内的数据,若是,返回步骤3);否则,进入步骤6);
6)采用下列方式中的一种保存日志数据:将内部缓存空间的日志数据保存到外置buffer中,进入步骤7);后处理模块完成日志数据的输出,CPU将输出的日志数据的保存到NVM中,进入步骤8);内部缓存空间完成日志数据的保存,CPU完成日志数据的输出,进入步骤8);后处理模块直接将内部缓存空间中的日志数据发送给外设输出接口及写到NVM中,进入步骤7);后处理模块先将内部缓存空间中的日志数据写到外置buffer,然后在合适的时间,后处理模块从外置buffer空间中读取日志数据并将其输出到外设输出接口及NVM中,进入步骤7);
7)判断是否丢弃日志数据,若是,进入步骤8);否则,将日志数据输出到外设输出接口,或者将日志数据写到NVM中;
8)结束。
与现有技术相比,本发明所具有的有益效果为:本发明将日志功能从软件剥离出来,交由日志收集装置实现,提高了日志运行效率和整个嵌入式系统的工作效率,降低了整个嵌入式系统,尤其是多CPU的ASIC的制造成本;由LGM(日志收集装置)统一管理时间戳,降低了日志解析的难度;LGM的主要工作方式、每个关键环节的运行策略均由CPU配置,提高了装置本身及整个日志记录系统的灵活性,提高了本发明的适用性。
附图说明
图1为现有的日志运行流程图;
图2为本发明日志记录系统框图;
图3为本发明日志运行方法流程图;
图4为本发明实施例日志记录系统实现框图;
图5为本发明实施例日志消息格式;
图6为本发明实施例ARB运行流程图;
图7为本发明实施例Gather Controller 运行流程图;
图8为本发明实施例添加完时间戳后的日志消息格式示意图;
图9为图9(a)和图9(b)为本发明实施例BE Controller 运行流程示意图。
具体实施方式
如图2所示,本发明一实施例包括多个CPU、NVM和日志缓冲buffer、日志收集装置;所述NVM与所述日志缓冲buffer连接;所述日志缓冲buffer与其中一个用于管理日志缓冲buffer、输出与保存日志的CPU连接;所述日志收集装置接收来自各CPU发送的日志数据,在每条日志数据后添加时间戳信息,并将添加了时间戳信息的日志数据输出至所述日志缓冲buffer,所述日志缓冲buffer将所述添加了时间戳信息的日志数据保存到所述NVM中;所述NVM与所述日志收集装置双向通信。
LGM:Log Gathering Module,日志收集装置,接收来自各CPU发送的日志数据,记录、管理、输出与保存这些日志数据;
CPU_x:系统内的各CPU;CPU_1负责配置、管理LGM,还可承担日志缓冲buffer管理、日志输出与保存的功能;
Buffer:缓存日志用空间,LGM将处理后来自各CPU的日志数据保存到该模块中;
NVM:非易失性介质,用于保存最终的日志数据,包括但不限于NOR Flash、NANDFlash;
IF:用于输出日志数据的外设输出接口,包括但不限于串口、并口与网口。
LGM包括以下部分:
预处理模块:负责收集各个CPU的日志数据并在每条日志数据后添加时间戳信息;将需要处理的日志数据保存到内部缓存子空间;
内部缓存空间:暂存由预处理模块处理后的日志数据;尽量保证LGM内部处理的高并行性;
后处理模块:负责将内部缓存空间中的日志数据保存到外置缓存buffer中、直接输出到外设输出接口、保存到NVM中。
实际运行中,不同业务场景下,整个系统的日志实际上具备不同的属性。包括但不限于以下几种:优先级:不同CPU间以及不同软件模块间日志重要程度是不一样的;所属模块:嵌入式系统的软件,通常会被划分成多个模块;各自模块的日志往往需要添加自身所属模块的信息。
在嵌入式系统开发、调试过程中,不同属性的日志,通常会有不同的处理要求。如对于优先级高,即关键日志,需要保证它的完整性。当资源不足或系统负载过重时,可以仅处理优先级高的日志,而丢弃优先级低的日志。在实际开发调试中,各模块的开发往往是分阶段的。在某个阶段,关注的是一个或某几个模块的日志。此时,可以集中资源保证所要关注模块的日志,而丢弃其它不需要关注的日志。
CPU记录日志的过程主要包括如下步骤:
1)产生日志记录需求时,构造所需日志数据;CPU不需要插入时间戳;构造的日志数据包含日志的属性信息。
2)将上一步得到的日志数据发送给LGM。
3)日志记录过程结束,各CPU可执行其它任务。
LGM中的预处理模块按照CPU配置的顺序从各CPU获取日志数据。获取日志数据后,LGM将当前系统时间戳信息插入到获取的日志数据后面,并将日志数据保存到LGM内部缓冲空间中。LGM支持按照CPU配置的策略来处理不同属性的日志。LGM的工作模式分为两种:
单一属性:忽略日志数据的属性信息。LGM不加区分的按照处理的顺序将日志数据保存到内部缓存空间中。
多属性:根据日志属性处理日志数据。这种模式下,LGM内部缓冲空间按照属性分为多个缓冲子空间。具体的处理方式可分为两种。第一种,CPU配置LGM哪些日志数据需要丢弃;对于需要丢弃的日志数据,直接丢弃;对于需要后续处理的日志数据,由CPU配置LGM将一种或几种属性的日志保存到某个唯一的缓存子空间中。第二种,忽略CPU配置信息(丢弃还是保留),同第一种方式中需要保留日志数据的处理一样,将日志数据保存到对应的内部缓存子空间中。
对于日志数据管理、输出与保存,由LGM中的后处理模块完成。本发明支持两种如下所示的方式。
非托管方式:由CPU(如图2中的CPU_1)负责日志数据的输出、保存与相应的管理。LGM的后处理模块仅需将内部缓存空间的日志数据保存到外置buffer中。日志数据的输出与保存由CPU完成。后处理模块需要辅助CPU完成外置buffer空间的管理。外置Buffer可用空间低于某个阈值(由CPU配置)时,后处理模块产生专门的中断给CPU,依据CPU配置继续还是暂停向外置buffer中写日志数据。CPU收到该中断后,需要立即将外置buffer中日志数据输出到外设输出接口,保存到NVM中。CPU还可在其空闲时处理外置buffer的数据,还可以通过定时器,周期性的处理外置buffer的数据。
半托管方式:分为两种。一种是LGM完成日志数据的输出,CPU完成日志数据的保存(保存到NVM);另一种是LGM完成日志数据的保存,CPU完成日志数据的输出。LGM的后处理模块将内部缓存空间中的日志数据写到外置buffer中,同时直接输出或将日志保存到 NVM。
全托管方式:由LGM独自完成日志数据的输出、保存及相应的管理。CPU 不参与。具体实现方式又可分为两种。一种是无外置buffer。LGM的后处理模块直接将内部缓存空间中的日志数据直接发送给外设输出接口及写到NVM中。另一种是有外置buffer。LGM的后处理模块先将内部缓存空间中的日志数据写到外置buffer。然后在合适的时间,后处理模块从外置buffer空间中读取日志数据并将其输出到外设输出接口及NVM。
多属性模式下,在有外置buffer的情况下,外置buffer将会按照日志属性被分成不同的buffer子空间。这些子空间与内部缓存子空间一一对应。后处理模块将某个内部缓存子空间的日志数据写到与之对应的外置buffer子空间中。
无论哪种方式,LGM的后处理模块按照CPU配置的策略来处理内部缓存模块中不同属性的日志数据。对于需要丢弃的日志,则直接丢弃;对于非丢弃的日志,后处理模块才从内部缓存中读取出来,送往后续处理模块。
在有外置buffer情况下,对于半托管方式及全托管方式,后处理模块按照CPU配置的策略从外置buffer读取数据。对于需要丢弃的日志数据,直接丢弃;对于需要非丢弃的日志数据,才从外置buffer里读取数据。
在本发明中,日志运行的流程如图3所示。
以下结合图4进一步阐述本发明的具体实现过程:本发明不需要将日志数据保存到NVM中;日志数据通过UART输出;每条日志具有两种属性。一种是产生该日志的CPU ID,另一种是优先级,共两级;整个系统中仅有2个CPU;使用上述方案说明中的全委托方式,需要外置buffer。这样做的好处是提高整个系统的工作效率。
图4中,LGM主要模块位于粗虚线框内。CPU_1、CPU_2为系统内的两个CPU。由CPU_1负责LGM与UART模块的配置与初始化。RTC模块为LGM提供时间戳信息。Log Data RAM为LGM缓存日志数据的内部缓存空间。Buffer为保存日志数据外置buffer。
Atribute Table,属性表,记录了不同属性日志的处理策略,由CPU_1配置(运行过程中可动态改变)。属性表由多个相同大小、格式的元素组成。每个元素与一种日志类别一一对应。每个元素大小为1Byte,目前其值有两种,0或1。为0,表示继续处理对应的日志,为1,表示直接丢弃对应的日志。元素的个数为日志类别的个数。对于当前实施例,两种属性,共4种类别。为每种类别的日志编号,分别为1、2、3与4。
Map Table,映射表,记录了每个类别的日志需要写到内部缓存空间与外置buffer的哪个子空间。当前实施例中,每个子空间仅保存一种类别的日志。则内部缓存空间与外置buffer被划分别被 分成4个子空间(子空间依次编号为1、2、3、4)。映射表由多个元素组成。每个元素与一种类别的日志(一个日志类别编号)一一对应。每个元素的取值为某个子空间的编号。
LGM的预处理模块主要由图中的ARB(仲裁器)、FIFO及Gather Controller(收集控制器)组成。FIFO用于缓存CPU向LGM发送的日志数据。共两组FIFO,每个CPU使用一种FIFO。为每一组FIFO分配一个FIFO ID。预处理模块使用FIFO ID来管理每一组FIFO。ARB为GatherController从哪一组FIFO里取数据提供仲裁。仲裁策略由CPU_1配置。可使用最简单的round-robin策略,即Gather Controller循环轮流的从FIFO里取数据。
Gather Controller 为整个预处理模块的核心模块,其主要功能为:
从FIFO里获取日志数据;
对于不同属性日志,根据属性表的值来确定是否丢弃;
对于需要处理的日志,向日志中插入时间戳;
将插入时间戳后的日志数据写到对应的Log Data RAM的子空间中;
负责Log Data RAM各子空间的管理;
负责FIFO状态(空或满)的管理;
LGM的后处理模块主要由上图中的BE Controller、SRAM Controller组成。SRAMController 负责外置Buffer(用SRAM实现)数据的读写控制。BE Controller为后处理模块的核心模块。其主要功能为:
通过 SRAM Controller将Log Data RAM的日志数据写到外置buffer中;
通过 SRAM Controller将外置Buffer的日志数据读出并送到给UART输出;
负责外置Buffer空间的管理。
Log Data RAM,用于缓存日志数据。按照日志的类别被划分成多个子空间。这些子空间被循环使用,其起始地址、大小信息由CPU_1配给LGM。Gather Controller管理每个子空间的写指针,BE Controller管理每个子空间的读指针。
Buffer,用于保存日志数据。按照日志的类别被划分成多个子空间。这些子空间被循环使用,其起始地址、大小信息由CPU_1配给LGM。BE Controller管理每个子空间的读指针与写指针。
具体实施时,产生日志的CPU需要按照一定的格式构造日志数据。本发明将构造后的日志数据称为日志消息。日志消息的格式如图5所示。
图5显示了一条日志消息的内容。包含多个Dword,分为两部分:Message Head 与Message Data。Message Head包含了如下字段:
Tag:为一条日志消息的唯一标记,方便调试。
Cnt:指示Message Data总共有多少Dword的数据。
CPU ID:系统为每个CPU分配了唯一的ID。为日志的一种属性,用于表示一条日志消息属于哪个CPU。每个CPU ID对应一组LGM 预处理模块的FIFO。一个CPU ID对应一个FIFOID。
Priority:表示日志的优先级。为日志的另一种属性。共有两种取值:0表示高优先级;1表示低优先级。具体取值以产生日志的需求定。
Message Data:为CPU真正需要保存或输出的日志信息,由多个Dword组成。
具体实施时,ARB采用Round-Robin的方式,为Gather Controller输出这次要处理的FIFO ID。其运行可使用图6所示的流程说明。
复位(包括上电复位、硬复位与软件复位)时,整个ARB模块进入初始状态,模块内各寄存器值被赋成默认值。Gather Controller需要去处理FIFO中的日志消息时,会发获取此次要处理的FIFO ID的请求给ARB。ARB收到该请求后,计算所需的FIFO ID。模块内使用寄存器REG_FIFO_ID保存上一次返回给Gather Controller的FIFO ID。计算FIFO ID的公式为FIFO ID = (REG_FIFO_ID + 1) % M。其中M为系统内CPU的个数(等于2)。接着,ARB将计算后得到的FIFO ID返回给Gather Controller,进入初始状态等待响应下一次GatherController的请求。
具体实施时,FIFO可用现成的IP实现。LGM使用的专门的寄存器来保存FIFO的状态,以供CPU查询。
具体实施时,RTC为LGM提供时间戳信息。可直接复用嵌入式系统内的timer 模块。
具体实施时,Gather Controller可使用FSM实现图7所示流程的功能。
在整个模块开始工作时,CPU_1需要完成属性表与映射表,Log Data RAM各子空间的配置(包括大小、起始地址)。复位时,整个模块进入初始状态。该模块首先向ARB发送请求以获得本次需要处理的FIFO ID。得到FIFO ID后,判断对应的FIFO是否有日志消息。若无,则回到初始状态,开始下一次处理。若有,则读取日志消息的Head,根据Message Head中Cnt字段的值从FIFO读完整个日志消息。根据Message Head中的属性字段,访问属性表得到该日志消息的处理策略。假设属性字段值为2,则访问属性表的第二个元素的值。若值为1,即需要丢弃,则回到初始状态开始下一次处理。若值为0,需继续处理,根据RTC的值在日志消息后面添加时间戳(8Bytes),如图8所示。
再根据属性,访问映射表获得与该条日志数据对应的Log Data RAM子空间的编号,进而或取对应子空间的状态。若空间不足(不能保存整条日志数据),则等待有足够的空间可用。若足够,则将日志数据写到子空间,同时更新子空间的写指针。至此,预处理模块完成了一条日志消息的处理,进入初始状态,开始下一次处理。
对于后处理模块,具体实施时,SRAM Controller可使用现有的IP。
具体实施时,BE Controller使用FSM实现图9(a)和图9(b)所示流程的功能。
对于BE Controller,主要功能是完成日志数据的保存(将Log Data RAM的日志写到外置Buffer)与将日志数据输出到UART。对应的有两个流程,如图9(a)和图9(b)所示。在BE Controller内部,这两个流程是并发执行的。
BE Controller按照一定的顺序(可以是按照子空间编号的顺序)处理各子空间的日志数据。对于当前处理的子空间,根据子空间与属性的一一映射关系得到该子空间的日志的属性。根据属性访问属性表,获得处理策略。若是丢弃,则处理下一个子空间的数据。若需要处理,则根据子空间编号获取对应外置Buffer子空间的状态。若子空间有可用空间,则将日志数据写到外置Buffer中,同时更新Log Data RAM子空间的读指针与外置Buffer子空间的写指针。当Log Data RAM子空间的数据处理完后,则处理下一个Log Data RAM子空间的数据。
日志的输出流程与日志保存流程大致相同。以一个外置Buffer子空间为单位,依次输出外置Buffer子空间的日志数据。若需要输出日志数据,首先判断UART是否可以接收数据。若不能,则等待UART可以接受数据。若可以,则从外置Buffer里读取数据并将其发送给UART。发送时,忽略Message Head的值。每输出一个Dword的日志数据后,更新外置Buffer子空间的读指针。
具体实施时,需要的其它必要模块,如时钟模块、寄存器接口、总线通信模块等,都能以通用技术实现。这些模块对于本发明的实施无特殊之处,因此这里不做赘述。
具体实施时,各资源的配置,如FIFO 深度、Log Data RAM及外置Buffer的大小由具体实施的需求与资源总体情况来定。
Claims (10)
1.一种嵌入式系统日志收集装置,其特征在于,包括:
预处理模块:负责收集CPU的日志数据并在每条日志数据后添加时间戳信息;
后处理模块:负责将预处理模块处理后的日志数据保存到外置缓存buffer、或者直接输出到外设输出接口、或者保存到NVM中;
内部缓存空间:用于暂存由预处理模块处理后的日志数据;
所述预处理模块包括:
仲裁器:用于为收集控制器从哪一组FIFO中取数据提供仲裁;
FIFO:用于缓存CPU发送的日志数据;
收集控制器:用于从FIFO里取日志数据;根据记录了不同属性日志处理策略的属性表确定是否丢弃日志数据;向待处理的日志数据中插入时间戳,并将插入时间戳后的日志数据写到对应的内部缓存空间中,同时管理内部缓存空间的各子空间和FIFO的状态。
2.根据权利要求1所述的嵌入式系统日志收集装置,其特征在于,所述后处理模块包括BE控制器和SRAM控制器,所述BE控制器通过 SRAM控制器将内部缓存空间的日志数据写到外置缓存buffer中,通过 SRAM 控制器将外置缓存buffer的日志数据读出并送给外设输出接口,同时所述BE控制器负责外置缓存buffer空间的管理。
3.根据权利要求2所述的嵌入式系统日志收集装置,其特征在于,所述日志收集装置还包括:
属性表:用于记录不同属性日志数据的处理策略,所述属性表包括多个大小、格式相同的元素,每个元素对应一种日志数据类别;
映射表:用于记录每个类别的日志数据写到内部缓存空间与外置缓存buffer的哪个子空间。
4.根据权利要求3所述的嵌入式系统日志收集装置,其特征在于,所述内部缓存空间按照日志数据的类别划分为多个子空间;所述收集控制器管理每个子空间的写指针,所述BE控制器管理每个子空间的读指针。
5.根据权利要求4所述的嵌入式系统日志收集装置,其特征在于,所述外置缓存buffer按照日志数据的类别划分为多个子空间;所述BE控制器管理每个子空间的读指针与写指针。
6.一种嵌入式系统日志记录系统,包括多个CPU、NVM和日志缓冲buffer;所述NVM与所述日志缓冲buffer连接;所述日志缓冲buffer与其中一个用于管理日志缓冲buffer、输出与保存日志的CPU连接;其特征在于,还包括权利要求1~5之一所述的日志收集装置;所述日志收集装置接收来自各CPU发送的日志数据,在每条日志数据后添加时间戳信息,并将添加了时间戳信息的日志数据输出至所述日志缓冲buffer,所述日志缓冲buffer将所述添加了时间戳信息的日志数据保存到所述NVM中;所述NVM与所述日志收集装置双向通信。
7.根据权利要求6所述的嵌入式系统日志记录系统,其特征在于,还包括外设输出接口;所述日志缓冲buffer与所述外设输出接口连接;所述外设输出接口与所述日志收集装置、用于管理日志缓冲buffer、输出与保存日志的CPU双向通信。
8.根据权利要求7所述的嵌入式系统日志记录系统,其特征在于,所述外设输出接口为串口、并口、网口中的一种。
9.根据权利要求8所述的嵌入式系统日志记录系统,其特征在于,所述NVM为NOR Flash或NAND Flash。
10.一种利用权利要求6~9之一所述的系统实现日志记录的方法,其特征在于,包括以下步骤:
1)各CPU构造日志数据;
2)日志收集装置的预处理模块按照CPU配置的顺序从各CPU获取日志数据;
3)对于单一属性的日志数据,将当前系统时间戳信息插入到所获取的日志数据后;对于多属性的日志数据,直接丢弃CPU配置的待丢弃的日志数据,并将当前系统时间戳信息插入到留下的日志数据后;或者忽略CPU的配置信息,将当前系统时间戳信息插入到日志数据后;
4)预处理模块将经步骤3)处理后的数据写到内部缓存空间;
5)判断是否丢弃内部缓存空间内的数据,若是,返回步骤3);否则,进入步骤6);
6)采用下列方式中的一种保存日志数据:将内部缓存空间的日志数据保存到外置缓存buffer中,进入步骤7);后处理模块完成日志数据的输出,CPU将输出的日志数据的保存到NVM中,进入步骤8);内部缓存空间完成日志数据的保存,CPU完成日志数据的输出,进入步骤8);后处理模块直接将内部缓存空间中的日志数据发送给外设输出接口及写到NVM中,进入步骤7);后处理模块先将内部缓存空间中的日志数据写到外置缓存buffer,然后在合适的时间,后处理模块从外置缓存buffer空间中读取日志数据并将其输出到外设输出接口及NVM中,进入步骤7);
7)判断是否丢弃日志数据,若是,进入步骤8);否则,将日志数据输出到外设输出接口,或者将日志数据写到NVM中;
8)结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510690375.XA CN105183628B (zh) | 2015-10-22 | 2015-10-22 | 一种嵌入式系统日志收集装置、记录系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510690375.XA CN105183628B (zh) | 2015-10-22 | 2015-10-22 | 一种嵌入式系统日志收集装置、记录系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105183628A CN105183628A (zh) | 2015-12-23 |
CN105183628B true CN105183628B (zh) | 2017-03-29 |
Family
ID=54905720
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510690375.XA Active CN105183628B (zh) | 2015-10-22 | 2015-10-22 | 一种嵌入式系统日志收集装置、记录系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105183628B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180300083A1 (en) * | 2017-04-12 | 2018-10-18 | Hewlett Packard Enterprise Development Lp | Write-ahead logging through a plurality of logging buffers using nvm |
CN110008084A (zh) * | 2019-03-29 | 2019-07-12 | 武汉中电国为技术有限公司 | 一种独立日志信息记录方法、系统、装置及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101788948A (zh) * | 2010-02-05 | 2010-07-28 | 瑞斯康达科技发展股份有限公司 | 一种日志信息的动态存储系统及方法 |
CN104346253A (zh) * | 2013-08-09 | 2015-02-11 | 瑞萨电子株式会社 | 数据处理系统 |
CN104516959A (zh) * | 2014-12-18 | 2015-04-15 | 杭州华为数字技术有限公司 | 一种管理数据库日志的方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8996889B2 (en) * | 2013-03-29 | 2015-03-31 | Dropbox, Inc. | Portable computing device with methodologies for client-side analytic data collection |
-
2015
- 2015-10-22 CN CN201510690375.XA patent/CN105183628B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101788948A (zh) * | 2010-02-05 | 2010-07-28 | 瑞斯康达科技发展股份有限公司 | 一种日志信息的动态存储系统及方法 |
CN104346253A (zh) * | 2013-08-09 | 2015-02-11 | 瑞萨电子株式会社 | 数据处理系统 |
CN104516959A (zh) * | 2014-12-18 | 2015-04-15 | 杭州华为数字技术有限公司 | 一种管理数据库日志的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105183628A (zh) | 2015-12-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101252536B (zh) | 路由器多队列数据包缓存管理与输出队列调度系统 | |
CN109388590B (zh) | 提升多通道dma访问性能的动态缓存块管理方法和装置 | |
CN108139985B (zh) | 用于实现对数据元素列表的高读取率的系统及方法 | |
CN101594299B (zh) | 基于链表的交换网络中队列缓冲管理方法 | |
CN108153487B (zh) | 一种基于nand flash的星载固存多源数据文件系统 | |
CN103425538A (zh) | 进程通讯方法及系统 | |
CN101150485A (zh) | 一种零拷贝缓冲区队列网络数据发送的管理方法 | |
US10216626B2 (en) | Parallel garbage collection implemented in hardware | |
CN102084357B (zh) | 检索装置以及检索方法 | |
CN103078941A (zh) | 一种分布式计算系统的任务调度方法及系统 | |
CN103106158A (zh) | 包括键-值存储的存储器系统 | |
CN108139882B (zh) | 针对网络装置实施阶层分布式链接列表的系统及方法 | |
CN105183662A (zh) | 一种无cache一致性协议的分布式共享片上存储架构 | |
CN110704438B (zh) | 一种区块链中布隆过滤器的生成方法及装置 | |
CN107203330A (zh) | 一种面向读写数据流的闪存数据分布方法 | |
CN104765701B (zh) | 数据访问方法及设备 | |
CN108139867B (zh) | 用于实现对数据元素列表的高读取率的系统及方法 | |
CN104572505A (zh) | 一种保证海量数据缓存最终一致性的系统及方法 | |
CN105183628B (zh) | 一种嵌入式系统日志收集装置、记录系统及方法 | |
CN104615684A (zh) | 一种海量数据通信并发处理方法及系统 | |
CN103440200B (zh) | 一种基于双操作系统的高实时大数据量测试回放方法 | |
CN103064749B (zh) | 一种进程间通信方法 | |
CN106201918B (zh) | 一种基于大数据量和大规模缓存快速释放的方法和系统 | |
CN103117962B (zh) | 一种星载共享存储交换装置 | |
JP4673299B2 (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
EE01 | Entry into force of recordation of patent licensing contract |
Application publication date: 20151223 Assignee: Jiangsu Xinsheng Intelligent Technology Co., Ltd. Assignor: GOKE MICROELECTRONICS CO., LTD. Contract record no.: 2018430000021 Denomination of invention: Log collecting device, recording system and method for embedded system Granted publication date: 20170329 License type: Common License Record date: 20181203 |
|
EE01 | Entry into force of recordation of patent licensing contract |