CN111949241A - 排序装置 - Google Patents

排序装置 Download PDF

Info

Publication number
CN111949241A
CN111949241A CN201910400504.5A CN201910400504A CN111949241A CN 111949241 A CN111949241 A CN 111949241A CN 201910400504 A CN201910400504 A CN 201910400504A CN 111949241 A CN111949241 A CN 111949241A
Authority
CN
China
Prior art keywords
sorting
value
values
round
circuits
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
Application number
CN201910400504.5A
Other languages
English (en)
Other versions
CN111949241B (zh
Inventor
茆文艺
李辉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Realtek Semiconductor Corp
Original Assignee
Realtek Semiconductor Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Realtek Semiconductor Corp filed Critical Realtek Semiconductor Corp
Priority to CN201910400504.5A priority Critical patent/CN111949241B/zh
Priority to TW108119268A priority patent/TWI730335B/zh
Priority to US16/869,883 priority patent/US11775255B2/en
Publication of CN111949241A publication Critical patent/CN111949241A/zh
Application granted granted Critical
Publication of CN111949241B publication Critical patent/CN111949241B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/22Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
    • G06F7/24Sorting, i.e. extracting data from one or more carriers, rearranging the data in numerical or other ordered sequence, and rerecording the sorted data on the original carrier or on a different carrier or set of carriers sorting methods in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/22Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
    • G06F7/36Combined merging and sorting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9035Filtering based on additional data, e.g. user or group profiles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/906Clustering; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/06Arrangements for sorting, selecting, merging, or comparing data on individual record carriers
    • G06F7/08Sorting, i.e. grouping record carriers in numerical or other ordered sequence according to the classification of at least some of the information they carry

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Computational Linguistics (AREA)
  • Image Processing (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Complex Calculations (AREA)

Abstract

一种排序装置,用来对一初始顺序的N个值依序执行N轮的排序处理,以依序得到N轮的排序结果,该N轮的排序处理的每一轮对该N个值的复数对数值同时进行排序,该N轮的排序处理的第K轮排序处理相依于该N轮的排序结果的第(K‑1)轮排序结果,当该K等于一时,该第(K‑1)轮排序结果为该初始顺序的该N个值,该N轮的排序结果的第N轮排序结果为该N个值的大小顺序,该N为不小于三的整数。该排序装置包含复数个排序电路与复数个复制电路,选择性地被用于该N轮的排序处理的每一轮;该些排序电路的每一个用来排序二数值;该些复制电路的每一个用来输出一输入数值作为一输出数值。

Description

排序装置
技术领域
本发明是关于排序装置,尤其是关于能够实现并行运算的排序装置。
背景技术
一般的排序算法(例如:冒泡排序)有很强的依赖性,这种排序演算法的硬体电路难以实现并行运算。考虑到高速电路的应用,本领域需要能够实现并行运算且结构不复杂的排序电路。
发明内容
本发明的一目的在于提供一种能够实现并行运算且结构不复杂的排序装置。
本发明的排序装置的一实施例用来对一初始顺序的N个值依序执行N轮的排序处理包含一第一轮排序处理至一第N轮排序处理,以依序得到N轮的排序结果包含一第一轮排序结果至一第N轮排序结果,其中该N轮的排序处理的每一轮对该N个值的复数对数值同时进行排序,该第N轮排序结果为该N个值的大小顺序,该N为不小于三的整数。该实施例包含X个排序电路与Y个复制电路,该X为不小于
Figure BDA0002059592540000011
的整数,该Y为不小于一的整数。该X个排序电路的每一个用来排序二数值,以得到该二数值的大小顺序。该Y个复制电路的每一个用来将一输入数值作为一输出数值。该X个排序电路与该Y个复制电路选择性地被用于该N轮的排序处理的一轮。
本发明的排序装置的另一实施例用来对一初始顺序的N个值依序执行N轮的排序处理包含一第一轮排序处理至一第N轮排序处理,以依序得到N轮的排序结果包含一第一轮排序结果至一第N轮排序结果,其中该N轮的排序处理的每一轮对该N个值的复数对数值同时进行排序,该第N轮排序结果为该N个值的大小顺序,该N为不小于四的偶数。该实施例包含复数个排序电路与复数个复制电路。该复数个排序电路用来按照该N轮的排序结果的一第(K-1)轮排序结果来排序该N个值中的
Figure BDA0002059592540000021
组值,以得到该N轮的排序结果的一第K轮排序结果包含一第K轮最高排序值与一第K轮最低排序值;该复数个排序电路另用来按照该第K轮排序结果来排序该N个值中除了该第K轮最高排序值与该第K轮最低排序值以外的
Figure BDA0002059592540000022
组值,以得到该N轮的排序结果的一第(K+1)轮排序结果除了该第K轮最高排序值与该第K轮最低排序值;该
Figure BDA0002059592540000023
组值与该
Figure BDA0002059592540000024
组值的每一组值包含该N个值中的二个值;于该N轮的排序处理的每一轮中,该复数个排序电路的任二个的排序对象不同;该K为介于(N-1)与一之间的一奇数或一偶数,当该K等于一时,该第(K-1)轮排序结果为该初始顺序的该N个值。该复数个复制电路用来复制该第K轮最高排序值作为该第(K+1)轮排序结果的一第(K+1)轮最高排序值;该复数个复制电路另用来复制该第K轮最低排序值作为该第(K+1)轮排序结果的一第(K+1)轮最低排序值。
本发明的排序装置的另一实施例用来对一初始顺序的N个值依序执行N轮的排序处理包含一第一轮排序处理至一第N轮排序处理,以依序得到N轮的排序结果包含一第一轮排序结果至一第N轮排序结果,其中该N轮的排序处理的每一轮对该N个值的复数对数值同时进行排序,该第N轮排序结果为该N个值的大小顺序,该N为不小于三的奇数。该实施例包含复数个排序电路与复数个复制电路。该复数个排序电路用来于该N轮的排序处理的一第K轮排序处理中,按照该N轮的排序结果的一第(K-1)轮排序结果来排序该N个值中除了一第一值以外的
Figure BDA0002059592540000025
组值,以得到该N轮的排序结果的一第K轮排序结果除了该第一值;该复数个排序电路另用来于该N轮的排序处理的一第(K+1)轮排序处理中,按照该第K轮排序结果来排序该N个值中除了一第二值以外的
Figure BDA0002059592540000026
组值,以得到该N轮的排序结果的一第(K+1)轮排序结果除了该第二值;于该第K轮排序处理与该第(K+1)轮排序处理中,该
Figure BDA0002059592540000027
组值的每一组值包含该N个值中的二个值;于该N轮的排序处理的每一轮中,该复数个排序电路的任二个的排序对象不同;该K为介于(N-1)与一之间的一奇数或一偶数,当该K等于一时,该第(K-1)轮排序结果为该初始顺序的该N个值。该复数个复制电路用来复制该第一值作为该第K轮排序结果的一第K轮最高排序值与一第K轮最低排序值的其中之一,以及用来复制该第二值作为该第(K+1)轮排序结果的一第(K+1)轮最高排序值与一第(K+1)轮最低排序值的其中之一;当该第一值作为该第K轮最高排序值时,该第二值为该第K轮最低排序值作为该第(K+1)轮最低排序值;当该第一值作为该第K轮最低排序值时,该第二值为该第K轮最高排序值作为该第(K+1)轮最高排序值。
有关本发明的特征、实作与功效,兹配合图式作较佳实施例详细说明如下。
附图说明
[图1]显示本发明的排序装置的一实施例;
[图2]显示图1的每个排序电路的一实施例;
[图3]显示图1的排序装置排序偶数个值的一范例;
[图4]显示图1的排序装置排序偶数个值的另一范例;
[图5]显示图1的排序装置排序奇数个值的一范例;
[图6]显示图1的排序装置排序奇数个值的另一范例;
[图7]显示图1的排序装置的一实作范例;
[图8]显示图1的排序装置的另一实作范例;
[图9]显示图8的排序装置排序偶数个值的一范例;以及
[图10]显示图8的排序装置排序偶数个值的另一范例。
符号说明:
100 排序装置
110 排序电路
120 复制电路
IN1至INN 初始顺序的N个值
OUT1至OUTN 第N轮排序结果
210 比较电路
220 第一选择电路
230 第二选择电路
A、B 数值
P A与B中的较大值,或A与B的其中之一(当A=B)
Q A与B中的较小值,或A与B的其中之一(当A=B)
A0至F0/E0 初始顺序的输入值
A1至F1/E1 第一轮排序结果
A2至F2/E2 第二轮排序结果
A3至F3/E3 第三轮排序结果
A4至F4/E4 第四轮排序结果
A5至F5/E5 第五轮排序结果
A6至F6 第六轮排序结果
Figure BDA0002059592540000041
排序电路的排序作业
→ 复制电路的复制作业
710 第一轮处理电路
720 第二轮处理电路
790 第N轮处理电路
800 处理电路
810 选择电路
820 控制电路
IN1(M-1)至INN(M-1) 第(M-1)轮排序结果
912 第一组排序电路
914 第二组排序电路
922、924 复制电路
AK至FK 各轮排序处理的输入值
AK+1至FK+1 各轮排序处理的输出值
具体实施方式
图1显示本发明的排序装置的一实施例。图1的排序装置100用来对一初始顺序的N个值(例如:IN1至INN)依序执行N轮的排序处理包含一第一轮排序处理至一第N轮排序处理,以依序得到N轮的排序结果包含一第一轮排序结果至一第N轮排序结果,其中该N轮的排序处理的每一轮对该N个值的复数对数值同时进行排序,该第N轮排序结果(例如:图1的OUT1至OUTN)为该N个值的大小顺序(例如:递减/递增顺序),该N为不小于三的整数。简言之,排序装置100仅需执行该N轮的排序处理,就能得到该N个值的大小顺序;相较之下,先前技术的冒泡排序(bubble sort)须执行
Figure BDA0002059592540000051
次的排序处理方能得到该N个值的大小顺序。
请参阅图1。排序装置100包含X个排序电路110与Y个复制电路120。X个排序电路110的每一个用来排序二数值,以得到该二数值的大小顺序,该X为不小于N/2的整数;Y个复制电路120的每一个用来将一输入数值作为一输出数值,该Y为不小于一的整数。X个排序电路110的每一个的一实施例如图2所示,包含:一比较电路210,用来判断数值A是否大于或等于数值B(亦即:判断是否A≥B)以产生一比较结果(例如:1(当A≥B)或0(当A<B));一第一选择电路220,用来依据该比较结果输出该二数值A、B中的较大值作为输出值P,或输出A与B的其中之一(例如:A)作为输出值P(当A=B);以及一第二选择电路230,用来依据该比较结果输出该二数值A、B中的较小值作为输出值Q,或输出A与B的其中之一(例如:B)作为输出值Q(当A=B)。值得注意的是,于一替代实施例中,图2的比较电路210用来判断数值A是否大于数值B(亦即:判断是否A>B)以产生一比较结果(例如:1(当A>B)或0(当A≤B));图2的第一选择电路220用来依据该比较结果输出该二数值A、B中的较小值作为输出值P,或输出A与B的其中之一(例如:A)作为输出值P(当A=B);以及图2的第二选择电路230用来依据该比较结果输出该二数值A、B中的较大值作为输出值Q,或输出A与B的其中之一(例如:B)作为输出值Q(当A=B)。另外,Y个复制电路120的每一个的一实施例包含一传输线路,能够输出一电路的输出作为另一电路的输入。
图3显示图1的排序装置100排序偶数个值(例如:图3的六个值A0至F0)的一范例,其中每个符号
Figure BDA0002059592540000052
代表一个排序电路110用来执行排序作业,每个符号→代表一个复制电路120用来执行复制作业,用于同一轮的排序处理的所有排序电路110均不同,且用于同一轮的排序处理的所有复制电路均不同;换言之,用于同一轮的排序处理的任二个排序电路110用来排序不同对的数值,且用于同一轮的排序处理的任二个复制电路120用来复制不同数值。如图3所示,于第一轮排序处理中,有三个排序电路110分别用来排序第一对数值(A0、B0)、第二对数值(C0、D0)、与第三对数值(E0、F0),其中第一对数值的较高者与较低者依序被输出为A1、B1(A1≥B1),第二对数值的较高者与较低者依序被输出为C1、D1(C1≥D1),第三对数值的较高者与较低者依序被输出为E1、F1(E1≥F1),从而第一轮排序结果为A1至F1;于第二轮排序处理中,有二个排序电路110分别用来排序第一对数值(B1、C1)与第二对数值(D1、E1),其中第一对数值的较高者与较低者依序被输出为B2、C2(B2≥C2),第二对数值之较高者与较低者依序被输出为D2、E2(D2≥E2),此外,有二个复制电路120分别用来输出第一轮最高排序值A1作为第二轮最高排序值A2(A2=A1)以及输出第一轮最低排序值F1作为第二轮最低排序值F2(F2=F1),从而第二轮排序结果为A2至F2;其它排序处理与排序结果可依图3及上述说明推衍而得。
图4显示图1的排序装置100排序偶数个值(例如:图4的六个值A0至F0)的另一范例。如图4所示,于第一轮排序处理中,有二个排序电路110分别用来排序第一对数值(B0、C0)与第二对数值(D0、E0),其中第一对数值的较高者与较低者依序被输出为B1、C1(B1≥C1),第二对数值的较高者与较低者依序被输出为D1、E1(D1≥E1),此外,有二个复制电路120分别用来输出该初始顺序的最高排序值A0作为第一轮最高排序值A1(A1=A0)以及输出该初始顺序的最低排序值F0作为第一轮最低排序值F1(F1=F0),从而第一轮排序结果为A1至F1;于第二轮排序处理中,有三个排序电路110分别用来排序第一对数值(A1、B1)、第二对数值(C1、D1)、与第三对数值(E1、F1),其中第一对数值的较高者与较低者依序被输出为A2、B2(A2≥B2),第二对数值的较高者与较低者依序被输出为C2、D2(C2≥D2),第三对数值的较高者与较低者依序被输出为E2、F2(E2≥F2),从而第一轮排序结果为A2至F2;其它排序处理与排序结果可依图4及上述说明推衍而得。
图5显示图1的排序装置100排序奇数个值(例如:图5的五个值A0至E0)的一范例,其中每个符号
Figure BDA0002059592540000071
代表一个排序电路110用来执行排序作业,每个符号→代表一个复制电路120用来执行复制作业,用于同一轮的排序处理的所有排序电路110均不同。如图5所示,于第一轮排序处理中,有二个排序电路110分别用来排序第一对数值(A0、B0)与第二对数值(C0、D0),其中第一对数值的较高者与较低者依序被输出为A1、B1(A1≥B1),第二对数值的较高者与较低者依序被输出为C1、D1(C1≥D1),此外,有一个复制电路120用来输出该初始顺序的最低排序值E0作为第一轮最低排序值E1(E1=E0),从而第一轮排序结果为A1至E1;于第二轮排序处理中,有二个排序电路110分别用来排序第一对数值(B1、C1)与第二对数值(D1、E1),其中第一对数值的较高者与较低者依序被输出为B2、C2(B2≥C2),第二对数值的较高者与较低者依序被输出为D2、E2(D2≥E2),此外,有一个复制电路120用来输出第一轮最高排序值A1作为第二轮最高排序值A2(A2=A1),从而第二轮排序结果为A2至E2;其它排序处理与排序结果可依图5及上述说明推衍而得。
图6显示图1的排序装置100排序奇数个值(例如:图5的五个值A0至E0)的另一范例。如图6所示,于第一轮排序处理中,有二个排序电路110分别用来排序第一对数值(B0、C0)与第二对数值(D0、E0),其中第一对数值的较高者与较低者依序被输出为B1、C1(B1≥C1),第二对数值的较高者与较低者依序被输出为D1、E1(D1≥E1),此外,有一个复制电路120用来输出该初始顺序的最高排序值A0作为第一轮最高排序值A1(A1=A0),从而第一轮排序结果为A1至E1;于第二轮排序处理中,有二个排序电路110分别用来排序第一对数值(A1、B1)与第二对数值(C1、D1),其中第一对数值的较高者与较低者依序被输出为A2、B2(A2≥B2),第二对数值的较高者与较低者依序被输出为C2、D2(C2≥D2),此外,有一个复制电路120用来输出第一轮最低排序值E1作为第二轮最低排序值E2(E2=E1),从而第二轮排序结果为A2至E2;其它排序处理与排序结果可依图6及上述说明推衍而得。
值得注意的是,前述N轮的排序结果包含一第(K-1)轮排序结果、一第K轮排序结果、与一第(K+1)轮排序结果,该K为介于(N-1)与一之间的一奇数或一偶数;当该K等于一时,该第(K-1)轮排序结果为该初始顺序的该N个值;当该第K轮排序结果等于该第(K-1)轮排序结果以及该第(K+1)轮排序结果等于该第K轮排序结果时(亦即:当连续二轮的排序结果无变化时),该排序装置可中断排序,并输出该第(K+1)轮排序结果作为该第N轮排序结果,以结省排序时间。
图7显示图1的排序装置100的一实作范例。如图7所示,排序装置100包含一第一轮处理电路710、一第二轮处理电路720、…、以及一第N轮处理电路790,依序用来执行该第一轮排序处理、该第二轮排序处理、…、以及该第N轮排序处理,以完成排序该N个值。第一轮处理电路710的一实施例为图3中用于第一轮排序处理的三个排序电路110;另一实施例为图4中用于第一轮排序处理的二个排序电路110与二个复制电路120;又一实施例为图5中用于第一轮排序处理的二个排序电路110与一个复制电路120;再一实施例为图6中用于第一轮排序处理的二个排序电路110与一个复制电路120。第二轮处理电路720的一实施例为图3中用于第二轮排序处理的二个排序电路110与二个复制电路;另一实施例为图4中用于第二轮排序处理的三个排序电路110;又一实施例为图5中用于第二轮排序处理的二个排序电路110与一个复制电路120;再一实施例为图6中用于第二轮排序处理的二个排序电路110与一个复制电路120。其它处理电路的实施例可依上述说明及其相关图式推衍而得。值得注意的是,本领域具有通常知识者能够依本说明书的揭露以及实施需求,提供适当的一或多个运作频率给上述各处理电路,并能利用一或多个储存电路(例如:每个储存电路包含N个暂存器像是N个D型正反器)来储存该N轮的排序结果的任一轮排序结果,由于频率的提供以及储存电路的使用为本领域的通常知识,冗余的说明在此省略。
图8显示图1的排序装置100的另一实作范例。如图8所示,排序装置100除包含一处理电路800由X个排序电路110与Y个复制电路120构成外,另包含一选择电路810与一控制电路820。选择电路810用来于该第一轮排序处理中,输出该初始顺序的该N个值(例如:IN1至INN)给处理电路800;于该N轮的排序处理的一第M轮排序处理中(或说于该第二轮排序处理至该第N轮排序处理的任一轮中),选择电路810用来接收并输出一第(M-1)轮排序结果(例如:IN1(M-1)至INN(M-1))给处理电路800,其中该M为介于二与该N之间的整数。控制电路820用来控制选择电路810,以令选择电路810输出该初始顺序的该N个值,或输出该第(M-1)轮排序结果。控制电路820的一实作范例包含一计数器,用来循序计数并输出一计数值给选择电路810及X个排序电路110,当该计数值为一初始值(例如:零)时,选择电路810输出该初始顺序的该N个值给处理电路800,以供处理电路800据以产生第一轮排序结果;当该计数值非该初始值时(例如:从一至N的任一值),选择电路810输出该第(M-1)轮排序结果给处理电路800,以供处理电路800据以产生第M轮排序结果;当该计数值非该初始值且为一奇数时,X个排序电路110的一第一组排序电路(例如:图9/图10的排序电路912或排序电路914)被致能以执行排序作业,此时X个排序电路110的一第二组排序电路(例如:图9/图10的排序电路914或排序电路912,其中该第二组排序电路不同于该第一组排序电路)被禁能或闲置,当该计数值非该初始值且为一偶数时,该第一组排序电路被禁能或闲置,此时该第二组排序电路被致能以执行排序作业,当该计数值非该初始值时,Y个复制电路120的至少一复制电路(例如:图9的复制电路922与924,或图10的复制电路922/924)执行复制作业并与该第一组排序电路或第二组排序电路协同运作。值得注意的是,当该计数值非该初始值时,处理电路800的输出是作为选择电路810的输入;为避免图面复杂,处理电路800的输出端与选择电路810的输入端之间的连接及/或缓冲电路未显示于图,然此不影响本领域的通常知识者了解本发明。
图9显示图8的排序装置100排序偶数个值(例如:图9的六个值A0至F0)的一范例。如图9所示,在控制电路820的控制下,于第一轮排序处理中,选择电路810接收并输出该初始顺序的六个值A0至F0作为第一轮排序处理的输入值AK至FK;接着,X个排序电路110的三个排序电路912被致能以分别排序三对数值((AK,BK)、(CK,DK)、(EK,FK)),X个排序电路110的二个排序电路914以及Y个复制电路的二个复制电路922、924被禁能或闲置,其中第一对数值(AK,BK)的较高者与较低者依序被输出为AK+1、BK+1(AK+1≥BK+1),第二对数值(CK,DK)的较高者与较低者依序被输出为CK+1、DK+1(CK+1≥DK+1),第三对数值(EK,FK)的较高者与较低者依序被输出为EK+1、FK+1(EK+1≥FK+1),从而第一轮排序结果为AK+1至FK+1;接下来,选择电路810接收并输出该第一轮排序结果AK+1至FK+1作为第二轮排序处理的输入值AK至FK;然后,二个排序电路914被致能以分别排序二对数值((BK,CK)、(DK,EK)),三个排序电路912被禁能或闲置,其中第一对数值(BK,CK)的较高者与较低者依序被输出为BK+1、CK+1(BK+1≥CK+1),第二对数值(DK,EK)的较高者与较低者依序被输出为DK+1、EK+1(DK+1≥EK+1),此外,复制电路922输出第一轮最高排序值AK+1作为第二轮排序处理的输入值AK,也作为第二轮最高排序值AK+1(AK+1=AK),复制电路924输出第一轮最低排序值FK+1作为第二轮排序处理的输入值FK,也作为第二轮最低排序值FK+1(FK+1=FK),从而第二轮排序结果为AK+1至FK+1;其它排序处理与排序结果可依图9及上述说明推衍而得。值得注意的是,由于排序电路912与排序电路914因不会同时使用,因此本发明可选择性地采用分时多工(Time-Division Multiplexing,TDM)的技术来省略排序电路914;更详细地说,与排序电路914的数目相同的数目的排序电路912可藉由致能控制以及讯号输入/输出的选择与切换来执行排序电路914的功能,此情形下排序电路的数目
Figure BDA0002059592540000101
足以满足实施需求;类似地,图10的复制电路922与复制电路924不会同时使用,因此,图10的复制电路922可藉由分时多任务的技术来执行图10的复制电路924的功能,以节省复制电路的数量,此情形下复制电路的数目Y=1足以满足实施需求;由于上述分析多任务的技术(或说致能控制与讯号的选择与切换)可藉由本领域的已知技术来实现,故其细节在此省略;另外,在实施为可能的前提下,上述分时多任务的作法也可应用于图7的实施例中。
图10显示图8的排序装置100排序奇数个值(例如:图10的五个值A0至E0)。由于本领域具有通常知识者能够参酌其它实施例的揭露来了解图10的实施细节与变化,重复及冗余的说明在此省略。
请注意,在实施为可能的前提下,本技术领域具有通常知识者可选择性地实施前述任一实施例中部分或全部技术特征,或选择性地实施前述复数个实施例中部分或全部技术特征的组合,藉此增加本发明实施时的弹性。举例而言,图8的处理电路800可由图7的复数个(例如:
Figure BDA0002059592540000111
个)处理电路构成,以将图7的流水线式处理电路应用至图8的折叠式架构;另举例而言,图7的任一轮处理电路可由图8的所有电路(例如:图9或图10的电路)构成,以将图8的折叠式电路应用至图7的流水线式架构。
综上所述,本发明能够实现并行运算且结构不复杂的排序装置。
虽然本发明的实施例如上所述,然而该些实施例并非用来限定本发明,本技术领域具有通常知识者可依据本发明的明示或隐含的内容对本发明的技术特征施以变化,凡此种种变化均可能属于本发明所寻求的专利保护范畴,换言之,本发明的专利保护范围须视本说明书的申请专利范围所界定者为准。

Claims (10)

1.一种排序装置,用来于一排序不中断情形下对一初始顺序的N个值依序执行N轮的排序处理包含一第一轮排序处理至一第N轮排序处理,以依序得到N轮的排序结果包含一第一轮排序结果至一第N轮排序结果,其中该N轮的排序处理的每一轮对该N个值的复数对数值同时进行排序,该N为不小于四的偶数,该排序装置包含:
复数个排序电路,用来按照该N轮的排序结果的一第(K-1)轮排序结果来排序该N个值中的
Figure FDA0002059592530000011
组值,以得到该N轮的排序结果的一第K轮排序结果包含一第K轮最高排序值与一第K轮最低排序值,该复数个排序电路另用来按照该第K轮排序结果来排序该N个值中除了该第K轮最高排序值与该第K轮最低排序值以外的
Figure FDA0002059592530000012
组值,以得到该N轮的排序结果的一第(K+1)轮排序结果除了该第K轮最高排序值与该第K轮最低排序值,该
Figure FDA0002059592530000013
组值与该
Figure FDA0002059592530000014
组值的每一组值包含该N个值中的二个值,于该N轮的排序处理的每一轮中,该复数个排序电路的任二个的排序对象不同,该K为介于(N-1)与一之间的一奇数或一偶数,当该K等于一时,该第(K-1)轮排序结果为该初始顺序的该N个值;以及
复数个复制电路,用来复制该第K轮最高排序值作为该第(K+1)轮排序结果之一第(K+1)轮最高排序值,以及用来复制该第K轮最低排序值作为该第(K+1)轮排序结果之一第(K+1)轮最低排序值。
2.根据权利要求1所述的排序装置,其中该复数个排序电路的每一个包含:
一比较电路,用来比较二数值以产生一比较结果;
一第一选择电路,用来依据该比较结果输出该二数值的一第一数值;以及
一第二选择电路,用来依据该比较结果输出该二数值的一第二数值,其中当该二数值不同时,该第一数值为该二数值的一较大值与一较小值的其中之一,该第二数值为该较大值与该较小值的其中另一。
3.一种排序装置,用来于一排序不中断情形下对一初始顺序的N个值依序执行N轮的排序处理包含一第一轮排序处理至一第N轮排序处理,以依序得到N轮的排序结果包含一第一轮排序结果至一第N轮排序结果,其中该N轮的排序处理的每一轮对该N个值的复数对数值同时进行排序,该N为不小于三的奇数,该排序装置包含:
复数个排序电路,用于该N轮的排序处理的一第K轮排序处理中,按照该N轮的排序结果的一第(K-1)轮排序结果来排序该N个值中除了一第一值以外的
Figure FDA0002059592530000021
组值,以得到该N轮的排序结果的一第K轮排序结果除了该第一值,该复数个排序电路另用来于该N轮的排序处理的一第(K+1)轮排序处理中,按照该第K轮排序结果来排序该N个值中除了一第二值以外的
Figure FDA0002059592530000022
组值,以得到该N轮的排序结果的一第(K+1)轮排序结果除了该第二值,该S等于该N,于该第K轮排序处理与该第(K+1)轮排序处理中,该
Figure FDA0002059592530000023
组值与该
Figure FDA0002059592530000024
组值的每一组值包含该N个值中的二个值,于该N轮的排序处理的每一轮中,该复数个排序电路的任二个的排序对象不同,该K为介于(N-1)与一之间的一奇数或一偶数,当该K等于一时,该第(K-1)轮排序结果为该初始顺序的该N个值;以及
复数个复制电路,用来复制该第一值作为该第K轮排序结果的一第K轮最高排序值与一第K轮最低排序值的其中之一,以及用来复制该第二值作为该第(K+1)轮排序结果的一第(K+1)轮最高排序值与一第(K+1)轮最低排序值的其中之一,当该第一值作为该第K轮最高排序值时,该第二值为该第K轮最低排序值作为该第(K+1)轮最低排序值,当该第一值作为该第K轮最低排序值时,该第二值为该第K轮最高排序值作为该第(K+1)轮最高排序值。
4.根据权利要求3所述的排序装置,其中该复数个排序电路的每一个包含:
一比较电路,用来比较二数值以产生一比较结果;
一第一选择电路,用来依据该比较结果输出该二数值的一第一数值;以及
一第二选择电路,用来依据该比较结果输出该二数值的一第二数值,其中当该二数值不同时,该第一数值为该二数值的一较大值与一较小值的其中之一,该第二数值为该较大值与该较小值的其中另一。
5.一种排序装置,用来于一排序不中断情形下对一初始顺序的N个值依序执行N轮的排序处理包含一第一轮排序处理至一第N轮排序处理,以依序得到N轮的排序结果包含一第一轮排序结果至一第N轮排序结果,其中该N轮的排序处理的每一轮对该N个值的复数对数值同时进行排序,该N为不小于三的整数,该排序装置包含:
X个排序电路,该X个排序电路的每一个用来排序二数值,以得到该二数值的大小顺序,该X为不小于N/2的整数;以及
Y个复制电路,该Y个复制电路的每一个用来输出一输入数值作为一输出数值,该Y为不小于一的整数,
其中,该X个排序电路与该Y个复制电路选择性地被用于该N轮的排序处理的每一轮,且该N轮的排序处理的每一轮使用该X个排序电路的至少其中之一。
6.根据权利要求5所述的排序装置,其中该X个排序电路的每一个包含:
一比较电路,用来比较该二数值以产生一比较结果;
一第一选择电路,用来依据该比较结果输出该二数值的一第一数值;以及
一第二选择电路,用来依据该比较结果输出该二数值的一第二数值,其中当该二数值不同时,该第一数值为该二数值的一较大值与一较小值的其中之一,该第二数值为该较大值与该较小值的其中另一。
7.根据权利要求5所述的排序装置,其中当该N为偶数时,该X个排序电路分为N组排序电路分别用来依序执行该N轮的排序处理的排序作业,该N组排序电路的任一奇数组的排序电路的数目为一第一数目与一第二数目的其中之一,该N组排序电路的任一偶数组的排序电路的数目为该第一数目与该第二数目的其中另一,该第一数目为
Figure FDA0002059592530000031
该第二数目为
Figure FDA0002059592530000032
该Y个复制电路分为
Figure FDA0002059592530000033
组复制电路分别用来依序执行该N轮的排序处理的复制作业,该
Figure FDA0002059592530000034
组复制电路的每一组包含二个复制电路,且该
Figure FDA0002059592530000035
组复制电路与该N组排序电路的奇数组或偶数组协同运作;当该N为奇数时,该X个排序电路分为S组排序电路分别用来依序执行该N轮的排序处理的该排序作业,该S等于该N,该S组排序电路的每一组包含
Figure FDA0002059592530000041
个排序电路,该Y个复制电路分为N组复制电路分别用来依序执行该N轮的排序处理的的该复制作业,该N组复制电路的每一组包含一个复制电路。
8.根据权利要求5所述的排序装置,进一步包含:一选择电路,用来于该第一轮排序处理中,输出该初始顺序的该N个值给该X个排序电路;于该N轮的排序处理的一第M轮排序处理中,该选择电路用来接收一第(M-1)轮排序结果,并输出该第(M-1)轮排序结果给该X个排序电路,该M为介于该N与二之间的整数。
9.根据权利要求8所述的排序装置,进一步包含:一计数器,用来输出一计数值以控制该选择电路、该X个排序电路、以及该Y个复制电路的运作。
10.根据权利要求5所述的排序装置,其中该N轮的排序结果包含一第(K-1)轮排序结果、一第K轮排序结果、与一第(K+1)轮排序结果,该K为介于(N-1)与一之间的一奇数或一偶数;当该K等于一时,该第(K-1)轮排序结果为该初始顺序的该N个值;当该第K轮排序结果等于该第(K-1)轮排序结果以及该第(K+1)轮排序结果等于该第K轮排序结果时,该排序装置中断排序,并输出该第(K+1)轮排序结果作为该第N轮排序结果。
CN201910400504.5A 2019-05-15 2019-05-15 排序装置 Active CN111949241B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201910400504.5A CN111949241B (zh) 2019-05-15 2019-05-15 排序装置
TW108119268A TWI730335B (zh) 2019-05-15 2019-06-04 排序裝置
US16/869,883 US11775255B2 (en) 2019-05-15 2020-05-08 Sorting device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910400504.5A CN111949241B (zh) 2019-05-15 2019-05-15 排序装置

Publications (2)

Publication Number Publication Date
CN111949241A true CN111949241A (zh) 2020-11-17
CN111949241B CN111949241B (zh) 2024-04-12

Family

ID=73228656

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910400504.5A Active CN111949241B (zh) 2019-05-15 2019-05-15 排序装置

Country Status (3)

Country Link
US (1) US11775255B2 (zh)
CN (1) CN111949241B (zh)
TW (1) TWI730335B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4410960A (en) * 1980-02-05 1983-10-18 Nippon Electric Co., Ltd. Sorting circuit for three or more inputs
TW200832218A (en) * 2007-01-31 2008-08-01 Wen-Jyi Hwang Fast sorting circuit architecture
CN101261576A (zh) * 2008-04-03 2008-09-10 启攀微电子(上海)有限公司 实现并行数据排序的硬件电路及方法
TWI638531B (zh) * 2017-05-16 2018-10-11 瑞昱半導體股份有限公司 能夠加速重置之循序漸近暫存器式類比至數位轉換器

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0728624A (ja) * 1993-07-13 1995-01-31 Mitsubishi Electric Corp ソート装置及びソート方法
FR2930459B1 (fr) * 2008-04-25 2012-08-10 Alfyma Ind Dispositif de tri de dechets notamment menagers.
KR102343652B1 (ko) * 2017-05-25 2021-12-24 삼성전자주식회사 벡터 프로세서의 서열 정렬 방법
JP6669239B2 (ja) * 2018-12-12 2020-03-18 株式会社三洋物産 遊技機
JP6743925B2 (ja) * 2019-02-12 2020-08-19 株式会社三洋物産 遊技機

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4410960A (en) * 1980-02-05 1983-10-18 Nippon Electric Co., Ltd. Sorting circuit for three or more inputs
TW200832218A (en) * 2007-01-31 2008-08-01 Wen-Jyi Hwang Fast sorting circuit architecture
CN101261576A (zh) * 2008-04-03 2008-09-10 启攀微电子(上海)有限公司 实现并行数据排序的硬件电路及方法
TWI638531B (zh) * 2017-05-16 2018-10-11 瑞昱半導體股份有限公司 能夠加速重置之循序漸近暫存器式類比至數位轉換器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
林谷, 石秉学: "一种新型可扩展的电流排序电路", 电子学报, no. 05, 25 May 1999 (1999-05-25), pages 70 - 73 *

Also Published As

Publication number Publication date
CN111949241B (zh) 2024-04-12
US20200364029A1 (en) 2020-11-19
US11775255B2 (en) 2023-10-03
TWI730335B (zh) 2021-06-11
TW202044015A (zh) 2020-12-01

Similar Documents

Publication Publication Date Title
Diaconis et al. The subgroup algorithm for generating uniform random variables
US11042360B1 (en) Multiplier circuitry for multiplying operands of multiple data types
CN101162471B (zh) 一种插入排序的方法和装置
US10101965B1 (en) Method and apparatus for high speed streaming sorter
JPH0644044A (ja) 二進数を固定値と比較する並列化大きさ比較器
KR100692997B1 (ko) 패스트퓨리에변환 장치
CN111949241A (zh) 排序装置
US20060155793A1 (en) Canonical signed digit (CSD) coefficient multiplier with optimization
Hayfron-Acquah et al. Improved selection sort algorithm
CN102004720A (zh) 可变长快速傅立叶变换电路及实现方法
EP0568373B1 (en) Apparatus and method for parallelized magnitude comparison of digital data
Hosseinzadeh et al. A New Moduli Set for Residue Number System:{rn 2, rn 1, rn}
US3794974A (en) Digital flow processor
US10572985B2 (en) Image processing circuit with multipliers allocated based on filter coefficients
JPH07200265A (ja) シフト及び丸め回路
JP2011227559A (ja) データ並び替え回路に対する制御情報自動生成方法、データ並び替え回路、及び制御情報自動生成プログラム
RU2362209C1 (ru) Одномерный медианный фильтр с модульной архитектурой
Salomaa et al. Efficient implementation of regular languages using reversed alternating finite automata
EA038389B1 (ru) Устройство сравнения и определения знака чисел, представленных в системе остаточных классов
Cussen et al. Matrix Multiplication Using Only Addition
JP5960639B2 (ja) 情報処理装置および情報処理方法
Qiuming Bubble Sort and Its Improved Methods
Tyapaev Non-Archimedean dynamics of the complex shift
González Complex stochastic boolean systems: generating and counting the binary n-tuples intrinsically less or greater than u
Alioto et al. Optimized design of carry-bypass adders

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant