TW202044015A - 排序裝置 - Google Patents

排序裝置 Download PDF

Info

Publication number
TW202044015A
TW202044015A TW108119268A TW108119268A TW202044015A TW 202044015 A TW202044015 A TW 202044015A TW 108119268 A TW108119268 A TW 108119268A TW 108119268 A TW108119268 A TW 108119268A TW 202044015 A TW202044015 A TW 202044015A
Authority
TW
Taiwan
Prior art keywords
sorting
round
value
circuits
values
Prior art date
Application number
TW108119268A
Other languages
English (en)
Other versions
TWI730335B (zh
Inventor
茆文藝
李輝
Original Assignee
瑞昱半導體股份有限公司
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 瑞昱半導體股份有限公司 filed Critical 瑞昱半導體股份有限公司
Publication of TW202044015A publication Critical patent/TW202044015A/zh
Application granted granted Critical
Publication of TWI730335B publication Critical patent/TWI730335B/zh

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 02_image001
的整數,該Y為不小於一的整數。該X個排序電路的每一個用來排序二數值,以得到該二數值的大小順序。該Y個複製電路的每一個用來將一輸入數值作為一輸出數值。該X個排序電路與該Y個複製電路選擇性地被用於該N輪的排序處理的一輪。
本發明之排序裝置的另一實施例用來對一初始順序的N個值依序執行N輪的排序處理包含一第一輪排序處理至一第N輪排序處理,以依序得到N輪的排序結果包含一第一輪排序結果至一第N輪排序結果,其中該N輪的排序處理的每一輪對該N個值的複數對數值同時進行排序,該第N輪排序結果為該N個值的大小順序,該N為不小於四的偶數。該實施例包含複數個排序電路與複數個複製電路。該複數個排序電路用來按照該N輪的排序結果之一第(K-1)輪排序結果來排序該N個值中的
Figure 02_image003
組值,以得到該N輪的排序結果之一第K輪排序結果包含一第K輪最高排序值與一第K輪最低排序值;該複數個排序電路另用來按照該第K輪排序結果來排序該N個值中除了該第K輪最高排序值與該第K輪最低排序值以外的(
Figure 02_image005
)組值,以得到該N輪的排序結果之一第(K+1)輪排序結果除了該第K輪最高排序值與該第K輪最低排序值;該
Figure 02_image003
組值與該(
Figure 02_image005
)組值的每一組值包含該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 02_image007
)組值,以得到該N輪的排序結果之一第K輪排序結果除了該第一值;該複數個排序電路另用來於該N輪的排序處理之一第(K+1)輪排序處理中,按照該第K輪排序結果來排序該N個值中除了一第二值以外的(
Figure 02_image007
)組值,以得到該N輪的排序結果之一第(K+1)輪排序結果除了該第二值;於該第K輪排序處理與該第(K+1)輪排序處理中,該(
Figure 02_image007
)組值的每一組值包含該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顯示本發明之排序裝置的一實施例。圖1之排序裝置100用來對一初始順序的N個值(例如: IN1 ~INN )依序執行N輪的排序處理包含一第一輪排序處理至一第N輪排序處理,以依序得到N輪的排序結果包含一第一輪排序結果至一第N輪排序結果,其中該N輪的排序處理的每一輪對該N個值的複數對數值同時進行排序,該第N輪排序結果(例如:圖1之OUT1 ~OUTN )為該N個值的大小順序(例如:遞減/遞增順序),該N為不小於三的整數。簡言之,排序裝置100僅需執行該N輪的排序處理,就能得到該N個值的大小順序;相較之下,先前技術的冒泡排序(bubble sort)須執行
Figure 02_image009
次的排序處理方能得到該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
Figure 02_image011
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)的一範例,其中每個符號x代表一個排序電路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)的一範例,其中每個符號x代表一個排序電路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的功能,此情形下排序電路的數目X=
Figure 02_image001
足以滿足實施需求;類似地,圖10之複製電路922與複製電路924不會同時使用,因此,圖10之複製電路922可藉由分時多工的技術來執行圖10之複製電路924的功能,以節省複製電路的數量,此情形下複製電路的數目Y=1足以滿足實施需求;由於上述分析多工的技術(或說致能控制與訊號的選擇與切換)可藉由本領域之已知技術來實現,故其細節在此省略;另外,在實施為可能的前提下,上述分時多工的作法也可應用於圖7之實施例中。
圖10顯示圖8之排序裝置100排序奇數個值(例如:圖10的五個值A0~E0)。由於本領域具有通常知識者能夠參酌其它實施例之揭露來瞭解圖10的實施細節與變化,重複及冗餘之說明在此省略。
請注意,在實施為可能的前提下,本技術領域具有通常知識者可選擇性地實施前述任一實施例中部分或全部技術特徵,或選擇性地實施前述複數個實施例中部分或全部技術特徵的組合,藉此增加本發明實施時的彈性。舉例而言,圖8之處理電路800可由圖7之複數個(例如:
Figure 02_image001
個)處理電路構成,以將圖7的流水線式處理電路應用至圖8的摺疊式架構;另舉例而言,圖7之任一輪處理電路可由圖8之所有電路(例如:圖9或圖10之電路)構成,以將圖8的摺疊式電路應用至圖7的流水線式架構。
綜上所述,本發明能夠實現並行運算且結構不複雜的排序裝置。
雖然本發明之實施例如上所述,然而該些實施例並非用來限定本發明,本技術領域具有通常知識者可依據本發明之明示或隱含之內容對本發明之技術特徵施以變化,凡此種種變化均可能屬於本發明所尋求之專利保護範疇,換言之,本發明之專利保護範圍須視本說明書之申請專利範圍所界定者為準。
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:第六輪排序結果 x:排序電路的排序作業 à:複製電路的複製作業 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]顯示本發明之排序裝置的一實施例; [圖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輪排序結果

Claims (10)

  1. 一種排序裝置,用來於一排序不中斷情形下對一初始順序的N個值依序執行N輪的排序處理包含一第一輪排序處理至一第N輪排序處理,以依序得到N輪的排序結果包含一第一輪排序結果至一第N輪排序結果,其中該N輪的排序處理的每一輪對該N個值的複數對數值同時進行排序,該N為不小於四的偶數,該排序裝置包含: 複數個排序電路,用來按照該N輪的排序結果之一第(K-1)輪排序結果來排序該N個值中的
    Figure 03_image003
    組值,以得到該N輪的排序結果之一第K輪排序結果包含一第K輪最高排序值與一第K輪最低排序值,該複數個排序電路另用來按照該第K輪排序結果來排序該N個值中除了該第K輪最高排序值與該第K輪最低排序值以外的(
    Figure 03_image005
    )組值,以得到該N輪的排序結果之一第(K+1)輪排序結果除了該第K輪最高排序值與該第K輪最低排序值,該
    Figure 03_image003
    組值與該(
    Figure 03_image005
    )組值的每一組值包含該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 03_image007
    )組值,以得到該N輪的排序結果之一第K輪排序結果除了該第一值,該複數個排序電路另用來於該N輪的排序處理之一第(K+1)輪排序處理中,按照該第K輪排序結果來排序該N個值中除了一第二值以外的(
    Figure 03_image013
    )組值,以得到該N輪的排序結果之一第(K+1)輪排序結果除了該第二值,該S等於該N,於該第K輪排序處理與該第(K+1)輪排序處理中,該(
    Figure 03_image007
    )組值與該(
    Figure 03_image013
    )組值的每一組值包含該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 03_image003
    ,該第二數目為
    Figure 03_image005
    ,該Y個複製電路分為
    Figure 03_image003
    組複製電路分別用來依序執行該N輪的排序處理的複製作業,該
    Figure 03_image003
    組複製電路的每一組包含二個複製電路,且該
    Figure 03_image003
    組複製電路與該N組排序電路的奇數組或偶數組協同運作;當該N為奇數時,該X個排序電路分為S組排序電路分別用來依序執行該N輪的排序處理的該排序作業,該S等於該N,該S組排序電路的每一組包含
    Figure 03_image007
    個排序電路,該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輪排序結果。
TW108119268A 2019-05-15 2019-06-04 排序裝置 TWI730335B (zh)

Applications Claiming Priority (2)

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

Publications (2)

Publication Number Publication Date
TW202044015A true TW202044015A (zh) 2020-12-01
TWI730335B TWI730335B (zh) 2021-06-11

Family

ID=73228656

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108119268A TWI730335B (zh) 2019-05-15 2019-06-04 排序裝置

Country Status (3)

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

Family Cites Families (9)

* 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
JPH0728624A (ja) * 1993-07-13 1995-01-31 Mitsubishi Electric Corp ソート装置及びソート方法
TW200832218A (en) * 2007-01-31 2008-08-01 Wen-Jyi Hwang Fast sorting circuit architecture
CN100578441C (zh) * 2008-04-03 2010-01-06 启攀微电子(上海)有限公司 实现并行数据排序的硬件电路及方法
FR2930459B1 (fr) * 2008-04-25 2012-08-10 Alfyma Ind Dispositif de tri de dechets notamment menagers.
TWI638531B (zh) * 2017-05-16 2018-10-11 瑞昱半導體股份有限公司 能夠加速重置之循序漸近暫存器式類比至數位轉換器
KR102343652B1 (ko) * 2017-05-25 2021-12-24 삼성전자주식회사 벡터 프로세서의 서열 정렬 방법
JP6669239B2 (ja) * 2018-12-12 2020-03-18 株式会社三洋物産 遊技機
JP6743925B2 (ja) * 2019-02-12 2020-08-19 株式会社三洋物産 遊技機

Also Published As

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

Similar Documents

Publication Publication Date Title
US20190303149A1 (en) Sequence alignment method of vector processor
US20210256357A1 (en) Embedded stochastic-computing accelerator architecture and method for convolutional neural networks
US7430706B1 (en) Diagonal interleaved parity calculator
US10101965B1 (en) Method and apparatus for high speed streaming sorter
CN101162471A (zh) 一种插入排序的方法和装置
TWI730335B (zh) 排序裝置
JPH0644044A (ja) 二進数を固定値と比較する並列化大きさ比較器
US6760737B2 (en) Spatial median filter
Lin Tracial oscillation zero and Z-stability
JP6613019B2 (ja) パターンを探索する装置
US10592439B2 (en) Arbitrating circuitry and method
US4751665A (en) Systolic super summation device
EP0568373B1 (en) Apparatus and method for parallelized magnitude comparison of digital data
JP5556323B2 (ja) データ並び替え回路に対する制御情報自動生成方法、データ並び替え回路、コンピュータ、及び制御情報自動生成プログラム
US3794974A (en) Digital flow processor
Jiang et al. Average-Case Complexity of Shellsort (Preliminary Version)
CN108958702B (zh) 一种排序网络、排序方法及排序装置
Liang et al. Concurrent error detection and correction in real-time systolic sorting arrays
JPS6113604B2 (zh)
JPH0117177B2 (zh)
González Complex stochastic boolean systems: generating and counting the binary n-tuples intrinsically less or greater than u
JPH0667844A (ja) ソーティング方法およびソーティング回路
JP4428819B2 (ja) 多入力データソーティング回路
Alioto et al. Optimized design of carry-bypass adders
JP2655410B2 (ja) 多重化n連一致保護回路