CN103019646A - 并行排序电路及并行排序方法 - Google Patents
并行排序电路及并行排序方法 Download PDFInfo
- Publication number
- CN103019646A CN103019646A CN2013100077329A CN201310007732A CN103019646A CN 103019646 A CN103019646 A CN 103019646A CN 2013100077329 A CN2013100077329 A CN 2013100077329A CN 201310007732 A CN201310007732 A CN 201310007732A CN 103019646 A CN103019646 A CN 103019646A
- Authority
- CN
- China
- Prior art keywords
- address
- data
- ins
- del
- output signal
- 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.)
- Granted
Links
Images
Landscapes
- Communication Control (AREA)
Abstract
本发明公开了一种并行排序电路和并行排序方法,主要解决现有技术的排序速度慢、不能满足实时性要求的问题。其包括比较单元、控制单元和输出单元,该控制单元包括插入地址子单元和删除地址子单元。比较单元对数据进行比较,插入地址子单元利用比较单元输出的比较结果,产生插入地址;删除地址子单元利用插入地址子单元输出的插入地址,产生删除地址;输出单元根据插入地址和删除地址,在一个时钟周期内插入新数据,同时删除最早的数据,输出排序结果。该发明基于硬件实现,并行性好,速度快,减少了排序需要的时钟周期数,满足实时性要求,可以应用于雷达探测等对数据处理速度要求较高的领域。
Description
技术领域
本发明涉及微电子数字电路设计领域,具体涉及一种数据排序的硬件电路及其实现方法,可用于数据处理中对数据进行排序。
背景技术
排序是数据处理中最基本也是最重要的操作之一,鉴于其重要性,近年来已经陆续提出了许多排序算法来解决实际问题。目前排序算法大致可以分为软件实现方式和硬件实现方式。
软件排序算法有很多,如冒泡排序、选择排序、插入排序、快速排序、合并排序、计数排序等。这些软件实现方式都有一个共同的缺点,那就是速度比较慢而且需要利用处理器资源。在图像处理、多媒体数据处理以及雷达探测等需要高速数据处理的场合,这些排序算法的软件实现方式很难达到要求的处理速度。而且在没有处理器资源的场合,也无法采用软件实现方式。
而硬件实现具有并行性的特点,硬件排序的速度更快。目前,硬件排序的结构可以分为两种:排序网络和线性排序阵列。排序网络的缺点是当需要排序的数据较多时,会导致排序网络的面积很大,而且如果要进行排序的数据块中一个数据发生变化,都需要重新进行排序。而线性排序在处理连续串行输入的数据时很有用,但是目前存在的问题是速度慢,需要较多的时钟周期才能得到排序结果,实时性不好。
发明内容
本发明的目的在于克服上述已有技术的不足,提出一种并行排序电路及并行排序方法,以提高电路的排序速度,减少排序所需要的时钟周期数,满足实时性要求。
为实现上述目的,本发明的并行排序电路,包括比较单元、控制单元以及输出单元,比较单元将新输入的待排序数据和已排序数据以及设定的数据的最大值进行比较,得到比较结果{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],该中间插入地址gi按如下规则选取:
若ins>hi,del>hi,则gi=hi;
若ins<hi,del<hi,则gi=hi;
若ins<=hi,del>hi,则gi=hi+1;
若ins>=hi,del<hi,则gi=hi-1。
为实现上述目的,本发明的并行排序方法,包括如下步骤:
1)初始化步骤:
初始化删除地址del=0;初始化第i个中间删除地址hi=N-i,i的取值范围为[1,N-1];初始化已排序数据dj=0,j的取值范围为[1,N];
2)数据大小比较步骤:
将每个时钟周期输入的待排序数据与已排序数据以及设定的数据的最大值进行比较,若待排序数据小于或者等于已排序数据,则ci=1,否则,ci=0;若待排序数据小于或者等于设定的数据的最大值,则cN+1=1,否则,cN+1=0,得到比较结果{c1,c2,…,ci,…,cN,cN+1},N为排序数据的个数,ci为待排序数据与N个已排序数据的比较结果,cN+1为待排序数据与设定的数据的最大值的比较结果,i的取值范围为[1,N];
3)插入地址产生步骤
3a)利用删除地址del和比较结果{c1,c2,…,ci,…,cN,cN+1},产生标志信号flag,若del=N-i,则flag={c1,c2,…,ci-1,ci+1,…,cN,cN+1},i的取值范围为[1,N];
3b)利用标志信号flag作为控制信号进行编码,若flag所有位中1的个数为k+1,则插入地址ins=k,k的取值范围为[0,N-1];
4)删除地址产生步骤:
同时进行以下三个操作:
寄存插入地址ins,得到第一个中间删除地址h1;
将第i个中间删除地址hi分别与插入地址ins和删除地址del比较,i的取值范围为[1,N-1],利用比较的结果作为控制信号产生第j个中间插入地址gj;寄存第j个中间插入地址irj,得到第j+1个中间删除地址hj+1,j的取值范围为[1,N-2],j=i;
将第N-1个中间删除地址hN-1分别与插入地址ins和删除地址del比较,利用比较的结果产生第N-1个中间插入地址gN-1;寄存第N-1个中间插入地址gN-1,得到更新的删除地址的值deln;
5)排序结果输出步骤
设插入地址ins=N-j,更新后的删除地址deln=N-n,i、j和n表示已排序数据的序号,其取值范围均为[1,N];根据插入地址ins和更新后的删除地址deln的值,确定已排序数据di的移位方式,将待排序数据din插入到相应的位置,得到如下排序结果:
当i=j时,将待排序数据插入到地址值为N-j的地址处,即di=din;
当i≠j时,需要根据j和n的大小确定di的结果,具体判断方法如下:
若j=n,则ins=del,使地址值不等于N-j的地址处的数据都保持不变,即i∈[1,j-1]或者i∈[j+1,N]时,得到di=di;
若j>n,则ins<del,保持地址值为N-1的地址到地址值为N-n+1的地址处的数据不变,同时保持地址值为N-j-1的地址到地址为值0的地址处的数据也不变,即i∈[1,n-1]或者i∈[j+1,N]时,得到di=di;
若j>n,则ins<del,将地址值为N-n-1的地址到地址值为N-j的地址处的数据依次左移,得到地址值为N-n的地址到地址值为N-j+1的地址处的结果,即i∈[n,j-1]时,得到di=di+1;
若j<n,则ins>del,保持地址值为N-1的地址到地址值为N-j+1的地址处的数据不变,同时保持地址值为N-n-1的地址到地址值为0的地址处的数据也不变,即i∈[1,j-1]或者i∈[n+1,N]时,得到di=di;
若j<n,则ins>del,将地址值为N-j的地址到地址值为N-n+1的地址处的数据依次右移,得到地址值为N-j-1的地址到地址值为N-n的地址处的结果,即i∈[j+1,n]时,得到di=di-1。
本发明现有技术相比,具有如下优点:
1.本发明由于采用现场可编程门阵列FPGA实现整个排序电路,利用FPGA并行性好的特点,克服了现有技术基于软件的实现方式速度慢的问题,使得本发明速度快,可以应用于图像处理、多媒体数据处理和雷达探测等对数据处理速度要求较高的领域;
2.本发明由于采用产生插入地址和删除地址并比较插入地址和删除地址的大小的方法,对每个时钟周期输入的待排序数据进行排序,可以在一个时钟周期内将待排序数据插入同时删除最早的数据,减少了排序所需要的时钟周期数,能满足实时性要求。
附图说明
图1为本发明的电路方框图;
图2为本发明电路中的比较单元方框图;
图3为本发明电路中的控制单元方框图;
图4为本发明电路中的输出单元方框图;
图5为本发明的处理方法流程图。
具体实施方式:
下面结合附图对本发明做进一步的描述:
参照图1,本发明的并行排序电路,包括比较单元、控制单元和输出单元。其中:比较单元将新输入的待排序数据和已排序数据以及设定的数据的最大值进行比较,得到比较结果,并将结果输出到控制单元;控制单元利用比较单元的比较结果产生插入地址ins和删除地址del,并输出给输出单元;输出单元根据插入地址ins和删除地址del的值,将输入的待排序数据插入到已排序的数据中,并删除最早输入的待排序数据,得到排序结果。
参照图2,本发明的比较单元包括N+1个比较器,N为排序数据的个数,每个比较器都有两个输入端口和一个输出端口,其中:
第i个比较器,其输入信号分别为输入的待排序数据din和输出单元输出的已排序数据di,其输出信号为比较结果ci,i的取值范围为[1,N],该第i个比较器将待排序数据din与已排序数据di进行比较,若待排序数据din小于或者等于已排序数据di,则ci为1,否则,ci为0;
第N+1个比较器,其输入信号分别为输入的待排序数据din和设定的数据的最大值max,其输出信号为比较结果cN+1,该第N+1个比较器将待排序数据din与设定的数据的最大值max进行比较,若待排序数据din小于或者等于max,则cN+1=1,否则,cN+1=0,其中,max的值确定了参与比较的数据的范围,一般情况下,cN+1=1。
参照图3,本发明的控制单元,包括插入地址子单元、删除地址子单元。
所述插入地址子单元,包括第一多路选择器A和第二多路选择器B,其中:
第一多路选择器A,其输入信号为比较单元输出的比较结果{c1,c2,…,ci,…,cN,cN+1},式中N为排序数据的个数,i的取值范围为[1,N],其控制信号为删除地址子单元的输出信号删除地址del,其输出信号为标志信号flag,该第一多路选择器A根据控制信号del,对输入的比较结果进行选择,得到标志信号flag,若del=N-i,则flag={c1,c2,…,ci-1,ci+1,…,cN,cN+1},{c1,c2,…,ci,…,cN,cN+1}为输入的待排序数据与已排序数据以及设定的数据的最大值的比较结果,其中,ci为待排序数据din与已排序数据的比较结果,i的取值范围为[1,N],若待排序数据din小于或者等于已排序数据di,则ci为1,否则,ci为0,cN+1为待排序数据din与设定的数据的最大值max的比较结果,若待排序数据din小于或者等于max,则cN+1=1,否则,cN+1=0;
第二多路选择器B,其输入信号为所有已排序数据的地址值k,k的取值范围为[0,N-1],其控制信号为第一多路选择器A的输出信号flag,位宽为N,其输出信号为插入地址ins,该第二多路选择器B根据控制信号flag,对输入的地址值进行选择,得到插入地址,若flag所有位中1的个数为N-j+1,则插入地址ins=N-j。
所述删除地址子单元,包括N个寄存器和N-1个多路选择器,该N个寄存器和N-1个多路选择器交替排列,其中:
第一个寄存器,其输入信号为插入地址ins,其输出信号为第一个中间删除地址h1;
第i个寄存器,其输入信号为第i-1个多路选择器的输出信号gi-1,其输出信号为第i个中间删除地址hi,,i的取值范围为[2,N-1];
第N个寄存器,其输入信号为第N-1个多路选择器的输出信号gN-1,其输出信号为删除地址del;
第j个多路选择器,其输入信号为第j个寄存器的输出信号hj、hj+1和hj-1共三个信号,其控制信号为插入地址ins、删除地址del和第j个寄存器的输出信号hj共三个信号,其输出信号为第j个中间插入地址gj,j取值范围为[1,N-1],该第j个多路选择其根据控制信号,对输入信号进行选择,得到如下输出结果:
若ins>hj,del>hj,则gj=hj;
若ins<hj,del<hj,则gj=hj;
若ins<=hj,del>hj,则gj=hj+1;
若ins>=hj,del<hj,则gj=hj-1。
参照图4,本发明的输出单元,包含N个多路选择器和N个寄存器,每个多路选择器都与一个寄存器相连,其中:
第j个寄存器,其输入信号为第j个多路选择器的输出信号mj,其输出信号为输出单元的输出结果dj,j的取值范围为[1,N];
第一个多路选择器,其输入信号为待排序数据din,第一个寄存器的输出信号d1和第二个寄存器的输出信号d2共三个信号,其控制信号为删除地址del和插入地址ins,其输出信号记为m1,该第一个多路选择器根据控制信号,对输入信号进行选择,得到如下输出结果:
若ins=N-1,则m1=din;
若ins<N-1,del=N-1,则m1=d2;
若ins<N-1,del<N-1,则m1=d2;
第i个多路选择器,其输入信号为待排序数据din,第i-1个寄存器的输出信号di-1,第i个寄存器的输出信号di和第i+1个寄存器的输出信号di+1共四个信号,其控制信号为删除地址del和插入地址ins,其输出信号记为mi,i的取值范围为[2,N-1],该第i个多路选择器根据控制信号,对输入信号进行选择,得到如下输出结果:
若ins=N-i,则mi=din;
若ins<N-i,del<N-i,则mi=di;
若ins<N-i,del>=N-i,则mi=di+1;
若ins>N-i,del>N-i,则mi=di;
若ins>N-i,del<=N-i,则mi=di-1;
第N个多路选择器,其输入信号为待排序数据din,第N-1个寄存器的输出信号dN-1和第N个寄存器的输出信号dN共三个信号,其控制信号为删除地址del和插入地址ins,其输出信号记为mN,该第N个多路选择器根据控制信号,对输入信号进行选择,得到如下输出结果:
若ins=0,则mN=din;
若ins>0,del=0,则mN=dN-1;
若ins>0,del>0,则mN=dN;
参照图5,本发明的并行排序方法,包括如下步骤:
步骤1,初始化:
初始化删除地址del=0;初始化第i个中间删除地址hi=i-1,i的取值范围为[1,N-1];初始化已排序数据dj=0,j的取值范围为[1,N]。
步骤2,比较数据大小:
将每个时钟周期输入的待排序数据din与已排序数据di以及设定的数据的最大值max进行比较,N为排序数据的个数,ci为待排序数据与N个已排序数据的比较结果,cN+1为待排序数据与设定的数据的最大值max的比较结果,i的取值范围为[1,N],若待排序数据小于或者等于已排序数据,则ci=1,否则,ci=0;若待排序数据小于或者等于设定的数据的最大值,则cN+1=1,否则,cN+1=0,得到比较结果{c1,c2,…,ci,…,cN,cN+1}。
步骤3,产生插入地址:
3a)根据删除地址del对输入的比较结果{c1,c2,…,ci,…,cN,cN+1}进行选择,产生标志信号flag,若del=N-i,则flag={c1,c2,…,ci-1,ci+1,…,cN,cN+1},i的取值范围为[1,N],由于步骤2中将待排序数据与N个已排序数据进行大小比较,因此,需要根据删除地址的值,删除其中一个比较结果,才能确定输入的待排序数据要插入的位置;
3b)步骤3a)产生的flag信号表征了待排序数据要插入的位置,为了更明确的表示地址值,利用标志信号flag作为控制信号进行编码,产生插入地址ins,若flag所有位中1的个数为k+1,则插入地址ins=k,k的取值范围为[0,N-1];
步骤4,产生删除地址:
由于本发明的并行排序方法,每个时钟周期删除最早输入的数据,同时将新输入的待排序数据插入到相应的位置,因此,产生的插入地址寄存N次就变成了删除地址,并且,由于待排序数据插入后会导致已排序数据发生移位,因此,需要根据插入地址和删除地址的值,得到更新的删除地址的值。该更新的删除地址值通过同时进行以下三个操作取得:
操作1,寄存插入地址ins,得到第一个中间删除地址dr1;
操作2,将第i个中间删除地址hi分别与插入地址ins和删除地址del比较,i的取值范围为[1,N-2],利用比较的结果作为控制信号产生第i个中间插入地址gi,并寄存第i个中间插入地址iri,得到第i+1个中间删除地址hi+1,i的取值范围为[1,N-2];gi的产生规则是:
若ins>hi,del>hi,则gi=hi;
若ins<hi,del<hi,则gi=hi;
若ins<=hi,del>hi,则gi=hi+1;
若ins>=hi,del<hi,则gi=hi-1;
操作3,将第N-1个中间删除地址hN-1分别与插入地址ins和删除地址del比较,利用比较的结果产生第N-1个中间插入地址gN-1,并寄存第N-1个中间插入地址gN-1,得到更新的删除地址的值deln,gN-1的产生规则如下:
若ins>hN-1,del>hN-1,则gN-1=hN-1;
若ins<hN-1,del<hN-1,则gN-1=hN-1;
若ins<=hN-1,del>hN-1,则gN-1=hN-1+1;
若ins>=hN-1,del<hN-1,则gN-1=hN-1-1。
步骤5,输出最终的排序结果。
设插入地址ins=N-j,更新后的删除地址deln=N-n,i、j和n表示已排序数据的序号,其取值范围均为[1,N];根据插入地址ins和更新后的删除地址deln的值,确定已排序数据di的移位方式,将待排序数据din插入到相应的位置,得到如下排序结果:
当i=j时,将待排序数据插入到地址值为N-j的地址处,即di=din;
当i≠j时,需要根据j和n的大小,确定已排序数据di的结果,具体结果如下:
若j=n,则ins=deln,使地址值不等于N-j的地址处的数据都保持不变,即i∈[1,j-1]或者i∈[j+1,N]时,得到di=di;
若j>n,则ins<deln,保持地址值为N-1的地址到地址值为N-n+1的地址处的数据不变,同时保持地址值为N-j-1的地址到地址为值0的地址处的数据也不变,即i∈[1,n-1]或者i∈[j+1,N]时,得到di=di;
若j>n,则ins<deln,将地址值为N-n-1的地址到地址值为N-j的地址处的数据依次左移,得到地址值为N-n的地址到地址值为N-j+1的地址处的结果,即i∈[n,j-1]时,得到di=di+1;
若j<n,则ins>deln,保持地址值为N-1的地址到地址值为N-j+1的地址处的数据不变,同时保持地址值为N-n-1的地址到地址值为0的地址处的数据也不变,即i∈[1,j-1]或者i∈[n+1,N]时,得到di=di;
若j<n,则ins>deln,将地址值为N-j的地址到地址值为N-n+1的地址处的数据依次右移,得到地址值为N-j-1的地址到地址值为N-n的地址处的结果,即i∈[j+1,n]时,得到di=di-1。
以上仅是本发明的一个具体实例,不构成对本发明的任何限制,显然,在对本发明的构思下,可以进行不同程度的变更,但这些均在本发明的保护之列。
Claims (4)
1.一种并行排序电路,包括比较单元、控制单元以及输出单元,比较单元将新输入的待排序数据和已排序数据以及设定的数据的最大值进行比较,得到比较结果{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;
若ins<hi,del<hi,则gi=hi;
若ins<=hi,del>hi,则gi=hi+1;
若ins>=hi,del<hi,则gi=hi-1。
2.根据权利要求1所述的并行排序电路,其特征在于,输出单元包含N个多路选择器和N个寄存器,N为排序数据的个数;
所述N个多路选择器,其每个多路选择器的控制信号相同,均为插入地址ins和删除地址del;其每个多路选择器输入、输出信号不同,即第一个多路选择器的输入信号为待排序数据din、第一个寄存器的输出信号d1和第二个寄存器的输出信号d2共三个信号,第一个多路选择器的输出信号记为m1;第i个多路选择器的输入信号为待排序数据din、第i-1个寄存器的输出信号di-1、第i个寄存器的输出信号di和第i+1个寄存器的输出信号di+1共四个信号,第i个多路选择器的输出信号记为mi,i的取值范围为[2,N-1];第N个多路选择器的输入信号为待排序数据din、第N-1个寄存器的输出信号dN-1和第N个寄存器的输出信号dN共三个信号,第N个多路选择器的输出信号记为mN;
所述的N个寄存器,其每个寄存器的输入、输出信号不同,即第j个寄存器的输入信号为第j个多路选择器的输出信号mj,第j个寄存器的输出信号记为dj,j的取值范围为[1,N]。
3.一种并行排序方法,包括:
1)初始化步骤:
初始化删除地址del=0;初始化第i个中间删除地址hi=N-i,i的取值范围为[1,N-1];初始化已排序数据dj=0,j的取值范围为[1,N];
2)数据大小比较步骤:
将每个时钟周期输入的待排序数据与已排序数据以及设定的数据的最大值进行比较,若待排序数据小于或者等于已排序数据,则ci=1,否则,ci=0;若待排序数据小于或者等于设定的数据的最大值,则cN+1=1,否则,cN+1=0,得到比较结果{c1,c2,…,ci,…,cN,cN+1},N为排序数据的个数,ci为待排序数据与N个已排序数据的比较结果,cN+1为待排序数据与设定的数据的最大值的比较结果,i的取值范围为[1,N];
3)插入地址产生步骤
3a)利用删除地址del和比较结果{c1,c2,…,ci,…,cN,cN+1},产生标志信号flag,若del=N-i,则flag={c1,c2,…,ci-1,ci+1,…,cN,cN+1},i的取值范围为[1,N];
3b)利用标志信号flag作为控制信号进行编码,若flag所有位中1的个数为k+1,则插入地址ins=k,k的取值范围为[0,N-1];
4)删除地址产生步骤:
同时进行以下三个操作:
寄存插入地址ins,得到第一个中间删除地址dr1;
将第i个中间删除地址hi分别与插入地址ins和删除地址del比较,i的取值范围为[1,N-1],利用比较的结果作为控制信号产生第j个中间插入地址gj;寄存第j个中间插入地址gj,得到第j+1个中间删除地址hj+1,j的取值范围为[1,N-2],j=i;
将第N-1个中间删除地址hN-1分别与插入地址ins和删除地址del比较,利用比较的结果产生第N-1个中间插入地址gN-1;寄存第N-1个中间插入地址gN-1,得到更新的删除地址的值deln;
5)排序结果输出步骤
设插入地址ins=N-j,更新后的删除地址deln=N-n,i、j和n表示已排序数据的序号,其取值范围均为[1,N];根据插入地址ins和更新后的删除地址deln的值,确定已排序数据di的移位方式,将待排序数据din插入到相应的位置,得到如下排序结果:
当i=j时,将待排序数据插入到地址值为N-j的地址处,即di=din;
当i≠j时,需要根据j和n的大小确定di的结果,具体判断方法如下:
若j=n,则ins=del,使地址值不等于N-j的地址处的数据都保持不变,即i∈[1,j-1]或者i∈[j+1,N]时,得到di=di;
若j>n,则ins<del,保持地址值为N-1的地址到地址值为N-n+1的地址处的数据不变,同时保持地址值为N-j-1的地址到地址为值0的地址处的数据也不变,即i∈[1,n-1]或者i∈[j+1,N]时,得到di=di;
若j>n,则ins<del,将地址值为N-n-1的地址到地址值为N-j的地址处的数据依次左移,得到地址值为N-n的地址到地址值为N-j+1的地址处的结果,即i∈[n,j-1]时,得到di=di+1;
若j<n,则ins>del,保持地址值为N-1的地址到地址值为N-j+1的地址处的数据不变,同时保持地址值为N-n-1的地址到地址值为0的地址处的数据也不变,即i∈[1,j-1]或者i∈[n+1,N]时,得到di=di;
若j<n,则ins>del,将地址值为N-j的地址到地址值为N-n+1的地址处的数据依 次右移,得到地址值为N-j-1的地址到地址值为N-n的地址处的结果,即i∈[j+1,n]时,得到di=di-1。
4.根据权利要求书3所述的并行排序方法,其特征在于,步骤4)所述的将第N-1个中间删除地址drN-1分别与插入地址ins和删除地址del比较,按如下方式进行:
若ins>hN-1,del>hN-1,则gN-1=hN-1;
若ins<hN-1,del<hN-1,则gN-1=hN-1;
若ins<=hN-1,del>hN-1,则gN-1=hN-1+1;
若ins>=hN-1,del<hN-1,则gN-1=hN-1-1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310007732.9A CN103019646B (zh) | 2013-01-09 | 2013-01-09 | 并行排序电路及并行排序方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310007732.9A CN103019646B (zh) | 2013-01-09 | 2013-01-09 | 并行排序电路及并行排序方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103019646A true CN103019646A (zh) | 2013-04-03 |
CN103019646B CN103019646B (zh) | 2015-09-30 |
Family
ID=47968289
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310007732.9A Expired - Fee Related CN103019646B (zh) | 2013-01-09 | 2013-01-09 | 并行排序电路及并行排序方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103019646B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103544012A (zh) * | 2013-10-24 | 2014-01-29 | 杭州安恒信息技术有限公司 | 一种数列相位差比较差别的方法 |
CN105512179A (zh) * | 2015-11-25 | 2016-04-20 | 中国科学院计算技术研究所 | 硬件实现的数据排序装置、方法及数据处理芯片 |
CN109766074A (zh) * | 2018-12-05 | 2019-05-17 | 西安电子科技大学 | 一种数据排序电路及排序方法 |
CN112015366A (zh) * | 2020-07-06 | 2020-12-01 | 中科驭数(北京)科技有限公司 | 数据排序方法、数据排序装置及数据库系统 |
CN112486454A (zh) * | 2019-09-12 | 2021-03-12 | 北京华航无线电测量研究所 | 一种基于fpga的序列多峰值搜索排序装置 |
CN117687957A (zh) * | 2024-02-04 | 2024-03-12 | 中国人民解放军海军航空大学 | 一种基于FPGA的Top-k信息处理引擎及其排序方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109460210B (zh) * | 2018-10-22 | 2020-11-03 | 重庆中科云从科技有限公司 | 排序系统及数据处理方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0965909A2 (en) * | 1998-06-19 | 1999-12-22 | Mitsubishi Denki Kabushiki Kaisha | Merge sorting apparatus with comparison nodes connected in tournament tree shape |
CN101568900A (zh) * | 2006-12-22 | 2009-10-28 | 日本电气株式会社 | 并行排序装置、方法及程序 |
-
2013
- 2013-01-09 CN CN201310007732.9A patent/CN103019646B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0965909A2 (en) * | 1998-06-19 | 1999-12-22 | Mitsubishi Denki Kabushiki Kaisha | Merge sorting apparatus with comparison nodes connected in tournament tree shape |
CN101568900A (zh) * | 2006-12-22 | 2009-10-28 | 日本电气株式会社 | 并行排序装置、方法及程序 |
Non-Patent Citations (1)
Title |
---|
魏凤歧: "一种BCA结构形式的硬件排序电路模型", 《内蒙古大学学报(自然科学版)》, vol. 31, no. 6, 15 November 2000 (2000-11-15), pages 641 - 644 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103544012A (zh) * | 2013-10-24 | 2014-01-29 | 杭州安恒信息技术有限公司 | 一种数列相位差比较差别的方法 |
CN103544012B (zh) * | 2013-10-24 | 2017-04-26 | 杭州安恒信息技术有限公司 | 一种数列相位差比较差别的方法 |
CN105512179A (zh) * | 2015-11-25 | 2016-04-20 | 中国科学院计算技术研究所 | 硬件实现的数据排序装置、方法及数据处理芯片 |
WO2017088455A1 (zh) * | 2015-11-25 | 2017-06-01 | 中国科学院计算技术研究所 | 硬件实现的数据排序装置、方法及数据处理芯片 |
CN109766074A (zh) * | 2018-12-05 | 2019-05-17 | 西安电子科技大学 | 一种数据排序电路及排序方法 |
CN112486454A (zh) * | 2019-09-12 | 2021-03-12 | 北京华航无线电测量研究所 | 一种基于fpga的序列多峰值搜索排序装置 |
CN112015366A (zh) * | 2020-07-06 | 2020-12-01 | 中科驭数(北京)科技有限公司 | 数据排序方法、数据排序装置及数据库系统 |
CN117687957A (zh) * | 2024-02-04 | 2024-03-12 | 中国人民解放军海军航空大学 | 一种基于FPGA的Top-k信息处理引擎及其排序方法 |
CN117687957B (zh) * | 2024-02-04 | 2024-04-23 | 中国人民解放军海军航空大学 | 一种基于FPGA的Top-k信息处理引擎及其排序方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103019646B (zh) | 2015-09-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103019646B (zh) | 并行排序电路及并行排序方法 | |
Bertossi et al. | Some parallel algorithms on interval graphs | |
CN103440246A (zh) | 用于MapReduce的中间结果数据排序方法及系统 | |
US20180341487A1 (en) | Sequence alignment method of vector processor | |
WO2021021300A1 (en) | Distributed training for deep learning models | |
CN103955410A (zh) | 基于多中断源优先级排序的中断控制方法 | |
WO2003091872A1 (fr) | Dispositif de tri par fusion en parallele, procede et programme y relatifs | |
CN113642264B (zh) | 基于遗传算法的排样方法及装置 | |
CN104809161B (zh) | 一种对稀疏矩阵进行压缩和查询的方法及系统 | |
CN103995827B (zh) | MapReduce计算框架中的高性能排序方法 | |
CN105404728B (zh) | 一种基于fpga芯片多控制信号的布局方法 | |
CN105827603A (zh) | 未明协议特征库建立方法、未明报文分类方法及相关装置 | |
CN106775573A (zh) | 一种基于fpga的潜在目标排序方法 | |
CN112015366B (zh) | 数据排序方法、数据排序装置及数据库系统 | |
CN102207935A (zh) | 用于创建索引的方法和系统 | |
CN104899476A (zh) | 一种对多序列bwt索引构建进行并行加速的方法 | |
CN104537003A (zh) | 一种Hbase数据库的通用高性能数据写入方法 | |
CN104036141B (zh) | 一种基于OpenCL的红黑树加速方法 | |
CN105573855A (zh) | 一种用于故障树决策图分析的模块化事件排序方法 | |
CN106843803A (zh) | 一种基于归并树的全排序加速器及应用 | |
WO2016114009A1 (ja) | 融合遺伝子解析装置、融合遺伝子解析方法、及びプログラム | |
JP4310500B2 (ja) | 重要成分優先計算方式ならびに装置 | |
CN103761298A (zh) | 一种基于分布式架构的实体匹配方法 | |
Shi et al. | An enhanced multiway sorting network based on n-sorters | |
CN106471558B (zh) | 矩阵生成装置及矩阵生成方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150930 Termination date: 20200109 |
|
CF01 | Termination of patent right due to non-payment of annual fee |