Binárna sčítačka

Binárna sčítačka (iné názvy: (binárny) sumátor, sčítačka) je kombinačný logický obvod, realizujúci sčítanie čísel, reprezentovaných v binárnej číselnej sústave. Tvorí dôležitú súčasť aritmeticko-logickej jednotky (ALU) centrálneho procesora (CPU) počítača.

V prípade použitia dvojkového doplnkového kódovania záporných čísel sa dá sčítačka veľmi jednoducho rozšíriť na sčítačku-odčítačku.

Jednobitové sčítačky

Polovičná sčítačka 

Polovičná sčítačka (iné názvy: neúplná sčítačka, polosumátor; ) realizuje sčítanie dvoch jednociferných binárnych čísel. Vstupom sú dva jednobitové sčítance (A, B). Výstupom je jednobitový súčet (S) a jednobitový príznak prenosu do vyššieho rádu (C, z ).

Polovičná sčítačka odovzdáva ďalej príznak prenosu do ďalšieho rádu, sama však nedokáže spracovať prenos z predchádzajúceho rádu. Nestačí preto na realizáciu viacbitového sčítania.

Booleovský zápis:

Pravdivostná tabuľka polovičnej sčítačky:

Úplná sčítačka 

Úplná sčítačka (iné názvy: plná sčítačka, úplný sumátor, plný sumátor; ) realizuje sčítanie dvoch jednociferných binárnych čísel s pripočítaním prenosu z predchádzajúceho rádu. Vstupom sú tri jednobitové sčítance: A, B, Ci (Ci z ). Výstupom je jednobitový súčet (S) a jednobitový príznak prenosu do vyššieho rádu (Co, z ).

Úplnú sčítačku je možné zložiť z dvoch polovičných sčítačiek a hradla OR (pozri obr.). Hradlo OR je navyše možné bez vplyvu na funkčnosť nahradiť hradlom XOR, nakoľko kombinácia vstupov (1, 1), pri ktorej by sa ich výstup líšil nemôže v prípade sčítania nastať (buď nastane prenos iba v prvej polovičnej sčítačke, alebo iba v druhej). Na vytvorenie úplnej sčítačky tak stačia 2 typy hradiel, čo je praktické pri ich realizácii.

Úplné sčítačky je možné zreťaziť vedľa seba (výstup Co jednej sčítačky prepojiť so vstupom Ci ďalšej) a realizovať tak sčítanie viacbitových čísel (pozri nižšie).

Booleovský zápis:

Pravdivostná tabuľka úplnej sčítačky:

Paralelné sčítačky 
Paralelná sčítačka je kombinačný obvod, realizujúci sčítanie viacbitových binárnych čísel.

Sčítačka s propagáciou prenosu 

N-bitová sčítačka s propagáciou prenosu alebo sčítačka so sériovým prenosom (, skr. RCA) vznikne jednoduchým zreťazením N úplných 1-bitových sčítačiek, prepojením výstupu Co úplnej sčítačky n-tého bitu so vstupom Ci sčítačky (n+1). bitu (pozri obr.). Vstupom výslednej N-bitovej sčítačky sú potom dve N-bitové čísla (+ prípadný prenos z predchádzajúceho rádu), výstupom je ich súčet, široký N+1 bitov (N bitov + prenos). Názov je odvodený z princípu – príznak prenosu sa odovzdáva (propaguje) z jedného bitu do druhého.

Sčítačka s propagáciou prenosu je jednoduchá na návrh a realizáciu a teoreticky je rozšíriteľná na ľubovoľný počet bitov. Má však zásadnú nevýhodu: s rastúcou šírkou (a teda počtom zreťazených úplných sčítačiek) priamo úmerne narastá celkové oneskorenie (doba ustálenia) výsledného obvodu. Signál prenosu prechádza v každej úplnej sčítačke dvoma hradlami, takže korektný súčet sa na výstupe napr. 32-bitovej sčítačky s propagáciou prenosu objaví s oneskorením až 64 čiastkových hradlových oneskorení, čo by mohlo výrazne obmedzovať priepustnosť (maximálny možný počet sčítaní za jednotku času) sekvenčného zariadenia, využívajúceho takýto typ sčítačky. Toto obmedzenie viedlo k snahe navrhnúť N-bitové sčítačky s menším oneskorením.

Sčítačka s predikciou prenosu 

Sčítačka s predikciou prenosu (iné názvy: sčítačka s predvídaním prenosu, sčítačka so zrýchleným prenosom; , skr. CLA) je N-bitová binárna sčítačka, schopná vypočítať súčet v kratšom čase (v jednotkách hradlového oneskorenia) než sčítačka s propagáciou prenosu (RCA). Pri RCA musí každá čiastková 1-bitová sčítačka „čakať“ na korektný príznak prenosu od sčítačky predchádzajúceho bitu. Pri CLA sú (zjednodušene povedané) všetky prenosy medzi rádmi vypočítané súčasne – kombinačným obvodom, nazývaným jednotka predikcie prenosu (, skr. LCU).

Výhody:
 výpočet súčtu s oneskorením, teoreticky nezávislým od šírky vstupu – O(1), zatiaľ čo sčítačka s propagáciou prenosu má oneskorenie priamo úmerné šírke vstupu – O(n)

Nevýhody:
 vyššie nároky na celkový počet hradiel – O(n²) a celkový počet tranzistorov (O(n³) kvôli potrebe hradiel s počtom vstupov úmerným šírke sčítačky) v porovnaní so sčítačkou s propagáciou prenosu (O(n) hradiel)
 od určitého počtu bitov prestáva byť prakticky realizovateľná (kvôli počtu hradiel a výrobným obmedzeniam na počet vstupov jedného hradla). Široké sčítačky je preto potrebné realizovať viacúrovňovo – kombinovaním princípu predikcie prenosu (na nižšej úrovni) s propagáciou prenosu (na vyššej úrovni), prípadne použitím princípu predikcie prenosu na dvoch (alebo viacerých) úrovniach.

BCD sčítačky 

Pre sčítavanie čísel reprezentovaných v BCD kódovaní, kde je každá desiatková cifra reprezentovaná samostatnou štvoricou bitov, je možné použiť obvod zložený z dvoch 4-bitových úplných binárnych sčítačiek a pomocnej logiky.

Prvá sčítačka binárne sčíta 4-bitové BCD sčítance, pričom pokiaľ je ich súčet ≤ 9, je už jej výstupom platná BCD reprezentácia výsledku. Ak je hodnota súčtu > 9, je k nemu potrebné (v modulo 16 aritmetike) pripočítať hodnotu 6 (a indikovať prenos do vyššieho rádu, Co), aby výsledok znova binárne reprezentoval príslušnú desiatkovú cifru súčtu. Toto pričítanie zabezpečuje druhá 4-bitová sčítačka, ktorá má ako jedného sčítanca výstup prvej sčítačky a ako druhého buď hodnotu 0 (00002) alebo hodnotu 6 (01102), pričom prepínanie týchto dvoch hodnôt zabezpečuje pomocná hradlová logika, dekódujúca výstupy prvej sčítačky.

Napr.:

Tento obvod je vhodný pre najbežnejšie BCD kódovanie s bitovými váhami 8-4-2-1 (; skr. NBCD), pri ktorom reprezentácia hodnôt 09 priamo zodpovedá ich zápisom v dvojkovej sústave.

Integrované obvody 
Medzi bežné TTL/CMOS integrované obvody realizujúce binárne sčítačky patria:
 7480: 1-bitová úplná sčítačka
 7482: 2-bitová úplná sčítačka
 7483: 4-bitová úplná sčítačka so zrýchleným prenosom
 74181: 4-bitová 16-funkčná aritmeticko-logická jednotka (ALU)
 74183: 2× 1-bitová úplná sčítačka
 74283: 4-bitová úplná sčítačka so zrýchleným prenosom
 74381: 4-bitová ALU s výstupmi „generate“ a „propagate“
 74382: 4-bitová ALU s výstupmi „ripple carry“ a „overflow“
 74385: 4× 1-bitová sčítačka/odčítačka
 74456: natural binary coded decimal (NBCD) sčítačka
 4008: 4-bitová úplná sčítačka so zrýchleným prenosom
 4032: 3× sériová sčítačka
 4038: 3× sériová sčítačka (spúšťanie zostupnou hranou)
 4560: NBCD sčítačka
 40181: 4-bitová 16-funkčná ALU

Ekvivalenty uvedených obvodov aj ľubovoľné vlastné účelové obvody sčítačiek je dnes možné pohodlne používať aj vo forme komponentov pre programovateľné hradlové polia.

Referencie

Pozri aj 
 dvojková číselná sústava
 binárna násobička
 aritmeticko-logická jednotka (ALU)
 hradlo XOR
 zoznam základných logických obvodov

Iné projekty

Externé odkazy 
 Polovičná sčítačka, úplná sčítačka – interaktívne simulácie hradlových obvodov k publikácii Hradla, volty, jednočipy Martina Malého
 Hardvérové algoritmy pre aritmetické moduly 
 Reverzné inžinierstvo obvodu zrýchleného prenosu sčítačky v ALU procesora Intel 8008 

Logické obvody
Počítačová aritmetika