并行排序电路及并行排序方法技术

技术编号:8532477 阅读:260 留言:0更新日期:2013-04-04 15:16
本发明专利技术公开了一种并行排序电路和并行排序方法,主要解决现有技术的排序速度慢、不能满足实时性要求的问题。其包括比较单元、控制单元和输出单元,该控制单元包括插入地址子单元和删除地址子单元。比较单元对数据进行比较,插入地址子单元利用比较单元输出的比较结果,产生插入地址;删除地址子单元利用插入地址子单元输出的插入地址,产生删除地址;输出单元根据插入地址和删除地址,在一个时钟周期内插入新数据,同时删除最早的数据,输出排序结果。该发明专利技术基于硬件实现,并行性好,速度快,减少了排序需要的时钟周期数,满足实时性要求,可以应用于雷达探测等对数据处理速度要求较高的领域。

【技术实现步骤摘要】

本专利技术涉及微电子数字电路设计领域,具体涉及一种数据排序的硬件电路及其实现方法,可用于数据处理中对数据进行排序。
技术介绍
排序是数据处理中最基本也是最重要的操作之一,鉴于其重要性,近年来已经陆续提出了许多排序算法来解决实际问题。目前排序算法大致可以分为软件实现方式和硬件实现方式。软件排序算法有很多,如冒泡排序、选择排序、插入排序、快速排序、合并排序、计数排序等。这些软件实现方式都有一个共同的缺点,那就是速度比较慢而且需要利用处理 器资源。在图像处理、多媒体数据处理以及雷达探测等需要高速数据处理的场合,这些排序算法的软件实现方式很难达到要求的处理速度。而且在没有处理器资源的场合,也无法采用软件实现方式。而硬件实现具有并行性的特点,硬件排序的速度更快。目前,硬件排序的结构可以分为两种排序网络和线性排序阵列。排序网络的缺点是当需要排序的数据较多时,会导致排序网络的面积很大,而且如果要进行排序的数据块中一个数据发生变化,都需要重新进行排序。而线性排序在处理连续串行输入的数据时很有用,但是目前存在的问题是速度慢,需要较多的时钟周期才能得到排序结果,实时性不好。
技术实现思路
本专利技术的目的在于克服上述已有技术的不足,提出一种,以提高电路的排序速度,减少排序所需要的时钟周期数,满足实时性要求。为实现上述目的,本专利技术的并行排序电路,包括比较单元、控制单元以及输出单元,比较单元将新输入的待排序数据和已排序数据以及设定的数据的最大值进行比较,得到比较结果Ic1, C2,…,Ci,…,CN,CN+1},其中N为排序数据的个数,Ci为待排序数据与N个已排序数据的比较结果,i为自然数,取值范围为[1,N],cN+1为待排序数据与设定的数据的最大值的比较结果,该比较结果输出给控制单元,控制单元利用比较单元的比较结果产生插入地址ins和删除地址del并输出给输出单元,输出单元根据插入地址ins和删除地址del的值,将输入的待排序数据插入到已排序的数据中,并删除最早输入的待排序数据,得到排序结果,其特征在于所述的控制单元,包括插入地址子单元,它包含第一多路选择器A和第二多路选择器B ;该第一多路选择器A的输入信号为Ic1, C2,…,Ci,…,cN, cn+1},控制信号为删除地址子单兀的输出信号删除地址del,输出信号为标志信号flag,若del=N_i,贝丨J flag= (C1, c2,…,。卜” ci+1,…,cN, cN+1},i的取值范围为[1,N];该第二多路选择器B的输入信号为所有已排序数据的地址值N-j,j的取值范围为[1,N],输出信号为插入地址ins,控制信号为第一多路选择器A的输出信号flag,其位宽为N,若flag所有位中I的个数为Ν-j+l,则插入地址ins=N_j ;删除地址子单元,它包含N个寄存器和N-1个多路选择器,该N个寄存器和N-1个多路选择器交替排列,第一个寄存器的输入信号为插入地址子单元的输出信号插入地址ins,其余N-1个寄存器的输入信号分别为它前面一个多路选择器的输出信号,第i个寄存器的输出信号为第i个中间删除地址4,i的取值范围为[1,N-1],第N个寄存器的输出信号为该删除地址子单元的输出信号删除地址del ;第i个多路选择器的输入信号为它前面一个寄存器的输出信号hi;比+1以及h1-1,控制信号为插入地址ins,删除地址del以及它前面一个寄存器的输出信号Iii,输出信号为中间插入地址gi; i的取值范围为[1,N-1],该中间插入地址gi按如下规则选取若ins>hi; (IeDhi,则 ;若insfhi, (IeKhi,则 gfhi ;若ins<=hi; (IeDhi,则 g^hj+l ;若ins>=hi, CleKhi,贝丨J g^hj-lo为实现上述目的,本专利技术的并行排序方法,包括如下步骤I)初始化步骤初始化删除地址Clel=O ;初始化第i个中间删除地址hi=N_i,i的取值范围为[1,N-1];初始化已排序数据d」=0,j的取值范围为[1,N];2)数据大小比较步骤将每个时钟周期输入的待排序数据与已排序数据以及设定的数据的最大值进行比较,若待排序数据小于或者等于已排序数据,则Ci=I,否则,Ci=O ;若待排序数据小于或者等于设定的数据的最大值,则cN+1=l,否则,cN+1=0,得到比较结果Ic1, C2,…,Ci,…,cN, cn+1},N为排序数据的个数,Ci为待排序数据与N个已排序数据的比较结果,cN+1为待排序数据与设定的数据的最大值的比较结果,i的取值范围为[1,N];3)插入地址产生步骤3a)利用删除地址del和比较结果Ic1, C2,…,Ci,…,cN, cN+1},产生标志信号flag,若 del=N_i,则 Hag=Ic1, c2,…,Ch, ci+1, ···,cN, cN+1}, i 的取值范围为[I, N];3b)利用标志信号flag作为控制信号进行编码,若flag所有位中I的个数为k+1,则插入地址ins=k, k的取值范围为[O, N-1];4)删除地址产生步骤同时进行以下三个操作寄存插入地址ins,得到第一个中间删除地址Ill ;将第i个中间删除地址Iii分别与插入地址ins和删除地址del比较,i的取值范围为[1,N-1],利用比较的结果作为控制信号产生第j个中间插入地址g];寄存第j个中间插入地址ir」,得到第j+Ι个中间删除地址hj+1,j的取值范围为[1,N-2],j=i ;将第N-1个中间删除地址V1分别与插入地址ins和删除地址del比较,利用比较的结果产生第N-1个中间插入地址gH ;寄存第N-1个中间插入地址gH,得到更新的删除地址的值deln ;5)排序结果输出步骤设插入地址ins=N_j,更新后的删除地址deln=N_n,1、j和η表示已排序数据的序号,其取值范围均为[1,N];根据插入地址ins和更新后的删除地址deln的值,确定已排序数据Cli的移位方式,将待排序数据din插入到相应的位置,得到如下排序结果当i = j时,将待排序数据插入到地址值为N-j的地址处,即dfdin ;当i古j时,需要根据j和η的大小确定(Ii的结果,具体判断方法如下若j=n,则ins=del,使地址值不等于N-j的地址处的数据都保持不变,即i e [I,j-Ι]或者 i e [j+1, N]时,得至Ij (Ii=Cli ;若j>n,则ins〈del,保持地址值为N_1的地址到地址值为N_n+1的地址处的数据不变,同时保持地址值为Ν-j-l的地址到地址为值O的地址处的数据也不变,即i [ [I, η-1]或者 i e [j+1, N]时,得到 Cli =Cli;若j > n,则ins〈del,将地址值为N_n_l的地址到地址值为N-j的地址处的数据依次左移,得到地址值为N-n的地址到地址值为Ν-j+l的地址处的结果,即i e [n, j-1]时,得到φ=φ+1 ;若j〈n,则ins>del,保持地址值为N_1的地址到地址值为N-j+Ι的地址处的数据不变,同时保持地址值为N-n-Ι的地址到地址值为O的地址处的数据也不变,即i [ [I, j_l]或者 i [ [n+1, N]时,得到 Cli=C本文档来自技高网...

【技术保护点】
一种并行排序电路,包括比较单元、控制单元以及输出单元,比较单元将新输入的待排序数据和已排序数据以及设定的数据的最大值进行比较,得到比较结果{c1,c2,…,ci,…,cN,cN+1},其中N为排序数据的个数,ci为待排序数据与N个已排序数据的比较结果,i为自然数,取值范围为[1,N],cN+1为待排序数据与设定的数据的最大值的比较结果,该比较结果输出给控制单元,控制单元利用比较单元的比较结果产生插入地址ins和删除地址del并输出给输出单元,输出单元根据插入地址ins和删除地址del的值,将输入的待排序数据插入到已排序的数据中,并删除最早输入的待排序数据,得到排序结果,其特征在于:?所述的控制单元,包括:?插入地址子单元,它包含第一多路选择器A和第二多路选择器B;该第一多路选择器A的输入信号为{c1,c2,…,ci,…,cN,cN+1},控制信号为删除地址子单元的输出信号删除地址del,输出信号为标志信号flag,若del=N?i,则flag={c1,c2,…,ci?1,ci+1,…,cN,cN+1},i的取值范围为[1,N];该第二多路选择器B的输入信号为所有已排序数据的地址值N?j,j的取值范围为[1,N],输出信号为插入地址ins,控制信号为第一多路选择器A的输出信号flag,其位宽为N,若flag所有位中1的个数为N?j+1,则插入地址ins=N?j;?删除地址子单元,它包含N个寄存器和N?1个多路选择器,该N个寄存器和N?1个多路选择器交替排列,第一个寄存器的输入信号为插入地址子单元的输出信号插入地址ins,其余N?1个寄存器的输入信号分别为它前面一个多路选择器的输出信号,第i个寄存器的输出信号为第i个中间删除地址hi,i的取值范围为[1,N?1],第N个寄存器的输出信号为该删除地址子单元的输出信号删除地址del;第i个多路选择器的输入信号为它前面一个寄存器的输出信号hi,hi+1以及hi?1,控制信号为插入地址ins,删除地址del以及它前面一个寄存器的输出信号hi,输出信号为中间插入地址gi,i的取值范围为[1,N?1],该中间插入地址iri按如下规则选取:?若ins>hi,del>hi,则gi=hi;?若inshi,则gi=hi+1;?若ins>=hi,del...

【技术特征摘要】
1.一种并行排序电路,包括比较单元、控制单元以及输出单元,比较单元将新输入的待排序数据和已排序数据以及设定的数据的最大值进行比较,得到比较结果Ic1, C2,…,Ci,…,cN, cN+1},其中N为排序数据的个数,Ci为待排序数据与N个已排序数据的比较结果,i为自然数,取值范围为[1,N],cN+1为待排序数据与设定的数据的最大值的比较结果,该比较结果输出给控制单元,控制单元利用比较单元的比较结果产生插入地址ins和删除地址del并输出给输出单元,输出单元根据插入地址ins和删除地址del的值,将输入的待排序数据插入到已排序的数据中,并删除最早输入的待排序数据,得到排序结果,其特征在于 所述的控制单元,包括 插入地址子单元,它包含第一多路选择器A和第二多路选择器B ;该第一多路选择器A的输入信号为Ic1, C2,…,Ci,…,CN, Cn+1},控制信号为删除地址子单兀的输出信号删除地址del,输出信号为标志信号 flag,若 del=N_i,则 flag= (C1, c2,…,Ci^1, ci+1,…,cN, cN+1}, i 的取值范围为[1,N];该第二多路选择器B的输入信号为所有已排序数据的地址值N-j,j的取值范围为[1,N],输出信号为插入地址ins,控制信号为第一多路选择器A的输出信号flag,其位宽为N,若flag所有位中I的个数为Ν-j+l,则插入地址ins=N-j ; 删除地址子单元,它包含N个寄存器和N-1个多路选择器,该N个寄存器和N-1个多路选择器交替排列,第一个寄存器的输入信号为插入地址子单元的输出信号插入地址ins,其余N-1个寄存器的输入信号分别为它前面一个多路选择器的输出信号,第i个寄存器的输出信号为第i个中间删除地址hi; i的取值范围为[1,N-1],第N个寄存器的输出信号为该删除地址子单元的输出信号删除地址del ;第i个多路选择器的输入信号为它前面一个寄存器的输出信号hi;比+1以及h1-1,控制信号为插入地址ins,删除地址del以及它前面一个寄存器的输出信号hi;输出信号为中间插入地址gi,i的取值范围为[1,N-1],该中间插入地址iri按如下规则选取 若 ins>hi; (IeDhi,则 ; 若 ins<hi; (IeKhi,则 ;若 ins<=hi; (IeDhi,则 g^hj+l ;若 ins>=hi; (IeKhi,则 g^hj-lo2.根据权利要求1所述的并行排序电路,其特征在于,输出单元包含N个多路选择器和N个寄存器,N为排序数据的个数; 所述N个多路选择器,其每个多路选择器的控制信号相同,均为插入地址ins和删除地址del ;其每个多路选择器输入、输出信号不同,即第一个多路选择器的输入信号为待排序数据din、第一个寄存器的输出信号Cl1和第二个寄存器的输出信号d2共三个信号,第一个多路选择器的输出信号记为Hi1 ;第i个多路选择器的输入信号为待排序数据din、第1-Ι个寄存器的输出信号(Ip1、第i个寄存器的输出信号(Ii和第i+Ι个寄存器的输出信号di+1共四个信号,第i个多路选择器的输出信号记为IV i的取值范围为[2,N-1];第N个多路选择器的输入信号为待排序数据din、第N-1个寄存器的输出信号(V1和第N个寄存器的输出信号dN共三个信号,第N个多路选择器的输出信号记为mN ; 所述的N个寄存器,其每个寄存器的输入、输出信号不同,即第j个寄存器的输入信号为第j个多路选择器的输出信号nij,第j个寄存器的输出信号记为dj, j的取值范围为[1,N]。3.一种并行排序方法,包括 O初始化步骤 初始化删除地址Clel=O ;初始化第i个中间删除地址hi=N-1,i的取值范围为[1,N-1];初始化已排序数据dfO,j的取值范围为[1,N]; 2)数据大小比较步骤 将每个时钟周期输入的待排序数据与已排序数据以及设...

【专利技术属性】
技术研发人员:郝跃袁莉史江义舒浩邸志雄马佩军
申请(专利权)人:西安电子科技大学
类型:发明
国别省市:

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

1