harverska sekvenca - alas.matf.bg.ac.rsalas.matf.bg.ac.rs/~mi06231/uuar/uuar_1-6.pdfdigitalna logika...

40

Upload: others

Post on 02-Feb-2021

12 views

Category:

Documents


1 download

TRANSCRIPT

  • Harverska sekvenca

    Arhitektura – spoljni pogled sa aspekta programera kako komponente izgledaju

    Organizacija – fizički pogled, kako su komponente napravljene Cilj: Razumeti kako računar radi!

    Plan rada: Uvod:

    1. Digitalna logika 2. Arhitektura računara

    3. Organizacija računara 4. dizajn

    Predmet posmatrati kao crnu kutiju:

    - zanima nas interakcija sa ostalim elementima

    - ne zanima nas unutrašnjost

    Predstavljanje računara: Osnovni model računara

    ( U praksi dodajemo još neke elemente, u teoriji to nije neophodno )

    Procesor: - Mozak (srce) računara, element koji ima potencijal da

    izračunava (obraĎuje) podatke.

    Procesor sam po sebi ne moţe da uradi ništa.

    Osobine: - jednostavan ureĎaj - pametan ureĎaj – izuzetno glup ureĎaj

    ( sagledavanjem spoljnih efekata ispostavlja se da je pametan )

    Teoretski: CPU radi zapanjujuće mali broj stvari. Sabira male brojeve tj. brojeve do 127 i uporeĎuje da li je nešto jednako 0.

    Računar ima samo jednu dobru osobinu – brzinu! Uz to ima preciznost (nepogrešivost) i neumornost.

    Procesor malim operacijama koje izvodi milijardu u sekundi nadvladava tj. snagu crti iz brzine izračunavanja (sa primitivnim je

    osobinama, ali milijardu puta u sekundi izračunavanjima).

    Princip rada odozgo

    prema dole

    Princip rada odozdo

    prema dole

    CPU

    MEMORIJA

    interakcija

    U/I

  • Memorija: - Niz registara sa adresnim mehanizmom. (bit

    udruţivanje u bajtove u registre)

    Skup registara postoje niz kada mu se dodeli adresni mehanizam. Memorija uvek izgleda i ponaša se kao jedan registar.

    Osnovni model moţe da se precizira:

    8 – bita – 8 linija (ţična magistrala)

    D – data magistrala (magistrala podataka)

    AD – adresna magistrala (uvek ide samo iz procesora prema memoriji)

    Pitanje: Da li ţelimo:

    CPU Memorija ili Memorija CPU

    Postoji kontrolna magistrala R i W

    3 – tipa magistrala: - D – magistrala podataka - AD – adresna magistrala

    - KD – kontrolna magistrala

    Potencijal procesora! ProizvoĎač je ugradio delove koji obavljaju neka izračunavanja.

    U procesu dizajniranja, dizajner odlučuje šta će implementirati. Uz procesor proizvoĎač mora da isporuči i uputstvo, jer je bez toga

    neupotrebljiv. Uputstvo treba da sadrţi: - operacije

    - uporeĎivanje - ...

    ...

    CPU MEMORIJA

    8 razmena

    podataka D

    CPU MEMORIJA

    16

    AD

    CPU MEMORIJA R

    CPU MEMORIJA W

    read

    write

    Kompletna lista

  • Jedno je pitanje šta CPU moţe 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 (unutrašnja 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:

    1947.god. došlo je do objedinjenja memorije i za podatke i za komande.

    Pitanje: Šta će se desiti ako doĎe do prepisivanja podataka jednih

    preko drugih?

    U memoriji se to ne vidi, sve je ekvivalentno, pa na osnovu logičkih zaključivanja zaključujemo:

    1. Hardvardska arhitektura – odvojena memorija 2. fon – Nojmanova arhitektura – sve memorije zajedno (zbog

    uštede)

    U svetu je poznatija Hardvardska arhitektura (procesor radi brţe,

    obezbeĎuje veću brzinu). - vuče podatke punom brzinom

    - obraĎuje instrukcije - aplikacije u realnom vremenu

    Suština je da se odgovor dobije za unapred fiksirano odreĎeno vreme. ( nije bitna brzina procesora). Vreme odziva je fiksirano!(ne moţe se

    premašiti) Primer: Procesori u mobilnim telefonima su Hardvardske arhitekture

    Procesor je programibilan, ima mehanizam za automatsko izvršavanje (procesor radi automatski). Naredbe su u memoriji unapred

    isprogramirane i on radi automatski. U CPU se ugraĎuje registar (brojač naredbi) tj. Program Counter. Automatski se binarni broj

    predaje u memoriji, tamo se čita i pretvara u instrukciju.

    CPU M1 M1 Osnovni teoretski model računara

  • Formati instrukcija:

    Propisani i ugraĎeni od strane proizvoĎača komponenti: - šta da radi

    - gde su podaci

    Pitanja za razmišljanje: Koje oblasti pokriva ovaj kurs?

    1. Digitalna logika 2. Arhitektura računara

    3. Organizacija računara 4. Dizajn

    Redosled koji učimo i zašto?

    Fon Nojmanova arhitektura, prednosti?

    Ušteda! Osnovni teoretski model računara?

    Pitanje:

    Kako sve to detaljnije radi? Kako moţe da se komunicira sa procesorom?

    Grupe instrukcija: Procesor:

    - sabiranjem i grananjem moţe da se izračuna sve - ugraĎuju se i nešto više instrukcija 10-100

    Podela: - Grupe: - Aritmetičko-logičke operacija:

    - Klasične: +,-,*,/ - zavise od vremena - Specifične: (+1) inkrement, (-1) dekrement (brţe

    izvršavanje!)

    - Logičke: ,, .... – logičke instrukcije

    - Instrukcije za transfer (ne vrše obradu nego premeštaju

    podatke) - Kontrola toka (omogućava grananje, a grananje omogućava

    cikluse)

    - Grananje: - Jump - Brunch

    - Specijalne instrukcije (HALT – zaustavljanje...)

    Jednom rečju računa i

    čuva rezultate

  • 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

    Praktično, takav model nikad nije implementiran, jer je instrukcija previše dugačka!

    1 bajt 2 bajta 2 bajta 2 bajta 2 bajta 9 bajtova

    Operacioni

    kod

    Adresa

    operanda 1

    Adresa

    operanda 2

    Adresa

    rezultata

    Adresa

    naredne inst.

    UKUPNO

    Da bismo izvršili instrukcije moramo ih donositi iz memorije. Ţelimo: Nulto vreme odziva!!!

    Poţeljno je skraćenje instrukcija, tako da moţemo da ukidamo adrese. Ali, iz teoretskog modela ne mogu da se ukidaju adrese, jer teoretski

    model mora biti zadovoljen. Alternativa: Moţemo eksplicitno da zamenimo implicitnim! Uvodimo

    sklanjanje sa eksplicitnog navoĎenja 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 piše sekvencijalno (dodavanjem P.C. hardware). Na taj način gubi se fleksibilnost, jer smo instrukcije mogli da stavljamo gde hoćemo,

    sada ih moramo stavljati kontinualno.

    Napomena: Fleksibilnost nam ništa nije ni značila! Da nismo izgubili fleksibilnost, opet bismo instrukcije pisali nekim

    redom. Dodatak: UvoĎenje NMP – instrukcija ( dodavanje instrukcija software)

    - dogovor - hardware

    - gubitak - software

    Moguće je ići na dalja skraćivanja ispim principom.

    Sledeći dogovor: Ograničenje (bez pisanja rezultata, rezultat ide na prvo mesto)

    Zamenjuju poslednji registar

  • Primer: Saberi A,B Saberi A,B,A, tj. rezultat smesti u A

    Napomena: Prethodni dogovor nije besplatan!

    Instrukcije za transfer podataka Produţenje programa moţe biti i eksplicitno veliko.

    Primer: Saberi A,B,C i rezultat smesti u C

    MOVE A,P SABERI A,B

    MOVE A,C MOVE A,P

    Ovo skraćivanje košta! (nepovoljan primer)

    Generalno postoji unapreĎenje! Pitanje: Moţemo li i dalje da skraćujemo? 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 skraćivao!

    Spori računari su bili troadresni! Kasnije:

    - dvoadresni - 1,5 adresni

    Danas: - jednoadresni

    Model sa P.C. i sa akumulatorom je jednoadresni! Pitanje: Moţe li da se i dalje sa skraćivanjem? Odg.: DA!

    4,3,2,1 – kvantitativne promene 0 – posebna promena

    Korak se moţe izvesti pa imamo i 0-adresne računara! UvoĎenjem 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 rešeno, a to je pitanje moţe li se još dalje_

    Naivna verzija MOVE A,C

    SABERI C,B Malo bolja

    verzija

  • Da li moţemo imati -1 adresne računare?

    Stek mašine: 0-adresni računari! Stek – LIFO struktura (last in, first out) – (slaganje na gomilu,

    skidanje sa gomile) Na steku moţemo imati i više akumulatora!

    Zapravo prelaz sa 1 0 se izvodi uvoĎenjem stek pointera, posebnim operacijama PUSH i POP.

    PUSH – stavi na stek; POP – izvadi sa steka! Treba paziti na organizaciju steka!

    UvoĎenjem dogovora: - operandi

    - 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 današnjim računarima Intel + Numerički ko-procesor

    Svaki procesor ima jedinstven mašinski jezik koji je nuţno binarni. Nama je to jako neugodno! Cilj je napraviti indirekciju. Svaki procesor

    izvršava samo instrukcije mašinskog jezika.

    Pitanje: Šta u stvari procesor treba da radi da bi se program izvršio? Procesor moţe da čita i piše memoriju ili u sebi nešto interno radi

    (obraĎuje podatke).

    Ostaju na steku

    CPU P.C.

    Akumulator

    0

    MUA

    A

    SAB

    B

    C

    HALT

    20

    50

    51

    52

    MUA A

    SAB B

    AUM C

    HALT

    MUA

    SAB

    AUM

    MUO

    .....

    HALT

    Inst

    rukci

    je Svaka

    instrukcija

    ima svoje

    kodove

    Apsolutno adresiranje

  • Faze izvođenja mašinske instrukcije

    Prvo će koristeći P.C. aktivirati memoriju i pročitati podatak. I donošenje operacionog koda (I.(Šta da radi!))

    (čitanje memorije i smeštanje informacije na neko mesto) II donošenje adrese operanda (II.(Adresa!))

    (čitanje memorije i smeštanje na neko mesto gde se nalazi podataka)

    III donošenje operanda (koristeći 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 uvećava za 1 Ovo je mehanizam koji ga tera kroz ove 4 faze

    Rad sa konstantama

    Pojavljivanje konstanti kroz svaku formulu. Ne postoje razlike izmeĎu varijabli i konstanti. Umesto adrese daje se sam podatak;

    uglavnom se koristi rad sa konstantama. Jako teško bi bilo zamisliti rad sa nizovima bez ovoga.

    Primer: SAB [50] – na adresi 50 nije podatak, nego adresa

    podatka

    MUA #100 - const 100 AUM 50 - zapisana na adresi 50

    SAB [50] - saberi indirektno 50 tj. 100 INC [50] - uvećanje za 1 (MUA 50

    SAB #1

    AUM 50)

    Instrukcija ne radi uvek istu stvar!

    Indirektno adresiranje

    Njegova hardverdska implementacije je krajnje jednostavna. Dalji način 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 moţemo da šetamo kako hoćemo 2. najjednostavniji sistem (neprihvatljiv)

    Relativna adresacija – uglavno se koristi

    Indeksno adresiranje – neki specijalni indeks registra ... konstante

    (tehničke finese)

    Baratanje sa potprogramima

    Ideja: Logičke celine izvodimo u potprogram i koristimo ga onda često. Šta je potrebno za podršku potprograma? NAROWER!

    Problem: Napišemo program koji nekoliko puta poziva potprogram.

    Program radi, pa pozove potprogram tj. treba da skoči na potprogram pa da se vrati na izvršavanje programa.

    Skok na potprogram se obavlja bezuslovnim skokom! JUMP – pozivamo potprogram

    Problem nastaje kod povratka iz potprograma, a to je nešto promenljivo!!!

    Ne moţemo da znamo ko će sve da poziva naš program! Na kraju potprograma se ne moţe staviti JUMP!

    Ali i to se moţe rešiti 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 moţemo da zovemo potprogram iz potprograma!!!

    Ako potprogram pozove potprogram, uništava se adresa P.C. Napomena: Fiksirana je samo jedna lokacija.

    Trebali bismo da imamo više lokacija i da pazimo kojim redosledom radimo!

    Pa uvodimo posebne instrukcije, tj. uvodimo STEK!!! Adrese povratka stavljamo na stek! Kaskadno moţemo da pozivamo

    više potprograma. Skakanjem na potprogram koristimo PUSH P.C., pa onda JUMP i na kraju ide POP P.C. i vraćamo se nazad.

    Posebne instrukcije: - JSR – jump to ...

    - RSR – return from ...

    Bitan je stek, a sve ostalo je pitanje organizacija!!!

  • Pitanje: Na koji način se olakšava komunikacija izmeĎu čoveka i

    računara?

    Slika 1 ( ... )

    Pr: za izračunavanje diskriminante D=b2-4ac kada se prevede na nivo računara.

    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

    Loše odozgo ( sa naše strane) jer se razvija u mnogo sitnih instrukcija,

    meĎutim ovo je idealno, gledano sa neke druge strane. Umesto ovoga morali bi smo da imamo mašinski 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 mašinskog programa: svaka instrukcija je zamenjena binarnim

    kodom i svaka adresa je zamenjena bianrnom vrednošću i to onda procesor izvršava.

    Razmatraju se ideje kako to da se uradi, imamo jednu nepromenljivu

    tačku, to je računar ( binarni ureĎaj sa svojim mašinskim jezikom ). To mora da bude krajnji proizvod, a kako nam to ne odgovara hoćemo

    da napravimo posrednika koji će da prima stvari kako ih mi vidimo i da prebaci u oblik prihvatljiv procesoru.

    Generalno rešenje za ubacivanje posrednika izmeĎu čoveka i računa je uvek isto.

    Računar je fiksna tačka i on očekuje mašinski jezik i bez obzira na to koliko smo se udaljili on jedino to razume. Sa druge strane čovek je

    takoĎe relativno fiksna tačka, ali kod čoveka imamo prilagoĎavanje. U sam sistem se ubacuje posrednik!

    Pitanje: šta moţe da bude posrednik? Posrednik moţe da bude sam računarski program ( pomaţe nam u

    preraĎivanju informacija ).

  • Pravo rešenje je da se računar pomogne sam da se nahrani! Posrednik

    bi bio računarski program. Pitanje: kako radi računarski program?

    Uz neke sitne izuzetke definišemo: Čovek piše tekstualni fajl u koji zapisujemo šta da se radi. Računar

    uzima tekstualni fajl kao ulazni u svoj program, obraĎuje ga i prevodi tj izbacuje program na mašinskom jeziku i time puni memoriju i

    omogućuje procesoru da radi. Program će da bude translator koji će naš zapis da preradi u mašinski

    jezik i na taj način napuniti memoriju, omogućujući rad procesora. Predrasude: ovo su specifične ( posebne ) stavke programa, ( prave se

    u raznim okruţenjima ). Za pisanje programa koristimo tekst editor!

    Suština procesa: svaki program je u suštini tekstualni dokument ( fajl )! Ostalo je fizička stvar.

    Kategorija prvougaoni komadić papira - fizička definicija.

    Logički su različite 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 slučaj udaljavanja?

    Prvi koraci su vrlo jednostavni, moţe vrlo lako da se uradi nešto efikasno i dobro, prvi oblik translatora: ASEMBLER I ( sa simboličkim

    instrukcijama ). Problem!

    Hoćemo da rešimo problem koji je suštinski veoma mali, imamo odreĎen broj instrukcija jako mali i znamo šta one rade. Sa druge

    strane postoje šifre šta procesoru mora da se da, da bi on nešto

    uradio. ( neophodna tabela za nizove 0 i 1 ) Stalno moramo da imamo pored sebe te šifre ( ograničenja ).

    Problem je trivijalan, radi se samo o preimenovanju, suština je da se dogovorimo oko formata pisanja.

    Dogovor: računaru instrukcije pišemo na jedan način! Ako napravimo rigidan ( strog ) format: - translator je jednostavan.

    Ako napravimo popustljiv format: - translator je sloţen. Raniji formati su bili strogo rigidni!

    Program je rigidan znači da: - učitava fajl red po red, kad učita prvi red onda izdvaja dva

    elementa, prvi čine prva tri karaktera, a preostalo su binarni brojevi - ugraĎena je proizvoĎačka tabele i niz instrukcija

    Program je trivijalan!

  • Ako bi smo dozvolili slobode u formatu i dozvolili prazne redove i da se

    ne počinje od prve kolone, onda pravimo petlju za preskakanje blankova itd. Dobili bi smo komplikovani programski translator. Ovime

    smo napravili jednostavan asembler, gde smo se rešili binarnih kodova za instrukcije.

    Ako se ovo pokaţe kao dobro, traţimo i dalja poboljšanja. Adrese su i dalje binarne.

    Pitanje: šta treba da ugradimo u taj asembler? U asembler moţemo 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 simboličke, a adrese su dekadne. Pitanje: sledeći korak?

    Olakšavanje: MUA #4 MOD A

    Sada imamo i simboličke adrese, ne pišemo apsolutnu adresu. Tek sada moţemo 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. traţi varijable ( promenljive ), prikuplja ih

    3. pravi listu ( spisak ) bez ponavljanja 4. traţi mesto u memoriji i dodeljuje adrese

    Spreman je za prebacivanje u mašinski jezik! Stari program je imao fiksiranu, statičku tabelu sa kodovima od

    proizvoĎača ( tajna ). Novi asembler ima novu dinamičku tabelu promenljivih specifičnu 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: - simboličke instrukcije - simboličke adrese

    stim što ne mora da bude dvoprolazni.

  • Drţimo korespodenciju sa mašinskim jezikom „1-1“, praktično imamo

    program na mašinskom jeziku, samo smo preimenovali neke stvari, a neke dugačke iskaze smo skratili nadimcima.

    ASEMBLER – praktično mašinski jezik! Sledeći korak je još neko unapreĎenje, primećeno je izvesno

    ponavljanje programa. Procesori pre mnogo decenija, pre 8-bitnih imali su sposobnost da

    računaju 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 moţe )

    Pretprocesor MUA X

    SAB Y AUM Z

    MUA X+1 SABC X+1 CARRY bit

    UAM Z+1 Sabiranjem imamo jedan bit CARRY koji sluţi za čuvanje prenosa ( 9

    bit ). Stalno prepisujemo ovih 6 naredbi.

    Pitanje: gde sačuvati ove naredbe i naknadno ih koristiti?

    Čuvanje ovih naredbi se obavlja u proširenju asemblera. Proširivanjem tabele sa još nekim instrukcijama definišemo 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 odgovarajućim delovima koda programa.

    Skupovi od po više naredbi – MAKROI Ovakav asembler se zove makro asembler i ovo su makroi. Osnovna

    osobina asemblera je da pruţi korespodenciju 1-1 sa mašinskim jezikom, a ovo je nešto drugo pa ne bi trebalo da se naziva asembler,

    jer čim se udaljavamo od 1-1 dobijamo nešto drugo. Tako da uvoĎenjem pretprocesora zamenjujemo neke asemblerske instrukcije.

    Uz njih se moţe razmatrati pojam virtualne mašine.

  • Pitanje: šta je to virtuelna mašina?

    Pojam virtualne mašine: to je prividna stvar, nije stvarna, ali izgled da radi tako kako nam se

    čini. Imamo procesor, fizički kakav jeste sa osobinam koje poseduje i u procesu objašnjavanja korisniku umesto da idemo u detalje mi

    skraćujemo tj krajnjem korisniku prećutkujemo istinu, pa kaţemo da procesor izmeĎu ostalog moţe da sabere i dvobajtne brojeve ( SAB 2

    ). Pitanje: kako to izgleda?

    Gledano iznutra, mi znamo da toga nema tj da takva mašina fizički ne postoji, jer je virtualna mašina skrivena, pa se ne vidi razlika izmeĎu

    fizičkog sabiranja i dvobajtnog sabiranja. ( ne vidi se šta je hardver, a šta je softver )

    FIZIČKA MAŠINA + SOFTVERSKI DODATAK= ( V.M. ) fiz. sabiranje dvob. sabiranje

    ( fiz. mašina + 1 soft. dodatak predstavlja rešenje dvobajtnog

    sabiranja ) Proglasimo je kao regularnu instrukciju, a ona je u stvari softverski

    implementirana. Sa stanovišta krajnjeg korisnika to je u redu, to je za njega istina.

    Pojam virtualne mašine, mikroasembler Po prvi put imamo razdvajanje korespodencije 1-1 sa mašinskim

    instrukcijama. Činjenica da se neki delovi često upotrebljavaju, biće uočena 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.

    Prešlo se na fazu gde se koriste dodatni U/I ureĎaji: - prvo bušene kartice H.Holerit

    - za programiranje mašine za tkanje 19v.Ţakard - za popis stanovništva SAD ( IBM mašina za obradu podataka o

    stanovništvu )

    Pitanje: kako da se komunicira sa tom mašinom? Imamo stalno ponavljanje komande za unos podataka sa kartice, treba

    nam da sa te mašine pročitamo jednu karticu i da broj koji je tamo šifriran prevedemo u binarni oblik, pa da ga smestimo u memoriju.

    Naredbama obezbeĎujemo da se mašina pokrene i da pročita jedan broj, izdvojićemo to na jednom mestu kao deo programa i pozvaćemo

    ga kao već napisan program. Pitanje: šta ćemo da uradimo?

    IzvoĎenjem programa i ponovnim pozivanjem, dobijamo rutinu: 1. aritmetička – ( matematičke funkcije ) od njih nastaju viši programski

    jezici 2. opsluţivanje perifernih ureĎaja – ( čitanje karaktera, kasnije

    pokretanje štampača ) izdvajaju se u operativne sisteme.

  • Osnovne karakteristike viših programskih jezika

    - dosta su bliski čoveku - raskinuta je korespodencij 1-1 i posti korespodencija 1-mnogo

    ( jedna naredba više programa razvijena je u stotinu naredbi – krupan kvalitativni skok )

    - jako su kompleksni programski translatori - rešavaju se pitanja vavilonske kule ( učenje mnogo jezika )

    Svaki procesor ima svoj mašinski jezik, dovoljno je znati jedan viši programski jezik, a on će se prebaciti na bilo koji procesor. Ukida se

    direktna veza čovek – procesor, čovek ne mora ništa da zna o tom procesoru.

    Kompajler je jako teško napisati! Npr: ako imamo 100 procesora i 1000000 programa: - 1000000 ljudi

    treba da nauči 100 stvari - teţe je napisati kompajler nego naučiti asemblerl, ali onda

    ovime rešavamo problem

    - svaki kompajler za svaki procesor se radi jedinstveno - za učenje jednog asemblera potrebna je količina truda jedinice

    jedan - ukupno 100000000, a pisanje kompajlera zahteva 100 redova,

    hiljadu puta je teţe napisati - za 100 procesora po kompajleru, to je 100000 i nakon toga svi

    programeri trebaju da ga nauče 2,3000000 100000000 : 100000x2,3

    Rešava paradoks za pisanje kompajlera, rešavaju nas brige na kom procesoru radimo.

    Digitalna logika:

    Uvod: procesori računarske digitalne tehnike, ureĎaji sa mnogo

    paradoksa i mnogo različitih stvari. Mi smo prema njima uţasno spori, oni su nama uţasno brzi (

    iznenaĎeni smo našim gledištem na stvari ). Mi se baziramo na našem iskustvu i intuiciji, a to ne moţe da se odnosi

    na procesore. Na izvestan način su to i najjednostavniji i najkomplikovaniji ureĎaji.

    Pitanje: šta su ti elementi? Kod računara ukupan broj redova je veličine 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 poboljšamo?

  • Pitanje: sa druge strane ako imamo te gradivne elemente kako da ih

    sastavimo? ( da napravimo nešto pametno ) Razvoj računarske tehnologije zavisi od razvoja gradivnih elemenata (

    dinamičko )! Na koji način se implementiraju zavisi od materijalnih zakona (

    statičko )! Pitanje: šta je gradivni element? Arhitektura, kako sloţiti te delove? (

    zavisi od zakona materijalne logike ) Klasična digitalna logika se bavi arhitekturom!

    Počinje od malo višeg nivoa, ne spušta se nisko, zato ćemo da odemo u nazad.

    Najpre ćemo govoriti o gradivnim elementima, u tim elementima je sadrţan sav napredak tehnologije i sve ono što se dešava na

    računarima. Ljudi su delimično svesni, a delimično i nisu kako to u stvari ide. Radi se o tome da se upliće eksponencijalni razvoj. Razvoj

    računara, hardvera je eksponencijalan.

    Murov zakon: performanse računara se udvostručuju svakih 18 meseci.

    Hijerarhijska organizacija: - softverski sistemi, drvo koje se grana sačinjeno od naredbi.

    Kada smo uočili osnovne zakone uočimo 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 klasičnu digitalnu logiku.

    Digitalna logika: - prekidači - statičko – exp. - arhitektura – dinamičko – log.

    Prekidači detaljnije: gradivni ( prekidački ) element jeste u stvari

    prekidač, sa specijalnim osobinama. Pod prekidačem podrazumevamo

    prekidač za svetlo, ali on ne bi mogao da posluţi kao gradivni element, za izgradnju računara. Postoje i drugi prekidači ( generalna ideja je

    široko rasprostranjena ). Treba nam prekidač koji se kontroliše onim što on sam kontroliše ( po

    principu povratne sprege ). Da bi bila moguća povratna sprega prekidač treba da se kontroliše

    onim što on sam kontroliše! Ako napravimo takav prekidač napravićemo i računar.

    Sa gledišta arhitekture: imamo 100000 prekidača, a šta su oni to nas ne interesuje. Sam razvoj je išao donekle kvantitativno, a donekle

    kvalitativno, imali smo napredak sa tačkama prekida. Pitanje: imamo li primer, moţe li se napraviti?

    Prekidač moţe da prekida bilo šta ( struja ).

  • Pitanje: a koji bi to bio najjednostavniji prekidač?

    Prekidač koji zadovoljava ove osobine naziva se relej. Relej je elektromehanički ureĎaj po principu magneta ( danas su većinom releji

    sakriveni ).

    Slika 3 ( ... )

    Uglavnom imamo četiri pola, ali moţe biti i tropolni ureĎaj. Pitanje: da li struja od A prema B moţe da teče? DA!

    Sa osobinom da kontroliše struju i da se kontroliše strujom, na taj način zadovoljava ove osobine.

    Jedno je pitanje kako napraviti gradivni element, a drugo je kako ćemo to da ispovezujemo?

    Oznaka: (...)

    Pod kontrolom C struja teče izmeĎu A i B. Istorijske činjenice: računari su pravljeni na bazi releja, II svetski rat!

    Vremenom se to kanonizovaloi postalo jasnije! Danas se generalno uzima ENIAC 1945. god za prvi računar, zvanično

    je prihvaćeno da je to prvi računar, pre njega su bili pokušaji računara. Pitanje: da li moţemo napraviti drugi prekidač?

    Da li moţe da se pronaĎe nešto suštinski drugačije? Kada je došlo do takvog kavalitativno pomaka, to je označavalo novu

    generaciju računara. U tom kontekstu govorimo o 0 generaciji računara, baziranoj na relejima II svetski rat.

    Pitanje: šta su osnovne osobine ovakvog releja? funkcioniše!

    Sam ureĎaj je elektromehanički, 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 veličine stotinak puta u sekundi u odnosu na čoveka je brz, ali je dosta ograničen. Stoga se tragalo za nečim novim.

    Uzet je ureĎaj koji je već postojao: ELEKTRONKA ili elektronska cev ( korišćena u radio ureĎajima ).

    Slika 4 ( ... )

    Iz staklenog balona izvuče se vazduh, napravi se vakum i napravi se

    elektroda koja otpušta elektrone, što se postiţe podgrevanjem ( ţarenjem ).

    Sa druge strane se postavi pločica sa pozitivnim naponom i dolazi do privlačenja usled manjka elektrona.

  • Napravili smo električni provodnik brz ţica ( vrši f-je ţice ), u sredini se

    postavlja mreţica, na toj rešeci dovodimo napon za kontrolisanje. Imamo dva kontakta izmeĎu kojih struja moţe da teče 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 ), moţe da ide 1000000 puta u sekundi. Ovo je očito pogodniji prekidač.

    Ovim nastaje revolucija, sklanjanjem releja i stavljanjem trioda dolazimo do I generacije računara (elektronke ). Ovime počinje I

    generacija računara koja se priznaje. ENIAC 18000 elektronki – tihi napredak generacije.

    Nastaje pojava tranzistora! Ideja prekidača moţe da se uradi na drugim principima. 1928. god.

    razmatrana je ideja za novi prekidač, ali u praksi ovo nije zaţivelo. ( nije moglo tehnički da se realizuje )

    Slika 5 ( ... )

    Uzmimo poluprovodnik ( ploču ). Ideja je napraviti kanal sa viškom

    elektrona i napraviti još jedan identičan kanal. Oni nam sluţe za provoĎenje struje. IzmeĎu dva kanala ne mloţe da teče struja.

    Stavljanjem izolatora sa metalnom kapicom ( sa manjkom elektrona ) omogućen je protok struje.

    PronaĎeni su prekidači na nekom drugom principu

    Slika 6 ( ... )

    1948. god napravljene su tri kockice od germanijuma. Od tranzistora od tri kockide moguće je napraviti prekidač. Iz nekih razloga nije

    moglo da se komercijalizuje. Sredimom 50. god krenula je proizvodnja

    i došlo je do revolucionarnog pomaka. Dobili smo tranzistor koji je 1000 puta manji od prethodnih po zapremini ( nema zagrevanja ).

    f-je vrši direktno, a imamo i hiljadu puta manju potrošnju struje ( pouzdaniji su i duţe traju ).

    Ukupno poboljšanje meri se i do nekoliko miliona puta. Zamenom elektronki sa tranzistorima dobijamo kvalitativni skok, pa

    moţmo govoriti o II generaciji računara ( od sredine 50. god ). Obično se prihvata da postoje još III i IV generacija.

    Ne radi se o suštinski novim gradivnim elementima. Do tada se baziralo na novom tipu prekidačkih elemenata koje ovde u trećoj

    generaciji nemamo. III generacija još se naziva i modularna generacija.

  • Ne trebaju na prekidači kao pojedinačni elementi već kao celina. Na taj

    način dobijamo uštedu jer se sve u fabrici uradi na jednoj pločici ( tehnološki oblik – minimizujemo ih i ispovezujemo ih u fabrici). Ovaj

    način organizacije doneo je kvalitativni pomak koji zasluţuje da se zove novom generacijom, ali se prekidački elementi nisu promenili što

    predstavlja III generaciju računara ( rane 60. god ). Kasnijih 60. god i 70. god dolazi i IV generacija, V.L.S.I.

    Najbitnije je da se vraća na staru ideju tranzistora, da je on dvodimenzionalan ( planaran ). Treća dimenzija je toliko tanka da se

    zanemaruje. To mu omogućuje da se pravi fotografskim postupkom, na taj način se dolazi do kvalitativnog skoka, gde se raskida veza 1-1

    sa prekidačkim elementima i pravimo ih sve odjednom. Ponavljanjem procesa dobijamo analogiju ( kvalitativna razlika ).

    Suština IV generacije: svi elementi se prave odjedanput! Na ovaj način objašnjavamo Murov zakon.

    Ustalilo se da se generacije smenjuju sa nekim periodom od neki 5-10

    god. Desilo se to da sledećih generacija nema, od kasnih 60. god pa do sada s ništa nije promenilo. Murov zakon nije zaustavljen,

    nekadašnje tihe ( unutrašnje ) promene sada postaju burne. Faktor je miniturizacija!

    Poslednjih 40. god se minijaturizacijom odrţava poredak. Zvanično se priznaju četiri generacije računara, često se priznaje i 0 generacija

    računara, a mimo toga postoje i druge podele. Def: generacije računara se definišu na osnovu prirode prekidačkih

    elemenata. Postoji svetski priznati pokušaj u okviru koga se spominje V generacija

    računara. Ušlo je u literaturu, ali u ovu kategorizaciju ovde ne pripada. U vreme kada nije bilo smene generacija pojavila se priča o V

    generaciji računara, pa se verovalo da će to da bude softverska revolucija negde krajem 60. god, a bazirana je na veštačkoj

    inteligenciji i prolog jeziku. ( još jedan element kao argument V

    generacije: 2000000 dolara ) Realnost su prve četiri generacije, ali moţe i da se uradi ekstrapolacija

    ( unazad ) nečega što se nije desilo, a moglo je. Pitanje: koliko unazad moţemo da idemo?

    Sa elektronkama je moglo da se ide 20-30 god unazad. Moţemo zamisliti računar na nekim drugim principima, ne mora biti struja u

    pitanju, moţe biti i voda. Napravili smo prekidač koji kontroliše ono čime se sam kontroliše.

    Slika 7 ( ... )

    Prekidač na principu vode sigurno je moguć. Ta tehnologija koja moţe

    da napravi česmu, moţe da napravi i računar. Računara slične

  • današnjim mogli smo da pravimo i u starom Egiptu, ne nedostaje

    tehnologija nego znanje. Uvod: sve se u stvari svodi na logičke funkcije.

    Def: logičke ( buleanske ) f-je – imamo pojam preslikavanja, stim što imamo dvočlan skup. Imamo ograničenje: domen i kodomen su

    dvočlane f-je ( f-je sa dva elementa i kao rezultat imaju dva elementa ).

    Pojmovi: - detektovanje - merenje

    Računar – kao prvenstveno binarni ureĎaj je jedan buleanski ureĎaj, barata samo sa detektovanjem tj barata samo logičkim f-jama.

    U računaru sem buleanskih f-ja ne moţe biti ništa drugo. Pitanje: koliko ima logičkih f-ja jedne varijable, a koliko ima logičkih f-

    ja dve varijable? Ako imamo buleansku f-ju od K varijabli, elemenata moţe da bude

    dva.

    Pitanje: za K varijabli koliko imamo mogućih ulaza? Varijacije sa ponavljanjem!

    Br. Mogućih ulaza je 2k , a ako ima dve varijable mogući 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 mogućih ulaza je 2(2k)

    Od K ulaznih argumenata ima 2(2k) mogućih buleanskih f-ja. U praksi:

    Tabela 3 i 4

    Vraćanje na prekidače: sve se sastoji od jednog gradivnog elementa ( prekidač )

    Praktično: moramo malo da odstupimo ( dozvoljeno odstupanje ), ukoliko imamo dva oblika prekidača ( modifikacija ), neke stvari su

    onda mnogo lakše.

    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, fizička modifikacija je minimalna. Ovo jeste jedan gradivni element, ali po načinu na koji radi

    radi se o dva modela gradivnog elementa:

  • - kada nema kontrole ( struje ) ova dva prekidača provode struju

    - kada ima struje onda se razdvoje i ne provode struju

    Oznaka: (...)

    Imamo dve varijante prekidača: - 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 logičke f-je Interesantana je negacija!

    X f(x) implementacija je trivijalna ( kada doĎe do ..., onda dodeljujemo fizičke veličine )

    Kroz istoriju smo imali: (...) Oznaka: (...)

    F-ja koja radi inverziju koristeći gradivne elemente koje imamo je

    nešto komplikovanija:

    Slika 9 ( ... )

    Poveţimo dva prekidača na ovakav način: - ako stavimo da je x=1, onda je ovo ... prekidač koji prekida, a ovo ... prekidač koji propušta

    struju, kada mu dovedemo napon - ako stavimo da je x=0 onda je ovo ... prekidač koji prekida, a

    ovo prekidač koji propušta struju kada mu dovedemo struju. Na ovaj način dobili smo f-ju koja ima smisla, tj logičku 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 prekidača. AND – kada svi propuste struju, samo tada moţe da proĎe ( teţak

    prolazak ) ...

    Slika 10 ( ... ) OR – ako svi preseku struju, samo tada nećemo proći ( teţak 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 moţemo proveriti šta kolo radi?

    Popunjavanjem tabele, dobijamo rešenje. Ušteda! ...

    Skraćujemo diskusijom i izdvajanjem karakterističnih slučajeva: 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 slučaj

    Kroz paralelne grane teško je ne proći.

    Simetrično: Analiza gore pokazuje ... - istaknut slučaj

    Kroz serijske grane teško je proći.

    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 način imamo:

    1. slika INVERTER ( 2 prekidača )

    2. slika NAND ( 4 prekidača ) 3. slika NOR ( 4 prekidača )

    Iz ova tri moţemo dobiti:

    4. slika iz 2. i 1. ( 6 prekidača )

    5. slika iz 3. i 1. ( 6 prekidača ) Izvedene funkcije

  • Prve tri proglasimo aksiomama i onda dalje izgraĎujemo ostale. Dalje radimo standardnu digitalnu logiku i izgraĎujemo nove elemente!

    ( Korišćenjem od toga što imamo i što razumemo napravićemo nešto novo! )

    Od funkcija dve varijable napravili smo 4, ima ih ukupno 16.

    Sledeća je XOR

    Slika 14 ( ... )

    Neka je: ...

    Pomoću 4 NAND-a dobili smo XOR!

    6. slika XOR ( 16 prekidača )

    Matematička logika i fizička implementacija-ista stvar!

    Predstavljanje formulom:

    Slika 15 ( ... )

    1. f(x,y) = a’b’

    2. a = x’c’ 3. b = y’c’

    4. c = x’y’

    Uvrštavanjem imamo: 2.i3. 1.

    4. 5.

    5. 6.

    Formula 6. opisuje povezivanje fizičkih komponenti!

    Kako ćemo to da proverimo?

    Dokazati: formula jednaka funkciji

    Jedna funkcija moţe da se predstavi na razne načine! Najstandardniji način kao NKF, NDF

    abc + xyz + .......... NDF (a+b+c)*(x+y+z) ........... NKF

  • Uzmemo sva mesta gde funkcija ima 1, pa naša formula treba da ima

    1 na tim mestima, pravljenjem sabiraka.

    Kada su ulazi NDF (XOR) = x’y +xy’ tada je ovo ekvivalentno tablici Nezvanična definicija funkcije XOR!

    Treba dokazati f= NDF(XOR) Koristićemo DeMorganove formule:

    1. u’v’ = u’+v’

    2. x’’ = x 3. x * x’ = 0

    krećemo od 6. ...

    Pitanje: Zašto smo izabrali baš njega?

    Krenuli smo od logičkih funkcija i stigli do ureĎaja za sabiranje!

    Procesoru je dovoljno da sabira i uporeĎuje sa nulom. Sabiranje u tom smislu je ključna situacija!

    Uvod: ( Predrasude! )

    Dekadni sistem je zgodan, ali objektivna stvarnost to ne podrţava.

    Oblasti: - osnovne računske operacije - matematička logika

    Pitanje: Kako stvari objektivno izgledaju?

    Sve što moţemo da uradimo u računaru je matematička logika. Uvek se radi isključivo logičkim funkcijama, korišćenjem posrednika. (

    Sabiranje velikih brojeva svodi se na sabiranje cifara ) Sve što moţemo da uradimo u dekadnom, moţe 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 logičke funkcije:

    x y s p

    0 0 0 0 0 1 1 0

    1 0 1 0 1 1 0 1

    Sabiranjem binarnih cifara moţemo sabrati duge binarne brojeve, dugi

    binarni brojevi su ekvivalentni dekadnim...

  • Dovoljno je pogledati tablicu i dobijamo funkciju AND i XOR.

    x y f(x)

    0 0 0 0 0 1 1 0

    1 0 1 0 1 1 0 1

    XOR AND

    Da bismo sabirali ne treba nam aritmetika, već su dovoljne Buleanske funkcije.

    Fizička implementacija:

    Slika 15 ( ... )

    7. slika - novo kolo za sabiranje ( 2 prekidača ) Sastoji se od XOR-a i AND-a

    Pitanje: Naziv?

    Sabirač! MeĎutim, sabiramo proizvoljne brojeve, uzmemo 2 cifre generišemo

    rezultat itd. Treba nam ureĎaj 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 izmeĎu polusabirača i sabirača?

    Polusabirač – kombinatorno kolo koje sabira 2 binarne cifre uz prenos. Sabirač – kombinatorno kolo koje sabira 3 binarne cifre uz prenos.

    Tabela

  • Logička funkcija 1 varijable ima 4 funkcije

    Logička 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 )

    Moguće je napraviti proizvoljni sabirač 8-16-32 bitni!

    Slika 17 ( ... )

    Imamo: kolo koje radi nešto korisno, napravljeno od 1600 prekidača, sa jedne strane kompleksno, a sa druge jednostavno.

    - Kombinatorna kola predstavljaju implicitne logičke funkcije koje rade izračunavanja ( izlaz zavisi id ulaza )

    - Memorijska kola čuvaju izračunavanja ( izlaz ne zavisi od ulaza ) Kombinatorna i memorijska kola se udruţuju u sekvencijalna kola.

    Dekoder je jaki često korišćeno kolo za dekodiranje memorijske adrese.

    Adresa ( binarni broj ) Dekoder je kombinatorno kolo koje ima n- ulaza i 2n- izlaza, gde je

    aktivan tačno jedan izlaz čiji redni broj odgovara binarnom broju na ulazu.

    ulaz - izlaz

    1 - 2

    2 - 4 3 - 8

    4 - 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 moţe 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 vaţi formula 1*x=x Ako je 0 onda vaţi formula 0*x=0

    10. slika - Dekoder

    Da bi ovo bio klasični dekoder, generalno moţe da znači bilo šta. (

    neku cifru dekodira u bilo šta )

    Često se koristi:

    Numerički displej ( standardni displej na pricipu piksela )

    Sedmosegmentni displeji

    - iz električnog ureĎaja izlazi bcd kod dobijamo 4 bita koji predstavljaju dekadne cifre.

    Slika 21 ( ... )

    Dekoder prevodi u oblik koji ţelimo! BCD to sedmosegmentni: ( formiramo tabele )

  • Ulaz: u0,u1,u2,u3

    Slika 22 ( ... )

    Tabela

    Na osnovu tabele povezujemo logičke funkcije!

    Izgenerišimo kad treba da svetli a U ovoj tabeli ima više 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! UvoĎenjem 2 kontrole rešavamo problem:

    Slika 25 ( ... )

    Linija enable omogućava da se bilo šta radi

    Oznaka: signal R – read kad je 0 neaktivan W – write kad je 1 aktivan

    Takvi signali su označeni nadvučenom 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 piše

    Memorija se pravi jednim sklopom koji je izmišljen za neke druge

    svrhe. FLIP - FLOP ( bistabilni elementi )

  • Jednobitna memorija FLIP-FLOP bistabilni elementi

    - 50, 60, godina f.f. su se ugraĎivali u elektronska kola.

    Pitanje: kako izgleda flip-flop?

    2 NAND-a unakrsno povezana povratnom spregom.

    Slika 26 ( ... )

    Pitanje: kako se ovo ponaša?

    Liči na kombinatorno kolo.

    Pitanje: moţe li ovo ovako? Da! Pitanje: šta će se desiti ako sa 1 preĎemo na 0?

    Kolo je promenilo stanje

    Moţemo vratiti vrednost na 1 i ništa neće da se Promeni, jer je povratna sprega zablokirala!

    Izlaz kola ne zavisi od ulaza jednoznačno

    Za iste ulaze imamo dva različita izlaza!

    Ovo kolo ima memorijsku funkciju ( zavisi od ulaza u prošlosti ) Simetrično i za donju granu imamo: ...

    Odavde dolaze:

    - izlazni signali: 0 Q’

    - ulazni signali: S’ R’ ( nešto rade! )

    S – set - postavljanje ( 1 ) R – reset - inicijalizacija ( 0 )

    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 simetrično: umesto NAND-ova moţemo uzeti i NOR-ove pa imamo:

    Slika 28 ( ... )

    NOR-ovi

    ( aktivno visoki-normalno stanje na nuli )

  • Pitanje: kako sada od ovoga napraviti memoriju? Problem rešen inverterom!

    Uveden je vići 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 moţe da se uradi da se ovaj problem reši?

    Slika 29 ( ... )

    C=1 ovo se ponaša kao normala SR flip-flop S i R treba drţati na 0.

    Pitanje:Šta ako je C=0? Ovo kolo prestaje da prima spoljne ulaze!

    Sa ovim C-om kontrolišemo ovo kolo!

    Slika 30 ( ... ) D flip-flop 1 bitna memorija

    Kada je D = 1 - set ( setuje )

    Kada je D = 0 - reset ( resetuje ) dok god je C = 1

    Kada ţelimo da zapamtimo, onda je C = 0

    ( imamo mogućnost 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 ništa se ne dešava 1 - 0

    0 – 1 0 – 0 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 logički i praktično nedozvoljeno.

  • Pitanje: šta tu moţe da se uradi?

    Moţe da se dodefiniše doraĎivanjem FLIP-FLOPA! Uzmemo 2 FLIP-FLOPA

    Slika 31 ( ... )

    Ovo je i dalje jedan flip-flop, ali sa dobrim svojstvima. Podatak prima

    sa zadrškom. ( jednostepeni prenos postaje dvostepeni ) Kada C povučemo na 1 prvi flip-flop radi, a drugi ne radi. Nakon toga

    prvi ne radi, a drugi proradi. To nam omogućuje da napravimo povratnu spregu. Na početku 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 ništa 2 - postavi se na 1

    3 - postavi se na 0 4 - promeni se

    Pitanje: kako to izgleda?

    Tabela ...

    Ovakav flip-flop je zvanično j – k flip-flop.

    Pitanje: kako ovo moţe da se napravi?

    Slika 32 ( ... )

    ( kako su istovremeno aktivni izazivaju promene )

    Ovaj Data flip-flop mora biti tipa, jer bi došlo do oscilacija!

    Napomena: sekvencijalno kolo

    Slika 33 ( ... ) ( 16 prekidača ) 1 bajt

    Pitanje: šta ovo kolo radi? Tablična analiza:

    Tabela

    Tabele su ekvivalentne!

  • Imali smo: - SR

    - D m/s - SK

    - T - tabliranje

    Moţemo 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 teţimo ka tome. Remećenjem odnosa, nuţno usporavamo kolo!

    U praksi signal je dosta zaobljeniji, ima vreme uspona, i vreme padanja.

    Slika 36 ( ... )

    Ovakav jednostavan signal sata moţe da posluţi 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:

    Propuštanje kroz jedan gejt izaziva kašnjenje pa dobijamo f2 Kao zakasneli f1 pa imamo preklapanje faza.

    Slika 39 ( ... )

    Ovo sigurno ne radi!

    Pitanje: kako se pravi nepreklapajući sat? Sa flip-flopom.

    Slika 40 ( ... )

    Posmatrajmo signale f, f1, f2

    Slika 41 ( ... )

    Prolaţenje signala kroz bilo koji gejt zahteva vreme!

    Uzećemo 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 način dobijamo dvofazni sekvencijalni sat.