Sabirač (elektronika)

U elektronici, sabirač je digitalno kolo koje vrši sabiranje brojeva. U mnogim računarskim i drugim procesorima, sabirači se ne koriste samo u aritmetičko-logičkoj jedinici već i u drugim delovima gde je potrebno izračunati adresu, indekse tabele i slične operacije. Iako sabirači mogu biti konstruisani za mnogo reprezentacija brojeva, kao što su binarno kodovani decimalni brojevi ili kod više 3, najčešće se prave sabirači koji operišu sa binarnim brojevima. U slučajevima gde se za predstavljanje negativnih brojeva koriste komplement dvojke ili komplement jedinice, sabirač se lako može modifikovati da vrši oduzimanje, odnosno da postane oduzimač. Drugačije predstavljanje označenih brojeva zahteva kompleksnije sabirače.

Polusabirač (HA - half adder) uredi

 
Polusabirač realizovan pomoću logičkih kola

Polusabirač sabira dve jednocifrene binarne vrednosti A i B i kao rezultat vraća, takođe, dve vrednosti, sumu (S) i prenos (C). Signal za prenos prezentuje veličinu prenosa koja se javlja ukoliko na ulazu imamo obe 1 (zbir iznosi 2, što u binarnom obliku iznosi 10). Ukupna vrednost sume je 2C+S. Jednostavna konstrukcija polusabirača, prikazana na slici desno, obuhvata jedno EX-ILI kolo za S i jedno I kolo za C signal. Dodavanjem jednog ILI kola za kombinovanje njihovih izlaza za prenos, dva polusabirača čine jedan potpun sabirač.[1]

Jednostavnije, polusabirač sabira dva ulazna bita i generiše prenos i sumu koju predstavlja na svojim izlazima.

Potpuni sabirač (FA - full adder) uredi

 
Šematska oznaka za 1-bitni kompletan sabirč sa Cin i Cout nacratnim na stranama bloka da naglasi njihovu upotrebu kod višebitnog sabirača

Potpun sabirač' sabira binarne vrednosti i generiše vrednosti koje šalje na izlaz. Jednobitni potpuni sabirač sabira tri jednobitna broja, često označena sa A, B, i Cin. A i B predstavljaju operande, a Cin predstavlja bit prenosa prethodnog sabirača.[2] Potpun sabirač je obično samo komponenta u kaskadi sabirača koji sačinjavaju sabirač koji operiše sa 8, 16, 32 - bitnim brojevima. Kolo proizvodi dvobitni izlaz, prenos i suma se reprezentuju kao i kod polusabirača sa Cout i S gde  . Istinitosna tablica jednobitnog sabirača izgleda:

 
Potpun sabirač, logički dijagram
Inputs Outputs
A B Cin Cout S
0 0 0 0 0
1 0 0 0 1
0 1 0 0 1
1 1 0 1 0
0 0 1 0 1
1 0 1 1 0
0 1 1 1 0
1 1 1 1 1


Kompletan sabirač može biti implementiran na mnogo različitih načina sa tranzistorima ili logičkim komponentama. Jedan način je sa   i  . U ovakvoj implementaciji, krajnje ILI kolo, pre bita izlaza za bit prenosa može biti zamenjeno ekskluzivnim ILI kolom. Jednostavno implementiranje se postiže i sa samo dva IC čipa koji sadrže samo jedno kolo po čipu. U ovom slučaju Cout može biti implementirano kao  . Kompletan sabirač može biti konstruisan i pomoću dva polusabirača, povezujući A i B na ulaz jednog polusabirača, odnosno, njihovu sumu na ulaz drugog sabirača, takođe, potrebno je povezati bitove prenosa u jedno ILI kolo.

Kompleksniji sabirači uredi

Ripple-carry sabirač (RCA) uredi

 
4-bitni sabirač

Moguće je kreirati logičko kolo za sabiranje n-bitnih brojeva korišćenjem potpunih sabirača. Na Cin ulaz svakog sabirača dovodi se Cout prethodnog. Ovakav sabirač naziva se ripple-carry sabirač, jer svaki bit prenosa "talasa"(prenosi se) do sledećeg sabirača. Možemo zaključiti da prvi(ali samo prvi) sabirač može biti zamenjen sa polusabiračem.

Konstrukcija ripple-carry sabirača je jednostavna, što smanjuje vreme izrade. Međutim, ripple-carry sabirači su relativno spori jer svaki potpun sabirač mora čekati bit prenosa od prethodnog da bi izvršio sabiranje. Kašnjenje kola se može lako izračunati posmatranjem kašenjenja kola jednog punog sabirača (svaki potpun sabirač zahteva tri nivoa logike) . U 32-bitnom ripple-carry sabiraču nalaze se 32 puna sabirača. Dakle, najgori slučaj kašnjenja je 2 (od ulaza prvog sabirača-polusabirača) + 31 * 2 (za prostiranja kroz ostale sabirače) = 64 kola kašnjenja. Sabirač sačinjen od naizmeničnih I-ILI-Invert kola može biti dva puta brži. [3]

Carry-lookahead sabirač (CLA) uredi

 
4-bitni sabirač sa carry lookahead

Da bi smanjili vreme izračunavanja, inženjeri su osmislili brži način sabiranja dva binarna broja poznatiji kao carry-lookahead sabirač. Ovi sabirači rade tako što kreiraju dva signala (P i G), za svaku bitnu poziciju, na osnovu informaciji o tome da li prenos potiče iz bita manje težine(jedan od ulaza iznosi 1) ili se generiše na tom mestu(oba ulaza su 1), ili prenos nestaje na toj poziciji(oba ulaza su 0). U većini slučajeva P prestavlja sumu izlaza polusabirača, a G je izlazni bit prenosa istog sabirača. Kasnije, P i G proizvode prenos za svaku bitnu poziciju. Neke od naprednih carry-lookahead arhitektura su Manchester carry sistem, Brent–Kung sabirač, i Kogge–Stone sabirač.

Neke druge arhitekture višebitskih sabirača su razbijene u blokove. Moguće je menjati dužinu bloka u cilju poboljšanja vremena izvršavanja. Ovi sabirači u blokovima uključuju carry-skip sabirače, koji određuju P i G vrednosti za svaki blok, i carry select sabirač koji pregeneriše vrednost sume i vrednost bita prenosa za svaki mogući ulaz (0 ili 1) u blokove. Korišćenjem multipleksora bira određenu vrednost kada sazna bit prenosa.

Lookahead carry jedinica (LCU) uredi

 
64-bitni sabirač

Kombinovanjem više carry lookahead sabirača može biti kreiran i veći sabirač. Tako dobijen sabirač može se koristiti na više nivoa da bi se napravio još veći sabirač. Na primer, sledeći 64-bitni sabirač koristi četiri 16-tobitna CLA sa dva nivoa LCU.

Carry-save sabirači (CSA) uredi

Kada se javi potreba za korišćenjem dvooperandskih sabirača radi istovremenog sabiranja tri ili više operanada, vreme koje protekne zboh rasprostiranja bita za prenos mora da se ponovi nekoliko puta. Ako je broj operanada k, tada se bitovi prenosa moraju propagirati(k-1) puta. Sa ciljem da se smanji cena koja se plaća zbog prasprostiranja bitova za prenos, kod sabiranja većeg broja operanada, predlaže se nekoliko rešenja (tehnika). Tehnika koja se najčešće koristi je sabiranje pamćenjem prenosa (carry save-sabiranje). Kod ovog načina sabiranja dozvoljava se propagacija prenosa samo u toku zadnjeg koraka, dok se u svim ostalim koracima generiše parcijalna suma kao i sekvenca bitova za prenos. Na ovaj način sabirač sa pamćenjem prenosa (CSA) prihvata tri n-tobitna operanda i generiše dva n-tobitna rezulatata, n-tobitnu potencijalnu sumu i n-tobitni prenos. Drugi CSA prihvata ove dve bit-sekvence, kao i drugi ulazni operand, a generiše novu parcijalnu sumu i prenos. Na ovaj način CSA redukuje broj operanada koji se sabiraju sa tri na dva bez propagacije prenosa.

3:2 kompresori uredi

Možemo posmatrati kompletan sabirač i kao kompresor 3:2: on sažima tri jednobitna ulazna signala i kao rezultat vraća jedinstveni dvobitni broj; to znači da preslikava osam ulaznih kombinacija na četiri izlazne. Tako, na primer, binarni ulaz 101 rezultuje na izlazu 1+0+1=10 (decimalno '2'). Bit prenosa predstavlja prvi bit rezultata, dok suma predstavlja nulti bit. Isto tako, polusabirač može biti korišćen kao 2:2 kompresor, kompresuje četiri moguće ulazne kombinacije na tri izlazne.

Ovakvi kompresori mogu biti korišćeni za ubrzavanje pronalaženja sume tri ili više sabirka. Ukoliko ima tačno tri sabirka, koristiće se carry-save sabirač. Ukoliko ima četiri ili više sabiraka, neophodno je više od jednog sloja kompresora i postoje različite mogućnosti za dizajn kola: najčešći su Dadda tree i Wallace tree. Ovakva vrsta kola se pre svega koristi u multiplikatorima, zbog čega se zovu i Dadda i Wallace multiplikatori.

Reference uredi

  1. ^ Geoffrey A. Lancaster (2004). Excel HSC Software Design and Development'. Pascal Press. str. 180. ISBN 9781741251753. 
  2. ^ M. Morris Mano, Digital Logic and Computer Design, Prentice-Hall. 1979. ISBN 0-13-21450-3. str. 119-123.
  3. ^ Burgess, N. (2011). Fast Ripple-Carry Adders in Standard-Cell CMOS VLSI (PDF). 20th IEEE Symposium on Computer Arithmetic. str. 103—111. 

Literatura uredi

Spoljašnje veze uredi