CN105868026A - 一种计算序列平均值的方法和装置 - Google Patents
一种计算序列平均值的方法和装置 Download PDFInfo
- Publication number
- CN105868026A CN105868026A CN201610207072.2A CN201610207072A CN105868026A CN 105868026 A CN105868026 A CN 105868026A CN 201610207072 A CN201610207072 A CN 201610207072A CN 105868026 A CN105868026 A CN 105868026A
- Authority
- CN
- China
- Prior art keywords
- register
- sequence
- average value
- result data
- sequence length
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 238000005070 sampling Methods 0.000 claims abstract description 39
- 230000001960 triggered effect Effects 0.000 claims description 2
- 230000008569 process Effects 0.000 description 12
- 238000009825 accumulation Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000002184 metal Substances 0.000 description 2
- 101100322581 Caenorhabditis elegans add-1 gene Proteins 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供了一种计算序列平均值的方法和装置,该方法包括:设置采样周期和第一寄存器,每达到一次采样周期,获取一个序列元素;当每获取一个序列元素时,执行将当前序列元素与所述第一寄存器中存储的当前数据进行累加,并将累加后的结果数据替换所述第一寄存器中存储的当前数据,其中,所述第一寄存器的初始值为0;确定所述结果数据对应的序列长度;根据所述结果数据和所述序列长度,计算序列平均值。本方案能够降低对芯片内存的消耗。
Description
技术领域
本发明涉及信号处理技术领域,特别涉及一种计算序列平均值的方法和装置。
背景技术
在信号产生过程中,经常需要按照时间顺序采集数据,形成序列,并对序列求平均值,以了解产生信号的设备的性能。例如,需要对处理器互联总线的性能进行评估,则可通过实时监控处理器互连总线的传输带宽,计算在一段时间内传输带宽的平均值,通过该平均值能够评估处理器互连总线的传输速率。
目前,计算序列平均值的方法主要是,以固定的整数个核心时钟作为采样周期,进行数据采集,其中,每个采样周期采集的一个数据作为一个序列元素,存储在一个寄存器中,另外,不同的序列元素存储在不同的寄存器中,并将1秒内采集到的所有序列元素进行代数平均。以每个监控采样周期包含20个处理器核心时钟为例,采集处理器互连总线的传输带宽,假设处理器核心时钟频率为2GHz,那么1秒中内可以采样到的带宽数据的序列长度n为:
即在1秒内一共采集到100000000个带宽数据/序列元素,设带宽数据/序列元素组成的序列为x1,x2,x3,x4,......x100000000,则,这100000000个带宽数据/序列元素需要存储在100000000个寄存器中,然后将这100000000个寄存器中的带宽数据/序列元素相加,得到序列总和sum:
sum=x1+x2+x3+x4+…+x100000000
最后,根据sum计算出序列平均值aver:
在现有这种计算序列平均值的方法中,需要设置比较多的寄存器,而寄存器越多,占用设备的芯片内存资源越大,因此,现有的这种计算序列平均值的方法,常常需要消耗较大的芯片内存。
发明内容
本发明实施例提供了一种计算序列平均值的方法和装置,能够降低对芯片内存的消耗。
一种计算序列平均值的方法,设置采样周期和第一寄存器,每达到一次采样周期,获取一个序列元素,还包括:
当每获取一个序列元素时,执行将当前序列元素与所述第一寄存器中存储的当前数据进行累加,并将累加后的结果数据替换所述第一寄存器中存储的当前数据,其中,所述第一寄存器的初始值为0;
确定所述结果数据对应的序列长度;
根据所述结果数据和所述序列长度,计算序列平均值。
优选地,上述方法,进一步包括:设置第二寄存器;
所述确定所述结果数据对应的序列长度,包括:当每获取一个序列元素时,所述第二寄存器加1,统计序列长度,其中,所述第二寄存器的初始值为0。
优选地,所述根据所述结果数据和所述序列长度,计算序列平均值,包括:
判断所述第二寄存器统计的序列长度是否为2的整数次幂;
如果是,则根据下述公式,计算右移位数,并根据所述右移位数,将所述结果数据右移相应的位数,得到序列平均值;
j=log2 n
其中,所述j表征右移位数,所述n表征序列长度;
否则,直接等待下一个采样周期,获取下一个序列元素。
优选地,上述方法,进一步包括:设置择机有效标志和第三寄存器;
将所述序列平均值存储到第三寄存器中;
输出所述第三寄存器中存储的所述序列平均值;
控制所述择机有效标志处于拉高状态,输出所述第二寄存器统计的序列长度。
优选地,上述方法,进一步包括:
当所述结果数据溢出所述第一寄存器时,所述第一寄存器和所述第二寄存器将存储的数据清零;
或者,
当接收到系统上电请求时,所述第一寄存器和所述第二寄存器清零;
或者,
当接收到系统复位请求时,所述第一寄存器和所述第二寄存器清零。
一种计算序列平均值的装置,包括:设置单元、第一寄存器、确定单元和平均值计算单元,其中,
所述设置单元,用于设置采样周期,并发送所述采样周期给所述第一寄存器;
所述第一寄存器,用于接收所述设置单元发送的所述采样周期,每达到一次所述采样周期,获取一个序列元素,当每获取一个序列元素时,执行将序列元素与自身存储的当前数据进行累加,并将累加后的结果数据替换所述当前数据,将所述结果数据发送给所述平均值计算单元;
所述确定单元,用于确定所述第一寄存器存储的结果数据对应的序列长度,并将所述序列长度发送给所述平均值计算单元;
所述平均值计算单元,用于接收所述第一寄存器发送的结果数据和所述确定单元发送的序列长度,根据所述结果数据和所述序列长度,计算序列平均值。
优选地,所述确定单元,包括:第二寄存器,其中,
所述第二寄存器,用于当所述第一寄存器获取一个序列元素时,执行加1操作,统计序列长度,其中,所述第二寄存器的初始值为0。
优选地,上述装置,进一步包括:判断单元,其中,
所述判断单元,用于判断所述第二寄存器统计的序列长度是否为2的整数次幂,如果是,则触发所述平均值计算单元;
所述平均值计算单元,用于在接收到所述判断单元的触发时,根据下述公式,计算右移位数,并根据所述右移位数,将所述结果数据右移相应的位数,得到序列平均值;
j=log2 n
其中,所述j表征右移位数,所述n表征序列长度。
优选地,
所述平均值计算单元,包括:择机有效标志和第三寄存器,其中,
所述第三寄存器,用于存储所述序列平均值,并输出所述序列平均值,并触发所述择机有效标志;
所述择机有效标志,用于当接收到所述第三寄存器的触发时,调整为拉高状态,并触发第二寄存器;
所述第二寄存器,用于接收到所述择机有效标志的触发时,输出所述序列长度。
优选地,
所述第一寄存器,用于当所述结果数据溢出时,将自身存储的数据清零;
所述第二寄存器,用于当所述第一寄存器中的结果数据溢出时,将自身存储的数据清零;
或者,
所述第一寄存器,用于当接收到上电请求时,将自身存储的数据清零;
所述第二寄存器,用于当接收到上电请求时,将自身存储的数据清零;
或者,
所述第一寄存器,用于当接收到复位请求时,将自身存储的数据清零;
所述第二寄存器,用于当接收到复位请求时,将自身存储的数据清零。
本发明实施例提供了一种计算序列平均值的方法和装置,该方法通过采样周期和第一寄存器,每达到一次采样周期,获取一个序列元素;当每获取一个序列元素时,执行将当前序列元素与所述第一寄存器中存储的当前数据进行累加,并将累加后的结果数据替换所述第一寄存器中存储的当前数据,其中,所述第一寄存器的初始值为0;确定所述结果数据对应的序列长度;根据所述结果数据和所述序列长度,计算序列平均值。通过上述过程描述可知,在第一寄存器中存储的是序列元素的累加结果,即通过一个寄存器即可实现序列元素的累加,而无需为每个序列元素配置一个寄存器,能够降低对芯片内存的消耗。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例提供的一种计算序列平均值的方法的流程图;
图2是本发明另一个实施例提供的一种计算序列平均值的方法的流程图;
图3是本发明一个实施例提供的一种计算序列平均值的装置的结构示意图;
图4是本发明另一个实施例提供的一种计算序列平均值的装置的结构示意图;
图5是本发明又一个实施例提供的一种计算序列平均值的装置的结构示意图;
图6是本发明另一个实施例提供的一种计算序列平均值的装置的结构示意图;
图7是本发明一个实施例提供的应用于芯片中的时序逻辑电路SEQ_AVER的输入输出结构示意图;
图8是本发明一个实施例提供的SEQ_AVER的内部逻辑运算的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种计算序列平均值的方法,该方法可以包括以下步骤:
步骤101:设置采样周期和第一寄存器,每达到一次采样周期,获取一个序列元素;
步骤102:当每获取一个序列元素时,执行将当前序列元素与第一寄存器中存储的当前数据进行累加,并将累加后的结果数据替换第一寄存器中存储的当前数据,其中,第一寄存器的初始值为0;
步骤103:确定结果数据对应的序列长度;
步骤104:根据结果数据和序列长度,计算序列平均值。
图1所示的本发明实施例中,通过采样周期和第一寄存器,每达到一次采样周期,获取一个序列元素;当每获取一个序列元素时,执行将当前序列元素与所述第一寄存器中存储的当前数据进行累加,并将累加后的结果数据替换所述第一寄存器中存储的当前数据,其中,所述第一寄存器的初始值为0;确定所述结果数据对应的序列长度;根据所述结果数据和所述序列长度,计算序列平均值。通过上述过程描述可知,在第一寄存器中存储的是序列元素的累加结果,即通过一个寄存器即可实现序列元素的累加,不仅无需为每个序列元素配置一个寄存器,而且无需进行大规模的多输入加法,能够降低对芯片内存的消耗。
在本发明一个实施例中,上述方法进一步包括:设置第二寄存器;步骤103的具体实施方式,包括:当每获取一个序列元素时,第二寄存器加1,统计序列长度,其中,第二寄存器的初始值为0,通过该过程,可以实时记录序列的长度,保证了序列长度的统计的准确性。
在本发明一个实施例中,步骤104的具体实施方式,包括:判断第二寄存器统计的序列长度是否为2的整数次幂;如果是,则根据下述公式,计算右移位数,并根据右移位数,将结果数据右移相应的位数,得到序列平均值,;
j=log2 n
其中,所述j表征右移位数,所述n表征序列长度;
否则,直接等待下一个采样周期,获取下一个序列元素,在本发明实施例中,通过右移的方式获取并输出序列平均值,避免进行多位除法运算,进一步降低了对内存的消耗,同时,当序列长度为2的整数次幂时,获得序列平均值,并输出序列平均值,实现择机输出序列平均值,保证序列平均值的输出。
在本发明一个实施例中,上述方法进一步包括:设置择机有效标志和第三寄存器;将序列平均值存储到第三寄存器中;输出第三寄存器中存储的序列平均值,并控制择机有效标志处于拉高状态,输出第二寄存器统计的序列长度,通过将序列平均值存储到第三寄存器中,避免序列平均值丢失,通过择机有效标志的状态,保证序列平均值与序列长度之间的一致性。
在本发明一个实施例中,上述方法进一步包括:当结果数据溢出第一寄存器时,第一寄存器和第二寄存器将存储的数据清零,由于寄存器存储数据的位数是有限的,通过本发明实施例提供的方案,能够保证寄存器存储的准确性。
在本发明一个实施例中,上述方法进一步包括:当接收到上电请求时,第一寄存器和第二寄存器清零,保证了上电时,寄存器恢复初始值0,保证序列平均值和序列长度输出的准确性。
在本发明一个实施例中,上述方法进一步包括:当接收到系统复位请求时,第一寄存器和第二寄存器清零,进一步保证序列平均值和序列长度输出的准确性。
为使本发明的目的、技术方案和优点更加清楚,下面结合附图及具体实施例对本发明作进一步地详细描述。
如图2所示,本发明另一实施例提供了一种计算序列平均值的方法,该方法可以包括以下步骤:
步骤201:设置采样周期、第一寄存器、第二寄存器和第三寄存器;
步骤202:每达到一次采样周期,获取一个序列元素;
在该步骤中,可以通过设置逻辑时钟来实现设置采样周期,例如:可以设置1个逻辑时钟为一个采样周期,也可以设置20个逻辑时钟为一个采样周期等等,该逻辑时钟的个数,将影响采样的频率,逻辑时钟个数越多,采样的频率越低。
以20个逻辑时钟为例,每个逻辑时钟频率为2GHz,那么,每个周期的时长为:
即根据公式(1)计算,每10-8s获取一个序列元素,假设第一个10-8s获取的序列元素为x1,第i个10-8s获取的序列元素为xi。
值得说明的是,对于芯片来说,可以通过芯片的输入端口来获取序列元素,还可以根据第一寄存器的性能,设置第一寄存器接收数据的长度,例如:第一寄存器的取值范围为0~127,即最长接收序列元素长度为2128,即第一寄存器为128位的寄存器。
步骤203:当每获取一个序列元素时,执行将当前序列元素与第一寄存器中存储的当前数据进行累加;
步骤204:将累加后的结果数据替换第一寄存器中存储的当前数据;
在步骤203和步骤204中,第一寄存器的初始值为0;例如:获取序列元素xi时,该xi作为当前序列元素,可以根据公式(2),与第一寄存器中的当前数据进行累加,
Xi=xi+Xi-1 (2)
其中,Xi表征结果数据,xi表征当前序列元素;Xi-1表征前i-1个序列元素之和。在得到Xi之后,Xi将替换Xi-1成为xi+1对应的第一寄存器中的当前数据,即当i=1的时候,Xi-1为第一寄存器的初始值0;当i=2时,Xi-1为x1+0的计算结果;当i=3时,Xi-1为x2+x1+0的计算结果;即上一个周期的结果数据为当前周期对应的第一寄存器中存储的当前数据,整个过程仅通过一个寄存器完成,一方面避免了为每个序列元素设置一个寄存器,另一方面避免了多输入加法的运算,从而有效地降低了对芯片内存的消耗。
步骤205:当每获取一个序列元素时,第二寄存器加1,统计序列长度;
在该步骤中,第二寄存器的初始值为0;即当获取到第一个序列元素x1时,第二寄存器加1即0+1=1;当获取到第二个序列元素x2时,第二寄存器加1即1+1=2;当获取到第三个序列元素x3时,第二寄存器加1即1+2=3;依此类推,当获取到第i个序列元素xi时,第二寄存器加1即1+(i-1)=i,即该第二寄存器加1的过程是一个累加的过程,准确地统计了序列的长度。
步骤206:判断结果数据是否溢出第一寄存器,如果是,则执行步骤207;否则执行步骤208;
步骤207:第一寄存器和第二寄存器将存储的数据清零,并执行步骤202;
步骤208:判断第二寄存器统计的序列长度是否为2的整数次幂,如果是,则执行步骤209;否则直接执行步骤212;
该步骤主要是为了实现择机计算和输出序列平均值,由于本发明是通过右移来获得序列平均值,而不是通过除法运算获得,而右移的位数相当于执行除以2的整数次幂的操作,即数据右移1位,相当于数据除以21;数据右移2位,相当数据于除以22;数据右移3位,相当数据于除以23;依此类推,数据右移i位相当于数据于除以2i;即本发明实施例提供的方案主要对序列长度为2的整数次幂的序列计算序列平均值。
值得说明的是,前面第一寄存器的序列长度范围为0~127;则可为这0~127设置一个表,用来存储20~2127之间的数据,其中,在该表中,2的幂的取值为整数,即在该步骤判断的过程是将第二寄存器统计的序列长度与表中的数进行对比,看序列长度是否属于表中的数。
步骤209:计算右移位数,并根据右移位数,将结果数据右移相应的位数,得到序列平均值;
步骤210:将序列平均值存储到第三寄存器中,并通过第三寄存器输出序列平均值;
步骤211:控制择机有效标志处于拉高状态,输出第二寄存器统计的序列长度;
在该步骤中,根据公式(3),计算右移位数;
j=log2 n (3)
其中,j表征右移位数,n表征序列长度;
例如:n=2时,j=1,即序列长度为2时,右移1位获得一个序列平均值;n=4时,j=2,即序列长度为4时,右移2位获得另一个序列平均值等。
步骤212:等待下一个采样周期,并执行步骤202。
值得说明的是,为了保证序列平均值和序列长度统计的准确性,当接收到安装于芯片上的系统上电请求时,第一寄存器和第二寄存器清零;当接收到安装于芯片上的系统复位请求时,第一寄存器和第二寄存器清零。同时,本发明实施例提供的方法可以通过构建时序逻辑电路的方式实现,应用于芯片中。
另外,以逻辑时钟频率为2GHz,每个采样周期包含20个逻辑时钟为例,本发明实施例提供的方法可实现,即16680天之内的超长序列的平均值的计算。
如图3所示,本发明实施例提供一种计算序列平均值的装置,该装置包括:设置单元301、第一寄存器302、确定单元303和平均值计算单元304,其中,
设置单元301,用于设置采样周期,并发送采样周期给第一寄存器302;
第一寄存器302,用于接收设置单元301发送的所述采样周期,每达到一次采样周期,获取一个序列元素,当每获取一个序列元素时,执行将序列元素与自身存储的当前数据进行累加,并将累加后的结果数据替换当前数据,将结果数据发送给平均值计算单元304;
确定单元303,用于确定第一寄存器302存储的结果数据对应的序列长度,并将序列长度发送给平均值计算单元304;
平均值计算单元304,用于接收第一寄存器302发送的结果数据和确定单元303发送的序列长度,根据结果数据和序列长度,计算序列平均值,并输出序列平均值。
如图4所示,在本发明另一实施例中,上述确定单元303,包括:第二寄存器401,其中,
第二寄存器401,用于当第一寄存器302获取一个序列元素时,执行加1操作,统计序列长度,其中,第二寄存器的初始值为0。
如图5所示,在本发明另一实施例中,上述装置进一步包括:判断单元501,其中,
判断单元501,用于判断第二寄存器401统计的序列长度是否为2的整数次幂,如果是,则触发平均值计算单元304;
平均值计算单元304,用于在接收到判断单元501的触发时,根据下述公式,计算右移位数,并根据右移位数,将结果数据右移相应的位数,得到序列平均值;
j=log2 n
其中,j表征右移位数,n表征序列长度。
如图6所示,在本发明又一实施例中,平均值计算单元304,包括:择机有效标志601和第三寄存器602,其中,
第三寄存器602,用于存储序列平均值,并输出序列平均值,并触发择机有效标志601;
择机有效标志601,用于当接收到第三寄存器的触发时,调整为拉高状态,并触发第二寄存器401;
第二寄存器401,用于接收到择机有效标志601的触发时,输出序列长度。
值得说明的是,只有在第三寄存器602输出序列平均值时,择机有效标志601才处于拉高状态,此时第二寄存器401才会输出序列长度,当第三寄存器没有输出序列平均值时,择机有效标志601将一直保持拉低状态,此时,第二寄存器401不会输出序列长度,例如:前面提及的当某一序列长度为2的整数次幂时,才会计算出一个该序列长度对应的序列平均值,此时,第三寄存器才会输出该序列长度对应的序列平均值,此时,择机有效标志601调整为拉高状态,使得第二寄存器401输出该序列长度,保证了序列长度与序列平均值的一致性。
在本发明另一实施例中,第一寄存器302,用于当结果数据溢出时,将自身存储的数据清零;
第二寄存器401,用于当第一寄存器中的结果数据溢出时,将自身存储的数据清零。
在本发明另一实施例中,第一寄存器302,用于当接收到上电请求时,将自身存储的数据清零;
第二寄存器401,用于当接收到上电请求时,将自身存储的数据清零。
在本发明又一实施例中,第一寄存器302,用于当接收到复位请求时,将自身存储的数据清零;
第二寄存器401,用于当接收到复位请求时,将自身存储的数据清零。
值得说明的是,本发明实施例提供的装置可以为应用于芯片中的一种时序逻辑电路SEQ_AVER,其通过各种端口与外设的设备进行信息交互,该SEQ_AVER的接口设置可以如图7所示,其中,输入端包括:clk(芯片逻辑时钟)、reset(芯片复位)和seq_in[6:0](序列元素输入端口);输出端包括:Total_num[56:0](当前序列总长度输出端口)、Aver_out[7:0](序列平均值输出端口)和Aver_vld(择机有效标志);该SEQ_AVER的内部逻辑运算框图如图8所示,其中,Rs[127:0]801作为第一寄存器,在接收seq_in[6:0]发送的序列元素时,将Rs[127:0]801自身存储的当前数据与seq_in[6:0]发送的序列元素进行累加操作,累加后的结果存储到Rs[127:0]801中,同时,每获取一个序列元素,Ri[126:0]802作为第二寄存器,进行加1操作,并将加1后的结果存储到Ri[126:0]802中,以统计序列长度,当Ri[126:0]802统计的序列长度为2j(j=0,1,2,3……)时,Rs[127:0]801中存储的数据执行右移j位的操作,并将右移j位后的序列平均值存储到Ra[6:0]803中,通过Aver_out[7:0]输出Ra[6:0]803中的序列平均值,同时,当Ri[126:0]802统计的序列长度为2j(j=0,1,2,3……)时,使Aver_vld处于拉高状态,Ri[126:0]802通过Total_num[56:0]输出序列长度。
上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
根据上述方案,本发明的各实施例所提供的计算序列平均值的方法和装置,至少具有如下有益效果:
1.通过采样周期和第一寄存器,每达到一次采样周期,获取一个序列元素;当每获取一个序列元素时,执行将当前序列元素与所述第一寄存器中存储的当前数据进行累加,并将累加后的结果数据替换所述第一寄存器中存储的当前数据,其中,所述第一寄存器的初始值为0;确定所述结果数据对应的序列长度;根据所述结果数据和所述序列长度,计算序列平均值,并输出所述序列平均值。通过上述过程描述可知,在第一寄存器中存储的是序列元素的累加结果,即通过一个寄存器即可实现序列元素的累加,不仅无需为每个序列元素配置一个寄存器,而且无需进行大规模的多输入加法,能够降低对芯片内存的消耗。
2.通过设置第二寄存器,当每获取一个序列元素时,第二寄存器加1,统计序列长度,可以实时记录序列长度的变化,保证了序列长度的统计的准确性;另外,当第二寄存器记录的序列长度为2的整数次幂时,则对第一寄存器存储的结果数据进行右移操作,而无需进行复杂的多位除法运算,在实现了择机计算序列平均值的同时,进一步降低了对芯片内存的消耗。
3.通过设置择机有效标志和第三寄存器,将序列平均值存储到第三寄存器中;然后通过第三寄存器输出其存储的序列平均值,并控制择机有效标志处于拉高状态,输出第二寄存器统计的序列长度,通过将序列平均值存储在第三寄存器中,避免了序列平均值的丢失,另外,只有当第三寄存器输出其存储的序列平均值对应的序列长度与第二寄存器统计的序列长度一致时,择机有效标志将处于拉高状态,此时输出第二寄存器统计的序列长度,保证了输出的序列长度与序列平均值的一致性。
4.本发明实施例仅通过一个寄存器,实现每接收到一个序列元素进行一次累加,而无需为每个序列元素设置一个寄存器,因此,本发明实施例提供的方案,大大降低了寄存器的个数,减少了寄存器对芯片的占用,一定程度上,有助于减小芯片的大小。
5.本发明实施例提供的方案,一方面通过第一寄存器每接收一个序列元素进行一次累加,另一方面能够通过右移的方式获取序列平均值,不仅无需进行超大规模的多输入加法,而且无需进行多位除法运算,从而能够促进芯片性能的提高。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种计算序列平均值的方法,其特征在于,设置采样周期和第一寄存器,每达到一次采样周期,获取一个序列元素,还包括:
当每获取一个序列元素时,执行将当前序列元素与所述第一寄存器中存储的当前数据进行累加,并将累加后的结果数据替换所述第一寄存器中存储的当前数据,其中,所述第一寄存器的初始值为0;
确定所述结果数据对应的序列长度;
根据所述结果数据和所述序列长度,计算序列平均值。
2.根据权利要求1所述的方法,其特征在于,进一步包括:设置第二寄存器;
所述确定所述结果数据对应的序列长度,包括:当每获取一个序列元素时,所述第二寄存器加1,统计序列长度,其中,所述第二寄存器的初始值为0。
3.根据权利要求2所述的方法,其特征在于,所述根据所述结果数据和所述序列长度,计算序列平均值,包括:
判断所述第二寄存器统计的序列长度是否为2的整数次幂;
如果是,则根据下述公式,计算右移位数,并根据所述右移位数,将所述结果数据右移相应的位数,得到序列平均值;
j=log2n
其中,所述j表征右移位数,所述n表征序列长度;
否则,直接等待下一个采样周期,获取下一个序列元素。
4.根据权利要求2或3所述的方法,其特征在于,进一步包括:设置择机有效标志和第三寄存器;
将所述序列平均值存储到第三寄存器中;
输出所述第三寄存器中存储的所述序列平均值;
控制所述择机有效标志处于拉高状态,输出所述第二寄存器统计的序列长度。
5.根据权利要求2或3所述的方法,其特征在于,进一步包括:
当所述结果数据溢出所述第一寄存器时,所述第一寄存器和所述第二寄存器将存储的数据清零;
或者,
当接收到系统上电请求时,所述第一寄存器和所述第二寄存器清零;
或者,
当接收到系统复位请求时,所述第一寄存器和所述第二寄存器清零。
6.一种计算序列平均值的装置,其特征在于,包括:设置单元、第一寄存器、确定单元和平均值计算单元,其中,
所述设置单元,用于设置采样周期,并发送所述采样周期给所述第一寄存器;
所述第一寄存器,用于接收所述设置单元发送的所述采样周期,每达到一次所述采样周期,获取一个序列元素,当每获取一个序列元素时,执行将序列元素与自身存储的当前数据进行累加,并将累加后的结果数据替换所述当前数据,将所述结果数据发送给所述平均值计算单元;
所述确定单元,用于确定所述第一寄存器存储的结果数据对应的序列长度,并将所述序列长度发送给所述平均值计算单元;
所述平均值计算单元,用于接收所述第一寄存器发送的结果数据和所述确定单元发送的序列长度,根据所述结果数据和所述序列长度,计算序列平均值。
7.根据权利要求6所述的装置,其特征在于,所述确定单元,包括:第二寄存器,其中,
所述第二寄存器,用于当所述第一寄存器获取一个序列元素时,执行加1操作,统计序列长度,其中,所述第二寄存器的初始值为0。
8.根据权利要求7所述的装置,其特征在于,进一步包括:判断单元,其中,
所述判断单元,用于判断所述第二寄存器统计的序列长度是否为2的整数次幂,如果是,则触发所述平均值计算单元;
所述平均值计算单元,用于在接收到所述判断单元的触发时,根据下述公式,计算右移位数,并根据所述右移位数,将所述结果数据右移相应的位数,得到序列平均值;
j=log2n
其中,所述j表征右移位数,所述n表征序列长度。
9.根据权利要求7或8所述的装置,其特征在于,
所述平均值计算单元,包括:择机有效标志和第三寄存器,其中,
所述第三寄存器,用于存储所述序列平均值,并输出所述序列平均值,并触发所述择机有效标志;
所述择机有效标志,用于当接收到所述第三寄存器的触发时,调整为拉高状态,并触发第二寄存器;
所述第二寄存器,用于接收到所述择机有效标志的触发时,输出所述序列长度。
10.根据权利要求7或8所述的装置,其特征在于,
所述第一寄存器,用于当所述结果数据溢出时,将自身存储的数据清零;
所述第二寄存器,用于当所述第一寄存器中的结果数据溢出时,将自身存储的数据清零;
或者,
所述第一寄存器,用于当接收到上电请求时,将自身存储的数据清零;
所述第二寄存器,用于当接收到上电请求时,将自身存储的数据清零;
或者,
所述第一寄存器,用于当接收到复位请求时,将自身存储的数据清零;
所述第二寄存器,用于当接收到复位请求时,将自身存储的数据清零。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610207072.2A CN105868026A (zh) | 2016-04-05 | 2016-04-05 | 一种计算序列平均值的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610207072.2A CN105868026A (zh) | 2016-04-05 | 2016-04-05 | 一种计算序列平均值的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105868026A true CN105868026A (zh) | 2016-08-17 |
Family
ID=56627735
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610207072.2A Pending CN105868026A (zh) | 2016-04-05 | 2016-04-05 | 一种计算序列平均值的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105868026A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108153591A (zh) * | 2017-12-05 | 2018-06-12 | 深圳竹信科技有限公司 | 数据流实时处理方法、装置及存储介质 |
CN109598009A (zh) * | 2017-09-30 | 2019-04-09 | 杭州真气科技有限公司 | 一种臭氧小时控制值计算方法 |
CN109614148A (zh) * | 2018-12-11 | 2019-04-12 | 中科驭数(北京)科技有限公司 | 数据逻辑运算方法、监测方法及装置 |
CN109800191A (zh) * | 2019-01-25 | 2019-05-24 | 中科驭数(北京)科技有限公司 | 用于计算序列数据的协方差的方法及装置 |
CN112600735A (zh) * | 2020-12-14 | 2021-04-02 | 北京信而泰科技股份有限公司 | 网络时延测试方法、装置及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5052027A (en) * | 1989-12-22 | 1991-09-24 | Comsat Laboratories | Programmable noise bandwidth reduction by means of digital averaging |
CN1991818A (zh) * | 2005-12-30 | 2007-07-04 | 北京远东仪表有限公司 | 一种计算数据序列平均值的方法及其实现装置 |
CN101046918A (zh) * | 2006-06-05 | 2007-10-03 | 华为技术有限公司 | 一种实现数据测量的系统和方法 |
CN102054349A (zh) * | 2009-10-28 | 2011-05-11 | 广达电脑股份有限公司 | 遥控装置及其辨识方法 |
-
2016
- 2016-04-05 CN CN201610207072.2A patent/CN105868026A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5052027A (en) * | 1989-12-22 | 1991-09-24 | Comsat Laboratories | Programmable noise bandwidth reduction by means of digital averaging |
CN1991818A (zh) * | 2005-12-30 | 2007-07-04 | 北京远东仪表有限公司 | 一种计算数据序列平均值的方法及其实现装置 |
CN101046918A (zh) * | 2006-06-05 | 2007-10-03 | 华为技术有限公司 | 一种实现数据测量的系统和方法 |
CN102054349A (zh) * | 2009-10-28 | 2011-05-11 | 广达电脑股份有限公司 | 遥控装置及其辨识方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109598009A (zh) * | 2017-09-30 | 2019-04-09 | 杭州真气科技有限公司 | 一种臭氧小时控制值计算方法 |
CN108153591A (zh) * | 2017-12-05 | 2018-06-12 | 深圳竹信科技有限公司 | 数据流实时处理方法、装置及存储介质 |
CN109614148A (zh) * | 2018-12-11 | 2019-04-12 | 中科驭数(北京)科技有限公司 | 数据逻辑运算方法、监测方法及装置 |
CN109800191A (zh) * | 2019-01-25 | 2019-05-24 | 中科驭数(北京)科技有限公司 | 用于计算序列数据的协方差的方法及装置 |
CN109800191B (zh) * | 2019-01-25 | 2020-04-24 | 中科驭数(北京)科技有限公司 | 用于计算序列数据的协方差的方法及装置 |
CN112600735A (zh) * | 2020-12-14 | 2021-04-02 | 北京信而泰科技股份有限公司 | 网络时延测试方法、装置及系统 |
CN112600735B (zh) * | 2020-12-14 | 2022-08-09 | 北京信而泰科技股份有限公司 | 网络时延测试方法、装置及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105868026A (zh) | 一种计算序列平均值的方法和装置 | |
KR100969497B1 (ko) | 성능 모니터와 그를 위한 방법 | |
Bauer Jr et al. | Scalable time warp on blue gene supercomputers | |
US7818624B2 (en) | Processor bus for performance monitoring with digests | |
WO2020228289A1 (zh) | 日志获取方法、装置、终端及存储介质 | |
JP6340481B2 (ja) | データキャッシング方法、装置及び記憶媒体 | |
CN109379305A (zh) | 一种数据下发方法、装置、服务器及存储介质 | |
JP2019219714A (ja) | 分散処理システムおよび分散処理方法 | |
CN104024977B (zh) | 使用基于奖赏的睡眠状态选择的电源管理 | |
CN105260393A (zh) | 信息推送方法、装置及电子设备 | |
CN107870780B (zh) | 数据处理装置和方法 | |
US8356122B2 (en) | Distributed trace using central performance counter memory | |
US7310751B2 (en) | Timeout event trigger generation | |
CN107943756A (zh) | 一种计算方法及相关产品 | |
CN108108189B (zh) | 一种计算方法及相关产品 | |
CN109213965B (zh) | 一种系统容量预测方法、计算机可读存储介质及终端设备 | |
CN110147254A (zh) | 一种数据缓存处理方法、装置、设备及可读存储介质 | |
CN108170292B (zh) | 表情管理方法、表情管理装置及智能终端 | |
CN113746763B (zh) | 一种数据处理的方法、装置和设备 | |
CN107292142B (zh) | 业务操作处理方法、业务操作处理装置及业务终端 | |
CN103176941B (zh) | 核间通信方法和代理装置 | |
JP6239195B2 (ja) | 性能評価装置及び性能評価プログラム | |
CN110222000B (zh) | 一种AXI stream数据帧总线合路装置 | |
CN111367832A (zh) | 基于存储器的统计方法、装置以及存储设备 | |
US7590063B2 (en) | Real-time estimation of event-driven traffic latency distributions when layered on static schedules |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160817 |