Podcast o Polovičná a úplná sčítačka
Polovičná a úplná sčítačka: Detailný Rozbor pre Študentov
Podcast
Binárni sčítačky
Délka: 11 minut
Kapitoly
Ako počítač sčíta?
Polovičná sčítačka: Základný kameň
Úplná sčítačka: Kompletný obraz
Ako funguje úplná sčítačka
Reťazenie do väčších sčítačiek
Príklad dvojbitovej sčítačky
Pozor na časté chyby
Simulácia je kľúčom
Dvojbitová sčítačka v praxi
Zhrnutie a záver
Přepis
Marek: Predstav si študenta, volajme ho Peter. Pozerá na svoju kalkulačku, napíše '1 + 1' a okamžite sa objaví '2'. Ale Peter sa učí na maturitu z informatiky a vie, že hlboko v procesore žiadna 'dvojka' neexistuje. Je tam len búrka núl a jednotiek. Ako to, že to počítač vždy spočíta správne?
Simona: To je skvelá otázka, Marek. A tá odpoveď je presne to, o čom sa dnes budeme rozprávať. Počúvate Studyfi Podcast.
Marek: Takže všetka tá zložitá matematika sa v skutočnosti deje len s nulami a jednotkami? To znie... jednoducho a zároveň šialene zložito.
Simona: Presne tak. Základom je binárne sčítanie. Pravidlá sú veľmi jednoduché. Nula plus nula je nula. Nula plus jedna je jedna.
Marek: To zatiaľ dávam. Ale čo sa stane, keď príde na rad jedna plus jedna?
Simona: A to je kľúčové! V desiatkovej sústave by to boli dva. Ale v binárnej, kde máme len nuly a jednotky, je výsledok 'jedna-nula', teda 10. Zapíšeme nulu a jednotku si 'prenesieme' do ďalšieho stĺpca, presne ako na základnej škole pri sčítaní pod seba.
Marek: Aha! Takže 1 + 1 sa rovná 0, s prenosom 1. Takže ak mi kamarát povie, že mi dá desiatku, mal by som sa pre istotu opýtať v akej sústave.
Simona: To by si rozhodne mal! A presne na túto základnú operáciu používajú počítače špeciálne obvody, ktorým hovoríme sčítačky.
Marek: Dobre, poďme na prvý typ. V materiáloch sa spomína polovičná sčítačka. Prečo len 'polovičná'? Čo jej chýba?
Simona: Chýba jej schopnosť pracovať s prenosom z predchádzajúceho rádu. Predstav si ju ako úplne najjednoduchší kalkulátor. Má len dva vstupy, nazvime ich A a B, a dva výstupy: súčet, čiže 'Sum', a prenos, 'Carry'.
Marek: Takže sčíta iba dva bity. Napríklad práve tú našu jednotku a jednotku.
Simona: Presne tak. Ak sú vstupy A=1 a B=1, polovičná sčítačka na výstupe 'Sum' dá nulu a na výstupe 'Carry' dá jednotku. Vytvorí ten prenos, o ktorom sme hovorili.
Marek: A ako to robí? Sú tam nejakí malí škriatkovia s počítadlami?
Simona: Skoro. Sú tam logické hradlá. Súčet 'S' sa realizuje pomocou hradla XOR, pretože výsledok je 1 iba vtedy, keď sú vstupy rôzne. Prenos 'C' sa zas realizuje hradlom AND, pretože prenos vzniká, len ak sú oba vstupy jednotky.
Marek: Dobre, takže polovičná sčítačka je super na sčítanie prvých dvoch bitov. Ale čo keď už mám nejaký prenos z predchádzajúceho sčítania? Tam asi nestačí.
Simona: Presne si to vystihol. Preto existuje úplná sčítačka. Tá je šikovnejšia. Má tri vstupy: A, B a tretí, ktorý sa volá 'Carry-in' – vstupný prenos.
Marek: Takže tá už dokáže sčítať dva bity A aj prenos z predchádzajúceho výpočtu. To už znie ako niečo, čo by mohlo fungovať v reálnom procesore.
Simona: Áno. A teraz tá najlepšia časť. Úplnú sčítačku si môžeš postaviť z dvoch polovičných sčítačiek a jedného hradla OR.
Marek: Počkaj, to vážne? Takže z dvoch tých 'nedokonalých' poskladáme jednu dokonalú?
Simona: Presne tak! Prvá polovičná sčítačka sčíta A a B. Jej výsledný súčet potom ide do druhej polovičnej sčítačky, ktorá ho sčíta s tým vstupným prenosom 'Carry-in'. A prenosy z oboch polovičných sčítačiek sa spoja pomocou hradla OR, aby vytvorili finálny výstupný prenos. Je to ako skladačka z Lega. Tieto úplné sčítačky sa potom reťazia za sebou a dokážu sčítať celé bajty alebo ešte väčšie čísla.
Marek: Dobre, Simona, takže polovičná sčítačka zvládne sčítať dva bity. Ale čo ak potrebujeme pripočítať aj prenos z predchádzajúceho stĺpca, presne ako keď sčítavame na papieri?
Simona: Presne tak, Marek. A práve na to slúži úplná sčítačka. Je to v podstate vylepšená verzia, ktorá má tri vstupy: A, B a tretí, kľúčový vstup, ktorý voláme C-in, alebo vstupný prenos.
Marek: Takže C-in je tá „jednotka“, ktorú si pamätáme a prenášame do ďalšieho stĺpca?
Simona: Presne! Je to tá malá číslica, čo si píšeme nad ďalší stĺpec. Poďme si to ukázať na príklade. Povedzme, že chceme sčítať A=1, B=1 a vstupný prenos C-in je 0.
Marek: Dobre, som zvedavý.
Simona: Súčet, teda výstup S, vypočítame ako A XOR B XOR C-in. V našom prípade 1 XOR 1 je 0, a 0 XOR 0 je opäť 0. Takže náš súčet S je 0.
Marek: Okej, to dáva zmysel. A čo výstupný prenos?
Simona: Výstupný prenos, C-out, má trochu zložitejší vzorec. Ale výsledok je, že ak sú aspoň dva vstupy rovné 1, C-out bude 1. V našom prípade máme A=1 a B=1, takže C-out je 1.
Marek: Takže výsledok je prenos 1 a súčet 0. To je binárne číslo 10... čo je desiatkovo 2. Takže 1 + 1 + 0 sa rovná 2. Perfektné!
Simona: Presne tak. Vidíš? Je to len stará dobrá školská matematika v novom, digitálnom kabáte.
Marek: Super! Ale ako toto využijeme na sčítanie, povedzme, osembitových čísel, ako v starých počítačoch?
Simona: Skvelá otázka. Robíme to tak, že tieto úplné sčítačky jednoducho pospájame za sebou. Tomu sa hovorí kaskádovanie alebo reťazenie.
Marek: Ako reťaz z kociek lega?
Simona: Presne taký princíp. Výstupný prenos C-out z prvej sčítačky sa stane vstupným prenosom C-in pre druhú sčítačku. C-out z druhej sa napojí na C-in tretej a tak ďalej.
Marek: Aha! Takže ten prenos sa takto pekne „prelieva“ z jedného bitu na druhý, z najmenej významného až po ten najvýznamnejší.
Simona: Presne. Každá sčítačka v reťazi rieši jeden stĺpec nášho sčítania. Poďme si to ukázať na dvojbitovej sčítačke.
Marek: Dobre, skúsme niečo jednoduché. Čo tak 3 + 1?
Simona: Perfektný príklad! V binárnej sústave je to sčítanie dvoch dvojbitových čísel: A je 11, čo je 3, a B je 01, čo je 1. Očakávame výsledok 4, teda binárne 100.
Marek: Dobre, ideme na to.
Simona: Potrebujeme dve úplné sčítačky. Prvá sčíta najmenej významné bity, A₀=1 a B₀=1. Vstupný prenos C-in je tu 0, lebo začíname.
Marek: Jasné, na začiatku nemáme čo prenášať.
Simona: Takže, 1 plus 1 dáva súčet 0 a prenos 1. To je výsledok prvej sčítačky. Tento prenos, C-out rovný jednej, teraz putuje do druhej sčítačky.
Marek: Ako vstupný C-in, však?
Simona: Presne! Druhá sčítačka teraz sčítava A₁=1, B₁=0 a tento náš prenos 1. Takže 1 plus 0 plus 1... to je opäť súčet 0 a prenos 1.
Marek: A keď to poskladáme... máme konečný prenos 1, druhý súčtový bit 0 a prvý súčtový bit 0. Dostali sme 100. To je štyri! Funguje to!
Simona: Áno, je to celkom elegantné, však?
Marek: Určite áno. Ale kde robia študenti najčastejšie chyby?
Simona: Klasika je zamieňanie polovičnej a úplnej sčítačky. Polovičná proste nemá ten C-in vstup, takže na reťazenie je nepoužiteľná.
Marek: To znie ako snažiť sa stavať poschodový dom bez schodov.
Simona: Presne tak! Ďalšou chybou je zlé zapojenie prenosu. Ak C-out z jednej sčítačky nesprávne napojíš, celý výpočet sa zrúti. A samozrejme, ľudia občas zabudnú, že prvá sčítačka v reťazi má mať C-in nastavený na nulu.
Marek: Takže kľúčom je naozaj pochopiť, ako ten prenos cestuje celým obvodom. Predpokladám, že vidieť to naživo by pomohlo ešte viac.
Simona: Absolútne. Teória je jedna vec, ale keď si to človek môže „naklikať“ v simulácii, je to úplne iný zážitok. Vidíš, ako sa bity menia, ako sa prenos šíri...
Marek: Tak sa na to poďme pozrieť. Ako takéto simulácie fungujú a čo všetko si v nich môžeme vyskúšať?
Marek: Takže keď zvládneme sčítať jeden bit, predpokladám, že ďalší krok je jednoducho... pridať ďalší?
Simona: Presne tak, Marek! Vitajte vo svete dvojbitovej sčítačky. Je to vlastne len skladanie toho, čo už poznáme.
Marek: Dobre, takže v tej simulácii uvidím čo? Zrejme zadám dve dvojbitové čísla.
Simona: Áno. Nazvime ich A₁A₀ a B₁B₀. Kľúčové je sledovať, ako sa prenos z prvej, menej významnej sčítačky... stane vstupným prenosom pre tú druhú, významnejšiu.
Marek: Aha, takže sa to signály pekne reťazia jeden za druhým. Skúsme nejaký príklad.
Simona: Jasné! Čo tak sčítať 11₂ a 01₂? To je vlastne tri plus jedna.
Marek: Výsledok by mal byť štyri, čo je v binárnej sústave... 100. Je to tak?
Simona: Presne! A simulácia ti krásne vizuálne ukáže, ako sa ten posledný prenos stane najvyšším bitom výsledku. Zrazu vidíš, ako abstraktná matika ožíva v obvodoch.
Marek: Takže toto je v podstate základ digitálnej aritmetiky, ktorú nájdeme v každom počítači.
Simona: Presne tak. Pochopenie toku signálov v sčítačke je bránou k pochopeniu zložitejších operácií a celej architektúry počítačov.
Marek: Úžasné. Od jednoduchých logických hradiel až po sčítanie čísel, všetko to do seba krásne zapadlo. Simona, ďakujem ti veľmi pekne za všetky tieto vysvetlenia.
Simona: Veľmi rada. Aj ja ďakujem za pozvanie, Marek.
Marek: A vám, naši milí poslucháči, ďakujeme, že ste boli s nami počas celej tejto série Studyfi Podcastu. Dúfame, že sme vám pomohli lepšie pochopiť svet digitálnych systémov. Majte sa pekne!