统计信息的重采样装置的制作方法

文档序号:11154953阅读:788来源:国知局
统计信息的重采样装置的制造方法

本发明涉及分析记录类仪器仪表技术领域,尤其涉及的是一种统计信息的重采样装置。



背景技术:

在仪器仪表行业,各类测量设备通常需要测量各种指标,并将这些指标的历史测量记录实时保存到存储设备中。例如在电力仪表行业,一些分析记录仪器需要按照IEC61000规范指定的时间间隔测量电压有效值,并将电压有效值的历史趋势按照用户设定的区间进行统计,并将区间最大值、最小值、平均值、标准差等统计结果保存到SD卡(Secure Digital Memory Card,安全数码卡)。这样,用户就可以在测量结束后方便地通过“趋势图”查看电压有效值在任意测量区间内的历史趋势,并获得准确的区间统计参数。

在查看趋势图时,用户可能观察到某一时间区间内存在异常值,并希望进一步放大该异常区域;或者用户可能希望在同一趋势图上观察更长区间内的趋势。具体来说,用户手动指定历史趋势的起始时间和结束时间,然后分析装置对该区间内的统计信息进行“重采样”,将大量的原始统计点序列重新采样为指定个数的少量统计点序列,并以趋势线的形式展示给用户。

这里的重采样并不能简单地进行“等时抽样”(即等间隔抽取),这种简单的抽样方法很可能在抽样时漏掉某些异常区间,导致用户无法在最终趋势线上观察到异常点,因而不适用于抽取趋势信息。正确的重采样方式应该是对原始的统计点进行重新统计和计算,从而得到以输出分辨率生成的准确的统计点序列。这两种重采样方法的区别类似于示波器的等时采样和峰值采样的区别,但由于历史趋势不止包含最大值/最小值,因此其处理内容与时间开销相对于标准峰值采样方法也要更多,对设备的处理算法和计算能力也有更高的要求。

目前,大部分的分析记录仪表均只统计并记录区间最大值和最小值,并在查看趋势时使用标准的峰值采样方法,甚至一些简单的设备只是简单地等时抽取。这些处理手段很难满足用户精确分析的需求。一些较为先进的分析设备直接将统计点以最大/最小/平均的格式保存在SD卡,对所述格式的统计点进行串行重采样运算,这种方式虽然可以得到准确的结果,但由于逐指令的串行计算导致重采样速度很慢,用户难以接受;且所有的操作均在主CPU(中央处理器)内进行,长时间的高CPU占用会导致设备难以快速响应并处理用户的其他业务,影响设备的平均性能。



技术实现要素:

本发明所要解决的技术问题是提供一种统计信息的重采样装置,为用户提供数据精确、响应快速的趋势图功能。

为解决上述问题,本发明提出一种统计信息的重采样装置,包括:

输入统计点缓冲单元,用以缓存读取到的一个或两个以上的待重采样的统计点,在需统计时弹出一统计点,所述统计点为原始数据在一个时间区间内的统计信息集合,相邻统计点的两个时间区间之间连续;

输出统计点步进控制单元,根据设定的输出统计点总数和输入统计点总数确定重采样时机,并在重采样时机输出步进使能信号;

原始数据统计单元,连接所述输入统计点缓冲单元和输出统计点步进控制单元,接收最新输出的统计点,用以在统计信息的统计格式的基础上对统计点进行再统计,生成再统计数据,并在步进使能信号的控制下,将再统计数据输出后,初始化为默认状态或用当前统计点替换再统计数据;

输出统计点缓冲单元,连接所述原始数据统计单元和所述输出统计点步进控制单元,在所述步进使能信号的控制下,压入并缓存再统计数据,生成重采样后的统计点;

后置统计运算单元,连接所述输出统计点缓冲单元,将重采样后的统计点进行后置运算,得到用于趋势图显示的趋势点序列。

根据本发明的一个实施例,所述输出统计点步进控制单元包括:计数器和比较器;所述计数器在输入统计点缓冲单元的每个统计点弹出并在原始数据统计单元处理后,加上输出统计点总数;所述比较器的一个输入端接收计数器的计数值,另一个输入端接收输入统计点总数,在计数值大于输入统计点总数时为重采样时机,比较器输出步进使能信号。

根据本发明的一个实施例,所述步进使能信号还作为所述计数器的求余使能信号;所述计数器响应于所述求余使能信号而将计数值更新为减去了输入统计点总数后的值。

根据本发明的一个实施例,还包括:

输入统计点总数设置单元,连接所述输出统计点步进控制单元,用于配置并输出所述输入统计点总数、或其他配置信息;

输出统计点总数设置单元,连接所述输出统计点步进控制单元,用于设置并输出所述输出统计点总数、或其他配置信息。

根据本发明的一个实施例,所述统计点的统计信息包括:区间原始数据最大值、区间原始数据最小值、区间原始数据和、区间原始数据平方和、区间原始数据个数。

根据本发明的一个实施例,当统计点的时间区间内不存在原始数据或者原始数据无效时,将区间原始数据最大值记为原始数据的数据类型的最小值,将区间原始数据最小值记为原始数据的数据类型的最大值,其余记为0。

根据本发明的一个实施例,原始数据统计单元包括:

原始数据最大值保持单元,其输入端连接所述输入统计点缓冲单元的最大值输出端,其输出端连接所述输出统计点缓冲单元的最大值输入端,用以将新接收的统计点的区间原始数据最大值与当前保持的最大值比较,保持并输出较大者;

原始数据最小值保持单元,其输入端连接所述输入统计点缓冲单元的最小值输出端,其输出端连接所述输出统计点缓冲单元的最小值输入端,用以将新接收的统计点的区间原始数据最小值与当前保持的最小值比较,保持并输出较小者;

原始数据和累加单元,其输入端连接所述输入统计点缓冲单元的和输出端,其输出端连接所述输出统计点缓冲单元的和输入端,用以将新接收的统计点的区间原始数据和与当前保持的累加值进行求和,保持并输出求和后的累加值;

原始数据平方和累加单元,其输入端连接所述输入统计点缓冲单元的平方和输出端,其输出端连接所述输出统计点缓冲单元的平方和输入端,用以新接收的统计点的区间原始数据平方和与当前保持的平方和累加值进行求和,保持并输出求和后的平方和累加值;

原始数据个数统计单元,其输入端连接所述输入统计点缓冲单元的个数输出端,其输出端连接所述输出统计点缓冲单元的个数输入端,用以对接收的统计点的区间原始数据个数进行累加计数,输出计数后的个数;

原始数据最大值保持单元、原始数据最小值保持单元、原始数据和累加单元、原始数据平方和累加单元和原始数据个数统计单元在步进使能信号的控制下,输出各自保持数据后,初始化为默认状态或用当前统计点替换各自保持数据。

根据本发明的一个实施例,所述后置统计运算单元包括:

后置平均值计算单元,连接所述输出统计点缓冲单元,根据重采样后的统计点计算平均值其中,Sum为原始数据和的累加值,N为原始数据个数的累加计数;

后置方差计算单元,连接所述输出统计点缓冲单元和后置平均值计算单元,根据重采样后的统计点和平均值计算方差其中,SquareSum为原始数据平方和的累加值。

根据本发明的一个实施例,所述后置统计运算单元通过CPU实现,所述输入统计点缓冲单元、输出统计点步进控制单元、原始数据统计单元和输出统计点缓冲单元不通过CPU实现。

根据本发明的一个实施例,还包括外部存储单元,连接所述输入统计点缓冲单元,用以存储待重采样的统计点序列。

采用上述技术方案后,本发明相比现有技术具有以下有益效果:

对分析记录仪器仪表的将现有已处理的原始数据统计点序列进行重采样,将输入统计点序列按照指定的比例重新抽取为输出统计点序列,进而可以实现分析记录类仪器仪表的趋势图缩放功能,通过硬件化的重采样装置来处理,相比现有的逐指令的串行计算来说,重采样速度更快,而且所有的操作可以不全部在CPU中操作,较少占用CPU资源,因而设备对于用户其他业务的响应更快速,设备的平均性能更高;

采用一种流水线式的计算结构,可将装置中的所有非乘除法运算单元全部部署到FPGA等硬件设备中作为CPU的协处理器,并通过CPU将FPGA流水线输出的数据进行简单的后置计算,即可既快速又精确地得到最大值、最小值、平均值、方差等全部常用统计指标的区间值,从而大大加快数据处理速度,并显著降低CPU负荷,最终为用户提供数据精确、响应快速的趋势图功能。

附图说明

图1为本发明一实施例的统计信息的重采样装置的结构框图;

图2为本发明另一实施例的统计信息的重采样装置的结构框图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。

在下面的描述中阐述了很多具体细节以便于充分理解本发明。但是本发明能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施的限制。

参看图1,本实施例的统计信息的重采样装置,包括:输入统计点缓冲单元1,输出统计点步进控制单元4,原始数据统计单元2,输出统计点缓冲单元3和后置统计运算单元7。各单元之间可以以流水线的形式工作,缩短处理时间从而加快响应速度,在前面的单元处理当前统计点时,后面可以同时在处理下个统计点。当然也可以不是流水线的形式,而是等待一个统计点被全部单元处理完成之后再处理下一个统计点,具体不做限制。

统计点为原始数据在一个时间区间内的统计信息集合,相邻统计点的两个时间区间之间连续。统计点按照连续的时间区间顺序组成一个完整序列,即本发明描述的输入统计点序列。重采样装置根据用户设置的输入统计点个数以及输出统计点个数,确定重采样的采样点时间,对输入统计点序列进行重采样,得到对应的输出统计点序列。一般地,输入统计点序列的长度要长于输出统计点序列的长度。

输入统计点缓冲单元1可以采用缓存、存储器、寄存器等实现,缓存读取到的一个或两个以上的待重采样的统计点。优选可以以先进先出的队列形式保存,保存的数据可以是CPU从外部存储单元中读取到的一部分正在等待重采样的输入统计点序列(即原始数据连续的两个以上的统计点)。输入统计点缓冲单元1在需统计时弹出一统计点,该弹出的统计点为弹出前的输入统计点缓冲单元1的最先进入其中的统计点,弹出该统计点之后,将下一个统计点作为下一个被弹出的统计点,也就是之前的统计点已不在输入统计点缓冲单元中1了。具体的,输入统计点缓冲单元1可以通过一个宽度为5*32-bit、深度为16的FIFO来实现,FIFO的每一个单元均包含待重采样的统计点,每个统计点例如可以包括最大值、最小值、和、平方和、个数五种信息,其中最大值、最小值、和、平方和四种信息均以32-bit浮点数的格式进行存储,而个数则以32-bit整数的格式进行存储。FIFO的输入端通过5个独立的32-bit寄存器与CPU连接,可以通过AXI总线的指定地址向各个寄存器依次写入对应同一个输入统计点的统计信息,当且仅当个数寄存器完成写入操作时,FIFO将当前5个寄存器中的统计信息通过一次性原子操作压入FIFO内部,作为一个新的输入统计点,排队等待处理。

为了能够在输入统计点缓冲单元1内部的存储空间溢出之前安全地停下来并等待其可写,需要将FIFO的满标志位等状态信息作为一个独立的状态寄存器通过AXI总线提供给CPU供其轮询。

在目标设备上,写入寄存器的输入值实际上来自于外部存储设备,例如SD卡,而由于SD卡文件系统的复杂性,读取SD卡的功能也将在CPU内实现。也就是说CPU不断地从SD卡中读取测量期间实时保存的统计信息记录文件,并解析获得输入统计点,然后将读取到的值不断地写入5个寄存器,从而实现数据的不间断处理。

可选地,输入统计点缓冲单元1也可以只缓冲一个统计点,每当需要统计时,由CPU向输入统计缓冲单元1填入新的统计点,此时才会继续处理新的统计点,否则将进入等待状态。

输入统计点缓冲单元1的弹出统计点的时机是根据原始数据统计单元2的统计情况而定的,当原始数据统计单元2需要进行统计时,可以控制输入统计点缓冲单元1弹出一个统计点给原始数据统计单元2。

输出统计点步进控制单元4根据设定的输出统计点总数和输入统计点总数确定重采样时机,并在重采样时机输出步进使能信号。步进使能信号可用于控制何时向输出统计点缓冲单元3压入一个原始数据统计单元2处理后的统计点(再统计数据),同时控制原始数据统计单元2初始化为默认状态或用当前统计点替换再统计数据。

原始数据统计单元2连接输入统计点缓冲单元1和输出统计点步进控制单元3。原始数据统计单元2接收输入统计点缓冲单元1最新弹出的统计点,在统计信息的统计格式的基础上对统计点进行再统计,生成再统计数据,举例而言,若原统计信息的统计格式为求和,则再统计方式便是求和。原始数据统计单元2在步进使能信号的控制下,将再统计数据输出后,初始化为默认状态或用当前统计点替换再统计数据。

输出统计点缓冲单元3连接原始数据统计单元2和输出统计点步进控制单元4,在步进使能信号的控制下,压入并缓存再统计数据,生成重采样后的统计点,每一个再统计数据的缓存点继而重采样后的统计点。同样可以采用缓存、存储器、寄存器等实现,可以以先进先出的形式保存尚未被CPU读走的一部分输出统计点序列。

可选地,输出统计点缓冲单元3也可以只缓冲一个统计点,每当输出统计点缓冲单元3缓冲了一个输出统计点时,立即通知CPU取走统计点,在CPU尚未取走该统计点之前,整个装置将不再从输入统计点缓冲单元1弹出新的输入统计点进行处理,始终保持挂起状态,直至输出统计点缓冲单元3的统计点被CPU取走。输出统计点缓冲单元3的具体实现部件可以与输入统计点缓冲单元1相同,可参看前述关于输入统计点缓冲单元1的描述。

在目标设备上,从寄存器读取的输出值将被位于CPU缓存至DDR(双倍速率同步动态随机存储器)内存中作为初始趋势点序列,其中不包含平均值和方差信息。某次重采样操作对应的全部输出统计点均已经被CPU读走并缓存至DDR后,CPU将启动后置计算单元,计算得到每个统计点的平均值和方差统计信息,并补充到初始趋势点序列中,得到最终的趋势点序列,并在CPU中使用绘图工具将趋势点绘制为趋势图。

后置统计运算单元7连接输出统计点缓冲单元4,将重采样后的统计点进行后置运算,得到用于趋势图显示的趋势点序列。重采样后的统计点生成的趋势点序列,后置统计运算单元7的运算结果保存到趋势点序列中,用于趋势图显示以或后置的其他计算。

本发明实施例将输入统计点序列按照指定的比例重新抽取为输出统计点序列,从而与原始数据的统计信息采样比例不同,从而实现分析记录类仪器仪表的趋势图缩放功能。各单元对于统计点的处理可以由时钟信号控制,呈一条流水线有序进行。

输出统计点步进控制单元3理论上相当于一个精确的、尤其是无累积步进误差的分数计数器。在一个实施例中,输出统计点步进控制单元3包括:计数器和比较器。计数器在输入统计点缓冲单元1的每个统计点弹出并在原始数据统计单元2处理后,加上输出统计点总数,加和结果作为计数值,计数器可以是加减法计数器。比较器的一个输入端接收计数器的计数值,另一个输入端接收输入统计点总数,在计数器的计数值大于输入统计点总数时,比较器的输出端发生变化,此时即为重采样时机,比较器输出步进使能信号。

步进使能信号还作为计数器的求余使能信号,控制计数器对计数值求余,计数器发挥减法功能,将计数值减去输入统计点总数得到余数,将该余数作为新的计数值进行后续的累加,换言之,计数器响应于求余使能信号而将计数值更新为减去了输入统计点总数后的值。

具体的,输出统计点步进控制单元4可以首先通过一个32-bit定点加法器和一个32-bit内部寄存器组成一个任意步进值的32-bit计数器,计数器与输入统计点总数寄存器作为一个32-bit比较单元的两个输入端,当且仅当计数值大于等于输入统计点总数时,比较单元输出有效,而每当比较单元输出有效时,32-bit比较单元内部寄存器会减去输入统计点总数,使比较单元的输出回到无效状态。

其中,定点加法器的一端为32-bit内部寄存器本身,而另一端则为输出统计点总数寄存器,每当本装置完成一个输入统计点的统计运算时,32-bit寄存器的值就加上输出统计点总数,定点加法器的输出会在下一个时钟节拍被再次保存至32-bit内部寄存器,用于下一次的步进运算。

为了更好地说明输出统计点步进控制单元4的逻辑,本实施例将通过一个实际场景来推算输出统计点步进控制单元4的状态变化。在此场景中,输入统计点共有12345个,对应从早上6:00到晚上18:00之间的全部趋势记录数据;而输出统计点有800个,对应目标设备的趋势图显示区域的水平像素数。也就是说,在此场景中,需要将每12345/800≈15.43个输入统计点重采样为一个输出统计点。在这种场景下,输出统计点步进控制单元4的状态变化如下表一所示。

表一实际场景中输出统计点步进控制单元的状态变化

在一个实施例中,装置还包括:输入统计点总数设置单元5和输出统计点总数设置单元6。

输入统计点总数设置单元5连接输出统计点步进控制单元4,用于配置并输出输入统计点总数,或其他配置信息。输入统计点总数设置单元5保存了用户设置的重采样参数之一:输入统计点总数,即总共有多少个连续的输入统计点需要被重采样。输入统计点总数设置单元5可以作为一个只读的存储单元,为装置中的其他各个单元(尤其是输出统计点步进控制单元)提供配置信息。当输入统计点缓冲单元1累计输入的统计点个数达到输入统计点总数设置单元5的当前值时,说明本装置刚好完成了一次重采样操作。

输出统计点总数设置单元6连接输出统计点步进控制单元4,用于设置并输出输出统计点总数,或其他配置信息。输出统计点总数设置单元6保存了用户设置的重采样参数之一:输出统计点总数,即总共有多少个连续的输出统计点需要被生成。输出统计点总数设置单元6也可以作为一个只读的存储单元,为本装置的其他各个单元(尤其是输出统计点步进控制单元)提供配置信息。当输出统计点缓冲单元3累计输出的统计点个数达到输出统计点总数设置单元6的当前值时,说明本装置刚好完成了一次重采样操作。

输入统计点总数设置单元5和输出统计点总数设置单元6均可以通过一个32-bit的可读写寄存器来实现,寄存器中的内容为一个无符号整数,最多允许设置的输入点个数为(232-1)个,在启动一次重采样之前,先通过AXI总线的指定地址向寄存器写入对应的值即可,但应理解并不限于此。

具体来说,每当输入统计点缓冲区的首个缓冲点(统计点)被弹出并处理完成后,计数器自动加上输出统计点总数设置单元6中保存的设置值,可以为用户设置,计数器的计数值作为比较器的一个输入端,输入统计点总数设置单元5中保存的用户设置的值作为比较器的另外一个用作比较基准的输入端,比较器的比较结果输出端作为计数器的求余使能信号,以及原始数据统计单元2的复位信号,同时也作为输出统计点缓冲单元3的压入使能信号。

每当比较器输出有效时,说明计数器的值已经大于等于用户设置的输入统计点总数,一种处理情况可以为:

首先计数器根据求余使能信号将计数值减去输入统计点总数(简化了求余操作),使计数器的值仍然保持在小于输入统计点总数的范围内;

然后原始数据统计单元2的当前状态的数据(再统计数据)统一压入输出统计点缓冲单元3,从而创建了一个新的输出统计点;

然后原始数据统计单元2根据步进使能信号(复位信号)复位至无数据的默认状态,准备开始处理下一个输入统计点;

最后启动原始数据统计单元2并完成对当前输入统计点(前述该下一个输入统计点)的处理,当前输入统计点包含的信息将仅出现复位之后的新输出统计点区间。

可选地,每当比较器输出有效时,另一种处理情况可以为:

首先计数器根据求余使能信号将计数值减去输入统计点总数(简化了求余操作),使计数器的值仍然保持在小于输入统计点总数的范围内;

接着先启动一次原始数据统计单元2并完成对当前输入统计点的处理;

然后原始数据统计单元2的当前状态数据(再统计数据)统一压入输出统计点缓冲单元3中,从而创建了一个新的输出统计点;

最后将当前输入统计点(刚已处理的统计点)的各个统计值直接载入对应的原始数据统计单元2,也就是说,原始数据统计单元2直接统计了当前统计点,而不是恢复至没有数据的默认状态。

根据不同信号之间的产生时序不同及信号的走向不同相应结构上的连接线路也相应不同。在该另一种情况下,比较器输出有效时刻对应的输入统计点将被前后两个输出统计点分别统计各一次,输出统计点序列的相邻两个统计点之间将有很小的一点点时间重叠,这种时间重叠可以保证输出统计点之间在统计值范围上是连续不间断的,从而最终保证趋势曲线是连续的,不会出现“断线”的情况。

在一个实施例中,统计点的统计信息可以具体包括:区间原始数据最大值、区间原始数据最小值、区间原始数据和、区间原始数据平方和、区间原始数据个数。

每一种信息对应本装置的一个逻辑端口,这些信息可以根据适合于具体实施例的格式以及顺序保存在外部存储设备中。具体的,区间原始数据最大值:当前统计点对应的时间区间内,所有原始测量数据中最大的一个值。区间原始数据最小值:当前统计点对应的时间区间内,所有原始测量数据中最小的一个值。区间原始数据和:当前统计点对应的时间区间内,所有原始测量数据的累加和,即∑Xi,其中Xi为统计点区间内第i个原始测量数据。区间原始数据平方和:当前统计点对应的时间区间内,所有原始测量数据的平方值的累加和,即其中Xi为统计点对应的时间区间内第i个原始测量数据。区间原始数据个数:当前统计点对应的时间区间内,总计有多少个原始测量数据。

当统计点的时间区间内不存在原始数据或者原始数据无效(例如全部超出分析记录设备的物理量程)时,将区间原始数据最大值记为原始数据的数据类型的最小值,将区间原始数据最小值记为原始数据的数据类型的最大值,其余记为0。避免这种情况下出现不正确的数据导致统计结果出现较大误差。

在一个实施例中,原始数据统计单元2包括:原始数据最大值保持单元21、原始数据最小值保持单元22、原始数据和累加单元23、原始数据平方和累加单元24、原始数据个数统计单元25。

原始数据最大值保持单元21的输入端连接输入统计点缓冲单元1的最大值输出端,其输出端连接输出统计点缓冲单元3的最大值输入端,用以将新接收的统计点的区间原始数据最大值与当前保持的最大值比较,保持并输出较大者。

原始数据最大值保持单元21保持当前输出统计点区间对应的所有输入统计点的最大值信息的最大值。原始数据最大值保持单元21位于输入统计点缓冲单元1、输出统计点缓冲单元2最大值端口之间,并将两者连接起来,每当输入统计点缓冲单元1的首个缓冲点被弹出后,原始数据最大值保持单元21将该单元当前保持的最大值与输入统计点缓冲单元1的首个缓冲点中的最大值相比较,并将比较结果中的较大者更新到原始数据最大值保持单元21。

记原始数据最大值保持单元21的原保持值为H.Max,记统计点为P,则原始数据最大值保持单元21新的保持值H.Max’对应的算法如下:

可选的,原始数据最大值保持单元21可以包括但不限于一个32-bit浮点比较器和一个32-bit内部寄存器,其中浮点比较器的一个输入端为输入统计点缓冲FIFO的最大值输出端口,另一个输入端为32-bit寄存器中保持的“上一次的最大值”,比较器的输出为两个输入值当中的较大值,而比较器的输出会在下一个时钟节拍被再次保存至32-bit寄存器,用于下一次的比较运算。

原始数据最小值保持单元22的输入端连接输入统计点缓冲单元1的最小值输出端,其输出端连接输出统计点缓冲单元3的最小值输入端,用以将新接收的统计点的区间原始数据最小值与当前保持的最小值比较,保持并输出较小者。

原始数据最小值保持单元22保持当前输出统计点区间对应的所有输入统计点的最小值信息的最小值。原始数据最小值保持单元22位于输入统计点缓冲单元1、输出统计点缓冲单元3最小值端口之间,并将两者连接起来,每当输入统计点缓冲单元1的首个缓冲点被弹出后,原始数据最小值保持单元22将该单元当前保持的最小值与输入统计点缓冲单元1的首个缓冲点中的最小值相比较,并将比较结果中的较小者更新到原始数据最小值保持单元22。

记原始数据最小值保持单元22的原保持值为H.Min,记所述统计点为P,则原始数据最小值保持单元新的保持值H.Min’对应的算法如下:

可选的,原始数据最小值保持单元22可以包括但不限于一个32-bit浮点比较器和一个32-bit内部寄存器,其中浮点比较器的一个输入端为输入统计点缓冲FIFO的最小值输出端口,另一个输入端为32-bit寄存器中保持的“上一次的最小值”,比较器的输出为两个输入值当中的较小值,而比较器的输出会在下一个时钟节拍被再次保存至32-bit寄存器,用于下一次的比较运算。

原始数据和累加单元23的输入端连接输入统计点缓冲单元1的和输出端,其输出端连接输出统计点缓冲单元3的和输入端,用以将新接收的统计点的区间原始数据和与当前保持的累加值进行求和,保持并输出求和后的累加值。

原始数据和累加单元23计算当前输出统计点区间对应的所有输入统计点的累加和信息的累加和。原始数据和累加单元23位于输入统计点缓冲单元1、输出统计点缓冲单元3累加和端口之间,并将两者连接起来,每当输入统计点缓冲单元1的首个缓冲点被弹出后,原始数据累加和单元23将该单元当前保持的累加和与输入统计点缓冲单元1的首个缓冲点中的累加和相加,并将新的累加和更新到原始数据累加和单元23中。

记原始数据和累加单元23的原累加值为A.Sum,记统计点为P,则原始数据和累加单元23新的累加值A.Sum’对应的算法如下:

A.Sum′=A.Sum+P.Sum

可选的,原始数据累加和计算单元可以包括但不限于一个32-bit浮点加法器和一个32-bit内部寄存器,其中浮点加法器的一个输入端为输入统计点缓冲FIFO的累加和输出端口,另一个输入端为32-bit寄存器中保持的“上一次的累加和”,加法器的输出为两个输入值的和,而加法器的输出会在下一个时钟节拍被再次保存至32-bit寄存器,用于下一次的累加运算。

原始数据平方和累加单元24的输入端连接输入统计点缓冲单元1的平方和输出端,其输出端连接输出统计点缓冲单元3的平方和输入端,用以新接收的统计点的区间原始数据平方和与当前保持的平方和累加值进行求和,保持并输出求和后的平方和累加值。

原始数据平方和累加单元24计算当前输出统计点区间对应的所有输入统计点的平方和信息的累加和。原始数据平方和累加单元24位于所述输入统计点缓冲单元1、输出统计点缓冲单元3平方和端口之间,并将两者连接起来,每当输入统计点缓冲单元1的首个缓冲点被弹出后,原始数据平方和累加单元24将该单元当前保持的平方和与输入统计点缓冲单元1的首个缓冲点中的平方和相加,并将新的平方和更新到原始数据平方和累加单元24中。

记原始数据平方和累加单元24的原累加值为A.SquareSum,记统计点为P,则原始数据平方和累加单元24新的累加值A.SquareSum’对应的算法如下:

A.SquareSum′=A.SquareSum+P.SquareSum

可选的,原始数据平方和计算单元24可以包括但不限于一个32-bit浮点加法器和一个32-bit内部寄存器,其中浮点加法器的一个输入端为输入统计点缓冲FIFO的平方和输出端口,另一个输入端为32-bit寄存器中保持的“上一次的平方和”,加法器的输出为两个输入值的和,而加法器的输出会在下一个时钟节拍被再次保存至32-bit寄存器,用于下一次的累加运算。

原始数据个数统计单元25的输入端连接输入统计点缓冲单元1的个数输出端,其输出端连接输出统计点缓冲单元2的个数输入端,用以对接收的统计点的区间原始数据个数进行累加计数,输出计数后的个数。

原始数据个数统计单元25统计当前输出统计点区间对应的所有原始测量数据点的总个数。原始数据个数统计单元25位于输入统计点缓冲单元1、输出统计点缓冲单元3原始数据计数端口之间,并将两者连接起来,每当输入统计点缓冲单元1的首个缓冲点被弹出后,原始数据个数统计单元25将该单元当前保持的计数值与输入统计点缓冲单元1的首个缓冲点中的计数值再次相加,并将新的计数值更新到原始数据个数统计单元25。

记原始数据个数统计单元25的原计数值为C.N,记统计点为P,则原始数据个数统计单元25新的计数值C.N’对应的算法如下:

C.N'=C.N+P.N

可选的,原始数据个数统计单元可以包括但不限于一个32-bit定点加法器和一个32-bit内部寄存器,其中定点加法器的一个输入端为输入统计点缓冲FIFO的原始数据个数输出端口,另一个输入端为32-bit寄存器中保持的“上一次的统计个数”,加法器的输出为两个输入值的和,而加法器的输出会在下一个时钟节拍被再次保存至32-bit寄存器,用于下一次的累加运算。

原始数据最大值保持单元21、原始数据最小值保持单元22、原始数据和累加单元23、原始数据平方和累加单元24和原始数据个数统计单元25在步进使能信号的控制下,输出各自保持数据后,初始化为默认状态或用当前统计点替换各自保持数据。

在一个实施例中,后置统计运算单元7包括但不限于:后置平均值计算单元71、后置方差计算单元72。

后置平均值计算单元71连接输出统计点缓冲单元3,根据重采样后的统计点计算平均值其中,Sum为输出统计点的原始数据和的累加值,N为原始数据个数的累加计数。后置平均值计算单元71在计算得到平均值Avg后,直接将该平均值Avg保存至重采样生成的趋势点序列中,用于趋势图显示以及后置的其他计算。

后置方差计算单元72连接输出统计点缓冲单元3和后置平均值计算单元71,根据重采样后的统计点和后置平均值计算单元71计算得到的平均值计算方差其中,SquareSum为输出统计点的原始数据平方和的累加值。后置方差计算单元72在计算得到方差S2后,直接将该S2保存至重采样生成的趋势点序列中,用于趋势图显示。

参看图2,较佳的,后置统计运算单元7通过CPU实现,输入统计点缓冲单元1、输出统计点步进控制单元4、原始数据统计单元2和输出统计点缓冲单元3不通过CPU实现(图中PS部分)。输入统计点缓冲单元1、输出统计点步进控制单元4、原始数据统计单元2和输出统计点缓冲单元3可以通过FPGA实现(图中PL),或者可以通过简单的运算器、存储器、寄存器等根据各自相应功能搭建而成。当然CPU还可对FPGA中的各单元进行读写操作,或者其他控制操作,但是各单元自身的处理不消耗CPU资源。

具体来说,当输出统计点步进控制单元4输出步进使能信号后,输出统计点缓冲单元3将五个原始数据统计单元的当前值通过一次性原子操作压入并保存,等待CPU依次读走。

CPU取走输出统计点缓冲单元3中的输出统计点之后,需要对统计点中的累加和统计信息进行后置运算才能得到统计点对应的平均值。后置平均值计算单元71涉及到除法操作,通过CPU内部进行处理。但这里并不会造成性能瓶颈,这是因为相对于数量庞大的输入统计点而言,输出统计点的个数通常很少,不会造成过多时间开销。

CPU取走输出统计点缓冲单元3中的输出统计点且后置平均值计算单元71计算得到平均值Avg之后,需要对统计点中的平方和累加和统计信息进行后置运算,才能得到统计点对应的方差。后置方差计算单元72涉及到乘法与除法操作,通过CPU内部进行处理。但这里并不会造成性能瓶颈,这是因为相对于数量庞大的输入统计点而言,输出统计点的个数通常很少,不会造成过多时间开销。

本发明实施例采用一种流水线式的计算结构,可将装置中的所有非乘除法运算单元全部部署到FPGA等硬件设备中作为CPU的协处理器,并通过CPU将FPGA流水线输出的数据进行简单的后置计算,即可既快速又精确地得到最大值、最小值、平均值、方差等全部常用统计指标的区间值,从而大大加快数据处理速度,并显著降低CPU负荷,最终为用户提供数据精确、响应快速的趋势图功能。

进一步的,装置还可以包括外部存储单元,连接输入统计点缓冲单元,用以存储待重采样的统计点序列。继续参看图2,外部存储单元可以为SD卡8,CPU可从SD卡8中读取等待重采样的输入统计点序列或单个输入统计点。外部存储单元还可以存储最终趋势点序列,用以实现历史记录的调取分析。装置还可以包括显示屏9,用于显示最终趋势点序列,当然显示屏9可以不设置在装置中,而是通过信号线连接起来。

本发明虽然以较佳实施例公开如上,但其并不是用来限定权利要求,任何本领域技术人员在不脱离本发明的精神和范围内,都可以做出可能的变动和修改,因此本发明的保护范围应当以本发明权利要求所界定的范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1