一种实现数据排序的硬件电路及方法技术

技术编号:2919354 阅读:372 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种实现数据排序的硬件电路及方法,所述电路主要用于从m个数据中找出n个最大(或最小)的数据,m≥n,并且同时实现对这n个最大(或最小)的值进行大小排序。具体包括:一组寄存器,一组比较器,一组n+1选1的多路选择器,两组2选1的多路选择器,一组极值指针寄存器,一个2选1的多路选择器,一个当前采样(新采样)写指针寄存器,一个地址译码器。所述的方法和装置,采用硬件电路来实现数据的排序,此电路每个时钟可以处理一个数据,如果使用多套排序电路并行工作,排序时间还可以成倍减少,所以本电路的实时处理性强,可以满足对处理时间要求比较高的场合。

【技术实现步骤摘要】

本专利技术涉及数字信号处理领域,具体涉及。
技术介绍
在数字信号处理中,经常需要对一系列数据进行排序,比如要对m个数据的大小顺序进行排序,或者从m个数据中找出n个最大(或最小)的数据,m≥n,以确定这些数据的优先级别。现有的技术主要为软件排序。虽然软件排序的算法很多,但由于软件的运算速度较慢,无法满足实时性要求比较高的环境。比如通信系统的基站在进行小区搜索时,需要从大量的数据中找到真正的信号,并迅速向移动终端反馈信息,这个时间间隔要求很短,通常在1ms左右,在小区半径比较大或搜索的小区比较多时,需要处理的数据量非常庞大,经常达到十万的量级,软件无法在如此短时间内实现如此多数据的查找排序。
技术实现思路
本专利技术目的在于克服软件排序花费时间长的缺点,使用硬件电路来实现数据的排序,可以满足实时性要求比较高的场合。为了实现上述专利技术目的,本专利技术具体是这样实现的一种实现数据排序的硬件电路,包括一组寄存器(A),一组比较器(B),一组n+1选1的多路选择器(C),一组2选1的多路选择器(D),一组2选1的多路选择器(E),一组极值指针寄存器(F),一个2选1的多路选择器(EN),一个当前采样(新采样)写指针寄存器(FN),一个地址译码器(G);输入数据连接到寄存器组(A)和比较器组(B),输出为寄存器组(A)和极值指针寄存器组(F)的输出;所述地址译码器(G)的输出连接到寄存器组(A)的输入使能端;寄存器组(A)的输出作为比较器组(B)的输入;比较器组(B)的输出作为多路选择器组(C)的输入,极值指针寄存器组(F)作为多路选择器组(C)的控制端;多路选择器组(C)的输出作为多路选择器组(D)的控制端,新采样写指针寄存器(FN)和极值指针寄存器组(F)作为多路选择器组(D)的输入端;多路选择器组(C)的输出作为多路选择器组(E)的控制端,多路选择器组(D)的输出和极值指针寄存器组(F)作为多路选择器组(E)的输入端;多路选择器组(E)的输出作为极值指针寄存器组(F)的输入端;多路选择器组(C)的输出作为多路选择器(EN)的控制端,新采样写指针寄存器(FN)和极值指针寄存器组(F)作为多路选择器(EN)的输入端;多路选择器(EN)的输出作为新采样写指针寄存器(FN)的输入端,新采样写指针寄存器(FN)作为地址译码器(G)的输入端。所述寄存器(A)中有额外一个空间来存放当前的采样输入,其存储位置由新采样写指针寄存器(FN)指定。一种上述硬件电路实现数据排序的方法,其特征在于步骤1、根据要查找值个数n,确定寄存器组(A),比较器组(B),n+1选1的多路选择器组(C),2选1的多路选择器组(D)和(E),极值指针寄存器组(F)的深度,以及两组2选1的多路选择器组、极值指针寄存器组(F)、2选1的多路选择器(EN)和当前采样写指针寄存器(FN)的宽度;步骤2、选择待查找的数据源的个数m,以确定电路的运行时间为m个时钟;步骤3、根据查找数值类型,选择比较器的输出类型;步骤4、复位寄存器组、极值指针寄存器组和新采样写指针寄存器;步骤5、每个时钟向电路输入一个数据;步骤6、经过m个时钟后停止本电路,此时寄存器组中保存的即为n个极值,极值指针寄存器组内保存的是这些极值的大小顺序。所述步骤1中寄存器组(A)和比较器组(B)深度为n+1;n+1选1的多路选择器组(C),2选1的多路选择器组(D),极值指针寄存器组(F)的深度为n;2选1多路选择器(E)的深度为n-1;n+1选1的多路选择器组(C)的宽度为1;2选1的多路选择器组(D)和(E),极值指针寄存器组(F),2选1的多路选择器(EN)和当前采样写指针寄存器(FN)的宽度为大于或等于log2(n+1)的最小整数。所述步骤4中极值指针寄存器组(F)和当前采样写指针寄存器(FN)要分别复位,且复位后的值各不相同;查找最大值时,寄存器组(A)全部复位为其最小值,否则寄存器组(A)全部复位为其最大值。采用本专利技术所述的方法和装置,与现有技术相比,本专利技术克服了软件排序花费时间长,不能用于实时性要求高的场合的缺点。本专利技术使用硬件电路来实现数据的排序,此电路每个时钟可以处理一个数据,目前的集成电路一般可以工作在100MHz以上,对10万个数据进行排序的时间小于1ms,如果使用多套排序电路并行工作,排序时间还可以成倍减少,所以本电路的实时处理性强,可以满足对处理时间要求比较高的场合。附图说明图1为一个单链表的示意图;图2为对图1进行重新排列并去掉空指针后得到的单链表;图3为一个2选1的多路选择器;图4为一个16选1的多路选择器;图5为本专利技术的电路结构框图;图6为本专利技术的一个具体实施例;图7为本专利技术所述方法的流程图。具体实施例方式下面结合附图和实施例对本专利技术作进一步的详细说明。在说明本专利技术之前,先对本专利技术的原理作一个简要的说明。本方法的主要思想来源于软件数据结构中的单链表,单链表是存储数据的一种结构,访问存储在链表中的数据时,需要查询一组指针,这组指针的内容为这些数据的存储位置。附图1为一个单链表的示意图,头指针为d0的存储位置,指针1为d1的存储位置,......,指针n为dn的存储位置,最后是一个空指针,如果n为一个固定的数,可以不使用最后的空指针。附图2为对附图1进行重新排列并去掉空指针后得到的单链表。为了更好的解释本专利技术,下面对本专利技术中用到的一些元件进行说明。附图3为一个2选1的多路选择器,i0,i1为数据输入端口,s为选择控制端口,z为输出端口,当s为0时,z的输出为i0,当s为1时,z的输出为i1。附图4为一个16选1的多路选择器,i为数据输入端口,s为选择控制端口,z为输出端口。i的位宽为16,i由i15, i14, i13,......,i1,i0组成;s的位宽为4,取值范围为0-15。当s的值为j时,z的输出为ij,这里j的取值范围为0-15。如果一个多路选择器的输入位宽是其他值,其工作原理与16选1的多路选择器是相似的。可以用2选1的多路选择器搭建16选1的多路选择器或其他类型的多路选择器。通用的比较器一般有两个输入A和B,三个输出,一个输出判断A是否大于B,一个判断A是否等于B,另一个判断A是否小于B。本专利技术中用到的比较器只需要一个输出,根据需要可以是判断A是否大于B的,也可以是判断A是否小于B的。本专利技术所述的排序电路主要用于从m个数据中找出n个最大(或最小)的数据,m≥n,并且同时实现对这n个最大(或最小)的值进行大小排序。此电路主要由以下几个部分组成一组寄存器A,一组比较器B,一组n+1选1的多路选择器C,一组2选1的多路选择器D,一组2选1的多路选择器E,一组极值指针寄存器F,一个2选1的多路选择器EN,一个当前采样(新采样)写指针寄存器FN,一个地址译码器G。本电路的输入连接到寄存器组A和比较器组B,本电路的输出为寄存器组A和极值指针寄存器组F。地址译码器G的输出连接到寄存器组A的输入使能端;寄存器组A的输出作为比较器组B的输入;比较器组B的输出作为多路选择器组C的输入,极值指针寄存器组F作为多路选择器组C的控制端;多路选择器组C的输出作为多路选择器组D的控制端,新采样写指针寄存器FN和极值指针寄存器组F作为D的输入端;多路选择器组C的输出作为多路选择器组E的本文档来自技高网...

【技术保护点】
一种实现数据排序的硬件电路,其特征在于,包括:一组寄存器(A),一组比较器(B),一组n+1选1的多路选择器(C),一组2选1的多路选择器(D),一组2选1的多路选择器(E),一组极值指针寄存器(F),一个2选1的多路选择器(EN) ,一个当前采样(新采样)写指针寄存器(FN),一个地址译码器(G);输入数据连接到寄存器组(A)和比较器组(B),输出为寄存器组(A)和极值指针寄存器组(F)的输出;所述地址译码器(G)的输出连接到寄存器组(A)的输入使能端;寄存器 组(A)的输出作为比较器组(B)的输入;比较器组(B)的输出作为多路选择器组(C)的输入,极值指针寄存器组(F)作为多路选择器组(C)的控制端;多路选择器组(C)的输出作为多路选择器组(D)的控制端,新采样写指针寄存器(FN)和极值指针寄存器组(F)作为多路选择器组(D)的输入端;多路选择器组(C)的输出作为多路选择器组(E)的控制端,多路选择器组(D)的输出和极值指针寄存器组(F)作为多路选择器组(E)的输入端;多路选择器组(E)的输出作为极值指针寄存器组(F)的输入端;多路选择器组(C)的输出作为多路选择器(EN)的控制端,新采样写指针寄存器(FN)和极值指针寄存器组(F)作为多路选择器(EN)的输入端;多路选择器(EN)的输出作为新采样写指针寄存器(FN)的输入端,新采样写指针寄存器(FN)作为地址译码器(G)的输入端。...

【技术特征摘要】

【专利技术属性】
技术研发人员:温子瑜
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1