implementacija bubble sort algoritma u o(n) vremenu …r)an_1955-2006/...implementacija bubble sort...

4
IMPLEMENTACIJA BUBBLE SORT ALGORITMA U O(n) VREMENU NA CELL MATRIX ARHITEKTURI Dimitrije Dinić, Elektrotehnički fakultet,Univerzitet u Beogradu Sadržaj – U okviru ovog rada predstavljamo Cell Matrix arhitekturu, računarsku arhitekturu novijeg datuma, i prikazujemo hardversku implementaciju elektronskog kola koje realizuje algoritam sortiranja n-bitnih binarnih brojeva u O(n) vremenu. Odabran je algoritam ‘Bubble Sort’ kao najnepovoljniji slučaj sortiranja na sekvencijalnim mašinama. Rad je podeljen u tri dela i obuhvata: - prikazivanje fundamentalnih koncepta Cell Matrix arhitekture - razmatranja problema poznatih algoritama za sortiranje na sekvencijalnim mašinama - hardversku realizaciju algoritma za sortiranje na Cell Matrix arhitekturi. 1. UVOD Predmet ovog rada je specifična računarska arhitektura, koja sa sobom donosi koncepte koji nisu karakteristični za računarske sisteme u širokoj upotrebi (Von Neumann-ova arhitektura). Tema rada je hardversko rešenje, problema koji se tipično rešava softverski na sekvencijalnim mašinama, problema sortiranja. Prednost ovakvog rešenja je povećanje efikasnosti algoritma sortiranja, primenom arhitekture kojoj je jedna od glavnih odlika paralelna obrada podataka. 2. CELL MATRIX ARHITEKTURA Cell Matrix je digitalna računarska arhitektura [1] sastavljena isključivo od međusobno identičnih procesnih jedninica - ’ćelija’, raspoređenih u 2D matricu, koje razmenjuju bite informacija samo sa neposrednim susedima, kako je prikazano na slici 2.1. Slika 2.1 Slika 2.2 Svi signali kojima raspolaže jedna pojedinačna ćelija, su digitalne prirode i prikazani su na slici 2.2 Signali sa prefiksom d i D su namenjeni obradi podataka, dok su signali sa prefiksom c i C kontrolni signali. Simboli W, E, S i N prikazuju stranu na kojoj se nalaze digitalne veze sa susednim ćelijama ( zapad, istok, jug i sever respektivno). Sve prikazane digitalne veze su jednobitne. Uloga pojedinih signala je objašnjena u narednom izlaganju o modovima rada ćelija. Fundamentalni koncepti na kojima se zasniva Cell Matrix su: - homogenost i lokalne veze medju procesnim jedinicama - masovna paralelna obrada podataka - dinamička promena ponašanja procesnih jedinica, na lokalnom nivou medju susednim procesnim jedninicama (samo-rekonfiguracija sistema) - otpornost na greške u hardveru, kao posledica mogućnosti detekcije neispravnih procesnih jedninca i samo-rekonfiguracije. Nabrojani kocepti proizilaze iz konstrukcije elementarne procesne jedinice – ćelije. Svaka ćelija Cell Matrix arhitekture se može nalaziti u dva suštinski različita moda rada, D mod (Data Processing Mode) i C mod (Configuration Mode). D mod (Data Process Mode) Da bi se ćelija Cell Matrix arhitekture našla u D modu, neophodno je da svi ulazni kontrolni signali budu u stanju logičke nule ‘0’ (signali cN, cE, cS, cW) kako je prikazano na slici 2.3. Slika 2.3 Slika 2.4 Tada ćelija učestvuje u procesu obrade podataka, funkcioniše kao prosta kombinaciona mreža, formirajući izlazne signale (DN, DE ,DS, DW, CN, CE, CS, CW) na osnovu ulaznih signala (dN, dE, dS, dW). Svaka ćelija Cell Matrix athitekture je snabdevena sa lookup tabelom (interna RAM 16x8 memorija), kojoj ćelija duguje svoje ponašanje u D modu (slika 2.4) Zbornik radova 50. Konferencije za ETRAN, Beograd, 6-8. juna 2006, tom I Proc. 50th ETRAN Conference, Belgrade, June 6-8, 2006, Vol. I 31

Upload: trinhngoc

Post on 25-Aug-2019

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: IMPLEMENTACIJA BUBBLE SORT ALGORITMA U O(n) VREMENU …R)AN_1955-2006/...IMPLEMENTACIJA BUBBLE SORT ALGORITMA U O(n) VREMENU NA CELL MATRIX ARHITEKTURI Dimitrije Dinić, Elektrotehnički

IMPLEMENTACIJA BUBBLE SORT ALGORITMA U O(n) VREMENU NA CELL MATRIX ARHITEKTURI

Dimitrije Dinić, Elektrotehnički fakultet,Univerzitet u Beogradu

Sadržaj – U okviru ovog rada predstavljamo Cell Matrix arhitekturu, računarsku arhitekturu novijeg datuma, i prikazujemo hardversku implementaciju elektronskog kola koje realizuje algoritam sortiranja n-bitnih binarnih brojeva u O(n) vremenu. Odabran je algoritam ‘Bubble Sort’ kao najnepovoljniji slučaj sortiranja na sekvencijalnim mašinama. Rad je podeljen u tri dela i obuhvata:

- prikazivanje fundamentalnih koncepta Cell Matrix

arhitekture - razmatranja problema poznatih algoritama za

sortiranje na sekvencijalnim mašinama - hardversku realizaciju algoritma za sortiranje na

Cell Matrix arhitekturi. 1. UVOD

Predmet ovog rada je specifična računarska arhitektura,

koja sa sobom donosi koncepte koji nisu karakteristični za računarske sisteme u širokoj upotrebi (Von Neumann-ova arhitektura). Tema rada je hardversko rešenje, problema koji se tipično rešava softverski na sekvencijalnim mašinama, problema sortiranja. Prednost ovakvog rešenja je povećanje efikasnosti algoritma sortiranja, primenom arhitekture kojoj je jedna od glavnih odlika paralelna obrada podataka. 2. CELL MATRIX ARHITEKTURA

Cell Matrix je digitalna računarska arhitektura [1] sastavljena isključivo od međusobno identičnih procesnih jedninica - ’ćelija’, raspoređenih u 2D matricu, koje razmenjuju bite informacija samo sa neposrednim susedima, kako je prikazano na slici 2.1.

Slika 2.1 Slika 2.2 Svi signali kojima raspolaže jedna pojedinačna ćelija, su

digitalne prirode i prikazani su na slici 2.2 Signali sa prefiksom d i D su namenjeni obradi podataka, dok su signali sa prefiksom c i C kontrolni signali. Simboli W, E, S i N prikazuju stranu na kojoj se nalaze digitalne veze sa susednim

ćelijama ( zapad, istok, jug i sever respektivno). Sve prikazane digitalne veze su jednobitne. Uloga pojedinih signala je objašnjena u narednom izlaganju o modovima rada ćelija.

Fundamentalni koncepti na kojima se zasniva Cell

Matrix su: - homogenost i lokalne veze medju procesnim

jedinicama - masovna paralelna obrada podataka - dinamička promena ponašanja procesnih jedinica, na

lokalnom nivou medju susednim procesnim jedninicama (samo-rekonfiguracija sistema)

- otpornost na greške u hardveru, kao posledica mogućnosti detekcije neispravnih procesnih jedninca i samo-rekonfiguracije.

Nabrojani kocepti proizilaze iz konstrukcije elementarne

procesne jedinice – ćelije. Svaka ćelija Cell Matrix arhitekture se može nalaziti u dva suštinski različita moda rada, D mod (Data Processing Mode) i C mod (Configuration Mode). D mod (Data Process Mode)

Da bi se ćelija Cell Matrix arhitekture našla u D modu, neophodno je da svi ulazni kontrolni signali budu u stanju logičke nule ‘0’ (signali cN, cE, cS, cW) kako je prikazano na slici 2.3. Slika 2.3 Slika 2.4

Tada ćelija učestvuje u procesu obrade podataka, funkcioniše kao prosta kombinaciona mreža, formirajući izlazne signale (DN, DE ,DS, DW, CN, CE, CS, CW) na osnovu ulaznih signala (dN, dE, dS, dW). Svaka ćelija Cell Matrix athitekture je snabdevena sa lookup tabelom (interna RAM 16x8 memorija), kojoj ćelija duguje svoje ponašanje u D modu (slika 2.4)

Zbornik radova 50. Konferencije za ETRAN, Beograd, 6-8. juna 2006, tom I Proc. 50th ETRAN Conference, Belgrade, June 6-8, 2006, Vol. I

31

Page 2: IMPLEMENTACIJA BUBBLE SORT ALGORITMA U O(n) VREMENU …R)AN_1955-2006/...IMPLEMENTACIJA BUBBLE SORT ALGORITMA U O(n) VREMENU NA CELL MATRIX ARHITEKTURI Dimitrije Dinić, Elektrotehnički

C mod (Configuration Mode)

Suštinska odlika Cell Matrix arhitekture je mogućnost da se ponašanje svake pojedine ćelije promeni dinamički, od strane neposrednog suseda. Ako je bar jedan ulazni kontrolni signal na nivou logičke jedinice ‘1’ tada ćelija prelazi u C mod, kada se menja njena lookup tabela, a samim tim i njen način ponašanja u sistemu.

Slika 2.5

Nova lookup tabela se upisuje bit po bit, sa d ulaza, na

onoj strani na kojoj se pojavio kontrolni signal c, koji je aktivirao C mod, sto je prikazano na slici 2.5. Istovremeno se postojeća lookup tabela, bit po bit pojavljuje na D izlazu, na istoj spomenutoj strani. Ovaj proces se dešava sinhrono sa globalnim CLOCK signalom, koji je zajednički za sve ćelije i utiče na rad samo kada je ćelija u C modu.

Algoritam za sortiranje koji je tema ovog rada je implementiran korišćenjem samo D moda rada ćelija, koristeći prirodnu orjentaciju Cell Matrix arhitekture ka paralelnoj obradi podataka. C mod rada ćelija omogućava veoma kompleksna ponašanja implementiranih elektronskih kola, i daleko premašuje okvir ovog rada. 3. PROBLEM SORTIRANJA NA SEKVENCIJALNOJ MAŠINI

Jedan od fundamentalnih problema u računarskoj obradi podataka je problem sortiranja proizvoljne liste objekata prema zadatom ključu. Prepreka efikasnom rešavanju ovog problema je sekvencijalno izvršavanje opreacija u procesu sortiranja. Kao ilustraciju, prikazujemo efikasnost poznatih algoritama za sortiranje, izraženu u BigOh notaciji. Prikazani grafikoni su empirijske prirode i odnose se na, u opštem slučaju nesortiran niz. Oni izražavaju relativne odnose izmedju vremena potrebnih da se izvrše različiti algoritmi nad istim problemom [2]. O (n2) algoritmi

Najnepovoljniji način sortiranja, jer sa linearnim rastom dimenzije problema, kvadratno raste potrebno vreme za izvršavanje. Ovu klasu algoritama odlikuje jednostavnost postupka i veoma mala efikasnost. Na slici 3.1 prikazujemo empirijske uporedne rezultate efikasnosti poznatih algoritama u ovoj klasi :

Slika 3.1 O(nlog n) algoritmi

Ove algoritme odlikuje velika složenost, upotreba rekurzije i naprednih struktura podataka. U domenu sekvencijalnog izvrsavanja, ovi algoritmi imaju najveću efikasnost, a njihove uporedne efikasnosti su prikazane na slici 3.2: Slika 3.2

Razvijeni su i specijalni slučajevi O(n) algoritama, ali samo za pojedine klase problema (Bucket sort i Radix sort), ali takvi algoritmi nemaju opšti značaj.

Za algoritam koji će biti implementiran hardverski na Cell Matrix arhitekturi je odabran Bubble sort algoritam, iz dva razloga:

- ovaj algoritam odlikuje jednostavnost izvršavanja, što povlači jednostavnu implementaciju pogodnu za okvir ovog rada.

- njegova efikasnost je najnepovoljniji slučaj u O(n2) klasi, na sekvencijalnim mašinama, što ga čini pogodnim kao primer uticaja ciljne arhitekture na efikasnost izvršavanja.

4. CELL MATRIX IMPLEMENTACIJA BUBBLE SORT ALGORITMA

Realizacija elektronskog kola koje implementira Bubble sort algoritam zahteva da se konkretizuje pojam ‘proizvoljne liste objekata’ i ‘ključ sortiranja’. Potrebno je izneti opste smernice implementacije, da bi se pokazalo da neće biti narušena opštost problema sortiranja.

32

Page 3: IMPLEMENTACIJA BUBBLE SORT ALGORITMA U O(n) VREMENU …R)AN_1955-2006/...IMPLEMENTACIJA BUBBLE SORT ALGORITMA U O(n) VREMENU NA CELL MATRIX ARHITEKTURI Dimitrije Dinić, Elektrotehnički

1) Objekat liste je binarni broj, konkretna implementacija

će koristiti ceo broj iz opsega 0-7 (tri bita). Sama priroda Cell Matrix arhitekture omogućava se se broj bita koji kodira objekat liste,na jednostavan način proširi. Razlog ovom ograničenju leži u povecanju preglednosti implementiranog kola u okviru ovog rada.

2) Lista se sastoji od 4 cela broja iz opsega 0-7, pri čemu se takodje na jednostavan i šablonski način broj elemenata liste može proizvoljno proširiti. Razlog za ovo ograničenje je isti kao i pod 1.

3) Ključ sortiranja će biti rastući poredak elemenata, pri čemu sve navedeno važi i za opadajući poredak. Primer Bubble sort algoritma:

Prikazujemo niz od 6 celobrojnih vrednosti iz opsega 0-7, koji je potrebno sortirati u rastućem poretku. Suština algoritma je u poredjenju susednih elemenata i zameni mesta ako je to potrebno, što je ilustrovano zaokruženim poljima, na slici 4.1.

Slika 4.1

Ako komparaciju i zamenu mesta posmatramo kao elementarnu operaciju, očigledno je da za kompletno sortiranje niza od n elemenata, moramo izvršiti (n/2)*n elementarnih operacija, što je vremenska kompleksnost O(n2). Osnovna ideja Cell Matrix implementacije je da se komparacije i zamene u svakoj iteraciji vrše paralelno, nizom hardverskih paralelnih komparatora. Tada n/2 komparacija i zamena postaje jedna elementarna operacija, čime se vremenska kompleksnost izvršenja ovakvog algoritma svodi na O(n). Blok šema

Na slici 4.2 je prikazana blok šema kola koje je implementirano na Cell Matrix arhitekturi. Ulazni niz A je nesortiran. Prolaskom kroz mrežu poređenja u zamena mesta, na izlazu se pojavljuje sortirani niz A, i to je niz B. Sa ove slike je očigledno da je za proizvoljnu veličinu n, ulaznog niza A, potrebno u opštem slučaju (n/2)*n hardverskih komparatora (blok POREĐENJE I ZAMENA). To znači da se vremenska kompleksnost O(n2) pretvara u hardversku kompleksnost n2.

Slika 4.2

Zahtev za hardverskim resursima se može znatno ublažiti jednostavnom transformacijom kola sa slike 4.2. Umesto da se hardverski realizuje kompletan postupak algoritma (što u realnim praktičnim uslovima ne bi imalo puno smisla), dovoljno je hardverski realizovati blokove koji se ponavljaju. Ako se posle dve iteracije privremeni rezultat Bp ponovo dovede na ulaz umesto početnog niza A, očigledno je da se broj potrebnih komparatora smanjuje na 2n, umesto n2. Iteracijama bi upravljao clock signal, pri čemu bi svaki clock signal realizovao dve iteracije. Privremeni rezultat bi se pamtio u memorijskim elementima (još n flip flopova).

Iako bi pomenuta transformacija bila optimalna za velike

n, kao i za primenu u realnim okolnostima, za prikaz u okviru ovog rada je znatno pogodnija realizacija prikazana na slici 4.2. Cell Matrix šema

Već je prikazano (deo 2) da svaka ćelija Cell Matrix arhitekture svoje ponašanje duguje sadržaju sopstvene 16x8 RAM memorije, a da se njeno ponašanje u D modu vidi kao realizacija 4 nezavisne Bulove funkcije sa 4 promenljive.

Projektovanje Cell Matrix kola podrazumeva da se

projektovano kolo podeli na kogičke celine koje se mogu direktno implementirati u Cell Matrix ćelije. Uloga bloka POREĐENJE-ZAMENA jeste da uporedi dva trobitna binarna broja i da na svom izlazu izvrši njihovu zamenu, ako je ispunjen uslov poredjenja. Kako je uslov da se niz A sortira u rastućem poredku, do zamene će doći samo ako je Ai > Ai+1. Sama realizacija je izvedena tako da se jednobitno poredjenje i zamena vrši u jednoj Cell Matrix ćeliji.

Na slici 4.3 je prikazana Cell Matrix šema jednog bloka

POREĐENJE-ZAMENA. Ćelija koja realizuje operaciju poređenja i zamene je obeležena simbolom C.

33

Page 4: IMPLEMENTACIJA BUBBLE SORT ALGORITMA U O(n) VREMENU …R)AN_1955-2006/...IMPLEMENTACIJA BUBBLE SORT ALGORITMA U O(n) VREMENU NA CELL MATRIX ARHITEKTURI Dimitrije Dinić, Elektrotehnički

Slika 4.3

Prikaz ponašanja ćelija u Cell matrix kolu može biti preko tablice istinitosnoh dodela (pogodnije za celiju-komparator C, koja vrši više operacija istovremeno) ili preko Bulovih funkcija (što je pogodnije za ćelije čija je uloga da provode signale).

Proces komparacije polazi od bita najveće težine (a2) i rezultat komparacije se prenosi na procesnu ćeliju koja poredi dva bita manje težine. Signali koji kodiraju rezultat komparacije su DN i DE, u okviru svake ćelije C, i to na sledeći način : DN=0, DE=0 ai = bi DN=0, DE=1 ai < bi DN=1, DE=0 ai > bi DN=1, DE=1 nema uticaja

Naredna procesna ćelija C prima rezultat komparacije sa prethodnog stepena, preko ulaza dS i dE. Na osnovu tekućih bita koji se porede (ai, bi) donosi odluku o rezultatu komparacije (DN i DE) i realizuje zamenu ako je to potrebno, preko izlaznih signala DS i DW. Sama implementacija ponašanja ćelije C je prikazana na slici 4.3 desno, preko tabele istinitosnih dodela.

Proširenje broja bita može se na lak način izvesti

dodavanjem dve vrste i dve kolone, na prikazanu implementaciju. Povećanje broja elemenata niza A vrši se

. dodavanjem blokova POREĐENJE-ZAMENA u pravcu porasta dimenzije problema. Promena ključa sortiranja se izvodi rekonfiguracijom ćelije komparatora tako da se izvrši inverzija uslova zamene. LITERATURA [1] Macias, N. The PIG paradigm: The design and use of a

massively parallel fine grained self-reconfigurable infinitely scalable architecture. In Proceedings of The First NASA/DOD Workshop on Evolvable Hardware, (1999), 175-80. Ed Stoica, A.,Keymeulen D., Lohn J.

[2] linux.wku.edu/~lamonml/algor/sort/sort.html Abstract – The use of massively parallel, self reconfigurable computing architecture in order to solve efficiency problems of known sorting algorithms, directly implemented in target hardware. Sequential Bubble sort algorithm execution was implemented as parallel hardware comparator network, reducing O(n2) time complexity to O(n), at the same time demandig for 2n physical comparator circuits. CELL MATRIX IMPLEMENTATION OF BUBBLE SORT ALGORITHM IN O(n) TIME

Dimitrije Dinić

34