Šta je arhitektura računara?

Način na koji je građen računar i na koji se međusobno povezani njegovi dijelovi nazivamo arhitektura računara. Mada postoje različite arhitekture računara, većina računara koji su danas u upotrebi zasnivaju se na arhitekturi koju je još 1946. godine predložio John von Neumann.

Koje su novisti Von Neumannove arhitekture? 

Glavne novosti Von Neumannove arhitekture u odnosu na ranije arhitekture sastoje se u upotrebi iste memorije za pohranjivanje programa i podataka, kao i upotrebi binarnog brojnog sistema, što je dovelo do znatnog pojednostavljenja građe računara.

Koje tri grupe uređaja mora imati računar?

Podsjetimo se da danas pod računarom podrazumijevamo svaki uređaj koji je sposoban da prima podatke od korisnika, da ih memorira i obrađuje prema zadanom programu i da saopći korisniku rezultate obrade. Da bi računar mogao da obavlja navedenu funkciju, on očito mora posjedovati barem tri grupe uređaja:

  • Ulazne jedinice, preko kojih računar prima podatke od korisnika;
  • Izlazne jedinice, preko kojih računar saopćava korisniku rezultate obrade;
  • Centralnu jedinicu, u kojoj se obrađuju podaci, i u koju se smještaju podaci koji se obrađuju zajedno sa programom po kojem se vrši obrada.

Kako možemo dalje podijeliti centralnu jedinicu?

Centralnu jedinicu dalje možemo podijeliti na memoriju, koja služi za smještanje podataka i programa, i centralnu procesnu jedinicu (koja se skraćeno naziva i samo procesna jedinica, ili, još češće, procesor), koja vrši obradu podataka. Centralna procesna jedinica skraćeno se označava sa CPU (Central Processing Unit).

Šta su hardware i software?

Ulazne jedinice, centralnu jedinicu i izlazne jedinice zajedničkim imenom nazivamo hardver računara. S druge strane, programi za računar kao i podaci koje ti programi obrađuju čine softver računara. Hardver i softver zajedno sačinjavaju jedinstvenu cjelinu koju nazivamo računarski sistem. Tako, možemo reći da hardver zapravo predstavlja materijalni, opipljivi dio računarskog sistema, dok softver predstavlja, uvjetno rečeno, njegov intelektualni, neopipljivi dio.

Kako se memorija dijeli?

U Von Neumannovom modelu, po prvi put su, za razliku od prethodnih modela računara, kako podaci, tako i programi predstavljeni na jedinstven način, i na istim medijima. Po ovom modelu, programi i podaci pohranjeni su u memoriji isključivo kao kombinacije nula i jedinica. Stoga se memorija dijeli na elementarne memorijske ćelije od kojih svaka može da zapamti tačno jednu binarnu cifru 0 ili 1 (tj. jedan bit). Zbog toga se i najmanja jedinica za mjerenje kapaciteta memorije također naziva bit. Jedan bit je ona količina memorije koja može da zapamti tačno jednu binarnu cifru.

Šta je bajt?

Jedine dvije operacije koje se mogu obavljati sa memorijama su čitanje podataka iz memorije i upis podataka u memoriju. Današnje memorije najčešće nisu organizirane na način koji omogućava neovisan pristup svakom bitu u memoriji. Obično se skupine od po 8 bita grupiraju u cjelinu nazvanu bajt. Bajt je zapravo definiran kao ona količina memorije koja je dovoljna da se zapamti jedno slovo, cifra, ili interpunkcijski znak (pri čemu se podrazumijeva standardni engleski alfabet).

Da bi se slova, ili općenitije znakovi, mogli predstaviti u memoriji, potrebno ih je prikazati određenom kombinacijom nula i jedinica. Da bi se ustanovilo kojom će se kombinacijom nula i jedinica predstavljati koji znak, uspostavljene su odgovarajuće međunarodno dogovorene šifre koje propisuju kombinacije nula i jedinica kojim se predstavljaju određeni znakovi, i tih dogovora bi se trebali svi pridržavati. Mada postoji više ovakvih standardnih šifri, danas ubjedljivo najviše korištena šifra (kôd) je tzv. ASCII kôd (ASCII – American Standard Codes for International Interchange). Na primjer, znak "A" se prema ASCII standardu predstavlja kao 01000001. Znak "a" predstavlja se kao 01100001, znak "2" kao 00110010, znak "!" kao 0010001, znak " " (prazno mjesto) kao 00100000, itd. Kako se pokazalo da se sa osam nula i jedinica može sastaviti dovoljno kombinacija (28 = 256) da se prikažu sva mala i velika slova engleskog alfabeta, cifre i klasični znaci interpunkcije, usvojeno je da bajt ima 8 bita.

Koje su veće jedinice od bajta?

Veće jedinice od bajta su kilobajt (KB), megabajt (MB), gigabajt (GB) i terabajt (TB). Ponekad mada, znatno rjeđe, susreću se i kilobit, megabit, itd. Odnos između ovih jedinica je sljedeći: 1KB=1024bajta, 1MB=1024KB, 1GB=1024MB i 1TB=1024GB.

Prisustvo neobičnog broja 1024 umjesto 1000 posljedica je činjenice da stvarne elektroničke realizacije memorija imaju kapacitete koji kada se izraze u bajtima gotovo uvijek predstavljaju broj koji je stepen dvojke. Kako je broj 1024 stepen dvojke (210=1024), a prilično je blizak broju 1000, uzeto je da odnosi između jedinica budu izraženi sa faktorom 1024 umjesto 1000, čime je postignuto da se kapaciteti memorija izraženi u KB, MB, itd. izražavaju cijelim brojevima.

Kako su u memoriji spremljeni programi?

Već je rečeno da Von Neumannov model predviđa da se programi za računar također nalaze pohranjeni u memoriji u vidu nula i jedinica. Tako zapisan program naziva se mašinski program. Različite kombinacije nula i jedinica (nazvane mašinske instrukcije ili ponekad instrukcijski kodovi) imaju različita značenja. Prilikom rada računara, procesor čita mašinsku instrukaciju sa neke adrese iz memorije, izvršava akciju predviđenu njenim značenjem, zatim čita narednu instrukciju (najčešće sa sljedeće adrese), i tako u nedogled. U tom smislu, svaka instrukcija se izvršava u dvije faze: faza pripreme (odnosno, faza dobavljanja instrukcije) i faza izvršavanja.

Kako se zovu male memorijske jedinice unutar procesora?

Za potrebe privremenog čuvanja mašinske instrukcije koja se izvršava i podataka koji se obrađuju, procesor unutar sebe također sadrži male memorijske jedinice, kapaciteta nekoliko desetaka bita, koji se nazivaju registri.

Koje instrukcije procesor zna da izvršava?

To zavisi od konkretnog procesora, ali tipično se radi o izuzetno primitivnim instrukcijama koje se mogu podijeliti u četiri osnovne skupine: instrukcije za prijenos podataka, aritmetičko-logičke instrukcije, instrukcije za upravljanje tokom programa i ulazno-izlazne instrukcije.

Instrukcije za prijenos podataka nalažu procesoru da premjesti neki podatak sa jednog mjsta na drugo, na primjer da pročita sadržaj neke memorijske lokacije u neki od svojih registara, da upiše neku vrijednost ili sadržaj nekog registra na određenu memorijsku lokaciju, ili da prepiše sadržaj jednog registra u neki drugi registar.

Aritmetičko-logičke instrukcije nalažu procesoru da izvrši neku od elementarnih računskih operacija nad sadržajima registara ili memorijskih lokacija. Ove operacije mogu biti aritmetičke (poput sabiranja i oduzimanja) ili logičke (poput poređenja, konjukcije, disjunkcije i negacije). Također, operacije koje obavljaju aritmetičko-logičke jedinice mogu se podijeliti i na binarne, koje se obavljaju nad dva operanda (npr. sabiranje, konjukcija itd.) i unarne, koje se obavljaju nad samo jednim operandom (npr. negacija).

Instrukcije za upravljanje tokom programa su veoma značajne, jer omogućavaju da se izvođenje programa nastavi od proizvoljne memorijske lokacije. Mogu se podijeliti na bezuvjetne, kod kojih se izvođenje programa bezuvjetno nastavlja od zadane memorijske lokacije, i uvjetne, kod kojih se prelazak na zadanu memorijsku lokaciju izvršava samo pod određenim uvjetom (na primjer, ukoliko je rezultat posljednje aritmetičko-logičke instrukcije bio jednak nuli). Upravo uvjetne instrukcije za upravljanje tokom programa omogućavaju računaru da donosi odluke, tj. da planira buduće ponašanje u ovisnosti od rezultata prethodnih operacija.

Ulazno-izlazne instrukcije slične su instrukcijama za prijenos podataka, samo što ostvaruju komunikaciju između registara procesora i ulaznih odnosno izlaznih jedinica umjesto memorije.

Koliko mašinskih instrukcija prepoznaju procesori?

Broj mašinskih instrukcija koje raspoznaju procesori kreće se od nekoliko desetina do nekoliko stotina (ili nekoliko desetina hiljada ukoliko brojimo i sve podvarijante pojedinih instrukcija). Procesori koji raspoznaju svega mali broj sasvim jednostavnih instrukcija nazivaju se RISC procesori (Reduced Instruction Set Computing), dok se CISC procesori ( Complex Instruction Set Computing) prepoznaju veći broj ponekad i prilično složenih instrukcija. Mada na prvi pogled izgleda da su CISC procesori bolji, RICS procesori rade mnogo brže. Interesantno je da je dokazano da je procesor koji zna da obavlja svega dvije (tačno određene) instrukcije teoretski u stanju da njihovom kombinacijom postigne sve što mogu da postignu svi ostali procesori (to naravno ne znači da takve procesore treba praviti).

Koje dijelove razlikujemo u procesoru?

Da bi procesor mogao da obavlja opisanu funkciju, on pored registara mora da sadrži sljedeće uređaje: aritmetičko-logičku jedinicu (skraćeno ALU od engl. Arithmetical Logical Unit) i upravljačku jedinicu.

Aritmetičko-logička jedinica je relativno jednostavan uređaj koji izvodi elementarne računske operacije (poput sabiranja u gore navedenom primjeru, dok je upravljačka jedinica znatno složeniji uređaj koji generira adrese koje izlaze iz procesora, naloge za čitanje i upis, prepoznaje i analizira prihvaćene instrukcije, te upravlja radom aritmetičko-logičke jedinice, registara i ostalih dijelova procesora.

Šta su klok impulsi?

Trenutak nailaska klok impulsa određuje kada će započeti sljedeća faza mašinske instrukcije (između dva klok impulsa procesor uvjetno rečeno miruje). Klok impulsi nailaze velikom brzinom u pravilnim vremenskim razmacima, i možemo ih uporediti sa otkucajima ljudskog srca.

Očigledno će procesor raditi tim brže što brže dolaze klok impulsi. Broj klok impulsa u jednoj sekundi naziva se frekvencija kloka i izražava se u hercima (Hz). Kako je herc mala jedinica, obično se koriste veće jedinice megaherc (1MHz=1000000Hz) i gigaherc (1GHz=1000000000Hz). Na primjer, frekvencija kloka od 1GHz označava milijardu klok impulsa u sekundi. Današnji procesori već mogu da rade sa frekvencijama kloka od nekoliko gigaherca. Frekvencija kloka zapravo izražava broj najelementarnijih radnji koje procesor može da obavi u jednoj sekundi. Tako, procesor koji radi na frekvenciji kloka od 2GHz u jednoj sekundi obavlja milijardu elementarnih radnji!

Šta su n-bitni procesori?

Za procesore koji u jednom koraku mogu da obrade podatke dužine n bita kažemo da predstavljaju n-bitne procesore. Nekada su na tržištu dominirali 8-bitni i 16-bitni procesori, dok se danas najčešće susreću 32-bitni, pa i 64-bitni procesori. Ove činjenice utječu na brzinu rada procesora, pa j tako 32-bitni procesor u prosjeku dvostruko brži od 16-bitnog procesora pri istoj frekvenciji kloka.