发明名称 实现并行数据排序的硬件电路及方法
摘要 本发明公开了一种实现并行数据排序的硬件电路及方法。将n个寄存器中每相邻两个单元编为一组,从编号为0的单元开始;对同一组内的两个单元中的数据进行比较,并将数值比较小的数据存储于编号较小的单元内,而值比较大的数据存储于编号较大的单元内;将编号为0的单元单独编为一组,从编号为1的单元开始将寄存器A中每相邻两个单元编为一组;对同一组内的两个单元中的数据进行比较,并将数值比较小的数据存储于编号较小的单元内,数值比较大的数据存储于编号较大的单元内;重复以上操作n次。采用本发明的上述电路及方法,极大的缩短了硬件排序所需周期数,可以实现在n个时钟周期内完成对n个数据的排序。
申请公布号 CN100578441C 申请公布日期 2010.01.06
申请号 CN200810035663.1 申请日期 2008.04.03
申请人 启攀微电子(上海)有限公司 发明人 姚炜;王传芳;程剑涛;余维学
分类号 G06F7/76(2006.01)I 主分类号 G06F7/76(2006.01)I
代理机构 上海智信专利代理有限公司 代理人 缪利明;周 琪
主权项 1、一种实现并行数据排序的硬件电路,其特征在于,包括:多个寄存器单元,每个寄存器单元具有两个数据输入端口i0、i1,一个数据选择端口Sel以及一个数据输出端口;当数据选择端口Sel为0时寄存器单元选择锁存端口i1的数据,而当数据选择端口Sel为1时寄存器单元选择锁存端口i0的数据;多个比较器单元,每个比较器单元有三个数据输入端口I0、I1、I2,一个数据选择端口Se以及两个数据输出端口L、S;当数据选择端口Se为0时,该比较器单元比较数据输入端口i0和i1的数据并将其中的大值输出到端口L上,而小值输出到端口S;当数据选择端口Se为1时,该比较器单元比较数据输入端口i1和i2的数据并将其中的大值输出到端口L,而小值输出到端口S;以及周期计数器,与所有寄存器单元的数据选择端口Sel以及所有比较器单元的数据选择端口Se分别相连;编号为k的比较器单元的三个数据输入端口I0、I1、I2通常分别与编号分别为2k、2k+1和2k+2的三个寄存器单元相连,仅当寄存器单元个数为偶数时,最后一个比较器单元只与两个寄存器单元相连,其I0端口与倒数第二个寄存器单元的数据输出端口相接,I1、I2端口都与最后一个寄存器单元的数据输出端口相接;所述比较器单元数据输出端口S与和该比较器单元相连的编号最小的寄存器单元的端口i1和编号次小的寄存器单元的端口i0相连,而端口L与和该比较器单元相连的编号次小的寄存器单元的端口i1和编号最大的寄存器单元的端口i0相连;对于编号为0的寄存器单元,其数据输入端口i0、i1都与编号为0的比较器单元的S端相连;如果寄存器单元个数为偶数,则最后一个比较器单元的输出端口L仅与编号次小的寄存器单元的端口i1相连;如果寄存器单元个数为奇数,则最后一个寄存器单元的数据输入端口i0与i1都与编号最大的比较器单元的L端相连。
地址 201103上海市宜山路1618号D栋4楼