恒定时间排序装置、方法、系统、电子设备和介质制造方法及图纸

技术编号:35528301 阅读:29 留言:0更新日期:2022-11-09 14:50
本发明专利技术提出了一种恒定时间排序装置,应用于数据处理技术领域,包括:存储单元,用于存储待处理数据,该待处理数据包括第一部分数据和第二部分数据;第一FIFO用于读取该第一部分数据,第二FIFO用于读取该第二部分数据;该排序单元,用于在首次迭代的情况下对该第一部分数据和该第二部分数据分别进行内部排序,在非首次迭代的情况下利用归并排序法,将该第一部分数据与该第二部分数据进行排序,得到多个中间结果,并将多个该中间结果作为该待处理数据输入该存储单元,直至得到最终排序结果。本发明专利技术还提出了一种恒定时间排序方法、系统、电子设备及存储介质,可降低资源占用率,减少计算时长。长。长。

【技术实现步骤摘要】
恒定时间排序装置、方法、系统、电子设备和介质


[0001]本专利技术涉及数据处理
,尤其涉及一种恒定时间排序装置、方法、系统、电子设备和介质。

技术介绍

[0002]McEliece是NIST征集的后量子密码算法第三轮竞赛中存活的唯一一个基于编码的密钥封装协议。对于McEliece而言,密钥生成的速度要比加封以及解封慢成百上千倍,因此如果能够加快密钥生成阶段的速度,对于McEliece的广泛应用具有重要意义。
[0003]而恒定时间排序是McEliece的主要计算瓶颈,现有技术对与恒定时间排序的资源占用率高、计算时间也较长。

技术实现思路

[0004]本专利技术的主要目的在于提供一种恒定时间排序装置、方法、系统、电子设备和介质。
[0005]为实现上述目的,本专利技术实施例第一方面提供一种恒定时间排序装置,包括:
[0006]存储单元,先入先出存储器FIFO和排序单元;
[0007]所述存储单元,用于存储待处理数据,所述待处理数据包括第一部分数据和第二部分数据,所述第一部分数据中元素的数量等于所述第二部分数据中元素的数量;
[0008]所述FIFO包括第一FIFO和第二FIFO,所述第一FIFO用于读取所述第一部分数据,所述第二FIFO用于读取所述第二部分数据;
[0009]所述排序单元,用于在首次迭代的情况下对所述第一部分数据和所述第二部分数据分别进行内部排序,在非首次迭代的情况下利用归并排序法,将所述第一部分数据与所述第二部分数据进行排序,得到多个中间结果,并将多个所述中间结果作为所述待处理数据输入所述存储单元,直至得到最终排序结果;
[0010]其中,每次迭代后的所述中间结果中元素的数量为前一次迭代后的所述中间结果中元素的数量的二倍。
[0011]在本专利技术一实施例中,所述存储单元包括:
[0012]第一存储单元,包括第一存储子单元和第二存储子单元,所述第一存储子单元用于存储用于奇数次迭代的所述第一部分数据,所述第二存储子单元用于存储用于奇数次迭代的所述第二部分数据;
[0013]第二存储单元,包括第三存储子单元和第四存储子单元,所述第三存储子单元用于存储用于偶数次迭代的所述第一部分数据,所述第四存储子单元用于存储用于偶数次迭代时所述第二部分数据。
[0014]在本专利技术一实施例中,所述恒定时间排序装置还包括:
[0015]至少一个第一保持寄存器,所述第一保持寄存器的数量与所述第一FIFO中队列的数量相同,至少一个所述第一保持寄存器与所述第一FIFO中队列一一对应,所述第一保持
寄存器用于在所述第一保持寄存器有效的情况下,禁止所述第一FIFO中对应队列的元素出队;
[0016]至少一个第二保持寄存器,所述第二保持寄存器的数量与所述第二FIFO中队列的数量相同,至少一个所述第二保持寄存器与所述第二FIFO中队列一一对应,所述第二保持寄存器用于在所述第二保持寄存器有效的情况下,禁止所述第二FIFO中对应队列的元素出队。
[0017]在本专利技术一实施例中,所述第一FIFO和所述第二FIFO均包括N个队列,N为大于0的整数,所述恒定时间排序装置还包括:
[0018]偏置单元,用于在每次进行排序时所述第一部分数据包括的一中间结果的每个元素在所述第一FIFO的对应队列中均已出队的情况下将所述对应队列的第一保持寄存器置为有效,在每次进行排序时所述第二部分数据包括的一中间结果的每个元素在所述第二FIFO的对应队列中均已出队的情况下将所述对应队列的第二保持寄存器置为有效,以及,在所述第一保持寄存器和所述第二保持寄存器均为有效的情况下将所述第一保持寄存器和所述第二保持寄存器均置为无效。
[0019]在本专利技术一实施例中,所述恒定时间排序装置还包括:
[0020]第一处理模块,用于在每次所述第一FIFO的所有队列发生同一长度位置的元素均出队的情况下,将所述第一FIFO的有效深度减去一,得到当前第一有效深度,判断所述当前第一有效深度是否低于预设阈值,若所述当前第一有效深度低于所述预设阈值,则读取所述存储单元中的所述待处理数据,所述同一地址指元素在队列中的地址相同;
[0021]第二处理模块,用于在每次所述第二FIFO的所有队列发生同一长度位置的元素均出队的情况下,将所述第二FIFO的有效深度减去一,得到当前第二有效深度,判断所述当前第二有效深度是否低于所述预设阈值,若所述当前第二有效深度低于所述预设阈值,则读取所述存储单元中的所述待处理数据;
[0022]其中,所述有效深度指示所述队列的长度。
[0023]在本专利技术一实施例中,所述排序单元包括:
[0024]比较子单元,用于将所述第一FIFO中所有队列的队头元素与所述第二FIFO中所有队列的队头元素按照指定元素配对关系进行配对比较大小,从所述第一FIFO或所述第二FIFO拿取较小的元素,得到较小元素组;
[0025]排序子单元,用于将所述较小元素组中的所有元素按照大小进行先后排序,得到中间结果。
[0026]在本专利技术一实施例中,所述指定元素配对关系包括:
[0027]所述第一FIFO的第m个队列的队头元素和所述第二FIFO的第n个队列的队头元素配对;
[0028]其中,m+n=N+1,m和n均为正整数。
[0029]本专利技术实施例第二方面提供一种写入待处理数据,所述待处理数据包括第一部分数据和第二部分数据,所述第一部分数据中元素的数量等于第二部分数据中元素的数量;
[0030]利用第一FIFO读取所述第一部分数据,以及,利用第二FIFO读取所述第二部分数据;
[0031]在首次迭代的情况下对所述第一部分数据和所述第二部分数据分别进行内部排
序,在非首次迭代的情况下利用归并排序法,将所述第一部分数据与所述第二部分数据进行排序,得到多个中间结果,并将多个所述中间结果作为所述待处理数据,执行所述写入待处理数据的操作,直至得到最终排序结果;
[0032]其中,每次迭代后的所述中间结果中元素的数量为前一次迭代后的所述中间结果中元素的数量的二倍。
[0033]在本专利技术一实施例中,所述写入待处理数据包括:
[0034]在奇数次迭代的情况下,将所述第一部分数据存储至第一输入存储子单元,以及,将所述第二部分数据存储至第二输入存储子单元;
[0035]在偶数次迭代的情况下,将所述第一部分数据存储至第三输入存储子单元,以及,将所述第二部分数据存储至第四输入存储子单元。
[0036]在本专利技术一实施例中,所述方法还包括:
[0037]在每次进行排序时所述第一部分数据包括的一中间结果的所有元素在所述第一FIFO中的某一队列均已出队的情况下将所述第一保持寄存器置为有效;
[0038]在每次进行排序时所述第二部分数据包括的一中间结果的所有元素在所述第二FIFO中的某一队列均已出队的情况下将所述第二保持寄存器置为有效;
[0039]在所述第一保持寄存器本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种恒定时间排序装置,其特征在于,包括:存储单元,先入先出存储器FIFO和排序单元;所述存储单元,用于存储待处理数据,所述待处理数据包括第一部分数据和第二部分数据,所述第一部分数据中元素的数量等于所述第二部分数据中元素的数量;所述FIFO包括第一FIFO和第二FIFO,所述第一FIFO用于读取所述第一部分数据,所述第二FIFO用于读取所述第二部分数据;所述排序单元,用于在首次迭代的情况下对所述第一部分数据和所述第二部分数据分别进行内部排序,在非首次迭代的情况下利用归并排序法,将所述第一部分数据与所述第二部分数据进行排序,得到多个中间结果,并将多个所述中间结果作为所述待处理数据输入所述存储单元,直至得到最终排序结果;其中,每次迭代后的所述中间结果中元素的数量为前一次迭代后的所述中间结果中元素的数量的二倍。2.根据权利要求1所述的恒定时间排序装置,其特征在于,所述存储单元包括:第一存储单元,包括第一存储子单元和第二存储子单元,所述第一存储子单元用于存储用于奇数次迭代的所述第一部分数据,所述第二存储子单元用于存储用于奇数次迭代的所述第二部分数据;第二存储单元,包括第三存储子单元和第四存储子单元,所述第三存储子单元用于存储用于偶数次迭代的所述第一部分数据,所述第四存储子单元用于存储用于偶数次迭代时所述第二部分数据。3.根据权利要求1所述的恒定时间排序装置,其特征在于,所述恒定时间排序装置还包括:至少一个第一保持寄存器,所述第一保持寄存器的数量与所述第一FIFO中队列的数量相同,至少一个所述第一保持寄存器与所述第一FIFO中队列一一对应,所述第一保持寄存器用于在所述第一保持寄存器有效的情况下,禁止所述第一FIFO中对应队列的元素出队;至少一个第二保持寄存器,所述第二保持寄存器的数量与所述第二FIFO中队列的数量相同,至少一个所述第二保持寄存器与所述第二FIFO中队列一一对应,所述第二保持寄存器用于在所述第二保持寄存器有效的情况下,禁止所述第二FIFO中对应队列的元素出队。4.根据权利要求3所述的恒定时间排序装置,其特征在于,所述第一FIFO和所述第二FIFO均包括N个队列,N为大于0的整数,所述恒定时间排序装置还包括:偏置单元,用于在每次进行排序时所述第一部分数据包括的一中间结果的每个元素在所述第一FIFO的对应队列中均已出队的情况下将所述对应队列的第一保持寄存器置为有效,在每次进行排序时所述第二部分数据包括的一中间结果的每个元素在所述第二FIFO的对应队列中均已出队的情况下将所述对应队列的第二保持寄存器置为有效,以及,在所述第一保持寄存器和所述第二保持寄存器均为有效的情况下将所述第一保持寄存器和所述第二保持寄存器均置为无效。5.根据权利要求1至4任意一项所述的恒定时间排序装置,其特征在于,所述恒定时间排序装置还包括:第一处理模块,用于在每次所述第一FIFO的所有队列发生同一长度位置的元素均出队的情况下,将所述第一FIFO的有效深度减去一,得到当前第一有效深度,判断所述当前第一
有效深度是否低于预设阈值,若所述当前第一有效深度低于所述预设阈值,则读取所述存储单元中的所述待处理数据,所述同一地址指元素在队列中的地址相同;第二处理模块,用于在每次所述第二FIFO的所有队列发生同一长度位置的元素均出队的情况下,将所述第二FIFO的有效深度减去一,得到当前第二有效深度,判断所述当前第二有效深度是否低于所述预设阈值,若所述当前第二有效深度低于所述预设阈值,则读取所述存储单元中的所述待处理数据;其中,所述有效深度指示所述队列的长度。6.根据权利要求5所述的恒定时间排序装置,其特征在于,所述排序单元包括:比较子单元,用于将所述第一FIFO中所有队列的队头元素与所述第二FIFO中所有队列的队头元素按照指定元素配对关系进行配对比较大小,从所述第一FIFO或所述第二FIFO拿取较小的元素,得到较小元素组;排序子单元,用于将所述较小元素组中的所有元素按照大小进行先后排序,得到中间结果。7.根据权利要求6所述的恒定时间排序装置,其特征在于,所述指定元素配对关系包括:所述第一FIFO的第m个队列的队头元素和所述第二FIFO的第n个队列的队头元素配对;其中,m+n=N+1,m和n均为正整数。8.一种恒定时间...

【专利技术属性】
技术研发人员:刘雷波朱益宏朱文平魏少军
申请(专利权)人:清华大学无锡应用技术研究院
类型:发明
国别省市:

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

1