TWI511038B - 可重組之排序裝置與排序方法 - Google Patents

可重組之排序裝置與排序方法 Download PDF

Info

Publication number
TWI511038B
TWI511038B TW102121746A TW102121746A TWI511038B TW I511038 B TWI511038 B TW I511038B TW 102121746 A TW102121746 A TW 102121746A TW 102121746 A TW102121746 A TW 102121746A TW I511038 B TWI511038 B TW I511038B
Authority
TW
Taiwan
Prior art keywords
value
sorting
register
comparison
input
Prior art date
Application number
TW102121746A
Other languages
English (en)
Other versions
TW201501031A (zh
Inventor
Terng Yin Hsu
Wei Chi Lai
ying liang Chen
Original Assignee
Univ Nat Chiao Tung
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 Univ Nat Chiao Tung filed Critical Univ Nat Chiao Tung
Priority to TW102121746A priority Critical patent/TWI511038B/zh
Priority to US13/952,717 priority patent/US9417841B2/en
Publication of TW201501031A publication Critical patent/TW201501031A/zh
Application granted granted Critical
Publication of TWI511038B publication Critical patent/TWI511038B/zh

Links

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

Description

可重組之排序裝置與排序方法
本發明涉及一種可重組而具有低延遲時間的排序裝置,特別是一種包括有多個序列式比較單元以大小排列、位移等方法執行排序的排序裝置與方法。
不論是以硬體或是軟體的方式實現的排序器,都是常見於計算器中用於參與運算工作的重要工具之一,根據先前技術的估計,排序的工作在一般運算工作中占了近四分之一的運算資源,包括時間與記憶體的資源,因此改善排序演算方式是個重要的課題。
習知技術之一可參看美國專利第5440736號(申請日:1993年11月24日)所記載針對具有不同資料量記錄的排序器。此處理不同資料量的排序器在排序之前,先正規化(normalized)所取得的資料,並可已將這些不同資料量的資料分類為幾個組(subset),先對每個組的資料作排序,之後再將已經排序完成的各組資料組合,再做一次排序,最後進行合併。不過,此技術的排序步驟歷經分組、排序與最後的排序,在過程中會產生潛時(latency)的延遲問題,同時也會增加硬體的複雜度。
另一習知技術如美國專利第5535384號(申請日:1994年6月8日),其揭露一種控制硬體排序器合併的技術,可以執行大量資料排序,排序器有多個處理器、記憶體與選擇器,有多個排序 電路,經硬體串聯方式合併排序器,可以處理大量排序。
包括上述前案,習知技術在執行排序時,需要很大的硬體複雜度來減少系統可能延遲,若以較少複雜度執行排序,則可能會有較長延遲。另外,這類排序器不能重置化(re-configurability)。
緣是,本發明人有感上述問題之可改善,乃潛心研究並配合學理之運用,而提出一種設計合理且有效改善上述問題之本發明。
為了要降低排序的延遲(latency)狀況,並同時可以具有重置的功能,本發明提出一種在排序時僅會有很少的延遲,又可重組之排序器的方案,特別是以硬體為基礎的電路執行排序,適用於所有需要排序的電路硬體上。
根據實施例,可重組之排序方法係應用於多個序列相接的比較單元組成的可重組的排序裝置內,每個比較單元都包括兩個暫存器,排序裝置為可重組,使得排序裝置可以適用於多組欲進行排序的數值數目。
排序過程中,排序裝置先進入一輸入模式,在此輸入模式下,設定多個比較單元中的暫存器初始值為一最大值或一最小值,此處將根據排序的目的而設,比如當設定多個比較單元中的暫存器初始值為最大值時,所有參與排序的數值係由小至大輸出;若設定多個比較單元中的暫存器初始值為最小值時,所有參與排序的數值係由大至小輸出。
參與排序的數值接著輸入端逐一輸入到排序裝置內,由於排序裝置內的多個比較單元為序列相接,引此數值也會從第一個比較單元輸入,經輸入端輸入的數值將先暫存於此第一比較單元的暫存器,同時暫存輸入數值的暫存器內原有數值位移到另一比較 單元的暫存器。當每個比較單元接收到數值時,各比較單元會比對暫存其中的數值大小,再根據比對結果決定各暫存器的數值。根據排序的目的而可設定各暫存器所儲存的值為較大值,或是較小值。
之後重複上述步驟,直到所有參與排序的數值輸入完畢。經輸入完畢且完成必要的數值位移與調換後,整個排序裝置各比較單元的暫存器的數值大小將有一致的分佈,因此可以在輸入模式下輸出排序完成的數值。
接著進入輸出模式,輸出過程中,各數值將循序地經輸出端輸出,比如由前述第一比較單元循序輸出暫存器的數值,輸出後,鄰近此第一比較單元的下一個比較單元的暫存器數值位移到已輸出數值之暫存器。過程中,當各比較單元於所包括的暫存器數值改變時,即比對暫存其中的數值大小,根據排序的目的排列大小不同的數值,根據比對結果決定各暫存器的數值。
同樣重複上述輸出步驟,直到所有參與排序的數值輸出完成。
根據實施例,前述多個序列相接的比較單元組成的可重組的排序裝置可以以全部或一部分的比較單元參與特定的排序目的,也就是說,排序裝置的硬體可以根據排序需求重組為多個排序組,各排序組都會有各自的輸入端與輸出端,以充分利用這個硬體的功能。
當執行輸入或輸出數值時,多個數值之輸入係依循排序裝置所採用的時脈訊號,裝置的輸入模式與輸出模式係由一控制單元依據時脈訊號於多個數值輸入完成或輸出完成時執行切換,因此可以達成沒有延遲的排序作業。
硬體上,可重組之排序裝置包括有多個序列相接的比較單元,各比較單元包括兩個暫存器,另有控制單元電性連接這些多個序列相接的比較單元,用以控制比較單元進入輸入模式或輸出模 式,並控制其中暫存器的工作。各比較單元的基本電路有一執行數值比對的比較器,以及兩個多工器,可根據比較器之比較結果決定各比較單元內暫存器的數值。
為了能更進一步瞭解本發明為達成既定目的所採取之技術、方法及功效,請參閱以下有關本發明之詳細說明、圖式,相信本發明之目的、特徵與特點,當可由此得以深入且具體之瞭解,然而所附圖式與附件僅提供參考與說明用,並非用來對本發明加以限制者。
10‧‧‧控制單元
11,12,13‧‧‧比較單元
101‧‧‧控制連線
102‧‧‧輸入端
103‧‧‧輸出端
A,B‧‧‧暫存器
201‧‧‧第一控制連線
202‧‧‧第二控制連線
a‧‧‧第一排序組
b‧‧‧第二排序組
21,22,23,24,25‧‧‧比較單元
203‧‧‧第一組輸入端
204‧‧‧第一組輸出端
205‧‧‧第二組輸入端
206‧‧‧第二組輸出端
301‧‧‧時脈
31‧‧‧第一模式
32‧‧‧第二模式
In1‧‧‧第一數值
In2‧‧‧第二數值
401‧‧‧比較器
404‧‧‧比較訊號線
402‧‧‧第一多工器
403‧‧‧第二多工器
405,406‧‧‧線路
max‧‧‧最大值
min‧‧‧最小值
71‧‧‧第一比較單元
72‧‧‧第二比較單元
73‧‧‧第三比較單元
91‧‧‧第一比較單元
92‧‧‧第二比較單元
93‧‧‧第三比較單元
步驟S501‧‧‧第一模式開始
步驟S503‧‧‧初始設定暫存器數值為最大值或最小值
步驟S505‧‧‧循序經輸入端輸入數值
步驟S507‧‧‧輸入值使得原暫存器的值位移到鄰近的暫存器
步驟S509‧‧‧比較單元比對暫存器值的大小
步驟S511‧‧‧根據比對結果決定暫存器的值
步驟S513‧‧‧判斷是否完成輸入
步驟S515‧‧‧切換為第二模式
步驟S601‧‧‧第二模式開始
步驟S603‧‧‧經輸出端輸出最近比較單元的暫存器的較小值或較大值
步驟S605‧‧‧將值輸出使得原暫存器的值位移到鄰近暫存器中
步驟S607‧‧‧比較單元比對暫存器值的大小
步驟S609‧‧‧根據比對結果決定各暫存器的值
步驟S611‧‧‧判斷是否完成輸出
步驟S613‧‧‧完成排序
圖1顯示本發明可重組之排序裝置第一實施例示意圖; 圖2顯示本發明可重組之排序裝置第二實施例示意圖;圖3示意顯示本發明排序裝置輸入輸出資料的時脈圖;圖4顯示每個比較單元內的電路實施例示意圖;圖5所示之流程描述本發明可重組之排序方法實施例之一;圖6所示之流程描述本發明可重組之排序方法實施例之二;圖7示意顯示本發明執行排序的實施例之一;圖8示意顯示本發明執行排序的實施例之二;圖9示意顯示本發明執行排序的實施例之三;圖10示意顯示本發明執行排序的實施例之四。
本揭露書揭示了一種可重組之排序裝置與排序方法,透過其中排序裝置與排序流程的設計,可以達成低延遲(latency)或不延遲的目的,揭露書所提出排序裝置是以硬體為基礎的電路,可適用於所有需要排序的電路硬體上,除了可降低排序的延遲狀況,更同時提供可重組的功能。
[第一實施例]
實施例可參考圖1所示可重組之排序裝置第一實施例示意圖,硬體上,排序裝置包括有多個序列(serially)相接的比較單元11,12,13,數量可以根據排序目的而彈性設計,特別是,若參與排序的數值數量沒有需要用到所有的比較單元,此擁有多個序列相接比較單元的排序裝置可以重組(reconfigure)為一或多個排序組(sorting group),同時或不同時地處理不同的排序作業。
再如圖例可知,可重組的排序裝置中的比較單元11,12,13各有兩個暫存器(register)A,B,整體在第一個比較單元11上設有排序裝置的輸入端102與輸出端103,參與排序的多個數值將經由此輸入端102輸入並先暫存於比較單元11的暫存區A內;完成輸入後,再經由輸出端103循序輸出。
排序裝置設有一個控制電路,如圖示的控制單元10,控制單元10經控制連線101連線各比較單元11,12,13,主要目的是控制比較單元11,12,13運作於輸出模式或是輸入模式。控制單元10包括控制各暫存器A,B的存取動作,包括抹除資料、寫入數值,包括鄰近暫存器數值,與提供外部裝置讀出其中數值等的工作。
值得一提的是,可參閱圖3示意顯示之排序裝置輸入輸出資料的時脈圖,其中顯示時脈301,以及裝置在第一模式31與第二模式32與時脈301的關係。裝置中,透過控制單元10或是裝置提供的時脈訊號(clock),在第一模式(如輸入模式)下決定輸入值何時被寫入排序裝置的暫存器,在第二模式(如輸出模式)下決定裝置何時讀取暫存器數值。如圖所示,揭露書所揭示的排序裝置因為循序輸入與輸出數值,每個存取步驟與兩個模式之間切換都是循著時脈301的動作,因此可以在沒有時脈延遲(latency)下完成排序工作。
[第二實施例]
圖2顯示本發明可重組之排序裝置第二實施例示意圖,排序裝置根據欲進行排序的數值數目為可重組,而經重組的不同排序組可為數量不一的比較單元組成的多個排序組。
圖示有一控制單元10,作為控制整個排序裝置運作的控制電路,此例中顯示有兩個控制連線:第一控制連線201、第二控制連線202,分別電性連接到兩組分別由數量不一的比較單元(21,22,23,24,25)組合的不同的排序組:第一排序組a、第二排序組b。藉此連線控制多個序列相接的比較單元(21,22,23,24,25)進入輸入模式或輸出模式。此示意圖並非用以限制本發明所能實現的可重組的排序裝置。
此例顯示第一排序組a包括有比較單元21,22,各比較單元有兩個暫存器A,B,並具有第一組輸入端203與第一組輸出端204;第二排序組b中有比較單元23,24,25,具有第二組輸入端205與第二組輸出端206。兩組排序組可以分別同時或不同時處理不同,的排序作業,不同的輸入端(203,205)可以分別輸入參與排序的數值。
再參考圖3顯示的時脈示意圖,輸入與輸出模式(31,32)下的每個存取步驟與兩個模式之間切換都是循著時脈301的動作,在完成輸入數值後(第一模式31),緊接著可在下一個時脈週期切換為輸出模式(第二模式32),因此可以在沒有時脈延遲(latency)下完成排序工作。
圖4接著示意顯示每個比較單元內的電路實施例。
每個比較單元中有兩個暫存器A,B,分別連接到兩個多工器(multiplex):第一多工器402、第二多工器403;有一個比較電路,如圖示的比較器401,經輸入兩個數值:第一數值In1與第二數值In2,比較器401即進行數值大小比對,之後根據整個排序的需求,可以相關電路可以決定欲排入暫存器A,B的值為較大或較小的值。
當第一數值In1、第二數值In2輸入到比較器401進行比對,產生的結果經比較訊號線404決定第一多工器402、第二多工器403寫入到暫存器A,B的路線,多工器402,403將根據比較器401的比較結果決定輸出到暫存器A,B的值,也就是決定輸入的第一數值In1、第二數值In2沿著線路405或406的寫入路線,數值In1、In2將透過多工器輸出到暫存器A或暫存器B。
[輸入模式]
圖5顯示可重組之排序方法在第一模式的實施例。
步驟開始如S501,硬體上,可由前述控制單元控制各參與排序的比較單元進入第一模式;接著,如步驟S503,在各個參與排序的比較單元中的暫存器初始設定為最大值或最小值。設為最大值或最小值的決定係根據排序的目的而定,比如,若有多個數值欲進行由小至大的排序,也就是這些未排序的數值將經由排序裝置由小至大循序輸出,此時,在一實施例中,每個暫存器的初始值應設為最大值(max),因此在進行大小比較時,可以讓較大值逐漸向序列排列較後的比較單元位移,同時讓較小值保留在接近輸入端的比較單元內,藉此方便由小至大輸出的目的。可參閱圖7,圖8所描述的實施例。反之,若欲由大至小排列,暫存器的初始值將設為最小值min,在比對時可以讓較小值先移入離輸出端較遠的比較單元內,讓較大值先輸出而達到由大至小的排序目的。
經設定初始值後,如步驟S505,參與排序的數值經排序裝置之輸入端循序輸入,從第一個數值輸入開始;再如步驟S507,輸入值使得原暫存器的值位移到另一比較單元的暫存器,比如鄰近連接的暫存器,如圖7實施例所示,位移的步驟為將數值橫向移到鄰近的暫存區內。
接著,如步驟S509,完成位移的數值在各個比較單元中進行大小比對,也就是當各比較單元於所包括的暫存器數值改變時,即比對各比較單元內的兩個暫存器值的大小;如步驟S511,根據 設計,比對結果將決定各暫存器的值,比如在一個比較單元內,較大值置於某一暫存器內,另一暫存器則儲存較小值。
在步驟S513判斷是否全部的數值完成輸入?若否,則步驟回到S505,重複位移、大小比對與決定暫存位置等步驟,直到輸出全部的數值(是),步驟即執行S515,切換為第二模式。
[輸出模式]
圖6所示之流程描述可重組之排序方法在第二模式下的實施例。經完成輸入參與排序的所有數值後,硬體上透過控制單元控制各參與排序的比較單元處於第二模式,如步驟S601。
步驟S603,經過前述輸入階段已經將所有數值安排於適當的暫存器上,此時,經由輸出端輸出最近比較單元的暫存器的較小值或較大值。以上例來說,接近裝置之輸出端的比較單元為第一比較單元,若以從小至大排序的目的為例,由第一比較單元可以直接輸出最小值,接著循序有小至大輸出經排序的數值。
如步驟S605,當有輸出數值時,鄰近暫存器的值將位移到輸出值之原暫存器,可參閱圖8所示的實施例,當有輸出數值時,原暫存此數值的暫存器將由鄰近的暫存器值位移至此,並依此類推於全部參與排序的比較單元。再如步驟S607,完成位移步驟後,比較單元將得知所屬暫存器的數值有改變,因此比對暫存器值的大小,之後如步驟S609,根據比對結果決定各暫存器的值。可參閱圖7,8所描述的實施例,依據需求將較大值或較小值至於各比較單元內的特定暫存器內。
步驟進行S611,判斷是否完成輸出?若未完成輸出全部數值(否),則回到步驟S603,重複輸出、位移以及必要之位置調換,直到完成輸出,也就是如步驟S613所示,完成排序。
在上述圖5與圖6所描述的實施例步驟中,排序工作可僅由部份可重組排序裝置中之全部或一部分比較單元參與排序作業,因此在開始步驟(如圖5之步驟S501)之前,進入輸入模式前, 排序裝置可以根據參與排序的數值的數目配置一參與排序的排序組,排序組包括多個大約對應數值數目的比較單元,也就是揭露書所提到的排序裝置可根據參與排序的數值狀況配置為一或多個有各自輸入輸出端口的排序組。
圖7列舉其中之一例,此例顯示以五個序列連接的比較單元達成5個數值(3,8,5,9,2)由小至大的排序工作。
其中圖7(a)顯示有三個比較單元,分別為第一比較單元71、第二比較單元72、第三比較單元73,每個比較單元內都有兩個用來暫存數值的暫存器,根據此例以由小至大排序的目的,各參與排序的比較單元內的所有暫存器將初始值設為最大值(max),也就是比任何輸入數值都大的值,而此例設計在各個比較單元內較大值將置入上方的暫存器中,輸入端也設於連接第一比較單元71上方。
圖7(b)顯示在下一個時脈週期(cycle)由一輸入端輸入第一個數值”3”到第一比較單元71,第一比較單元71即為鄰接輸入端的第一個比較單元,暫存此數值”3”的暫存器原本應該為第一比較單元71上方的那個暫存器,但因為與另一個暫存器(下方)的最大值(max)比較為小,因此經比對後置入下方暫存器,上方暫存器則仍為最大值(max)。
圖7(c)顯示在下一個時脈週期由輸入端輸入第二個數值”8”,同樣先輸入置於第一比較單元71上方的暫存器,此時,原本儲存的最大值(max)將位移(推)至鄰近的第二比較單元72的同列暫存器。此時第一比較單元71中兩個暫存器分別儲存數值”8”與”3”,經比較後,較大值置於上方。
圖7(d)顯示在下一個時脈週期由輸入端輸入第三個數值”5”,先輸入置於第一比較單元71上方的暫存器,原本的數值”8”位移至鄰近的第二比較單元72。在第二比較單元72中,數值”8”與另一暫存的最大值(max)比較,較大的最大值(max)置於上方暫 存器,數值”8”則置於下方。在第一比較單元71中,比較數值”5”與”3”,較大的數值”5”置於上方暫存器。
圖7(e)顯示在下一個時脈週期由輸入端輸入第四個數值”9”,同樣置入第一比較單元71鄰近輸入端的暫存器中,原本數值”5”位移到第二比較單元72,並與第二比較單元72原本已存在的數值”8”比對,較大的數值”8”置於上方暫存器中。在第一比較單元71,此步驟輸入的數值”9”與原本另一個暫存器的數值”3”比對,較大的數值”9”置於上方暫存器中。
圖7(f)顯示在下一個時脈週期由輸入端輸入第五個數值”2”,先暫存於第一比較單元71上方的暫存器,原本此暫存器的數值”9”位移到第二比較單元72同列的暫存器;同理,原本儲存於此處的數值”8”則位移到第三比較單元73的暫存器。在第三比較單元73中,此步驟置入的數值”8”與另一暫存器最大值(max)比較,數值”8”為小,置於下方暫存器。在第二比較單元72中,此步驟位移進來的數值”9”與原本另一個下方暫存器內的數值”5”比對為大,因此保留在上方暫存器。在第一比較單元71則比對剛輸入的數值”2”與原本下方暫存器的數值”3”,較大的數值”3”置於上方暫存器,兩個暫存器的數值”2”與”3”的位置調換。
圖7顯示輸入完成後,各個比較單元內相鄰的暫存器暫存類似屬性的數值,比如上方的暫存器皆儲存較大值,下方暫存器則儲存較小值,兩值相同時可以不用更動位置,僅循序置入即可。
圖8接著顯示輸出圖7完成輸入的數值,透過本發明提出的排序方法,可以順利由小至大輸出數值,達成排序的目的。
接續圖7(f)完成輸入的結果,圖8(a)顯示輸出端設於第一比較單元71的下方暫存器中,經過圖7的比對處理後,所有比較單元下方的暫存器顯然儲存為相對較小值,上方同一列的暫存器則儲存較大的數值。此圖顯示首先輸出數值”2”,為這些數值最小的。輸出時,第二比較單元72中下方暫存器原本儲存的數值”5”則位 移到第一比較單元71,再與原本暫存(上方)的數值”3”比對,較大值”5”置於上方;同時第三比較單元73下方暫存器的數值”8”位移到第二比較單元72,經過與同一比較單元暫存的數值”9”比對後,較大的數值”9”仍置於上方暫存器。
圖8(b)顯示接著經由輸出端就近輸出第一比較單元71下方暫存器的數值”3”,同理,鄰近第二比較單元72的下方暫存器數值”8”位移至第一比較單元71,並與原本暫存於第一比較單元71的數值”5”比對,較大值”8”置於上方暫存器;第二比較單元72原本暫存的數值”9”則與填補的最大值(max)比對為小,數值”9”置入第二比較單元72下方的暫存器。
圖8(c)顯示接著輸出數值”5”,第二比較單元72原本下方暫存器的數值”9”位移至第一比較單元71,與原本暫存的數值”8”比對,較小的數值”8”置於下方暫存器。
圖8(d)顯示輸出數值”8”,剩下暫存於第一比較單元71的數值”9”與填補的初始值最大值(max)比較為小,調換為下方的暫存器中。
最後,如圖8(e)所示,最後輸出就近輸出端的數值”9”,即完成輸出全部數值。
根據圖8的輸入步驟描述,依據時脈週期循序輸出的數值為2,3,5,8,9,達成由小至大的排序目的。此例排序規則顯示由上方暫存器經輸入端循序輸入,上方暫存器將依序位移,經比對後決定各比較單元內暫存器的數值,上方暫存器儲存較大值,下方暫存器儲存較小值。之後由下方暫存器經輸出端循序輸出,同樣下方暫存器依序位移填補被輸出的前一個暫存器數值,再經比對後決定各比較單元的暫存器的數值,同樣上方暫存器儲存較大值,下方暫存器儲存較小值。
圖9與圖10示意顯示本發明執行由大至小排序的例子。
圖9(a)示意圖顯示有第一比較單元91、第二比較單元92、第 三比較單元93,所有的暫存器初始值先設為最小值(min),此例運行時,與前述圖7,8所載實施例不同,比較數值後係將較大的值放在下面的暫存器,較小值放在上面的暫存器,兩值相同可以不用更動位置。
圖9(b)顯示在下一個時脈週期由輸入端輸入第一個數值”3”,數值”3”與預設與第一比較單元912暫存器內的最小值(min)比對,較大值置於下方暫存器,所以數值”3”經調換後置於下方暫存器。
圖9(c)顯示在下一個時脈週期輸入數值”8”,同理與第一比較單元91已暫存的數值”3”比對,較大的數值”8”置於下方。
圖9(d)顯示輸入下一個數值”5”,此時原暫存於第一比較單元91上方的數值”3”位移到第二比較單元92,並與其中最小值(min)比對,較大的數值”3”調換到下方暫存器;同時第一比較單元91比較輸入的數值”5”與原暫存的數值”8”,較大的數值”8”置於下方暫存器。
圖9(e)顯示輸入數值”9”至第一比較單元91,其中置於上方暫存器的數值”5”位移到鄰近的第二比較單元92後與其中暫存的數值”3”比對,同樣較大的數值”5”置於下方暫存器內;此週期輸入的數值”9”與第一比較單元91先前暫存的數值”8”比對,較大的置於下方暫存器。
圖9(f)顯示輸入最後一個數值”2”,與其中下方暫存器的數值”9”比對為小,較大的數值”9”置於下方;第一比較單元91上方暫存器的數值”8”位移到第二比較單元92,與第二比較單元92中暫存的數值”5”比對為大,較大的數值”8”置於下方暫存器;原第二比較單元92上方暫存器的數值”3”位移到第三比較單元93,再與其中暫存的最小值(min)比對,較大的數值”3”置於下方。
上述各輸入數值係依著時脈週期循序輸入,數值在其中各比較單元之間進行位移、比對與調換,形成如圖9(f)所示的樣態。
圖10接著顯示延續圖9(f)完成輸入的數值接著由輸出端輸出的示意圖。
圖10(a)顯示輸出端設於鄰近第一比較單元91下方暫存器的位置,能就近直接輸出此暫存器所儲存的數值,此例先輸出數值”9”,同時,第二比較單元92的下方暫存器數值”8”即位移到第一比較單元91,且經比對後比另一數值”2”大,即置於下方暫存器;原第三比較單元93下方暫存器的數值”3”位移到第二比較單元92,經與暫存的數值”5”比對為小,較大的數值”5”置於下方暫存器。
圖10(b)顯示接著輸出暫存於第一比較單元91下方暫存器的數值”8”,第二比較單元92下方暫存的數值”5”位移到第一比較單元91。因此,第一比較單元91中較大的數值”5”置於下方暫存器;第二比較單元92中較大的數值”3”與另一填補的最小值(min)比較後為大,置於下方暫存器中。
圖10(c)顯示輸出數值”5”,第二比較單元92暫存的數值”3”位移到第一比較單元91,再經第一比較單元91比對決定暫存器的值。
圖10(d)顯示接著輸出數值”3”,同時剩下的數值”2”與填補的初始值最小值(min)比對為大,置於下方暫存器;第10(e)顯示最後輸出數值”2”,完成輸出。
根據圖10的輸出步驟,循序輸出數值9,8,5,3,2,達成從大至小排序的目的。
綜上所述,根據揭露書所載實施例,本發明所提出可以重組的排序方法,以及達成此方法的排序裝置,其特色之一包括以多個序列相接的比較單元執行位移(shift)、比對與調換(swap)等動作,並不需要很大的運算量和硬體,同時可以兼顧低延遲時間的優點。更者,經過重組後,排序裝置可以同時處理不同排序組的工作,提供採用本發明排序裝置的相關產品使用效率、成本降低、架構簡化的優點。
惟以上所述僅為本發明之較佳可行實施例,非因此即侷限本發明之專利範圍,故舉凡運用本發明說明書及圖示內容所為之等效結構變化,均同理包含於本發明之範圍內,合予陳明。
10‧‧‧控制單元
11,12,13‧‧‧比較單元
101‧‧‧控制連線
102‧‧‧輸入端
103‧‧‧輸出端
A,B‧‧‧暫存器

Claims (7)

  1. 一種可重組之排序方法,應用於多個序列相接的比較單元組成的可重組的排序裝置內,其中該排序裝置所包括的多個比較單元之全部或一部分參與該排序步驟,各比較單元包括兩個用來暫存數值的暫存器,該排序裝置根據參與排序的數值的數目配置一參與排序的排序組,該排序組包括多個對應該數值數目的比較單元,其中該排序裝置根據參與排序的數值狀況配置為一或多個排序組,各排序組設有各自的輸入端與輸出端,該方法包括:進入一輸入模式,步驟包括:(1)設定該多個比較單元中的暫存器初始值為一最大值或一最小值,該排序裝置設有一輸入端與一輸出端;(2)經該輸入端逐一輸入參與排序的多個數值;(3)經該輸入端輸入的數值暫存於該多個序列相接的比較單元之一第一比較單元的暫存器,且暫存該輸入數值的暫存器內原有數值位移到另一比較單元的暫存器;(4)當各比較單元於所包括的暫存器數值改變時,即比對暫存其中的數值大小,再根據比對結果決定各暫存器的數值;(5)重複步驟(2),(3),(4),直到所有參與排序的數值輸入完畢;進入一輸出模式,步驟包括:(6)經該輸出端循序由該第一比較單元輸出暫存器的數值;(7)鄰近該第一比較單元的下一個比較單元的暫存器數值位移到已輸出數值之暫存器;(8)當各比較單元於所包括的暫存器數值改變時,即比對 暫存其中的數值大小,再根據比對結果決定各暫存器的數值;(9)重複步驟(6),(7),(8),直到所有參與排序的數值輸出完成。
  2. 如申請專利範圍第1項所述的可重組之排序方法,其中,當設定該多個比較單元中的暫存器初始值為該最大值時,所有參與排序的數值係由小至大輸出。
  3. 如申請專利範圍第1項所述的可重組之排序方法,其中,當設定該多個比較單元中的暫存器初始值為該最小值時,所有參與排序的數值係由大至小輸出。
  4. 如申請專利範圍第1項所述的可重組之排序方法,其中該多個數值之輸入係依循該排序裝置所採用的時脈訊號;該輸入模式與該輸出模式係由一控制單元依據該時脈訊號於該多個數值輸入完成或輸出完成時執行切換。
  5. 一種執行如申請專利範圍第1項所述的可重組之排序方法的排序裝置,包括:該多個序列相接的比較單元,其中各比較單元包括兩個用來暫存數值的暫存器,該排序裝置為可重組;一控制單元,電性連接該多個序列相接的比較單元,用以控制該多個序列相接的比較單元進入該輸入模式或該輸出模式;其中,該可重組的多個序列相接的比較單元根據重組形成一或多個排序組,各排序組設有各自的一輸入端與一輸出端。
  6. 如申請專利範圍第5項所述的排序裝置,其中該多個排序組各自與該控制單元連線,該控制單元分別控制各排序組之運作。
  7. 如申請專利範圍第5項所述的排序裝置,其中各比較單元包括:一執行數值比對的比較器;以及兩個多工器,根據該比較器之比較結果決定各比較單元內各暫存器的數值。
TW102121746A 2013-06-19 2013-06-19 可重組之排序裝置與排序方法 TWI511038B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW102121746A TWI511038B (zh) 2013-06-19 2013-06-19 可重組之排序裝置與排序方法
US13/952,717 US9417841B2 (en) 2013-06-19 2013-07-29 Reconfigurable sorter and method of sorting

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW102121746A TWI511038B (zh) 2013-06-19 2013-06-19 可重組之排序裝置與排序方法

Publications (2)

Publication Number Publication Date
TW201501031A TW201501031A (zh) 2015-01-01
TWI511038B true TWI511038B (zh) 2015-12-01

Family

ID=52111834

Family Applications (1)

Application Number Title Priority Date Filing Date
TW102121746A TWI511038B (zh) 2013-06-19 2013-06-19 可重組之排序裝置與排序方法

Country Status (2)

Country Link
US (1) US9417841B2 (zh)
TW (1) TWI511038B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9268863B2 (en) 2014-06-03 2016-02-23 International Business Machines Corporation Hierarchical in-memory sort engine
US10216478B2 (en) 2016-03-30 2019-02-26 International Business Machines Corporation Increasing radix sorting efficiency utilizing a crossover point
US11900498B2 (en) 2020-03-19 2024-02-13 Intel Corporation Apparatus and method for performing a stable and short latency sorting operation
US20240036818A1 (en) * 2022-07-27 2024-02-01 Untether Ai Corporation Computational memory for sorting multiple data streams in parallel

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0109426B1 (en) * 1982-05-06 1989-08-16 AT & T Technologies, Inc. Sorting technique
TW207013B (en) * 1993-02-19 1993-06-01 Nat Science Committee Architecture of optimal high-speed sorter
CN101261576A (zh) * 2008-04-03 2008-09-10 启攀微电子(上海)有限公司 实现并行数据排序的硬件电路及方法
TW200844846A (en) * 2007-05-15 2008-11-16 Himax Tech Ltd Method to compare and sort binary data

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3073208B2 (ja) * 1989-09-07 2000-08-07 キヤノン株式会社 データ選出装置
US5216420A (en) * 1990-07-12 1993-06-01 Munter Ernst A Matrix sorting network for sorting N inputs onto N outputs
JPH0728624A (ja) 1993-07-13 1995-01-31 Mitsubishi Electric Corp ソート装置及びソート方法
US5440736A (en) 1993-11-24 1995-08-08 Digital Equipment Corporation Sorter for records having different amounts of data
US8171069B2 (en) * 2008-04-10 2012-05-01 International Business Machines Corporation Streaming digital data filter

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0109426B1 (en) * 1982-05-06 1989-08-16 AT & T Technologies, Inc. Sorting technique
TW207013B (en) * 1993-02-19 1993-06-01 Nat Science Committee Architecture of optimal high-speed sorter
TW200844846A (en) * 2007-05-15 2008-11-16 Himax Tech Ltd Method to compare and sort binary data
CN101261576A (zh) * 2008-04-03 2008-09-10 启攀微电子(上海)有限公司 实现并行数据排序的硬件电路及方法

Also Published As

Publication number Publication date
TW201501031A (zh) 2015-01-01
US20140379735A1 (en) 2014-12-25
US9417841B2 (en) 2016-08-16

Similar Documents

Publication Publication Date Title
US20190114499A1 (en) Image preprocessing for generalized image processing
Akl Parallel sorting algorithms
JP3247196B2 (ja) セル状のプログラマブル論理集積回路をプログラミングするための方法及び装置
TWI511038B (zh) 可重組之排序裝置與排序方法
US6526557B1 (en) Architecture and method for partially reconfiguring an FPGA
US7120903B2 (en) Data processing apparatus and method for generating the data of an object program for a parallel operation apparatus
US5892961A (en) Field programmable gate array having programming instructions in the configuration bitstream
US8301947B1 (en) Dynamic scan chain grouping
WO2007119300A1 (ja) 再構成可能デバイスのテストシステム及びその方法並びにそれに用いる再構成可能デバイス
US11294851B2 (en) Reconfigurable reduced instruction set computer processor architecture with fractured cores
JP2009003765A (ja) データ処理装置およびその制御方法
JP7132043B2 (ja) リコンフィギュラブルプロセッサ
JP2006099719A (ja) 処理装置
CN108491924A (zh) 一种面向人工智能计算的神经网络数据串行流水处理装置
CN112257368A (zh) 时钟布局方法、装置、eda工具及计算机可读存储介质
US20050229124A1 (en) Distributed BDD reordering
US20080204072A1 (en) Programmable Logic Device
US7509479B2 (en) Reconfigurable global cellular automaton with RAM blocks coupled to input and output feedback crossbar switches receiving clock counter value from sequence control unit
CN115905233A (zh) 归并树形数据排序系统和排序方法
JP2021108104A (ja) 部分的読み取り/書き込みが可能な再構成可能なシストリックアレイのシステム及び方法
US9621159B2 (en) Reconfigurable semiconductor integrated circuit and electronic device
CN102169332B (zh) 一种并行执行多个独立的时序程序的可编程序控制器
US20090009216A1 (en) Reconfigurable integrated circuits with scalable architecture including a plurality of special function elements
CN108875301A (zh) 一种基因序列比对方法、pe配置控制器及可读存储介质
JP2003099488A (ja) 論理整合化装置

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees