分类电路和方法.pdf

上传人:32 文档编号:1566652 上传时间:2018-06-25 格式:PDF 页数:14 大小:442.11KB
返回 下载 相关 举报
摘要
申请专利号:

CN201110346147.2

申请日:

2011.11.04

公开号:

CN103092812A

公开日:

2013.05.08

当前法律状态:

撤回

有效性:

无权

法律详情:

发明专利申请公布后的视为撤回IPC(主分类):G06F 17/00申请公布日:20130508|||实质审查的生效IPC(主分类):G06F 17/00申请日:20111104|||公开

IPC分类号:

G06F17/00

主分类号:

G06F17/00

申请人:

NXP股份有限公司

发明人:

胡伯特斯·杰拉德斯·亨德里克斯·维梅伦; 简·斯特库拉特; 安德烈·克林·尼由兰德; 伊丽莎白·弗兰西卡·玛丽亚·斯特芬斯

地址:

荷兰艾恩德霍芬

优先权:

专利代理机构:

中科专利商标代理有限责任公司 11021

代理人:

王波波

PDF下载: PDF下载
内容摘要

本发明涉及对数据值集合(202)分类的电路(200),包括:p+q个寄存器(220a-c)的第一集合(220),用于存储包含p个统计野值的数据值集合的p+q个最大数据值;p+q个寄存器(230a-c)的第二集合(230),用于存储包含p个统计野值的数据值集合的p+q个最小数据值,p是非负整数,q是正整数;控制器(210),耦合到第一和第二集合的每个寄存器,控制器布置为:接收数据值集合,以及针对每个数据值,获得该数据值与每个寄存器中对应数据值的比较结果;以及根据比较结果更新寄存器;该电路还包括数据处理电路(260),其耦合到第一和第二集合中的至少q个寄存器,例如响应于控制器,生成q个寄存器中存储的数据值的平均值(204)。本发明还涉及使用这种电路的分类方法。

权利要求书

权利要求书一种对均匀分布的数据值的集合(202)进行分类的电路(200),该电路包括:
具有p+q个寄存器(220a‑c)的第一集合(220),用于对包含p个统计野值的数据值集合的p+q个最大数据值进行存储;
具有p+q个寄存器(230a‑c)的第二集合(230),用于对包含p个统计野值的数据值集合的p+q个最小数据值进行存储,其中p是非负整数,q是正整数,其中数据集合包含多于2(p+q)个的数据值;
控制器(210),耦合到第一和第二集合中的每个寄存器,所述控制器被布置为:
接收数据值集合,以及针对每个数据值,获取该数据值与每个寄存器中的相应数据值的比较结果;和
根据所述比较结果更新寄存器;
所述电路还包括平均电路(260),平均电路(260)耦合到第一和第二集合中的至少q个寄存器,用于响应于所述控制器对来自所述q个寄存器中每一个寄存器的至少一个数据值求平均。
根据权利要求1的电路(200),其中控制器(210)适于:
如果所接收的数据值大于寄存器中存储的数据值,则将所接收的数据值(202)插入到第一集合(220)的寄存器(220a‑c)中;
如果所接收的数据值小于寄存器中存储的数据值,则将所接收的数据值插入到第二集合(230)的寄存器(230a‑c)中;以及
如果所接收的数据值不大于第一集合的寄存器中存储的任何数据值,也不小于第二集合的寄存器中存储的任何数据值,则丢弃所接收的数据值。
根据权利要求1的电路(200),其中控制器(210)进一步被布置为在所述电路初始化时,在第二集合(230)的每个寄存器(230a‑c)中存储最高可能数据值,以及在第一集合(220)的每个寄存器(220a‑c)中存储最低可能数据值。
根据权利要求1‑3中任一项的电路(200),其中每个寄存器(220a‑c;230a‑c)包括:比较器,用于将寄存器中存储的数据值与由控制器(210)提供的数据值(202)进行比较,并向控制器提供比较结果。
根据权利要求4的电路(200),其中控制器(210)被布置为通过从指令集合中选择的指令来更新寄存器(220a‑c;230a‑c),所述指令集合包括:
加载指令,利用当前数据值盖写寄存器数据值;和
移位指令,将寄存器数据值移位到相邻寄存器。
根据前述权利要求任一项的电路(200),还包括:
第一复用器(240),耦合在寄存器(220a‑c)的第一集合(220)和平均电路(260)之间;和
第二复用器(250),耦合在寄存器(230a‑c)的第二集合(230)和平均电路之间,该第一和第二复用器由控制器(210)产生的选择信号控制,以选择要由平均电路求平均的寄存器数据值。
根据权利要求6的电路(200),其中电路还包括:
查找表(214),用于根据接收的数据值的数量,生成选择信号;和
计数器(212),用于对接收的数据值的数量进行计数,所述查找表响应于所述计数器。
根据前述权利要求任一项的电路(200),其中所述电路适于在接收的数据值(202)与第一和第二集合(220;230)的相应寄存器(220a‑c;230a‑c)中存储的数据值之间并行地执行比较。
一种通信控制器,包括权利要求1‑8中任一项所述的电路(200)。
根据权利要求9的通信控制器,其中该通信控制器是FlexRayTM通信控制器。
一种利用权利要求1的电路(200)对具有均匀分布的数据值的集合进行分类的方法(300),该方法包括重复执行下述步骤:
接收(330)数据值:
将所述数据值与第一和第二集合的寄存器中的数据值进行比较(335);和
在必要时,根据所述比较更新(340)第一和第二集合的寄存器中的数据值;
在已接收到所有数据值之前,所述方法进一步包括下述步骤:
对第一寄存器集合中存储的至少一个数据值和第二寄存器集合中存储的至少一个数据值求平均(360);和
产生指示了平均值的输出信号(204)。
根据权利要求11的方法(300),其中,根据所述比较更新(340)第一和第二集合的寄存器中的数据值包括:
如果所接收的数据值落在预定分布中并且大于寄存器中存储的数据值,则将该接收的数据值插入到第一集合的寄存器中;
如果所接收的数据值落在所述预定分布中并且小于寄存器中存储的数据值,则将该接收的数据值插入到第二集合的寄存器中。
根据权利要求11的方法(300),还包括:对接收的数据值的数量进行计数,并且其中通过所计数的接收数据的数量来控制从第一寄存器集合中选择第一数据值以及从第二寄存器集合中选择第二数据值的步骤。
根据权利要求11‑13中任一项的方法(300),其中将所述数据值与第一和第二集合的寄存器中的数据值进行比较的步骤(335)包括:将接收的数据值与寄存器中存储的每个数据值并行地进行比较。

说明书

说明书分类电路和方法
技术领域
本发明涉及用于对数据值集合进行分类(sort)的电路。
本发明还涉及使用这种电路对数据值集合进行分类的方法。
背景技术
当前,许多电子系统必须能够以鲁棒和容错的方式处理同时传输的大量数据。这些需求例如在应用领域中非常重要,在这些应用领域中,复杂系统的纠错功能取决于该复杂系统中包含的电子系统的无故障操作。这种复杂系统的示例包括在错误操作时可能会危害操作该系统的人的安全的那些系统,例如车辆。由于这个原因,使得电子系统花费很长时间才能够管理这种复杂系统的关键功能,例如,这种关键功能的非限制性示例是线控飞行(fly‑by‑wire)和线控驾驶(drive‑by‑wire)。
但是,不断增加的实现复杂功能的电路能力近来呈现出对在复杂系统中赋予多种或多或少的关键功能操作的电子设备正趋于更易被接受的态度。例如,在汽车工业中,正在持续努力为车辆提供标准化电子控制网络,由于网络多个组件之间的通信协议可以是标准中定义的,所以可以更容易的为这种标准化网络设计附加功能。这种车载网络通信协议的示例是FlexRayTM协议,可以在www.flexray.com找到该协议的描述。
提供鲁棒和容错的车载网络的一个主要挑战是,网络可能包括大量离散和独立的组件,这些组件可能需要以同步的方式彼此通信。为此目的,可能需要定义通信周期,但是,对每个这些独立的组件同时初始化其通信周期是具有挑战性的任务。
在FlexRayTM中采用了多主控(multi‑master)分布式时钟同步机构,其中多达15个主控组件发送同步消息,每个节点基于接收这些同步消息来调整他们对全局时间的局部视图。但是,由于这些消息的某一些可能遭受某些形式的讹误,例如不期望的延迟,每个节点基于容错中点算法(FTMA)实施投票机制。在FTMA中,丢弃p个最高值和p个最低值,之后根据q个最高的剩余值和q个最低的剩余值,针对剩余值的集合,计算平均值,这里p是非负整数,q是正整数。FTMA也可以在FlexRayTM内或外的其他应用中,在这些应用中有必要通过例如多数投票的方式实现容错。
与实现FTMA相关的实际问题是在硬件需求方面很昂贵。由于FTMA依赖于分类(sorting)算法识别p+q个最高值和p+q个最低值,当前FTMA的实施可能依赖于提供可以存储所有接收的要被分类的值的存储器,以及操作存储器中存储的数据集合以识别最高值和最低值的集合、根据FTMA计算该集合的平均值的微控制器。对于大的数据集合,这可能需要非常大的存储器,其可能由于成本和/或可用硅面积等因素而不可行。此外,分类必须在后处理步骤中进行,例如在已经接收到所有数据值之后进行,这可能导致大数据集合的处理时间长得不可接受,特别是在必须对大量数据求平均,和/或数据具有较大的值,例如由大量比特表示的情况下。
发明内容
本发明提供一种用于对数据集合进行分类的电路,该电路在面积和吞吐时间方面更高效。
本发明还提供使用这种改进电路对数据值进行分类的方法。
根据本发明第一方面,提供了一种对数据值集合进行分类的电路,该电路包括:具有p+q个寄存器的第一集合,用于对包含p个统计野值的数据值集合的p+q个最大数据值进行存储;具有p+q个寄存器的第二集合,用于对p+q个最小数据值进行存储,其中p是非负整数,q是正整数;控制器,耦合到第一和第二集合中的每个寄存器,所述控制器布置为接收数据值集合,以及针对每个数据值获取该数据值与每个寄存器中相应数据值进行比较的结果;以及根据比较结果更新寄存器;该电路进一步包括数据处理电路,其耦合到第一和第二集合中的至少q个寄存器,用于响应于所述控制器,处理每个寄存器中存储的数据值中的至少一个。
本发明基于容错分类算法(例如FTMA)的实施,而不需要像通常那样存储所有数据值,而是只有少量数据值用于产生处理的数据值,例如平均值、和值、差值等等。因此,通过提供组合大小典型地实质上小于要平均的数据值集合中的数据值总数的两个寄存器集合,可以在接收的数据值和已经存储在寄存器中的数据值之间进行运行中(on‑the‑fly)比较,从而使得一旦接收到最后的数据值,则几乎可以立即获得分类结果。因此,由于实际上仅存储输入数据值总数量的一部分,本发明的电路提供了这种分类算法的更紧凑的实施,同时,由于是在数据值接收过程中而不是在接收之后进行数据值分类,因而大大改善了吞吐时间。相比于这种分类算法已知的实施方案,本发明进一步具有明显的功率节省的效果。
在优选实施例中,控制器适于:如果接收的数据值大于寄存器中存储的数据值,将该接收数据值插入到第一集合的寄存器中;如果接收的数据值小于寄存器中存储的数据值,则将该接收数据值插入到第二集合的寄存器中;以及,如果接收的数据不大于在第一集合的寄存器中存储的任何数据值,也不小于在第二集合的寄存器中存储的任何数据值,则丢弃该接收数据值。为此目的,控制器可以布置为通过从指令集合中选择的指令来更新寄存器,该指令集合包括用于利用当前数据值盖写寄存器数据值的加载指令,以及用于将寄存器数据值移位到相邻移位寄存器的移位指令。
控制器还可以进一步布置为在电路初始化时,在第二集合的每个寄存器中存储最高可能数据值,以及在第一集合的每个寄存器中存储最低可能数据值。这确保了后来电路接收的所有数据值会放置在寄存器中的正确位置。
在实施例中,每个寄存器包括:比较器,用于将寄存器中存储的数据值与由控制器提供的数据值进行比较,并向控制器提供比较结果。这例如使得可以在接收的数据值与第一和第二集合的相应寄存器中存储的数据值之间并行地进行比较。可选地,控制器可以包括2(p+q)个比较器,以便于这种并行比较。
在不需要对每个寄存器集合的所有q个数据值求平均的情况下,电路还可以包括:第一复用器,其耦合在第一寄存器集合和平均电路之间;以及第二复用器,其耦合在第二寄存器集合和平均电路之间,该第一和第二复用器由控制器产生的选择信号控制,以选择要由平均电路求平均的寄存器数据值。这有助于在每个寄存器集合的q个寄存器中选择特定的一个寄存器。例如,如果不能预先预测电路会接收到多少个数据值,并且这个数量会影响q个寄存器中的哪一个或多少个寄存器应被选择来用于求平均,则上述本发明的方案是有利的。
在实施例中,控制器还包括:查找表,用于根据接收的数据值的数量,生成选择信号;以及计数器,用于对接收的数据值的数目进行计数,所述查找表响应于所述计数器。这有助于简单明了地选择合适的寄存器来求平均,并具有这样的附加优势:可以对查找表进行(再)编程,使得电路可以实现具有不同数据选择要求的不同的分类算法。
本发明的电路可以有利地包括在通信控制器中,例如FlexRayTM通信控制器中。
根据本发明的另一方面,提供了利用本发明的电路对数据值集合分类的方法,该方法包括重复以下步骤:接收数据值;将所述数据值与第一和第二集合的寄存器中的数据值进行比较;以及,在必要时,根据所述比较,更新第一和第二集合的寄存器中的数据值;在已接收到所有数据值之前,所述方法还包括:对第一寄存器集合中存储的至少一个数据值和第二寄存器集合中存储的至少一个数据值进行处理;以及产生指示了经处理的值的输出信号。因此,由于上文已经详细阐述的原因,该方法减少了得到处理结果(例如求均值结果,求和结果,求差值结果等)之前的处理时间。
优选地,所述方法中根据所述比较更新第一和第二集合的寄存器中的数据值的步骤包括:如果接收的数据值大于寄存器中存储的数据值,则将该接收数据值插入到第一集合的寄存器中;如果接收的数据值小于在寄存器中存储的数据值,则将该接收数据值插入到第二集合的寄存器中。
在实施例中,计算第一寄存器集合中存储的至少一个数据值和第二寄存器集合中存储的至少一个数据值的处理值的步骤包括:从第一寄存器集合中选择第一数据值以及从第二寄存器集合中选择第二数据值,以及计算所述第一数据值和第二数据值的平均值。
在另一实施例中,所述方法还包括:对接收的数据值的数量进行计数,其中通过所计数的接收数据的数量来控制从第一寄存器集合中选择第一数据值以及从第二寄存器集合中选择第二数据值的步骤。
优选地,将所述数据值与第一和第二集合的寄存器中的数据值进行比较的步骤包括:将接收的数据值与寄存器中存储的每个数据值进行并行比较。这进一步提高了电路的分类速度,如前所述。
附图说明
通过非限制性示例并参照附图更详细地描述本发明的实施例,其中:
图1示意性示出了FlexRayTM中时钟校正值计算的算法;
图2示意性示出了根据本发明优选实施例的用于实施这种算法的分类电路;和
图3示出了本发明方法的实施例的流程图。
具体实施方式
应该理解,所述附图仅仅是示意性的并且不按比例绘制。还应该理解,在所有附图中使用的相同的附图标记用于表示相同或类似的部件。
图1示意性示出了可以通过本发明的电路和方法实施的容错分类算法。分类表(sorted table)100存储了从一个或多个源接收的多个数据值,包括多个统计野值102和被认为相关(relevant)的数据值104。在构建该分类表100之后,在操作110中将选择的相关数据值104相加,之后在操作120中计算选择的相关数据值104的组合值的均值(mean)或平均值(average)。如前所述,本算法的例程实施是提供用于存储表100的存储器,用于实施分类算法以及操作110和120的处理器,处理器对表100执行多个后处理步骤,以根据分类的数据产生有关的平均值。由于所有的数据值都必须存储在表100中,使得该算法在硬件方面成本较大,还由于只能在所有的数据值已经存储在表100中之后才能执行分类以及平均计算,因而使得这种算法很耗时。此外,这种例程实施比下面更详细描述的本发明实施例耗费更多的功率。
在例如FTMA的分类算法中,统计野值的数量典型地基于要被算法处理的数据值集合中的数据值总数来确定。例如,在FlexRayTM中出于时钟值校正的目的实施FTMA需要使用数据值集合中的数据值总数与要丢弃的统计野值的数量之间的下述关系(表I):
表I
  数据集合中数据值的数量  要丢弃的统计野值的数量(=2p)  1‑2  0  3‑7  2  >7  4
要丢弃的统计野值的数量典型地是偶数,这是因为对于每个要丢弃的高值统计野值来说,也丢弃低值统计野值,例如从图1中可以明显看出。在本发明的上下文中,统计野值是分类后的数据值集合的极限处的数据值,该数据值要被去除以提高在数据集合中数据值上获取的平均值或均值的统计相关性。
表100可以分为两部分,即上半部和下半部,基于预定的度量从这两个部分中去除相同数量的统计野值,预定的度量可以是接收的数据值的总数或任何其他合适的度量。要从每个半部去除的统计野值的数量可以定义为p,其中p是非负整数,即p≥0。
在从分类的数据集合中去除统计野值之后,算法典型地处理来自每个半部的q个数据值,例如计算剩余数据值的平均值,如前所述。可以明确地通过下述方法计算该平均值,即对所有N个剩余值求和,并通过将和除以N来计算平均值,N为正整数。
可选地,该算法可以选择一些极值(extreme value),即从剩余数据集合中选择q个最高值和q个最低值,q是正整数,即q≥1,并对所选择的2q个值计算平均值或均值。该方法对于呈现出相对均匀分布(homogeneous spread)的数据值的数据集合通常表现良好。实际上,由于这些分布典型地由采用FlexRayTM协议的网络上的延迟变化引起,所以在应用领域(例如FlexRayTM网络)中处理的大多数数据集合表现出这种均匀分布。由于大多数电子应用领域在其数据值例如由于电子电路的局部变化而改变其值的数据集合中典型地表现出均匀分布,所以显然大多数电子应用领域适合这种截短的求平均值方法。
本发明基于这样的观察:在这种具有均匀分布的数据集合的情况下,表100的每个半部仅包含p+q个相关数据值。在求平均步骤中不会考虑所有其他的数据值,使得不需要存储大量的数据值,而可以立即丢弃。换句话说,对于包含超过2(p+q)个数据值的数据集合,只有2(p+q)个数据值被存储。应该理解,数据集合典型地包含实质上多于2(p+q)个的数据值。
利用了上述观察的电路如图2所示。电路200包括控制器210,其适于接收输入值202的流。控制器210耦合到具有寄存器220a‑c的第一寄存器集合220,在这些寄存器中表100上半部的p+q个值被存储,控制器210还耦合到具有寄存器230a‑230c的第二寄存器集合230,在这些寄存器中表100上半部的p+q个值将被存储。仅通过非限制性示例的方式,在每个集合中仅显示了3个寄存器。应该理解,集合220、220可以包括任何合适数量的寄存器。寄存器集合220、230耦合到平均电路260,以根据存储在每个集合220、230中的q个相关值产生平均值204。平均电路260典型地包括可以任何合适方式实现的加法器和除法器,用于生成平均值204。
在先前不知道会接收到多少个数据值的情况下,可以基于最坏情况场景来选择用于存储p个统计野值的寄存器的数量,也即,可能必须丢弃最大数量的统计野值。从表I中可以看到,度量可以典型地用于实施如下算法:针对给定大小的数据集合,确定统计野值的数量。数量p可以简单地从该度量导出。类似地,用于对q个相关数据值进行存储的附加寄存器的数量可以基于由要实施的算法典型地考虑的相关值的数量。
由于每个集合220、230中的寄存器数量可以基于最坏情况场景,因而需要动态地确定特别是p的实际值,即第一集合220和第二集合230中的统计野值的数量。为此,电路200可以包括计数器212和查找表214,该查找表控制放置在寄存器220a‑c的第一寄存器集合220和平均电路260之间的第一复用器240,以及控制放置在寄存器230a‑c的第二寄存器集合230和平均电路260之间的第二复用器250。计数器212适于对由控制器210接收的数据值的数量进行计数,而可以利用度量(metric)对查找表214编程,以动态地确定要从每个集合220、230中丢弃的统计野值102的数量。例如,查找表214可以实现上面显示的表I。但是,应该理解,在可以预定义数量p和q(即哪些寄存器将包含统计野值102)的情况下,可以省略计数器212、查找表214和复用器240、250。
现在,将借助图3更详细地阐述电路200的操作,该图示出了本发明方法的实施例。方法开始于步骤310,之后该方法移到步骤320,在该步骤中对寄存器220a‑c和230a‑c初始化。可以典型地通过下述方式执行该步骤:在寄存器220a‑c中存储要由控制器210接收的n比特数据元素的最低可能值(lowest possible value),在寄存器230a‑c中存储n比特数据元素的最高可能值(highest possible value)。可选地,在电路200的用户已经预先知道要接收的数据值202的范围外限的情况下,可以在寄存器220a‑c中存储下限值,以及在寄存器230a‑c中存储上限值。初始化步骤还可以可选地包括复位计数器212以及将正确数据加载到查找表214中。
一旦完成初始化,该方法开始进行步骤330中表示的数据分类,在该步骤中控制器210接收输入数据值202。如步骤335所示,控制器210将接收的输入数据与寄存器220a‑c和寄存器230a‑c的每一个中存储的数据值进行比较。为此,每个寄存器可以包括比较器(未显示),控制器210可以把接收的数据值转发到每个寄存器,这些寄存器将比较结果返回到控制器210。典型地,由于寄存器220a‑c是要存储由控制器210接收的数据集合中的p+q个最大数据值,集合220中的比较器将提供输入数据值202是否大于存储在对应的寄存器220a‑c中的数据值的指示。类似地,由于寄存器230a‑c是要存储由控制器210接收的数据集合中的p+q个最小数据值,集合230中的比较器将提供输入数据值202是否小于存储在对应的寄存器230a‑c中的数据值的指示。可选地,比较器可以集合成到控制器210中,在这种情况下,控制器210请求寄存器220a‑c和寄存器230a‑c提供存储在这些寄存器中的数据值的拷贝,使得控制器210可以在内部生成比较结果。优选地,以并行方式生成这些比较结果,因为这可以提供最大的性能增益。
如果至少一个比较结果为肯定,即在步骤330中接收的数据值大于在寄存器220a‑c的某一个中存储的数据值,和/或小于在寄存器230a‑c的某一个中存储的数据值,则方法转到步骤340,在该步骤中由控制器210利用合适的加载和移位指令把输入数据值202插入到获得肯定比较结果的寄存器中,由,这可以通过下述示例更清楚地了解。
表II
  寄存器  数据值  220a  15  220b  11  220c  9  230c  5  230b  3  230a  2
示例1
控制器210接收到值为13的数据元素202。寄存器集合220和230的状态如表II中所示。在步骤335中,与寄存器220b和220c关联的比较器提供了肯定比较结果,即数据元素202的值大于在这些寄存器中存储的数据值。其他所有的比较结果为否定,即数据元素202的值小于在寄存器220a中存储的值并大于在寄存器230a‑c中存储的任何值。控制器210随后向寄存器220b发出移位指令,以将它的当前数据值向寄存器220c移位,从而用来自寄存器220b的数据值盖写寄存器220c中的数据值,然后向寄存器220b发出加载指令,其中用控制器210接收的数据元素202的值盖写寄存器220b中的数据值。可选地,所述移位指令和所述加载指令可以并行发出。在完成步骤340之后的寄存器结果状态显示在表III中:
表III:
  寄存器  数据值  220a  15  220b  13  220c  11  230c  5  230b  3  230a  2
示例2
控制器210接收到值为1的数据元素202。寄存器集合220和230的状态再次如表II中所示。在步骤335中,与寄存器230a‑c关联的比较器提供了肯定比较结果,即数据元素202的值小于在这些寄存器中存储的数据值。其他所有的比较结果是否定的,即数据元素202的值小于在寄存器220a‑c中存储的值。控制器210随后向寄存器230a和230b发出移位指令,以将它们的当前数据值分别向寄存器230b和230c移位,从而用来自寄存器230a和230b的数据值分别盖写寄存器230b和230c中的数据值,然后向寄存器230a发出加载指令,其中用控制器210接收的数据元202的值盖写寄存器230a中的数据值。可选地,所述移位指令和所述加载指令可以并行发出。在完成步骤340之后的寄存器结果状态显示在表IV中:
表IV
  寄存器  数据值  220a  15
  220b  11  220c  9  230c  3  230b  2  230a  1
从上述示例明显可见,控制器210通过向寄存器施加如上述示例中所示出的加载和移位指令,确保了寄存器集合220以有序方式存储控制器210接收的p+q个最大数据值,以及类似地确保了寄存器集合230以有序方式存储控制器210接收的p+q个最小数据值。
另一方面,如果在步骤335中没有生成任何肯定的比较结果,则在步骤350中丢弃由控制器210接收的数据值202,因为可以得出所接收的数据值是中间值(intermediate value)的结论,即,p+q个较大的和p+q个较小的数据值已由电路200先前接收了,中间值不会用于计算电路200所接收的数据集合的平均值或均值。
在步骤355中,确定电路200是否要接收其他的输入数据值202。在已知要期望的数据值的数量的情况下,该确定可以例如通过简单地对已接收数据值的数量进行计数来进行,其中,可以通过将计数的值与已知数量进行比较来确定是否已接收到所有的值;或者等待预定的时间量(例如超时时段),如果在该等待时段期间没有接收到其他数据值,则控制器200前进到求平均步骤。步骤355的其它合适的实施方式对于本领域技术人员而言是显而易见的。
在可选实施例中,可以在每个时钟周期之后由平均电路260产生平均数据值。在另一实施例中,可以仅按需(on demand)由平均电路260产生平均数据值。在这些实施例中,可以从方法300中省略步骤355,方法在完成步骤340或步骤350之后返回到步骤330。方法300在本示例中例如可以通过用户干预来终止。
如果电路200要接收其他数据值,则方法300返回到步骤330。否则,如果电路200已经接收到所有的输入数据值,则方法前进到步骤360,在该步骤计算寄存器集合200和寄存器集合230中的q个相关数据值的平均值。如前所述,在预先不知道寄存器中包含多少个统计野值的情况下,有必要在该阶段确定哪些寄存器包含统计野值,以及哪些寄存器包含相关数据值。可以通过向查找表214提供计数器212的计数值来确定统计野值的数量,该查找表基于在其表中存储的值(例如上述表I中示出的统计野值选择标准)来确定统计野值的正确数量,并使用所确定的统计野值的数量来相应地配置复用器240和250。在步骤360中,当处理了选择的数据值时,例如生成数据值的平均值以及生成指示了处理结果的输出信号204时,可以在步骤370终止方法300。
在优选实施例中,电路实施FTMA,其中将q选择为等于1,然而应该理解,实施其他分类算法和/或其他q值的实施例也是可行的。
合成实验已经显示,电路200可以成功地在适于汽车应用领域中实施方式的CMOS技术中实现,也可以以至少80MHz的时钟速度以足够的并行度来成功地操作。电路200可以成功地包含在FlexRayTM主动星型(active star)器件中,该器件是运行FlexRayTM协议的网络中的通信控制器,其负责从一个分支向所有其他分支传送数据流。由于主动星型器件典型地以10Mbps的操作速度运行,很明显电路200适合实现具有这种主动星型器件的FTMA,只要电路200有能力以80MHz的数字时钟速度实施足够的并行度。
应注意,上述实施例用于示例性说明而不是限制本发明,在不偏离所附权利要求的范围的情况下,本领域技术人员能够设计许多可选的实施例。在权利要求中,括号中的任何附图标记不应解释为限制该权利要求。术语“包括”不排除那些列举在权利要求中的组件或步骤之外的其他组件或步骤。在元素之前的术语“一”或“某一”不排除存在多个这种元素。可以通过包含多个不同元件的硬件来实现本发明。在列举了多个装置的设备权利要求中,这些装置中的部分装置可以由同一硬件来实施。在彼此不同的从属权利要求中记载某些措施这一事实不代表这些措施的组合不能有利地使用。

分类电路和方法.pdf_第1页
第1页 / 共14页
分类电路和方法.pdf_第2页
第2页 / 共14页
分类电路和方法.pdf_第3页
第3页 / 共14页
点击查看更多>>
资源描述

《分类电路和方法.pdf》由会员分享,可在线阅读,更多相关《分类电路和方法.pdf(14页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 103092812 A(43)申请公布日 2013.05.08CN103092812A*CN103092812A*(21)申请号 201110346147.2(22)申请日 2011.11.04G06F 17/00(2006.01)(71)申请人 NXP股份有限公司地址荷兰艾恩德霍芬(72)发明人胡伯特斯杰拉德斯亨德里克斯维梅伦简斯特库拉特安德烈克林尼由兰德伊丽莎白弗兰西卡玛丽亚斯特芬斯(74)专利代理机构中科专利商标代理有限责任公司 11021代理人王波波(54) 发明名称分类电路和方法(57) 摘要本发明涉及对数据值集合(202)分类的电路(200),包括:p+q。

2、个寄存器(220a-c)的第一集合(220),用于存储包含p个统计野值的数据值集合的p+q个最大数据值;p+q个寄存器(230a-c)的第二集合(230),用于存储包含p个统计野值的数据值集合的p+q个最小数据值,p是非负整数,q是正整数;控制器(210),耦合到第一和第二集合的每个寄存器,控制器布置为:接收数据值集合,以及针对每个数据值,获得该数据值与每个寄存器中对应数据值的比较结果;以及根据比较结果更新寄存器;该电路还包括数据处理电路(260),其耦合到第一和第二集合中的至少q个寄存器,例如响应于控制器,生成q个寄存器中存储的数据值的平均值(204)。本发明还涉及使用这种电路的分类方法。(。

3、51)Int.Cl.权利要求书2页 说明书8页 附图3页(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书2页 说明书8页 附图3页(10)申请公布号 CN 103092812 ACN 103092812 A1/2页21.一种对均匀分布的数据值的集合(202)进行分类的电路(200),该电路包括:具有p+q个寄存器(220a-c)的第一集合(220),用于对包含p个统计野值的数据值集合的p+q个最大数据值进行存储;具有p+q个寄存器(230a-c)的第二集合(230),用于对包含p个统计野值的数据值集合的p+q个最小数据值进行存储,其中p是非负整数,q是正整数,其中数据集合包含。

4、多于2(p+q)个的数据值;控制器(210),耦合到第一和第二集合中的每个寄存器,所述控制器被布置为:接收数据值集合,以及针对每个数据值,获取该数据值与每个寄存器中的相应数据值的比较结果;和根据所述比较结果更新寄存器;所述电路还包括平均电路(260),平均电路(260)耦合到第一和第二集合中的至少q个寄存器,用于响应于所述控制器对来自所述q个寄存器中每一个寄存器的至少一个数据值求平均。2.根据权利要求1的电路(200),其中控制器(210)适于:如果所接收的数据值大于寄存器中存储的数据值,则将所接收的数据值(202)插入到第一集合(220)的寄存器(220a-c)中;如果所接收的数据值小于寄存。

5、器中存储的数据值,则将所接收的数据值插入到第二集合(230)的寄存器(230a-c)中;以及如果所接收的数据值不大于第一集合的寄存器中存储的任何数据值,也不小于第二集合的寄存器中存储的任何数据值,则丢弃所接收的数据值。3.根据权利要求1的电路(200),其中控制器(210)进一步被布置为在所述电路初始化时,在第二集合(230)的每个寄存器(230a-c)中存储最高可能数据值,以及在第一集合(220)的每个寄存器(220a-c)中存储最低可能数据值。4.根据权利要求1-3中任一项的电路(200),其中每个寄存器(220a-c;230a-c)包括:比较器,用于将寄存器中存储的数据值与由控制器(21。

6、0)提供的数据值(202)进行比较,并向控制器提供比较结果。5.根据权利要求4的电路(200),其中控制器(210)被布置为通过从指令集合中选择的指令来更新寄存器(220a-c;230a-c),所述指令集合包括:加载指令,利用当前数据值盖写寄存器数据值;和移位指令,将寄存器数据值移位到相邻寄存器。6.根据前述权利要求任一项的电路(200),还包括:第一复用器(240),耦合在寄存器(220a-c)的第一集合(220)和平均电路(260)之间;和第二复用器(250),耦合在寄存器(230a-c)的第二集合(230)和平均电路之间,该第一和第二复用器由控制器(210)产生的选择信号控制,以选择要由。

7、平均电路求平均的寄存器数据值。7.根据权利要求6的电路(200),其中电路还包括:查找表(214),用于根据接收的数据值的数量,生成选择信号;和计数器(212),用于对接收的数据值的数量进行计数,所述查找表响应于所述计数器。权 利 要 求 书CN 103092812 A2/2页38.根据前述权利要求任一项的电路(200),其中所述电路适于在接收的数据值(202)与第一和第二集合(220;230)的相应寄存器(220a-c;230a-c)中存储的数据值之间并行地执行比较。9.一种通信控制器,包括权利要求1-8中任一项所述的电路(200)。10.根据权利要求9的通信控制器,其中该通信控制器是Fle。

8、xRayTM通信控制器。11.一种利用权利要求1的电路(200)对具有均匀分布的数据值的集合进行分类的方法(300),该方法包括重复执行下述步骤:接收(330)数据值:将所述数据值与第一和第二集合的寄存器中的数据值进行比较(335);和在必要时,根据所述比较更新(340)第一和第二集合的寄存器中的数据值;在已接收到所有数据值之前,所述方法进一步包括下述步骤:对第一寄存器集合中存储的至少一个数据值和第二寄存器集合中存储的至少一个数据值求平均(360);和产生指示了平均值的输出信号(204)。12.根据权利要求11的方法(300),其中,根据所述比较更新(340)第一和第二集合的寄存器中的数据值包。

9、括:如果所接收的数据值落在预定分布中并且大于寄存器中存储的数据值,则将该接收的数据值插入到第一集合的寄存器中;如果所接收的数据值落在所述预定分布中并且小于寄存器中存储的数据值,则将该接收的数据值插入到第二集合的寄存器中。13.根据权利要求11的方法(300),还包括:对接收的数据值的数量进行计数,并且其中通过所计数的接收数据的数量来控制从第一寄存器集合中选择第一数据值以及从第二寄存器集合中选择第二数据值的步骤。14.根据权利要求11-13中任一项的方法(300),其中将所述数据值与第一和第二集合的寄存器中的数据值进行比较的步骤(335)包括:将接收的数据值与寄存器中存储的每个数据值并行地进行比。

10、较。权 利 要 求 书CN 103092812 A1/8页4分类电路和方法技术领域0001 本发明涉及用于对数据值集合进行分类(sort)的电路。0002 本发明还涉及使用这种电路对数据值集合进行分类的方法。背景技术0003 当前,许多电子系统必须能够以鲁棒和容错的方式处理同时传输的大量数据。这些需求例如在应用领域中非常重要,在这些应用领域中,复杂系统的纠错功能取决于该复杂系统中包含的电子系统的无故障操作。这种复杂系统的示例包括在错误操作时可能会危害操作该系统的人的安全的那些系统,例如车辆。由于这个原因,使得电子系统花费很长时间才能够管理这种复杂系统的关键功能,例如,这种关键功能的非限制性示例。

11、是线控飞行(fly-by-wire)和线控驾驶(drive-by-wire)。0004 但是,不断增加的实现复杂功能的电路能力近来呈现出对在复杂系统中赋予多种或多或少的关键功能操作的电子设备正趋于更易被接受的态度。例如,在汽车工业中,正在持续努力为车辆提供标准化电子控制网络,由于网络多个组件之间的通信协议可以是标准中定义的,所以可以更容易的为这种标准化网络设计附加功能。这种车载网络通信协议的示例是FlexRayTM协议,可以在找到该协议的描述。0005 提供鲁棒和容错的车载网络的一个主要挑战是,网络可能包括大量离散和独立的组件,这些组件可能需要以同步的方式彼此通信。为此目的,可能需要定义通信周。

12、期,但是,对每个这些独立的组件同时初始化其通信周期是具有挑战性的任务。0006 在FlexRayTM中采用了多主控(multi-master)分布式时钟同步机构,其中多达15个主控组件发送同步消息,每个节点基于接收这些同步消息来调整他们对全局时间的局部视图。但是,由于这些消息的某一些可能遭受某些形式的讹误,例如不期望的延迟,每个节点基于容错中点算法(FTMA)实施投票机制。在FTMA中,丢弃p个最高值和p个最低值,之后根据q个最高的剩余值和q个最低的剩余值,针对剩余值的集合,计算平均值,这里p是非负整数,q是正整数。FTMA也可以在FlexRayTM内或外的其他应用中,在这些应用中有必要通过例。

13、如多数投票的方式实现容错。0007 与实现FTMA相关的实际问题是在硬件需求方面很昂贵。由于FTMA依赖于分类(sorting)算法识别p+q个最高值和p+q个最低值,当前FTMA的实施可能依赖于提供可以存储所有接收的要被分类的值的存储器,以及操作存储器中存储的数据集合以识别最高值和最低值的集合、根据FTMA计算该集合的平均值的微控制器。对于大的数据集合,这可能需要非常大的存储器,其可能由于成本和/或可用硅面积等因素而不可行。此外,分类必须在后处理步骤中进行,例如在已经接收到所有数据值之后进行,这可能导致大数据集合的处理时间长得不可接受,特别是在必须对大量数据求平均,和/或数据具有较大的值,例。

14、如由大量比特表示的情况下。发明内容说 明 书CN 103092812 A2/8页50008 本发明提供一种用于对数据集合进行分类的电路,该电路在面积和吞吐时间方面更高效。0009 本发明还提供使用这种改进电路对数据值进行分类的方法。0010 根据本发明第一方面,提供了一种对数据值集合进行分类的电路,该电路包括:具有p+q个寄存器的第一集合,用于对包含p个统计野值的数据值集合的p+q个最大数据值进行存储;具有p+q个寄存器的第二集合,用于对p+q个最小数据值进行存储,其中p是非负整数,q是正整数;控制器,耦合到第一和第二集合中的每个寄存器,所述控制器布置为接收数据值集合,以及针对每个数据值获取该。

15、数据值与每个寄存器中相应数据值进行比较的结果;以及根据比较结果更新寄存器;该电路进一步包括数据处理电路,其耦合到第一和第二集合中的至少q个寄存器,用于响应于所述控制器,处理每个寄存器中存储的数据值中的至少一个。0011 本发明基于容错分类算法(例如FTMA)的实施,而不需要像通常那样存储所有数据值,而是只有少量数据值用于产生处理的数据值,例如平均值、和值、差值等等。因此,通过提供组合大小典型地实质上小于要平均的数据值集合中的数据值总数的两个寄存器集合,可以在接收的数据值和已经存储在寄存器中的数据值之间进行运行中(on-the-fly)比较,从而使得一旦接收到最后的数据值,则几乎可以立即获得分类。

16、结果。因此,由于实际上仅存储输入数据值总数量的一部分,本发明的电路提供了这种分类算法的更紧凑的实施,同时,由于是在数据值接收过程中而不是在接收之后进行数据值分类,因而大大改善了吞吐时间。相比于这种分类算法已知的实施方案,本发明进一步具有明显的功率节省的效果。0012 在优选实施例中,控制器适于:如果接收的数据值大于寄存器中存储的数据值,将该接收数据值插入到第一集合的寄存器中;如果接收的数据值小于寄存器中存储的数据值,则将该接收数据值插入到第二集合的寄存器中;以及,如果接收的数据不大于在第一集合的寄存器中存储的任何数据值,也不小于在第二集合的寄存器中存储的任何数据值,则丢弃该接收数据值。为此目的。

17、,控制器可以布置为通过从指令集合中选择的指令来更新寄存器,该指令集合包括用于利用当前数据值盖写寄存器数据值的加载指令,以及用于将寄存器数据值移位到相邻移位寄存器的移位指令。0013 控制器还可以进一步布置为在电路初始化时,在第二集合的每个寄存器中存储最高可能数据值,以及在第一集合的每个寄存器中存储最低可能数据值。这确保了后来电路接收的所有数据值会放置在寄存器中的正确位置。0014 在实施例中,每个寄存器包括:比较器,用于将寄存器中存储的数据值与由控制器提供的数据值进行比较,并向控制器提供比较结果。这例如使得可以在接收的数据值与第一和第二集合的相应寄存器中存储的数据值之间并行地进行比较。可选地,。

18、控制器可以包括2(p+q)个比较器,以便于这种并行比较。0015 在不需要对每个寄存器集合的所有q个数据值求平均的情况下,电路还可以包括:第一复用器,其耦合在第一寄存器集合和平均电路之间;以及第二复用器,其耦合在第二寄存器集合和平均电路之间,该第一和第二复用器由控制器产生的选择信号控制,以选择要由平均电路求平均的寄存器数据值。这有助于在每个寄存器集合的q个寄存器中选择特定的一个寄存器。例如,如果不能预先预测电路会接收到多少个数据值,并且这个数量会说 明 书CN 103092812 A3/8页6影响q个寄存器中的哪一个或多少个寄存器应被选择来用于求平均,则上述本发明的方案是有利的。0016 在实。

19、施例中,控制器还包括:查找表,用于根据接收的数据值的数量,生成选择信号;以及计数器,用于对接收的数据值的数目进行计数,所述查找表响应于所述计数器。这有助于简单明了地选择合适的寄存器来求平均,并具有这样的附加优势:可以对查找表进行(再)编程,使得电路可以实现具有不同数据选择要求的不同的分类算法。0017 本发明的电路可以有利地包括在通信控制器中,例如FlexRayTM通信控制器中。0018 根据本发明的另一方面,提供了利用本发明的电路对数据值集合分类的方法,该方法包括重复以下步骤:接收数据值;将所述数据值与第一和第二集合的寄存器中的数据值进行比较;以及,在必要时,根据所述比较,更新第一和第二集合。

20、的寄存器中的数据值;在已接收到所有数据值之前,所述方法还包括:对第一寄存器集合中存储的至少一个数据值和第二寄存器集合中存储的至少一个数据值进行处理;以及产生指示了经处理的值的输出信号。因此,由于上文已经详细阐述的原因,该方法减少了得到处理结果(例如求均值结果,求和结果,求差值结果等)之前的处理时间。0019 优选地,所述方法中根据所述比较更新第一和第二集合的寄存器中的数据值的步骤包括:如果接收的数据值大于寄存器中存储的数据值,则将该接收数据值插入到第一集合的寄存器中;如果接收的数据值小于在寄存器中存储的数据值,则将该接收数据值插入到第二集合的寄存器中。0020 在实施例中,计算第一寄存器集合中。

21、存储的至少一个数据值和第二寄存器集合中存储的至少一个数据值的处理值的步骤包括:从第一寄存器集合中选择第一数据值以及从第二寄存器集合中选择第二数据值,以及计算所述第一数据值和第二数据值的平均值。0021 在另一实施例中,所述方法还包括:对接收的数据值的数量进行计数,其中通过所计数的接收数据的数量来控制从第一寄存器集合中选择第一数据值以及从第二寄存器集合中选择第二数据值的步骤。0022 优选地,将所述数据值与第一和第二集合的寄存器中的数据值进行比较的步骤包括:将接收的数据值与寄存器中存储的每个数据值进行并行比较。这进一步提高了电路的分类速度,如前所述。附图说明0023 通过非限制性示例并参照附图更。

22、详细地描述本发明的实施例,其中:0024 图1示意性示出了FlexRayTM中时钟校正值计算的算法;0025 图2示意性示出了根据本发明优选实施例的用于实施这种算法的分类电路;和0026 图3示出了本发明方法的实施例的流程图。具体实施方式0027 应该理解,所述附图仅仅是示意性的并且不按比例绘制。还应该理解,在所有附图中使用的相同的附图标记用于表示相同或类似的部件。0028 图1示意性示出了可以通过本发明的电路和方法实施的容错分类算法。分类表(sorted table)100存储了从一个或多个源接收的多个数据值,包括多个统计野值102和说 明 书CN 103092812 A4/8页7被认为相关。

23、(relevant)的数据值104。在构建该分类表100之后,在操作110中将选择的相关数据值104相加,之后在操作120中计算选择的相关数据值104的组合值的均值(mean)或平均值(average)。如前所述,本算法的例程实施是提供用于存储表100的存储器,用于实施分类算法以及操作110和120的处理器,处理器对表100执行多个后处理步骤,以根据分类的数据产生有关的平均值。由于所有的数据值都必须存储在表100中,使得该算法在硬件方面成本较大,还由于只能在所有的数据值已经存储在表100中之后才能执行分类以及平均计算,因而使得这种算法很耗时。此外,这种例程实施比下面更详细描述的本发明实施例耗费。

24、更多的功率。0029 在例如FTMA的分类算法中,统计野值的数量典型地基于要被算法处理的数据值集合中的数据值总数来确定。例如,在FlexRayTM中出于时钟值校正的目的实施FTMA需要使用数据值集合中的数据值总数与要丢弃的统计野值的数量之间的下述关系(表I):0030 表I0031 数据集合中数据值的数量 要丢弃的统计野值的数量(2p)1-2 03-7 27 40032 要丢弃的统计野值的数量典型地是偶数,这是因为对于每个要丢弃的高值统计野值来说,也丢弃低值统计野值,例如从图1中可以明显看出。在本发明的上下文中,统计野值是分类后的数据值集合的极限处的数据值,该数据值要被去除以提高在数据集合中数。

25、据值上获取的平均值或均值的统计相关性。0033 表100可以分为两部分,即上半部和下半部,基于预定的度量从这两个部分中去除相同数量的统计野值,预定的度量可以是接收的数据值的总数或任何其他合适的度量。要从每个半部去除的统计野值的数量可以定义为p,其中p是非负整数,即p0。0034 在从分类的数据集合中去除统计野值之后,算法典型地处理来自每个半部的q个数据值,例如计算剩余数据值的平均值,如前所述。可以明确地通过下述方法计算该平均值,即对所有N个剩余值求和,并通过将和除以N来计算平均值,N为正整数。0035 可选地,该算法可以选择一些极值(extreme value),即从剩余数据集合中选择q个最高。

26、值和q个最低值,q是正整数,即q1,并对所选择的2q个值计算平均值或均值。该方法对于呈现出相对均匀分布(homogeneous spread)的数据值的数据集合通常表现良好。实际上,由于这些分布典型地由采用FlexRayTM协议的网络上的延迟变化引起,所以在应用领域(例如FlexRayTM网络)中处理的大多数数据集合表现出这种均匀分布。由于大多数电子应用领域在其数据值例如由于电子电路的局部变化而改变其值的数据集合中典型地表现出均匀分布,所以显然大多数电子应用领域适合这种截短的求平均值方法。0036 本发明基于这样的观察:在这种具有均匀分布的数据集合的情况下,表100的每个半部仅包含p+q个相关。

27、数据值。在求平均步骤中不会考虑所有其他的数据值,使得不需要存储大量的数据值,而可以立即丢弃。换句话说,对于包含超过2(p+q)个数据值的数据说 明 书CN 103092812 A5/8页8集合,只有2(p+q)个数据值被存储。应该理解,数据集合典型地包含实质上多于2(p+q)个的数据值。0037 利用了上述观察的电路如图2所示。电路200包括控制器210,其适于接收输入值202的流。控制器210耦合到具有寄存器220a-c的第一寄存器集合220,在这些寄存器中表100上半部的p+q个值被存储,控制器210还耦合到具有寄存器230a-230c的第二寄存器集合230,在这些寄存器中表100上半部的。

28、p+q个值将被存储。仅通过非限制性示例的方式,在每个集合中仅显示了3个寄存器。应该理解,集合220、220可以包括任何合适数量的寄存器。寄存器集合220、230耦合到平均电路260,以根据存储在每个集合220、230中的q个相关值产生平均值204。平均电路260典型地包括可以任何合适方式实现的加法器和除法器,用于生成平均值204。0038 在先前不知道会接收到多少个数据值的情况下,可以基于最坏情况场景来选择用于存储p个统计野值的寄存器的数量,也即,可能必须丢弃最大数量的统计野值。从表I中可以看到,度量可以典型地用于实施如下算法:针对给定大小的数据集合,确定统计野值的数量。数量p可以简单地从该度。

29、量导出。类似地,用于对q个相关数据值进行存储的附加寄存器的数量可以基于由要实施的算法典型地考虑的相关值的数量。0039 由于每个集合220、230中的寄存器数量可以基于最坏情况场景,因而需要动态地确定特别是p的实际值,即第一集合220和第二集合230中的统计野值的数量。为此,电路200可以包括计数器212和查找表214,该查找表控制放置在寄存器220a-c的第一寄存器集合220和平均电路260之间的第一复用器240,以及控制放置在寄存器230a-c的第二寄存器集合230和平均电路260之间的第二复用器250。计数器212适于对由控制器210接收的数据值的数量进行计数,而可以利用度量(metri。

30、c)对查找表214编程,以动态地确定要从每个集合220、230中丢弃的统计野值102的数量。例如,查找表214可以实现上面显示的表I。但是,应该理解,在可以预定义数量p和q(即哪些寄存器将包含统计野值102)的情况下,可以省略计数器212、查找表214和复用器240、250。0040 现在,将借助图3更详细地阐述电路200的操作,该图示出了本发明方法的实施例。方法开始于步骤310,之后该方法移到步骤320,在该步骤中对寄存器220a-c和230a-c初始化。可以典型地通过下述方式执行该步骤:在寄存器220a-c中存储要由控制器210接收的n比特数据元素的最低可能值(lowest possibl。

31、e value),在寄存器230a-c中存储n比特数据元素的最高可能值(highest possible value)。可选地,在电路200的用户已经预先知道要接收的数据值202的范围外限的情况下,可以在寄存器220a-c中存储下限值,以及在寄存器230a-c中存储上限值。初始化步骤还可以可选地包括复位计数器212以及将正确数据加载到查找表214中。0041 一旦完成初始化,该方法开始进行步骤330中表示的数据分类,在该步骤中控制器210接收输入数据值202。如步骤335所示,控制器210将接收的输入数据与寄存器220a-c和寄存器230a-c的每一个中存储的数据值进行比较。为此,每个寄存器可。

32、以包括比较器(未显示),控制器210可以把接收的数据值转发到每个寄存器,这些寄存器将比较结果返回到控制器210。典型地,由于寄存器220a-c是要存储由控制器210接收的数据集合中的p+q个最大数据值,集合220中的比较器将提供输入数据值202是否大于存储在对应的寄存器220a-c中的数据值的指示。类似地,由于寄存器230a-c是要存储由控制器210说 明 书CN 103092812 A6/8页9接收的数据集合中的p+q个最小数据值,集合230中的比较器将提供输入数据值202是否小于存储在对应的寄存器230a-c中的数据值的指示。可选地,比较器可以集合成到控制器210中,在这种情况下,控制器2。

33、10请求寄存器220a-c和寄存器230a-c提供存储在这些寄存器中的数据值的拷贝,使得控制器210可以在内部生成比较结果。优选地,以并行方式生成这些比较结果,因为这可以提供最大的性能增益。0042 如果至少一个比较结果为肯定,即在步骤330中接收的数据值大于在寄存器220a-c的某一个中存储的数据值,和/或小于在寄存器230a-c的某一个中存储的数据值,则方法转到步骤340,在该步骤中由控制器210利用合适的加载和移位指令把输入数据值202插入到获得肯定比较结果的寄存器中,由,这可以通过下述示例更清楚地了解。0043 表II0044 寄存器 数据值220a 15220b 11220c 923。

34、0c 5230b 3230a 20045 示例10046 控制器210接收到值为13的数据元素202。寄存器集合220和230的状态如表II中所示。在步骤335中,与寄存器220b和220c关联的比较器提供了肯定比较结果,即数据元素202的值大于在这些寄存器中存储的数据值。其他所有的比较结果为否定,即数据元素202的值小于在寄存器220a中存储的值并大于在寄存器230a-c中存储的任何值。控制器210随后向寄存器220b发出移位指令,以将它的当前数据值向寄存器220c移位,从而用来自寄存器220b的数据值盖写寄存器220c中的数据值,然后向寄存器220b发出加载指令,其中用控制器210接收的数。

35、据元素202的值盖写寄存器220b中的数据值。可选地,所述移位指令和所述加载指令可以并行发出。在完成步骤340之后的寄存器结果状态显示在表III中:0047 表III:0048 寄存器 数据值220a 15220b 13说 明 书CN 103092812 A7/8页10220c 11230c 5230b 3230a 20049 示例20050 控制器210接收到值为1的数据元素202。寄存器集合220和230的状态再次如表II中所示。在步骤335中,与寄存器230a-c关联的比较器提供了肯定比较结果,即数据元素202的值小于在这些寄存器中存储的数据值。其他所有的比较结果是否定的,即数据元素20。

36、2的值小于在寄存器220a-c中存储的值。控制器210随后向寄存器230a和230b发出移位指令,以将它们的当前数据值分别向寄存器230b和230c移位,从而用来自寄存器230a和230b的数据值分别盖写寄存器230b和230c中的数据值,然后向寄存器230a发出加载指令,其中用控制器210接收的数据元202的值盖写寄存器230a中的数据值。可选地,所述移位指令和所述加载指令可以并行发出。在完成步骤340之后的寄存器结果状态显示在表IV中:0051 表IV0052 寄存器 数据值220a 15220b 11220c 9230c 3230b 2230a 10053 0054 从上述示例明显可见,。

37、控制器210通过向寄存器施加如上述示例中所示出的加载和移位指令,确保了寄存器集合220以有序方式存储控制器210接收的p+q个最大数据值,以及类似地确保了寄存器集合230以有序方式存储控制器210接收的p+q个最小数据值。0055 另一方面,如果在步骤335中没有生成任何肯定的比较结果,则在步骤350中丢弃由控制器210接收的数据值202,因为可以得出所接收的数据值是中间值(intermediate value)的结论,即,p+q个较大的和p+q个较小的数据值已由电路200先前接收了,中间值不会用于计算电路200所接收的数据集合的平均值或均值。0056 在步骤355中,确定电路200是否要接收其他的输入数据值202。在已知要期望的说 明 书CN 103092812 A10。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1