Zašto baš binarni brojevi?
Uvod
There are 10 types of people in this world ....
Počnimo od jednog od najčešćih pitanja koje postavljaju polaznici kurseva programiranja i informatike: "Zašto se za unutrašnje proračune u računarskim sistemima koristi binarni brojevni sistem?" (ili, malo drugačije - "Zašto računari ne koriste dekadne brojeve?").
Dekadni brojevni sistem (na koji smo naviknuti od najranijeg uzrasta), pripada takozvanim pozicionim brojevnim sistemima, u kojima praktična vrednost cifre (odnosno, "težina"), zavisi od pozicije cifre u broju. *
Dekadni brojevni sistem (kao takav) - prilagođen je ljudima (i smatra se da od samog početka ima veze sa brojem prstiju na ljudskim šakama).
Binarni brojevni sistem je takođe pozicioni brojevni sistem ....
.... ali, nije prilagođen ljudima, već - računarima, i stoga se vraćamo na početno pitanje: šta je to što binarni brojevni sistem čini "logičnim" i (praktično) "prirodnim" izborom, za upotrebu u računarskim sistemima?
Predstavljanje brojeva na računarima (uopšteno)
Računari funkcionišu kao sistemi međusobno povezanih logičkih kola (elektronskih sklopova na čijem izlazu se pojavljuje električni napon, u zavisnosti od napona na ulazu).
Pojava napona na izlazu logičkog kola, očitava se kao logička jedinica (naravno - pod uslovom da je vrednost napona dostigla ili prestigla granicu koja se očitava kao "logička jedinica"), dok se izostanak napona očitava kao logička nula.
U praktičnom smislu - u pitanju su (dve) cifre binarnog brojevnog sistema: 0 i 1.
Međutim, u svemu navedenom, vodi se računa samo o tome da li se napon na izlazu ('uopšte') pojavio, ali, ne vodi se računa o konkretnoj vrednosti napona (što bi teoretski moglo da omogući kodiranje i ostalih cifara, odnosno, direktno korišćenje dekadnog brojevnog sistema preko deset prepoznatih nivoa napona).
Ipak - sve je to samo 'teorija' (odnosno, nije u pitanju ideja koja zapravo može pokrenuti masovnu proizvodnju dekadnih računara koji su široko dostupni).
U praksi, moramo se prvo osvrnuti na to da su i sadašnji (binarni) računari - veoma kompleksni uređaji, koje je teško projektovati i izrađivati.
S tim u vezi, ako bismo usvojili "novi model računara" i novi postupak izrade, računari - koji su već sada veoma kompleksni i prilično problematični za projektovanje i izradu - postali bi višestruko kompleksniji, nesagledivo problematičniji i mnogo (mnogo!) skuplji, pa nije teško zaključiti da navedeni model "dekadnog računara" - nikako ne može biti praktičan (niti popularan)!
Detaljnija analiza
Za čitaoce koje tematika zanima više, možemo dodatno proširiti diskusiju, osvrtom na najočigledniji problem koji bi se javio u (potencijalnoj) proizvodnji dekadnih računara, pri čemu je najočigledniji problem - pregrevanje komponenti.
Međutim, da se upoznamo i sa ostalim neophodnim 'tehnikalijama' ....
Logička kola sačinjena su (uglavnom) od tzv. "poluprovodnika", što je naziv za materijale koji omogućavaju da se napon na izlazu pojavljuje samo u slučaju da je napon na ulazu veći od određene vrednosti (za razliku od izolatora, koji nikako ne provode struju, ili provodnika, koji bezuslovno provode struju).
Da bi bilo moguće očitavati logičku jedinicu, u logičkom kolu mora postojati izvestan napon (u današnje vreme, logička jedinica se u procesorima tipično očitava pri naponu od ~1V (jedan Volt)), i jasno je da bi naponi pri kojima se očitavaju ostale cifre, morali biti (značajno) veći.
Značajno veći naponi (kao što verovatno naslućujete), podrazumevaju i veću potrošnju struje, tj. veću snagu u električnom kolu i - povećanje temperature (koja je u direktnoj vezi sa snagom koja se razvija u kolu).
Budući da niste još davno 'zbrisali' iz diskusije (da biste se 'spasili' od razmatranja koja se tiču "nepostojećih računara", "poluprovodnika" i sl), pretpostavljamo da vas zanima na koji način i u kojoj meri povećanje napona utiče na dodatno zagrevanje komponenti, i stoga nastavljamo dalje ....
Kada se napon duplira, električna snaga koja se u određenom elektronskom uređaju razvija, ne duplira se - već se zapravo učetvorostručuje, a što se tiče našeg "teoretskog modela 'dekadnog računara'", postavlja se i pitanje: koliko bi (zapravo) bilo potrebno povećavati napon za očitavanje svake sledeće cifre?!
Da bismo što bolje razumeli navedene pojave, upoznaćemo se usput sa nekoliko jednostavnih formula (koje opisuju pojave o kojima diskutujemo) ....
U električnim kolima, snaga se računa kao: P = U * I
, gde je P
snaga, U
je napon, a I
predstavlja jačinu struje.
Jačina struje se računa kao: I = U / R
(gde R
predstavlja otpor u električnom kolu), iz čega proizilazi da se snaga može izraziti i kao: P = U2 / R
.
Drugim rečima: "snaga raste sa kvadratom napona", što u praksi znači da zagrevanje "vrlo brzo postane pravi problem" (što ćemo odmah prikazati preko primera).
Ako pretpostavimo da bi "dodavanje jedne cifre" podrazumevalo povećanje napona za iznos koji u logičkim kolima predstavlja razliku između logičke nule i logičke jedinice (okvirno: u današnje vreme, napon logičke jedinice iznosi oko 1.0V), jasno je da bi se snaga učetvorostručila dodavanjem samo jedne cifre!
Dodavanje preostalih sedam cifara, povećalo bi maksimalni napon devet puta (9x) u odnosu na prvobitni (cifra '9' očitavala bi se pri naponu od ~9V), a potrošnja bi bila povećana ~osamdesetostruko, odnosno, preciznije, 81x (snagu koja bi se razvijala u takvim okolnostima, nismo hteli da "pominjemo naglas", ali, lako možete sami izračunati da je u pitanju snaga koja već 'nalikuje' snazi koja se razvija na grejnim uređajima u domaćinstvima).
Pošto je u pitanju fiktivni model (i nismo sigurni koliko bismo tačno morali da povećavamo napone zarad prepoznavanja ostalih cifara), mogli bismo da pretpostavimo da je dodavanje jednog Volta za svaku cifru previše i "da se nađemo na pola puta" (to jest, mogli bismo da "prepolovimo" napon od 9V za cifru 9, i "rasporedimo" ostale napone proporcionalno), što znači da bi se snaga na kraju uvećala "samo" 20-30 puta (intuicija sugeriše da ne bi moglo "bolje od toga").
Međutim, "prepolovljavanje" napona ne bi mnogo pomoglo, jer uvećanje potrošnje od 20-30x - u najmanju ruku nije zanemarljivo (tj. "samo").
Budući da današnji računari ionako funkcionišu (veoma) blizu gornje temperaturne granice izdržljivosti poluprovodnika (što je verovatno lepše nego da kažemo - "zabrinjavajuće blizu" :)), nije teško shvatiti da bi višestruko povećanje radne temperature dovodilo do trenutnog otkazivanja računarskih sklopova - ili bi nesagledivo povećalo složenost i cenu uređaja za rashlađivanje računarskih komponenti.
Stoga .... ostajemo pri upotrebi dva naponska stanja: "nema napona" (0) i "ima napona" (1), a to odgovara upravo binarnom brojevnom sistemu (koji koristi cifre 0 i 1).