You are on page 1of 40

Harverska sekvenca Arhitektura spoljni pogled sa aspekta programera kako komponente izgledaju Organizacija fiziki pogled, kako su komponente

te napravljene Cilj: Razumeti kako raunar radi! Plan rada: Uvod: 1. 2. 3. 4. Digitalna logika Arhitektura raunara Organizacija raunara Princip rada odozdo dizajn prema dole Princip rada odozgo prema dole

Predmet posmatrati kao crnu kutiju: - zanima nas interakcija sa ostalim elementima - ne zanima nas unutranjost Predstavljanje raunara: Osnovni model raunara
interakcija

CPU

MEMORIJA

U/I ( U praksi dodajemo jo neke elemente, u teoriji to nije neophodno ) Procesor: - Mozak (srce) raunara, element koji ima potencijal da izraunava (obrauje) podatke. Procesor sam po sebi ne moe da uradi nita. Osobine: - jednostavan ureaj - pametan ureaj izuzetno glup ureaj ( sagledavanjem spoljnih efekata ispostavlja se da je pametan ) Teoretski: CPU radi zapanjujue mali broj stvari. Sabira male brojeve tj. brojeve do 127 i uporeuje da li je neto jednako 0. Raunar ima samo jednu dobru osobinu brzinu! Uz to ima preciznost (nepogreivost) i neumornost. Procesor malim operacijama koje izvodi milijardu u sekundi nadvladava tj. snagu crti iz brzine izraunavanja (sa primitivnim je osobinama, ali milijardu puta u sekundi izraunavanjima).

Memorija: - Niz registara sa adresnim mehanizmom. (bit udruivanje u bajtove u registre) Skup registara postoje niz kada mu se dodeli adresni mehanizam. Memorija uvek izgleda i ponaa se kao jedan registar. Osnovni model moe da se precizira: CPU
8 razmena podataka D

MEMORIJA

8 bita 8 linija (ina magistrala) D data magistrala (magistrala podataka) CPU


16

AD

MEMORIJA

AD adresna magistrala (uvek ide samo iz procesora prema memoriji) Pitanje: Da li elimo: CPU Memorija ili Postoji kontrolna magistrala R i W CPU CPU R W MEMORIJA MEMORIJA read write Memorija CPU

3 tipa magistrala: - D magistrala podataka - AD adresna magistrala - KD kontrolna magistrala Potencijal procesora! Proizvoa je ugradio delove koji obavljaju neka izraunavanja. U procesu dizajniranja, dizajner odluuje ta e implementirati. Uz procesor proizvoa mora da isporui i uputstvo, jer je bez toga neupotrebljiv. Uputstvo treba da sadri: - operacije - uporeivanje Kompletna lista - ... ...

Jedno je pitanje ta CPU moe da uradi, a drugo je kako da ga nagovorimo to da uradi. Sa procesorom komuniciramo samo preko binarnih brojeva, tj. iframa 0 i 1. - ifre nam govore kako raditi sa procesorom. - Detalji (unutranja organizacija) nam govori kako uzimati komande. (komande i brojevi su u memoriji) Trebali bismo imati 2 memorije: - jedno je davati komande - drugo je obrada podataka. Stoga bi prirodno da imamo 2 memorije: M1 CPU M1

Osnovni teoretski model raunara

1947.god. dolo je do objedinjenja memorije i za podatke i za komande. Pitanje: ta e se desiti ako doe do prepisivanja podataka jednih preko drugih? U memoriji se to ne vidi, sve je ekvivalentno, pa na osnovu logikih zakljuivanja zakljuujemo: 1. Hardvardska arhitektura odvojena memorija 2. fon Nojmanova arhitektura sve memorije zajedno (zbog utede) U svetu je poznatija Hardvardska arhitektura (procesor radi bre, obezbeuje veu brzinu). - vue podatke punom brzinom - obrauje instrukcije - aplikacije u realnom vremenu Sutina je da se odgovor dobije za unapred fiksirano odreeno vreme. ( nije bitna brzina procesora). Vreme odziva je fiksirano!(ne moe se premaiti) Primer: Procesori u mobilnim telefonima su Hardvardske arhitekture Procesor je programibilan, ima mehanizam za automatsko izvravanje (procesor radi automatski). Naredbe su u memoriji unapred isprogramirane i on radi automatski. U CPU se ugrauje registar (broja naredbi) tj. Program Counter. Automatski se binarni broj predaje u memoriji, tamo se ita i pretvara u instrukciju.

Formati instrukcija: Propisani i ugraeni od strane proizvoaa komponenti: - ta da radi Jednom reju rauna i - gde su podaci uva rezultate Pitanja za razmiljanje: Koje oblasti pokriva ovaj kurs? 1. Digitalna logika 2. Arhitektura raunara 3. Organizacija raunara 4. Dizajn Redosled koji uimo i zato? Fon Nojmanova arhitektura, prednosti? Uteda! Osnovni teoretski model raunara? Pitanje: Kako sve to detaljnije radi? Kako moe da se komunicira sa procesorom? Grupe instrukcija: Procesor: - sabiranjem i grananjem moe da se izrauna sve - ugrauju se i neto vie instrukcija 10-100 Podela: - Grupe: - Aritmetiko-logike operacija: - Klasine: +,-,*,/ - zavise od vremena - Specifine: (+1) inkrement, (-1) dekrement izvravanje!) - Logike: , , .... logike instrukcije -

(bre

Instrukcije za transfer (ne vre obradu nego premetaju podatke) Kontrola toka (omoguava grananje, a grananje omoguava cikluse)

Grananje: - Jump - Brunch - Specijalne instrukcije (HALT zaustavljanje...)

Formati instrukcije: Format potreban da bismo videli do kraja proceduru kako procesor radi. Da bi procesor automatski obavljao neki posao morao bi da ima ovakav format instrukcija: - operacioni kod - adresa operanda broj 1 - adresa operanda broj 2 - adresa rezultata - adresa naredne instrukcije Praktino, takav model nikad nije implementiran, jer je instrukcija previe dugaka! 1 bajt 2 bajta Operacioni Adresa kod operanda 1 2 bajta Adresa operanda 2 2 bajta Adresa rezultata 2 bajta Adresa naredne inst. 9 bajtova UKUPNO

Da bismo izvrili instrukcije moramo ih donositi iz memorije. elimo: Nulto vreme odziva!!! Poeljno je skraenje instrukcija, tako da moemo da ukidamo adrese. Ali, iz teoretskog modela ne mogu da se ukidaju adrese, jer teoretski model mora biti zadovoljen. Alternativa: Moemo eksplicitno da zamenimo implicitnim! Uvodimo sklanjanje sa eksplicitnog navoenja u implicitne dogovore. Pisanjem instrukcija jedne za drugom dobijamo dogovore, jer eksplicitno ne moramo da je navodimo, tj. ne moramo da navodimo adresu naredne instrukcije, ali moramo da je znamo. Program mora da se pie sekvencijalno (dodavanjem P.C. hardware). Na taj nain gubi se fleksibilnost, jer smo instrukcije mogli da stavljamo gde hoemo, sada ih moramo stavljati kontinualno. Napomena: Fleksibilnost nam nita nije ni znaila! Da nismo izgubili fleksibilnost, opet bismo instrukcije pisali nekim redom. Dodatak: Uvoenje NMP instrukcija ( dodavanje instrukcija software) - dogovor - hardware Zamenjuju poslednji registar - gubitak - software Mogue je ii na dalja skraivanja ispim principom. Sledei dogovor: Ogranienje (bez pisanja rezultata, rezultat ide na prvo mesto)

Primer: Saberi A,B Saberi A,B,A, tj. rezultat smesti u A Napomena: Prethodni dogovor nije besplatan! Instrukcije za transfer podataka Produenje programa moe biti i eksplicitno veliko. Primer: Saberi A,B,C i rezultat smesti u C MOVE SABERI MOVE MOVE A,P A,B A,C A,P MOVE SABERI A,C C,B

Naivna verzija

Malo bolja verzija

Ovo skraivanje kota! (nepovoljan primer) Generalno postoji unapreenje! Pitanje: Moemo li i dalje da skraujemo? Odgovor: DA! - Hardverska promena: Uvodjenje akumulatora - Dogovor: Akumulatora - Modifikacije: Akumulator postaje centralno mesto (Instrukcije idu iz akumulatora u memoriju i obrnuto) - Opet postoji gubitak fleksibilnosti! Primer: iz memorije u akumulator SABERI B AKUMULATOR u C Istorijski se taj model skraivao! Spori raunari su bili troadresni! Kasnije: - dvoadresni - 1,5 adresni Danas: - jednoadresni Model sa P.C. i sa akumulatorom je jednoadresni! Pitanje: Moe li da se i dalje sa skraivanjem? Odg.: DA! 4,3,2,1 kvantitativne promene 0 posebna promena Korak se moe izvesti pa imamo i 0-adresne raunara! Uvoenjem 2 akumulatora (gde se podrazumevaju operandi) Primer: iz memorije u A X iz memorije u B Y Saberi 0-adresno! Iz A u memoriju Z Ono to jo nije reeno, a to je pitanje moe li se jo dalje_

Da li moemo imati -1 adresne raunare? Stek maine: 0-adresni raunari! Stek LIFO struktura (last in, first out) (slaganje na gomilu, skidanje sa gomile) Na steku moemo imati i vie akumulatora! Zapravo prelaz sa 1 0 se izvodi uvoenjem stek pointera, posebnim operacijama PUSH i POP. PUSH stavi na stek; POP izvadi sa steka! Treba paziti na organizaciju steka! Uvoenjem dogovora: - operandi Ostaju na steku - rezultat Program izgleda: PUSH A PUSH B Saberi 0-adresno POP C PUSH i POP imaju adresu, a to je jedno (sve zavisi od ugla gledanja) Prisutni su i u dananjim raunarima Intel + Numeriki ko-procesor
CPU

P.C.
Akumulator

MUA A SAB B AUM C HALT

MUA A

20 Instrukcije

SAB B C HALT

50 51 52

MUA SAB AUM MUO ..... HALT

Svaka instrukcija ima svoje kodove

Apsolutno adresiranje Svaki procesor ima jedinstven mainski jezik koji je nuno binarni. Nama je to jako neugodno! Cilj je napraviti indirekciju. Svaki procesor izvrava samo instrukcije mainskog jezika. Pitanje: ta u stvari procesor treba da radi da bi se program izvrio? Procesor moe da ita i pie memoriju ili u sebi neto interno radi (obrauje podatke).

Faze izvoenja mainske instrukcije Prvo e koristei P.C. aktivirati memoriju i proitati podatak. I donoenje operacionog koda (I.(ta da radi!)) (itanje memorije i smetanje informacije na neko mesto) II donoenje adrese operanda (II.(Adresa!)) (itanje memorije i smetanje na neko mesto gde se nalazi podataka) III donoenje operanda (koristei fazu II prvo ita memoriju i donosi operand) (III.(Zna ta radi i ima sa ime)) IV Egzekucija Napomena: P.C. se u svakoj fazi uveava za 1 Ovo je mehanizam koji ga tera kroz ove 4 faze Rad sa konstantama Pojavljivanje konstanti kroz svaku formulu. Ne postoje razlike izmeu varijabli i konstanti. Umesto adrese daje se sam podatak; uglavnom se koristi rad sa konstantama. Jako teko bi bilo zamisliti rad sa nizovima bez ovoga. Primer: podatka MUA AUM SAB INC SAB [50] na adresi 50 nije podatak, nego adresa #100 - const 100 50 - zapisana na adresi 50 [50] - saberi indirektno 50 tj. 100 [50] - uveanje za 1 (MUA 50 SAB #1 AUM 50)

Instrukcija ne radi uvek istu stvar! Indirektno adresiranje Njegova hardverdska implementacije je krajnje jednostavna. Dalji nain adresacije koji se koristi: Relativna adresacija Pr. MUA (30) P.C. +30 (moj podatak se nalazi na 30 mesta od mesta gde se ja nalazim) P.C. Svest programa (gde sam ja(podataka) trenutno)

Apsolutna adresa 1. Blok koji translatorno moemo da etamo kako hoemo 2. najjednostavniji sistem (neprihvatljiv) Relativna adresacija uglavno se koristi Indeksno adresiranje neki specijalni indeks registra ... konstante (tehnike finese) Baratanje sa potprogramima Ideja: Logike celine izvodimo u potprogram i koristimo ga onda esto. ta je potrebno za podrku potprograma? NAROWER! Problem: Napiemo program koji nekoliko puta poziva potprogram. Program radi, pa pozove potprogram tj. treba da skoi na potprogram pa da se vrati na izvravanje programa. Skok na potprogram se obavlja bezuslovnim skokom! JUMP pozivamo potprogram Problem nastaje kod povratka iz potprograma, a to je neto promenljivo!!! Ne moemo da znamo ko e sve da poziva na program! Na kraju potprograma se ne moe staviti JUMP! Ali i to se moe reiti indirektnom adresacijom. uvanjem adrese povratka, znamo da se vratimo. MOVE P.C. uvamo P.C. na fiksnoj poziciji tj. to je mesto na koje trebamo da se vratimo Problem: Ne moemo da zovemo potprogram iz potprograma!!! Ako potprogram pozove potprogram, unitava se adresa P.C. Napomena: Fiksirana je samo jedna lokacija. Trebali bismo da imamo vie lokacija i da pazimo kojim redosledom radimo! Pa uvodimo posebne instrukcije, tj. uvodimo STEK!!! Adrese povratka stavljamo na stek! Kaskadno moemo da pozivamo vie potprograma. Skakanjem na potprogram koristimo PUSH P.C., pa onda JUMP i na kraju ide POP P.C. i vraamo se nazad. Posebne instrukcije: - JSR jump to ... - RSR return from ... Bitan je stek, a sve ostalo je pitanje organizacija!!!

Pitanje: Na koji nain se olakava komunikacija izmeu oveka i raunara? Slika 1 ( ... ) Pr: za izraunavanje diskriminante D=b2-4ac kada se prevede na nivo raunara. Faze: MUA #4 MUA#4 MND A MND 50 MND C MND 52 AUM P AUM 53 MUA B MUA 51 MND B MND 54 ODU P ODU 54 AUM D AUM 53 HALT HALT Loe odozgo ( sa nae strane) jer se razvija u mnogo sitnih instrukcija, meutim ovo je idealno, gledano sa neke druge strane. Umesto ovoga morali bi smo da imamo mainski program ( moramo da vidimo u tabeli sve binarne kodove, adrese i da napravimo raspored u memoriji A-50, B-51 ). Pitanje: koja je razlika? U prvoj fazi smo koristili promenljive, a u narednoj adrese! Uvodimo jo i binarne kodove ( ifre ) za MUA. Kod mainskog programa: svaka instrukcija je zamenjena binarnim kodom i svaka adresa je zamenjena bianrnom vrednou i to onda procesor izvrava. Razmatraju se ideje kako to da se uradi, imamo jednu nepromenljivu taku, to je raunar ( binarni ureaj sa svojim mainskim jezikom ). To mora da bude krajnji proizvod, a kako nam to ne odgovara hoemo da napravimo posrednika koji e da prima stvari kako ih mi vidimo i da prebaci u oblik prihvatljiv procesoru. Generalno reenje za ubacivanje posrednika izmeu oveka i rauna je uvek isto. Raunar je fiksna taka i on oekuje mainski jezik i bez obzira na to koliko smo se udaljili on jedino to razume. Sa druge strane ovek je takoe relativno fiksna taka, ali kod oveka imamo prilagoavanje. U sam sistem se ubacuje posrednik! Pitanje: ta moe da bude posrednik? Posrednik moe da bude sam raunarski program ( pomae nam u preraivanju informacija ).

Pravo reenje je da se raunar pomogne sam da se nahrani! Posrednik bi bio raunarski program. Pitanje: kako radi raunarski program? Uz neke sitne izuzetke definiemo: ovek pie tekstualni fajl u koji zapisujemo ta da se radi. Raunar uzima tekstualni fajl kao ulazni u svoj program, obrauje ga i prevodi tj izbacuje program na mainskom jeziku i time puni memoriju i omoguuje procesoru da radi. Program e da bude translator koji e na zapis da preradi u mainski jezik i na taj nain napuniti memoriju, omoguujui rad procesora. Predrasude: ovo su specifine ( posebne ) stavke programa, ( prave se u raznim okruenjima ). Za pisanje programa koristimo tekst editor! Sutina procesa: svaki program je u sutini tekstualni dokument ( fajl )! Ostalo je fizika stvar. Kategorija prvougaoni komadi papira - fizika definicija. Logiki su razliite stvari, ali iz iste kategorije i pismo i C program sve su to tekstualni dokumenti. Struktura je stalna! Tekstualni dokument = izvorni program. Slika 2 ( ... ) Pitanje: ta je najelementarniji sluaj udaljavanja? Prvi koraci su vrlo jednostavni, moe vrlo lako da se uradi neto efikasno i dobro, prvi oblik translatora: ASEMBLER I ( sa simbolikim instrukcijama ). Problem! Hoemo da reimo problem koji je sutinski veoma mali, imamo odreen broj instrukcija jako mali i znamo ta one rade. Sa druge strane postoje ifre ta procesoru mora da se da, da bi on neto uradio. ( neophodna tabela za nizove 0 i 1 ) Stalno moramo da imamo pored sebe te ifre ( ogranienja ). Problem je trivijalan, radi se samo o preimenovanju, sutina je da se dogovorimo oko formata pisanja. Dogovor: raunaru instrukcije piemo na jedan nain! Ako napravimo rigidan ( strog ) format: - translator je jednostavan. Ako napravimo popustljiv format: - translator je sloen. Raniji formati su bili strogo rigidni! Program je rigidan znai da: - uitava fajl red po red, kad uita prvi red onda izdvaja dva elementa, prvi ine prva tri karaktera, a preostalo su binarni brojevi - ugraena je proizvoaka tabele i niz instrukcija Program je trivijalan!

Ako bi smo dozvolili slobode u formatu i dozvolili prazne redove i da se ne poinje od prve kolone, onda pravimo petlju za preskakanje blankova itd. Dobili bi smo komplikovani programski translator. Ovime smo napravili jednostavan asembler, gde smo se reili binarnih kodova za instrukcije. Ako se ovo pokae kao dobro, traimo i dalja poboljanja. Adrese su i dalje binarne. Pitanje: ta treba da ugradimo u taj asembler? U asembler moemo ugraditi jedan algoritam konvertor iz dekadnog u binarni sistem. Potrebno je dodati par naredbi: - deljenje ( petlja koja deli sa 2 ) - ostaci ( izbacuje ih i ita u obranutom redu ) Zapis: MUA #4 MOD 50 Instrukcije su simbolike, a adrese su dekadne. Pitanje: sledei korak? Olakavanje: MUA #4 MOD A Sada imamo i simbolike adrese, ne piemo apsolutnu adresu. Tek sada moemo direktno gledanjem videti koja je formula u pitanju (D=b2-4ac) Pitanje: ta za to treba da se uradi? Program translator treba da postane za jedan stepen komplikovaniji. Sada e sam da uvodi memoriju, raspodeljuje adrese i dodeljuje imena. Tako da imamo jednoprolazne asemblere i dvoprolazne asemblere. Pitanje: ta treba taj program da uradi? 1. prvo prolazi kroz tekstualni fajl, zatim 2. trai varijable ( promenljive ), prikuplja ih 3. pravi listu ( spisak ) bez ponavljanja 4. trai mesto u memoriji i dodeljuje adrese Spreman je za prebacivanje u mainski jezik! Stari program je imao fiksiranu, statiku tabelu sa kodovima od proizvoaa ( tajna ). Novi asembler ima novu dinamiku tabelu promenljivih specifinu za svaki program ( promenljiva ). Prema nekoj strogoj sintaksi imamo: Krajnji rezultat koji je uvek isti, a ovo poslednje je asembler ( prethodno su bile neke primitivne forme ). Podrazumeva se da asembler ima: - simbolike instrukcije - simbolike adrese stim to ne mora da bude dvoprolazni.

Drimo korespodenciju sa mainskim jezikom 1-1, praktino imamo program na mainskom jeziku, samo smo preimenovali neke stvari, a neke dugake iskaze smo skratili nadimcima. ASEMBLER praktino mainski jezik! Sledei korak je jo neko unapreenje, primeeno je izvesno ponavljanje programa. Procesori pre mnogo decenija, pre 8-bitnih imali su sposobnost da raunaju do 127 pa su stoga ne upotrebljivi. Npr: trebaju nam veliki brojevi. Uzmemo dve memorijske lokacije, posmatramo ih kao jednu celinu i imamo: - imamo memorijsku lokaciju x, pa uzmemo x+1 i posmatramo ih kao jednu lokaciju tj. jednu celinu promenljive za sebe. - imamo memorijsku lokaciju y, pa uzmemo y+1 i posmatramo ih kao jednu lokaciju - saberimo x i y, odnosno x+1 i y+1 i smestimo na z, odnosno z+1 rezultat. Pitanje: kako se ovo izvodi? Kao niz naredbi. Celina za sabiranje dvobajtnih brojeva! ( procesor to ne moe ) Pretprocesor MUA X SAB Y AUM Z MUA X+1 SABC X+1 CARRY bit UAM Z+1 Sabiranjem imamo jedan bit CARRY koji slui za uvanje prenosa ( 9 bit ). Stalno prepisujemo ovih 6 naredbi. Pitanje: gde sauvati ove naredbe i naknadno ih koristiti? uvanje ovih naredbi se obavlja u proirenju asemblera. Proirivanjem tabele sa jo nekim instrukcijama definiemo SAB 2 ( sabiranje dvobajtnih ) ili SAB 4 ( sabiranje etvorobajtnih ). U procesu asembliranja uvodimo i ODU 2, SQRT... Mesto gde je ovo zapisano je pretprocesor, u fazi asembliranja se zamenjuje odgovarajuim delovima koda programa. Skupovi od po vie naredbi MAKROI Ovakav asembler se zove makro asembler i ovo su makroi. Osnovna osobina asemblera je da prui korespodenciju 1-1 sa mainskim jezikom, a ovo je neto drugo pa ne bi trebalo da se naziva asembler, jer im se udaljavamo od 1-1 dobijamo neto drugo. Tako da uvoenjem pretprocesora zamenjujemo neke asemblerske instrukcije. Uz njih se moe razmatrati pojam virtualne maine.

Pitanje: ta je to virtuelna maina? Pojam virtualne maine: to je prividna stvar, nije stvarna, ali izgled da radi tako kako nam se ini. Imamo procesor, fiziki kakav jeste sa osobinam koje poseduje i u procesu objanjavanja korisniku umesto da idemo u detalje mi skraujemo tj krajnjem korisniku preutkujemo istinu, pa kaemo da procesor izmeu ostalog moe da sabere i dvobajtne brojeve ( SAB 2 ). Pitanje: kako to izgleda? Gledano iznutra, mi znamo da toga nema tj da takva maina fiziki ne postoji, jer je virtualna maina skrivena, pa se ne vidi razlika izmeu fizikog sabiranja i dvobajtnog sabiranja. ( ne vidi se ta je hardver, a ta je softver ) FIZIKA MAINA + SOFTVERSKI DODATAK= ( V.M. ) fiz. sabiranje dvob. sabiranje ( fiz. maina + 1 soft. dodatak predstavlja reenje dvobajtnog sabiranja ) Proglasimo je kao regularnu instrukciju, a ona je u stvari softverski implementirana. Sa stanovita krajnjeg korisnika to je u redu, to je za njega istina. Pojam virtualne maine, mikroasembler Po prvi put imamo razdvajanje korespodencije 1-1 sa mainskim instrukcijama. injenica da se neki delovi esto upotrebljavaju, bie uoena i u okviru nekih drugih stvari: - sa jedne strane imamo neku aritmetiku sa stepenom 2 - sa druge strane imamo neke rutine vezane za U/I. Prelo se na fazu gde se koriste dodatni U/I ureaji: - prvo buene kartice H.Holerit - za programiranje maine za tkanje 19v.akard - za popis stanovnitva SAD ( IBM maina za obradu podataka o stanovnitvu ) Pitanje: kako da se komunicira sa tom mainom? Imamo stalno ponavljanje komande za unos podataka sa kartice, treba nam da sa te maine proitamo jednu karticu i da broj koji je tamo ifriran prevedemo u binarni oblik, pa da ga smestimo u memoriju. Naredbama obezbeujemo da se maina pokrene i da proita jedan broj, izdvojiemo to na jednom mestu kao deo programa i pozvaemo ga kao ve napisan program. Pitanje: ta emo da uradimo? Izvoenjem programa i ponovnim pozivanjem, dobijamo rutinu: 1. aritmetika ( matematike funkcije ) od njih nastaju vii programski jezici 2. opsluivanje perifernih ureaja ( itanje karaktera, kasnije pokretanje tampaa ) izdvajaju se u operativne sisteme.

Osnovne karakteristike viih programskih jezika - dosta su bliski oveku - raskinuta je korespodencij 1-1 i posti korespodencija 1-mnogo ( jedna naredba vie programa razvijena je u stotinu naredbi krupan kvalitativni skok ) - jako su kompleksni programski translatori - reavaju se pitanja vavilonske kule ( uenje mnogo jezika ) Svaki procesor ima svoj mainski jezik, dovoljno je znati jedan vii programski jezik, a on e se prebaciti na bilo koji procesor. Ukida se direktna veza ovek procesor, ovek ne mora nita da zna o tom procesoru. Kompajler je jako teko napisati! Npr: ako imamo 100 procesora i 1000000 programa: - 1000000 ljudi treba da naui 100 stvari - tee je napisati kompajler nego nauiti asemblerl, ali onda ovime reavamo problem - svaki kompajler za svaki procesor se radi jedinstveno - za uenje jednog asemblera potrebna je koliina truda jedinice jedan - ukupno 100000000, a pisanje kompajlera zahteva 100 redova, hiljadu puta je tee napisati - za 100 procesora po kompajleru, to je 100000 i nakon toga svi programeri trebaju da ga naue 2,3000000 100000000 : 100000x2,3 Reava paradoks za pisanje kompajlera, reavaju nas brige na kom procesoru radimo. Digitalna logika: Uvod: procesori raunarske digitalne tehnike, ureaji sa mnogo paradoksa i mnogo razliitih stvari. Mi smo prema njima uasno spori, oni su nama uasno brzi ( iznenaeni smo naim gleditem na stvari ). Mi se baziramo na naem iskustvu i intuiciji, a to ne moe da se odnosi na procesore. Na izvestan nain su to i najjednostavniji i najkomplikovaniji ureaji. Pitanje: ta su ti elementi? Kod raunara ukupan broj redova je veliine 1000000000. Iako je napravljen od milijardu delova, svi su delovi jednaki. Zapravo jedan element je ponovljen milijardu puta tj jedan gradivni element imamo u milijardu primeraka. Pitanje: sa jedne strane ta je gradivni element, kakve osobine ima, kako da ga napravimo, kako da ga poboljamo?

Pitanje: sa druge strane ako imamo te gradivne elemente kako da ih sastavimo? ( da napravimo neto pametno ) Razvoj raunarske tehnologije zavisi od razvoja gradivnih elemenata ( dinamiko )! Na koji nain se implementiraju zavisi od materijalnih zakona ( statiko )! Pitanje: ta je gradivni element? Arhitektura, kako sloiti te delove? ( zavisi od zakona materijalne logike ) Klasina digitalna logika se bavi arhitekturom! Poinje od malo vieg nivoa, ne sputa se nisko, zato emo da odemo u nazad. Najpre emo govoriti o gradivnim elementima, u tim elementima je sadran sav napredak tehnologije i sve ono to se deava na raunarima. Ljudi su delimino svesni, a delimino i nisu kako to u stvari ide. Radi se o tome da se uplie eksponencijalni razvoj. Razvoj raunara, hardvera je eksponencijalan. Murov zakon: performanse raunara se udvostruuju svakih 18 meseci. Hijerarhijska organizacija: - softverski sistemi, drvo koje se grana sainjeno od naredbi. Kada smo uoili osnovne zakone uoimo i sam gradivni element. Pitanja: ta je gradivni element, koje su njegove karakteristike, ta mora da ima, ta je uticalo na nastanak eksponencijalnog razvoja stvari kroz istoriju? Nakon toga prelazimo na klasinu digitalnu logiku. Digitalna logika: - prekidai - statiko exp. - arhitektura dinamiko log. Prekidai detaljnije: gradivni ( prekidaki ) element jeste u stvari prekida, sa specijalnim osobinama. Pod prekidaem podrazumevamo prekida za svetlo, ali on ne bi mogao da poslui kao gradivni element, za izgradnju raunara. Postoje i drugi prekidai ( generalna ideja je iroko rasprostranjena ). Treba nam prekida koji se kontrolie onim to on sam kontrolie ( po principu povratne sprege ). Da bi bila mogua povratna sprega prekida treba da se kontrolie onim to on sam kontrolie! Ako napravimo takav prekida napraviemo i raunar. Sa gledita arhitekture: imamo 100000 prekidaa, a ta su oni to nas ne interesuje. Sam razvoj je iao donekle kvantitativno, a donekle kvalitativno, imali smo napredak sa takama prekida. Pitanje: imamo li primer, moe li se napraviti? Prekida moe da prekida bilo ta ( struja ).

Pitanje: a koji bi to bio najjednostavniji prekida? Prekida koji zadovoljava ove osobine naziva se relej. Relej je elektromehaniki ureaj po principu magneta ( danas su veinom releji sakriveni ). Slika 3 ( ... ) Uglavnom imamo etiri pola, ali moe biti i tropolni ureaj. Pitanje: da li struja od A prema B moe da tee? DA! Sa osobinom da kontrolie struju i da se kontrolie strujom, na taj nain zadovoljava ove osobine. Jedno je pitanje kako napraviti gradivni element, a drugo je kako emo to da ispovezujemo? Oznaka: (...) Pod kontrolom C struja tee izmeu A i B. Istorijske injenice: raunari su pravljeni na bazi releja, II svetski rat! Vremenom se to kanonizovaloi postalo jasnije! Danas se generalno uzima ENIAC 1945. god za prvi raunar, zvanino je prihvaeno da je to prvi raunar, pre njega su bili pokuaji raunara. Pitanje: da li moemo napraviti drugi prekida? Da li moe da se pronae neto sutinski drugaije? Kada je dolo do takvog kavalitativno pomaka, to je oznaavalo novu generaciju raunara. U tom kontekstu govorimo o 0 generaciji raunara, baziranoj na relejima II svetski rat. Pitanje: ta su osnovne osobine ovakvog releja? funkcionie! Sam ureaj je elektromehaniki, ima veze sa strujom, ali se bazira i na mehanici. Osnovni problem je brzina jer je u pitanju mehanika prekida. Granice idu od nekoliko puta u sekundi do nekoliko hiljada puta u sekundi. Red veliine stotinak puta u sekundi u odnosu na oveka je brz, ali je dosta ogranien. Stoga se tragalo za neim novim. Uzet je ureaj koji je ve postojao: ELEKTRONKA ili elektronska cev ( koriena u radio ureajima ). Slika 4 ( ... ) Iz staklenog balona izvue se vazduh, napravi se vakum i napravi se elektroda koja otputa elektrone, to se postie podgrevanjem ( arenjem ). Sa druge strane se postavi ploica sa pozitivnim naponom i dolazi do privlaenja usled manjka elektrona.

Napravili smo elektrini provodnik brz ica ( vri f-je ice ), u sredini se postavlja mreica, na toj reeci dovodimo napon za kontrolisanje. Imamo dva kontakta izmeu kojih struja moe da tee ili ne mora. Zadovoljeni su uslovi definicije, pa imamo prekida koji bi mogao da se upotrebi, ali je ovaj prekida potpuno elktronski ( zavisi od tehnologije izrade ), moe da ide 1000000 puta u sekundi. Ovo je oito pogodniji prekida. Ovim nastaje revolucija, sklanjanjem releja i stavljanjem trioda dolazimo do I generacije raunara (elektronke ). Ovime poinje I generacija raunara koja se priznaje. ENIAC 18000 elektronki tihi napredak generacije. Nastaje pojava tranzistora! Ideja prekidaa moe da se uradi na drugim principima. 1928. god. razmatrana je ideja za novi prekida, ali u praksi ovo nije zaivelo. ( nije moglo tehniki da se realizuje ) Slika 5 ( ... ) Uzmimo poluprovodnik ( plou ). Ideja je napraviti kanal sa vikom elektrona i napraviti jo jedan identian kanal. Oni nam slue za provoenje struje. Izmeu dva kanala ne mloe da tee struja. Stavljanjem izolatora sa metalnom kapicom ( sa manjkom elektrona ) omoguen je protok struje. Pronaeni su prekidai na nekom drugom principu Slika 6 ( ... ) 1948. god napravljene su tri kockice od germanijuma. Od tranzistora od tri kockide mogue je napraviti prekida. Iz nekih razloga nije moglo da se komercijalizuje. Sredimom 50. god krenula je proizvodnja i dolo je do revolucionarnog pomaka. Dobili smo tranzistor koji je 1000 puta manji od prethodnih po zapremini ( nema zagrevanja ). f-je vri direktno, a imamo i hiljadu puta manju potronju struje ( pouzdaniji su i due traju ). Ukupno poboljanje meri se i do nekoliko miliona puta. Zamenom elektronki sa tranzistorima dobijamo kvalitativni skok, pa momo govoriti o II generaciji raunara ( od sredine 50. god ). Obino se prihvata da postoje jo III i IV generacija. Ne radi se o sutinski novim gradivnim elementima. Do tada se baziralo na novom tipu prekidakih elemenata koje ovde u treoj generaciji nemamo. III generacija jo se naziva i modularna generacija.

Ne trebaju na prekidai kao pojedinani elementi ve kao celina. Na taj nain dobijamo utedu jer se sve u fabrici uradi na jednoj ploici ( tehnoloki oblik minimizujemo ih i ispovezujemo ih u fabrici). Ovaj nain organizacije doneo je kvalitativni pomak koji zasluuje da se zove novom generacijom, ali se prekidaki elementi nisu promenili to predstavlja III generaciju raunara ( rane 60. god ). Kasnijih 60. god i 70. god dolazi i IV generacija, V.L.S.I. Najbitnije je da se vraa na staru ideju tranzistora, da je on dvodimenzionalan ( planaran ). Trea dimenzija je toliko tanka da se zanemaruje. To mu omoguuje da se pravi fotografskim postupkom, na taj nain se dolazi do kvalitativnog skoka, gde se raskida veza 1-1 sa prekidakim elementima i pravimo ih sve odjednom. Ponavljanjem procesa dobijamo analogiju ( kvalitativna razlika ). Sutina IV generacije: svi elementi se prave odjedanput! Na ovaj nain objanjavamo Murov zakon. Ustalilo se da se generacije smenjuju sa nekim periodom od neki 5-10 god. Desilo se to da sledeih generacija nema, od kasnih 60. god pa do sada s nita nije promenilo. Murov zakon nije zaustavljen, nekadanje tihe ( unutranje ) promene sada postaju burne. Faktor je miniturizacija! Poslednjih 40. god se minijaturizacijom odrava poredak. Zvanino se priznaju etiri generacije raunara, esto se priznaje i 0 generacija raunara, a mimo toga postoje i druge podele. Def: generacije raunara se definiu na osnovu prirode prekidakih elemenata. Postoji svetski priznati pokuaj u okviru koga se spominje V generacija raunara. Ulo je u literaturu, ali u ovu kategorizaciju ovde ne pripada. U vreme kada nije bilo smene generacija pojavila se pria o V generaciji raunara, pa se verovalo da e to da bude softverska revolucija negde krajem 60. god, a bazirana je na vetakoj inteligenciji i prolog jeziku. ( jo jedan element kao argument V generacije: 2000000 dolara ) Realnost su prve etiri generacije, ali moe i da se uradi ekstrapolacija ( unazad ) neega to se nije desilo, a moglo je. Pitanje: koliko unazad moemo da idemo? Sa elektronkama je moglo da se ide 20-30 god unazad. Moemo zamisliti raunar na nekim drugim principima, ne mora biti struja u pitanju, moe biti i voda. Napravili smo prekida koji kontrolie ono ime se sam kontrolie. Slika 7 ( ... ) Prekida na principu vode sigurno je mogu. Ta tehnologija koja moe da napravi esmu, moe da napravi i raunar. Raunara sline

dananjim mogli smo da pravimo i u starom Egiptu, ne nedostaje tehnologija nego znanje. Uvod: sve se u stvari svodi na logike funkcije. Def: logike ( buleanske ) f-je imamo pojam preslikavanja, stim to imamo dvolan skup. Imamo ogranienje: domen i kodomen su dvolane f-je ( f-je sa dva elementa i kao rezultat imaju dva elementa ). Pojmovi: - detektovanje - merenje Raunar kao prvenstveno binarni ureaj je jedan buleanski ureaj, barata samo sa detektovanjem tj barata samo logikim f-jama. U raunaru sem buleanskih f-ja ne moe biti nita drugo. Pitanje: koliko ima logikih f-ja jedne varijable, a koliko ima logikih fja dve varijable? Ako imamo buleansku f-ju od K varijabli, elemenata moe da bude dva. Pitanje: za K varijabli koliko imamo moguih ulaza? Varijacije sa ponavljanjem! Br. Moguih ulaza je 2k , a ako ima dve varijable mogui ulazi su: Tabela 1 Pitanje: ta je buleanska f-ja na dve varijable kada ulazima dodelimo nekakve vrednosti f-je sa dve varijable? Varijacije sa ponavljanjem! Broj moguih ulaza je 2(2k) Od K ulaznih argumenata ima 2(2k) moguih buleanskih f-ja. U praksi: Tabela 3 i 4 Vraanje na prekidae: sve se sastoji od jednog gradivnog elementa ( prekida ) Praktino: moramo malo da odstupimo ( dozvoljeno odstupanje ), ukoliko imamo dva oblika prekidaa ( modifikacija ), neke stvari su onda mnogo lake. Slika 8 ( ... ) Bitno je da je uslov zadovoljen. Pitanje: da li ovo mora ovako da bude, u emu je modifikaacija? Od jednog gradivnog elementa dobijamo dva, fizika modifikacija je minimalna. Ovo jeste jedan gradivni element, ali po nainu na koji radi radi se o dva modela gradivnog elementa:

- kada nema kontrole ( struje ) ova dva prekidaa provode struju - kada ima struje onda se razdvoje i ne provode struju Oznaka: (...) Imamo dve varijante prekidaa: - onda kada je prekida aktivan u stanju kontrole, ne provodi struju - onda kada je prekida ne aktivan u stanju kontrole, provodi struju Prelazimo na realne logike f-je Interesantana je negacija! X f(x) implementacija je trivijalna ( kada doe do ..., onda dodeljujemo fizike veliine ) Kroz istoriju smo imali: (...) Oznaka: (...) F-ja koja radi inverziju koristei gradivne elemente koje imamo je neto komplikovanija: Slika 9 ( ... ) Poveimo dva prekidaa na ovakav nain: - ako stavimo da je x=1, onda je ovo ... prekida koji prekida, a ovo ... prekida koji proputa struju, kada mu dovedemo napon - ako stavimo da je x=0 onda je ovo ... prekida koji prekida, a ovo prekida koji proputa struju kada mu dovedemo struju. Na ovaj nain dobili smo f-ju koja ima smisla, tj logiku f-ju negacije koja se naziva inverter ( obrta ) Simbol: (...) Hteli bismo da napravimo f-je AND i OR, onda f-je moraju da imaju povezanost sa serijskom vezom prekidaa. AND kada svi propuste struju, samo tada moe da proe ( teak prolazak ) ... Slika 10 ( ... ) OR ako svi preseku struju, samo tada neemo proi ( teak ne prolazak ) ... Slika 11 ( ... )

Slika 12 ( ... ) Dva standarda: 1 ako ice nisu spojene ... ako ice jesu spojene ... 2 ako ice nisu spojene ... ako ice jesu spojene ... kombinujemo: ... Pitanje: kako moemo proveriti ta kolo radi? Popunjavanjem tabele, dobijamo reenje. Uteda! ... Skraujemo diskusijom i izdvajanjem karakteristinih sluajeva: Analiza donje grane ... Analiza gornje grane ... Spajanjem gornje i donje grane dobijamo ... Slika 13 ( ... ) Da li je ovime dobijena funkcija? Ako smo je dobili, koju smo dobili? Analiza ... - istaknut sluaj Kroz paralelne grane teko je ne proi. Simetrino: Analiza gore pokazuje ... - istaknut sluaj Kroz serijske grane teko je proi. Spajanjem ova dva imamo: ... (izlaz je tablica funkcije) Ovo jeste funkcija! funkcija f7(x,y)=OR funkcija f8=f7 - negirana funkcija ili! NOR

Na taj nain imamo: 1. slika 2. slika 3. slika INVERTER ( 2 prekidaa ) NAND ( 4 prekidaa ) NOR ( 4 prekidaa )

Iz ova tri moemo dobiti: 4. slika 5. slika iz 2. i 1. ( 6 prekidaa ) iz 3. i 1. ( 6 prekidaa ) Izvedene funkcije

Prve tri proglasimo aksiomama i onda dalje izgraujemo ostale. Dalje radimo standardnu digitalnu logiku i izgraujemo nove elemente! ( Korienjem od toga to imamo i to razumemo napraviemo neto novo! ) Od funkcija dve varijable napravili smo 4, ima ih ukupno 16. Sledea je XOR Slika 14 ( ... ) Neka je: ... Pomou 4 NAND-a dobili smo XOR! 6. slika XOR ( 16 prekidaa )

Matematika logika i fizika implementacija-ista stvar! Predstavljanje formulom: Slika 15 ( ... ) 1. f(x,y) = ab 2. a = xc 3. b = yc 4. c = xy Uvrtavanjem imamo: 2.i3. 1. 4. 5. 5. 6. Formula 6. opisuje povezivanje fizikih komponenti! Kako emo to da proverimo? Dokazati: formula jednaka funkciji Jedna funkcija moe da se predstavi na razne naine! Najstandardniji nain kao NKF, NDF abc + xyz + .......... NDF (a+b+c)*(x+y+z) ........... NKF

Uzmemo sva mesta gde funkcija ima 1, pa naa formula treba da ima 1 na tim mestima, pravljenjem sabiraka. Kada su ulazi NDF (XOR) = xy +xy tada je ovo ekvivalentno tablici Nezvanina definicija funkcije XOR! Treba dokazati f= NDF(XOR) Koristiemo DeMorganove formule: 1. uv = u+v 2. x = x 3. x * x = 0 kreemo od 6. ... Pitanje: Zato smo izabrali ba njega? Krenuli smo od logikih funkcija i stigli do ureaja za sabiranje! Procesoru je dovoljno da sabira i uporeuje sa nulom. Sabiranje u tom smislu je kljuna situacija! Uvod: ( Predrasude! ) Dekadni sistem je zgodan, ali objektivna stvarnost to ne podrava. Oblasti: - osnovne raunske operacije - matematika logika Pitanje: Kako stvari objektivno izgledaju? Sve to moemo da uradimo u raunaru je matematika logika. Uvek se radi iskljuivo logikim funkcijama, korienjem posrednika. ( Sabiranje velikih brojeva svodi se na sabiranje cifara ) Sve to moemo da uradimo u dekadnom, moe se uraditi i u binarnom sistemu! im imamo binarni sistem odmah imamo Buleanske funkcije. Od ulaza 0 i 1, formiramo izlaze koji mogu biti samo 0 ili 1. Sabiranje e biti sistem od 2 logike funkcije: x 0 0 1 1 y 0 1 0 1 s 0 1 1 0 p 0 0 0 1

Sabiranjem binarnih cifara moemo sabrati duge binarne brojeve, dugi binarni brojevi su ekvivalentni dekadnim...

Dovoljno je pogledati tablicu i dobijamo funkciju AND i XOR. x 0 0 1 1 y 0 1 0 1 f(x) 0 1 1 0 XOR 0 0 0 1 AND

Da bismo sabirali ne treba nam aritmetika, ve su dovoljne Buleanske funkcije. Fizika implementacija: Slika 15 ( ... ) 7. slika - novo kolo za sabiranje ( 2 prekidaa ) Sastoji se od XOR-a i AND-a

Pitanje: Naziv? Sabira! Meutim, sabiramo proizvoljne brojeve, uzmemo 2 cifre generiemo rezultat itd. Treba nam ureaj koji sabira 3 cifre jer uzimamo u obzir prenos. Ako znamo da saberemo 2 broja zmano da saberemo i 3 jer je sabiranje asocijativno. (a+b)+c = a+(b+c) x x+c Sabira mora da se sastoji od 2 elementa pa je ovo polusabira! Oznaka: slika - polusabira Sabiranje: Slika 16 ( ... ) Osnovna razlika izmeu polusabiraa i sabiraa? Polusabira kombinatorno kolo koje sabira 2 binarne cifre uz prenos. Sabira kombinatorno kolo koje sabira 3 binarne cifre uz prenos. Tabela

Logika funkcija 1 varijable ima 4 funkcije Logika funkcija 2 varijable ima 16 funkcija Buleanska funkcija 3 varijable ima 22n, 256 funkcija S2=S p p1p2 0 0 0 1 1 0 OR 1 0 1 XOR Svejedno je da li je OR ili XOR. Kombinacija 1 1 se ne pojavljuje. Oznaka: slika - pun sabira ( sabira 3 binarne cifre ) 8-16-32 bitni!

Mogue je napraviti proizvoljni sabira Slika 17 ( ... )

Imamo: kolo koje radi neto korisno, napravljeno od 1600 prekidaa, sa jedne strane kompleksno, a sa druge jednostavno. - Kombinatorna kola predstavljaju implicitne logike funkcije koje rade izraunavanja ( izlaz zavisi id ulaza ) - Memorijska kola uvaju izraunavanja ( izlaz ne zavisi od ulaza ) Kombinatorna i memorijska kola se udruuju u sekvencijalna kola. Dekoder je jaki esto korieno kolo za dekodiranje memorijske adrese. Adresa ( binarni broj ) Dekoder je kombinatorno kolo koje ima n- ulaza i 2n- izlaza, gde je aktivan tano jedan izlaz iji redni broj odgovara binarnom broju na ulazu. ulaz 1 2 3 4 - izlaz - 2 - 4 - 8 - 16

10 - 1024 Pitanje: kako izgleda dekoder 38? Slika 18 ( ... ) 7-e biti izabran kada mu damo cifru rednog broja

ta god da uradimo, radimo sa Buleanskim funkcijama. I ovo je jedna Buleanska funkcija sa 3-ulaza, sistem od 8 funkcija. Dekoder 3-8 : Tabela ... Svodi se na Buleansku funkciju! I0,...,I7 256 Buleanskih funkcija - 3 varijable I7-nam je poznata : konjukcija sa 3 ulaza ( AND ) Slika 19 ( ... ) I kolo moe da se modifikuje, da ne bude prepoznava! I kolo je prepoznava tri jedinice! Dodavanjem invertera I kolo prepoznaje sve! Dizajn: - ulaz sa leve - izlaz sa desne - kontrole po vertikali ( sa komplementima ) Slika 20 ( ... ) Ako je 1 onda vai formula Ako je 0 onda vai formula 10. slika - Dekoder Da bi ovo bio klasini dekoder, generalno moe da znai bilo ta. ( neku cifru dekodira u bilo ta ) esto se koristi: Numeriki displej ( standardni displej na pricipu piksela ) Sedmosegmentni displeji - iz elektrinog ureaja izlazi bcd kod dobijamo 4 bita koji predstavljaju dekadne cifre. Slika 21 ( ... ) Dekoder prevodi u oblik koji elimo! BCD to sedmosegmentni: ( formiramo tabele ) 1*x=x 0*x=0

Ulaz: u0,u1,u2,u3 Slika 22 ( ... ) Tabela Na osnovu tabele povezujemo logike funkcije! Izgeneriimo kad treba da svetli a U ovoj tabeli ima vie 1 nego 0, pa je bolje pratiti jedinice Slika 23 ( ... ) Ovo do sada su bila kombinatorna kola, a radili smo i memorijska kola. Pitanje: ta bi bilo osnovno memorijsko kolo? Bila bi jednobitna memorija. Slika 24 ( ... ) Da bi bilo memorijsko kolo, treba da pamti pa nam treba kontrola. Kod memorijskog kola izlaz ne zavisi od ulaza. Memorijsko kolo esto se pravi malo komplikovanije! Uvoenjem 2 kontrole reavamo problem: Slika 25 ( ... ) Linija enable omoguava da se bilo ta radi Oznaka: signal R read kad je 0 neaktivan W write kad je 1 aktivan Takvi signali su oznaeni nadvuenom crtom. ( 2 signala se dele kosom crtom ) Sve se uvek radi u odnosu na procesor! In - u CPU Out - iz CPU Read - CPU ita Write - CPU pie Memorija se pravi jednim sklopom koji je izmiljen za neke druge svrhe. FLIP - FLOP ( bistabilni elementi )

Jednobitna memorija

FLIP-FLOP

bistabilni elementi

- 50, 60, godina f.f. su se ugraivali u elektronska kola. Pitanje: kako izgleda flip-flop? 2 NAND-a unakrsno povezana povratnom spregom. Slika 26 ( ... ) Pitanje: kako se ovo ponaa? Lii na kombinatorno kolo. Pitanje: moe li ovo ovako? Da! Pitanje: ta e se desiti ako sa 1 preemo na 0? Kolo je promenilo stanje Moemo vratiti vrednost na 1 i nita nee da se Promeni, jer je povratna sprega zablokirala! Izlaz kola ne zavisi od ulaza jednoznano Za iste ulaze imamo dva razliita izlaza! Ovo kolo ima memorijsku funkciju ( zavisi od ulaza u prolosti ) Simetrino i za donju granu imamo: ... Odavde dolaze: - izlazni signali: 0 Q - ulazni signali: S R S set R reset Slika 27 ( ... ) Ovakvo kolo se zove RS ( SR ) ili FLIP-FLOP. To je element memorijske jedinice, najjednostavnije kolo iako nije u potunosti memorijska. Sve ovo moglo je da se uradi i simetrino: umesto NAND-ova moemo uzeti i NOR-ove pa imamo: Slika 28 ( ... ) NOR-ovi ( aktivno visoki-normalno stanje na nuli )

( neto rade! ) - postavljanje ( 1 ) - inicijalizacija ( 0 )

Pitanje: kako sada od ovoga napraviti memoriju? Problem reen inverterom! Uveden je vii problem! Ukinuta je melmorijska funkcija! Ovo postaje kombinatorno kolo, ta je na ulazu to je na izlazu. ( menjanjem ulaza, menja se i izlaz ) Pitanje: ta moe da se uradi da se ovaj problem rei? Slika 29 ( ... ) C=1 ovo se ponaa kao normala SR flip-flop S i R treba drati na 0. Pitanje:ta ako je C=0? Ovo kolo prestaje da prima spoljne ulaze! Sa ovim C-om kontroliemo ovo kolo! Slika 30 ( ... ) D flip-flop 1 bitna memorija - set - reset ( setuje ) ( resetuje )

Kada je D=1 Kada je D=0 dok god je C = 1

Kada elimo da zapamtimo, onda je C = 0 ( imamo mogunost kontrole pa je ovo potpuni memorijski element ) Problem? Imamo. Kolo sa 2 ulaza, imamo 4 ulazne kombinacije, 3 smo razmotrili, a 4. je nedozvoljena. 1 1 0 0 -1 -0 1 0 nita se ne deava oba izlaza su 0 ( nedozvoljeno stanje ) 1 kasni

Ovo je opasno stanje jer Q i Q ne mogu biti jednaki! ( sobzirom da su komplementarni, dolazi do kratkog spoja ) 4. stanje je i logiki i praktino nedozvoljeno.

Pitanje: ta tu moe da se uradi? Moe da se dodefinie doraivanjem FLIP-FLOPA! Uzmemo 2 FLIP-FLOPA Slika 31 ( ... ) Ovo je i dalje jedan flip-flop, ali sa dobrim svojstvima. Podatak prima sa zadrkom. ( jednostepeni prenos postaje dvostepeni ) Kada C povuemo na 1 prvi flip-flop radi, a drugi ne radi. Nakon toga prvi ne radi, a drugi proradi. To nam omoguuje da napravimo povratnu spregu. Na poetku pamti interno, prikazuje ga na kraju. Ovaj tajming se pokazuje, jako korisnim. Pa imamo MASTER SLAVE FLIP-FLOP 4.funkcija je obrtanje signala! Imamo: 1 - ne radi nita 2 - postavi se na 1 3 - postavi se na 0 4 - promeni se Pitanje: kako to izgleda? Tabela ... Ovakav flip-flop je zvanino jk flip-flop.

Pitanje: kako ovo moe da se napravi? Slika 32 ( ... ) ( kako su istovremeno aktivni izazivaju promene ) Ovaj Data flip-flop mora biti tipa, jer bi dolo do oscilacija! Napomena: sekvencijalno kolo Slika 33 ( ... ) ( 16 prekidaa ) Pitanje: ta ovo kolo radi? Tablina analiza: Tabela Tabele su ekvivalentne! 1 bajt

Imali smo:

- SR - D m/s - SK - T - tabliranje

Moemo napraviti posebnu vrstu flip-flopa koji radi samo tabliranje! Slika 34 ( ... ) Ne isplativi su u praksi! Sekvencijalna kola mogu biti 2 tipa - asinhrona - sinhrona Asinhrona po fazama ( potreban spoljni dava teksta ) Najjednostavniji signal sat bio bi: Slika 35 ( ... ) Karakteristike: - amplitude - frekvencija f = 1/t HZ - odnos 2 faze u jednoj periodi ( aktivna pasivna ) A. P. 50 50 Generalno u svakom klok signalu teimo ka tome. Remeenjem odnosa, nuno usporavamo kolo! U praksi signal je dosta zaobljeniji, ima vreme uspona, i vreme padanja. Slika 36 ( ... ) Ovakav jednostavan signal sata moe da poslui za ovakva kola. Dvofazni sat: - 2 faze - rade jedna u protiv faze druge Slika 37 ( ... ) Sobzirom na ( ... ) dolazi do preklapanja signala. Signali imaju aktivne i pasivne faze, sa zahtevom da se aktivne faze ne poklapaju! Def: dvofaznih neprekidnih aktivnih faza sata Pitanje: kako to ostvarujemo? Kada su aktivne faze uske, onda se ne preklaraju.

Slika 38 ( ... ) Nema preklapanja! Bilo koji signal sat se dobija iz analognog kola koje se naziva kvarcni oscilator. Precizni oscilatori se prave od kvarcnih kristala! Naivno: Proputanje kroz jedan gejt izaziva kanjenje pa dobijamo f2 Kao zakasneli f1 pa imamo preklapanje faza. Slika 39 ( ... ) Ovo sigurno ne radi! Pitanje: kako se pravi nepreklapajui sat? Sa flip-flopom. Slika 40 ( ... ) Posmatrajmo signale f, f1, f2 Slika 41 ( ... ) Prolaenje signala kroz bilo koji gejt zahteva vreme! Uzeemo vreme prolaska kroz: 1 gejt b 2 gejta 2b 3 gejta 3b Analiza tajminga: Nakon nekog vremena signal f odlazi na 0. Nazavisno od bilo ega drugoga ovo radi! Jedan signal se menja nakon apsolutnog vremena drugog. Na taj nain dobijamo dvofazni sekvencijalni sat.

You might also like