应用程序的跟踪记录压缩方案的生成方法及其装置的制作方法

文档序号:6465465阅读:158来源:国知局

专利名称::应用程序的跟踪记录压缩方案的生成方法及其装置的制作方法
技术领域
:本发明涉及异构多核体系结构上的应用程序调试,具体地说,涉;sjt在异构多核体系结构上运行应用程序时生成的跟踪记录进行压缩的方法、装置以及包括该压缩装置的异构多核体系结构。
背景技术
:异构多核体系结构在密集型计算、图形处理方面有明显的优势,一般地,异构多核体系结构至少包括一个主处理器和多个加速器(也称为"协处理器"),其中主处理器主要用于分配任务和协同加速器,加速器用于执行例如浮点运算等的具体计算处理。异构多核体系结构的一个例子是由索尼、东芝和IBM公司联合开发的CellBroadbandEngine(简称为CellBE),其以IBM公司所研发的64位元POWERTM处理机为核心(PPE),结合8个互相协作的处理机单元(SPEs)而构成。对于在异构多核体系结构上运行的应用程序来说,正确性和性能是关键。因此,在应用程序的开发过程中,应用程序的性能调试是必不可少的。在利用性能调试工具调试应用程序的期间,会产生大量的数据,这些数据以跟踪记录的形式从加速器传送到主处理器中的主存储器,然后由性能调试工具基于跟踪记录来分析应用程序的执行。通常,跟踪记录通过直接存储器存取(DMA)方式从加速器传送到主处理器。例如,在上述的CellBE中,每当SPE生成128字节的跟踪记录时,该跟踪记录就通过DMA转储到PPE中。然而,跟踪记录的传送会带来巨大的开销,并严重影响应用程序的行为。随着跟踪记录数量的增加,开销呈指数性增加。因此,需要对跟踪记录进行压缩。在现有技术中已经公开了一些对跟踪记录进行压缩的技术,例如,美国专利US7,058,859"TraceReportingMethodandSystem(i^记录方法和系统)"、美国专利US6,918,065"MethodforCompressingandDecompressingTraceInformation(压缩和解压缩J^信息的方法)"、美国专利US7,209,058"TraceReceiverDataCompression(J^i宗接收机数据压缩)"、美国专利US7,308,681"ControlFlowBasedCompressionofExecutionTraces(基于控制流的执行跟踪的压缩)"、美国专利申请US20070294590"CompressionSchemetoReducetheBandwidthRequirementsforContinuousTraceStreamEncodingofSystemPerformance(对于系统性能的连续跟踪流编码的降低带宽要求的压缩方案)"等。上述的技术方案均是解决重复的事件跟踪记录的压缩,因此,可压缩的跟踪记录必须完全相同。然而,完全相同的跟踪记录在所有记录中的比例较小。对于异构多核体系结构,其加速器的本地存储器的大小有限,例如CellBE的各加速器的本地存储器的大小只有256K。而通常的快速傅里叶变换(FFT)运算的应用程序所需要的空间约为244K,矩阵乘法运算的应用程序所需要的空间约为231K,高度并行计算基准测试(Linpack)的应用程序所需要的空间约为229K,这样,加速器的本地存储器的可用空间平均仅为约16K。然而,传统的在线压缩方法,例如zip和gzip,其代码大小分别为77K和64K,因此,这样的压缩方法不适用于异构多核体系结构。
发明内容本发明正是鉴于上述的技术问题而提出的,其目的在于提供一种压缩应用程序的跟踪记录的方法和装置,其适用于异构多核体系结构,并且能够大大缩短所有跟踪记录的传送时间。此外,本发明还提出了一种异构多核体系结构。根据本发明的第一个方面,提供一种应用程序的跟踪记录压缩方案的生成方法,其中,所述应用程序在异构多核体系结构上运行,所述异构多核体系结构包括主处理器和多个加速器,所述方法包括在所述异构多核体系结构上运行所述应用程序的至少-一部分;收集并分析跟踪记录,所述跟踪记录由所述多个加速器生成并包括事件标识符和数据;以及根据所述分析的结果,生成所述应用程序的跟踪记录压缩方案。根据本发明的第二个方面,提供一种压缩应用程序的跟踪记录的方法,其中,所述应用程序在异构多核体系结构上运行,所述异构多核体系结构包括主处理器和多个加速器,所述方法包括在所述异构多核体系结构上运行部分或者整个所述应用程序;以及根据上述应用程序的跟踪记录压缩方案的生成方法所生成的跟踪记录压缩方案,压缩由所述多个加速器生成的i^J宗记录。根据本发明的第三个方面,提供一种应用程序的跟踪记录压缩方案生成装置,其中,所述应用程序在异构多核体系结构上运行,所述异构多核体系结构包括主处理器和多个加速器,所述跟踪记录压缩方案生成装置包括收集与分析部件,用于收集并分析在所述异构多核体系结构上运行所述应用程序的至少一部分时由所述多个加速器生成的跟踪记录,其中,所述跟踪记录包括事件标识符和跟踪数据;压缩方案生成部件,用于根据所述收集与分析部件的分析结果,生成所述应用程序的跟踪记录压缩方案。根据本发明的第四个方面,提供一种压缩应用程序的跟踪记录的装置,其中,所述应用程序在异构多核体系结构上运行,所述异构多核体系结构包括主处理器和多个加速器,所述装置包括如上述应用程序的跟踪记录压缩方案生成装置;压缩部件,用于当在所述异构多核体系结构上运行整个所述应用程序时,4艮据所述跟踪记录压缩方案生成装置所生成的跟踪记录压缩方案,压缩由所述多个加速器所生成的跟踪记录。根据本发明的笫五个方面,提供一种异构多核体系结构,包括主处理器和多个加速器,用于运行应用程序,其中所述多个加速器生成跟踪记录,所述跟踪记录包括事件标识符和跟踪数据;以及根据上述压缩应用程序的跟踪记录的装置,用于对由所述多个加速器生成的跟踪记录进行压缩;其中,所述主处理器在从所述压缩应用程序的跟踪记录的装置接收到跟踪记录和各个加速器的跟踪记录压缩方案时,判断所接收的跟踪记录中包含的事件标识符是否是所述跟踪记录压缩方案中的高频事件标识符,并在判断结果是肯定时,对所接收的跟踪记录进行解压缩。图1是根据本发明的一个实施例的压缩应用程序的跟踪记录的方法的流程图2是图1所示的实施例中收集并分析多个跟踪记录的步骤的流程图;图3是图1所示的实施例中生成应用程序的跟踪记录压缩方案的步骤的流程图4是图1所示的实施例中压缩跟踪记录的步骤的流程图;图5是根据本发明的一个实施例的压缩应用程序的跟踪记录的装置的方框图6是图5所示的实施例中收集与分析部件的方框图7是图5所示的实施例中压缩方案生成部件的方框图8是图5所示的实施例中压缩部件的方框图9是根据本发明的一个实施例的异构多核体系结构的方框图。具体实施例方式相信通过以下结合附图对本发明的具体实施例的详细描述,本发明的上述和其它目的、特征和优点将变得更加明显。本发明的发明人通过研究发现,在同一个事件的跟踪记录之间存在相似性。一般地,跟踪记录包括事件标识符和跟踪数据,下面给出同一个事件的几个跟踪记录的例子。跟踪记录1:OOOObOO170502000000MM000000000fff3250OOOOblO000005678aacdd28000005678aac巡0000b20000000001000labc000000000000555b0000b30000000001026c39800000007Offf10c80000b4000000000100131b400000030ffffffff0000b5000000000f7fd04卯ffdef5b0000000050000b60f7fcfff400008801ffdef5e0f7fld4dc0000b700000OOlf840004420000000000000001跟踪记录2:OOOO副170502000000001800000000Offf3250OOOOblO000005678肌ce32f000005678肌ce8510000b20000000001000l狄4000000000000OOlf0000b30000000001026c39800000008Offf10c80000b4000000000100131c400000030ffffffff0000b5000000000f7fd0490ffdef5b0000000050000b60f7fcfff400008801ffdef5e0f7fld4dc0000b700000OOlf840004420000000000000001跟踪记录3:OOOObOO170502000000OOla00000000Offf3250OOOOblO000005678a狄e87e000005678肌ced7d0000b20000000001000lb10000000000000OOlf0000b30000000001026c3980000OOOaOfff10c80000b40000000001001319000000030ffffffff0000b5000000000f7fd0490ffdef5b0000000050000b60f7fcfff400008801ffdef5e0f7fld4dc0000b700000OOlf840004420000000000000001其中,第1列表示地址,"1705"是事件标识符。可以看出,3个跟踪记录中跟踪数据的大部分是相同的,只有用下划线标记的部分不同。这样,跟踪记录的相似性为跟踪记录的压缩提供了可能。另外,发明人还发现在对某个应用程序生成的跟踪记录中,少数事件的跟踪记录的个数占全部跟踪记录的个数的卯%或以上,这样的事件可称为高频事件。例如,对于某个FFT运算的应用程序,总的跟踪记录个数为777373个,其中事件标识符为1209的事件—ALF—ACCEL_DTL_ENTRY—ADD_ENTRY的^J宗记录是384911个,事件标识符为1309的事件—ALF_ACCEL_DTL_ENTRY_ADD—EXIT的躍J宗记录是384908个,这两个事件的跟踪记录的个数就达到了总数的99%。基于上述的两个发现,提出了本发明的压缩应用程序的跟踪记录的方法及装置。下面参照附图,对本发明的具体实施例进行详细说明。图1是根据本发明的一个实施例的压缩应用程序的跟踪记录的方法的流程图。下面结合附图,对本实施例进行详细说明。需要说明的是,在本实施例和随后的实施例中,应用程序是指进行了插装的应用程序,由此,在运行应用程序时能够生成跟踪记录。如图1所示,在本实施例中,应用程序的跟踪记录的压缩包括两个阶段。首先,在第一阶段,在步骤SIO,在异构多核体系结构上运行应用程序的至少一部分。如前所述,该异构多个体系结构包括主处理器和多个加速器,通过主处理器的分配,多个加速器协同执行这部分应用程序。所运行的应用程序的一部分可以由用户指定,优选地,所运行的该部分应用程序是该应用程序的典型应用。多个加速器在执行应用程序时,相应地生成该应用程序的跟踪记录(步骤S15)。在步骤S20,收集并分析所生成的跟踪记录,以得出跟踪记录的分布和特点。图2进一步示出了根据本发明的一个实施例的收集并分析所生成的跟踪记录的步骤S20的流程图。如图2所示,在步骤S201,从多个加速器中收集由各个加速器生成的跟踪记录,以进行分析。然后,在步骤S205,根据所收集的跟踪记录中的特殊字段定义的加速器的编号,对跟踪记录进行分类。每个加速器对应一个跟踪记录的类别,在每个类别中计算每个事件的对应跟踪记录的个数(步骤S210),然后,在步骤S215,根据所计算的跟踪记录的个数,确定应用程序的高频事件标识符,其中,包含高频事件标识符的跟踪记录的个数总和与所收集的跟踪记录的个数总和的比值大于等于预定的阈值。优选地,预定的阈值是90%或以上。在步骤S220,获取在步骤S215中确定的高频事件标识符的每一个的跟踪记M式,作为执行压缩的基础。然后,在步骤S225,获取每个加速器的可用空间,以确定每个加速器实际可装载多少个跟踪记M式。由于不同的加速器#不同的任务,使得各个加速器中的高频事件也可能不同,综合每个加速器的可用空间信息、高频事件标识符、高频事件标识符的跟踪记录的特点,建立针对每个加速器的跟踪记泉漠式,即加速器与跟踪记^式的映射(步骤S230)。当获取某个高频事件标识符的跟踪记M式时,比较包含该高频事件标识符的所有跟踪记录,从而确定这些跟踪记录所包含的跟踪数据中不同的部分。从包含该高频事件标识符的所有跟踪记录中选择任意一个跟踪记录,作为该高频事件标识符的跟踪记录模式,并对该跟踪记泉漠式的跟踪数据中与通过比较而确定的不同的部分对应的部分进行标记。按照这种方式,获得所有高频事件标识符的跟踪记录模式。通过执行上述的跟踪记录分析的步骤,可以得到跟踪记录的分布和特征,包括高频事件标识符及其与各个加速器的映射,高频事件标识符的跟踪记录模式,以及各个加速器的可用空间。然后,在步骤S30,根据通过步骤S20得到的分析结果,生成应用程序的跟踪记录压缩方案。图3进一步示出了根据本发明的一个实施例的生成应用程序的跟踪记录压缩方案的步骤S30的流程图。如图3所示,在步骤S301,根据在步骤S225获取的每个加速器的可用空间,计算每个加速器可装载的跟踪记M式的个数。由于加速器的本地存储器的空间有限,因此,加速器实际可装载的跟踪记录模式的个数与该加速器所映射的跟踪记录模式的个数并不一定相同。加速器的本地存储器剩余空间,可以通过多核处理器平台软件开发包的工具来获得,如在Cell.BE平台上,!^件开发包自带spu-size工具可以得到每个加速器的本地剩余可用空间。在步骤S305,根据在步骤S230所建立的加速器与跟踪记录模式的映射并根据在步骤S301所计算的各个加速器可装栽的跟踪记泉漠式的个数,确定每个加速器可装载的高频事件标识符的跟踪记录模式。当加速器可装栽的跟踪记录模式的个数大于等于该加速器所映射的跟踪记;^式的个数时,该加速器可装载的跟踪记录模式即是该加速器所映射的全部跟踪记录模式;当加速器可装载的跟踪记录模式的个数小于该加速器所映射的记录模式的个数时,则选择相应数量的跟踪记录的个数多的高频事件标识符的跟踪记M式。此处相应数量指小于或等于最多可装载的跟踪记^式个数。然后,在步骤S310,对于每个加速器,生成该加速器的跟踪记录压缩方案,其包括在步骤S305中确定的该加速器可装载的高频事件标识符的跟踪记泉漠式以^M目应的高频事件标识符。所生成的各加速器的跟踪记录压缩方案,构成应用程序的跟踪记录压缩方案,并被传送到对应的加速器和主处理器中(步骤S315)。至此,第一阶段结束。在第一阶段中,通it^"跟踪记录的分析,得到了应用程序的跟踪记录压缩方案。本领域技术人员了解,第一阶段作为跟踪记录压缩方案生成方法,可以单独地使用。并非必须与第二阶段的运用跟踪记录压缩方案在时间上无间隔地使用。而且由上述第二阶段的方法生成的跟踪记录压缩方案,可以由下述第二阶段的方法重复多次使用。在第二阶段,首先,各加速器装载所接收的各自的跟踪记录压缩方案。然后,在步骤S40,在异构多核体系结构上运行部分或者整个应用程序,并在步骤S50,多个加速器各自生成相应的跟踪记录。然后,在步骤S60,根据所装载的跟踪记录压缩方案,对所生成的跟踪记录进行压缩。上述第二阶段实质上涉及j吏用上述第一阶段的跟踪记录压缩方案生成方法所生成的跟踪记录压缩方案对跟踪记录进行压缩。第二阶段的压缩方法可以单独重复多次使用(例如在程序测试过程中,就可以重复利用上述第一阶段的跟踪记录压缩方案生成方法所生成的跟踪记录压缩方案对跟踪记录进行压缩)图4示出了根据本发明的一个实施例的压缩跟踪记录的步骤S60的流程图。如图4所示,当某个加速器生成一个跟踪记录时,判断该跟踪记录中的事件标识符是否是该加速器的跟踪记录压缩方案中的高频事件标识符(步骤S601)。如果该事件标识符是高频事件标识符,则在步骤S605,根据该事件标识符的跟踪记^式,对该跟踪记录进行压缩。根据本发明的一个实施例,当对跟踪记录进行压缩时,首先,对该跟踪记录中与跟踪记录模式中所标记的部分对应的部分和跟踪记录模式中所标记的部分进行差分计算,然后,记录这些进行了差分计算的部分的位置和相应的差分值,以形成被压缩的跟踪记录,这种压缩方式可称为"直接差分压缩方式"。可选地,,本发明的另一个实施例,当对跟踪记录进行压缩时,首先,对该跟踪记录中与跟踪记录模式中所标记的部分对应的部分和跟踪记录模式中所标记的部分进行差分计算,然后,记录这些进行了差分计算的部分的差分值,以形成被压缩的跟踪记录。这种压缩方式可称为"增强差分压缩方式"。可选地,根据本发明的再一个实施例,当对跟踪记录进行压缩时,首先,将该跟踪记录中的每个字节与跟踪记^^式中的对应字节进行差分计算,并记录与该跟踪记录模式中所标记的部分对应的部分的差分值,以构成被压缩的跟踪记录的一部分。然后,判断除了与所标记的部分对应的部分以外的字节的差分值是否为零,并在差分值不为零时,记录对应字节的位置和差分值,构成被压缩的跟踪记录的另一部分。如果差分值为零,则忽略该差分值.这种压缩方式可称为"混合差分压缩方式"。下面通过一个例子具体说明上述的三种压缩方式。在该例子中,跟踪记录的大小为128字节,并且有32个字节的数据发生变化。假设跟踪记录模式为<formula>formulaseeoriginaldocumentpage17</formula>其中,1705是事件标识符,用颜色标记的部分是数据发生变化的部分。所生成的跟踪记录为模式A<table>tableseeoriginaldocumentpage17</column></row><table>其中,用颜色标记的部分是与模式A中所标记的部分对应的部分。当采用直接差分压缩方式对跟踪记录进行压缩时,得到如下的被压缩的跟踪记录,其中单数列记录了进行差分计算的部分的位置,偶数列记录了对应的差分值可以看出,采用这种压缩方式得到的跟踪记录只有64字节,压缩率达到50%。当釆用增强差分压缩方式对跟踪记录进行压缩时,得到如下的被压缩的记录,其中仅记录了差分值可以看出,采用这种压缩方式得到的跟踪记录只有32字节,压缩率达到75%。如果跟踪记录中某个未被标记的字节发生了变化,则可以采用混合差分压缩方式进行压缩,这样可以确保通过解压缩得到正确的跟踪记录。在对所生成的跟踪记录进行了压缩后,在步骤S610,緩存被压缩的跟010702"0023013001310138013901024103兆0347035001510156025702036303680167017001"01860487060031p4.9402<35p1關100怖0418踪记录,直到所緩存的被压缩的跟踪记录的大小达到原始的跟踪记录的大小时,将被压缩的跟踪记录传送到主处理器(步骤S615)。在上面的例子中,原始的跟踪记录的大小为128字节,对于采用直接差分压缩方式压缩的跟踪记录,在緩存了2个被压缩的跟踪记录后,通过DMA方式进行传送;而对于采用增强差分压缩方式压缩的跟踪记录,则在緩存了4个祐A缩的跟踪记录后,通过DMA方式传送。在上述的实施例中,跟踪记录模式是固定的,然而,也可以使用自适应的跟踪记M式。在才艮据本发明的另一个实施例中,在所生成的跟踪记录4皮压缩后,用该压缩前的跟踪记录更新对应的跟踪记录模式,然后,将更新后的跟踪记录压缩方案从相应的加速器传送到主处理器。如果在步骤S601中判断为所生成的跟踪记录中包含的事件标识符不是高频事件标识符,则在步骤S620,对该跟踪记录不进行压缩,而是直接将该跟踪记录传送到主处理器。通过上述步骤,在应用程序运行过程中生成的包含高频事件标识符的跟踪记录经过压缩后传送到主处理器。当应用程序运行结束后,所有的跟踪记录和各加速器的跟踪记录压缩方案都已传送到主处理器。主处理器判断所接收的跟踪记录所包含的事件标识符是否是跟踪记录压缩方案中的高频事件标识符,如果是,则根据相应的跟踪记录压缩方案,对该跟踪记录进行解压缩,以得到原始的跟踪记录。解压缩后的跟踪记录被提供给后面的分析器进行进一步的处理。如果跟踪记录中的事件标识符不是高频事件标识符,则将该跟踪记录直接提供给分析器。通过以上描述可以看出,本实施例的压缩应用程序的跟踪记录的方法能够适用于异构多核体系结构,通过使用与跟踪记斜目似的跟踪记录模式,不仅能够压缩完全相同的跟踪记录,而且能够压缩部分相同的跟踪记录,进一步地,通it^j"高频事件的跟踪记录进行压缩,能够大大缩短跟踪记录传送的时间,减少对应用程序行为的影响。在同一个发明构思下,图5是根据本发明的一个实施例的压缩应用程序的跟踪记录的装置的方框图。下面结合附图,对本实施例进行详细描述,其中与前面实施例相同的部分,适当省略其说明。与前面实施例相同,在本实施例中,应用程序在异构多核体系结构上运行,该异构多核体系结构包括主处理器和多个加速器。如图5所示,本实施例的压缩应用程序的跟踪记录的装置500包括收集与分析部件501,其收集并分析在异构多核体系结构上运行应用程序的至少一部分时由多个加速器所生成的跟踪记录;压缩方案生成部件502,其根据收集与分析部件501的分析结果,生成该应用程序的跟踪记录压缩方案;以及压缩部件503,其当在异构多核体系结构上运行部分或者整个应用程序时,根据该应用程序的跟踪记录压缩方案,压缩由多个加速器生成的跟踪记录。在本实施例中,当应用程序的一部分在异构多核体系结构上运行时,各个加速器生成相应的跟踪记录,这些跟踪记录被收集与分析部件501收集并进4亍分析,以获:得跟踪记录的分布和特征。图6示出了根据本发明的一个实施例的收集与分析部件501的方框图。参照图6,收集与分析部件501包括收集单元5011,其从多个加速器中收集所生成的跟踪记录;分类单元5012,其才艮据所收集的跟踪记录中的特殊字段定义的加速器的编号,对跟踪记录进行分类;计数单元5013,其将每个加速器对应一个跟踪记录的类别,并在每个类别中计算每个事件的对应跟踪记录的个数;高频事件标识符确定单元5014,其确定应用程序的高频事件标识符,其中,包含这些高频事件标识符的跟踪记录的个数总和与所收集的跟踪记录的个数总和的比值大于等于预定的阈值;跟踪记录模式获取单元5015,其获取高频事件标识符的每一个的跟踪记^^式;可用空间获取单元5016,其获取每个加速器的可用空间,以确定每个加速器实际可装栽多少个跟踪记录模式;以及加速器-跟踪记录模式映射建立单元5017,其建立针对每个加速器的跟踪记影漠式,即加速器与跟踪记录模式的映射。当利用跟踪记录模式获取单元5015获取高频事件标识符的跟踪记录模式时,首先,在跟踪记泉漠式获取单元5015的比较单元中,对于每一个事件标识符的所有跟踪记录,以确定这些跟踪记录的跟踪数据中不同的部分。然后,选择单元从包含该高频事件标识符的所有跟踪记录中选择任意一个跟踪记录,作为该高频事件标识符的跟踪记泉漠式,并通过标记单元对跟踪记录模式的跟踪数据中与在比较单元中确定的不同的部分对应的部分进行标记。这样,利用收集与分析部件501,可以获得包括高频事件标识符、高频事件标识符的跟踪记录模式及其与加速器的映射、以及各加速器的可用空间的跟踪记录的分布和特征。收集与分析部件501的分析结果被提供给压缩方案生成部件502,以生成应用程序的跟踪记录压缩方案。图7示出了才艮据本发明的一个实施例的压缩方案生成部件502的方框图。如图7所示,压缩方案生成部件502包括计算单元5021,其相^据由可用空间获取单元5016获取的每个加速器的可用空间,计算每个加速器可装载的跟踪记恭漠式的个数;跟踪记泉漠式确定单元5022,其根据由加速器-跟踪记^漠式映射建立单元5017建立的映射和由计算单元5021计算的跟踪记录模式的个数,确定每个加速器可装栽的高频事件标识符的跟踪记M式;加速器压缩方案生成单元5023,其对于每个加速器,生成该加速器的跟踪记录压缩方案,该跟踪记录压缩方案包括在跟踪记^i式确定单元5022中确定的该加速器可装载的高频事件标识符的跟踪记录模式和相应的高频事件标识符;以及第一传送单元5024,其将各个加速器的跟踪记录压缩方案传送到对应的加速器和主处理器中。本领域4支术人员了解,上述收集与分才斤部件501和压缩方案生成部件502可以独立构成应用程序的跟踪记录压缩方案生成装置504。这样,在压缩方案生成部件502中生成的各加速器的跟踪记录压缩方案,构成应用程序的跟踪记录压缩方案,并被传送到各自的加速器中。当应用程序再次在异构多核体系结构中运行时,各个加速器生成相应的跟踪记录。这些跟踪记录在压缩部件503中进行压缩。图8示出了根据本发明的一个实施例的压缩部件503的方框图。21如图8所示,压缩部件503包括第一判断单元5031,其判断所生成的跟踪记录中的事件标识符是否是相应的加速器的跟踪记录压缩方案中的高频事件标识符;压缩单元5032,其在所述第一判断单元5031判断为该事件标识符是高频事件标识符时,根据该跟踪记录压缩方案中该事件标识符的跟踪记录模式,对包含该事件标识符的跟踪记录进行压缩;緩存单元5033,其用于緩存被压缩单元5032压缩后的跟踪记录;以及第二传送单元5034,其在所述緩存单元5033所緩存的被压缩的跟踪记录的大小达到原始的跟踪记录的大小时,将所緩存的跟踪记录传送到主处理器,并在所述第一判断单元5031判断为该事件标识符不是高频事件标识符时,将包含该事件标识符的跟踪记录传送到主处理器。才艮据本发明的一个实施例,当利用压缩单元5032对某个加速器生成的一个跟踪记录进行压缩时,压缩单元5032中的差分计算单元对该跟踪记录中与跟踪记录模式中所标记的部分对应的部分和该跟踪记录模式中所标记的部分进行差分计算,并通过记录单元记录进行了差分计算的部分的位置和相应的差分值,以形成被压缩的跟踪记录。可选地,根据本发明的另一个实施例,当利用压缩单元5032对某个加速器生成的一个跟踪记录进行压缩时,压缩单元5032中的差分计算单元对该跟踪记录中与跟踪记录模式中所标记的部分对应的部分和该跟踪记^S式中所标记的部分进行差分计算,并通过记录单元记录进行了差分计算的部分的差分值,以形成被压缩的跟踪记录。可选地,根据本发明的再一个实施例,当利用压缩单元5032对某个加速器生成的一个跟踪记录进行压缩时,压缩单元5032中的差分计算单元将该跟踪记录中的每个字节与跟踪记M式中的对应字节进行差分计算,并通过第二判断单元判断除了与该跟踪记录模式中所标记的部分对应的部分以外的字节的差分值是否为零,然后由记录单元记录与该跟踪记M式中所标记的部分对应的部分的差分值,并在第二判断单元判断为差分值不为零时,记录对应字节的位置和差分值,以形成,皮压缩的跟踪记录。这样,压缩单元5032能够对所生成的跟踪记录中包含高频事件标识符的J^记录进行压缩。在上述的实施例中,J峰记^S式是固定的,也可以使用自适应的跟踪记^漠式。根据本发明的另一个实施例的压缩应用程序的跟踪记录的装置还可以包括更新部件,其在所生成的跟踪记录被压缩后,将对应的跟踪记录模式更新为该压缩前的跟踪记录;其中,更新后的跟踪记录压缩方案从相应的加速器传送到主处理器。应当指出,本实施例的压缩应用程序的跟踪记录的装置500在操作上可以实现如图1所示的压缩应用程序的跟踪记录的方法。在同一个发明构思下,图9是才艮据本发明的一个实施例的异构多核体系结构的方框图。下面结合附图,对本实施例进行详细描述,其中与前面实施例相同的部分,适当省略其说明。如图9所示,本实施例的异构多核体系结构900包括主处理器901和多个加速器,例如,三个加速器902、903、904,在其上能够运行应用程序,其中多个加速器卯2、903、卯4生成相应的记录;以及如图5所示的实施例的压缩应用程序的跟踪记录的装置500,其对由多个加速器902、903、卯4生成的跟踪记录进行压缩。当主处理器901从压缩应用程序的跟踪记录的装置500接收到跟踪记录和各个加速器的跟踪记录压缩方案时,判断所接收的跟踪记录所包含的事件标识符是否是跟踪记录压缩方案中的高频事件标识符,并在判断结果是肯定时,对所接收的跟踪记录进行解压缩,解压缩后的跟踪记录被提供给分析器以进行进一步的处理;当判断结果是否定时,主处理器卯l直接将跟踪记录提供给分析器。应当指出,上述实施例中的压缩应用程序的跟踪记录的装置、异构多核体系结构及其各个组成部分可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合实现。以上虽然通过一些示例性的实施例详细描述了本发明的压缩应用程序的跟踪记录的方法和装置以及异构多核体系结构,但是以上这些实施例并不是穷举的,本领域技术人员可以在本发明的精神和范围内实现各种变化和修改。因此,本发明并不限于这些实施例,本发明的范围仅由所附的权利要求限定。权利要求1.一种应用程序的跟踪记录压缩方案的生成方法,其中,所述应用程序在异构多核体系结构上运行,所述异构多核体系结构包括主处理器和多个加速器,所述方法包括在所述异构多核体系结构上运行所述应用程序的至少一部分;收集并分析跟踪记录,所述跟踪记录由所述多个加速器生成并包括事件标识符和跟踪数据;以及根据所述分析的结果,生成所述应用程序的跟踪记录压缩方案。2.根据权利要求l所述的方法,其中,所述收集并分析跟踪记录的步骤包括从所述多个加速器中收集所生成的跟踪记录;根据所收集的跟踪记录中的加速器的编号,对所述跟踪记录进行分类;将每个加速器对应一个跟踪记录的类别,在每个类别中计算每个事件的对应躍應记录的个数;确定所述应用程序的高频事件标识符,其中,包含所述高频事件标识符的跟踪记录的个数总和与所收集的跟踪记录的个数总和的比值大于等于预定的阈值;获取所述高频事件标识符的每一个的跟踪记M式。3.根据权利要求2所述的方法,其中,所述收集并分析跟踪记录的步骤还包括获取每个加速器的可用空间;以及建立针对每个加速器的跟踪记录模式,即加速器与跟踪记^^式的映射。4.根据权利要求3所述的方法,其中,所述生成所述应用程序的跟踪记录压缩方案的步骤包括根据所获取的每个加速器的可用空间,计算每个加速器可装载的跟踪记录模式的个数;根据所述加速器与踏應记录模式的映射和所计算的跟踪记录模式的个数,确定每个加速器可装载的高频事件标识符的跟踪记M式;对于每个加速器,生成该加速器的跟踪记录压缩方案,其包括所确定的该加速器可装载的高频事件标识符的跟踪记录模式和相应的高频事件标识符。5.根据权利要求4所述的方法,其中,所述生成所述应用程序的JM宗记录压缩方案的步g包括将各个加速器的跟踪记录压缩方案传送到对应的加速器和所述主处理器。6.根据权利要求2至5任意一项所述的方法,其中,所述获取所述高频事件标识符的每一个的跟踪记^式的步骤包括对于每一个所述高频事件标识符,比较包含该高频事件标识符的所有跟踪记录,以确定这些跟踪记录的跟踪数据中不同的部分;选择包含该高频事件标识符的任意一个跟踪记录,作为该高频事件标识符的跟踪记影漠式;以及对所述跟踪记录模式的跟踪数据中与所述不同的部分对应的部分进行标记。7.—种压缩应用禾呈序的跟踪记录的方法,其中,所述应用程序在异构多核体系结构上运行,所述异构多核体系结构包括主处理器和多个加速器,所述方法包括在所述异构多核体系结构上运行部分或者整个所述应用程序;以及根据权利要求1-6所述的应用程序的跟踪记录压缩方案的生成方法所生成的跟踪记录压缩方案,压缩由所述多个加速器生成的跟踪记录。8.根据权利要求7所述的方法,其中,所述压缩所生成的跟踪记录的步骤包括判断所生成的跟踪记录中的事件标识符是否是相应的加速器的跟踪记录压缩方案中的高频事件标识符;如果该事件标识符是高频事件标识符,则根据该跟踪记录压缩方案中该事件标识符的跟踪记泉漠式,对包含该事件标识符的跟踪记录进行压缩;緩存被压缩的跟踪记录;当所续_存的被压缩的跟踪记录的大小达到原始的多艮踪记录的大小时,将其传送到所述主处理器。9.根据权利要求8所述的方法,其中,所述压缩所生成的跟踪记录的步骤还包括如果该事件标识符不是高频事件标识符,则将包含该事件标识符的跟踪记录传送到所述主处理器。10.根据权利要求8所述的方法,其中,所述对包含该事件标识符的跟踪记录进行压缩的步骤包括对包含该事件标识符的跟踪记录中与该事件标识符的跟踪记录模式中所标记的部分对应的部分和所述所标记的部分进行差分计算;以及记录进行了差分计算的部分的位置和相应的差分值,以形成所述被压缩的跟踪记录。11.根据权利要求8所述的方法,其中,所述对包含该事件标识符的跟踪记录进行压缩的步骤包括对包含该事件标识符的跟踪记录中与该事件标识符的跟踪记彖漠式中所标记的部分对应的部分和所述所标记的部分进行差分计算;以及记录进行了差分计算的部分的差分值,以形成所述被压缩的跟踪记录。12.根据权利要求8所述的方法,其中,所述对包含该事件标识符的跟踪记录进行压缩的步骤包括对于包含该事件标识符的跟踪记录中的每个字节,将其与该事件标识符的跟踪记M式中的对应字节进行差分计算;记录与该事件标识符的跟踪记录模式中所标记的部分对应的部分的差分值,以构成所述被压缩的跟踪记录的一部分;判断除了与上述所标记的部分对应的部分以外的字节的差分值是否为零;以及如果所述差分值不为零,则记录对应字节的位置和差分值,以构成所述4皮压缩的跟踪记录的另一部分。13.根据权利要求8至12任意一项所述的方法,还包括将所述跟踪记录压缩方案中高频事件标识符的跟踪记泉漠式更新为所生成的未被压缩的包含该高频事件标识符的跟踪记录;以及将更新后的跟踪记录压缩方案传送到所述主处理器。14.根据权利要求8至12任意一项所述的方法,还包括所述主处理器判断所接收的跟踪记录中包含的事件标识符是否是所述,记录压缩方案中的高频事件标识符;以及如果是,则对所接收的跟踪记录进行解压缩。15.—种应用程序的跟踪记录压缩方案生成装置,其中,所述应用程序在异构多核体系结构上运行,所述异构多核体系结构包括主处理器和多个加速器,所述i^p5J宗记录压缩方案生成装置包括收集与分析部件,用于收集并分析在所述异构多核体系结构上运行所述应用程序的至少一部分时由所述多个加速器生成的跟踪记录,其中,所述跟踪记录包括事件标识符和跟踪数据;压缩方案生成部件,用于才艮据所述收集与分析部件的分析结果,生成所述应用程序的跟踪记录压缩方案。16.根据权利要求15所述的装置,其中,所述收集与分析部件包括收集单元,用于从所述多个加速器中收集所生成的跟踪记录;分类单元,用于才艮据所收集的跟踪记录中的加速器的编号,对所述跟踪记录进行分类;计数单元,用于将每个加速器对应一个跟踪记录的类别,并在每个类别中计算每个事件的对应跟踪记录的个数;高频事件标识符确定单元,用于确定所述应用程序的高频事件标识符,其中,包含所述高频事件标识符的跟踪记录的个数总和与所收集的跟踪记录的个数总和的比值大于等于预定的阈值;跟踪记录模式获取单元,用于获取所述高频事件标识符的每一个的跟踪记絲式。17.根据权利要求16所述的装置,其中,所述收集与分析部件还包括可用空间获取单元,用于获取每个所#速器的可用空间;以及加速器-跟踪记f^式映射建立单元,其建立针对每个加速器的跟踪记^^式,即加速器与跟踪记M式的映射。18.根据权利要求15所述的装置,其中,所述压缩方案生成部件包括计算单元,用于根据所获取的每个加速器的可用空间,计算每个加速器可装载的跟踪记^式的个数;跟踪记录模式确定单元,用于根据所述映射和由所述计算单元计算的记录模式的个数,确定每个加速器可装载的高频事件标识符的跟踪记录模式;加速器压缩方案生成单元,用于对于每个加速器,生成该加速器的跟踪记录压缩方案,其包括所确定的该加速器可装栽的高频事件标识符的跟踪记恭漠式和相应的高频事件标识符。19.根据权利要求18所述的装置,其中,所述压缩方案生成部件包括第一传送单元,用于将各个加速器的跟踪记录压缩方案传送到对应的加速器和所述主处理器。20.根据权利要求16至19任意一项所述的压缩应用程序的跟踪记录的装置,其中,所述跟踪记录模式获取单元包括比较单元,用于对于每一个所述高频事件标识符,比较包含该高频事件标识符的所有跟踪记录,以确定这些跟踪记录的,数据中不同的部分;选择单元,用于选择包含该高频事件标识符的任意一个跟踪记录,作为该高频事件标识符的跟踪记泉漠式;以及标记单元,用于对所述跟踪记录模式的跟踪数据中与所述不同的部分对应的部分进行标记。21.—种压缩应用程序的跟踪记录的装置,其中,所述应用程序在异构多核体系结构上运行,所述异构多核体系结构包括主处理器和多个加速器,所述装置包括如权利要求15-20任一项所述的应用程序的跟踪记录压缩方案生成装置;压缩部件,用于当在所述异构多核体系结构上运行整个所述应用程序时,根据所述跟踪记录压缩方案生成装置所生成的跟踪记录压缩方案,压缩由所述多个加速器所生成的跟踪记录。22.根据权利要求13所述的压缩应用程序的跟踪记录的装置,其中,所述压缩部件包括笫一判断单元,用于判断所生成的跟踪记录中的事件标识符是否是相应的加速器的跟踪记录压缩方案中的高频事件标识符;压缩单元,用于在所述第一判断单元判断为该事件标识符是高频事件标识符时,根据该跟踪记录压缩方案中该事件标识符的跟踪记影漠式,对包含该事件标识符的跟踪记录进行压缩;緩存单元,用于緩存被压缩的跟踪记录;以及第二传送单元,用于在所述緩存单元所緩存的被压缩的跟踪记录的大小达到原始的跟踪记录的大小时,将所緩存的跟踪记录传送到所述主处理器,并在所述第一判断单元判断为该事件标识符不是高频事件标识符时,将包含该事件标识符的跟踪记录传送到所述主处理器。23.根据权利要求22所述的压缩应用程序的跟踪记录的装置,其中,所述压缩单元包括差分计算单元,用于对包含该事件标识符的跟踪记录中与该事件标识符的跟踪记录模式中所标记的部分对应的部分和所述所标记的部分进行差分计算;以及记录单元,用于记录进行了差分计算的部分的位置和相应的差分值,以形成所述被压缩的踏J宗记录。24.根据权利要求23所述的压缩应用程序的跟踪记录的装置,其中,所述压缩单元包括差分计算单元,用于对包含该事件标识符的跟踪记录中与该事件标识符的跟踪记^S式中所标记的部分对应的部分和所述所标记的部分进行差分计算;以及记录单元,用于记录进行了差分计算的部分的差分值,以形成所述被压缩的跟踪记录。25.根据权利要求23所述的压缩应用程序的跟踪记录的装置,其中,所述压缩单元包括差分计算单元,用于对于包含该事件标识符的跟踪记录中的每个字节,将其与该事件标识符的跟踪记录模式中的对应字节进行差分计算;第二判断单元,用于判断除了与该事件标识符的跟踪记录模式中所标记的部分对应的部分以外的字节的差分值是否为零;以及记录单元,用于记录与该事件标识符的跟踪记恭漠式中所标记的部分对应的部分的差分值,并在所述第二判断单元判断为所述差分值不为零时,记录对应字节的位置和差分值,以形成所述,皮压缩的跟踪记录。26.根据权利要求22至25任意一项所述的压缩应用程序的跟踪记录的装置,还包括更新部件,用于将所述跟踪记录压缩方案中高频事件标识符的跟踪记^式更新为所生成的未被压缩的包含该高频事件标识符的跟踪记录;其中,更新后的跟踪记录压缩方案4皮传送到所述主处理器。全文摘要本发明涉及一种应用程序的跟踪记录压缩方案的生成方法,其中,所述应用程序在异构多核体系结构上运行,所述异构多核体系结构包括主处理器和多个加速器,所述方法包括在所述异构多核体系结构上运行所述应用程序的至少一部分;收集并分析跟踪记录,所述跟踪记录由所述多个加速器生成并包括事件标识符和跟踪数据;以及根据所述分析的结果,生成所述应用程序的跟踪记录压缩方案。该方法能够适用于异构多核体系结构,通过使用与跟踪记录相似的跟踪记录模式,既能压缩完全相同的跟踪记录,又能压缩部分相同的跟踪记录,通过对高频事件的跟踪记录进行压缩,能够缩短跟踪记录传送的时间,减少对应用程序行为的影响。本发明还公开了一种应用程序的跟踪记录压缩方案的生成装置、一种压缩应用程序的跟踪记录的方法、一种压缩应用程序的跟踪记录的装置和一种异构多核体系结构。文档编号G06F11/36GK101615157SQ20081012925公开日2009年12月30日申请日期2008年6月26日优先权日2008年6月26日发明者宽冯,严李,杨雨东,鲲王申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1