TWI730335B - 排序裝置 - Google Patents
排序裝置 Download PDFInfo
- Publication number
- TWI730335B TWI730335B TW108119268A TW108119268A TWI730335B TW I730335 B TWI730335 B TW I730335B TW 108119268 A TW108119268 A TW 108119268A TW 108119268 A TW108119268 A TW 108119268A TW I730335 B TWI730335 B TW I730335B
- Authority
- TW
- Taiwan
- Prior art keywords
- sorting
- round
- value
- circuits
- values
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/22—Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
- G06F7/24—Sorting, 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/06—Arrangements for sorting, selecting, merging, or comparing data on individual record carriers
- G06F7/08—Sorting, i.e. grouping record carriers in numerical or other ordered sequence according to the classification of at least some of the information they carry
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/22—Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
- G06F7/36—Combined merging and sorting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/9035—Filtering based on additional data, e.g. user or group profiles
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/906—Clustering; Classification
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為不小於的整數,該Y為不小於一的整數。該X個排序電路的每一個用來排序二數值,以得到該二數值的大小順序。該Y個複製電路的每一個用來將一輸入數值作為一輸出數值。該X個排序電路與該Y個複製電路選擇性地被用於該N輪的排序處理的一輪。
本發明之排序裝置的另一實施例用來對一初始順序的N個值依序執行N輪的排序處理包含一第一輪排序處理至一第N輪排序處理,以依序得到N輪的排序結果包含一第一輪排序結果至一第N輪排序結果,其中該N輪的排序處理的每一輪對該N個值的複數對數值同時進行排序,該第N輪排序結果為該N個值的大小順序,該N為不小於四的偶數。該實施例包含複數個排序電路與複數個複製電路。該複數個排序電路用來按照該N輪的排序結果之一第(K-1)輪排序結果來排序該N個值中的組值,以得到該N輪的排序結果之一第K輪排序結果包含一第K輪最高排序值與一第K輪最低排序值;該複數個排序電路另用來按照該第K輪排序結果來排序該N個值中除了該第K輪最高排序值與該第K輪最低排序值以外的()組值,以得到該N輪的排序結果之一第(K+1)輪排序結果除了該第K輪最高排序值與該第K輪最低排序值;該組值與該()組值的每一組值包含該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個值中除了一第一值以外的()組值,以得到該N輪的排序結果之一第K輪排序結果除了該第一值;該複數個排序電路另用來於該N輪的排序處理之一第(K+1)輪排序處理中,按照該第K輪排序結果來排序該N個值中除了一第二值以外的()組值,以得到該N輪的排序結果之一第(K+1)輪排序結果除了該第二值;於該第K輪排序處理與該第(K+1)輪排序處理中,該()組值的每一組值包含該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)須執行次的排序處理方能得到該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(當AB));圖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=足以滿足實施需求;類似地,圖10之複製電路922與複製電路924不會同時使用,因此,圖10之複製電路922可藉由分時多工的技術來執行圖10之複製電路924的功能,以節省複製電路的數量,此情形下複製電路的數目Y=1足以滿足實施需求;由於上述分析多工的技術(或說致能控制與訊號的選擇與切換)可藉由本領域之已知技術來實現,故其細節在此省略;另外,在實施為可能的前提下,上述分時多工的作法也可應用於圖7之實施例中。
圖10顯示圖8之排序裝置100排序奇數個值(例如:圖10的五個值A0~E0)。由於本領域具有通常知識者能夠參酌其它實施例之揭露來瞭解圖10的實施細節與變化,重複及冗餘之說明在此省略。
請注意,在實施為可能的前提下,本技術領域具有通常知識者可選擇性地實施前述任一實施例中部分或全部技術特徵,或選擇性地實施前述複數個實施例中部分或全部技術特徵的組合,藉此增加本發明實施時的彈性。舉例而言,圖8之處理電路800可由圖7之複數個(例如:個)處理電路構成,以將圖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)
- 一種排序裝置,用來於一排序不中斷情形下對一初始順序的N個值依序執行N輪的排序處理包含一第一輪排序處理至一第N輪排序處理,以依序得到N輪的排序結果包含一第一輪排序結果至一第N輪排序結果,其中該N輪的排序處理的每一輪對該N個值的複數對數值同時進行排序,該N為不小於四的偶數,該排序裝置包含:複數個排序電路,用來按照該N輪的排序結果之一第(K-1)輪排序結果來排序該N個值中的組值,以得到該N輪的排序結果之一第K輪排序結果包含一第K輪最高排序值與一第K輪最低排序值,該複數個排序電路另用來按照該第K輪排序結果來排序該N個值中除了該第K輪最高排序值與該第K輪最低排序值以外的()組值,以得到該N輪的排序結果之一第(K+1)輪排序結果除了該第K輪最高排序值與該第K輪最低排序值,該組值與該()組值的每一組值包含該N個值中的二個值,於該N輪的排序處理的每一輪中,該複數個排序電路的任二個的排序對象不同,該K為介於(N-1)與一之間的一奇數或一偶數,當該K等於一時,該第(K-1)輪排序結果為該初始順序的該N個值;以及複數個複製電路,用來複製該第K輪最高排序值作為該第(K+1)輪排序結果之一第(K+1)輪最高排序值,以及用來複製該第K輪最低排序值作為該第(K+1)輪排序結果之一第(K+1)輪最低排序值,其中該複數個排序電路與該複數個複製電路構成N組電路,該N組電路之任二組相鄰電路為一第一組電路與一第二組電路,該第一組電路的輸出為該第二組電路的輸入,該第一組電路的輸出依序包含一最高排序值、(N-2)個排 序值與一最低排序值,該第一組電路的配置為一第一電路配置與一第二電路配置的其中之一,該第二組電路的配置為該第一電路配置與該第二電路配置的其中另一,該第一電路配置包含該複數個排序電路中平行配置的個排序電路,該第二電路配置包含平行配置的一第一複製電路、該複數個排序電路中()個排序電路與一第二複製電路,該第一複製電路用來複製該最高排序值,該()個排序電路用來排序該(N-2)個排序值,該第二複製電路用來複製該最低排序值。
- 如申請專利範圍第1項所述之排序裝置,其中該複數個排序電路的每一個包含:一比較電路,用來比較二數值以產生一比較結果;一第一選擇電路,耦接該比較電路,用來依據該比較結果輸出該二數值的一第一數值;以及一第二選擇電路,耦接該比較電路,用來依據該比較結果輸出該二數值的一第二數值值,其中當該二數值不同時,該第一數值為該二數值的一較大值與一較小值的其中之一,該第二數值為該較大值與該較小值的其中另一。
- 一種排序裝置,用來於一排序不中斷情形下對一初始順序的N個值依序執行N輪的排序處理包含一第一輪排序處理至一第N輪排序處理,以依序得到N輪的排序結果包含一第一輪排序結果至一第N輪排序結果,其中該N輪的排序處理的每一輪對該N個值的複數對數值同時進行排序,該N為不小於三的奇數,該排序裝置包含:複數個排序電路,用於該N輪的排序處理之一第K輪排序處理中,按照該N輪的排序結果之一第(K-1)輪排序結果來排序該N個值中除了一第一值以外的 ()組值,以得到該N輪的排序結果之一第K輪排序結果除了該第一值,該複數個排序電路另用來於該N輪的排序處理之一第(K+1)輪排序處理中,按照該第K輪排序結果來排序該N個值中除了一第二值以外的()組值,以得到該N輪的排序結果之一第(K+1)輪排序結果除了該第二值,該S等於該N,於該第K輪排序處理與該第(K+1)輪排序處理中,該()組值與該()組值的每一組值包含該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)輪最高排序值,其中該複數個排序電路與該複數個複製電路構成N組電路,該N組電路之任二組相鄰電路為一第一組電路與一第二組電路,該第一組電路的輸出為該第二組電路的輸入,該第一組電路的輸出依序包含一最高排序值、(N-2)個排序值與一最低排序值,該第一組電路的配置為一第一電路配置與一第二電路配置的其中之一,該第二組電路的配置為該第一電路配置與該第二電路配置的其中另一,該第一電路配置包含平行配置的一第一複製電路與該複數個排序電路中個排序電路,該第二電路配置包含平行配置的該複數 個排序電路中()個排序電路與一第二複製電路,該第一複製電路用來複製該最高排序值,該第二複製電路用來複製該最低排序值,當該第一組電路的配置為該第一電路配置時,該()個排序電路用來排序該最高排序值與該(N-2)個排序值,當該第一組電路的配置為該第二電路配置時,該()個排序電路用來排序該(N-2)個排序值與該最低排序值。
- 如申請專利範圍第3項所述之排序裝置,其中該複數個排序電路的每一個包含:一比較電路,用來比較二數值以產生一比較結果;一第一選擇電路,耦接該比較電路,用來依據該比較結果輸出該二數值的一第一數值;以及一第二選擇電路,耦接該比較電路,用來依據該比較結果輸出該二數值的一第二數值,其中當該二數值不同時,該第一數值為該二數值的一較大值與一較小值的其中之一,該第二數值為該較大值與該較小值的其中另一。
- 一種排序裝置,用來於一排序不中斷情形下對一初始順序的N個值依序執行N輪的排序處理包含一第一輪排序處理至一第N輪排序處理,以依序得到N輪的排序結果包含一第一輪排序結果至一第N輪排序結果,其中該N輪的排序處理的每一輪對該N個值的複數對數值同時進行排序,該N為不小於三的整數,該排序裝置包含:X個排序電路,該X個排序電路的每一個用來排序二數值,以得到該二數值的大小順序,該X為不小於N/2的整數;以及Y個複製電路,該Y個複製電路的每一個用來輸出一輸入數值作為一輸出數值,該Y為不小於一的整數, 其中,該X個排序電路與該Y個複製電路選擇性地被用於該N輪的排序處理的每一輪,且該N輪的排序處理的每一輪使用該X個排序電路的至少其中之一,其中該N輪的排序結果的每一輪排序結果包含一最高排序值、(N-2)個排序值與一最低排序值,該X個排序電路與該Y個複製電路構成一處理電路,該處理電路的配置包含平行配置的該Y個複製電路中一第一複製電路、該X個排序電路以及該Y個複製電路中一第二複製電路,於該第一輪排序處理中,該處理電路接收該初始順序的該N個值以進行處理,於該第二輪排序處理至該第N輪排序處理中,該處理電路接收該最高排序值、該(N-2)個排序值與該最低排序值以進行處理。
- 如申請專利範圍第5項所述之排序裝置,其中該X個排序電路的每一個包含:一比較電路,用來比較該二數值以產生一比較結果;一第一選擇電路,耦接該比較電路,用來依據該比較結果輸出該二數值的一第一數值;以及一第二選擇電路,耦接該比較電路,用來依據該比較結果輸出該二數值的一第二數值,其中當該二數值不同時,該第一數值為該二數值的一較大值與一較小值的其中之一,該第二數值為該較大值與該較小值的其中另一。
- 如申請專利範圍第5項所述之排序裝置,其中該Y個複製電路的每一個包含一傳輸線路。
- 如申請專利範圍第5項所述之排序裝置,進一步包含:一選擇電路,耦接於該處理電路的輸出端與該處理電路的輸入端之間,用來於該第一輪 排序處理中,輸出該初始順序的該N個值給該處理電路;於該N輪的排序處理之一第M輪排序處理中,該選擇電路用來接收一第(M-1)輪排序結果,並輸出該第(M-1)輪排序結果給該處理電路,該M為介於該N與二之間的整數。
- 如申請專利範圍第8項所述之排序裝置,進一步包含:一計數器,耦接該選擇電路與該處理電路,用來輸出一計數值以控制該選擇電路與該處理電路的運作。
- 如申請專利範圍第5項所述之排序裝置,其中該N輪的排序結果包含一第(K-1)輪排序結果、一第K輪排序結果、與一第(K+1)輪排序結果,該K為介於(N-1)與一之間的一奇數或一偶數;當該K等於一時,該第(K-1)輪排序結果為該初始順序的該N個值;當該第K輪排序結果等於該第(K-1)輪排序結果以及該第(K+1)輪排序結果等於該第K輪排序結果時,該排序裝置中斷排序,並輸出該第(K+1)輪排序結果作為該第N輪排序結果。
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 TW202044015A (zh) | 2020-12-01 |
TWI730335B true 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) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0728624A (ja) * | 1993-07-13 | 1995-01-31 | Mitsubishi Electric Corp | ソート装置及びソート方法 |
FR2930459A1 (fr) * | 2008-04-25 | 2009-10-30 | Alfyma Ind Sarl | Dispositif de tri de dechets notamment menagers. |
JP2019037868A (ja) * | 2018-12-12 | 2019-03-14 | 株式会社三洋物産 | 遊技機 |
JP2019069328A (ja) * | 2019-02-12 | 2019-05-09 | 株式会社三洋物産 | 遊技機 |
Family Cites Families (5)
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 |
CN100578441C (zh) * | 2008-04-03 | 2010-01-06 | 启攀微电子(上海)有限公司 | 实现并行数据排序的硬件电路及方法 |
TWI638531B (zh) * | 2017-05-16 | 2018-10-11 | 瑞昱半導體股份有限公司 | 能夠加速重置之循序漸近暫存器式類比至數位轉換器 |
KR102343652B1 (ko) * | 2017-05-25 | 2021-12-24 | 삼성전자주식회사 | 벡터 프로세서의 서열 정렬 방법 |
-
2019
- 2019-05-15 CN CN201910400504.5A patent/CN111949241B/zh active Active
- 2019-06-04 TW TW108119268A patent/TWI730335B/zh active
-
2020
- 2020-05-08 US US16/869,883 patent/US11775255B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0728624A (ja) * | 1993-07-13 | 1995-01-31 | Mitsubishi Electric Corp | ソート装置及びソート方法 |
FR2930459A1 (fr) * | 2008-04-25 | 2009-10-30 | Alfyma Ind Sarl | Dispositif de tri de dechets notamment menagers. |
JP2019037868A (ja) * | 2018-12-12 | 2019-03-14 | 株式会社三洋物産 | 遊技機 |
JP2019069328A (ja) * | 2019-02-12 | 2019-05-09 | 株式会社三洋物産 | 遊技機 |
Also Published As
Publication number | Publication date |
---|---|
US11775255B2 (en) | 2023-10-03 |
TW202044015A (zh) | 2020-12-01 |
CN111949241A (zh) | 2020-11-17 |
US20200364029A1 (en) | 2020-11-19 |
CN111949241B (zh) | 2024-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11068265B2 (en) | Sequence alignment method of vector processor | |
JPH02500698A (ja) | データ依存処理能力を有するセルアレイ | |
US10101965B1 (en) | Method and apparatus for high speed streaming sorter | |
JP3515591B2 (ja) | 二進数を固定値と比較する並列化大きさ比較器 | |
TWI730335B (zh) | 排序裝置 | |
JP6613019B2 (ja) | パターンを探索する装置 | |
US6760737B2 (en) | Spatial median filter | |
US10592439B2 (en) | Arbitrating circuitry and method | |
EP0568373B1 (en) | Apparatus and method for parallelized magnitude comparison of digital data | |
EP0075684B1 (en) | Real-time ordinal-value filter utilizing half-interval ranking | |
US3794974A (en) | Digital flow processor | |
RU2362209C1 (ru) | Одномерный медианный фильтр с модульной архитектурой | |
US3221154A (en) | Computer circuits | |
RU2757829C1 (ru) | Устройство сравнения двоичных чисел | |
JP5960639B2 (ja) | 情報処理装置および情報処理方法 | |
González | Complex stochastic boolean systems: generating and counting the binary n-tuples intrinsically less or greater than u | |
SU1741271A2 (ru) | Преобразователь кодов | |
JPH0667844A (ja) | ソーティング方法およびソーティング回路 | |
US7225218B2 (en) | Apparatus and methods for generating counts from base values | |
RU1781680C (ru) | Устройство дл сортировки чисел | |
JP4428819B2 (ja) | 多入力データソーティング回路 | |
SU1383334A1 (ru) | Устройство дл выбора экстремального из @ @ -разр дных двоичных чисел | |
SU1453395A1 (ru) | Генератор функций Хаара | |
JP2956373B2 (ja) | 演算回路 | |
SU1509936A1 (ru) | Устройство дл вычислени пор дковых статистик последовательности двоичных чисел |